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

发布者:夜色迷离最新更新时间:2010-08-11 关键字:CF卡  单片机  接口  SST89C54 手机看文章 扫描二维码
随时随地手机看文章
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卡  单片机  接口  SST89C54 引用地址:SST89C54单片机与CF卡的接口设计与实现

上一篇:基于单片机的嵌入式SNMP代理器设计与实现
下一篇:基于PR818S的媒体存储盒系统设计

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

51单片机中断优先级及中断嵌套
在说到中断之前,我先来定义一下优先级,明白了什么是优先级,后面的阐述就容易明白了。实际上很多人都是混淆了优先级的含义,所以才觉得糊里糊涂。 中断的优先级有两个:查询优先级和执行优先级。 什么是查询优级呢?我们从datasheet或书上看到的默认(IP寄存器不做设置,上电复位后为00H)的优先级: 外部中断0 定时/计数器0 外部中断1 定时/计数器1 串行中断 或 int0,timer0,int1,timer1,serial port 或 INT0、T0、INT1、T1、UART 或 PX0 PT0 PX1 PT1 PS ...... 其实都是查询优级。首先查询优先级是不可以更改和设置的。这是一个中
[单片机]
ARM基本接口之外部中断实验
实验目的: 1. 了解中断的作用; 2. 掌握嵌入式系统中断的处理流程; 3. 掌握ARM外部中断编程。 实验内容(含步骤): 1. 总体步骤:先编译,启动目标机,待显示2440后,进行创建链接,下载,运行,观察是否显示HELLOO,按下EXINT2按钮看led灯是否变换显示效果 2. 实验过程:在实验过程中,始终显示硬件连接失败,组员认为是目标机与电脑连接问题,拔了插过,但仍然不行,后来多次更换电脑连接,花费了大量时间,终于解决问题,然后在紧迫的时间内修改代码,编译,链接,下载,运行,终于成功显示效果。理解原理后,通过在主程序中运行数码管显示代码,使得宿主机能正确显示HELLOO字样,然后通过按下EXIN
[单片机]
TI - MCU - MSP430使用指南3 -> SYS系统控制
MSP430 MCU的内部系统控制主要包括以下几块: 上电及复位控制 中断管理 MCU运行模式 TLV数据 对于MSP430的系统控制吧,如果仅仅是站在应用层的角度来说,可以不用太怎么了解,毕竟使用起来的话,SYS模块的的寄存器直接默认就好啦,不会有什么问题,基本都是存在比较深的解决不了的问题时才会牵扯到这一块的内容,因此我的讲解也比较有限,主要说一些关键的内容吧(主要是 我了解的也不是特别深。。。。)。下面开始进入我们今天的分享: 上电及复位管理 BOR:Brownout Reset,也就是掉电复位。 POR:Power on Reset,上电复位。 PUC:Power up Clear,通电清除 这三个有什
[单片机]
TI - <font color='red'>MCU</font> - MSP430使用指南3 -> SYS系统控制
Lightning 接口为何找人不待见?以至于总想换掉它
2012 年,苹果推出了 iPhone 5,在这台手机上苹果首次使用了 Lightning 接口替换掉了原来的 30 针接口。随后 Lightning 成为了苹果移动设备的标配,iPhone、iPad 和 iPod 上都用了 Lightning。 几年时间过去了,当时先进的 Lightning 反而不被大家待见,「换掉它」的声音也越来越大。Lightning 哪里不好?为什么大家都想换掉它? Lightning 哪里不好? 前浪该倒在沙滩上了 作为首个被移动市场广泛采用的正反可插接口,Lightning 接口和当时一众 microUSB 接口手机相比毫无疑问体验不知道高到哪里去了:不分正反,这在当时是近乎
[手机便携]
Lightning <font color='red'>接口</font>为何找人不待见?以至于总想换掉它
8051单片机实战分析(以STC89C52RC为例) | 01 - 点亮一个LED
1 原理图 以点亮单片机P2.2端口的LED为例: 从图中不难看出,LED的右边是通过电阻接到VCC,如果要点亮LED就得把LED左边的端口进行拉低,根据二极管的单向导电性,LED正向导通从而LED发光。 2 代码 main.c文件的代码: #include reg52.h //此文件中定义了单片机的一些特殊功能寄存器 sbit led=P2^2; //将单片机的P2.2端口定义为led /******************************************************************************* * 函 数 名 : main * 函数功能 :
[单片机]
8051<font color='red'>单片机</font>实战分析(以STC89C52RC为例) | 01 - 点亮一个LED
基于MSP430单片机编程器的设计
1.引言 单片机开发与应用已渗入我们生活中各个方面,其中一个应用就是对内存较小的芯片大批量烧录,就有了性能稳定的高速编程器诞生以满足各大厂商实现大量芯片烧录的目标。目前市场上运用最广泛的编程器是基于89C51的,但其功能过于单一,不能满足日益发展的市场需求。本文提出一种采用MSP430F149单片机作为CPU控制核心的编程器。与51单片机编程器相比,MSP430单片机编程器增加了I2C存储模块,可无需电脑利用该编程器对芯片进行烧录,使烧录过程更方便、快捷。 2.系统设计 基于MSP430的单片机编程器以MSP430F149为核心,主要由键盘、显示、串口、烧写、电平转换、电源和存储模块构成。系统结构框图如图1所示。 图1系统结
[单片机]
基于MSP430<font color='red'>单片机</font>编程器的设计
基于51单片机的三角波信号发生器设计
一、任务要求: 设计内容 选择51单片机,晶振采用12MHz。 设计一个能产生50HZ至100HZ的三角波信号。通过0832/A芯片完成数模转换。 频率值由LED数码管键盘输入。 将频率由LED数码管显示(4位) 设计要求 按照任务书的要求完成系统分析及方案设计。 完成硬件原理图的设计,并设计相关元器件。 完成控制软件流程图的设计,编写相应的单片机控制程序。 撰写设计报告。 二、仿真过程展示 程序烧录仿真界面: K1第一次按下界面 按3次K1后界面 K2、K3可对波形频率进行调整;K4、K5可对占空比进行调整。 频率的值是可以通过这里改的
[单片机]
LKT4103多接口加密芯片特性介绍
  一、LKT4103多接口加密芯片介绍   LKT4103采用增强型8051智能卡内核,芯片内部嵌入凌科芯安公司的LKCOS智能操作系统,用户可以把MCU中程序一部分关键算法函数下载到LKT4103芯片中运行。用户采用标准C语言编写操作代码,采用KEIL C编译器,编译并下载到智能芯片中。在实际运行过程中,通过调用函数方式运行智能卡芯片内的程序段,并获得运行结果,并以此结果作为用户程序进一步运行的输入数据。LKT4103成了产品的一部分,而算法在LKT4103内部运算,盗版商无法破解,从根本上杜绝了程序被破解的可能。芯片内部硬件实现了国家商用密码产品所需的SSF33 和SM1 算法专用加密模块、DES/3DES 加密模块和RSA
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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