实用电子学/存储设备/CompactFlash
CompactFlash 卡 是一种非常常见的基于闪存 的可移动存储技术,于 1994 年首次发布。它很大程度上基于 PCMCIA 标准。CompactFlash (CF) 卡比大多数其他存储卡更大,但它们更坚固,并且具有简单且开放的接口协议的优点,与 SD 卡等设备不同,SD 卡具有专有接口。
CompactFlash 卡有 50 个引脚,但只有 15 个是绝对必要的,用于最小接口,这意味着许多中档微控制器有足够的引脚可以使用一个。CompactFlash 卡之所以有这么多引脚,部分原因是它们使用并行数据总线,一次呈现和输出 8 位或 16 位,这些位全部一起发送。像 SD 卡这样的设备具有串行接口,使用它需要更复杂的时间控制。
所有基于闪存的存储器都以块为单位工作 - 无法像在 RAM 中那样访问单个字节或字。CF 卡几乎总是具有 512 字节的块大小。如果你想读取、写入或更改任何数据,你必须始终处理整个块。这是所有闪存的局限性,但这是为如此巨大的容量所付出的代价。
CF 卡可以用来存储任何数据,包括原始的未格式化字节,或完整的文件系统,如 FAT 或 ext3。我们首先将处理简单的原始数据操作。如果需要,可以在此基础上实现文件系统。
从物理上讲,CF 卡是矩形的,侧面有插槽,用于在插座中引导,卡上有一个母连接器,与插座中的公针配合。CF 卡有两种外形尺寸,Type I 和 Type II,唯一的区别是卡的物理厚度。Type II 卡厚 5mm,Type I 卡厚 3.3mm。其他所有东西都相同,因此 Type I 卡可以安装在 Type II 插座中,但反过来不行。
CompactFlash 卡通常比其他格式更坚固。它们可以承受 2000G 的冲击(从三米高的位置掉落到硬表面上),并且至少可以承受 10000 次插拔循环。在正常使用情况下,CompactFlash 卡预计可以使用大约一百年。[1]
CompactFlash 卡的引脚以 2×25 的矩形排列,间距为 0.05 英寸(50 毫英寸或 1.27 毫米)。CF 卡两侧都有插槽,用于确保卡不会倒置或反向插入。当面向卡的连接器时,较宽的插槽在以下图像中定位时位于左侧。
引脚的功能可能取决于卡使用的模式。有关引脚图的完整描述,请点击这里。
CompactFlash 卡支持三种存储访问模式:PC 卡存储模式、PC 卡 I/O 模式和真 IDE 模式。
在 PC 卡存储模式(或公共存储模式)中,任务文件寄存器被映射到 CompactFlash 卡的公共存储空间中。
在此模式下,卡可以对任何公共存储地址执行 8 位或 16 位 I/O 操作。
在 PC 卡 I/O 模式(或 I/O 功能模式)中,任务文件被映射到 I/O 存储空间中。
在真 IDE 模式下,任务文件寄存器被映射到 I/O 存储空间中,就像在 I/O 模式中一样。真 IDE 模式的优点是,可以与现有的 IDE 总线直接接口,因为 CF 卡看起来与硬盘驱动器完全一样。
真 IDE 模式通过在加电期间保持ATA SEL(引脚 9)为低电平来指定。有时可以使用一些方法切换到真 IDE 模式,但不能依赖这些方法,因为它们在规范中是可选的。
在真 IDE 模式下,PCMCIA 协议和所有配置都被禁用。只允许对任务文件和数据寄存器进行 I/O 操作,不允许访问存储器或属性寄存器。
CompactFlash 卡可以使用少量的引脚连接到控制器设备。当微控制器或其他设备的引脚有限时,这非常有用。缺点是这种方法比使用所有可用引脚的速度慢。这种方法使用 8 位接口,非常适合大多数具有 8 位体系结构的低端到中端微控制器。
在公共存储模式下,可以使用仅 3 条地址线访问所有必要的寄存器,并且接口特别简单。卡读取和写入数据所需的信息首先加载到控制寄存器中,然后以字节为单位读出数据。
CompactFlash 卡在其存储器中没有内在的文件系统,它只是原始数据的块。允许计算机将卡读取为磁盘的文件系统,如 FAT、NTFS 或 ext3,被放置到存储器中,就像任何其他数据一样,但对读取它们的计算机具有特殊意义。
当使用格式化为 FAT 的磁盘时,前 512 字节数据(扇区 0)包含主引导记录 (MBR),它告诉计算机磁盘有多大,存储器是如何排列的,以及卡的名称,以及其他信息。如果你通过写入扇区 0 来破坏或删除此信息,Windows 将无法识别 CF 卡为可用的存储器。甚至可能无法识别磁盘,无法正常重新格式化。
在这种情况下,需要进行“无条件”格式化。使用命令提示符,输入以下内容(将X替换为相关的驱动器号)。
format X: /fs:fat /u
你可能需要执行两次才能完全将磁盘恢复到 Windows 兼容的格式。此方法可能会破坏 CF 卡上的某些数据。为了防止这种情况,始终从扇区 1 或更高的扇区开始对 CF 卡进行索引。如果你盲目写入,这仍然可能会破坏文件系统,但你将能够安装磁盘,使用 WinHex 等工具检索数据。
- Winhex: 一款功能强大的磁盘编辑工具,可以读取存储设备(如 CF 卡)的原始字节。