基于单片机与CF卡的接口设计与实bob综合体育官方

2022-06-19 12:18 胡八一

1导言

随着电子存储设备的不断出现,许多便携式设备实时处理和存储大容量数据成为可能。紧凑型闪存卡(CF卡)因其容量大、体积小、性能优异、携带方便等优点,被广泛应用于数据采集系统和许多消费电子产品中。但目前开发的产品成本高、电路复杂、元器件多,严重制约了CF卡在更广泛领域的应用。本文给出了一种简单实用的硬件接口电路,成功地实现了单片机对CF卡标准文件的读写。

2接口电路设计

接口电路如图1所示,采用与80C51兼容的SST89C54单片机。SST89C54程序存储器分为两个块,块0和块1。前者16 KB,后者4 KB。block0和block1的地址不连续。1 Block1从F000H开始。通电后,程序可以从块0(0000h)或块1(F000H)执行。MCU的RE-MAP [1: 0]位决定程序开始执行哪个程序存储器。当这两位都为1时,程序将从0000H开始执行;否则将从F000H开始执行。re-map [1: 0]位是非易失性的,可以用程序员进行编程。CF卡的读写是通过卡内的缓冲区进行的。不支持存储区的直接读写。由于一次至少要读写一个扇区(512字节),目前的做法大多不得不依赖6116、6264等外部存储器,不仅增加了成本,也给软件设计带来了诸多不便。在本系统的设计中,采用SST89C54单片机的第二个内部程序存储器block1(4 Kbyte×8 bit)作为读写缓冲区,巧妙地解决了上述问题,同时避免了单片机读写CF卡必须依赖外部存储器和地址存储器的缺点[1-3]。

在该电路设计中,省略了地址锁存器的应用,但CF卡的A0、A1和A2引脚分别直接连接到微控制器的地址引脚A8(P2.0)、A9(P2.1)和A10(P2.2)。经过验证,相同的代码适用于这两个硬件连接。

3读写编程

由于CF卡由ATA控制器和FLASH存储器两部分构成,而系统访问FLASH存储器的速度远远小于访问内存的速度,如果系统频繁访问CF卡,势必会影响系统的实时性和工作效率,因此必须考虑CF卡读写程序的设计技巧。