基于FPGA的高速大容量FLASH存储设备设计

时间:2023-06-26

  1、引言

用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路由半导体工艺制成的若干数字集成器件构造而成。逻辑门是数字逻辑电路的基本单元。存储器是用来存储二值数据的数字电路。数字电路与数字电子技术广泛的应用于电视、雷达、通信、电子计算机、自动控制、航天等科学技术各个领域。在我国20世纪90年代以前,测试系统采用磁带记录,效率和安全保障性不高;随之出现的是遥测技术,但在传输数据的过程中会出现误差;接着是静态存储器,它读、写方便,但是存储的数据会因为断电而丢失,所以,不利于数据长时间保存;目前,闪存的问世,NOR和NAND是现在市场上两种主要的非易失闪存技术,它有存储容量大、体积小、可靠性高等优点,测试系统会逐步向这个方向发展。

  2、设计思想

  2.1芯片选择

(1)接受芯片选择MAX491

此芯片为RS-422/485扩展芯片,为DIP14封装。MAX491有两个控制端,如果两个控制端由微处理器的一个I/O口控制,则总线,两线制,半双工工作。如果两个控制端单独控制,则总线为RS-422总线,四线制,全双工工作。MAX491采用+5V电源供电,当供电电流仅有500uA时,传输速率却能达到2.5Mbits/s.它的内部有一个传输线驱动器和一个传输线接收器,因此可以采用全双工工作。

(2)FPGA采用Spartan-II系列Xc2s100

FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

Spartan-II系列Xc2s100有着丰富的触发器和LUT(Look-Up-Table),非常适合复杂时序逻辑的设计。FLASH采用SAMSUNG公司的NANDFLASH芯片K9F8G08,接口宽度8位。每个芯片含8192个数据块,一个块分为64页,每页大小为(2K+64)Bytes,其中64Bytes为空闲区,存储容量为8Gbit.它以页为单位进行读写,以块为单位擦除、命令、数据、地址共用同一总线,具有硬件数据保护功能。

 2.2MAX491设计时需要注意的问题

(1)RS-422传输线上匹配的一些说明:理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。

一般终端匹配采用终接电阻方法,RS-422在总线电缆的远端并接电阻,终接电阻一般在RS-422网络中取100Ω,这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合;

另外一种比较省电的匹配方式是RC匹配;

还有一种采用二极管的匹配方法。

(2)RS-422的接地问题

RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)。RS-422的传输距离为4000英尺(约1219米),传输速率为10Mb/s.其平衡双绞线的长度与传输速率成反比,在 100kb/s速率以下,才可能达到传输距离。只有在很短的距离下才能获得速率传输。一般100米长的双绞线上所能获得的传输速率仅为 1Mb/s.

RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在短距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的远端。

(3)RS-422的网络失效保护

RS-422标准都规定了接收器门限为±200mV.这样规定能够提供比较高的噪声抑制能力,当接收器A电平比B电平高+200mV以上时,输出为正逻辑,反之,则输出为负逻辑。但由于第三态的存在,即在主机在发端发完一个信息数据后,将总线置于第三态,这带来了一个问题:接收器输出状态不确定。如果接收机的输出为0V,网络中从机将把其解释为一个新的启动位,并试图读取后续字节,由于永远不会有停止位,产生一个帧错误结果,不再有设备请求总线,网络陷于瘫痪状态。除上述所述的总线空闲会造成两线电压差低于200mV的情况外,开路或短路时也会出现这种情况。故应采取一定的措施避免接收器处于不确定状态。

(4)RS-422的瞬态保护

由于传输线对高频信号而言就是相当于电感,因此对于高频瞬态干扰,接地线实际等同于开路。这样的瞬态干扰虽然持续时间短暂,但可能会有成百上千伏的电压。实际应用环境下还是存在高频瞬态干扰的可能。一般在切换大功率感性负载如电机、变压器、继电器等或闪电过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏RS-422通信接口,对于这种瞬态干扰可以采用隔离或旁路的方法加以防护。方法有隔离保护方法和旁路保护方法。

  2.3FPGA内部编程设计

