IIC 通信协议
串口通信与IIC相比的缺点
1.串口通信通常需要至少三条线(TX、RX和GND),而IIC总线需要两条信号线(SDA和SCL);
2.串口通信仅支持一对一通信,而IIC总线支持多机通信,润许单个主机与多个从机设备进行通信;
3.串口通信通常无应答机制,而IIC必须有应答机制;
4.串口通讯一般是异步通信,而IIC使用同步传输方式,数据在时钟信号(SCL)的控制下传输;
IIC总线介绍
工作原理:
主从关系:主器件作用于启动总线传送数据,并产生时钟以开放传送的器件,在总线上主和从、发和收的关系并不是恒定的,而是取决于此时数据传送方向
数据传送:
如果主机要发送数据给器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送。
如果主机要接收从器件的数据,首先由主器件寻址从器件,然后主机接收从器件发送的数据,最后由主机终止接收过程。
时钟同步: SCL用于数据的时钟同步,确保主从设备之间的数据传输同步进行
应用领域:
IIC总线广泛应用于各种设备和应用领域,例如传感器,存储器,显示屏,温度传感器,实时时钟(RTC)、拓展IO芯片等。
特别注意:
如果是一主一从则可以选择推挽输出或者是开漏输出,但是必须要有两个上拉VCC,如果是一主多从则必须是开漏输出,而且也必须要有两个上拉VCC;
IIC的时序:
第一步
第二步
第三步
每当一个字节的数据传输完成后,接收方会向发送方发送一个应答信号(ACK)或非应答信号(NACK)
应答信号在SCL的第9个时钟周期(当SCL为高电平时)发送
如果SDA线为低电平,则表示ACK(有效应答),表示接收方已成功接收该字节
如果SDA线为高电平,则表示NACK(非应答),通常表示接收方接收该字节没有成功。