要CF卡接口设计的方法,根据制定的标准开发了直接读写卡的驱动程序,并介绍了卡驱动程序的编程技巧。
;CF卡嵌入式系统
(compact flash card)是专门为海量存储而设计的专用设备其标准由国际联合会维护和管理。卡中不仅有海量存储专用的芯片,还包括一个片上智能控制器,这样就为计算机宿主机提供了一个高级的应用接口来方便地对其进行读写控制与操作。这个接口让宿主计算机能够像读取硬盘那样用硬盘操作专用命令对进行控制。卡每一个字段字节都有一个强劲的纠错码。卡具有体积小、存储量大、安全可靠、价格低廉、读写速度快的优点,越来越被消费者所认可,众多的娱乐电子设备生产厂商都支持卡接口。目前许多消费类嵌入式系统产品,如数码摄像机、数码照相机、掌上电脑、、手机、CF卡的支持。所以,在设计嵌入式系统的时候,加入对卡的支持是非常有意义的。卡的接口技术分为模式、模式和模式。本文讨论了在单片机下进行卡接口设计的方法,并利用标准卡标准开发了直接读写卡的驱动程序,实现了在单片机下对卡的直接读写,为海量存储设备应用于普通的嵌入式系统提供了条件。
1示出了卡内部的结构框图

2单片机实现卡读写的硬件结构框图

3 读写卡程序的逻辑框图
CF卡协议能够实现的存取速率。该协议详细规定了卡的三种读写模式,还规定了卡的几何尺寸和各种电器参数,从而实现了对卡的标准化。
SanDisk公司生产的卡,其内部的结构框图如图所示。卡与单片机的接口设计必须在基于特定功能的前提下进行,主要考虑以下几个方面的内容:卡与宿主机之间的电气兼容性,卡传输模式的选择,以及卡数据位的选择。
CF卡的数据传输、地址选择,及其读写控制信号。在本系统中,宿主机使用了常见的。卡与单片机之间有着非常标准的接口,根地址线,根数据线,根读信号线和根写信号线,总共只需占用单片机的根口线。硬件卡相关的功能框图如图所示。
CF卡这两个必不可少的元件以外,另外还包括一个液晶显示屏其功能主要是用于显示程序执行中各种参数的状态如串口是否能正常工作。液晶显示屏是一个很好的硬件调试监视器,尤其是在没有仿真器的条件下,它可以方便地设立程序断点,监视程序的执行,实时显示各个状态参数。
CF卡的海量存储功能,系统中还设置了一个接口,以便与机之间进行通信。另外,考虑到在线调试卡驱动程序的时候需要多次烧写单片机的程序存储器,特别又设置了一个下载线接口。这样一来,不用仿真器和烧写器而仅使用并口下载线就可以对整个系统进行在线调试,大大方便了驱动程序的开发与调试。
ATA标准的卡设备对软件的编制有非常标准化的方法,而且基于的协议,卡硬件上的向下兼容性也保证了软件设计上的兼容性。卡工作在内存映射下的读写程序逻辑框图如图所示。值得指出的是,不同于一般的存储器,卡采用标准的读写方式,它的寻址方式、读写方式,甚至命令都与普通的硬盘相符合。也就是说,是在模拟硬盘的读写,按照扇区、磁道、柱面来寻址。同硬盘一样,卡不能够对位操作,它的一次性吞吐量为一个扇区,也就是个字节。卡在设计之初,之所以要采取类似硬盘的读写方式,是因为这种方法的存储速度快、可靠,并能节省资源。本设计并不需要在上面建立文件系统,这样可以充分利用卡存储量大、速度快的特点,同时也可使软件的编制更为简化。
CF卡是否成功的方法是:先用串口调试助手把机上的一个文件通过串口发送到卡的特定扇区,然后将刚刚写入的数据读出,并通过串口发送到机的串口调试助手的终端上。如果发送与接收到的文件数据是一致的,那么就说明对卡的读写操作成功。
CF卡的读写功能程序进行测试。先将一个简单的串口调试程序用下载线下载到单片机上运行,通过串口调试助手的终端显示测试结果,确定串口调试助手发送到单片机上的数据能够被正确返回。
ISP接口,CF卡读写测试程序下载到单片机上运行。在机上选择一个约
CF卡由控制器和存储器两部分构成,系统访问存储器的速度远远小于访问内存的速度,如果系统频繁访问卡,势必会影响系统的实时性和工作效率,所以必须考虑卡读写程序的设计技巧。根据存储器访问的局部性原理,存取数据所访问的存储单元都趋向于聚集在一个较小的连续区域。从时间上看,如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。从空间上看,在最近将用到的信息很可能与目前正在使用的信息在空间地址上是临近的。在本系统的程序设计中,开辟了一个扇区的内存空间,用于存储最近访问过的扇区数据。另外还设置了两个全局变量和:保存最近备份的扇区编号;说明备份数据是否与卡中的相应数据一致,如果一致,其值为,否则为。这样不但可以减少读写卡的次数,而且提高了访问速度,满足嵌入式操作系统的实时性要求。