当前位置:首页 > 单片机 > 单片机
[导读]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等非总线单片机构成的数据采集存储系统具有体积小、成本低、可靠性高的特点,因而具有很高的应用价值。
 

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

柏林2025年9月9日 /美通社/ -- 2025年9月5日,纳斯达克上市公司优克联集团(NASDAQ: UCL)旗下全球互联品牌GlocalMe,正式亮相柏林国际消费电子展(IFA 2025),重磅推出融合企...

关键字: LOCAL LM BSP 移动网络

深圳2025年9月9日 /美通社/ -- PART 01活动背景 当技术的锋芒刺穿行业壁垒,万物互联的生态正重塑产业疆域。2025年,物联网产业迈入 "破界创造"与"共生进化" 的裂变时代——AI大模型消融感知边界,...

关键字: BSP 模型 微信 AIOT

"出海无界 商机无限"助力企业构建全球竞争力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由领先商业管理媒体世界经理人携手环球资源联合主办、深圳•前海出海e站通协办的...

关键字: 解码 供应链 AI BSP

柏林2025年9月9日 /美通社/ -- 柏林当地时间9月6日,在2025德国柏林国际电子消费品展览会(International Funkausstellung...

关键字: 扫地机器人 耳机 PEN BSP

武汉2025年9月9日 /美通社/ -- 7月24日,2025慧聪跨业品牌巡展——湖北•武汉站在武汉中南花园酒店隆重举办!本次巡展由慧聪安防网、慧聪物联网、慧聪音响灯光网、慧聪LED屏网、慧聪教育网联合主办,吸引了安防、...

关键字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移远通信宣布,其自研蓝牙协议栈DynaBlue率先通过蓝牙技术联盟(SIG)BQB 6.1标准认证。作为移远深耕短距离通信...

关键字: 蓝牙协议栈 移远通信 COM BSP

上海2025年9月9日 /美通社/ -- 为全面落实党中央、国务院和上海市委、市政府关于加快发展人力资源服务业的决策部署,更好发挥人力资源服务业赋能百业作用,8月29日,以"AI智领 HR智链 静候你来&quo...

关键字: 智能体 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付与一汽出行达成合作,为其自主研发的"旗驭车管"车辆运营管理平台提供全流程支付通道及技术支持。此次合作不仅提升了平台对百余家企业客户的运营管理效率...

关键字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制药(PharmaEngine, Inc.)发现的新一代PRMT5抑制剂PEP0...

关键字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶
关闭