访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
28SF040闪速存储器及其在嵌入式系统中的应用
内容导读:
28SF040闪速存储器及其 在嵌入式系统中的应用天津大学精仪学院钱 莹张志荣曾周末 摘要简要介绍SST公司的SuperFlash存储器28SF040的结构、功能、接口特性、与微控制器的接口方式、内部数据的保护方法以及读写程序等。 关键词闪速存储器数据保护接口特性 28SF040是SST公司生产的CMOS型SuperFlash E2PROM,存储容量为512KB,使用单5V电源进行按扇区的擦除和按字节的写入操作。其引脚输出与工业标准的EPROM,Flash EPROM和E2PROM完全兼容,在电路设计时十分方便。 28SF040存储器具有很好的读写性能,能在35μs内完成1个字节的写入操作;在2ms内完成1个扇区的擦除操作。编程和擦除操作亦可以通过利用该器件的一些接口特性实现优化,如利用Toggle Bit或Data# Polling提示写操作周期的结束等。为避免误写操作,28SF040具有片上硬件和软件数据保护功能,片内存储的数据可保留100年以上。 28SF040非常适用于需要程序和数据的大容量、非易失性、重复编程存储的场合。在系统应用中,28SF040和软盘存储器及EPROM相比,能够在降低功耗的同时显著提高系统性能和可靠性。 一、 内部结构与引脚功能 28SF040的内部结构及DIP封装的引脚排列如图1所示,其功能如下: 图1内部功能结构及DIP封装图A18~A8:行地址输入。提供存储区地址,行地址确定所在扇区。 A7~A0:列地址输入。选定某个扇区内的1个字节,每个扇区的容量为256字节。 DQ7~DQ0:数据输入/输出。在读周期中输出数据;在写周期中接收数据。写过程中写入的数据被内部锁存。当OE或CE无效时,输出呈高阻态。 CE:片选。低电平时选中该器件。 OE:输出允许。低电平时打开数据输出缓冲区,允许读操作。 WE:写允许。低电平时允许写操作。 VCC、VSS:电源(单5V)和地。 二、 接口方式 和大多数外扩ROM或RAM的接口方式一样,28SF040通过地址和数据总线与MCU进行接口,其与51系列MCU的接口示意图如图2所示。 图228SF040与51单片机接口示意图三、 读写操作 对28SF040的操作是通过一系列命令来实现的。命令通过数据总线写入控制寄存器,写命令的实现是分两步完成的,先写入某一数据进行命令的初始化,再写入另一数据开始执行命令。28SF040的基本命令如表1所列(其中X表示任意地址;SA表示扇区地址A18~A8;PA表示编程地址A18~A0;PD表示编程数据)。 表128SF040软件命令简表 命令描述[]时钟 周期[]初始命令[]执行命令类型[]地址[]数据[]类型[]地址[]数据[]数据软件保护 时可否执行扇区擦除[]2[]写[]X[]20H[]写[]SA[]D0H[]否字节写入[]2[]写[]X[]10H[]写[]PA[]PD[]否片擦除[]2[]写[]X[]30H[]写[]X[]30H[]否复位[]1[]写[]X[]FFH[9]可读ID号[]3[]写[]X[]90H[]读[9]可1. 扇区擦除 1个扇区包括256个字节,扇区擦除命令可1次将1个扇区内的数据全部清除。由于多数时候只需改变少量单元或扇区中的数据而不需要改变整个片内数据,扇区擦除命令是很方便的。扇区擦除命令的分步执行可以保证除被寻址的存储单元以外的其他单元的内容不被改变。另外,整片擦除命令可以使得整个存储区内的数据在1次操作内完成擦除。 2. 按字节编程 在确定了要写入数据的存储单元后同样分两步进行数据的写入操作,保证未被寻址的存储单元中的内容不被破坏。数据写入流程如图3所示。 图3以字节为单位的数据写入操作3. 复位 复位命令用来取消擦除或写入操作而不影响各单元的数据。在擦除或写入命令初始化以后,立即执行复位命令(FFH)就可以放弃擦写命令的执行。在复位命令执行以后,器件处于只读(即数据的“软件”写保护)状态。 4. 读数据 读取操作要将CE和 OE置为低电平而将WE置为高电平后进行。系统上电后该器件处于只读状态,须要解保护才能进行写入或擦除操作。 四、 关于片内数据写保护 为保证片内非易失性存储数据的完整和安全,28SF040具有软硬件两方面的保护措施。 1 硬件保护 有4种方式可以实现:将CE或WE置为低电平;使WE信号脉宽小于15ns;当电源电压小于2.5V时;系统刚上电时器件处于只读状态(软件保护)。 2 软件保护 该器件的写操作类命令的执行都是分2步进行的,这样就使得操作不会影响未被寻址的存储单元。另外,当器件处于写保护状态时,须要依次读取1823H,1820H,1822H,0418H,041BH,0419H和041AH 7个单元的数据来解保护。同样,如果依次读取1823H,1820H,1822H,0418H,041BH,0419H和040AH 7个单元的内容便又加上了软件保护。 五、 典型读写程序 在对28SF040进行编程操作的时候,可以用Toggle Bit(即DQ6位)或Data# Polling(即DQ7位)来查看写操作状态。如在1次写操作的过程中,连续地读取该器件中的同一地址的数据,会使得所读取的数据的DQ6位即左数第2位在0与1之间不停翻转。当数据写入操作周期完成以后,DQ6的翻转就会停止,此时器件在准备接收下1个操作。本文所附程序中就是利用Toggle Bit来进行判断的。 另外,利用Data# Polling即DQ7位来判断数据写入操作完成与否在编程上似乎更简单。方法是在写入1个字节数据以后,用累加器A存放的该数据和立即数80H相与,从而得到刚写入的数据的最高位的值DQ7。紧接着进行1个读操作(可为任意地址),再将得到的数据的最高位取出来,若这2个最高位的值一样,即表明数据写入过程结束,否则未结束,要重复上述操作。利用Toggle Bit和Data# Polling的操作流程图,如图4和图5所示。 图4Toggle Bit的用法图5Data# Polling的用法ERR〖〗EQU〖〗20H〖〗RAM〖〗EQU〖〗21H[]DLYL〖〗EQU〖〗22H ; 延时变量[]DLYM〖〗EQU〖〗23H[]DLYH〖〗EQU〖〗24H[]A16〖〗EQU〖〗P1.0[]A17〖〗EQU〖〗P1.1[]A18〖〗EQU〖〗P1.2[]CE〖〗EQU〖〗P1.3********************** 擦除某一扇区: 入口:A16, A17, A18 , DPTR——>欲擦除的扇区内任一地址 出口:ERR=00H——擦除成功 01H——擦除失败 所用的变量:R5 SECERA:〖〗MOV〖〗ERR, #00H[2]CLR〖〗CE〖2〗MOV〖〗A, #20H〖2〗MOVX〖〗@DPTR, A ;初始命令〖2〗MOV〖〗A, #0D0H〖2〗MOVX〖〗@DPTR, A ;执行命令〖2〗NOP〖2〗NOP〖2〗LCALL〖〗RDTB ; 判断是否完成〖2〗MOV〖〗R5, #256〖2〗MOV〖〗DPL, #00H〖1〗SEVEF:〖〗MOVX〖〗A, @DPTR〖2〗CJNE〖〗A, #0FFH, SERR〖2〗INC〖〗DPTR〖2〗DJNZ〖〗R5, SEVEF〖2〗SJMP〖〗SERET〖1〗SERR:〖〗MOV〖〗ERR, #01H〖1〗SERET:〖〗SETB〖〗CE〖2〗RET********************** 对某一字节编程: 入口:A16, A17, A18, DPTR——>欲编程的字节地址 RAM——>欲写入的数据 出口:ERR=00H——编程成功 02H——编程失败 所用的变量:R5 BYPRG:〖〗MOV〖〗ERR, #00H〖2〗CLR〖〗CE〖2〗MOV〖〗A, #10H〖2〗MOVX〖〗@DPTR, A ;初始命令〖2〗MOV〖〗A, RAM〖2〗MOVX〖〗@DPTR, A ;执行命令〖2〗NOP〖2〗NOP〖2〗LCALL〖〗RDTB ;判断是否完成〖2〗MOVX〖〗A, @DPTR〖2〗CJNE〖〗A, RAM, BPERR〖2〗SJMP〖〗BPRET〖1〗BPERR:〖〗MOV〖〗ERR, #02H〖1〗BPRET:〖〗SETB〖〗CE〖2〗RET********************** 整片擦除: CHIP:〖〗CLR〖〗CE〖2〗MOV〖〗A, #30H〖2〗MOVX〖〗@DPTR, A〖2〗MOV〖〗A, #30H〖2〗MOVX〖〗@DPTR, A〖2〗LCALL〖〗DLY2S〖2〗RET********************** 上述功能操作中须调用到的子程序所用的变量: R5 RDTB:〖〗MOVX〖〗A, @DPTR〖2〗ANL〖〗A, #40H〖2〗MOV〖〗R5, A〖2〗NOP〖2〗MOVX〖〗A, @DPTR ;读取与地址不变的数据〖2〗ANL〖〗A, #40H〖2〗XRL〖〗A, R5〖2〗CJNE〖〗A, #00H, RDTB ;若数据的DQ6位不 ;同,则重新读〖1〗RDTBLP:〖〗 MOVX〖〗A, @DPTR〖2〗ANL〖〗A, #40H〖2〗MOV〖〗R5, A〖2〗NOP〖2〗MOVX〖〗A, @DPTR〖2〗ANL〖〗A, #40H〖2〗XRL〖〗A, R5〖2〗CJNE〖〗A, #00H, RDTBLP ;若DQ6不再变化, ;则表明写入过程结束〖2〗RET延时子程序 DLY2S:〖〗MOV〖〗DLYH, #1AH ; 延时2s〖1〗A4:〖〗MOV〖〗DLYM, #0FFH〖1〗A5:〖〗MOV〖〗DLYL, #0FFH〖2〗DJNZ〖〗DLYL, $〖2〗DJNZ〖〗DLYM, A5〖2〗DJNZ〖〗DLYH, A4〖2〗RET********************** 总之,闪速存储器28SF040接口简单,编程方便,读写速度快,工作可靠性高,适用于绝大多数需要非易失性存储的嵌入式系统应用场合。MES 参考文献 1SST 28SF040 5.0V\ only 4 Megabit SuperFlash E2PROM Data Sheet
标签:
来源:单片机与嵌入式系统应用 作者:天津大学精仪学院 钱莹 张志荣 曾周末 时间:2006/2/12 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