AT89S52单片机与CF卡的接口电路设计

at89s52单片机与cf卡的接口电路设计
摘要:本文介绍了cf卡和单片机接口的各种模式,比较了各种模式的利弊。给出了2种常用模式下的电路原理图,简要说明了ide模式下存取工作的原理,阐述了映射存储模式下cf卡的存取原理。
关键词:cf卡;单片机;接口模式;读写扇区
1 前言
随着计算机应用技术的飞速发展,移动存储设备得到了广泛的应用。其中cf(compact flash)卡以其价格低廉、体积小、存储容量大、高速等优点在众多移动存储设备中被广泛地应用于数码相机、pda和笔记本电脑等当前十分热门的消费类电子产品中。并且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卡操作。原理图如图所示:
限于篇幅只将写一个扇区代码编写(读扇区代码基本与此相同)如下:
;写一个扇区
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卡进行数据恢复。

三相电流不平衡是指什么?三相电流不平衡允许范围是多少
互补管对DC/DC转换器实现倍压与负电源方法
有线智能家居有什么好处
新春致辞 | 赛昉科技徐滔:坚持长期主义,方可成就卓越
如何通过人脸识别设备来保障安全性
AT89S52单片机与CF卡的接口电路设计
中兴通讯即将被美国解禁 二级以上管理层被全部替换
面向高功率应用的高效率、高密度开关电容电源
ARM芯片未来将运行在PC上
吉米X8速干洗地机掌握家居卫生核心科技,双十一清洁家电就选它
硬件电路设计宝典!
人工智能市场的发展前景会是怎样的
基于NDIR和PID的ADI气体检测解决方案
什么是防水电机,电机防水的要求是什么
换向器缺陷视觉检测方案有哪些
医废管理新方式—医疗废物物联网管理系统
Linux调度器的演变
电阻、电容的识别,电阻电容介绍
硬件电路设计之eMMC电路设计
6G将在集成卫星网络实现全球覆盖,7G或将实现空间漫游