采用MAX491串行接收实时数据,并通过Xc2s100串行数据转换为并行数据,并控制存储到FLASH中,在这个过程中,关键的是对Spartan-II系列Xc2s100内部编程,内部模块包括异步串行通信模块和控制FLASH存储、读数和擦除模块。

flash的英文解释为:n.闪光,闪现,一瞬间,闪现,反射,使迅速传便,vt.使闪光,反射adj.闪光的,火速的。Flash也是由macromedia公司推出的交互式矢量图和Web动画的标准,由Adobe公司收购。网页设计者使用Flash创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。Flash也是存储芯片的一种,通过特定的程序可以修改里面的数据。

(1)异步串行通信模块UART发送模块发送器每隔16个CLK16时钟周期输出1位,次序遵循1位起始位、8位数据位(假定数据位为8位)、1位校验位(可选)、1位停止位;

何时通过UART发送数据由CPU控制,也就是说CPU要接受数据必须判断当前是否可写,如果不判这个条件,接受的数据会出错。

数据的发送是由微处理器控制,微处理器给出信号,发送模块根据此信号将并行

数据din[70]通过移位寄存器转换为串行数据至串行数据输出端Txd.UART接收模块

串行数据帧和接收时钟是异步的,发送来的数据由逻辑?1'变为逻辑'0'可以视为一个数据帧的开始。

接收器先要捕捉起始位,确定rxd输入由1到0,逻辑0需要8个CLK16时钟周期,才是正常的起始位,然后在每隔16个CLK16时钟周期采样接收数据(也可以为其它数),将串行数据din通过移位寄存器发送串行数据至并行数据输出端dout[70],放入存储器件。在数据发送过程中用输出信号fifowr作为标志信号,当一帧数据发送完毕时,fifowr信号为0,通知CPU在下个时钟装入新数据。


(2)FLASH存储、读数和擦除模块FLASH在写数据、读数据和擦除时[4],编写控制FLASH的程序,要按照如下规则:

页编程:器件的编程以页为单位,但在一个页编程周期中允许对部分页(一个或连续的多个字节)编程。一个页编程周期由串行数据加载阶段和紧随的编程阶段组成。在数据加载阶段,数据被加载到数据寄存器中;在编程阶段,已加载的数据写入实际的存储单元,编程典型时间为200μs.

页读:器件在上电时,就被初始化为读模式,此时可以不写00h命令,直接写入地址和30h命令即可。有两种类型的读,分别是随机读和顺序页读。由于设计存储时

是基于整个页操作,所以读命令使用顺序页读。命令打入后经过多20μs的时间,数据则会从选择的页传到数据寄存器中。

块擦除:器件的擦除操作是以块为单位的。块地址加载由擦除建立命令60h启动,然后输入确认命令D0h,执行内部擦除过程。这一先建立再执行的两步命令时序,确保了存储内容不会由外部的干扰而意外擦除,擦除时间典型值为1.5ms.


  3、系统调试

电路通过模拟接受一组实时串行数据,经过FPGA串行数据转换为并行数据,并且存储到FLASH;再与主机通信读回存储在FLASH中的数据[5].它已经可以稳定的工作在180Mbytes/s的存储速度,满足了所需的机载实验要求。USB芯片工作在从方式(SlaveFIFO模式),由FPGA控制芯片的读写,同步传输数据。实测中通过USB回放数据的速度为15Mbytes/s.4、结论

本文设计了基于FPGA和FLASH存储测试系统,使FPGA与FLASH各自的优点得到了有效的发挥:本文作者创新点:RS-422电平传输串行数据,通过FPGA把串行数据转化为并行数据存储到高速大容量的FLASH的存储系统的具体设计和实施,在保证系统工作性能的情况下简化了系统设计,并验证了系统设计方案的正确性和可行性,为进一步工程化实现打下了良好的基础,具有一定的工程应用价值。

上一篇:一种嵌入式VGA显示系统实现
下一篇:S3C2440A和Win CE在嵌入式导航系统的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料