当前位置: 首页 > news >正文

深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖

第一篇:I2C总线协议深度解剖

副标题 : 两根线如何征服千亿设备?详解硬件工程师必须掌握的通信奥义


1. 为什么I2C仍是嵌入式经典?

1.1 总线拓扑的哲学

拓扑对比图
在这里插入图片描述
SPI需4线+N片选 vs I2C仅2线级联
UART点对点 vs I2C多主从架构

成本控制实例 :某智能手表传感器模组布线成本节省37%

1.2 技术演进时间线

  • 1982~2023关键节点
年份事件速率提升
1982Philips发布初版标准100kHz
1998专利开放引发生态爆发400kHz
2007加入高速模式(HS-mode)3.4MHz
2014最新版UM10204规范5MHz

1.3 当代应用场景

  • 工业领域 :PLC模块中的板载温度传感器链
  • 消费电子 :手机摄像头模组的控制总线

2. 物理层核心机制

2.1 电气特性深度解析

  • 开漏输出原理
    电路中仅使用一个N沟道晶体管。晶体管的漏极直接输出,没有连接到电源电压。工作原理:当晶体管导通(开启)时,输出端接近地线;当晶体管关闭时,输出端是悬空的,需要外部上拉电阻连接到高电平,以确保输出端能够达到高电平状态。
    优点:简化了驱动电路,方便与不同电压的电路接口,常用于I2C等总线通信协议中。
    缺点:输出高电平时依赖外部上拉电阻,对电路的设计提出了额外要求;输出电流能力较弱。

  • 为何需要上拉电阻?避免总线"锁死"的数学证明

  • 上拉电阻计算黄金公式

  Rp(min) = (VDD - VOL(max)) / IOL  Rp(max) = tr / (0.8473 × Cb)  其中:  tr = 上升时间(规范要求<1μs@100kHz)  Cb = 总线总电容(包括线路+器件引脚)  
  • 实例计算:当VDD=3.3V, Cb=200pF时,Rp取值区间

2.2 地址扩展的演进

  • 7位 vs 10位寻址对比表
特性7位地址10位地址
设备数量112个1008个
首字节格式0bAAA AAAA R/W0b1111 0AX R/W
典型应用传感器大型存储阵列

3. 协议层关键时序

3.1 起止信号的时间密码

  • 时序参数规范表
参数标准模式快速模式单位
tSU:STA4.70.6μs
tHD:STA4.00.6μs
tSU:STO4.00.6μs
  • 常见设计错误
    案例1:FPGA主频过高导致tSU:STA不满足
    案例2:未考虑线延迟引发的建立时间违例

3.2 ACK/NACK应答机制

  • 从机响应流程图
  Master发送字节 → 释放SDA → 从机在第9时钟拉低SDA → Master检测ACK  
  • NACK的三种含义
  1. 从机地址不匹配
  2. 写入时从机寄存器不可写
  3. 读取时主机应终止传输

3.3 时钟拉伸(Clock Stretching)

  • 典型应用场景
    低速从机(如EEPROM)的数据准备期
    安全芯片的加密计算耗时阶段
  • Verilog处理代码片段
  always @(posedge scl) begin  if (slave_busy)  scl_out <= 1'bz;  // 释放SCL线  else  scl_out <= scl_gen;  end  
4. I2C 协议时序要求

4.1 I2C传输开始结束时序
SCL: 高电平
SDA: 高电平 -> 低电平 传输开始
低电平 -> 高电平 传输结束
在这里插入图片描述
4.2 I2C有效数据时序
SCL:高电平时,SDA保持不练
SDA: SCL低电平时,SDA允许变化
在这里插入图片描述
4.3 I2C数据传输时序
Byte format: MSB first
在这里插入图片描述
在这里插入图片描述

配套资源
  1. I2C协议检查表 (PDF下载):包含22个关键参数速查表
  2. I2C 协议 2021版本 :62页完整I2C协议

相关文章:

  • CentOS 下 FTP 与 NFS 服务深度解析:从基础配置到实战应用
  • 深度学习推理引擎---OpenVINO
  • Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
  • 如何在纷杂的环境当中保持保持独立思考能力?
  • linux c++头文件生成源文件 使用python脚本 配置vim快捷键
  • Unity3D仿星露谷物语开发44之收集农作物
  • OAuth2.0
  • 6to4、6over4的类比解释
  • 使用tensorRT10部署低光照补偿模型
  • MySQL相关
  • [强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程
  • 支持selenium的chrome driver更新到136.0.7103.94
  • 【2025年软考中级】第一章1.6 安全性、可靠性、性能评价
  • Python爬虫实战:获取1688商品信息
  • 无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用
  • Uniapp开发鸿蒙应用时如何运行和调试项目
  • Kotlin与机器学习实战:Android端集成TensorFlow Lite全指南
  • 从神经架构到万物自动化的 AI 革命:解码深度学习驱动的智能自动化新范式
  • 人工智能100问☞第25问:什么是循环神经网络(RNN)?
  • 基于OpenCV的SIFT特征和FLANN匹配器的指纹认证
  • 墨西哥海军一载两百余人帆船撞上纽约布鲁克林大桥,多人落水
  • 陕西省市监局通报5批次不合格食品,涉添加剂超标、微生物污染等问题
  • 打击网络侵权盗版!四部门联合启动“剑网2025”专项行动
  • 中国人民银行等四部门联合召开科技金融工作交流推进会
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部
  • 金砖国家召开经贸联络组司局级特别会议,呼吁共同抵制单边主义和贸易保护主义