目录

🌈你好呀!我是 程序猿
🌌 2025感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!
引言
在嵌入式系统的广阔天地中,通信协议犹如连接各个组件的桥梁,而 IIC(Inter - Integrated Circuit)协议无疑是其中一座极为重要且应用广泛的桥梁。它以其简洁高效的设计,在众多嵌入式设备通信场景中发挥着关键作用。无论是传感器数据的采集,还是芯片间的协同工作,IIC 都无处不在。
1. IIC简介
IIC通信协议,也称为I2C(Inter-Integrated Circuit),是一种简单、高效、多主多从的双向二线制同步串行的半双工总线,由Philips公司(现NXP)于1980年代开发,广泛应用于嵌入式系统中连接各种低速外围设备。主要用于近距离、低速的芯片(如传感器、存储器、显示屏等)之间的通信。
I2C协议采用两根双向的信号线进行通信:
- 串行数据线(SDA):用于传输数据的双向线路。
- 串行时钟线(SCL):由主设备产生,用于同步数据传输。
这种协议支持多主多从架构,多主设备(多个微控制器或主控制器)和多从设备(外部设备)的连接。每个设备都有一个唯一的7位或10位地址,主设备通过地址选择需要通信的从设备进行数据传输。
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 电平系统。在混合使用不同电平设备的系统中,需要注意电平转换

最低0.47元/天 解锁文章
1469

被折叠的 条评论
为什么被折叠?



