关于单片机AT89S52和CF卡的接口设计

发布者:落霞与孤鹜最新更新时间:2013-03-15 来源: dzsc关键字:AT89S52  CF卡  操作方式 手机看文章 扫描二维码
随时随地手机看文章
    通过8051单片机对CF卡进行读写。

  2.CF卡的操作方式

  CF卡的操作方式与计算机的硬盘操作方式类似,其扇区的寻址也有两种方式:物理寻址(CHS)和逻辑寻址(LBA),物理寻址使用柱面、磁头和扇区号表示一个特定的扇区,起始扇区是0道、0头、1区,接下来是2区等等,逻辑寻址将整个CF卡统一寻址。逻辑块寻址和物理寻址的关系为:

  LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数一1

  在实际使用过程中,用LBA地址进行寻址,可以大大简化编程的工作量,避免柱面、磁头和扇区之间的换算和切换,并且可以突破CHS对大容量的无法寻址的限制。

  3.CF卡的文件管理

  CF卡的文件管理系统和硬盘的文件管理是一样的,他将CF卡的存储空间分为五个部分:主引导记录扇区(MBR)、DOS引导区(DBR)、文件分配表(FAT)、文件目录表(FDT)和数据。

  主引导记录扇区(MBR)

  主引导记录扇区(MBR)在0柱面、0磁头、1扇区。主引导记录记录磁盘最重要的结构信息。主引导记录是硬磁盘作分区时建立的(Fdisk)。主引导记录包括一小段执行代码(主引导代码)、磁盘特征和硬盘分区表。主引导记录结束的两个字节必须是引导自举标记0x55AA。磁盘特征位于0x01B8, 指定磁盘操作系统。

  DOS引导区(DBR)

  DOS引导区(DBR)的起始扇区在0柱面、1磁头、1扇区,磁盘的逻辑0扇区都称为DOS引导扇区,又称为BOOT区。它由以下5个部分组成:

  跳转指令,占用3个字节的跳转指令将跳至引导代码,其内容随DOS版本变化。

  厂商标识和DOS版本号。该部分总共占用8个字节,其内容随DOS版本而不同。

  BPB(BIOS Paramenter Block, BIOS参数块)。BPB从第12字节起占用19个字节。

  DOS引导程序。DOS引导程序既是占用480字节的BOOT代码,负责完成DOS的3个系统文

  件的装入工作。这部分内容随DOS版本不同而变化。

  结束标志字,结束标志占用2个字节,其值为AA55。

  BPB表中所记录的有关参数,能帮助编程者确定磁盘的容量大小、文件分配表FAT的位置和大小、文件目录表FDT的位置和大小。因此以FAT32分区格式为例讨论BPB表的结构。

  偏移量为0BH、0CH记录每个扇区的字节数,0DH记录每簇扇区数。0EH、OFH记录保留扇区数,10H记录FAT表的数目,15H磁盘介质描述符,18H每个磁道的扇区数,24H每个FAT表的扇区数,2CH~2FH根目录起始号。

  文件分配表(FATl)

  文件分配表FAT(File Allocation Tabel)是文件管理系统用来给每个文件分配磁盘物理空间的表格,它告诉操作系统,文件存放在磁盘什么地方。文件分配表(FAT)有表标识和簇映射(旧称表目)的集合组成。一个完全相同的镜像副本连续存储在主 FAT 表后。表标识符包括磁盘介质描述符( 1 字节)和填充字节, 总计占两个簇的簇映射区域(这大概也就是 FAT 文件系统簇号由2开始的原因), 填充字节一般为 FF,FAT32 的填充字节中还包含"脏位", 即系统启动时执行磁盘检查(FAT-ChkDsk/NTFS-AutoChk)。FAT 簇映射中, 0000 表示空簇, FFFF 表示簇链结束, FFF7 表示坏簇, 其余值表示其后续簇的簇号。FAT12 和 FAT32 的存储策略同 FAT16 类似, 例如 FAT12的结束簇为 FFF, FAT32 的坏簇为 0FFFFFF7 等(注意 FAT32 的高 4 位保留)。文件分配表(FAT2)是FAT1的完全备份。

  文件目录表(FDT) 在文件目录表中,每个文件占32个字节(用PC-TOOLS或DEBUB读出时占两行),各个字节的含义是这样的:0-7 字节:文件名;8-10 字节:扩展名;11 字节,表示文件属性;12-21 共10个字节为保留字段,没有使用;22-23 为建立文件的时间;24-25 为建立文件的日期;26-27 为文件占用的第一个簇号,即起始簇;28-31 共4个字节为此文件的长度。

  3.AT89S52与CF卡的接口设计

  CF卡有3种工作模式可供选择:I/0模式、存储器模式和IDE模式。CF卡的默认模式是存储器模式,使用也最为普遍。如果使用存储器模式则不需要配置任何寄存器。每一种模式的电路连接各不相同。在I/0模式和存储器模式下,可以采用8位的访问方式,也可以采用16位的访问方式。本文所采用的是8位的存储器模式,其接口电路原理图如图1所示。

  AT89S52的P0口就为数据线连接CF的DO—D7,CF卡的A0-A10为地址线,P3.6、P3.7分别为读(RD)、写(WE)线。由于 AT89S52是8位的单片机,所以对CF卡的访问采用8位的方式较为方便。通过把-CE2设为‘1’即可通过访问CF卡的D0--D7来存取数据。而- CEl可以作为CF卡的片选信号,通过设-CEl为‘0’来选通CF卡,即-CEl接AT89S52的P2.6来线选CF卡。当REG为‘0’时,访问 CF卡的属性寄存器;REG为‘1’时,CF卡在存储器模式下对数据进行读写操作。RDY/BSY为CF卡状态引脚,当为“0”时,CF卡忙,为“1”时可以对CF卡操作。原理图如图所示:[page]

  限于篇幅只将写一个扇区代码编写(读扇区代码基本与此相同)如下:

  ;写一个扇区

  WRITE:   MOV DPTR, #SECTR_CNT

  MOV A, #1

  MOVX @DPTR, A

  MOV DPTR, #SECTR_NO

  MOV A, SECTRNO

  MOVX @DPTR, A

  MOV DPTR, #CYLINDER_LOW

  MOV A, CYLINDERL

  MOVX @DPTR, A

  MOV DPTR, #CYLINDER_HI

  MOV A, CYLINDERH

  MOVX @DPTR, A

  MOV DPTR, #DRV_HEAD

  MOV A, DRVHEAD

  ANL A, #0FH

  ORL A, #0E0H

  MOVX @DPTR, A

  MOV DPTR, #COMMAND

  MOV A, 30H

  MOVX @DPTR, A

  WRITE512:MOV R6,#0

  MOV R7,#2

  WRITE:   MOV DPTR,#DATA_REG

  MOV A,#31H

  MOVX @DPTR,A

  DJNZ R6,WRITE

  DJNZ R7,WRITE

  RET

  4.结束语

  本设计的接口电路,阐述了CF卡的读写方法,并采用了通用的MCS-51系列单片机为系统控制器,可移植性好。根据此电路可应用于其他单片机对CF卡进行读写,采用CF卡作为存储介质,容量大,体积小,价格低廉,可应用于MP3播放器,数码相机,移动存储等各个领域,本试验在线路板上调试通过,并配合计算机串口对CF卡进行读写操作,并可对CF卡进行数据恢复。

