1、IIC介绍
IIC(Inter-Integrated Circuit)是一种串行通信协议,由Philips公司开发,用于连接微控制器和外围设备,是一种双向的、同步的串行总线协议。I2C协议有两根线:数据线(SDA)和时钟线(SCL),可以连接多个设备,每个设备都有一个地址,可以通过地址来选择需要通信的设备。
IIC通信协议的基本流程如下
主控制器发送起始信号(Start),包括在SCL线上产生一个下降沿后,SDA线上出现一个下降沿;
主控制器发送设备地址和读写控制位(R/W),用于选择需要通信的设备;
选择的设备响应主控制器,表示已经准备好通信;
主控制器发送数据或命令到设备;
设备接收主控制器发送的数据或命令;
主控制器发送停止信号(Stop),包括在SCL线上产生一个上升沿后,SDA线上出现一个上升沿,结束通信。
具体来说,在I2C通信协议中,主设备向从设备发送或写入数据的流程如下:
主设备发送起始信号,通知总线上的所有设备,主设备将要开始通信。
主设备发送从设备的地址和写入位。地址中包含从设备的地址和读写位,读写位表示是要读取从设备的数据还是向从设备写入数据。
主设备等待从设备的应答信号,如果从设备存在并成功接收了地址信息,从设备会发送应答信号。
主设备发送要写入的数据到从设备,从设备确认接收到数据并发送应答信号。
主设备可以继续发送更多的数据,直到完成所有的数据传输。
主设备发送停止信号,表示通信结束。 总的来说,主设备向从设备发送数据的过程是先发送起始信号,然后发送从设备地址和写入位,等待从设备应答信号,发送要写入的数据,等待从设备应答信号,继续发送更多的数据,最后发送停止信号。
主设备接收从设备数据流程差不多,但是注意以下几点
主设备开始接收从设备发送的数据,每接收一个字节的数据,主设备都会发送应答信号,表示准备好接收下一个字节的数据。
当主设备接收到从设备的最后一个字节时,主设备发送非应答信号,表示数据传输结束。
主设备发送停止信号,表示通信结束。
总的来说,主设备从从设备接收数据的过程是先发送起始信号,然后发送从设备地址和读取位,等待从设备应答信号,开始接收从设备发送的数据,发送应答信号表示已经准备好接收下一个字节的数据,接收完最后一个字节时发送非应答信号表示数据传输结束,最后发送停止信号。
2、I2C通信协议的特点:
双向的:可以在同一条总线上进行读写操作;
多设备共享:可以连接多个设备,每个设备都有一个地址,可以选择需要通信的设备;
时序同步:由时钟线控制数据传输的步进,每个数据位都在时钟线上的一个时钟周期内传输;
传输速率慢:I2C通信速率较慢,最高速率一般为400Kbps。
总之,I2C通信协议是一种双向、同步、多设备共享的串行通信协议,可以连接微控制器和外围设备,用于数据的传输和控制。
(未完待续)