当前位置:首页 > 单片机 > 单片机
[导读]1概述近年来,以单片机为核心构成的智能仪器仪表与数据采集系统获得了愈来愈广泛的应用。传统的数据存储方法均是通过总线型非易失数据存储器来保存采集的数据。随着单片机技术的不断发展及各种非总线型单片机的不断涌

1概述

近年来,以单片机为核心构成的智能仪器仪表与数据采集系统获得了愈来愈广泛的应用。传统的数据存储方法均是通过总线型非易失数据存储器来保存采集的数据。随着单片机技术的不断发展及各种非总线型单片机的不断涌现,采用非总线型单片机并配合大容量串行E2PROM构成的数据存储系统,将是一种非常好的数据存储方法。该方法一方面可提高系统的可靠性,另一方面又可降低系统成本。

AT24C512是ATMEL公司新近推出的具有I2C总线容量达512Kbit(64K×8)的E2PROM,该芯片的主要特性如下:存储容量为 65536byte;与100kHz、400kHz、1MHzI2C总线兼容;100000次编程/擦写周期;单电源、读写电压为 1.8V~5.5V;ESD保护电压>4kV;数据可保存40年;写保护功能,当WP为高电平时,进入写保护状态;CMOS低功耗技术,最大写入电流为3mA;128byte页写入缓存器;自动定时的写周期;具有8引脚DIP及20引脚SOIC封装等多种封装形式。

2引脚排列及功能

AT24C512的DIP型封装及20引脚的SOIC型封装的引脚排列如图1所示,各个引脚的功能如下:

SCL:串行时钟该引脚为一输入引脚,用于产生器件所有数据发送或接收的时钟。

SDA:串行数据/地址双向串行数据/地址引脚,用于器件所有数据的发送或接收。SDA是1个开漏输出引脚,可与其它开漏输出或集电极开路输出进行线接。

WP:写保护当引脚WP连接到VCC时,所有存储数据变为写保护。当引脚WP接VSS时,则允许器件进行正常读写操作。

A0,A1:器件地址输入这两个引脚为硬件连线或者不连接,通过连接VCC或VSS的组合可使单总线最多寻址4个AT24C512,当这些引脚没有连接时其默认值为0。


         (a) SOIC封装  (b) DIP封装
        图1    AT24C512引脚排列图

3器件功能描述

AT24C512是具有I2C总线的存储芯片,因此该器件必须严格遵守I2C总线传输协议。I2C总线简单的硬件接口是以复杂的时序及软件编程为代价的,下面首先对该器件的时序进行描述。

(1)起停信号

时钟线保持高电平期间,数据线电平从高到低的跳变代为I2C总线的起始信号。时钟线保持高电平期间,数据线电平从低到高的跳变代为I2C总线的停止信号。

(2)器件寻址

主器件通过发送1个起始信号启动发送过程,然后发送它所需要寻址的从器件地址,8位从器件地址的高5位固定为10100,接下来的2位(A0,A1)为器件的地址位,因此最多可以将4个AT24C512连接到同一总线上使存储容量扩展至256Kbyte。注意,这两位必须与A0和A1两引脚的输入状态相对应,从器件地址的最低位为读写控制位,“1”表示对从器件进行读操作,“0”表示对从器件进行写操作,在主器件发送起始信号和从器件发送地址字节后,AT24C512监测总线并当其地址与发送的从地址相符时发出1个应答信号(通过SDA线),AT24C512再根据读写控制位(R/W)的状态进行读写操作,从器件地址字节内容如表1所示。

(3)应答信号

I2C总线传送数据时,每成功传送1个字节,接收器都必须产生1个应答信号,应答的器件在第9个时钟周期将SDA线拉低表示其已收到1个8位数据。AT24C512在接收到起始信号和从器件地址之后产生应答信号,如果器件已选择了写操作,则在每接收1个8位字节之后1个应答信号。

当该器件工作于读模式时,在发送1个8位数据后释放SDA线并监测1个应答信号,一旦接收到应答信号,则继续发送数据,若主器件没有发送应答信号,器件停止传送数据并等待1个停止信号。

掌握了AT24C512的操作时序后再配合一定的地址/数据信息就可完成该器件的读写操作。

(4)写操作

写操作可分为字节写和页写两种写入方式。通常E2PROM的写入占用一定的写入时间,但AT24C512内部设有128字节的页写缓存,使得操作该器件如同操作SRAM一样方便,页面缓存使得两种写入方式的操作过程相同,区别仅在于写入数据字节的多少。下面以字节写入为例介绍写操作过程。

