I2C通信协议详解和通信流程分析

      最后更新:2022-03-31 23:15:27 手机定位技术交流文章

      1、I2C通信特征

      SCL + SDA是物理界面。

      (1) SCL(连续时钟):携带CLK信号的时钟线是I2C主装置从该装置接收时钟的路线。
      (2) SDA(序列数据):完全通过SDA线传输的数据线。

      一.2. 连续、同步、无差异、低速通信功能

      序列:单条数据线,每条传输一个位数;
      同步:主设备与设备的工作时钟频率相同,主设备通过SCL时线提供设备的时钟频率。
      (a) 无差别:使用I2C通信是因为通信速度低和双方相邻,一般是平坦的;
      I2C通常用于在同一董事会上的两个IC之间进行沟通。传输的数据数量微乎其微因此,通信速度极为缓慢。一般几百KHz,不同I2C芯片的通信速度可能不同。您所使用的设备允许的 I2C 通信的最大速度, 尤其会影响编程 。不能超过这个速率;

      一.3. 通信机制:初级设备+二级设备

      (1) 就I2C通信而言,通信设备的地位是平等的,分为初级设备和二级设备,初级设备是一个,二级设备数量众多,初级设备应领导整个通信进程,二级设备应根据I2C协议被动地答复主要设备。
      (2) 在I2C通信中,双方不必就设备所有人和设备追随者的问题进行协商,设备只有作为主设备或从设备同时使用,但有些设备可以作为软件,以确定在通信时是作为主设备还是从设备使用。

      一,四,几件小玩意可能挂在公共汽车上

      在这里插入图片描述

      (1) I2C大客车可支持一个主要装置和无数件设备,实现一对一(一个主装置加一个设备)或更多(一个主装置加多件设备)。
      (2) 主设备负责运送公共汽车,在特定时间确定,从设备中通信,同时,只有主设备,其中一台从设备中通信,其余设备处于等待主要设备与其通信的状态。
      (3) 在I2C公共汽车上,每件设备都有自己的地址,主要装置是将不同物品与设备分开的地址,确定与哪些物品相互作用。

      一.5. I2C公共汽车的现状

      当SCL和SDA都具有高电解作用时,就有自由。
      忙碌:主要设备和设备通讯;
      (a) 启动状态:当主装置在I2C总线上发送启动信号并启动通信时;
      (a) 停止状态:当主装置在I2C公共汽车上发出停止信号时,通信即终止。

      一.6. I2C公共汽车议定书

      (1) 主装置传输启动信号;
      (2) 主装置然后发送8比特数据,其中7个来自设备地址,其中一个信号表示主装置是读取数据Heith写数据。
      (3) 如果地址与主设备提供的地址相符,该工具提供杰克响应信号。
      (4) 装置的主数据/从传输数据传输到SDA总线,每次传输使用8比特数据;
      (5) 设备通过自失能系统线提供的主要/接收数据,然后传送ACK反应信号;
      (6) 传送和接收程序也可以在 n 上跟踪;
      (7) 主装置发出停止信号,终止链接。

      1.7、主要用途

      I2C通常用于极近的董事会级连接,而如外部数据手册所述,Soc和不同的外部通信,例如触摸屏、各种传感器等等,是I2C的通信方式。

      2. I2C控制器的结构结构

      在这里插入图片描述

      (1) I2C 客车的时钟源来自时钟系统、PCLK_PSYS和PCLK_PSYS。 时钟系统在分裂频率后获得I2C 客车的时钟频率,然后主设备通过SCL线从设备发送时钟信号。
      (2) I2C公共汽车控制模块,它有两个重要的储户:I2CON和I2CSTAT。PLK_PSYS时钟信号将有控制单位提供的两阶段频率。为了产生必要的通信时间序列信号,安装 I2C 设备的主要模式, 等等 。详情见两名存款人的说明。
      (3) 在使用设备时,使用地址登记簿和比较器。地址登记册的内存被保存为设备中的地址 。复合体是一种比较类型。这次比较了从 I2C 设备上获取的地址和他们自己的地址。如果两者相同,则主要装置与自身相互作用。如果不相等,没有必要处理这一来文。
      (3) Schift登记册和I2CDS:I2CDS登记册收发存储处数据。Shift Register是一个移动的登记册。它负责将I2CDS登记册的数据一次传送给SDA公共汽车。相反,这些数据可能逐个储存在I2CDS公共汽车上。这取决于电文是发出还是收到。

      I2C 控制器模型

      (1) 设备的主要分配手段;
      (2) 机器的主要接收方式;
      (3) 机器交货方式;
      (四) 接收设备的方式;
      注意:设备可以是上述四个模型中的任何一种,但其中只有一种可以同时使用,既可以作为主要设备,也可以作为设备的来源。

      4 I2C时间序列分析

      4.1、时序介绍

      时间顺序是时间序列,通信中的实时时间序列是通信线路按时间顺序变化,通信中这些变化的意义是时间顺序,与就错误通信达成协议所需的时间顺序不同。

      四.2. 通信启动和终止的条件

      在这里插入图片描述

      (a) 第一个信号:当SCL高时,SDA提供一条下降路径。
      当 SCL 高时, SDA 创建一条向上线作为停止信号。

      4.3、数据有效性

      在这里插入图片描述

      (1) 在时钟的高高度阶段,SDA线上的数据必须稳定。数据线的高度或低水平状态只有在SCL线的时钟信号低的情况下才能改变。高高度时间的 SCL 是准确的 。SDA是"高公寓"的缩写当低水平时,它表示“0”和SCL意指不正确的数据。在现阶段,民主行动党将有一个平开关。准备迎接下一个数据信号
      (2) 数据完整性:在使用I2C总线时,在公共汽车上交换的数据并不总是准确的。和信号的开始和停止是一样的它没有真正意义。它只是一个通信协议。这是因为,我们的良好数据应该稳定在SCL的高海拔高度。因此,可以区分开始和停止的信号。

      4.4、响应ACK

      在这里插入图片描述

      在将数据一次传输到/从设备后,需要一个ACK反应信号。每个电信周期8位数据在第九个通信周期,发送者激活了SDA公共汽车。然后放弃对公共汽车的控制。第九轮 如果接收器击落了自失能系统是ACK信号 是ACK信号 是ACK信号 是ACK信号 是ACK信号 是ACK信号 是ACK信号 是ACK信号 是ACK信号 是ACK信号如果SDA在第一周期是高的, 没有ACK信号。

      4.5、空闲态

      在这里插入图片描述

      (a) 自由:没有来自I2C公共汽车设备的重要通信,当时SCL和SDA仍然处于高水平;

      5. I2C 公共汽车数据读/写作业

      在这里插入图片描述

      5.1、读模式

      (1) 启动信号由主设备发出。
      (2) 主设备随后发送8比特数据,其中7比特为设备的地址,1比特表示主要设备打算读取数据Heith写入数据
      (3) 从装置中传输ACK反应信号
      (4) 从设备到ACK反应信号,主装置所写的数据按每小时8比特传送到SDA线。
      (5) 在主装置完成数据后,发出停止信号。

      5.2、写模式

      (1) 启动信号由主设备发出。
      (2) 主设备随后发送8比特数据,其中7比特为设备的地址,1比特表示主要设备打算读取数据Heith写入数据
      (3) 从装置中传输ACK反应信号
      (4) 数据从装置以8比特的速率传送到SDA线,接收主装置以提供ACK反应信号。
      (5) 当主装置收到数据时,即发出停止信号。

      6. I2C交流过程

      六.1. I2C通信设备分配主要程序

      在这里插入图片描述

      (1) 使用I2CON登记册将设备设置为主要发送方式。
      (2) 从装置的地址向I2CDS登记册写信;
      (3) 在 I2CST 登记册中输入 0xF0, 使 I2C 控制器生成启动信号 。
      (4) I2CDS的数据通过移动登记册传送到SDA公共汽车上。
      (5) 在等待ACK信号时,中断时间被挂断,信号表明传输周期已经完成,处理过程必须中断。
      (6) 扰乱评估来文是否应予终止的程序;
      (7) 如果来文没有结束,将新数据写入I2CDS登记册,暂停标记,将数据转移到SDA公共汽车上,然后进行下一次判决。
      (8) 为终止此通信,将 0xD0 写入 I2CSTAT 登记册,创建停止信号、中断信号,并在停止信号发出时终止通信。

      六.2. 接收I2C通信程序的主要设备

      在这里插入图片描述

      (1) 使用I2CON登记册将装置设置为主接收模式;
      (2) 从装置的地址向I2CDS登记册写信;
      (3) 将 0xB0 发送到 I2CST 登记册,使 I2C 控制器生成启动信号。
      (4) I2CDS的数据通过移动登记册传送到SDA公共汽车上。
      (5) 在等待ACK信号时,中断时间被挂断,信号表明传输周期已经完成,处理过程必须中断。
      (6) 扰乱评估来文是否应予终止的程序;
      如果来文没有被阻止,请阅读I2CDS登记册上的数据,暂停标记,在I2CDS登记册上保存SDA数据,然后作出下一份通知判决。
      (8) 为结束本来文,将0x90写入I2CSTAT登记册,该登记册生成停止信号,标记明显中断,并在停止信号发出时关闭通信。

      六.3. 收到从设备收到的I2C通信

      在这里插入图片描述

      (1) I2CON登记册用于从接收模式设置设备。
      (2) 检测SDA公共汽车上的启动信号和接收I2CDS登记册上的数据;
      (3) 比较I2CDS登记册上收到的数据和I2CAD登记册上记录的地址;
      (4) 挑选匹配;
      (5) 如果没有发现匹配,请说明主装置与自身没有互动,以后的行动不再需要。
      (6) I2C 地址匹配中断,指示设备所有人与自己互动并发出ACK信号。
      (7) 从SDA总线接收数据,进行处理,并发送后中断的ACK信号。
      (8) 如果通信应予终止,即主要装置是否得到承认,是否发送了停止信号;
      (9) 如果通信没有中断,则将数据从SDA总线重读到I2CDS登记册,然后引起中断并重复前几个阶段。
      (10) 一旦切断接触,无需进一步答复;

      六.4. I2C通信用于设备调度过程。

      在这里插入图片描述

      (1) 通过操纵 I2CON 登记册,该设备根据发件人模式配置。
      (2) 检测SDA公共汽车上的启动信号和接收I2CDS登记册上的数据;
      (3) 比较I2CDS登记册上收到的数据和I2CAD登记册上记录的地址;
      (4) 挑选匹配;
      (5) 如果没有发现匹配,请说明主装置与自身没有互动,以后的行动不再需要。
      (6) I2C 地址匹配中断,指示设备所有人与自己互动并发出ACK信号。
      (7) 在清理I2CDS登记册之前将数据发送至登记册;
      (8) 如果通信应予终止,即主要装置是否得到承认,是否发送了停止信号;
      (9) 如果通信不中断,将I2CDS登记册的数据传送至SDA总线,然后引起中断,并重复前述步骤。
      (10) 一旦切断接触,无需进一步答复;

      I2CCON 7号仓库

      在这里插入图片描述>(1)bit0-3:配置I2C时钟信号的二级分频系数;
      (2) 中断的标记(比特4);
      (3)比特5: I2C 公共汽车发送/接收;
      (4)比特6:I2C时钟信号设置的第一级频率系数;
      (5)比特7:指示I2C总线配置是否应在每个通信周期结束时传送ACK响应信号。

      I2CSTAT 8号仓库

      在这里插入图片描述

      (1)bit0:用于确定在上一个通信周期是否收到ACK响应信号。
      (2) 第2位:I2C公共汽车地址清楚明了;
      (3) 位数2: 从设备地址标记调出的 I2C 公交车;
      (4) Bit3:I2C首席总裁;
      (5) Bit4:发送/接收推进器的位置;
      (6)bit5: 读取时, 0 表示自由, 1 表示忙碌; 写入时, I2C 控制器发送停止信号, 1 表示启动 。
      (7)bit6-7:配置模型;

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

          热门文章

          文章分类