I2C介绍
I2C用在消费者电子、电讯和工业电子中,看上去不相关的设计里经常有很多相似的地方 例如几乎每个系统都包括:
(1)一些智能控制 通常是一个单片的微控制器。
(2)通用电路,例如 LCD 驱动器、远程 I/O口、RAM EEPROM或数据转换器
(3)面向应用的电路,譬如收音机和视频系统的数字调谐和信号处理电路,或者是音频拨号电话的 DTMF发生器。
I2C 总线的一些特征如下:
(1)只要求两条总线线路,一条串行数据线 SDA,一条串行时钟线 SCL。
(2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址:主机可以作为主机发送器或主机接收器。
(3)它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏。
(4)串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s,快速模式下可达 400kbit/s,高速模式下可达3.4Mbit/s。模式可以通过相关的寄存器进行调节,选择的话就根据实际需求和数据量的大小来选择速率,不同的速率上的呈现出来的电容不一样,对应的上拉电阻也就不一样。
(5)片上的滤波器可以滤去总线数据线上的毛刺波,保证数据完整。
(6)连接到相同总线的IC数量只受到总线的大电容400pF的限制。
(7)它是一个半双工(全双工允许数据在两个方向上同时传输,而半双工允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输,实际上是切换的单工。)
I2C接口电气特性
I2C在同一条线上的输入缓冲器上使用一个开漏/开集,这允许单个数据线用于双向数据流。
开漏指的是一种输出,它可以把总线拉到一个电压(在大多数情况下是接地的)。要想实现释放总线,或者说让总线为高电平,那么就需要一个上拉电阻(RPU)拉到电源,来达到输出高电平的状态。因此,这意味着总线永远不会遇到一个通信问题,其中一个设备可能试图传输高电平,另一个传输低电平,导致短路(电源轨对地)。因为就算出现一个高电平和一个低电平都会经过一个上拉电阻,不会直接短路。
图1 SDA/SCL线的基本内部结构
(1)开漏拉低
如前一节所述,开漏设置可能只拉低总线,想要传输低电平的逻辑将激活下拉FET,这将提供一个短到地面,拉低线。
图2 使用开漏接口将总线拉低
(2)开漏拉高(总线释放)
从端或主端希望发送逻辑高电平时,它只能通过关闭下拉FET,通过上拉电阻来释放总线。
图3 使用开漏接口将总线拉高
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)