1. 常用通信总线---IIC / I2C
引言
Inter-Integrated Circuit bus,集成电路间总线,简称IIC或I2C,是电子、通信专业学生必学的总线。因其开放、简单、稳定等优势,在数据量小、通信速率要求不高的场合被广泛应用。几乎每台电脑的内存、硬盘、手机的摄像头、EEPROM存储以及嵌入式系统中的各种传感器都使用到了I2C。
目录
一、基本特点
1.1 硬件结构
1.2 IIC设备
1.3 主从设备
1.4 上拉电阻
1.5 通信速率
二、波形解读
2.1 空闲状态
2.2 起始信号
2.3 通信状态
2.4 应答信号
2.5 停止信号
2.6 完整读/写过程
三、信号质量
3.1 逻辑电平的幅值
3.2 时序要求
四、设计要点
4.1 上拉电阻选择
4.2 电平转换设计
4.3 匹配电阻预留
4.4 信号线抗干扰
五、常见故障
5.1 挂死
5.2 信号干扰
一、基本特点
1.1 硬件结构
典型的I2C总线由两条信号线组成,分别是时钟线SCL和数据线SDA,并外接上拉电阻。
1.2 IIC设备
IIC设备有唯一的7位地址,理论上每条总线上的IIC设备最多为127个。
1.3 主从设备
一条总线上允许有多个主设备,但同一时间只能有一个主设备使用总线通信。
1.4 上拉电阻
上拉电阻使接口可输出高电平,使总线在无信号时保持高电平状态。
1.5 通信速率
I2C通信速率由使用总线的设备决定,有标准、快速、高速和超快速四种模式。
二、波形解读
2.1 空闲状态
IIC总线空闲时,SDA和SCL均处于高电平。
2.2 起始信号
起始信号为将SDA从高电平拉低。
2.3 通信状态
通信状态时,SCL低电平时SDA状态可切换。
2.4 应答信号
应答信号为SCL高电平时SDA状态变化。
2.5 停止信号
停止信号为SCL高电平时,将SDA从低电平转换成高电平。
2.6 完整读/写过程
完整读/写过程包含起始信号、地址/数据传输、应答和停止信号。
三、信号质量
衡量I2C信号质量主要从逻辑电平的幅值和时序要求两个维度。
3.1 逻辑电平的幅值
信号的高低电平有明确对应的电压值,信号的上下限值需在器件手册要求的范围内。
3.2 时序要求
评估I2C信号质量,关注时钟/数据的上升和下降时间、时钟高/低电平周期等指标。
四、设计要点
4.1 上拉电阻选择
上拉电阻需在1k-10k之间选择,设备多、总线长需减小阻值,设备少、总线短则可选择更大电阻值。
4.2 电平转换设计
采用集成电平转换芯片或MOS管将不同电压等级的I2C器件隔离开。
4.3 匹配电阻预留
电路板上预留匹配电阻位置,减少信号反射,增强信号质量。
4.4 信号线抗干扰
远离电源和高频信号线,做好地隔离,使用屏蔽层增强抗干扰能力。
五、常见故障
5.1 挂死
总线上的设备出现故障或通信逻辑混乱,导致总线无法正常通信。
5.2 信号干扰
I2C总线受到干扰,信号波形异常,导致通信失败。
2. UART, SPI, IIC的详解及三者的区别和联系
UART、SPI、IIC是常见的数据传输标准,它们各自有独特的特性和应用场景。首先,UART,即通用异步收发器,常用于设备调试,需要至少三根线:RX(接收)、TX(发送)和GND。它的通信方式是全双工,但若PC与单片机通信,还需电平转换芯片。数据传输通常以5、6、7、8位帧结构进行,且有起始、停止位和可能的校验位。RTS/CTS流控可实现握手,但通常在调试中较少使用。
SPI,同步外设接口,由摩托罗拉开发,适用于与慢速外设设备如EEPROM、ADC等通信。它是一种全双工同步通信,通过SDI、SDO、SCK和CS信号实现,主设备控制数据传输,支持多个从设备。
IIC,也称I2C,是一种半双工、两线(SCL和SDA)接口,适合近距离、非频繁的设备间通信。数据传输时需先发送地址,每个设备有唯一的地址。I2C操作需严格遵守时序,对口线连接时可能需要额外的延时和保护措施。
速率方面,SPI的速度范围较广,从400K到几兆不等,而RS232通常最大115200bps,IIC一般为400K,CAN可达1M。传输距离上,RS232适用于短距离(15米),SPI和IIC用于芯片间通讯,而CAN则因抗干扰能力强,可达到10公里以上。