IIC基础知识(集成电路总线)
区别UART学习,UART一对一,IIC一主多从,多主多从。
总线构成:IIC 总线由两条线组成,即串行数据线(SDA)和串行时钟线(SCL)。所有连接到 IIC 总线上的设备都与这两条线相连,通过它们进行数据的传输和同步。
总线上的每个设备都有一个唯一的地址(从机地址)七位从机地址最后一位从机硬件控制,既可以作为发送器也可以作为接收器。总线上的信号电平通常与所使用的逻辑电平标准一致,如常见的 3.3V 或 5V。(一主多从)
IIC 总线的数据传输
数据格式:数据以字节为单位进行传输,每个字节包含 8 位数据。在传输时,先传输最高位,然后依次传输其余位。
传输方向:数据传输可以是单向的,也可以是双向的,取决于设备的角色和通信需求。主机可以向从机发送数据,也可以从从机读取数据。
应答机制:为了确保数据传输的准确性和完整性,IIC 总线采用了应答机制。在每个字节传输完毕后,接收器会向发送器发送一个应答信号(ACK),表示数据已经正确接收。如果接收器没有发送 ACK 信号,发送器会认为数据传输失败,可能会重新发送数据。
IIC 总线的通信过程
- 起始和停止条件
- 起始条件:当主机想要与从机进行通信时,它会在 SCL 线为高电平时,将 SDA 线从高电平拉到低电平,以此表示通信的开始。(SCL为高电平读取SDA的数据) SCL(串行时钟线)SDA(串行数据线)
- 停止条件:通信结束时,主机在 SCL 线为高电平时,将 SDA 线从低电平拉高到高电平,标志着一次通信的结束。
- 地址阶段:起始条件之后,主机首先发送一个 7 位或 10 位的从机地址,以指定要与之通信的从机设备。紧接着是一位读写位(R/W),用于表示主机是要向从机写入数据(R/W = 0)还是从从机读取数据(R/W = 1)。
- 数据传输阶段:地址阶段之后,就进入数据传输阶段。主机和从机根据读写位的设置,进行数据的发送和接收。