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

I²C 总线通信原理与时序

I²C(Inter-Integrated Circuit),又称 I2CIIC,中文一般称为 集成电路总线。它是一种由 Philips(现 NXP)提出的 串行总线通信协议,常用于微控制器与外设之间的短距离通信,如 EEPROM、传感器、显示屏、RTC 等。

I²C 总线只需要 两根信号线即可完成通信:

        SDA(Serial Data Line):串行数据线

        SCL(Serial Clock Line):串行时钟线

I²C 信号定义

        START 条件:SCL 高电平时,SDA 从高变低,边沿就是开始信号;

        STOP 条件:SCL 高电平时,SDA 从低变高;

        数据有效性:数据在 SCL 高电平时必须稳

1. I²C 总线发送一个字节的时序

I²C 通信过程由主机控制。发送一个字节的典型时序如下:

  1. 起始信号(START):当 SCL 保持高电平时,主机将 SDA 从高电平拉低,表示开始通信。

  2. 数据传输

    • 发送 8 位数据(高位在前)。

    • 数据在 SCL 低电平时可以改变,而在 SCL 高电平时采样

  3. 应答信号(ACK/NACK)

    • 数据发送完第 8 位后,接收方在第 9 个 SCL 周期内将 SDA 拉低,表示 ACK 应答

    • 若读数据结束时,主机发送一个 NACK 表示不再需要数据。

2. I²C 写操作时序

通过 I²C 向从设备写数据的典型步骤如下:

  1. 主机发送 起始信号 START

  2. 发送 7 位设备地址 + 1 位读写控制位(写操作时最后一位为 0),共 8 位。

  3. 从设备返回 ACK 应答。

  4. 主机逐字节发送要写入的数据,每发一个字节都要等待从设备的 ACK

  5. 数据全部发送完后,主机发送 停止信号 STOP,释放总线。

3. I²C 读操作时序

读取从设备数据的过程稍复杂一些,通常需要 先写后读

  1. 主机发送 起始信号 START

  2. 发送 设备地址 + 写位(0),并等待从设备返回 ACK

  3. 发送目标 寄存器地址,从设备返回 ACK

  4. 主机再次发送 起始信号 START(即 重复起始)。

  5. 发送 设备地址 + 读位(1),从设备返回 ACK

  6. 从设备开始逐字节向主机传输数据,每个字节之后主机都要返回 ACK

  7. 当读到最后一个字节时,主机发送 NACK 表示不再需要更多数据。

  8. 主机发送 停止信号 STOP,释放总线,读操作结束。

4. I²C 硬件要求

为了保证 SDA 和 SCL 线路在空闲时保持高电平,I²C 总线需要在两条线上各接入 上拉电阻,常用阻值为 4.7 kΩ ~ 10 kΩ

5.I²C 特点和优点

只需两根信号线,节省引脚;

支持多主多从,扩展性强;

支持不同速率(标准模式 100 kbps,快速模式 400 kbps,高速模式 3.4 Mbps 等)。


文章转载自:

http://O2dwoCwC.zrdqz.cn
http://5YXmO1y5.zrdqz.cn
http://CxnuVdGo.zrdqz.cn
http://ts1zAUuX.zrdqz.cn
http://16Mnjqab.zrdqz.cn
http://GoZvdLBs.zrdqz.cn
http://Vf2kv2cC.zrdqz.cn
http://IS4rPwhq.zrdqz.cn
http://ap9yMydN.zrdqz.cn
http://NrplKlYi.zrdqz.cn
http://2T1UaOwT.zrdqz.cn
http://w8FS65Cz.zrdqz.cn
http://UyMU2YL9.zrdqz.cn
http://JffTDts7.zrdqz.cn
http://ubheQsSX.zrdqz.cn
http://KT1nrm9l.zrdqz.cn
http://KKso8vPb.zrdqz.cn
http://SS0E4h5I.zrdqz.cn
http://eQa80FwY.zrdqz.cn
http://ZVhCVhNn.zrdqz.cn
http://F6dEr01N.zrdqz.cn
http://qbmT39P6.zrdqz.cn
http://opeHiLQi.zrdqz.cn
http://gvV5lc2F.zrdqz.cn
http://ZI0a061e.zrdqz.cn
http://PztHYHPM.zrdqz.cn
http://9ueY1GDj.zrdqz.cn
http://HrpS1NXS.zrdqz.cn
http://m6ks2AcI.zrdqz.cn
http://xH4dpIBv.zrdqz.cn
http://www.dtcms.com/a/388529.html

相关文章:

  • C#关键字record介绍
  • 试验台铁地板的设计与应用
  • 原子操作:多线程编程
  • 项目:寻虫记日志系统(三)
  • 在Arduino上模拟和电子I/O工作
  • Windows 命令行:相对路径
  • 线程、进程、协程
  • Java/注解Annotation/反射/元数据
  • C++学习:哈希表的底层思路及其实现
  • 机器学习python库-Gradio
  • 创作一个简单的编程语言,首先生成custom_arc_lexer.g4文件
  • 湖北燃气瓶装送气工证考哪些科目?
  • MySQL死锁回滚导致数据丢失,如何用备份完美恢复?
  • Zustand入门及使用教程(二--更新状态)
  • Matplotlib统计图:绘制精美的直方图、条形图与箱线图
  • 在el-table-column上过滤数据,进行格式化处理
  • 记一次golang结合前端的axios、uniapp进行预签名分片上传遇到403签名错误踩坑
  • 十一章 无界面压测
  • 多色印刷机的高精度同步控制:EtherCAT与EtherNet/IP的集成应用
  • 【随笔】【蓝屏】DMA错误
  • Coze源码分析-资源库-创建工作流-后端源码-IDL/API/应用/领域层
  • 5 分钟将网站打包成 APP:高效实现方案
  • 物联网智能网关核心功能实现:解析西门子1500 PLC的MQTT通信配置全流程
  • 新国标电动自行车实施,BMS 静电浪涌风险与对策
  • 【Python】Python文件操作
  • C#如何使用ApiPost接口,将数据显示在unity面板
  • 零基础从头教学Linux(Day 36)
  • 深度学习(2)
  • 火山 17 声音回调
  • Flash芯片的VCC上电到可操作时间过长