I2C通信序列的典型特征

时间:2024-11-15
  I2C(Inter-Integrated Circuit)是一种广泛使用的串行总线通信协议,主要用于短距离的设备间通信(如传感器、EEPROM、显示器等)。I2C通信协议有一些典型的特征和规则,以下是其通信序列的关键特征:
  1. 总线结构
  双线制通信:I2C总线只有两条信号线:
  SCL(Serial Clock Line):时钟线,用于同步数据传输。
  SDA(Serial Data Line):数据线,用于传输数据。
  多主机、多从设备:I2C支持多个主机(Master)和多个从机(Slave)在同一总线上通信。
  2. 通信序列
  I2C通信的基本序列包括以下几个步骤:
  起始信号(Start Condition,S):
  主设备通过拉低SDA线(数据线)而SCL线保持高电平发出起始信号。起始信号标志着总线通信的开始。
  在I2C总线上,通信序列的开始总是以起始信号为标志。
  地址传输(Addressing):
  主机发送7位或10位的从机地址,并附带一个读/写标志位(R/W)。地址通常是7位(高7位),而位则表示读/写操作(0为写,1为读)。
  从设备根据匹配的地址来识别是否是该设备来进行通信。
  读/写操作:
  如果是写操作(R/W = 0),主机向从机发送数据。
  如果是读操作(R/W = 1),主机从从机接收数据。
  应答信号(Acknowledge,ACK):
  每一位数据传输完成后,接收方(无论是主机还是从机)都会发出一个应答信号,即将SDA线拉低,表示数据已正确接收。如果接收方不发出应答(NACK,No Acknowledge),表示数据未成功接收或者通信结束。
  每次发送一个字节的数据后,都会有一个ACK/NACK信号。
  数据传输(Data Transfer):
  数据传输是按字节进行的,每个字节由8位数据组成。每个字节后面都会有一个ACK信号,表示接收方已经收到数据。
  停止信号(Stop Condition,P):
  通信结束时,主机发送停止信号,停止信号是通过将SDA线从低电平拉高至高电平时,SCL线保持高电平状态下发送的。
  停止信号标志着当前通信的结束,设备之间可以开始新的通信。
  3. 时序和同步
  同步传输:I2C是同步协议,数据的传输是由时钟(SCL线)同步的。时钟线的上升沿或下降沿控制数据的读取与写入。
  位传输时序:每个数据位的传输都是在时钟信号的每个周期内进行的。通常在时钟的上升沿(或下降沿,取决于实现)进行数据读取或写入。
  4. 数据传输格式
  每个I2C数据字节(8位数据)后,都会有一个ACK/NACK信号。
  数据传输格式:每8位数据后,接收方(从机或主机)都会发出ACK信号,告知发送方数据已正确接收。如果发送的数据没有接收到ACK信号,发送方会判断数据传输失败。
  ACK/NACK:
  ACK:如果接收设备(主机或从机)接收到数据后发出ACK,表示接收成功。
  NACK:如果接收设备没有接收到数据或者发生了错误,则发出NACK,表示传输失败或结束。
  5. 多主模式和从设备的地址选择
  多主模式:I2C协议支持多个主设备在同一总线上进行通信,主设备之间通过总线争用来决定哪个设备可以控制总线。
  从设备地址:每个从设备都有一个的地址。7位地址(高7位)是由制造商指定的,而位是R/W位,标志着操作是读取还是写入。
  6. 总线速率
  I2C总线的速度通常有几种不同的标准:
  标准模式(Standard mode):100 kbps。
  快速模式(Fast mode):400 kbps。
  高速模式(High-speed mode):3.4 Mbps(用于更高速度的设备)。
  超高速模式(Ultra-fast mode):用于一些特定的应用,速度可达到5 Mbps或更高。
  I2C通信的典型时序图:
  SDA: |  S  | A  | A  | A  | A  | P  |
  |    |    |    |    |    |    |
  SCL: |    |    |    |    |    |    |
  ↑    ↑    ↑    ↑    ↑    ↑    ↑
  ↑    ↑    ↑    ↑    ↑    ↑    ↑
  Start   Address   Data    Stop
  S = Start Condition(起始信号)
  A = Acknowledge(应答信号)
  P = Stop Condition(停止信号)
  总结
  I2C通信序列的典型特征包括:
  通过SDA和SCL两条线路进行数据传输;
  每次通信以起始信号(Start)开始,以停止信号(Stop)结束;
  使用7位地址来识别设备,并通过R/W位决定是读取还是写入;
  每个字节的传输后都会有一个ACK信号,用于确认数据是否接收成功;
  支持多主机和多个从机,适合多设备之间的低速通信。
上一篇:电位器三个引脚怎么接?
下一篇:音频TRS接口是什么?TRS接口的2种分类

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料