I2C总线是一种具有自动寻址、高低速设备同步和仲裁等功能的高性能串行总线,能够实现完善的全双工数据传输,是各种总线中使用信号线数量最少的。I2C总线只有两根信号线:数据线SDA和时钟线SCL.所有进入TC总线系统中的设备都带有fC总线接口,符合I2C总线电气规范的特性,只需将I2C总线上所有节点的串行数据线SDA和时钟线SCL分别与总线的SDA和SCL相连即可。各节点供电可以不同,但需共地,另外SDA和SCL需分别接上拉电阻。
当执行数据传送时,启动数据发送并产生时钟信号的器件称为主器件:被寻址的任何器件都可看作从器件;发送数据到总线上的器件称为发送器;从总线上接收数据的器件称为接收器。I2C总线是多主机总线,可以有两个或更多的能够控制总线的器件与总线连接;同时I2C总线还具有仲裁功能,当一个以上的主器件同时试图控制总线时,只允许一个有效,从而保证数据不被破坏。
I2C总线的寻址采用纯软件的寻址方法。无需片选线的连接,这样就简少了总线数量。主,机在发送完启动信号后,立即发送寻址字节来寻址被控器件,并规定数据传送方向。寻址字节由7位从机地址( D7~DI)和1位方向位(D0,0 1,读写)组成。当主机发送寻址字节时,总线上所有器件都将该寻址字节中的高7位地址与自已器件的地址比较,若两者相同,则该器件认为被主机寻址,并根据读写位确定是从发送器还是从接收器。
I2C总线具有多重主控能力,这就意味着可以允许多个作为主控器的电路模块(具有IC总线接口的单片机)去抢占总线。因此挂接在fc总线上的集成电路模块的发送器1接收器可以根据不同的工作状态分为主控发送器、主控接收器、被控发送器和被控接收器。显然,具有I2C总线接口的单片机可以工作在上述4种工作状态中的任一状态,而一些带有TC总线接口的存储器(RAM或E PROM)模块只能充当被控发送器或被控接收器。图8-9示出了带有两个单片机和其他一* 些外围电路模块接入I2C总线的一个实例。
在图8-9中,假设单片机A要向单片机B发送信息,单片机A首先作为主控器在I2C总线上发送起始信号和时钟,寻址作为被控器的单片机B,并确立信息传送方向。接着,单片机A作为主控发送器便可通过SDA线向被控接收器(单片机B)发送信息,并在信息发送完毕后发送终止信号,以结東信息的传送过程。
假设单片机A要从单片机B读取信息,单片机A同样作为主控器在I2C总线上发送起始信号和时钟,寻址作为被控器的单片机B,并确立信息传送方向。此时,单片机A作为主控接收器接收单片机B发送的信息,一旦作为主控接收器的单片机A接收完单片机B发来的信息后就发出终止信号,以结東整个信息的读取过程。
上述分析表明:不论作为主控器的单片机A向作为被控器的单片机B是发送信息还是读取信息,被传信息的起始和终止信号以及时钟信号都是由作为主控器的单片机A发送的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !