×
接口总线驱动 > 详情

I2C接口信号_I2C字节传输格式和应用框图

发布时间:2021-04-20 发布时间:
|

I2C概述

I2C,又称IIC是Inter-IntegratedCircuit缩写,是Philips(现为NXP)上世纪80年代提出的专门用于芯片间通信的片间总线。

I2C接口信号

如表1所示,I2C接口总共包含两根信号线

I2C应用框图

图1为I2C典型的应用框图,图中MCUA/MCUB可以通过仲裁获得主设备权限,EEPROMADC为从设备。I2C支持如表2所示4种速率模式

I2C字节传输格式

I2C同之前讲的UART/SPI接口一样也是以字节为基本单位进行传输。不同的是,I2C的传输过程中包含了主从之间的握手。

如图2所示,I2C一次字节传输中由主机产生9个SCL脉冲,前8个脉冲时主机或者从机通过数据线SDA由高到低的bit序发送数据,所有数据跳变必须发生在SCL为低电平时。最后1个脉冲用于主从之间握手,数据接收方(主机或者从机)通过控制SDA产生握手信号,如果数据接收正常则接收方将SDA拉低给出ACK指示,否则释放SDA(高电平)给出NACK指示。

在一次字节传输前有START字符代表字节传输开始,之后有STOP字符代表字节传输结束。SCL为高电平时,如果SDA从高到低跳变则为START字符,如果SDA从低到高跳变则为STOP字符。

I2C数据传输格式

上一节提到的I2C字节传输格式是I2C数据传输的原子操作。对于一次完整的数据传输,由多个字节传输组成。I2C数据传输有3种情形:写传输,读传输,混合传输。

写传输:如图3所示。在主机发出START之后的第1次字节传输中,主机发送7bit从机地址,1bit写指示(0)。被寻址的从机在收到第1次字节传输后回复ACK。之后主机根据需要进行多次的字节传输,向对应从机写数据。从机每一次字节传输均需要回复ACK。当主机数据发送完毕后,发出STOP指示(图中的P)告知从机本次写传输完成。

读传输:如图4所示。在主机发出START之后的第1次字节传输中,主机发送7bit从机地址,1bit读指示(1)。被寻址的从机在收到第1次字节传输后回复ACK,并接管数据线向主机传递数据,主机每收到一字节数据则向从机回复一次ACK。最后一次字节传输时,主机回复NACK并且发出STOP告知从机读传输完成。

混合传输:对同一个从机进行读写混合传输。

I2C总线下所有从机地址必须唯一,且从机地址存在特殊的保留地址,比如7’b0000000为广播地址。所有I2C设备需要强制支持7bit地址,可选支持10bit地址。关于保留地址定义,以及10bit地址的传输格式,感兴趣的同学可以参考I2C协议文档,此处不再赘述。

后记

手头上最新的I2C协议版本是在2014年发布的UM10204(I2C-busspecificaTIonandusermanual)Rev.6版本。

I2C总线上拉阻值的选择,取决于I2C总线速率以及负载电容的大小,具体计算方式可以参考协议文档。I2C总线有很多变种,如CBUS/SMBUS/PMBUS/IPMI/ATCA/DDC总线,这些协议均在I2C基础上做一些特殊的命令扩展,通常情形下这些总线可以兼容支持I2C设备。I2C协议还定义了UltraFastMode速率可以提高至5Mbit/s,但该模式应用较少本文并未涉及。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
现场总线与局域网的区别是什么