随着信息技术的发展,在工业应用领域中需要采集存储的信息越来越多,相应地使用了各种数据采集装置,以获得被研究对象的相关信息。有时为了节约时间和计算机资源,一般并不是在当地立即处理这些信息数据,而是将数据传向后台由后台计算机进行处理、分析。它们之间的数据传输媒介有有线传输、无线传输和硬盘等几种型式。当采集现场条件不允许时,比如地形复杂且离后台距离较远,有线、无线传输均不适用。此外,有时周围环境会出现高湿度、高粉尘的恶劣情况,在这种条件下硬盘驱动器就难以可靠工作。为了满足实际生产中在特定条件下数据采集系统的要求,通过长时间的研究,设计出一种基于单片机超大容量存储器。该存储器容量可达4 Mb,基本可以满足复杂环境下信息采集存储的需要。
1 系统设计
基于单片机存储器存取数据的整体结构框图如图1所示。
图1 整体结构框图
图1中单片机是控制核心,存储器是控制对象,所有电路均为二者服务。由于存储器是4 Mb的,单片机的地址线已经不够用了,为了进行扩展,加入地址扩展电路。为了加快存储器中的数据导入计算机,特加入了并机接口电路。译码电路是为了增加I/O的口数量。
1.1 中央处理器(CPU)
采用W78E516B单片机,内部包含有:64 kBE2PROM,可省去最小系统,节省了并行口。
1.2 存储器
静态存储器的核心是存储器芯片,国内市场有2种类型:
(1)芯片内部有自带电池的NVRAM。
(2)自己设计掉电保护电路使用普通的SRAM,DRAM。闪速存储器是一种非易失性存储器,即使切断供电电源以后也能保持所存储的数据,在不加电的情况下存储在内的信息可长达lO年之久。闪速存储器可以随机寻址、访问时间很短,能抵抗强烈的碰撞,具有很强的环境适应性,可靠性好,平均无故障时间可达数百万小时。因此可以取代硬盘用于可移动设备、工业电子产品领域及恶劣环境中,其性能价格比很好。系统选用Atmel公司生产的闪速存储AT29C040芯片,它是国外新一代产品,容量可达4 Mb,采用分页管理方式,这种芯片的读/写与一般RAM有所不同。对芯片的基本操作如下:
读:当CE和OE为低,WE为高时,由地址决定的存储器单元将数据输出;当CE或OE为高时,输出为高阻态。这种双线控制为设计者防止总线争用提供了灵活性。
字节装入:用于输入要编程的128 B(一个扇区)数据或保护数据软件代码。当OE为高时,对WE加一负脉冲同时CE为低,或对CE加负脉冲同时WE为低时,将地址在CE或WE首先下降的一个下降沿锁定,数据由CE和WE首先上升的上升沿锁定。
编程:芯片编程以扇区为单位。如果要改变扇区中的一个数据,扇区中所有的数据都要重新装入芯片,扇区中所有没有装入的字节在编程中都将被擦写为FFH。一旦一个扇区中的所有字节都装入芯片,芯片立即在编程周期中对其进行编程,在第一个字节装入后,后续字节以同样方式装入。每一个新装入字节的WE由高到低的跳变必须在前一个字节WE信号由低变高的150μs以内。如果在上个装入字节后150μs内没有检测到WE由高向低跳变,装入周期终止,内部编程周期开始。A7~A16确定扇区地址,在WE由高到低的变化中必须有效,A0~A6确定扇区内的字节地址,装入字节可以任意次序,不必顺序装入。
软件数据保护:在AT29C04O中应用了软件控制保护数据的功能,一旦对芯片使用软件保护,则在芯片编程之前必须按一定算法进行操作。软件保护可以由用户启动或停止。启动软件保护由一组3个编程命令组成,对特定地址送特定数据。启动软件保护以后每次对芯片编程都必须在编程周期前送相同的3个编程命令。一旦启动软件保护,它将一直保持直到执行停止命令,上电掉电不能改变软件保护的状态。因此在电源变化期间,为防止误编程,启动保护后,没有3 B命令的写操作无效,但在twc期间,读操作为有效操作。
硬件数据保护:AT29C040硬件防止误编程通过以下途径:
如果电源电压低于3.8 V,禁止编程;
电源电压上电到达3.8 V以上后,芯片自动延时5 ms后才开始编程;
OE为低或CE为高或WE为高禁止编程周期;
如果WE或CE是小于15 ns的脉冲则不会启动编程周期。
1.3 接口电路设计
通过上述分析,设计大容量存储器的接口电路如图2所示。
图2 接口电路图
该接口电路图为实际工程应用中的剪切图,其中单片机采用的是华邦W78E516B,由于8位单片机I/O口数量有限,在工程应用中一般不能满足要求(图中没连线的I/O口已被用作其他用途),因此采用74LS138进行了扩展。由于29C040为4 Mb的容量,所以单片机的16位数据线已不能满足要求,为了进行大容量存储器的扩展,采用8255来扩展存储器的地址线及访问的范围 00000~7FFFF。在此基础上,可以设计存储容量从4 Mb到数Gb的存储器。
2 软件设计
为了增加数据存储的安全性,在读/写数据之前,要经过一定的指令才能进行读/写,其保护指令如图3、图4所示。如下程序是把存储器中的数据删除和对存储器进行写入数据的程序段。该部分程序已通过调试,是产品中程序的一部分。
图3 软件保护指令
图4 关闭软件保护指令
3 结语
AT29C040具备在掉电情况下保存数据的功能,在实际应用中工作可靠,适合于便携式流动性环境下的数据采集系统,特别是在应用中对数据存储有要求且存储容量较大的场合更有其发挥的地方。本文中所述部分即为实际产品中的应用。