讲讲关于IIC通讯协议的基础知识

电子说

1.3w人已加入

描述

IIC(Inter-Integrated Circuit)的硬件连接

1 对于IIC主机总线上是可以挂1个或者多个从机设备。
  
2 每个从机是通过其各自的地址来识别。

SCL


IIC的数据和控制线(SDA和SCL)

1 SCL(Serial clock),时钟线,用于同步数据传输时序,是一个方波,由主机来驱动,其决定了数据传输的快慢。

2 SDA(Serial data),数据线,用于传输数据,

IIC寻址

1 通常对于一个7bit的地址,包含1个额外的读写位。
2 对于IIC总线上的每一个设备都有一个独立的地址。
3 重复的地址会导致通讯错误。
4 对于一些设备会有PIN管脚用来配置不同的IIC地址。

SCL

IIC通讯

START,起始位,由主机初始化,SCL高的时候拉低SDA。

STOP,停止位,SCL高的时候,主机释放SDA PIN脚。

ACK(acknowledge),每一次传输一个单字节或者8bits之后,会跟一个SCL的脉冲,这个acknowledge信号是从机应答主机的信号,表示ACK信号之前的那个字节通讯是成功的。

如下是一个标准的IIC写时序:

Start->MSB->…LSB->ACK->Stop

SCL

对于有效数据传输:

1 在时钟信号SCL为高的整个脉宽内SDA必须保持稳定。
2 只有在SCL脉冲为低的时候,SDA才被允许高低切换,如果SDA在SCL为高的时候变化,则会被认为是Start/Stop。

SCL

IIC的电路设计

1 对于3.4Mbps速率以下的IIC,是漏极开路(Open Drain)的结构,此时需要外部上拉电阻,上拉电阻的选择需要考虑上拉之后的rise/fall的时间是否满足其时序要求同时也需要考虑功耗。上拉电阻越大,功耗越小,但rise/fall时间越长,会影响通讯;上拉电阻越小,功耗越大,但rise/fall时间短,会降低通讯的误码率。

SCL

2 对于3.4Mbps速率以上的IIC,其是推挽(Push Pull)的结构,其rise/fall的时间就完全取决于主机/从机设备内部的push/pull的能力。需要注意的是,不同设备之间的通讯需要选择同样结构的IIC。
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分