用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

单片机实现对CF卡的读写

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:41:26
【本文由PB创新网为您整理】
摘要:CF卡是一种包含了控制和大容量Flash存储器的标准器件,具有容量大、体积小、高性能、携带方便等优点,已广泛应用在数据采集系统和许多消息类电子产品中。本文详细介绍CF卡在单片机系统中的硬件接口电路,以及单片机对CF卡进行标准文件读写的实现,且写入的文件能被Windows操作系统读写。

    关键词:CF卡 单片机 FAT文件格式

引言

由于CF卡(Compact Flash Card)具有容量大、体积小、高性能、携带方便等优点,而且读写速度快,可与多种电脑操作系统平台兼容,因此在数据采集系统中的数据记录或与PC机之间的数据转存多采用CF卡。为了在PC机中能方便地进行数据处理,在下位机端必须采用一种标准的格式组织数据,即将数据按照Windows标准文件格式写入,在PC机端通过读卡器将写入CF的内容以标准文件形式读出。Windows标准文件格式有FAT、FAT32和NTFS。考虑到广泛使用的Windows 98系统的CF卡的容量等因素,通常采用FAT(File Allocation Table)文件系统。单片机系统对CF卡的读写,就是从底层对它进行直接操作,包括寻址、创建文件和读写等。javascript:window.open(this.src);" style="cursor:pointer;"/>

1 CF卡简介

CF卡内集成了控制器、Flash Memory阵列和读写缓冲区,如图1所示。内置的智能控制器,使外围电路设计大大简化,而且完全符合PC机内存卡的国际联合会PCMCIA(Personal Computer Memory Card International Association)和ATA(Advanced Technology Attachment)接口规范。实际上,控制器起到了一种协议转换的作用,即将对Flash Memory的读写转化成了对控制器的访问,这样不同的CF卡都可以用单一的机构来读写,而不用担心兼容性问题。CF卡的缓冲区结构,使得外部设备与CF卡通信的同时,CF卡的片内控制器可以对Flash进行读写。这种设计可以增加CF卡数据读写的可靠性,同时提高数据传输速率。

CF卡支持多种接口访问模式,有符合PCMCIA规范的Memory Mapped模式、I/O Card模式和符合ATA规范的True IDE模式。上电时,OE(9脚)为低电平,CF卡进入True IDE模式,此时引脚OE也叫ATA SEL;上电时,OE(9脚)为高电平,CF卡进入PCMCIA模式,即Memory Mapped模式或I/O Card模式,此时可通过修改配置选项寄存器进入相应的模式。

配置选项寄存器格式如下:

SRESETLevelREQconf5conf4conf3conf2conf1conf0

SRESET—软复位信号;

Level REQ—中断模式选择(电平或边沿触发)。

例如,要加入Memory mapped模式,只需要在上电时保证OE为高电平,因为配置选项寄存器的conf5~conf0位的初始化值为“00000”;而要进入I/O Card模式,除了上电时保证OE为高电平外,还要进一步设置conf5~conf0,如表1所列。但是对于具体型号的CF卡而言,下面三种情况也是被CFA(CF card Association)所允许的:①上电时进入True IDE模式,工作过程中,只要监测到OE变为高,就退出True IDE模式;②允许卡在复位时重新配置;③上电时进入PCMCIA模式,允许过程中,只要监测到OE变为低,就进入True IDE模式。

表1 模式选择

conf5conf4conf3conf2conf1conf0模  式
000000Memory map
000001I/O Mapped,对应16位系统
000010I/O,对应1F0h-1F7h/3F6h-3F3h
000011I/O,对应170h-177h/376h-377h

2 CF卡与51单片机的接口

CF卡在PC Memory方式与51芯片的接口电路如图2所示。由于采用CF卡上电后自动进入的Memory模式,而且不存在对特性寄存器的读写,故可将REG接高电平。片选信号CE1和CE2组合可选择数据位宽度,如表2所列。图2中CE2接VCC,选用的是8位(D7~D0)数据宽度。

表2 数据宽度选择

 8位(D7~D0)8位(D15~D8)16位高  阻 
CE10101
CE21001

为了实现即插即用的功能,CE卡上提供了两个用来检测卡是否存在的引脚(CD1、CD2),由卡内部接地。当主机检测到与其相连的CD1和CD2两个引脚同时为低电平时,可判断出卡与主机相连;否则,卡未与主机相连。

由于I/O口紧张,RDY/BSY引脚悬空不用,通过查询状态寄存器能判断CF卡是否准备就绪。在实际应用中,由于一次至少要读写一个扇区512字节,所以要扩充一块RAM。我们选用的是62256,容量为32KB,这样便可以支持大到2GB的CF卡(参见下文),增加了其扩展性。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 FAT文件系统

FAT文件系统是基于DOS的文件系统。常说的FAT有12位的FAT12和16位的FAT16,另外就是32位的FAT32。考虑到CF卡的容量有限,宜选用FAT16。这里只对FAT文件系统作一简单介绍,更详细的内容请见参考文献。

磁盘的寻址方式有两种:物理寻址C/H/S(柱面/磁头/扇区)方式和逻辑块LBA(Logical Block Addressing)寻址方式。二者之间的转换关系为:

LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数-1

采用LBA寻址方式,没有磁头和磁道的转换操作,在访问连续的扇区时,操作速度比物理寻址方式要快,而且也简化了对磁盘的访问。

硬盘的结构布局分为MBR(主引导扇区)和最多4个逻辑分区(含DOS分区或非DOS分区),而在DOS逻辑分区中的磁盘组织如下:

引导扇区FAT1FAT2根目标区数据区

引导扇区DBR(DOS Boot Record):位于LBA 0扇区,包含跳转指令、厂商标识和DOS版本号、BPB(BIOS Parameter Block,BIOS参数块)、DOS引导程

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:19,562.50000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号