IIC协议简介 [color=var(--md-editor-text-color-active)]IIC(inter-integrated Circuit集成电路总线)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它需要两根信号线来完成信息交换。IIC的一个特殊工艺优势是微控制器只需要两个通用I/O引脚和软件即可控制芯片网络。IIC最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100Khz、7-bit标准地址,1992年,IIC的第一个公共规范发行,增加了400Khz的快速模式以及10bit地址扩展。 IIC协议内容[color=var(--md-editor-text-color-active)] IIC协议把传输的消息分为两种类型的帧:
地址帧–用于master指明消息发往哪搁slave;
数据帧(单个或者连续)-- 由master发往slave的数据或者是接收到来自于slave的数据。一次读写单位为8bit,高位先发
注:IIC读写是相对于master来说的。
IIC总线的数据传送
1、数据位有效性的规定:
IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟电平为低电平期间,数据线上的高电平或者低电平状态才允许变化。
即数据在时钟线SCL的上升沿到来之前就需要准备好,并在下降沿到来之前必须保持稳定。
2、空闲状态:
当IIC总线的数据线SDA和时钟线同时处于高电平时,规定为总线的空闲状态。此时各个器件输出级场效应管均处在截止状态,即释放总线,由两条信号线的上拉电阻把电平拉高。
3、起始和终止信号:
SCL为高电平期间,SDA信号线由高电平向低电平的变化表示起始信号;SCL为高电平期间,SDA由低电平向高电平的变化表示终止信号。
SDA:由高到低 – 起始信号
SDA:由低到高 – 终止信号
起始信号和终止信号都是由主机发送的,起始信号产生之后,总线处于被占用的状态,在终止信号产生之后,总线就处于空闲状态。
|