新闻中心

EEPW首页>嵌入式系统>设计应用> 基于FPGA的微型数字存储系统设计方案

基于FPGA的微型数字存储系统设计方案

作者: 时间:2009-10-19 来源:网络 收藏

3 系统软件设计

  3.1对Flash的读、写、擦除操作

执行对Flash的读、写、擦除操作是利用VHDL语言的状态机实现的。状态机控制Flash的时序电路简单易行,逻辑关系一目了然。XC2S50接收到CY7C68013传来的擦除控制命令,立即执行擦除操作。按照时序,首先写入自动块擦除设置命令60H,之后依次写入2个行地址和1个列地址进行寻址,而后写入擦除命令D0H开始执行擦除操作。

  读操作较为复杂,需要XC2S50和CY7C68013协同工作。这里只给出读信号的操作过程。先写人读设置命令00H,因为读一次执行一页,所以地址的写入是2个行地址和3个列地址,之后写入读命令,在等待rb变高后就可发送re信号将数据从Flash读出。写操作过程与读操作类似,但写操作完全由 XC2S50控制,写完命令、地址后,开始写入数据,直到写满2 KB数据,最后输入页编程命令。需要注意每写完2 KB数据,Flash返回的状态信号rb所等待的时间较长,大约是140μs。图2为页编程的流程。

页编程的流程

3.2 CY7C68013控制逻辑及固件程序设计

  CY7C68013主要完成两部分工作,一是实现对擦除的控制开关命令,即上位机通过USB接口发送擦除命令,CY7C68013接收到这个命令后,会发送一个约为200 ms低脉冲通知启动擦除操作;二是通过与FPGA配合,完成从Flash通过CY7C68013的GPIF接口读入上位机的任务。 CY7C68013所用到的I/O包括控制线USBCTR1,状态线US-BS0,读信号线USBRD及8条数据线。

  读数时,首先由单片机发出读数开始命令USBCTR1,FPGA接收到该命令后开始初始化,包括写入读数设置命令、地址及读数命令,等待rb变高, USBS0置低,当单片机检测到USBS0变低后,开始给出一系列脉冲GPIF(USBRD),将2 KB数据依次读出。与此同时,FPGA在等待几百纳秒后将USBS0置高,单片机在判断USBS0变高后也将USBCTR1拉高,为下一页读数做准备。读数时序如图3所示。

读数时序



评论


相关推荐

技术专区

关闭