上一篇下一篇SN号和PN号普及用目 录IIC 专题I²C1简单介绍一下 IIC2IIC 的基本时序是什么3IIC 通讯地址位数总结4IIC 的通信速率有哪些IIC 专题I²CIICInter Integrated Circuit集成电路总线可参考博客Cortex-M3-STM32F1 开发四十九IIC 总线结构和协议-CSDN博客下面整理的问题及答案或多或少会有交叉重复的内容要想熟练掌握重点还是要理解 IIC 的整个流程及应用案例1简单介绍一下 IICI²C 是一种同步、半双工、双线制的串行总线主要用于板内芯片间、微控制器和外设的低速或中速通信。它只有两根线时钟线 SCL 和数据线 SDA采用多主/多从架构一个总线可以挂多个设备每个设备通过唯一的地址区分。I²C 器件的引脚均为开漏输出必须外接上拉电阻才能产生高电平。这样设计是为了实现线与逻辑任何设备都能安全地拉低总线不会因输出冲突而短路。2IIC 的基本时序是什么起始信号SCL高电平时SDA从高电平切换到低电平表示通信开始停止信号SCL高电平时SDA从低电平切换到高电平表示通信结束数据发送SCL低电平时SDA可以变化准备数据SCL高电平时SDA必须保持稳定数据有效数据按高位先行传输应答信号每传输8位数据后接收方需要给出应答位ACK低电平表示成功接收NACK高电平表示接收失败或结束传输具体的看那篇博客。3IIC 通讯地址位数总结I²C 协议支持两种地址格式① 7 位地址标准模式最常用占用1个字节地址范围0x00~0x7F128 个0000000~1111111实际可用约 112 个部分地址被协议保留地址格式7位地址 和 1位读/写位 组成 1 个字节高 7 位为地址最低位为 R/W 读写方向位比如典型的 IIC 器件 AT24C02读地址为 0xA010100000写地址为 0xA110100001被协议保留的主要地址有了解即可只有7位不要误以为是整个字节的8位0x00(0000000)广播地址0x01(0000001)~0x07(0000111)特殊用途如起始字节、CBUS 兼容等0x78(1111000)~0x7B(1111011)用于10 位地址指示下面红字会解释及未来扩展② 10 位地址扩展模式向下兼容 7 位占用2个字节地址范围0x000~0x3FF1024 个0000000000~1111111111地址格式占用2个字节第1字节11110 地址高 2 位 R/W第1字节的高5位固定为11110第2字节地址低 8 位两种地址格式一起使用时10位地址设备和7位地址设备可以共存于同一总线当发送方拉低 SDA 线并发送了通讯地址的第1个字节时其他设备接收到之后会判断这第1个字节如果高5位是111107位地址设备不会应答高5位为11110是被保留的地址合法的7位地址设备的高5位不会是1111010位地址设备会进一步判断具体地址。如果高5位不是111107位地址设备会进一步判断后续位如果和自己内部设定的地址完全匹配就会应答10位设备会把它当作一个普通的 7 位地址帧如果该设备恰好有一个匹配的备用 7 位地址它仍然会应答否则静默。注这是帮助理解的表述方式实际上7位地址设备会直接提取第1字节的 7 位地址和自己内部设定的地址完全匹配才会应答。4IIC 的通信速率有哪些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 及以下。