首页/新闻资讯/正文详情

I2C 通信协议知识点整理

发布时间:2026/9/24 11:03:19 来源:云帆数科 栏目:资讯中心
I2C 通信协议知识点整理
一、I2C 总线概述I2CInter-Integrated Circuit是一种串行通信总线使用两根信号线完成设备间的数据通信SCL时钟信号线由主机控制。SDA数据信号线用于传输数据。I2C 采用高位先行MSB First的数据传输方式支持一主多从的通信结构最多可挂载 127 个从机设备。二、I2C时序一起始信号与结束信号起始信号SCL 时钟信号线为高电平时SDA 数据信号线由高变低出现下降沿表示通信开始。结束信号SCL 时钟信号线为高电平时SDA 数据信号线由低变高出现上升沿表示通信结束。二数据传输规则SCL 时钟信号线为高电平时SDA 数据信号线电平保持稳定此时接收方采样数据。SCL 时钟信号线为低电平时SDA 数据信号线电平可以改变此时发送方发送数据。三应答信号ACK / NACK在第 9 个时钟周期接收方需要向发送方回复应答信号ACK低电平表示接收成功继续传输。NACK高电平表示接收失败或传输结束。四设备地址与数据流向1. 起始信号后的第一个字节为设备地址高 7 位设备地址。低 1 位数据流向位。2. 数据流向位含义0主机发送数据给从机写操作。1从机发送数据给主机读操作。例如设备地址 0x10二进制为 0001 000加上读写位后写操作0001 000 0读操作0001 000 1五寄存器访问I2C 设备通过寄存器地址访问内部寄存器寄存器地址范围通常为 0x00 到 0xFF。六I2C 通信速率I2C 支持多种通信速率100 kHz标准模式400 kHz快速模式1.x MHz快速模式3.x MHz高速模式三、写时序与读时序一I2C 写时序主机发送起始信号 设备地址 写位等待从机 ACK 应答。主机发送寄存器地址等待从机 ACK 应答。主机向从机发送数据等待从机 ACK 应答。主机发送停止信号。// 通信前 仲裁丢失标志位清零 中断标记位清零base-I2SR ~((1 IIF) | (1 IAL));// 通信前等待数据传输完毕while ((base-I2SR (1 ICF)) 0);// 发送起始信号base-I2CR | (1 MSTA);// 主机模式发送模式base-I2CR | (1 MTX);// 后续检测从机ACK信号base-I2CR ~(1 TXAK);// 中断标记位清零base-I2SR ~(1 IIF);// 发送设备地址 写位base-I2DR dev_address 1;// 等待从机ACKwhile ((base-I2SR (1 IIF)) 0);// 中断标记位清零base-I2SR ~(1 IIF);// 发送寄存器地址base-I2DR reg_address;// 等待从机ACKwhile ((base-I2SR (1 IIF)) 0);二I2C 读时序主机发送起始信号 设备地址 写位等待从机 ACK 应答。主机发送寄存器地址等待从机 ACK 应答。主机重新发起起始信号 设备地址 读位等待从机 ACK 应答。主机接收从机数据主机回复 ACK 应答。当主机接收完最后一个字节数据向从机回复 NACK 应答。主机发送停止信号。四、I2C 知识点补充一多主机与总线仲裁I2C 支持多主机结构当多个主机同时发起通信时需要通过总线仲裁机制决定谁获得总线控制权。仲裁发生在 SDA 线上各主机在发送数据的同时持续监测 SDA 电平一旦发现自身发送的电平与总线实际电平不一致即退出竞争由发送高电平的主机让位给发送低电平的主机。仲裁过程不会破坏已传输的数据也不会产生额外开销。二时钟同步与时钟拉伸多主机场景下各主机时钟频率可能存在差异I2C 通过线与机制实现时钟同步低电平时间最长的设备决定总线时钟。此外从机在需要处理数据或未准备好时可以主动拉低 SCL 线使主机进入等待状态这一机制称为时钟拉伸常用于低速从机与高速主机之间的速率适配。三上拉电阻与电平标准I2C 总线为开漏输出结构SCL 和 SDA 线必须外接上拉电阻才能输出高电平。上拉电阻的阻值会影响总线上升时间和通信速率阻值过大会导致上升沿变缓、限制速率阻值过小则会增大功耗。常见取值在 1 kΩ 到 10 kΩ 之间具体需结合总线电容和通信速率综合选择。I2C 还支持 3.3 V 和 5 V 等不同电平标准可通过电平转换芯片实现不同电压域设备间的通信。四7 位地址与 10 位地址标准 I2C 使用 7 位设备地址最多可挂载 127 个从机。当设备数量较多时可扩展使用10 位地址模式其首字节前 5 位固定为 11110后 2 位为地址高 2 位第二个字节为地址低 8 位从而支持更多从机设备。五常见应用场景I2C 广泛应用于嵌入式系统中低速外设的连接常见设备包括传感器温度、湿度、气压、加速度等传感器。存储芯片EEPROM 等非易失性存储器。显示模块OLED、LCD 显示屏。时钟芯片RTC 实时时钟模块。扩展芯片GPIO 扩展、ADC/DAC 转换器等。六I2C 与 SPI 的对比I2C 与 SPI 是嵌入式中最常用的两种串行总线二者各有优劣引脚数量I2C 仅需 2 根线SCL、SDASPI 通常需要 4 根线SCLK、MOSI、MISO、CS。通信速率SPI 速率更高可达数十 MHzI2C 标准模式为 100 kHz高速模式可达 3.x MHz。多从机寻址I2C 通过设备地址寻址SPI 通过片选信号 CS 选择从机。全双工SPI 支持全双工通信I2C 为半双工。总线占用I2C 支持多主机仲裁SPI 通常为单主机结构。

