文档说明:由于CF卡常用于TRUEIDE模式,所以本文档针对CF规范4.0中只翻译了与TRUEIDE模式相关的文档说明,另外两种模式没有翻译。并且没有翻译时序操作部分。由于都是图表,请参照英文手册。1.1介绍闪存协会(CFA)成立于1995年10月,它的前提是:闪存(CF)技术能够引入一种新型的先进的、小型的轻量型、低功耗的移动产品,可以显著提高生产率,并提高数百万人的生活方式。CF技术背后的理念很简单:捕捉、保留和传输闪存存储卡上的数据、音频和图像。CF存储卡提供了在各种数字系统之间轻松传输所有类型的数字信息和软件的能力。CFA批准并公布了“CF卡”标准。这种独立于供应商的规范使得用户能够开发出能够正确运行的CF产品,并且与未来的CF设计兼容,消除了兼容性问题。现在,CFA已经开发了CF+规范,将CF概念扩展到闪存之外,并包括了输入/输出设备和磁盘数据存储。CF+规范还包括typeI(3.3毫米厚)卡和typeII(5毫米厚)。虽然闪存和许多I/o设备可以装入I型卡,但II型卡能使容量更大的闪存卡、磁碟卡和许多额外的I/o卡。1.2CFA目标和目的CFA的目标是促进和鼓励全世界采用CF+和(CF)技术作为一个开放标准。该协会的主要目的是推动第二来源的可用性;促进接受CF+规范作为跨平台和全球市场的行业标准;确保对CF和CF+产品的用户的兼容性,并在保证向后兼容性的同时不断改进已批准的CF+标准。1.3CF卡概述CF+是一种小型的标准卡标准,它包含了(CF)闪存、磁碟卡和输入/输出卡,但不限于串行卡、以太网卡、传真/调制解调器卡和无线寻呼机卡。CF+卡提供了高容量的数据存储和输入/输出功能,这些功能都符合个人计算机存储卡国际协会的标准。(在日本,适用的标准小组是JEITA。)CF+规范和PC卡ATA标准之间的细微差别在本规范的附录中有文档记录。尽管匹配簿的大小,CF+和CF卡可在pc卡TypeII或TypeIII套接字中使用被动适配器。一个CF卡也可以在与IDE磁盘驱动器兼容的TRUEIDE模式下运行。其他CF+设备,如磁盘驱动器,也可以在trueIDE模式下运行。存储卡智能控制器管理接口协议、数据存储和检索以及错误校正码(ECC)、缺陷处理和诊断、电源管理和时钟控制。一旦CF卡被主机配置,它就会作为一个标准ATA(IDE)磁盘驱动器出现在主机上。类似的控制器功能与其他CF+卡一起使用,允许各种各样的设备与CF+规范兼容。1.4关联文档1.5兼容性的需求CF卡和CF+是CFA的商标。符合此规范的所有产品有CFA的许可后都可以命名CF卡和CF+。该规范的目标是在PCMCIAPC卡模式下操作时符合PC卡规范,并在TRUEIDE模式下运行时符合ata-4规范。如果本规范与PC卡或ata-4规范之间存在冲突,则应使用CF卡规范。为了符合这个规范,一个CF卡或CF+卡必须符合本文档中所有的物理、电气和元格式规范。一个CF卡应该实现所有的PC卡和该规范中列出的真正的IDEATA命令。可以将命令实现为“无操作”来满足此需求。1.6感谢2范围2.1ElementsofthisSpecification该规范分为五部分:CardPhysical,ElectricalInterface,Metaformat,SoftwareInterfaceandCompactFlashAdapter。下面是每个部分的简要概述。2.2CardPhysical这一节定义了CF卡和CF+卡的尺寸和机械公差。具体的针脚长度被定义,以确保在卡插入和拆卸过程中首先应用电源。此外,还详细说明了连接器/非配对周期、环境操作条件和测试方法等可靠性因素。2.3ElectricalInterface这个部分提供了CF存储和CF+卡的内存模式、输入/输出模式和TrueIDE模式详细的输出和信号定义。提供的详细的功能和时序信息,包括在低序8数据位上读取16位数据(在8位主机系统中有用)和由CF存储卡或CF+卡返回的状态信息的解释。2.4Metaformat本节描述CF卡和CF+卡的卡片信息结构(CIS)或Metaformat,以及如何解释Metaformat,以便配置和使用卡片。2.5SoftwareInterface本节描述主机和CF卡之间的软件接口。这一节不适用于所有CF+卡。2.6CompactFlashAdapter本节描述的是被动类型IIPCMCIA适配器,可用于I或II型cf卡或CF+卡。4.2电气描述CF卡在三种基本模式下:1)PC卡ATA使用i/o模式,2)PC卡ATA使用内存模式和3)TrueIDE模式,与大多数磁盘驱动器兼容。CF要求支持所有三种模式。CF+卡通常在第一种和第二种模式下运行,但是它们可以在TrueIDE模式下进行选择。CF卡的配置可以用标准的PCMCIAPC卡配置寄存器(在存储卡的属性存储空间中起始地址200H的)控制,或者在TrueIDE模式下pin9被接地。CF+卡的配置应该使用配置寄存器来控制,起始地址被CF+Card的属性内存空间中ConfigurationTuple(cistplconfig)中定义的。表5描述了输入输出信号。信号源为主机的信号被指定为输入,而信号源是cf卡或CF+卡的信号被定为输出。cf卡和CF+Card逻辑级别符合PCMCIA发布2.1规范中指定的标准。在表5中,每个信号有三种可能的操作模式:1)PC卡存储器,2)PC卡i/o和3)TrueIDE。对于CF卡,TrueIDE模式被CF卡所需要,并且可共CF+卡选择。卡片上的所有输出都是totempole,除了数据总线信号是双向的三态。有关输入和输出类型的定义,请参阅第4.3节。TrueIDE模式下的引脚说明引脚方向PIN描述A2-A0I18,19,20TrueIDE模式下被用来选择TASKfile的8个寄存器中的一个。其余的地址线应该由主机接地。PDIAGI/O46在TrueIDE模式下,这个输入/输出是主/从握手协议中的传递诊断信号。DASPI/O45在TrueIDE模式下,这个输入/输出是主/从握手协议中的磁盘活动/从当前信号CD1,-CD2O26,25在TrueIDE模式下,这些卡片检测针被连接到CF卡或CF+卡的地上。主机使用它们来确定CF卡或CF+卡被完全插入到它的插座中。CS0,-CS1I7,32在TrueIDE模式下,,-CS0是任务文件寄存器的地址范围选择,而-CS1用于选择备用状态寄存器和设备控制寄存器。当DMACK被选中时,CS0和CS1应该被否定,传输的宽度应该是16位。CSELI39当在TRUEIDE模式中配置时,这个内部拉起的信号被用来将这个设备配置为一个主机或一个从机。当这个引脚被接地时,这个设备被配置为一个主机。当引脚不接时,这个设备被配置为一个从机。D15-D00I/O31,30,29,28,27,49,48,47,6,5,4,3,2,23,22,21所有的任务文件操作都是在字节模式下使用低位总线D7:0,而所有的数据传输都是16位时使用D15:0。GND1,50接地DMARQO43在trueIDE模式下,当设备没有在驱动头寄存器中选择时,DMARQ就不会被驱动。IORDI34IOWRI35ATASELI9要启用TRUEIDE模式,该输入应该由主机接地INTRQO37在TRUEIDE模式信号是对主机的主动的高中断请求。DMACKI44在TRUEIDE模式下,当DMA操作不激活时,卡将忽略DMACK信号,包括一个浮动条件。如果trueIDE模式不支持DMA操作,那么这个信号应该被主机驱动,或者由主机连接到VCC。RESETI41在TRUEIDE模式下,这个输入pin被自主机的低硬件复位激活VCC13,28+5,+3.3V-VS1-VS2O33,40电压检测信号。VS1被卡接地并被主机检测,以便可以在3.3V的电压下读取CF卡或CF+卡。VS2是由PCMCIA预留的,用于辅助电压,并且在卡上没有连接。IORDYO42在TRUEIDE模式下,除了在超级DMA模式外,输出信号可以被用作IORDY。WEI36在TRUEIDE模式下,这个输入信号不被使用,应该由主机连接到VCCIOCS16O24在TRUEIDE模式下,当这个设备期望一个字数据传输周期时,这个输出信号被断言为低。4.4卡配置在卡片信息结构(CIS)中,可以通过适当的信息识别cf卡和CF+卡。下面的配置寄存器用于z整理I/O空间和位于系统之的卡的中断级别。此外,这些寄存器提供一种用于访问CF卡或CF+卡的状态信息的方法,可用于相同的中断级别的多个中断源之间的仲裁,或者替换在内存卡中出现的状态信息,在输入/输出卡中有备用的使用。只要引脚9接地就使能了TrueIDE模式,不需要配置配置寄存器。4.7TrueIDEModeI/OFunction参照英文手册6.1.5CF-ATARegisters下面的部分描述了主机软件使用的硬件寄存器,用于CF卡发出命令。这些寄存器通常被统称为“任务文件”按照PCMCIAPC卡片规格:下面每个位于奇位移地址的寄存器可以访问PC卡内存或I/OPC卡模式的正常地址,和相应的用于数据总线的事件地址,当-CE1高和-CE2低除非-IOIS16高,(不宣称卡)和一个I/O周期执行。在trueIDE模式下,传输的大小仅基于所访问的寄存器的大小。所有寄存器都是8位,除了数据寄存器通常是16位,而且在对非dma操作时可以通过8位传输设置特征命令。在读取长时间和写长命令的部分中,数据寄存器也是8位,这些命令只存在于历史原因中,不应该使用。数据寄存器,用于读写数据。ErrorRegister:只读地址:1当错误在状态寄存器的位0中显示时,这个寄存器包含关于错误源的附加信息。这些比特的定义如下:D7BBK/ICRC当检测到一个坏的块时,这个位置1。当在trueIDEUltraDMA模式中检测到一个接口CRC错误时,这个位也置1D6UNC当遇到不可纠正的错误时,就设置了这个位。D50D4IDNF所请求的扇区ID是错误的,或无法找到。D30D2Abort因为一个CF卡状态条件(没有准备好,写错误,等等)导致命令中止,或者当一个无效的命令被发出时。那么这个位就会被置1D10D0AMNF这个位是在一般错误的情况下置1FeatureRegister:只写地址:1这个寄存器提供了关于主机可以使用的CF卡特性的信息。在使用CE2低和CE1高写操作位移0期间,这个寄存器能访问PC卡模式中的数据D15-D8。SectorCountRegister:可读可写地址:2扇区计数器该寄存器包含在主机和CF卡之间的读或写操作上请求的数据扇区的数量。如果这个寄存器中的值为0,则指定了256个扇区。如果命令成功,该寄存器在命令完成时为零。如果未成功完成,则寄存器包含为了完成请求的需要传输的扇区数量。SectorNumber(LBA7-0)Register:可读可写地址:3扇区号该寄存器包含起始扇区号或逻辑块地址(LBA)的位7-0,用于CF卡数据访问后续命令。CylinderLow(LBA15-8)Register:可读可写地址:4低柱面号这个寄存器包含了起始柱地址的低8位或逻辑块地址的位15-8位。CylinderHigh(LBA23-16)Register:可读可写地址:5高柱面号这个寄存器包含了起始柱地址的高8位或逻辑块地址的23-16位。Drive/Head(LBA27-24)Register:可读可写地址:6选择卡或磁头驱动/磁头寄存器用于选择驱动器和磁头。它还用于选择LBA寻址,而不是圆柱/磁头/扇区寻址。这些比特的定义如下:D71由于向后兼容的原因,这个位被指定为1。它的目的是在将来对规范的修订中,这一点将变得过时。在某些命令中,一些控制器忽略了这一点。D6LBALBA是选择圆柱/磁头/扇区(CHS)或逻辑块地址模式(LBA)的标志。当LBA=0时,选择圆柱/磁头/扇区模式。当LBA=1时,选择逻辑块地址。在逻辑块模式下,逻辑块地址被解释为如下:LBA7-LBA0:SectorNum