lllxxx111 发表于 2023-3-31 11:35

一文搞懂IIC的原理、实现方式和工作状态(一)

一文搞懂IIC的原理实现方式和工作状态
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通信协议是一种双向、同步、多设备共享的串行通信协议,可以连接微控制器和外围设备,用于数据的传输和控制。(未完待续)

页: [1]
查看完整版本: 一文搞懂IIC的原理、实现方式和工作状态(一)