最后更新:2021-11-12 09:20:42 手机定位技术交流文章
Philips的 I2C 通信协议(Inter-In综合电路)目前通常用于系统内许多集成电路(IC)之间的通信,因为该电路的腿小,硬件简单、可缩放,不需要USART和CAN等外部接收和发送设备。
I2C 物理层特征:
一. 这是一个多设备总线。 “ 居室” 指由多个设备共享的信号线。 多 I2C 通信设备可以连接到一台 I2C 通信总线, 使多个通信主机和多个通信操作员能够接通 。
I2C公共汽车只有两条公共汽车线,一条双向序列数据线(SDA)和一个字符串时钟(SCL),数据线用于信号数据,而时钟线用于同步数据接收和发送。
与公交车连接的每个设备都有自己的地址,东道方可以使用该地址进行设备间通信。
四. 当I2C设备闲置时,就会形成高抗药性,当所有设备闲置和产生高抗药性时,上脉冲阻力会将公共汽车推到高水平。
五. 为了避免数据冲突,当许多主机同时使用公共汽车时,仲裁用于选择哪些设备将使用公共汽车。
有三种传输模式:标准模式传输速率100千比特/秒,快速模式传输速率400千比特/秒,高速模式传输速率高达3.4百万比特/秒,但大多数/PC设备目前不支持高速模式。
400pF的公交车最大容量限制可能与同一辆公交车相连的IC的数量。

I2C的协议层:
《L2C协定》具体规定了通信启动和停止信号,以及数据有效性、答复、仲裁、时钟同步和地址广播。
一.L2C基本读写程序:
主机写数据到从机:
主机读取机器的数据 :
通讯复合格式:
2. 通信启动和关闭信号:
当SCL为高级人员时,SDA线从低级改为高级,导致通信中断。当SCL线高时,SDA线从高转到低,表示传输开始。
在多数情况下,主机产生起始和停止信号。
3.数据有效性:
SDA数据线利用SDA信号线传输I2C传输数据,并利用SSL信号线同步数据。SDA数据线利用SDA信号线传输SSCLdeliversfer数据,在SCLdelevissfer数据中每小时传输一个数据,在SSL信号线同步数据。SDA数据线在SCL每小时传输一个数据。
在高空时,SCL传输的自失能系统数据是有效的,即高空数据为“1”,低空数据为“0”。
当SCL为低水平时,SDA数据是无效的,而目前SDA通常为下一个数据转换准备就绪。
四. 地址和数据导向:
I2C总线上的每个设备都有自己的独立地址,当连接启动时,主机提供SDA信号线上的设备地址(SLAVE_ADPRESS)。设备地址可能为7或10。
RW是接近设备地址的一个数据位,用于显示数据传输的方向;当数据方向为1时,主机从机器上读取主机;当数据方向为0时,主机是从机器上写入的。
5.响应:
I2C 数据和地址传输使用“回复(ACKs)”和“非回复(NACKs)”信号确认。

主机时钟在传输时形成,在第九小时,数据发送器对自失能系统进行释放控制,数据接收端控制自失能系统,如果自失能系统处于高水平,则无反应信号(NACK),如果自失能系统处于低水平,则反应信号(ACK)。
最后,这里是如何在 STM32 上生成 I2C 信号:
软件模拟规程:使用CPU直接操作电信火花,提供符合通信规程标准的逻辑。
硬件实现协议:STM32用于执行L2C通信协议的外部I2C将自动生成协议所需的通信信号,传输和发送数据,并隐藏数据,只要探测到外部状态和访问数据储存库,CPU将完成数据的接收和分发。
STM32 外部I2C可用于通信,其速度为100千比特/秒、400千比特/秒、7位和10位设备地址、DMA数据传输和数据验证功能。
本文由 在线网速测试 整理编辑,转载请注明出处。