IIC串行总线详解:UART与IIC通讯机制

需积分: 0 2 下载量 121 浏览量 更新于2024-08-05 收藏 257KB PDF 举报
"UART IIC通讯说明" UART (通用异步收发传输器) 和 IIC (Inter-Integrated Circuit,也称为I2C) 是两种不同的通信协议,常用于微控制器和其他电子设备之间的通信。 IIC是一种多主机、多从机的两线制串行通信协议,由飞利浦(现NXP)公司开发。它主要由两根线构成:SDA(数据线)和SCL(时钟线)。所有连接到IIC总线的设备共享这两条线,其中SDA用于数据传输,SCL则同步传输速率。IIC总线上可以连接多个主设备(如单片机)和多个从设备(如传感器或存储器),但同一时间只能有一个主设备控制总线。 在IIC通信中,总线的控制权通过开始和停止信号来切换。开始信号是由主机发送的,表现为SCL保持高电平时SDA由高变低;停止信号则是SCL保持高电平时SDA由低变高。开始信号标志着数据传输的开始,而停止信号表示传输结束,释放总线。数据传输过程中,SDA线上的数据必须在SCL低电平时改变,高电平时保持稳定,以便从设备在SCL高电平的周期读取数据。 每个8位数据传输后,从机会通过一个响应信号(ACK)确认收到数据。主机在发送完8位数据后释放SDA,由上拉电阻将其拉高。如果从机成功接收数据,会在第9个时钟周期将SDA拉低,主机检测到这个低电平即认为数据已被接收。数据的传输是从最高位(MSB)开始的。 IIC总线寻址阶段,主机先发送一个8位的寻址字节,该字节包括从机地址和写/读标志位。如果从机识别到自己的地址,会发送一个ACK信号,否则保持SDA为高,表明未响应。一旦从机确认地址并准备接收或发送数据,主机就可以开始传输实际的数据。 相比之下,UART是一种全双工通信协议,允许数据同时在两个方向上传输。UART通常需要至少四条线:TX(发送)、RX(接收)、GND(地线)和可能的CTS/RTS(握手信号)。UART的通信速度和帧格式可由双方协商设定,通常包括起始位、数据位、奇偶校验位和停止位。 总结来说,IIC适合于短距离、低速、低功耗的设备间通信,适合连接多个从设备,而UART更适合于需要较高数据速率且通信双方独立的通信场景。两者在应用上各有优势,可根据具体需求选择合适的通信协议。