I2C通讯协议

📌 基本特性

  • 全称:Inter-Integrated Circuit(集成电路总线)

  • 类型同步、半双工、多主多从串行总线

  • 信号线:仅2根

    • SDA:串行数据线(双向)

    • SCL:串行时钟线(主→从)

  • 拓扑 :所有设备并联 在总线上,需上拉电阻

  • 速度

    • 标准模式:100 kbps

    • 快速模式:400 kbps

    • 高速模式:3.4 Mbps

    • 超快模式:5 Mbps

🔌 硬件连接

text

复制代码
Vdd
 |
 Rp (上拉电阻,典型4.7kΩ)
 |
 +---- SDA ---- 所有设备SDA引脚
 |
 +---- SCL ---- 所有设备SCL引脚
 |
设备1  设备2  设备3  ...  设备N

⏰ 关键时序规则

1. 数据有效性铁律

SCL为高时,SDA必须稳定;SCL为低时,SDA才可变化

2. 三大控制信号

信号 条件 SDA变化 含义
起始(S) SCL=高 高→低 开始传输
停止(P) SCL=高 低→高 结束传输
重复起始(Sr) SCL=高 高→低 切换方向/新传输

3. 应答机制

  • 每字节(8位)后跟1位应答位(共9时钟)

  • ACK:接收方将SDA拉低(成功)

  • NACK:SDA保持高(失败/结束读)

📊 数据传输格式

主设备写数据到从设备

text

复制代码
[S] + [7位地址 + W(0)] + [ACK] + [数据1] + [ACK] + ... + [数据N] + [ACK] + [P]

主设备从从设备读数据(典型)

text

复制代码
[S] + [地址 + W(0)] + [ACK] + [寄存器地址] + [ACK] + 
[Sr] + [地址 + R(1)] + [ACK] + [数据1] + [ACK] + ... + [最后数据] + [NACK] + [P]

🎯 寻址方式

  • 7位地址(最常用):0x00~0x7F(部分保留)

  • 10位地址:扩展至1024个地址

  • 广播地址:0x00(所有从机响应)

📍 字节传输细节

text

复制代码
        MSB先传                   应答位
SDA: __| b7 | b6 | ... | b0 |___ACK/NACK___|
SCL: __/¯¯¯\___/¯¯¯\___.../¯¯¯\___/¯¯¯¯¯¯¯¯\__
       1    2          8    9

✅ 优点

  1. 引脚经济:仅需2线

  2. 支持多主:仲裁机制防止冲突

  3. 软件寻址:无需片选线

  4. 广泛支持:大多数MCU和外设都有

❌ 缺点

  1. 速度较慢:不适合高速流

  2. 距离短:通常<1米

  3. 软件复杂:比SPI协议复杂

  4. 上拉电阻影响速度:RC时间常数限制

🔧 典型应用场景

  • 传感器:温湿度、加速度计等

  • 小存储器:EEPROM

  • RTC模块

  • GPIO扩展芯片

  • 音频/视频芯片配置

🛠️ 调试要点

  1. 波形检查顺序:S → 地址 → ACK → 数据 → ACK/NACK → P

  2. 常见问题

    • 无ACK:地址错误/设备未就位

    • SDA始终高:上拉电阻过大/线路断开

    • 波形畸变:总线电容过大/上拉电阻过小

  3. 工具:逻辑分析仪(设置I2C解码器)


🧠 速记口诀

两线通信,上拉必备
时钟高稳,数据有效
起始下降,停止上升
地址先行,ACK响应
字节八位,MSB先飞
第九时钟,应答必回


核心总结 :I2C是用最少的线 实现多设备 中低速通信的优雅方案,掌握其时序铁律和应答机制即可驾驭。

相关推荐
HaiLang_IT2 小时前
基于图像处理与原型网络的小样本手语骨骼动作识别研究
网络·图像处理·人工智能
元亓亓亓2 小时前
考研408--计算机网络--day13--电子邮件&万维网&HTTP
网络·计算机网络·考研·http·408
海棠蚀omo2 小时前
万物互联的起点:走进 Linux 网络的心脏,开启一场从零开始的底层探索之旅
linux·网络
咕咕嘎嘎10242 小时前
C++仿muduo库onethreadoneloop高并发服务器
服务器·网络·c++
乾元2 小时前
AI 在云网络(VPC / VNet)部署的编排与安全对齐——从“手工堆资源”到“意图驱动的网络生成”(含 Terraform 工程化)
运维·网络·人工智能·网络协议·安全·云计算·terraform
盛满暮色 风止何安2 小时前
负载均衡的部署模式
运维·服务器·网络·网络安全·负载均衡
Meaauf2 小时前
华为 | 二层隧道协议L2TP实验
网络·华为
CQ_YM2 小时前
网络编程之UDP
linux·c语言·网络·单片机·udp
qqssss121dfd2 小时前
计算机网络(第8版,谢希仁)第四章习题解答
服务器·c语言·网络·单片机·计算机网络