| 上一篇 | 下一篇 |
|---|---|
| SN号和PN号(普及用) |
目 录
- [IIC 专题(I²C)](#IIC 专题(I²C))
-
- [1)简单介绍一下 IIC](#1)简单介绍一下 IIC)
- [2)IIC 的基本时序是什么](#2)IIC 的基本时序是什么)
- [3)IIC 通讯地址位数总结](#3)IIC 通讯地址位数总结)
- [4)IIC 的通信速率有哪些](#4)IIC 的通信速率有哪些)
IIC 专题(I²C)
IIC:Inter Integrated Circuit,集成电路总线
可参考博客:Cortex-M3-STM32F1 开发:(四十九)IIC 总线结构和协议-CSDN博客
下面整理的问题及答案或多或少会有交叉重复的内容,要想熟练掌握,重点还是要理解 IIC 的整个流程及应用案例
1)简单介绍一下 IIC
I²C 是一种同步、半双工、双线制的串行总线 ,主要用于 板内芯片间、微控制器和外设 的 低速或中速 通信 。它只有两根线:时钟线 SCL 和数据线 SDA,采用多主/多从架构,一个总线可以挂多个设备,每个设备通过唯一的地址区分。
I²C 器件的引脚均为开漏输出,必须外接上拉电阻才能产生高电平。这样设计是为了实现线与逻辑,任何设备都能安全地拉低总线,不会因输出冲突而短路。
2)IIC 的基本时序是什么
- 起始信号:SCL高电平时,SDA从高电平切换到低电平表示通信开始
- 停止信号:SCL高电平时,SDA从低电平切换到高电平表示通信结束
- 数据发送 :SCL低电平时,SDA可以变化(准备数据)SCL高电平时,SDA必须保持稳定(数据有效),数据按 高位先行 传输
- 应答信号 :每传输8位数据后,接收方需要给出应答位
- ACK(低电平)表示成功接收
- NACK(高电平)表示接收失败或结束传输
具体的看那篇博客。
3)IIC 通讯地址位数总结
I²C 协议支持两种地址格式:
① 7 位地址(标准模式,最常用,占用1个字节):
- 地址范围:
0x00~0x7F(128 个,0000000~1111111) - 实际可用:约 112 个(部分地址被协议保留)
- 地址格式:7位地址 和 1位读/写位 组成 1 个字节(高 7 位为地址,最低位为 R/W 读写方向位)
- 比如典型的 IIC 器件 AT24C02,读地址为 0xA0(10100000),写地址为 0xA1(10100001)
-
被协议保留的主要地址有(了解即可,只有7位,不要误以为是整个字节的8位):
-
0x00(0000000):广播地址 -
0x01(0000001)~0x07(0000111):特殊用途(如起始字节、CBUS 兼容等) -
0x78(1111000)~0x7B(1111011):用于10 位地址指示(下面红字会解释)及未来扩展
-
② 10 位地址(扩展模式,向下兼容 7 位,占用2个字节):
- 地址范围:
0x000~0x3FF(1024 个,0000000000~1111111111) - 地址格式:占用2个字节
- 第1字节:
11110+ 地址高 2 位 + R/W(第1字节的高5位固定为11110) - 第2字节:地址低 8 位
- 第1字节:
两种地址格式一起使用时(10位地址设备和7位地址设备可以共存于同一总线):
当发送方拉低 SDA 线,并发送了通讯地址的第1个字节时,其他设备接收到之后会判断这第1个字节:
- 如果高5位是11110
- 7位地址设备不会应答(高5位为11110是被保留的地址,合法的7位地址设备的高5位不会是11110);
- 10位地址设备会进一步判断具体地址。
- 如果高5位不是11110
- 7位地址设备会进一步判断后续位,如果和自己内部设定的地址完全匹配就会应答;
- 10位设备会把它当作一个普通的 7 位地址帧,如果该设备恰好有一个匹配的备用 7 位地址,它仍然会应答;否则静默。
注: 这是帮助理解的表述方式,实际上7位地址设备会直接提取第1字节的 7 位地址,和自己内部设定的地址完全匹配才会应答。
4)IIC 的通信速率有哪些
I²C 协议定义了多个速率等级,所有模式的参考时钟频率在数值上与位速率相等(例如 100 kHz 对应 100 kbps):
-
标准模式(Standard‑mode, Sm)
-
最高速率可达 100 kbps (时钟频率 100 kHz)
-
最早的 I²C 规范,适合大多数低速外设。
-
-
快速模式(Fast‑mode, Fm)
-
最高速率可达 400 kbps (时钟频率 400 kHz)
-
目前应用最广,几乎所有 I²C 设备均支持。
-
-
快速模式增强版(Fast‑mode Plus, Fm+)
-
最高速率可达 1 Mbps (时钟频率 1 MHz)
-
驱动能力增强,可支持更大的总线电容(约 550 pF),适合更长距离或更多节点的场景。
-
-
高速模式(High‑speed mode, Hs‑mode)
-
最高速率可达 3.4 Mbps (时钟频率 3.4 MHz)
-
需要专用硬件:主设备在高速传输前必须发送一个特定的 主机码 以启动高速模式,且需要支持高速电平的特殊 I/O 缓冲器。
-
-
(单向传输)超快速模式(Ultra Fast‑mode, UFm)
-
最高速率可达 5 Mbps (时钟频率 5 MHz)
-
单向通信:仅支持写操作,无应答位,免去上拉电阻,改用 推挽输出 驱动线路。
-
主要用于特定的传感器或显示接口等需要单向高速刷新的场景。
-
影响速率选择的关键因素:
- 总线电容:电容越大,上升时间越慢,限制最高速率。Fm+ 通过加大驱动能力缓解这一问题。
- 线路长度:走线过长会增加分布电容和干扰。
- 抗干扰要求:电磁干扰严重的环境可能迫降低速率。
- 设备兼容性:总线上所有器件必须支持所选速率,向下兼容是常态(例如支持 1 Mbps 的设备通常能工作在 400 kbps 及以下)。