通信协议3-IIC总线协议

1. 简介

IIC是一种串行,半双工总线,主要应用于近距离、低速的芯片间通信。IIC总线有两根双向的信号线。一根为数据线SDA用于传输数据,另一根时钟线SCL用于通信双方时钟的同步。 

 

IIC总线是一种多主机总线,连接在上面的分为主机和从机。主机有权利发起和结束一次通信,从机只能被主机呼叫。为了防止多主机同时启用主线,IIC协议具有冲突检测和仲裁功能来防止错误发生。

每个器件都有唯一的一个地址(7bit),且每一个器件都可以作为主机或从机。通信过程如下:

1. 主机发送起始信号启用总线,这样其他的主机就会知道总线已被启用。

2. 主机发送一个字节的数据(8bit)指明从机地址和后续字节的传送方向,即指明7位的地址加上1位表明传送方向的数据。第0位也就是最右边那位是判断字节,0时表示由主机给从机传送数据,1时表示由从机给主机传送数据。这字节数据会传送给每一个从机,他们再去判断是否和自己的地址是一样的。发送开始后,传送方向就不允许改变了。

3. 被寻址的从机发送应答信号回应主机。

4. 发送器发送一个字节数据。

5. 接收器发送应答信号回应发送器。(注意第4和5步不一定是主机发送给从机,有可能也是从发送给主,这要看第三步的一个字节数据中第0位是0还是1)

。。。。。。

n. 通信完成后主机发送停止信号释放总线,其他主机接收到这一信号就知道总线已经可以被占用了。

在空闲时,IIC总线的SDA和SCL都是高电平。在SCL时钟信号是高电平,SDA数据信号由高变低时,表示起始信号;在SCL时钟信号是高电平,SDA数据信号由低变高表示停止信号。

IIC总线通信规定必须一次最少发送一个字节长度的数据,在传送时,先传送高位(和串口UART通信相反)。接收器在接收到八位的数据后,要返回1位应答位来回应发送器。即一帧有9位,前八位发送器发送的数据,后一位接收器返回的数据。应答位是低电平。

在SCL时钟线为低电平期间,允许发送器向数据线上发送一位数据,在此期间数据线SDA上可以变化;在SCL时钟线为高电平期间,允许接收器在数据线上读取一位数据,在此期间数据线SDA上不可以改变。

2. IIC经典时序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值