相关推荐

F28388D EtherCAT从站开发:工业实时控制确定性方案
F28388D EtherCAT从站开发:工业实时控制确定性方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 11:03:06

云栖2026 | 阿里云 OpenLake 迈向 Agentic Lake,一份全模态数据驱动智能体就绪
云栖2026 | 阿里云 OpenLake 迈向 Agentic Lake,一份全模态数据驱动智能体就绪

当 AI 从问题应答走向生产运行,云基础设施也在加速向 Agentic Cloud 演进。从基础设施、数据平台到应用服务,从 IaaS 到 PaaS,各层能力不仅需要支持面向人的交互,也需要支持面向 Agent 的交互,使 Agent 能够理解、调用… · 2026/9/24 11:02:41

Linux学习笔记(二)
Linux学习笔记(二)

Linux 学习笔记(二) 摘要 在 Linux 命令行中,文本过滤、文件归档与命令解释器是三个紧密相关的基础主题。grep 可以从文件、标准输入或其他命令的输出中筛选匹配行;zip 和 tar 用于组织、压缩和传输文件;Shell 则负责… · 2026/9/24 11:02:40

shadcn-vue registry-item.json 完整规范:自定义组件注册表条目字段详解与实战指南
shadcn-vue registry-item.json 完整规范:自定义组件注册表条目字段详解与实战指南

UI组件前端 【免费下载链接】shadcn-vue Vue port of shadcn-ui 项目地址: https://gitcode.com/gh_mirrors/sh/shadcn-vue 点击查看 免费下载 导读 registry-item.json 是 shadcn-vue 组件注册表(registry)生态的核心规范文件,… · 2026/9/24 16:34:05

大麦抢票教程:3步配好抢票自动化脚本,如何把成功率拉满
大麦抢票教程:3步配好抢票自动化脚本,如何把成功率拉满

大麦抢票教程:3步配好抢票自动化脚本,如何把成功率拉满 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 开票一秒&#xff0c… · 2026/9/24 16:33:58

西安24小时自助健身房解决方案:技术架构与实战部署指南
西安24小时自助健身房解决方案:技术架构与实战部署指南

西安24小时自助健身房解决方案:技术架构与实战部署指南 1. 场景概述与核心需求分析 西安作为西北地区的中心城市,健身行业正在经历从“传统人工值守”向“无人化、智能化”的转型。24小时自助健身房的核心痛点在于:如何在无店员值守场景下实现… · 2026/9/24 16:33:52

RE2 正则表达式库实战指南:安全优先的线性时间匹配引擎及其 C++ API 与安装部署
RE2 正则表达式库实战指南:安全优先的线性时间匹配引擎及其 C++ API 与安装部署

RE2 正则表达式库实战指南:安全优先的线性时间匹配引擎及其 C API 与安装部署 【免费下载链接】re2 RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C library… · 2026/9/24 16:33:52

轻量级离线翻译:无网也能秒翻
轻量级离线翻译:无网也能秒翻

轻量级离线翻译:无网也能秒翻 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate 出差住酒店,Wi-Fi 一断,手机里的在线… · 2026/9/24 16:33:52

Yii2 别名(Aliases)完全指南:从 `@` 符号到路径/URL 解析的底层机制
Yii2 别名(Aliases)完全指南:从 `@` 符号到路径/URL 解析的底层机制

后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 别名(Aliases)是 Yii 2 框架中表示文件路径和 URL 的轻量级符号机制&… · 2026/9/24 16:33:39

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码