I2C协议的原理和理解

      最后更新:2022-08-01 14:40:20 手机定位技术交流文章

      I2C协议:

      I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,没有外部接收器或传送器,如USART、CAN,所以被广泛使用。

      I2C物理层:

      1. 它是一个支持设备的总线。 在i2c设备总线中,可以连接多个i2c设备,支持多个i2c主机和多个i2c通信继电器。

      2. I2C总线只使用两个总线,一个串行数据总线(SDA)用于显示数据,一个串行时钟线(SCL)用于同步数据传输。

      3. 每个连接到总线的设备都有自己的单独的设备地址,主机可以从这个地址选择与连接到总线的设备进行通信。

      4. 总线通过上拉电阻接到电源(开漏)。当I2C空闲时,输出高阻态,当所有I2C设备都输出高阻态时,上拉电阻将总线置为高电平。

      5. 当多个主机同时使用总线时,通过仲裁选择哪个设备占用总线是合理的,以避免多个设备之间的数据冲突。

      6. 它有三个传输模式:标准100Kb/s、快速400Kb/s和快速3.4 Mb/s

      7. 与同一总线连接的IC数由总线的容量(400μF)限制。

        仲裁: SDA线的仲裁也建立在公共汽车上,有线“和”逻辑函数(线和逻辑,换句话说,两个或多个输出端口可以直接连接起来实现“AND”的逻辑函数。两个一出一,一个零的,没有一个零的)原则。节点发送1位数据后,比较主线显示的数据与自己发送的数据。是,继续发送;否则,进行比较,输出低压发送,输出高电平退出。SDA线的仲裁确保I2C总线系统正常通信,在试图同时控制多个主节点时不会丢失数据。总线系统只允许一个主要节点通过仲裁继续占领总线

      I2C总线协议原则:

      SDA串行数据线,SCL串行时钟线,所有必须与过载电阻连接,以保持在空时的高压水平。

      I2C协议相关条款:

      起始位置:SCL高压通常,SDA随

      2.停止位置:SCL高压通常,SDA沿着上升

      3.数据传输:

      i2c总线确保SCL数据传输中高压平衡,SDA数据传输稳定,因此SDA数据的变化只能在SCL低压期间发生。

      4.响应信号:当I2C主机发送8位数据时,SDA设置为输入状态,等待I2C从机器发出响应,也就是说,直到I2C告诉主机接收数据。响应信号由机器发送,主机需要提供响应信号所需的时钟,主机发送完 8 位数据以后紧跟着的一个时钟信号就是给应答信号使用的。从机器上拉下SDA来指示发送响应信号,表示通信成功,否则表示通信失败。

      5、I2C写时序:

      编写时间序列的具体步骤是: 步骤 3:1.从设备地址操作2.写入的登记册 3.写入的登记册的数据

      启动信号表示启动

      (二)需要操作的设备地址,高7位代表设备地址,最后位代表读写,因为写写时间序列为0;

      ACK响应信号是从机器发送的响应信号。0表示成功

      (四)开始启动位置

      (五)输入的注册地址,8位

      从机器发出的ACK响应信号

      输入的数据,8位

      (8)机器的响应信号

      (9)结束位

      6、I2C读时许:

      读时序的步骤:

      四步:1.需要操作的从设备地址 2.将需要读取的寄存器发送给从设备所以是写 3. 需要读取的从设备地址

      1. 从设备发送数据到可读注册表中的主机.

      启动信号,启动位置

      (2)需要的操作是从设备地址,高7位是设备地址,最后一个是读写操作,0是写,1是读,这是写,所以是0;

      (3)机器发出的ACK响应信号

      (四)启动信号

      (5)指定读取的注册表,8位

      从机器发出的ACK响应信号

      (七)启动信号

      再次确认设备地址,高7位设备地址,读写操作的最后一个地址,这里是读写操作,所以是1

      (9)ACK响应信号

      (10)读取I2C设备的数据

      (11)主机发送 NO ACK信号,表明读取完毕,不需要主机发送ACK信号

      (12)停止信号

      当读取数据方向时,主机机会释放SDA信号线的控制权,由SDA信号线控制,主机接收信号,

      当写数据方向时,SDA由主机控制,并从主机接收信号。

      I2C多字节读写序列

      有时我们需要读写多个字符,多字节读写序列和单字节基本一致性,只有在读写数据能够连续发送多个自己的数据时,其他控制序列与单字节相同。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/31162.html

          热门文章

          文章分类