首页 理论教育 单片机I2C总线扩展技术

单片机I2C总线扩展技术

时间:2023-10-28 理论教育 版权反馈
【摘要】:图4-19 I2C总线连续传输数据的格式2.串行E2PROM的数据传输方法串行E2PROM是I2C总线扩展的一类常用器件,属于电可写可擦非易失性存储器,通常用作掉电数据保存。

单片机I2C总线扩展技术

I2C总线(Inter-Integrate CirciutBus)是在20世纪80年代推出的一种2线制串行总线。一条是串行数据线SDA,另一条是串行时钟线SCL,所有进行数据交换的主设备(或称主节点)和从设备(或称从节点)都连接在这两条线上,业已成为一种世界范围内的工业接口标准。I2C器件可以作为外围从设备与作为主设备的单片机进行同步双向串行数据传输,标准模式传输速率为100kbit/s,最低可为零。单片机通过I/O口线模拟I2C总线的扩展连接图见图4-16,因总线输出端的内部为集电极开路结构,需分别连接上拉电阻R,所挂器件的数量主要取决于总线电容负载和从设备地址容限。

1.I2C总线的基本传输协议

I2C总线的基本传输协议包括:启动总线、传输数据、应答和停止总线等。

978-7-111-49886-5-Chapter04-53.jpg

图4-16 单片机通过I/O口线模拟I2C总线的扩展连接图

(1)启动总线与停止总线 均由主设备发出,在数据线SDA和时钟线SCL均为电平时的总线等待状态,SDA电平由高变低则为启动总线(S);在SCL为高电平时,SDA电平由低变高则为停止总线(P)。启动信号与停止信号见图4-17。

978-7-111-49886-5-Chapter04-54.jpg

图4-17 启动信号与停止信号

(2)数据传输 SCL高电平时SDA数据有效,低电平时允许SDA数据变动。总线启动后,主设备传送的第一个字节为从设备寻址地址,高位在先低位在后,其中前7位为地址码,第8位为读/写方式位978-7-111-49886-5-Chapter04-55.jpg,“0”表示向从设备发送数据(写),“1”表示接收从设备的数据(读)。从设备与自身的地址进行比较,如果地址一致,则该所选从设备便按照978-7-111-49886-5-Chapter04-56.jpg的要求作后续数据的传输。如果想暂停传输数据,可以把时钟线SCL一直保持为低电平,即可实现速度为零的数据传输。

(3)应答信号与非应答信号 主设备每发送一个8位的字节,从设备均返回一个应答信号位ACK(低电平);字节全部发送完时主设备便停止总线。主设备每接收从设备的一个数据字节,主设备也发出一个应答信号位ACK(低电平),表示数据收到;最后一个字节接收完毕时,主设备发出一个非应答信号位978-7-111-49886-5-Chapter04-57.jpg(高电平),然后停止总线。应答信号位和非应答信号位均对应于第9个SCL时钟信号。从设备发送信号后,释放SDA线为高电平。应答信号和非应答信号见图4-18。

978-7-111-49886-5-Chapter04-58.jpg

图4-18 应答信号和非应答信号

I2C总线连续传输数据的格式见图4-19,每次传输的数据字节不限。

978-7-111-49886-5-Chapter04-59.jpg

图4-19 I2C总线连续传输数据的格式

2.串行E2PROM的数据传输方法

串行E2PROM是I2C总线扩展的一类常用器件,属于电可写可擦非易失性存储器,通常用作掉电数据保存。其中常见的AT24C××系列属8位数据格式,可以进行双向数据传输和页区寻址。采用低功耗的CMOS技术制造(三态时约2mA,待机时约60μA),8引脚封装,体积小。内部设有自定时写入周期和写保护功能,可反复擦写10万次以上,数据可保留100年,工作电压范围从2.0V到5.0V。单字节器件寻址方式(7个地址位,前4位为器件地址1010,属生产厂商分配的固定地址)的常见型号有:

AT24C02 容量 2048字位(256×8)

AT24C04 容量 4096字位(512×8)

AT24C08 容量 8192字位(1024×8)

AT24C16 容量 16384字位(2048×8)

(1)串行E2PROM的器件寻址 AT24C××系列器件的引脚定义见图4-20。

A0~A2 地址输入线

SDA 串行输入/输出线

SCL 串行时钟输入线

WP 写保护线(或空脚NC)

VCC 供电电源线

GND 接地线

978-7-111-49886-5-Chapter04-60.jpg

图4-20 AT24C××系列器件的引脚定义

