您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > CF卡的结构及工作原理
(CompactFlash)CF卡的结构及工作原理CF卡(CompactFlash)的结构及工作原理CF卡结构和工作原理CompactFlash技术是由CF协会(CFA)提出的一种与PC机ATA接口标准兼容的技术。如图1,CF卡由两个基本部分构成:内部控制器和闪存模块。CF卡的闪存模块基本上都使用NAND型闪存,用于存储数据。内部控制器用来实现CF卡与主机的接口以及控制数据的传输。CF卡内部控制器的设计完全模拟硬盘,使用标准的ATA/IDE接口。图1:CF卡结构框图CF卡的存取方式有三种:PCCardMemory模式、PCCardI/O模式以及TrueIDE模式。PCCard模式与PCMCIA标准兼容。TrueIDE模式与ATA标准兼容。三种方式相比,在TrueIDE模式下,CF卡与主机通信的信号最少,硬件接口最简单、软件易于实现,因此本设计采用了TrueIDE模式。CF卡扇区寻址有两种方式:物理寻址方式(CHS)和逻辑寻址方式(LBA)。物理寻址方式使用柱面、磁头和扇区号表示一个特定的扇区,起始扇区是0磁道、0磁头、1扇区,接着是2扇区,一直到EOF扇区;接下来是同一柱面1头、1扇区等。逻辑寻址方式将整个CF卡同一寻址。逻辑块地址和物理地址的关系为:LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数-1。CF卡没有机械结构,因此CF卡的扇区寻址适宜采用逻辑寻址方式。逻辑寻址方式没有磁头和磁道的转换操作,因此在访问连续扇区时,操作速度比物理寻址方式快得多。对于CF卡的操作(如:读/写),其实就是对CF卡控制器的寄存器进行操作。所以,必须对CF卡的寄存器十分熟悉。这些寄存器统称为任务文件(taskfile)寄存器:1.数据寄存器(读/写),用于CF卡的读写操作。主机通过该寄存器向CF卡数据缓冲写入或从CF卡数据缓冲读出数据。2.错误寄存器(Read)和特性寄存器(Write)。读操作时,此寄存器为错误寄存器,用于指明错误的原因;写操作时,此寄存器为特性寄存器。3.扇区数寄存器(读/写),用来记录读、写扇区的数目。4.扇区号寄存器(读/写),用来记录读、写和校验命令指定的起始扇区号或逻辑块地址(LBA)的BIT7:0。5.柱面号寄存器(读/写),用来记录读、写、校验和寻址命令指定的柱面号或LBA的BIT23:8。6.驱动器/磁头寄存器(读/写),记录读、写、校验和寻道命令指定的驱动器号、磁头号或LBA的BIT27:24,其中BIT6(LBA)用来设置CF卡扇区的寻址方式(LBA=0,采用CHS模式;LBA=1,采用LBA模式)。图2:CF卡地址空间存储映像7.状态寄存器(读)和命令寄存器(读/写),读操作时,该寄存器是状态寄存器,指示CF卡控制器执行命令后的状态,读状态寄存器则返回CF卡的当前状态;写操作时,该寄存器是命令寄存器,接收主机发送给CF卡的控制命令。读/写CF卡扇区程序的编写方法CF卡的读写是以一个扇区为基本单位的。在读写一个扇区之前必须先指明当前需要读写的柱面、头和扇区或LBA地址,然后发送读写命令。一个扇区的512字节需要一次性连续读出或者写入。主机读/写CF卡上一个文件的过程是这样的:1.CF卡初始化。CF卡上电复位和统计剩余空间的大小。2.CF卡内部控制器向CF卡某些寄存器填写必要的信息。如向扇区号寄存器填写读写数据的起始扇区号或LBA地址、向扇区数寄存器填写读写数据所占的扇区个数、设置CF卡的扇区寻址方式等。3.向CF卡的命令寄存器写入操作CF卡的命令。如写操作向CF卡的命令寄存器写入30H,读操作向CF卡的命令寄存器写入20H。4.CF卡有数据传输请求之后,主机读写CF卡的数据寄存器,从而实现从CF卡数据缓冲读出数据或向CF卡数据缓冲写入数据。5.在执行以上操作的过程中,每执行一步,都应该检测状态寄存器,确定CF卡的当前状态,从而确定下一步应该执行什么操作(参考状态寄存器的BIT位的意义,编写检测代码)。
本文标题:CF卡的结构及工作原理
链接地址:https://www.777doc.com/doc-5467539 .html