AT24C512存储器在无线抄表器中的应用在掌上电脑、电子字典、移动手机、IC卡等手持产品中,广泛使用串行电可擦的可编程只读存储器(EEPROM),与同容量的并行EEPROM芯片相比,它采用多种封装(如PDIP、EL、LAP、SOIC等),具有结构紧凑、存储容量大、功耗和价格低、数据保存时间长(40年)、读写次数多(10万次)等特点,特别适用于具有大容量数据储存要求的数据采集系统l1.2J.AT24C512是ATMEL公司最近生产的512k位(64K×8位)串行大容量电可擦的可编程存储器(EEPROM),可以在2线总线上并接4片该芯片,本文将介绍该芯片的工作原理和与单片机的软硬件接口以及在掌上抄表系统中存储抄表信息的应用.1.1AT24C512的主要特性具有如下三种工作电压:5.0V;2.7V;1.8V;内部可以组织成64kX8存储单元;符合双向数据传送I2C协议;具有硬件写保护和软件数据保护功能;具有按页(128字节)写或按字节读写模式.AT24C512有八个引脚.A0、A1:地址选择输入端.在串行总线结构中,如需连接4个AT24C512芯片,则可用A0、Al来区分各芯片;SCL:串行时钟输入.通常在其上升沿将SDA上的数据写入存储器,而在下降沿从存储器读出数据并送往SDA;SDA:双向串行数据输入输出口.用于存储器与单片机之间的数据交换;WP:写保护输入.此引脚与地相连时,允许写操作;与VCC相连时,所有的写存储器操作被禁止.如果不连,该脚将在芯片内部下拉到地.1.2AT24C512的工作原理AT24C512内部有512页,每一页为128字节,任一单元的地址为l6位.地址范围为0000H~FFFFH,可按页写或字节读写模式.AT24C512的工作状态主要有时钟和数据传送、结束和应答等4种.图1是AT24C512的工作时序.AT24C512的所有地址和数据都是以8位的形式串行传送给存储器或从存储器读出的.每次存储器都将在第九个时钟SCL周期时由SDA发零信号以对收到的8位数据进行应答.读或者写入的位数都是高位在前,低位在后.当EEPROM进入开始状态后,一般都需要一个8位的地址字来选择芯片以进行读写.器件地址字由5位0、1组成的命令字和两位地址选择位A1、A0以及一位读/写操作位构成.对于AT24C512,命令字为“10100”,同一串行总线上可以连接4个AT24C512器件,这些器件可以通过地址线A1,A0加以区分.如果只有一个AT24C512,那么Al、A0都取0.最低位为l时表示读操作,为0表示写操作,其格式如下:同时,AT24C512外部引脚A1,AO也要相应连接到VCC或GND.(与器件地址选择位相对应)2AT24C512的读写方式和工作时序2.1写操作AT24C512的写操作有写字节和写页两种方式,共64KX8bit.写字节时通常在向AT24C512发送设备地址字并接到应答信号后,还需要发送2个8位地址来选择要写数据的地址,AT24C512接收到这个地址后会应答一个零信号,然后根据CLOCK写8位数据到AT24C512.存储器接收到数据后同样会返回一个应答信号.写数据结束后,发出结束命令,AT24C512进入内部计时的写周期,这个内部写周期约需5Ills.在写循环过程中,所有的输入都不能进行,直到写结束,EEP—ROM才能响应.AT24C512具有128字节作为一页的写页功能,可以一次性写入一页.写页的初始化过程与写字节的方法基本相同.不同的是:当写页操作写入一个数据字节后,微控制器不发停止状态,而是在应答信号后接着输入127个字节.每一个字节接收完毕后,EEP—ROM照样输出一个零应答信号.因为一页只有128个单元,所以数据字的地址低7位在接收到一个字节后会自动加1,而高位地址不变,即页地址不变.若内部产生的地址达到了页的边界时,系统将回到页的开始进行写.如果一次要写的字节大于128字节,则最早写入的字节将被覆盖.图2为其写操作流程图.2.2读操作读操作有当前地址读、随机读、读串三种方式.其初始化过程基本与写操作相同,只是在设备选择字中的最低位要改成读而已.在当前地址读操作方式时,内部数据的地址将保持在最后的读写操作地址加1上,只要芯片有电源供给,这个地址将一直保持着.直到读到EEPROM的最后字节后又回到最开始的位置.而随机读操作之前先要向EEPROM写入一个字节地址,然后才能读.读串操作既可以是当前地址读,也可以是随机地址读.当微控制器接收到一个数据字后,会回应一个应答信号.EEPROM在接收到应答信号后会将地址加1,接着输出下一个字节.而当微控制器接收到数据但不回应答信号时,读过程结束.3在掌上抄表系统中的应用3.1硬件连接图3是AT24C512在单片机控制的无线掌上抄表系统的应用电路,该掌上抄表器主要由电表记录8000个用户的电表转数、底数、断送电控制、抄表时间等抄表信息,这些信息分别存放在EEPROM中,每个用户信息共占用16个字节,故需2片AT24C512存贮这些现场抄表信息,以取代原抄表器中的一片AT28C010(128k×8)并行EEPROM存储芯片.时钟芯片采用DS1302,产生年、月、日、时、分、秒等用于记录抄表时间信息.PTR2000是近距离无线收发模块,采用RS一232协议方式.为了使掌上抄表器信息一方面可以通过RS一232接口传送给上位机,同时又能控制PTR2000实现现场抄表,我们采用了三态门实现89C51单片机一个串行口实现上述的两种通信功能.扩展8255实现点阵LcD(128×64)显示功能及按键输入/控制功能.LCD实现抄表信息、数据、时间等显示,具有4行×8列汉字字符功能,按键由16个键,分别为0—9数字键及其它功能,其中一部分功能如时间调整等参照手机设定方法,通过上/下移动键或配合数字键来实现.MAX813实现电压检测与看门狗功能,当电池电压低于4.6V时,通过中断显示电池能量不足信息,从而使抄表数据可靠,看门狗功能能防止抄表器单片机死机。3.2软件编程图。下面是将一个T寄存器(累加器)中的字节写入AT24C512的程序:WRB:MOVR2,#08H;8位数据SETBP1.0;SCL置高SETBP1.1;SCD置高,停止操作NOPNOPCLRP1.1;SDA置低CLRP1.0;启动AT24C512AGAIN:RICAMOVP1.1,C;数据位一sDANOPSETBP1.0;数据位--AT24C512NOPNOPCLRP1.0DJNZR2,AGAINCAILDEL5MS;延时5毫秒SErrBP1.0SETBP1.1;停止位操作RET若向第二片(AlAo=01)AT24C51中地址为7600H单元写入一字符‘A’,则程序如下:MOVA,#0A2H;器件地址CAILWRB:MOVA,#76H;存储器地址高位CAILWRBMOVA,#00H;存储器地址低位CALLWRBMOVA,#41H;写人数据CALLWRB关于读字节程序略.4结语在存取时间要求不高、实时性要求不强的数据采集的存储系统中,特别是对数据存储容量要求较大的数据采集系统,广泛使用AT24C512串行大容量存储器(EEPROM),使产品开发的硬件成本、功耗、体积大大降低.因此AT24C512串行大容量存储器有很大的推广应用前景.