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是用最少的线 实现多设备 中低速通信的优雅方案,掌握其时序铁律和应答机制即可驾驭。

相关推荐
以太浮标2 小时前
华为eNSP模拟器综合实验之- ACL控制列表核心命令全解析及场景应用
运维·网络·网络协议·华为·信息与通信
AI+程序员在路上2 小时前
CANopen 协议:介绍、调试命令与应用
linux·c语言·开发语言·网络
江畔何人初2 小时前
kube-apiserver、kube-proxy、Calico 关系
运维·服务器·网络·云原生·kubernetes
网安Ruler3 小时前
UDS 协议分析及模拟测试
网络
weiwx834 小时前
Nginx location 和 proxy_pass 配置详解
服务器·网络·nginx
互成7 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
mftang7 小时前
WebSocket 通信协议详细解析
网络·websocket·网络协议
野指针YZZ7 小时前
TCP包 wireshark抓包分析-RK3588
网络·tcp/ip·wireshark
纽创信安7 小时前
纽创信安与SGS启动网络安全ISO 21434认证项目
网络·安全·web安全
MinterFusion8 小时前
如何在开放麒麟(openKylin)下安装FTP服务器(v0.1.0)
运维·服务器·网络·vsftpd·开放麒麟·明德融创·openkylin