IIC(Inter-Integrated Circuit)总线协议浅谈
1、IIC协议的思想
IIC协议可以比喻成“老师点名”:老师相当于主机,学生相当于从机,学生的名字相当于IIC设备的地址。当老师点到某一个学生名字时,每个学生都能听到,但只有被叫到的学生才能回答(响应),被叫学生与老师的对话相当于主机与从机之间的交流(读写)。
2、IIC协议的时序
图1 IIC总线概念图
IIC总线的工作方式如图1所示,总线有两条信号线SDA和SCL,SDA是双向三态串行数据,SCL是单向串行时钟。IIC总线可以挂载多个IIC设备,并且相互进行通信由时序控制,
IIC协议的时序主要包括:START和STOP信号时序、写操作、读操作和字节写时序,下面分别进行介绍。
2.1 START信号和STOP信号时序
图2 起始信号和停止信号
起始信号的产生过程:在SCL拉高之际,SDA由高变低;停止信号的产生过程:在SCL拉高之际,SDA由低变高。
2.2 响应(Ackonwledge)信号时序
图3 响应信号时序
如何知道IIC设备已经接受到数据呢?这时候就需要IIC设备接受完数据后向总线反馈一个响应信号,意思是告诉总线,信号接受成功。因为SDA的硬件端口连接了上拉电阻,所以在接受完数据后呈现高电平状态,此时输出低电平表示信号响应。
2.3 写操作
图4 写操作
由于此刻是写操作,所以设备地址的访问方向是“写”,所以访问方向位设置为0。
2.4 读时序
图5 读操作
相较写操作,读操作不仅多了许多“拼图”,而且途中也改变访问方向。
3、IIC的应用
1)利用IIC扩展串行EEPROM
2)利用IIC扩展IO接口
4、IIC思想的来源猜想
1)老师点名
2)沙场秋点兵