i2c是inter-integrated circuit的缩写,又名为twi,只需要用两条物理线进行传输,分别命名为sda和scl,用于传输serial data和serial clock。i2c工作时分为主从工作模式,而在同总线上可以存在多个主机。每一个连接到总线的器件都可以通过唯一的地址与总线连接,主机控制主机为发送器模式或是接收器模式。多个主机控制时可以通过冲突检测和仲裁防止数据被破坏。i2c总线有几种不同速率的工作模式,标准模式的速率为100kbps,快速模式下速率为400kbps,在高速模式下速率可达到3.4mbps。整理下i2c基本的传输方式。
数据发送过程
发送从起始到结束为一次完整发送过程,如图所示一次完整的发送过程,起始后先发送地址信息,r/w表示写入或是读取数据,如果一次过程中,需要切换读写操作时,需要重新发送start。sda线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制,而每个字节后必须跟一个响应位。从机在处理其他事件而不能接收数据时,可以通过控制scl保持低电平来等待数据接收,等到准备好继续传输时,释放scl。在总线上每个模块具有唯一的地址,当然亦可以设计广播地址,通知所有其他模块。
启动和停止
当i2c不工作时,sda和scl一样都处于高位high,scl保持为high,sda由high变low时表示开始传输,而scl保持high,sda由low变为high时表示停止传输。sr和s完全相同,差别只是第一次start之后没有进行stop,再次启动start。
数据产生
sda上传送的数据必须在时钟高电平时保持稳定,而数据的改变只有在scl为低时进行,而scl由主机控制产生。
冲突仲裁
主机在总线空闲时候启动传输。而当总线上有多个主机时,可能产生同时启动的冲突,因此需要仲裁。仲裁方式是,当scl线是高电平时,仲裁在sda线发生 这样在其他主机发送低电平时发送高电平的主机将断开它的数据输出级,因为总线上的电平与它自己的电平不相同,总线上的电平总是在一个输出为低时就为低。仲裁可以持续多位,当丢失仲裁的主机同时具有从机功能时,需要立即切换从机状态。
从机挂起数据发送示例
长期挣扎在生死线上的特斯拉,带来了一些电动汽车企业短期内的生存困境
梁孟松的中芯三年
荣耀9上手评测:华为荣耀9怎么样?国产旗舰手机王者,配置、价格超良心!
基于NI PXI-5105和虚拟仪器实现相控阵列数据采集系统的设计
CXL是什么?为什么它是各种应用程序的游戏规则改变者?
I2C基本的传输方式知识整理
光矢量分析系统测量法拉第旋光镜的偏转角度
氨气检测仪的传感器采用什么原理
什么是工业主机 它由什么组成
如何将追踪传感器放入药品中
要真正实现无人驾驶,如何选择雷达装置?
基于三叉树链表的编译器中间结构的设计方案研究
阿里云发布飞象IIoT平台 开辟智造工业新路径
中标喜讯 | 芯盾时代中标格力博(江苏)股份有限公司 提升企业身份治理水平
魅蓝note5什么时候上市,12月6日魅蓝note5发布 年度销量就靠你了
机器人在新消费时代的应用
4.3寸-10寸智能组态屏系列的功能及参数介绍
英伟达:美国管制很明显对英伟达在中国的业务产生负面影响
守护绿水青山,水环境监测4G通讯解决方案
关于QE位与IO功能复用关联设计