compactflash存储卡的8051系统接口方案

compactflash存储卡的8051系统接口方案

ID:22346898

大小:83.50 KB

页数:7页

时间:2018-10-28

compactflash存储卡的8051系统接口方案_第1页
compactflash存储卡的8051系统接口方案_第2页
compactflash存储卡的8051系统接口方案_第3页
compactflash存储卡的8051系统接口方案_第4页
compactflash存储卡的8051系统接口方案_第5页
资源描述:

《compactflash存储卡的8051系统接口方案》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、CompactFlash存储卡的8051系统接口方案收稿日期:2006-09-27?作者简介:刘佑祥(1946-),男,湖北武汉人,武汉科技大学中南分校信息工程学院副教授。?(武汉科技大学中南分校信息工程学院,湖北武汉430223)?摘要:本文介绍了SST公司CompactFlash存储卡(CF卡)的电气特性与接口指令集,提出了一个基于8051单片机系统的完整CF卡接口解决方案,并给出了详细硬件电路设计和软件设计要点。?关键词:8051单片机系统;CF卡;计算机接口设计?中图分类号:TP305文献标识码:A??刖曰?随着电子技术的

2、迅速发展,嵌入式系统的功能变得越来越强大,设计中对其存储容量的要求也随之提高,所以原有的EEPROM等存储容量为KB级的存储器件已经无法满足设计要求。在这一背景下,CompactFlashCard(CF卡,见图1)作为一类存储速度快,存储容量大(容量可达数百MB至数GB)的新型存储器件就应运而生。但是由于CF卡的接口方式是为PC机接口设计的IDE方式,如果要在单片机系统中使用CF卡,需要在单片机系统中模拟IDE控制器的功能。因此,本文将讨论在8051系统中实现CF卡接口的解决方案。?图1CompactFlashCard夕卜观示意图

3、?一、CF卡接口的电气特性?SST公司的CF的封装为25X2的双列插座,行列之间的间距均为25mil。由于封装的特殊性,在应用时需要自行设计SCH和PCB封装。设计PCB封装时需注意选择合适孔径和焊盘大小,因为排针的针脚为正方形不是圆形,所以焊盘的直径应选择为针脚截面正方形的对角线长。如果直接使用标准CF卡接插件,则PCB上应相应设计成适合的贴片封装。?、主要功能引脚及说明?CF卡的主要功能引脚为数据线D0〜D15,地址线AO〜A9,片选及数据选择CE1,CE2,读写控制端OE、WR,寄存器选择REG,卡读写忙判断RDY/BSY,

4、RESET等。?数据线DO〜D15用于数据的读写。CF可以工作于16位数据总线方式也可以工作于8位总线方式。在读写速度上的要求不是很严格的情况下,为了方便和8位MCU的接口,一般选择为8位数据总线工作方式。?CE1和CE2的功能如表1所示:?若选择8位工作方式,CE2应接固定电平1,CE1低有效。在不同工作方式的说明中,可能把CE1和CE2分别改称CSO,CSlo?地址线A0〜A9。CF卡在Memory工作方式下,仅地址线A0〜A3起作用,用于选择读写端口,其余地址线可以接固定电平。?REG用于选择是对CF卡进行命令、状态读写还是

5、读写CF卡的属性寄存器。REG=1时读写命令。如表2所示:?在Memory方式下,对CF的控制和数据读写均是通过对这几个端口的读写来实现的。?RDY/BSY用于判断CF卡是否处于读写忙状态。出于严谨性可以在对CF卡进行读写之前利用此引脚判断CF卡是否空闲。在数据读写量比较小的情况下,使用一定的延时即可。?三、实际应用电路设计?图2给出了CF卡的实际应用电路。图中96MB的CF卡工作于Memory方式,8位数据总线,接口的主控MCU是89C52。?图2CF实际应用电路?单片机按标准的P2、P0口复用方式与CF卡接口。CSO,CS1,

6、REG分别接单片机的P2?6,P2?5,P2?7,端口选择A3〜A0接到经74LS373锁存的低4位地址,CF卡的读写引脚分别与单片机的读写信号相接。若把闲置地址引脚接固定电平,则系统分配给CF卡的端口地址为【B000】〜【B007】。?INTRQ(即BSY/RDY)脚接到单片机的P1.7。?四、CF卡的存储特性?CF卡采取的是类似硬盘的分块存储方式,分为柱面Cylinder、头Head和扇区Sector管理。对96MB的CF卡而言,共有733个柱面,每个柱面8个头,每个头32个扇区,每个扇区512字节(8位)。CF卡的读写是以一

7、个扇区为基本单位的,在读写一个扇区之前先送出当前需要读写的柱面、头和扇区,然后发送读写命令,一个扇区的512个字节需要一次性连续写入或者读出。?下面给出一段对CF卡读写的C51程序段:?#defineDataPortXBYTE[0xB800]?#defineFeatureXBYTE[0xB801]?#defineSecCountXBYTE[0xB802]?#defineSecNoXBYTE[0xB803]?#defineCylLowXBYTE[0xB804]?#defineCylHighXBYTE[0xB80

8、5]?#defineCardHeadXBYTE[0xB806]?#defineCommandXBYTE[0xB807]定义CF卡端□?CardHead=OxAO+head;置当前头?SecCount=0x01;—次读写一个扇区?SecNo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。