摘 要 介绍CompactFlash卡的基本结构和工作原理;结合美国德州仪器(TI)公司的TMS320C54x 系列数字信号处理器(DSP),详细地说明了DSP与CompactFlash卡接口设计中的关键软硬件技术;同时以TMS320C549 CSP评估板为基础,设计完成了DSP与CompactFlash卡之间的接口电路,正确实现了DSP对CompactFlash卡的读写及数据管理等各种功能。
|
随着半导体技术的发展,小型化、大容量、低功耗、智能型是未来存储技术的发展方向。近年来,各种小型存储媒体不断问世,在便携式设备中应用广泛。这些存储媒体大多以Flash Memory(闪烁存储器)为主要载体,内部用微处理器进行时序控制和存储管理,通常做成非易失性存储卡形式。
|
1 CF卡简介 目前有许多公司生产CF卡产品,由于CF卡已成为工业标准,各公司生产的CF卡均符合标准规范,只是存储容量、扇区缓冲器大小、访问速度、平均无故障时间、工作温度、纠错编码等指标略有差异(这些差异在标准范围内)。CF卡主要技术指标如下: (1)结构先进,以SanDisk公司为代表的CF卡内部结构如图1所示。 |
![]() |
外部和主机接口采用50芯双列0.05英寸间距物理连接。CF卡内部采用一个微控制器(MCU)管理数据访问格式、接口控制时序等;一个512Byte以上的双端口扇区缓冲器SRAM BUFFER 和DMA控制器,用于和外部进行快速数据交换;一个256Byte的固化只读存储器Firmware Storage ,放置该CF 卡的特征信息CIS Card Information Structure ,内容包括扇区总数、柱面数、磁头数、每磁道扇区数、公司序列号等;一个电源管理单元(PMU)可使CF卡在空闲时进入睡眠状态,进行有效的电源管理,降低系统功耗。先进的内部结构使CF卡能支持多种接口访问模式,如Memory Card 模式、I/O Card模式和True IDE模式等。
(2)访问速度快,写入FLASH速度可维持在1.4Mbyte/s。
|
2 CF卡与DSP接口硬件设计 2.1 CF卡接口简述 CF卡采用50脚双列0.05英寸细间距标准接口,管脚排列如表1所示。 |
![]() |
其电气特性符合ATA/IDE磁盘接口规范,可直接插入PCMCIA TypeII适配卡中。支持5V和3.3V电源工作,允许不同系统对硬件和软件的设计要求。数据访问以512Byte为一个扇区单元,完全和磁盘接口兼容,可用Memory mapped、IDE等格式进行访问。由于IDE 访问模式涉及到复杂的文件管理,为了节省系统资源及简化设计,本系统由DSP实现嵌入式设计并采用Memory mapped访问方式。另外,CF卡的上电缺省模式即是Memory mapped,免去了繁琐的寄存器设置。CF的数据总线宽度为16bits,由-CE1和-CE2脚控制,可允许8位或16位访问。其详细的管脚定义见参考文献1 。
2.2 DSP简介 |
![]() |
主要由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.1 CF卡指令及访问格式 CF卡共有30条命令,在memory模式下16位访问时存储器映射格式如表2所示。 |
![]() |
无论以何种方式工作,数据读写的单位为一个扇区,8位格式访问时对应一个扇区的数据量为512个字节,16位时对应一个扇区的数据量为256个字。为简化程序设计,DSP用逻辑块地址LBA Lgical Block Addressing 格式访问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卡中有256Byte EPROM专门存放该卡的特征信息,主要包括磁盘柱面数、磁头数、每磁道扇区数、扇区总数、缓冲区大小、缓冲区类型、纠错码位数、公司序列号等,详细内容见参考文献 1 。各公司的CF卡信息内容有一定的差别,以该公司的数据手册为准,命令格式和读写一样,命令字为0ECH,当CF卡收到读信息命令字时,会自动忽略写入扇区数及LBA地址,直接从EPROM中读CF卡信息到扇区缓冲器。 3.2.3 擦除一个扇区
|
参考文献 [1]. TMS320C54x datasheet https://www.dzsc.com/datasheet/TMS320C54x+_1728732.html. [2]. CPLD datasheet https://www.dzsc.com/datasheet/CPLD_1136600.html. [3]. Memory datasheet https://www.dzsc.com/datasheet/Memory_1082507.html. [4]. D15 datasheet https://www.dzsc.com/datasheet/D15_1092218.html. [5]. A15 datasheet https://www.dzsc.com/datasheet/A15_1244519.html. [6]. A12 datasheet https://www.dzsc.com/datasheet/A12_1818348.html. [7]. CF+and CompactFlash Specification Revision 1.4.CompactFlash Association, 1999.7 [8]. TMS320C54x DSP Reference Set Volume 1 CPU and Peripherals. Texas Instruments Incorporated April 1999 [9]. TMS320c54x DSP Reference Set Volume 4 Applications Guide. Texas Instruments Incorporated.October 1996 [10]. TMS320c54x DSP Reference Set Volume 5 Enhanced Peripherals.Texas Instruments Incorporated June 1999 [11]. XC9500 In-System Programmable.CPLD Family.Xilinx lnc.September 15 1999 |
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。