STM-IIC的工作原理

IIC的原理

        IIC是一种通信方式,使用两根线SDA\SCL可以实现主机和多从机的数据交互。IIC从机设备通过SDA\SCL两根线并联,可以实现最多128个IIC设备相互通信(128个设备由IIC的7位地址决定最大挂载量)。

        IIC的通信时序

        IIC的通信过程包括通信信号开始、数据交互、数据应答、通信信号结束。

        1.IIC的通信信号开始:

1.首先把SDA\SCL信号拉高,并通过延时函数,让SDA在切换之前保持高电平一段时间(如图红色方框的1us)。

2.延时时间到达之后,然后操作SDA的信号电平从原来的高电平状态切换到低电平(如本文字上方图)SDA的斜坡)。

3.当SDA拉低之后,还需要延时一段时间,然后再让SCL的电平变为低电平(如本文字上方图)。

  2.IIC的通信数据交互:

1.在信号开始发出之后,SDA\SCL的电平默认变为低电平。根据发送数据的电平,控制SDA的电平,先发送SDA电平再发送SCL的电平。

2.在SDA电平发送之后,SCL拉高电平,并持续一段时间,产生脉冲波形(如本文字上方图)。

脉冲信号处于高电平状态,数据发送出去。延时时间到,SCL变为低电平。

3.当SCL处于低电平的时候,SDA的数据切换,数据不发生。

3.数据应答

        上方通信交互过程发送8位SDA信号之后,发送端的SDA信号默认变为高电平,此时发送端需要产生第9个SCL信号,SCL信号从低电平延时1us变为高电平,在SCL处于高电平的时候,数据接收端会返回一个答应的高低电平。此时,数据发送端需要检测返回的应答信号。(发送端接收答应信号,先拉高SCL信号,切换SDA信号再拉低SCL信号)(接收端发送答应信号先拉高SDA信号,再产生SCL高低电平)

  4.IIC的通信信号结束:

通信开始信号,并经过数据交互的过程,需要使用结束信号结束通信。

1.停止信号,首先需要把SCL变为高电平(无论结束信号发生之前SCL信号电平是什么,现在都要变为高电平)。

2.当SCL变为高电平之后,SDA变为低电平(无论结束信号发生之前SDA信号电平是什么,现在都要变为低电平),并延时一段时间(如本文字上方图片,方框中的1us)。延时一段时间之后,切换SDA的电平变为高电平。

根据上方的通信开始信号、通信交互、通信应答、通信结束信号,可以组合数据发送和接收方式。

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值