基于单片机的超大容量存储器接口设计

网友投稿 301 2022-11-20

基于单片机的超大容量存储器接口设计

0 引言

1 系统设计

基于单片机存储器存取数据的整体结构框图如图1所示。

采用W78E516B单片机,内部包含有:64 kBE2PROM,可省去最小系统,节省了并行口。

1.2 存储器

静态存储器的核心是存储器芯片,国内市场有2种类型:

读:当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确定扇区内的字节地址,装入字节可以任意次序,不必顺序装入。

硬件数据保护:AT29C040硬件防止误编程通过以下途径:

电源电压上电到达3.8 V以上后,芯片自动延时5 ms后才开始编程;

OE为低或CE为高或WE为高禁止编程周期;

如果WE或CE是小于15 ns的脉冲则不会启动编程周期。

通过上述分析,设计大容量存储器的接口电路如图2所示。

该接口电路图为实际工程应用中的剪切图,其中单片机采用的是华邦W78E516B,由于8位单片机I/O口数量有限,在工程应用中一般不能满足要求(图中没连线的I/O口已被用作其他用途),因此采用74LS138进行了扩展。由于29C040为4 Mb的容量,所以单片机的16位数据线已不能满足要求,为了进行大容量存储器的扩展,采用8255来扩展存储器的地址线及访问的范围00000~7FFFF。在此基础上,可以设计存储容量从4 Mb到数Gb的存储器。

2 软件设计

为了增加数据存储的安全性,在读/写数据之前,要经过一定的指令才能进行读/写,其保护指令如图3、图4所示。如下程序是把存储器中的数据删除和对存储器进行写入数据的程序段。该部分程序已通过调试,是产品中程序的一部分。

3 结语

AT29C040具备在掉电情况下保存数据的功能,在实际应用中工作可靠,适合于便携式流动性环境下的数据采集系统,特别是在应用中对数据存储有要求且存储容量较大的场合更有其发挥的地方。本文中所述部分即为实际产品中的应用。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云计算 Hadoop】Hadoop 版本 生态圈 MapReduce模型
下一篇:【Hadoop HA】搭建Hadoop HA的详细教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~