专栏中心

EEPW首页 > 专栏 > 单片机与CF卡的接口设计与实现

单片机与CF卡的接口设计与实现

发布人:yanqin 时间:2009-04-17 来源:工程师 发布文章
1引言

  电子存储设备的不断涌现,使许多便携设备大容量数据的实时处理和存储成为可能,CF卡(CompactFlashcard)因具有容量大、体积小、性能优良、携带方便等优点,已广泛应用在数据采集系统和许多消费类电子产品中。然而目前所开发的产品成本高,电路复杂,所需元器件数目多,严重制约了CF卡在更广阔领域内的应用。本文给出了一种简洁实用的硬件接口电路.成功实现了单片机对CF卡标准文件的读写。 

2接口电路设计

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


  在该电路设计中还省去了地址锁存器的应用,而是将CF卡的AO、A1、A2引脚分别直接连接在微控制器的地址引脚A8(P2.0)、A9(P2.1)、A10(P2.2),经过验证,同样的代码对这两种硬件连接都适用。

3读写程序设计

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

3.1检查CF卡的状态

  出于严谨考虑.当写入命令或写入数据后要查询状态寄存器的状态。以判断CF是否准备就绪或读写成功。

    

      3.2等待CF卡数据请求

    

      3.3设置8位数据宽度

    

篇幅有限,其他程序就不一一举出。鉴于介绍CF卡操作方式和读写文件原理的资料较多。本文就不再赘述,详细内容请参阅文献[4-7]。

4控制软件设计

  单片机读写CF卡的上位机软件采用VisualC++6.0编写。用户的操作比较简单,只需向控制软件发送扇区号和读/写扇区切换命令.其他的操作均由软件自动完成,对用户完全透明。以扇区1的读写为例,如图2所示。


5结束语

  由于CF卡具有易于携带,兼容性好,容量大的特点,可以预见CF将具有广阔的应用前景。本文给出了TrueIDE模式下单片机对CF卡的读写方案.可通过串行口在PC机与CF卡之间交换数据。在简化硬件电路设计的同时,还提高了数据传输速度.具有较高的参考价值。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

AI 推动光互连技术应用,实现 GPU 可扩展通信

2026-04-09

台海军计划更换主力反潜护卫舰

视频 2010-01-14

日直升机母舰型驱逐舰最新进展

视频 2010-01-14

芯海科技锂离子电池系统的BMS芯片CBM9680

2026工程师选择运算放大器的必备知识

潜艇史上的新里程碑--德国U31号常规动力潜艇

视频 2010-01-14

去中心化训练助力解决 AI 能耗难题

2026-04-09

纳芯微电子NSSine系列实时控制MCU/DSP

纳芯微PrimeDrive隔离栅极驱动发布小封装版本

伊朗关联黑客攻击美国关键基础设施,导致多处运营中断

数字化坦克

视频 2010-01-14

TI 的 TinyEngine NPU 为嵌入式系统解锁边缘 AI 加速能力,打破传统设计限制

ATE 测量卡怎么选?一文理清架构与设计取舍

测试测量 2026-04-09

面向严苛环境的高可靠性电源产品系列

2026-04-09

世纪威慑—美国“三叉戟”战略核潜艇

视频 2010-01-14
更多 培训课堂
更多 焦点
更多 视频

技术专区