TMS320C6713B的外部存储器接口包括:20位地址线、32位数据线、4个片选控制线及读写控制信号线。4个片选信号分别对应4个存储空间,CE3对应的地址空间为OxB0000000-OxBFFFFFFF,设计中通过地址译码实现地址空间的分隔,其中大容量闪存器件K9KAG08UOM的片选面对应的地址为OxB0400000。
K9KAG08UOM无地址线,命令、地址和数据信息均通过I/00~I/07传输。虽然K9KAG08UOM的容量达到2 G字节,远远超出TMS320C6713B存储区域CE3的可寻址容量256 M字节,但由于访问NAND Flash的地址是通过I/O端口输入,无需通过地址线寻址,因此不用考虑逻辑存储空间与实际物理空间的映射问题,简化了DSP与NAND Flash的硬件接口。
TMS320C6713B和K9KAG08UOM的工作电压均是3.3 V,因此两者引脚可直接连接,无需电平转换。设计中K9KAG-08UOM的ALE和CLE两个信号分别由DSP的最低两位地址EA3和EA2控制。DSP的低8位数据线直接与NAND Flash的I/00~I/07相连。DSP的通用输人输出端口GP3接R/B,用于监测NAND Flash的工作状态。当R/B处于低电平时,表示有编程、擦除或随机读操作正在进行;当R/B处于高电平时,表示操作已经完成。K9KAG08UOM的读写控制信号RE和WE由DSP的读写控制信号ARE和AWE和译码产生的片选信号CE通过逻辑或得到,只有当DSP的读写控制信号和片选同时有效即为低电平时才能对K9KAG08UOM进行读写操作。
该硬件接口设计利用DSP的地址线EA3、EA2分别控制NAND Flash的命令锁存ALE和地址锁存CLE信号,此时对K9KAG08UOM的访问相当于访问地址分别为OxB0400002、OxB0400001和OxB0400000的3个端口.分别对应K9KAG08UOM的地址端口、命令端口和数据端口。DSP对K9KAG08UOM的命令、地址和数据操作可通过不同端口进行。简化了对K9KAG08UOM读写控制和软件编程设计的难度。
4 软件设计
NAND Flash的基本操作主要包括:读数据,编程(写)数据,擦除、读器件ID号等。NAND Flash的软件设计主要关注以下几个方面:
(1)读、写操作以页为单位;
(2)擦除操作以块为单位;
(3)对NAND Flash写数据时,位数据只能由1变为0,因此对Flash写操作前必须把写单元所在块擦除;
(4)NAND Flash同其他固体存储器一样会产生坏块,如果将数据存储在坏块区域将导致无法正常恢复。坏块区域一般不超过器件总容量的3‰,如果系统的工作状态允许存储的数据可以出现少量错误,比如图像记录功能,软件设计时可不用标记为坏区;如果系统的工作状态不允许存储的数据出错,则需根据器件出厂时自带的坏块信息表标记坏块区域,以保证数据不被写到坏块区域。
(5)在对NAND Flash进行擦除、编程或者读取操作流程时,不允许有中断信号打断CPU的工作,否则会读写错误。在软件设计时,如果对NAND Flash进行存取操作,需先屏蔽中断,读写操作完成后再把中断重新打开。
NAND Flash最基本的块擦除、页编程时序流程如图4和图5所示。
5 结束语
由于NAND Flash具有非易失性、大容量、低成本、接口简单等优点。在组合导航数据存储设备,激光惯导单元及红外导引头的图像采集等智能仪器中得到广泛应用。详细介绍了大容量闪存K9KAG08UOM与TMS320C6713B的硬件接口电路和软件程序设计,所采用的接口技术灵活、简单、可靠,在激光惯导单元进行的湖试和海试试验中成功地实现了数据的存储。该接口设计方法可推广应用于大容量闪存器件与单片机、ARM及其他型号的DSP设计中。