“写保护”线WP接地时器件可正常读/写操作,WP接VCC时写保护生效。由于AT24C××系列按256字节为一页对片内存储器进行分页,器件寻址字节中的后3位是器件引脚A2~A0的值,用作同型号器件的片选线,其引脚可接VCC或接GND,并可结合软件编码来确定器件的页区(或称页面)首地址。页数超过1页的器件通过引脚占用的方式来表示页区首址Pi(i取0或1)。具体来说,AT24C04属2页器件,A0被P0占用,页区编码可为0和1;AT24C08属4页器件,A1和A0被P1、P0占用,页区编码可以为00、01、10和11;AT24C16属8页器件,A2、A1和A0全被P2、P1和P0占用,页区编码可以为000~111。器件的页面首地址见表4-5,器件的寻址字节见表4-6。

4-5 器件的页面首地址

978-7-111-49886-5-Chapter04-61.jpg

4-6 器件的寻址字节

978-7-111-49886-5-Chapter04-62.jpg(www.xing528.com)

如果总线上同时接有多个该类器件,其A2~A0引脚接VCC或接GND的考虑原则是:结合Pi值软件编址,只要保证页面首地址之间有256字节的间隔,器件页面地址就不会重叠。引脚接线与页面编址举例见图4-21。

978-7-111-49886-5-Chapter04-63.jpg

图4-21 引脚接线与页面编址举例

(2)串行E2PROM的读/写方式 串行E2PROM器件作为从设备,基于I2C总线时序的常用读/写方式归并如下:

1)字节写入:主设备启动总线(S)后,发出器件寻址的“写控制字节”,器件返回应答信号ACK(低电平),主设备每次检测到后便送出第9个时钟脉冲,接着发出“片内地址字节”,器件再返回应答信号ACK;主设备发出数据字节,器件返回应答信号ACK,然后主设备停止总线(P),器件进入内部自定时写非易失性存储器周期(约10ms)。字节写入的格式见图4-22。

978-7-111-49886-5-Chapter04-64.jpg

图4-22 字节写入的格式

与之相应的是页区写入,以片内某个地址单元为开始,可以一次连续写入n个字节的数据,写入的地址会自动加1,每写入一个数据从设备需返回一个应答信号ACK,至最后一个数据完毕后才停止总线,不必执行n次启动/停止总线的过程。器件页区写入的长度n随型号而异,若写入字节超过n则数据会循环上卷(复盖),器件的n值诸如:

AT24C01A/02 n≤8字节

AT24C04/08/16 n≤16字节

2)字节读出:主设备启动总线(S)后,送出器件寻址的“写控制字节”和“片内地址”(与“字节写入”的差别在于后续不执行写“数据”操作,地址不会自动加1)。器件返回应答信号ACK(低电平)后,再次启动总线(S),发出“读控制字节”,器件返回应答信号ACK后,便把片内地址的数据字节送入SDA,主设备送出非应答信号ACK(高电平)并终止总线。此读出方式属于随机读出,字节读出的格式见图4-23。

978-7-111-49886-5-Chapter04-65.jpg

图4-23 字节读出的格式

与之相应的是序列读出,继字节读出格式的“读控制字节”和ACK(从设备应答)之后,可以一次连续读出n个字节的数据,主设备只需启动/停止总线一次,但每读出一个数据主设备需返回一个应答信号ACK(低电平),从设备收到后会自动把数据地址加1,再输出数据字节,至最后一个数据读完后主设备才送出978-7-111-49886-5-Chapter04-66.jpg(高电平)并终止总线。当连续读出超过最大值256字节页面地址时,计数器会重置为零并继续读出,但数据会上卷(复盖)。

(3)串行E2PROM读/写的程序模块流程图 包括:启动总线,停止总线,从设备写入8位,从设备读出8位,查从设备应答位,主设备发应答位,主设备发非应答位,从设备随机写入N字节,从设备随机读出N字节,共9个模块,见图4-24至图4-32,其中最末两个模块基本上是对其余模块的综合调用。

978-7-111-49886-5-Chapter04-67.jpg

图4-24 启动总线

978-7-111-49886-5-Chapter04-68.jpg

图4-25 停止总线

978-7-111-49886-5-Chapter04-69.jpg

图4-26 从设备写入8位

978-7-111-49886-5-Chapter04-70.jpg

图4-27 从设备读出8位

978-7-111-49886-5-Chapter04-71.jpg

图4-28 查从设备应答位

978-7-111-49886-5-Chapter04-72.jpg

图4-29 主设备发应答位

978-7-111-49886-5-Chapter04-73.jpg

图4-30 主设备发非应答位

978-7-111-49886-5-Chapter04-74.jpg

图4-31 从设备随机写入N字节

978-7-111-49886-5-Chapter04-75.jpg

图4-32 从设备随机读出N字节

51系列单片机与I2C总线器件E2PROM的扩展应用示例祥见第8章第8.7节。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