IIC通讯协议的电路设计

描述

前面我们概述过一些常见的通讯协议,本文着重讲讲关于IIC协议。

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

1. 对于IIC主机总线上是可以挂1个或者多个从机设备。

2. 每个从机是通过其各自的地址来识别。

电路设计

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

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

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

IIC寻址

1. 通常对于一个7bit的地址,包含1个额外的读写位。

2. 对于IIC总线上的每一个设备都有一个独立的地址。

3. 重复的地址会导致通讯错误。

4. 对于一些设备会有PIN管脚用来配置不同的IIC地址。

电路设计

IIC通讯

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

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

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

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

启动>MSB->...LSB->ACK->停止

电路设计

对于有效数据传输:

1. 在时钟信号SCL为高的整个脉宽内SDA必须保持稳定。

2. 只有在SCL脉冲为低的时候,SDA才被允许高低切换,如果SDA在SCL为高的时候变化,则会被认为是Start/Stop。

电路设计

 

IIC的电路设计

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

电路设计

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

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

全部0条评论

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

×
20
完善资料,
赚取积分