什么是I2 C 总线
扫描二维码
随时随地手机看文章
I2 C总线是Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。这种总线的主要特性如下:
(1)总线只有两根线:串行时钟线和串行数据线;
(2)每个连到总线上的器件都可由软件以唯一的地址寻址,并建立简单的主/从关系,主器件既可作为发送器,又可作为接收器;
(3)它是一个真正的多主总线,带有竞争检测和仲裁电路,可使多个主机任意同时发送而不破坏总线上的数据;
(4)同步时钟允许器件通过总线以不同的波特率进行通信;
(5)同步时钟可以作为停止或重新启动串行口发送的握手方式;
(6)连接到同一总线的集成电路数只受400 pF的最大总线电容的限制。
I2 C总线极大地方便了系统设计者,无须设计总线接口,因为总线已经集成在片内了,从而大大缩短了设计时间,并且从系统中移去或增加集成电路芯片对总线上的其它集成电路芯片没有影响。
I2 C通过两根总线:串行数据线(SDA)和串行时钟线(SCL)。这两根线使连到总线上的器件之间按一定的通信协议进行寻址和信息的传输。每个模块都有唯一的地址,在信息传输过程中,I2 C总线上的电路模块有的是主控制器(单片机),有的是被控制器,它们可以是发送器或接收器,这决定于它所完成的功能。
I2 C总线在进行数据传输时,由作为主控制器的电路模块来初始化一次数据的传输,并在I2 C总线上提供时钟进行传送。信息传输的对象、方向以及开始、终止也由主控制器来决定。此时,在I2 C总线上被主控制器所寻址的电路模块称为从控制器。在I2 C总线上数据由发送器传出,被接收器接收,接收器在每次正确接收到一个数据字节后,都要在数据总线SDA发送一个应答信号。
I2 C具有多重主控的能力,这意味着可以有多个作为主控制器的芯片(具有I2 C总线的单片机)去控制占用总线。在I2 C总线上进行数据传送的电路模块可根据不同的工作状态,分为主控发送器、主控接收器、被控(从)发送器、被控接收器。很明显,一些智能电路如单片微控制器等,可以工作在上述4种的任一状态中,而一些PAM、EPROM存储器,只能是被控发送器或被控接收器。
典型的I2 C总线应用系统结构如图10.36所示,I2 C总线上可挂接若干个单片机应用系统及若干个带I2 C接口的器件,每个I2 C接口作为一个节点,节点的数量和种类主要受总电容量和地址容量的限制。8XC552单片机具有I2 C接口,可以直接挂在I2 C总线上,对没有I2 C接口的单片机,可通过I2 C接口扩展芯片PCD8584扩展I2 C接口。
图10.36典型的I2 C总线应用系统结构
I2 C总线上所有节点都有约定的地址以便实现可靠的数据传送,单片机节点作为主器件时其地址无意义,作为从器件时其从地址在初始化程序中定位在I2 C总线地址寄存器SIADR的高7位中。器件节点的7位地址由两部分组成,完全由硬件确定,一部分为器件编号地址,由芯片厂家规定;另一部分为引脚编号地址,由引脚的高低电平决定。如4位LED驱动器SAA1064的地址为01110A1A0,其中01110为器件编号地址,表明该器件为显示LED驱动器,A1A0为该器件的两个引脚,分别接高、低电平时可以有4片不同地址的LED驱动模块节点。256字节的EEPROM器件PCF8582的地址为1010A2A1A0,通过对3个引脚的不同电平设置,可连接8片不同地址的EEPROM芯片。芯片内地址则由主器件发送的第一个数据字节来选择。关于I2 C总线的详细操作请查阅有关资料。