(51单片机)第八章-I2C总线AT24C02芯片应用

本文围绕51单片机展开,介绍了I2C总线,包括其特点、硬件结构、通信格式等内容。阐述了单片机模拟I2C总线的工作时序及关键程序。还以AT24C02为例,讲解了具有I2C总线接口的E2PROM的引脚配置、存储结构、寻址及读写操作时序,并给出实验板连接图和示例程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.1 I2C总线概述

1. I2C总线介绍

        I2C总线(Inter IC Bus)由PHILIPS 公司推出,是近年来微电子通信控制领域广泛采用的一种新型总线标准,它是同步通信的一种特殊形式,具有接口线少、控制简单、器件封装形式小、通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,所有与I2C兼容的器件都具有标准的接口通过地址来识别通信对象,使它们可以经由I2C总线互相直接通信

        I2C总线由数据线 SDA 时钟线 SCL两条线构成通信线路,既可发送数据,也可接收数据。在 CPU与被控IC之间、IC与IC之间都可进行双向传送,最高传送速率为400kbps,各种被控器件均并联在总线上,但每个器件都有唯一的地址。在信息传输过程中,I2C总线上并联的每一个器件既是被控器(或主控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU 发出的控制信号分为地址码数据码两部分:地址码用来选址,即接通需要控制的电路;数据码是通信的内容,这样各IC控制电路虽然挂在同一条总线上,却彼此独立。

2. I2C总线硬件结构图

        下图为I2C总线系统的硬件结构图,其中,SCL是时钟线,SDA是数据线。总线上各器件都采用漏极开路结构与总线相连,因此SCL和SDA 均需接上拉电阻总线在空闲状态下均保持高电平,连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的 SDA 及 SCL 都是线“”关系。

        I2C总线支持多主和主从两种工作方式,通常为主从工作方式。在主从工作方式中,系统中只有一个主器件(单片机),其他器件都是具有I2C总线的外围从器件。在主从工作方式中,主器件启动数据的发送(发出启动信号),产生时钟信号,发出停止信号。

 3. I2C总线通信格式

        下图为I2C总线上进行一次数据传输的通信格式:

4. 数据位的有效性规定

        I2C总线进行数据传输时,时钟信号为高电平期间数据线上的数据必须保持稳定只有时钟信号为低电平期间,数据信号的高电平或低电平才允许变化:

5. 发送启动(始)信号

        在利用I2C总线进行一次数据传输时,首先由主机发出启动信号,启动I2C总线,在SCL为高电平期间,SDA出现下降沿(原书写错)为启动信号,此时,具有I2C总线接口的从器件会检测到该信号,启动时序如下图所示:

 6. 发送寻址信号

        主机发送启动信号后,再发出寻址信号。器件地址有7位和10位两种,这里只介绍7位地址寻址方式。寻址字节的位定义如下图所示,寻址信号由一个字节构成,7位为地址位最低位为方向位,用以表明主机与从器件的数据传送方向方向位为0,表明主机接下来对从器件进行写操作方向位为1,表明主机接下来对从器件进行读操作

        主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据 R/W位将自己确定为发送器或接收器。

        从机的地址由固定部分可编程部分组成。在一个系统中可能希望接入多个相同的从机,从机地址中可编程部分决定了可接入总线该类器件的最大数目。如一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,即可以有8个同样的器件接入到该IC总线系统中。

  7. 应答信号

        I2C总线协议规定,每传送一个字节数据(含地址及命令字)后,都要有一个应信号,以确定数据传送是否被对方收到。应答信号由接收设备产生,在SCL信号为高电平期间,接收设备将 SDA 拉为低电平,表示数据传输正确,产生应答,时序图如下图所示。

8. 数据传输

        主机发送寻址信号并得到从器件应答后,便可以进行数据传输,每次一个字节,但每次都应在得到应答信号后再进行下一字节的传送。

9. 非应答信号

        当主机为接收设备时,主机对最后一个字节不应答,以向发送设备表示数据传送结束

10. 发送停止信号

        在全部数据传送完毕后,主机发送停止信号,记在SCL为高电平期间,SDA上产生一上升沿信号,停止时序图如下图所示:

8.2 单片机模拟I2C

        目前市场上很多单片机都已经具有硬件I2C总线控制单元,这类单片机在工作时,总线状态由硬件监测,无须用户介入,操作非常方便。但是还有许多单片机并不具有I2C总线接口,如51单片机,但可以在单片机应用系统中通过软件模拟I2C总线的工作时序,在使用时,只需正确调用各个函数就能方便地扩展I2C总线接口器件。在总线的一次数据传送过程中,可以有以下几种组合方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值