关键字:AT89S52  CF卡  操作方式 引用地址:关于单片机AT89S52和CF卡的接口设计

上一篇:单片机测控技术在平板导热系数仪研制中的应用
下一篇:基于51单片机和nRF905的无线通信装置的设计

推荐阅读最新更新时间:2024-03-16 13:20

单片机温度记录系统方案介绍
   在实际应用中,往往需要对较远处的温度信号进行监视。为此,设计了一种用 单片机 与数字温度传感器集成的方案,它可以以更低的成本和更高的精确度实现温度检测。   l 系统综述   系统硬件设计以Atmel公司的AT89S52单片机为核心,主要由电源电路、复位电路、晶振电路、串口通讯电路、温度传感器电路、12864液晶显示电路、I2C存储器电路以及按键输入电路构成。温度采集电路采用单总线数字温度传感器实现温度采集,可设计为一路或多路;温度存储电路采用I2C接口E2PRPOM存储芯片,以实现数据记录;液晶显示电路采用图形点阵液晶显示器,以实现温度的即时显示。同时配以键盘输入电路,可以接收用户指令输入,随时改变工作模式,
[单片机]
单片机温度记录系统方案介绍
AVR单片机与CF卡的接口的电路图和编程实例
1.本文所述内容就是通过8051单片机对CF卡进行读写。 2.CF卡的操作方式 CF卡的操作方式与计算机的硬盘操作方式类似,其扇区的寻址也有两种方式:物理寻址(CHS)和逻辑寻址(LBA),物理寻址使用柱面、磁头和扇区号表示一个特定的扇区,起始扇区是0道、0头、1区,接下来是2区等等,逻辑寻址将整个CF卡统一寻址。逻辑块寻址和物理寻址的关系为: LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数一1 在实际使用过程中,用LBA地址进行寻址,可以大大简化编程的工作量,避免柱面、磁头和扇区之间的换算和切换,并且可以突破CHS对大容量的无法寻址的限制。 3.CF卡的文件管理 CF卡的文件管理系统和硬盘的文件管理是一样的,他将CF卡的
[单片机]
AVR单片机与<font color='red'>CF卡</font>的接口的电路图和编程实例
AT89S52两单片机之间的通信 C程序
#include reg52.h #define uint unsigned int #define uchar unsigned char sbit key1 = P1^0; //按键位定义 sbit key2 = P1^1; sbit key3 = P1^2; sbit key4 = P1^3; void send(uchar key_num) //通过串口发送按键值子函数 { SBUF = key_num; while(!TI); TI = 0; } void delay(uint z) //延时_ms子函数 { uint x,y; for(x = 0;x z;x++) for(y = 0;y 125
[单片机]
基于System ACE的DSP文件系统设计
引 言   目前,对图像处理系统的速度和精度要求越来越高,采样的数据量也越来越大。而嵌入式系统中的硬件资源环境一般比较苛刻,嵌入式微处理器和微控制器的内存一般都不大。为了能够实现DSP(Digital Signal Processing)系统的独立运行,需要大容量的存储介质用于保存采样结果。但是板载的Flash等容量通常不大,SDRAM掉电后数据会丢失,并且它们无法方便地把数据转移到计算机主机上。闪存技术的不断发展,使得闪存卡(如CF卡、SD卡等)因其体积小、容量大、可靠性高等优点而在嵌入式存储领域得到越来越广泛的应用。因此,本文介绍一种使用CF卡作为数据存储介质存储大量数据的方法。FAT16文件系统具有出色的文件管理性能,能被
[嵌入式]
采用AT89S52和VC++的实现步进电机实时显示控制系统设计
1 引言 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下, 电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给 电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周 期性的误差而无累积误差,使得在速度、位置等控制领域,用步进电机来控制变的非常的简 单。本文设计了一种基于AT89S52 单片机和VC++的步进电机控制系统,可以实现对步进 电机的基本控制及状态实时显示。 2 系统组成 使用、控制步进电机必须由环形脉冲源、功率放大电路等部分组成控制系统,脉冲信号 一般由单片机或CPU产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空
[单片机]
采用<font color='red'>AT89S52</font>和VC++的实现步进电机实时显示控制系统设计
基于AT89S52和ATF1508AS的LED显示屏的硬件设计
0 引言 LED显示屏主要由电流驱动电路及LED点阵阵列、控制系统和PC端管理软件三部分构成(图1)。控制系统负责接收、转换和处理各种外部信号,并实现扫描控制,然后驱动LED点阵显示需要的文字或图案。控制系统作为LED显示屏的核心部分,直接决定了显示屏的显示效果和性能的优劣。本文详细分析采用Verilog HDL对ATF1508AS进行编程,实现双口RAM访问和产生LED点阵驱动电路所需的各种时序信号。 1 LED显示屏的基本结构及关键技术 本系统设计中,控制系统采用单片机+CPLD的方案来实现,整个控制系统可分为:信号接收及处理模块和CPLD的扫描控制模块和LED点阵驱动模块,如图1 所示。本系统的关键技术是使用双口RA
[单片机]
基于<font color='red'>AT89S52</font>和ATF1508AS的LED显示屏的硬件设计
强固型工业应用 宜鼎推高速读写高性能CF卡
闪存市场的工业领域,明年将随着5G以及AIoT的大量应用兴起,陆续推出高规格产品。而宜鼎国际则率先推出了采用新型SSD技术的CFexpress储存卡,和过去的规格相比,其传送速度大幅提升了3倍以上。因为未来5G与AI(人工智能)所带领产业加速发展,各种独立边缘运算设备都需快速提升处理效率,尤其针对读写速度有着较高要求的终端应用:如8K/6K高分辨率相机、4K无人机、赌场博彩游戏设备,以及各种独立边缘计算设备等。宜鼎CFexpress储存卡不仅提供部署边缘应用更完备的保障,更以融合高性能与强固性的产品设计,进一步帮助5G应用快速落地。 宜鼎所推出的的CF储存卡为PCIe Gen3x2,可以提供2GB/s的高速传输速度。此外
[嵌入式]
强固型工业应用 宜鼎推高速读写高性能<font color='red'>CF卡</font>
西门子博途设计 ProDiag 变量监控操作方式
为了更方便描述,本文件仅讨论“FB_Meld_4”块。 “FB_Meld_8”的操作方式相同。 对于 FB_Vorwahl 和 FB_Ruf 必须遵守该操作方式。 如果是 FB_Bauteilkontrolle,在检查容器的情况下允许通过 Config-Bit 取消块内部的消息,并且在输出端 Stoexx 将用户定义的变量监控参数化(可从块帮助得知详细信息)。 通过块“FB_Meld_4”创建监控的操作方式 创建块“FB_Meld_4”的实例,并且将其与所需的变量连接。 去定义所连接的变量 在 DB 中选择所连接的变量,并且添加一个新的监控。 在这里显示组态的总览: 必须选择“故障消息”作为监控方式。
[嵌入式]
西门子博途设计 ProDiag 变量监控<font color='red'>操作</font><font color='red'>方式</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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