• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
2025机器人产业趋势论坛报名
传感器

I2C总线在8051单片机系统中的应用

  2007年01月29日  

I2C总线是PHILIPS公司推出的一种具备多主机系统所需的包括裁决和高低速设备同步等功能的高性能串行总线。它使用两条线:串行数据线(SDA)和串行时钟线(SCL),使连接到该总线上可访问的器件之间传送信息,属于多主控制总线。总线上的每个器件都有唯一的地址识别,而且都可以作为一个发送器或接收器。由于I2C总线的使用可以简化电路,省掉了很多常规电路中的接口器件,提高产品的可靠性,在许多领域尤其在目前使用的IC卡获得了广泛的应用。

现今,8051系列的单片机应用很广,但是它们都没有I2C总线接口。但是分析I2C总线的时序可知,I2C总线规定其时钟线(SCL线)和和数据线(SDA线)是各设备对应输出状态相“与”的结果,任一设备都可以用输出低电平的方法延长SCL低电平时间,迫使高速设备进入等待状态,实现不同速度设备间的时钟同步。因此,即使时钟脉冲的高、低电平时间长短不一,也能实现数据的可靠传送,因此我们可以通过软件控制单片机的普通I/O口做I2C接口,实现I2C总线功能。本文以ATMEL公司的具有I2C总线的AT24C256为例介绍I2C总线在8051单片机系统中的应用并给出C语言的软件实现。

I2C总线构成及时序

I2C总线组成

I2C总线是一个多主机总线,即可以连接多于一个能控制总线的器件到总线。I2C串行总线有两根信号线:一根双向的数据线SDA;另一根是时钟线SCL。SDA和SCL都是双向I/O口线,当总线空闲时这两条线路都是高电平。所有接到I2C总线上的器件的串行数据线都接到总线的SDA线,各器件的时钟线都接到SCL总线上。其结构如图一所示。

I2C总线在8051单片机系统中的应用 - 1

I2C总线时序

所有主机在SCL线上产生自己的时钟来传输I2C总线上的数据,数据只在时钟的高电平周期有效,每传输一个数据位就产生一个时钟脉冲,数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变,当SCL为高电平时,SDA的改变表示“开始”和“停止”状态,即SDA由高电平转入低电平表示开始,该命令必须在其它命令前执行;SDA由低电平转入高电平表示停止状态,该命令可终止所有通讯。在开始条件后,SCL低电平期间,SDA允许变化,每位数据需一个时钟脉冲,当SCL为高时,SDA必须稳定,主控器在应答时钟脉冲高电平期间释放SDA线,转由接收器控制。相同总线上的设备在收到数据后,以置SDA为低电平的方式对其确认。总线不忙时,数据线和时钟线保持为高电平。I2C的时序如图二所示。


最新视频
尺寸小巧,实力非凡:埃莫Platinum Twitter引领伺服控制新时代   
欧姆龙智能化生产管理平台 | 汽车行业设备健康管理、预测性维护应用   
研祥金码
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
研祥IPC-310准系统,5月28日冰点底价限时开抢!
研祥IPC-310准系统,5月28日冰点底价限时开抢!

研祥IPC-310准系统,5月28日冰点底价限时开抢!

研祥IPC-310准系统,5月28日冰点底价限时开抢
研祥IPC-310准系统,5月28日冰点底价限时开抢

疯狂星期三,研祥IPC-310准系统,5月28日冰点底价限时开抢!

在线会议
热门标签

社区