单片机实现对CF卡的读写
发布时间:2008/6/3 0:00:00 访问次数:556
    
    
     摘要: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卡的读写,就是从底层对它进行直接操作,包括寻址、创建文件和读写等。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模式,此时可通过修改配置选项寄存器进入相应的模式。配置选项寄存器格式如下:sreset levelreq conf5 conf4 conf3 conf2 conf1 conf0 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 模式选择2 cf卡与51单片机的接口 cf卡在pc memory方式与51芯片的接口电路如图2所示。由于采用cf卡上电后自动进入的memory模式,而且不存在对特性寄存器的读写,故可将reg接高电平。片选信号ce1和ce2组合可选择数据位宽度,如表2所列。图2中ce2接vcc,选用的是8位(d7~d0)数据宽度。表2 数据宽度选择为了实现即插即用的功能,ce卡上提供了两个用来检测卡是否存在的引脚(cd1、cd2),由卡内部接地。当主机检测到与其相连的cd1和cd2两个引脚同时为低电平时,可判断出卡与主机相连;否则,卡未与主机相连。由于i/o口紧张,rdy/bsy引脚悬空不用,通过查询状态寄存器能判断cf卡是否准备就绪。在实际应用中,由于一次至少要读写一个扇区512字节,所以要扩充一块ram。我们选用的是62256,容量为32kb,这样便可以支持大到2gb的cf卡(参见下文),增加了其扩展性。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逻辑分区中的磁盘组织如下: 引导扇区dbr(dos boot record):位于lba 0扇区,包含跳转指令、厂商标识和dos版本号、bpb(bio
    
    
     摘要: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卡的读写,就是从底层对它进行直接操作,包括寻址、创建文件和读写等。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模式,此时可通过修改配置选项寄存器进入相应的模式。配置选项寄存器格式如下:sreset levelreq conf5 conf4 conf3 conf2 conf1 conf0 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 模式选择2 cf卡与51单片机的接口 cf卡在pc memory方式与51芯片的接口电路如图2所示。由于采用cf卡上电后自动进入的memory模式,而且不存在对特性寄存器的读写,故可将reg接高电平。片选信号ce1和ce2组合可选择数据位宽度,如表2所列。图2中ce2接vcc,选用的是8位(d7~d0)数据宽度。表2 数据宽度选择为了实现即插即用的功能,ce卡上提供了两个用来检测卡是否存在的引脚(cd1、cd2),由卡内部接地。当主机检测到与其相连的cd1和cd2两个引脚同时为低电平时,可判断出卡与主机相连;否则,卡未与主机相连。由于i/o口紧张,rdy/bsy引脚悬空不用,通过查询状态寄存器能判断cf卡是否准备就绪。在实际应用中,由于一次至少要读写一个扇区512字节,所以要扩充一块ram。我们选用的是62256,容量为32kb,这样便可以支持大到2gb的cf卡(参见下文),增加了其扩展性。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逻辑分区中的磁盘组织如下: 引导扇区dbr(dos boot record):位于lba 0扇区,包含跳转指令、厂商标识和dos版本号、bpb(bio
上一篇:在应用可编程测控网络设计