深入解析 IIC:嵌入式系统中最常用的通信协议

目录

引言

1. IIC简介

2. IIC 总线的电气特性

2.1 IIC电气特性

 2.2 开漏输出结构

2.3 为什么使用开漏输出

2.4 上拉电阻

2.4 电平标准

3. IIC总线的解析

3.1 IIC总线的寻址方式

3.2  IIC总线的起始信号

3.3  IIC总线的停止信号

3.4 IIC总线的应答信号

3.5 IIC总线的数据有效性

3.5 IIC总线的字节顺序

3.6 IIC总线的数据帧格式

4. IIC 通信流程

4.1 写操作流程

4.2 读操作流程

4.3 特殊的操作流程(ReStart)

 4.3.1 场景 1:写后读操作

4.3.2 场景 2:访问多个从设备


🌈你好呀!我是 程序猿

🌌 2025感谢你的陪伴与支持 ~

🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!


引言

       在嵌入式系统的广阔天地中,通信协议犹如连接各个组件的桥梁,而 IIC(Inter - Integrated Circuit)协议无疑是其中一座极为重要且应用广泛的桥梁。它以其简洁高效的设计,在众多嵌入式设备通信场景中发挥着关键作用。无论是传感器数据的采集,还是芯片间的协同工作,IIC 都无处不在。


1. IIC简介

        IIC通信协议,也称为I2C(Inter-Integrated Circuit),是一种简单、高效、多主多从的双向二线制同步串行的半双工总线,由Philips公司(现NXP)于1980年代开发,广泛应用于嵌入式系统中连接各种低速外围设备。主要用于近距离、低速的芯片(如传感器、存储器、显示屏等)之间的通信。

I2C协议采用两根双向的信号线进行通信:

  1. 串行数据线(SDA):用于传输数据的双向线路。
  2. 串行时钟线(SCL):由主设备产生,用于同步数据传输。

        这种协议支持多主多从架构,多主设备(多个微控制器或主控制器)和多从设备(外部设备)的连接。每个设备都有一个唯一的7位或10位地址,主设备通过地址选择需要通信的从设备进行数据传输。

I2C协议的优点包括简单、灵活、成本低廉,适合在资源有限的嵌入式系统中使用。

I2C总线外设结构

        SDA和SCL都是双向的,所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。I2C总线上的每个设备都自己一个唯一的地址,来确保不同设备之间访问的准确性。


2. IIC 总线的电气特性

2.1 IIC电气特性

        I2C 总线上的 SDA 和 SCL 线均采用开漏输出结构。这意味着总线设备无法直接驱动线路为高电平,而是通过总线上外接的上拉电阻将线路拉高。当设备需要输出低电平时,通过将对应的引脚接地来实现。这种设计允许多个设备共享同一总线,并且在同一时刻只有一个设备能够拉低总线,避免了信号冲突。

 2.2 开漏输出结构

  • 开漏输出是一种只有下拉晶体管(通常是MOSFET或BJT)的输出结构,没有上拉晶体管。

  • 当设备需要输出低电平时,下拉晶体管导通,将信号线拉低到地(GND)。

  • 当设备需要输出高电平时,下拉晶体管关闭,信号线通过外部上拉电阻拉到高电平(VCC)。

2.3 为什么使用开漏输出

  • 多设备共享总线:I2C支持多主多从架构,多个设备可以共享同一组SDA和SCL线。开漏输出允许多个设备同时控制总线,而不会造成短路。

  • 电平兼容性:开漏输出可以适应不同的电源电压(VCC),只要上拉电阻连接到相应的VCC即可。

  • 总线仲裁:在多个主设备同时尝试控制总线时,开漏输出可以通过“线与”逻辑实现仲裁。如果一个设备输出低电平,总线就会被拉低,其他设备检测到总线被拉低后会停止发送数据。

2.4 上拉电阻

  • 外部上拉电阻是I2C总线正常工作的重要组成部分。

  • 它的作用是在没有设备拉低总线时,将总线拉到高电平。

  • 上拉电阻的阻值需要根据总线电容、通信速率和电源电压来选择。通常,阻值在4.7kΩ到10kΩ之间。

2.4 电平标准

        I2C 总线的电平标准与所连接的设备电源电压相关。常见的有 3.3V 和 5V 电平系统。在混合使用不同电平设备的系统中,需要注意电平转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿!=程序员

感谢来过,感谢有你!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值