摘要介绍CompactFlash卡的基本结构和工作原理;结合美国德州仪器(TI)公司的TMS320C54x系列数字信号处理器(DSP),详细地说明了DSP与CompactFlash卡接口设计中的关键软硬件技术;同时以TMS320C549CSP评估板为基础,设计完成了DSP与CompactFlash卡之间的接口电路,正确实现了DSP对CompactFlash卡的读写及数据管理等各种功能。
关键词DSP CompactFlash卡 CPLD
随着半导体技术的发展,小型化、大容量、低功耗、智能型是未来存储技术的发展方向。近年来,各种小型存储媒体不断问世,在便携式设备中应用广泛。这些存储媒体大多以FlashMemory(闪烁存储器)为主要载体,内部用微处理器进行时序控制和存储管理,通常做成非易失性存储卡形式。
目前常见的存储卡类型有:①MultiMediaCard(多媒体卡);②CompactFlashCard(快闪磁盘卡);③SmartMediaCard(智能媒体卡);④MemoryStick(记忆棒)。各存储卡在功耗、体积、容量等方面各有特色,但它们之间的接口目前还互不兼容。
CompactFlash卡(以下简称CF卡)最先由SanDisk公司于1994年生产,随后CFACompactFlashAssociation协会(它是一个由国际著名IT公司为了共同利益而成立的非盈利机构)于1995年10月成立并陆续制订了详细的CompactFlash存储卡统一规范,该规范目前已成为一个工业标准。
由于CF卡容量大、价格低,接口兼容磁盘IDE、ATA及Memory等格式,和其它存储卡相比,CF卡使用越来越普遍。在大容量便携式数据存储和传输过程中,CF卡有着非常广泛的应用前景,如数码相机、MP3播放器、PDA(个人数字助理)、数字式录音机、笔记本电脑、手提电话、机顶盒等。预计今后在其它领域将有更为广泛的应用。另外,随着DSP技术的飞速发展,由DSP快速处理的大量数据需要大容量的存储媒体进行数据的保存、转移等。考虑到CF卡和DSP相比接口速度较慢,因而DSP不能直接和CF卡接口兼容,为了实现DSP对CF卡的数据访问和管理功能,本文给出了基于DSP的CF卡接口设计,该设计在多个科研项目中得到了应用和推广。
1CF卡简介
目前有许多公司生产CF卡产品,由于CF卡已成为工业标准,各公司生产的CF卡均符合标准规范,只是存储容量、扇区缓冲器大小、访问速度、平均无故障时间、工作温度、纠错编码等指标略有差异(这些差异在标准范围内)。CF卡主要技术指标如下:
(1)结构先进,以SanDisk公司为代表的CF卡内部结构如图1所示。
外部和主机接口采用50芯双列0.05英寸间距物理连接。CF卡内部采用一个微控制器(MCU)管理数据访问格式、接口控制时序等;一个512Byte以上的双端口扇区缓冲器SRAMBUFFER和DMA控制器,用于和外部进行快速数据交换;一个256Byte的固化只读存储器FirmwareStorage,放置该CF卡的特征信息CISCardInformationStructure,内容包括扇区总数、柱面数、磁头数、每磁道扇区数、公司序列号等;一个电源管理单元(PMU)可使CF卡在空闲时进入睡眠状态,进行有效的电源管理,降低系统功耗。先进的内部结构使CF卡能支持多种接口访问模式,如MemoryCard模式、I/OCard模式和TrueIDE模式等。
(2)访问速度快,写入FLASH速度可维持在1.4Mbyte/s。
(3)体积小,尺寸为36.4mm×42.8mm×3.3mm。
(4)容量大,常见的有8、12、16、24、32、48、64、96、128、256、348、512MByte等随着超大规模集成电路的快速发展,目前CF卡的TYPEII型容量已经达到了1.2GByte。
(5)无机械结构,抗冲击(达2000G),耐震动(达15G)。
(6)可靠性高,有效的数据保护及纠错编码技术,使得CF卡平均无故障工作时间达一百万小时。
(7)供电灵活,支持5V或3.3V电源电压。
(8)具有热插拔、掉电时数据不丢失、保存数据时间长、可重复擦写(一百万次)等特点。
2CF卡与DSP接口硬件设计
2.1CF卡接口简述
CF卡采用50脚双列0.05英寸细间距标准接口,管脚排列如表1所示。
其电气特性符合ATA/IDE磁盘接口规范,可直接插入PCMCIATypeII适配卡中。支持5V和3.3V电源工作,允许不同系统对硬件和软件的设计要求。数据访问以512Byte为一个扇区单元,完全和磁盘接口兼容,可用Memorymapped、IDE等格式进行访问。由于IDE访问模式涉及到复杂的文件管理,为了节省系统资源及简化设计,本系统由DSP实现嵌入式设计并采用Memorymapped访问方式。另外,CF卡的上电缺省模式即是Memorymapped,免去了繁琐的寄存器设置。CF的数据总线宽度为16bits,由-CE1和-CE2脚控制,可允许8位或16位访问。
2.2DSP简介
随着数字信号处理器(DSP)在理论上和技术上的快速发展,其技术已广泛应用于数字通信、雷达、声纳、语音合成、图像处理、多媒体技术、生物医学等各个领域。随着科学技术的发展,其研究范围和应用领域还在不断地发展和扩大。本系统采用TI公司的TMS320C54x系列定点高性能低功耗型数字信号处理器实现和CF卡的连接。TMS320C54xDSP芯片的主要特点2~4如下:
(1)40~160MIPS的运算速度。
(2)先进的多总线结构(1条程序总线、3条数据总线和4条地址总线)。
(3)40位算术逻辑运算单元(ALU)。
(4)17×17位并行乘法器。
(5)192K字可寻址存储空间(64K字程序存储器,64K字数据存储器以及64K字I/O空间),其中C548、C549和有些C54xx程序存储空间可扩展至8M字。
(6)高效的并行指令系统。
(7)多种外围接口方式。
(8)软件可控的低功耗工作模式。
DSP具有很强的数据处理能力,有多种外部接口形式,如有三组并行16位的数据接口(数据总线共用)和多个带缓冲的串行接口。但这些端口不能和CF卡直接相连,本文采用一个复杂可编程逻辑器件(CPLD)5配合DSP和CF卡之间的逻辑控制和时序关系。
2.3硬件接口
TMS320C54x对外有I/O、程序及数据3个并行16位访问空间,分别由对应的空间选择信号线选通,本设计选用I/O空间和CF卡接口,如图2所示。
主要由DSP、CF卡和CPLD组成memory连接模式,A3~A0为数据、命令或状态寄存器地址线。D15~D0为数据总线,可16位或8位访问,当片选信号-CE1和-CE2同时有效时,为16位访问格式;当-CE2置高,-CE1单独有效时,为8位访问格式。CD1、CD2为CF卡存在性硬件检测脚,内部和地相连,当CF卡有效插入卡座时,对应卡座上的CD1和CD2拉低,经CPLD逻辑转换可由硬件或软件判断CF卡是否存在。RDY/-BSY为CF卡状态信号,当CF卡忙时,该脚置低,此时DSP不能对其访问及进行其它操作。-WE、-OE为读写有效信号。-REG为寄存器选择信号线,-REG为高时访问数据存储器(命令或数据),为低时访问属性存储器。上电时,CF卡自动完成复位,并在缺省状态下进入memory模式,也可由外部主机经RESET脚对CF卡重新复位。DSP的A15~A12、-IOSTRB、-IS、R/-W脚输出到CPLD,作为I/O空间的读写信号选通和地址译码。
3软件设计
3.1CF卡指令及访问格式
CF卡共有30条命令,在memory模式下16位访问时存储器映射格式如表2所示。
无论以何种方式工作,数据读写的最小单位为一个扇区,8位格式访问时对应一个扇区的数据量为512个字节,16位时对应一个扇区的数据量为256个字。为简化程序设计,DSP用逻辑块地址LBALgicalBlockAddressing格式访问CF卡数据。LBA地址分段输入,对应的偏移地址分别为02H、04H、06H。CF卡最大存储空间为137Gbyte=228×512。Sec_count表示一次可访问几个扇区,偏移地址06H高8位Command为命令输入。数据从偏移地址08H连续读出或写入一个扇区长度。0CH、0EH空间显示CF卡的状态信息或写入特征命令。
3.2常用命令编程
CF卡的30条命令在文献1中有详细描述,限于篇幅,本文仅介绍CF卡的读写、CF卡信息获取及删除一个扇区命令的编程。另外需注意,尽管CF卡可在Burst方式下达到很高的数据传输速度,但与DSP相比还比较慢,在硬件设计时应确保速度和时序的匹配。
3.2.1数据读写
存储器读写流程如图3所示,上电后,可由DSP经RESET脚对CF卡软件复位,等CF卡准备就绪后,写入扇区数、LBA地址、读(20H)或写(30H)命令字。CF卡认可后,连续从扇区缓冲器中读出或写入256个字。注意一点,CF卡要求主机对扇区缓冲器连续读写,否则,在15ms后,CF卡会自动进入睡眠状态,使数据读写出错。
3.2.2读出CF卡信息
CF卡中有256ByteEPROM专门存放该卡的特征信息,主要包括磁盘柱面数、磁头数、每磁道扇区数、扇区总数、缓冲区大小、缓冲区类型、纠错码位数、公司序列号等,详细内容见参考文献1。各公司的CF卡信息内容有一定的差别,以该公司的数据手册为准,命令格式和读写一样,命令字为0ECH,当CF卡收到读信息命令字时,会自动忽略写入扇区数及LBA地址,直接从EPROM中读CF卡信息到扇区缓冲器。
3.2.3擦除一个扇区
DSP先检查CF卡状态,当CF卡写入有效时,输入指定扇区、LBA地址及擦除命令(0C0H),毋需检查结果状态,该扇区被有效删除后,扇区读出值均为0。
本文介绍的基于DSP的CompactFlash卡接口设计,首先在TMS320c549EVM开发板上成功实现了DSP对CF卡的各种常用命令的操作,并通过设置CPLD的逻辑关系,正确实现了对CF卡采用8位或16位格式的操作,多种访问格式提高了应用系统设计的灵活性。本文设计的接口电路具有广泛的应用价值,并已经在数字语音录音系统中获得成功应用。 |