相关视频讲解请移步B站搜索:硬件工程师老刘
1 IIC是什么
IIC-BUS(Inter-IntegratedCircuit Bus)最早是由PHilip半导体(现在被NXP收购)于1982年开发。主要是用来方便微控制器与外围器件的数据传输。它是一种半双工,由SDA(数据)和SCL(时钟)组成的两线式串行传输总线。
2 IIC的特点和基本概念
2.1 IIC的特点
(1)硬件连接线简单,只要求两条总线线路 一条串行数据线SDA 一条串行时钟线SCL。
(2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地址,主机可以作为主机发送器或主机接收器。
(3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏。常用一主多从。多主使用对软件人员要求较高,搞不好经常出问题。
(4)串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。不适合高速通信场合。
(5)连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制。限制了总线上的设备数,并且还受控制器的配置能力限制,例如需要上电初始化同时配置,一般一个总线上不超过5个从设备。
(6)开漏输出,需要外部上拉电阻。
2.2 IIC的基本概念
(1)IIC总线术语
- 什么是开漏输出(Open-Drain),IIC为什么是开漏输出?
开漏只有下关NMOS,没有上管PMOS,导通低电平0,截止需要靠上拉提供高电平1。
2.什么是推挽输出(Push-pull),IIC采用推挽输出行不行?
推挽输出有下管NMOS,上管PMOS,也就是CMOS电路。IIC总线上如果一个设备输出高电平1,上管PMOS打开,另一个输出低电平0,下管NMOS打开,这样就在总线上给VCC提供了一条低阻抗路径,电源短路,设备烧毁。
3 IIC协议
3.1 IIC不同模式
3.1.1 标准模式
标准模式 IIC总线规范在 80 年代的初期已经存在,它规定数据传输速率可高达100kbit/s,有7位寻址。
3.1.2 快速模式
快速模式,位速率高达400kbit/s,可扩展10寻址。
3.1.3 高速模式
高速模式位速率高达3.4Mbit/s,可扩展10寻址。
(1)向下兼容快速模式和标准模式,可以在一个混合速度的总线系统中双向通信。区别CAN网络,同一网络速率需要保持一致。不执行仲裁和时钟同步。不执行仲裁即不能多主机同时高速模式。
3.2 IIC数据传输
3.2.1 IIC信号状态
(1)空闲信号
SCL、SDA都为高电平时总线空闲。
(2)开始、停止信号
与从设备的IIC通信由主发送启动条件启动,并由主发送停止条件终止。当SCL较高时,SDA线上的高到低转换定义了开始条件。当SCL为高时,SDA线上的低到高转换定义了停止条件。
(3)重复起始条件(见读命令)
(4)应答/非应答信号
(5)数据有效性和数据传输