在字节写操作模式下,主器件首先给从器件发送起始信号和从器件地址信息,在从器件送回应答信号后,主器件在发送两字节的16位地址信息写入到 AT24C512地址指针,主器件在收到从器件的应答信号后,再发送1个字节的数据到被寻址的存储单元,从器件在此应答,并在主器件产生停止信号后开始内部数据擦写,在内部擦写过程中,从器件不再应答主器件的任何请求,字节写入操作时序如图2所示。


           图2    字节写操作时序

(5)读操作

读操作分为立即读、随机读和连续读。立即读是在最后操作字节的地址上加1进行读取,而连续读则是在立即读和随机读起动后主器件通过应答信号响应完成多个数据的读取,在主器件发出停止信号后结束读取过程。下面以随机读为例介绍读操作过程。

随机读操作允许主器件对存储器的任意字节进行读操作。操作过程为主器件首先发送起始信号,从器件地址和欲读取字节的地址执行1个伪写操作,此时R/W位应置0,在AT24C512应答后,主器件重新发送起始信号和从器件地址,此时R/W位应置1,AT24C512响应并发送应答信号,然后输出所要求的1个 8位字节数据。主器件不发送应答信号,但产生1个停止信号。字节读操作时序如图3所示。

4应用

AT24C512与AT89C2051单片机的硬件连接电路如图4所示。这里使用了2个AT24C512组成寻址空间为128K字节的E2PROM存储器电路。其中U2的器件地址为A0H,存储地址空间为0000-0FFFFH;U3的器件地址为A2H,存储地址空间为0000-0FFFFH。


           图3    字节读操作时序

由于AT89C2051不具有I2C总线,因此采用P1.0和P1.1口线来模拟I2C总线,AT24C512的SDA和SCL为开漏输出,故接入10kΩ的上拉电阻器。下面是与上述电路配套的E2PROM读写程序:
;内存数据定义
BitCnt     DATA    30H;读/写数据位数计数器
ByteCnt    DATA    31H;读/写数据字节数计数器
SlvAddr    DATA    32H;E2PROM器件地址
SubAdrl    DATA    33H;存储单元地址高8位
SubAdr2    DATA    34H;存储单元地址低8位
ReadDat    DATA    50H;读操作数据缓冲区
WriteDat   DATA    40H;写操作数据缓冲区
;端口位定义
SDA        BIT     P1.0;模拟I2C数据传送位
SCL        BIT     P1.1;模拟I2C时钟控制位
ACK        BIT     20H;读非应答标志
;主程序


MAIN:      MOV     SP     #60H;设堆栈
Write:     MOV  SlvAdr,   #A0H;选择1个器件地址
           MOV  ByteCnt,  #08H;设写入数据长度为8字节
           MOV  SubAdr1,  #00H;设写入单元首址为0020H
           MOV  SubAdr2,  #20H;
           LCALL  WriteData  ; 写数据
           ……
Read:      MOV   Slvadr,    #A0H;选择1个器件地址
           MOV   Bytecnt,   #08H;设读出数据长度为8字节
           MOV   SubAdr1,   #00H;设读出单元
           MOV   SubAdr2,   #20H;首址为0020H
           LCALL   ReadData;   读数据
           ……
WriteData:LCALL  Start;     I2C总线起始条件
          MOV   A,SlvAdr;   取器件地址
          LCALL  writeByte; 发送器件地址
          MOV   A,SubAdr1
          LCALL  writeByte;发送高8位地址
          MOV   A,SubAdr2
LCALLwriteByte;发送低8位地址
MOVR0,#WriteDat;取写入数据的首地址
Next:MOVA,@R0
LCALLwriteByte;写入1字节数据
LNCR0;取下1个数据
DJNZByteCnt,Next;重复操作直到写完全部数据
LCALLStop;发送I2C总线停止条件
LCALLDL10ms;延时10ms等待E2PROM内部数据
;写完
RET
;读数据子程序
ReadData:LCALLStart
MOVA,SlvAdr
LCALLWriteByte
MOVA,Subadr1
LCALLWriteByte
MOVA,Subadr2
LCALLWriteByte
LCALLStart;重复发送I2C总线起始条件
MOVA,Slvadr
SETBACC.0;R/W位置1
LCALLWriteByte
CLRACK;请读非应答标志
MOVR0,#RdadData;读缓冲区首址
DJNZByteCnt,Next1
SJMPLast
Next1:LCALLReadByte;接收1个字节数据
MOV@R0,A;接收数据送缓冲区
INCR0
DJNZByteCnt,Next1;重复接收
Last:SETBACK;接收最后1个字节数据
ACALLReadByte
MOV#R0,A
LCALLStop
RET

上面给出读写操作主程序、页面写入子程序及其多字节读子程序。受篇幅限制,部分子程序没有给出,读者可根据AT24C512的操作时序自行编制或参阅相关文献。

5结束语

由AT24C512与AT89C2051等非总线单片机构成的数据采集存储系统具有体积小、成本低、可靠性高的特点,因而具有很高的应用价值。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