学习目标:学习IIC驱动原理;
一、IIC总线协议
IIC串行总线包括一条数据线(SDA)和一条时钟线(SCL),支持“一主多从”和“多主机”模式;每个从机设备都有唯一的地址来识别。
图 1 IIC 主从结构
二、IIC信号和时序
IIC总线有3种类型信号:
1)开始信号S
SCL为高电平,SDA由高电平跳变为低电平,开始传输数据。
2)结束信号P
SCL为高电平,SDA由低电平跳变为高电平,结束传输数据。
3)响应信号ACK
接收器在接收到8位数据之后,在第9个时钟周期,拉低SDA电平。(如图Acknowledge)
数据传输过程中,SDA上的数据必须在SCL高电平期间保持稳定,SDA上的数据在SCL为低电平期间变化:
三、数据传输格式
IIC主从机之间通讯步骤如下:
1. 主机发送一个起始信号S通知总线上的从机就位;
2. 主机发送从机地址和读写标志共8位,其中从机地址占高7位,读写标志占用最低位(0为写,1为读);
3. 从机给主机回复响应;
4. 紧接着一系列的字节及其响应:
1)如果是写模式, 主机发送一字节数据等待从机响应,主机收到响应之后如果还有数据要发就继续发送第二段数据等待响应…直到发送完成;
2)如果是读模式, 此时主机读取从机发来的数据,并给从机响应, 如果从机还有数据要发送(接着汇报第二段),主机接着读取然后发送响应给从机…
5. 主机发出P信号结束本次传输。
IIC写操作
主机开始信号-->(7位从机地址+1位写标识)-->从机ACK响应位-->主机发DATA1-->从机ACK响应位.......->主机P信号
IIC读操作
主机开始信号-->(7位从机地址+1位读标识)-->从机ACK响应位-->从机发DATA1-->主机ACK响应位.......->主机发送 NACK -->主机P信号;