IIC是当今嵌入式应用中最常见的串行通信协议之一。对比OneWire严苛的时序要求,SPI等更多的线缆要求,IIC处于一个折中的位置:不那么多的2根线缆的硬件要求,不那么复杂严苛的时序要求,便可进行多主多从的双向通信,小巧灵活方便,这使它广受欢迎。
目录
一、简介
二、主要特性
三、硬件结构
1. 总线结构
2. 总线的拉高和拉低
四、工作时序
1. 数据有效性
2. 开始和结束信号
3. 重复开始信号
4. 字节格式
5. 应答信号
五、7-bit 设备的数据传输
1. 主机写-从机收,传输方向不变
2. 主机读-从机发,传输方向改变
六、10-bit 设备的数据传输
1. 10-bit 设备的写
2. 10-bit 设备的读
一、简介
IIC(Inter-Integrated Circuit)是 IIC Bus 简称,中文叫集成电路总线。它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。自2006年10月1日起,使用I²C协议已经不需要支付专利费,但制造商仍然需要付费以获取I²C从属设备地址。 IIC使用两根信号线进行通信:一根时钟线SCL,一根数据线SDA。IIC将SCL处于高时SDA拉低的动作作为开始信号,SCL处于高时SDA拉高的动作作为结束信号;传输数据时,SDA在SCL低电平时改变数据,在SCL高电平时保持数据,每个SCL脉冲的高电平传递1位数据。
二、主要特性
IIC用2根信号线通信:串行数据线 SDA、串行时钟线 SCL;
IIC总线上所有器件的SDA、SCL引脚输出驱动都为 开漏(OD) 结构,通过外接上拉电阻实现总线上所有节点SDA、SCL信号的线与逻辑关系;
总线上的所有设备通过软件寻址且具有唯一的地址(7位或10位)。7位“从机专用地址码”,其高4位为由生产厂家制定的设备类型地址,低3位为器件引脚定义地址(由使用者定义);10位地址不常见;
任何时刻都只存在简单的主从关系,按数据传输的方向,主机可以是主发送器或主接收器;
支持多主机。在总线上存在多个主机时,通过冲突检测和仲裁机制防止多个主机同时发起数据传输时存在的冲突;
IIC总线上所有器件都具有“自动应答”功能,保证数据传输的正确性; 主机和从机的区别在于对SCL的发送权,只有主机才能发送SCL;
IIC总线允许挂载最多的设备数量取决于总线上最大电容值,一般为400pf(Hs模式100pf)
IIC总线不仅广泛应用于电路板级的内部通信,还可以通过I2C总线驱动器进行不同系统间的通信; 支持传输速率包括:
模式
速度
标准模式(Standard Mode)
100kb/s
快速模式(Fast Mode)
400kb/s
增强快速模式(Fast Mode Plus)
1Mb/s
高速模式(High Speed Mode)
3.4Mb/s
极速模式(Ultra-FastMode)
5Mb/s
三、硬件结构
1. 总线结构