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

发布者:柔情细语最新更新时间:2010-01-11 来源: 中电网关键字:单片机  CF卡  接口 手机看文章 扫描二维码
随时随地手机看文章
1 引言

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

2 接口电路设计

    接口电路如图1所示,采用与80C51兼容的SST89C54型单片机。SST89C54程序存储器分为block0和block1两块,前者为16 KB,后者为4 KB,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(4 Kbyte×8 bit)作为读写缓冲区,这样就可以巧妙地解决上述问题,同时也避免了通过单片机读写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卡的上位机软件采用Visual C++6.0编写。用户的操作比较简单,只需向控制软件发送扇区号和读/写扇区切换命令.其他的操作均由软件自动完成,对用户完全透明。以扇区1的读写为例,如图2所示。

5 结束语

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

关键字:单片机  CF卡  接口 引用地址:单片机与CF卡的接口设计与实现

上一篇:MSP430单片机的加密熔断器设计
下一篇:基于单片机的灰度图像混沌保密通信

推荐阅读最新更新时间:2024-03-16 12:27

MSP430单片机的PWM操作
//******************************************************************************* // 描述:MSP430实现PWM。反映在LED灯上,可以看到LED灯的亮度不断变化 // // ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k // // MSP430F13x // ------------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.2|-- LED // // // 硬件电路:MSP430F135核心实验板-I型 //
[单片机]
DS18B20数字温度计单片机接口应用
1.DS18B20基本知识  DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 1、DS18B20产品的特点   (1)、只要求一个端口即可实现通信。   (2)、在DS18B20中的每个器件上都有独一无二的序列号。   (3)、实际应用中不需要外部任何元器件即可实现测温。   (4)、测量温度范围在-55。C到+125。C之间。   (5)、数字温度计的分辨率用户可以从9位到12位选择。   (6)、内部有温度上、下限告警设置。 2、DS18B20的引脚介绍  
[单片机]
DS18B20数字温度计<font color='red'>单片机</font><font color='red'>接口</font>应用
PC与单片机的串行通信及数据处理
  引言   Matlab是由美国Mathworks公司开发的面向理论分析研究、工程计算数据处理和缓图的一套具有强大功能的软件系统。其中Matlab语言是一种以矩阵为基本运算单元的解释执行的高级语言,编程简例,只要几条语句就能实现诸如FFT变换、FIR/IIR滤波等数据分析处理,易于掌握。从Matlab6.0版本开始,Mathworks公司在软件中增加了设备控制箱(instrument control toolbox),提供了对RS-232/RS-485通信标准的串口通信的正式支持。利用该工具箱的serial类及instrcallback()回调函数,能可靠地进行实时串地通信。为此,笔者充分结合单片机和Matlab的优点,基于事
[单片机]
51单片机实现数码管动态显示60~0
硬件电路原理图 元件清单 C语言程序 #include reg51.h unsigned char table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管字符码 void show(unsigned char n); void delay(unsigned int k); void main() { unsigned char i; int j; while(1) { for(i=60;j=60,i 0;i--) while(j--) show(i); } } void show(unsigned char n) { P0=table ; P1
[单片机]
51<font color='red'>单片机</font>实现数码管动态显示60~0
SHA-1器件和安全单片机的功能介绍
信息安全无论对国家还是对个人都是非常重要的。信息安全意味着要防止非法复制重要数据信息和程序代码;避免数据或代码被非法修改;保护金融交易,这包括银行加密密钥的传递保护、信用卡用户密钥的保护、电子钱包数据保护等等。为了信息安全、保护数据信息,需要有安全器件、安全措施,这包括加密。    加密算法   为了信息安全,需要对信息加密。加密就是将数据信息的真实原文进行某种方式的编码,使第三方无法识别。   加密算法包括对称加密算法,非对称密钥算法,散列算法等。   ·对称加密算法(如DES,3DES,AES)   对称加密算法的加密和解密都使用同一个密钥。优点是加解密速度快、占用资源少;缺点是密钥的传递不够安全。   ·非对称密
[工业控制]
SHA-1器件和安全<font color='red'>单片机</font>的功能介绍
MCU来控制蓝牙GPS模块
GPS定位产品正在渐渐的深入到大众消费中来,随着电子地图的日趋完善,GPS系统将越来越发挥更加实际的指引作用。蓝牙GPS模块实现以无线蓝牙接口来发送GPS模块的定位数据,它挣脱了导线的束缚,从而可以很容易地在各种支持蓝牙的便携设备上实现导航定位功能。 蓝牙GPS模块也是一个小小的便携设备,需要实现电源的管理、GPS数据的处理、蓝牙状态的判断以及点亮指示灯等功能。这都要求使用一个MCU来协调控制整机的工作。 Freescale半导体的HCS08系列8位高性能MCU:MC9S08QG4即是个不错的选择。适用于本方案的主要参数为: 低功耗,简单的BDM调试口 16脚封装,内嵌10MHz振荡器(外部晶振支持20MHz),最多可用1
[单片机]
用<font color='red'>MCU</font>来控制蓝牙GPS模块
DVI数字显示接口标准
数字显示接口(Digital Visual Interface,DVI)是一种适应数字平板显示器飞速发展而产生的显示接口。目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的D/A(数字/模拟)转换器转变为R、G、B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟CRT显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。而对于LCD、DLP等数字显示设备,显示设备中需配置相应的A/D(模拟/数字)转换器,将模拟信号转变为数字信号。在经过D/A和A/D两次转换后,不可避免地造成了一些图像细节的损失。 在DVI之前也
[应用]
51 单片机编程:双路计数器
利用 51 单片机构成计数器,计数的上限,做的大一些,也不难,几千几万都可以。 下面的电路,小了一点,是个两路两位的计数器。 用来记录乒乓球比赛,还算可以,用于篮球比赛,分数超过 99,这个电路就不够用了。 电路图中,用的是共阳数码管;还设置了六个按键,用途,都已经标出。 用 C 语言编写驱动程序,是比较简单的,全部代码如下: #include reg51.h unsigned char n1, n2; //----------------------------------------------- void delay(unsigned int i) //1ms延时程序 { unsigned
[单片机]
51 <font color='red'>单片机</font>编程:双路计数器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved