教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高中教育 >

51单片机与SD卡接口设计

来源:网络收集 时间:2026-08-31
导读: 单片机,毕业论文 60 51单片机与SD卡接口设计 51单片机与SD卡接13设计 InterfaceDesignforSDMemoryCard Based on 51 Single-ChipMicrocomputer 姚放吾曹木莲卢昭材丁福舜(南京

单片机,毕业论文

60

51单片机与SD卡接口设计

51单片机与SD卡接13设计

InterfaceDesignforSDMemoryCard

Based

on

51

Single-ChipMicrocomputer

姚放吾曹木莲卢昭材丁福舜(南京邮电大学计算机学院,江苏南京210003)

摘要

介绍51单片机与SD卡的接口设计原理,以及FAT32文件系统的设计和应用程序控制SD卡读写操作的实现。关键词:单片机,W86L388D,FAT32

Abstract

This

paperintroduces

thedesign

principle

to

interfacesingle-chipmicrocomputerwithSD

memorycard.

aswellaS

FNr32filesystemdesignandimplementationofapplicationstocontrolSDcardread-writeoperation.

Keywords:single-chip

microcomputer,W86L388D,FAT32

近年来,SD存储卡在嵌入式产品中的应用越来越广泛,但SD卡接口一般仅集成在32位ARM处理器中,一般51单片机则由于资源限制没有该接口。因此,如何解决51单片机应用系统存取SD卡大容量数据就显得很有实际意义。本课题使用W86L388D作为单片机与SD卡的接口芯片,采用4线并行方式取代SPI串行方式读写数据,使SD卡的访问速度得到明显提高,并且设计了FAT32文件系统,提高了SD卡的存储效率和兼容性,因此特别适用于需要大容量存储功能的嵌入式仪表和设备中。

1.1

跗I

q#【皿f一红II

J(撤批哪【旧世分!ljI|转入并1、蜕块)

硬件设计

SD卡接口芯片简介

单片机与SD卡接口使用了华邦公司的W86L388D芯片。

引㈢瞄单囱㈥窜嘲皤南ws

础r

圈1SD卡软件框架结构

芯片的主要特性包括8/16位CPU总线接口、最高时钟率25MHz、支持SD卡1线或4线数据传输、支持DMA和中断传输模式。由于该芯片内部集成了SD卡操作的全部时序,因此用户只需通过初始化参数配置,然后给相应的寄存器写入控制命令,就可方便的控制SD卡的读写操作。每次命令操作结果的状态,可以通过查询内部的状态寄存器获知,以决定下一步的操作。W86L388D工作电压为3.3V,且采用48脚LQPF小型封装,所以特别适用于要求体积小、功耗低的嵌入式应用场合。1.2接口电路设计

电路中的W86L388D使用8位数据总线与单片机连接,它与处理器的接El采用异步模式(XTYP2引脚接地),芯片还支持另一种同步模式(XTYP2引脚接高电平)。在8位总线下,D15用作A0,与A1一A3共同作用选择内部寄存器。SDl-SD6引脚与SD卡的4根数据线,1根命令线和1根时钟线相连。W86L388D的5个GPIO引脚,一个用于SD卡是否插入的检测,一个用于控制MOS管的导通从而控制SD卡电源的接通与断开,两个分别控制两个发光二极管,可用来指示卡是否插入和对卡的写保护指示,一个检测写保护。32KBSRAM用于文件缓冲区,MA×3232是RS一232接口,用于和HOST机通信。2软件设计

软件设计主要包括三部分:对SD卡进行底层多块读写的驱动程序设计,中间层FAT32文件系统设计,以及跟上位机(HOST)依据传输协议的通信程序设计。整体软件框架结构如图1所示。2.1底层SD卡驱动程序

SD卡有两种总线协议,SDBus协议和SPI协议。现在绝大部分微控制器都集成SPI接El,所以利用这种方式与SD卡

通信相对简单方便,但SPI协议在数据交换时只允许1位数据串行传输,所以速度受到限制。在SDBus协议下,允许1线到4线数据传输,因而提高了传输速度。但SD总线时序要求严格,如果用软件模拟不仅复杂烦琐,而且可靠性也不高,W86L388D支持SDBus方式的4线数据传输,并且根据所收到的命令能自动产生相应的SDBus时序,从而方便用户的使用,提高了系统的性能。

与SD卡通信的命令(CMD)和数据(DATA)由一个起始位同步,由一个结束位终止。发给SD卡的命令采用6字节的格式。命令由主机通过CMD线串行发给SD卡,标志SD卡的行为动作,部分命令要求卡返回一个应答信号,应答信号同样是通过CMD线由卡传送给主机的。当主机发送给卡的命令要求有数据交换时,DAT0~3线将进行相应的数据传输。

在访问SD卡的过程中,所有的操作都由主机发起,主机发起的命令(CMD)有两种类型:广播命令和点对点命令。广播命令对系统中所有的卡都有效,只有被选定的卡才能接受点对点命令。主机对SD卡的操作都是经过以下两种模式:卡识别模式和数据传输模式。

卡识别模式:在这个模式中,主机复位系统中所有卡,得到卡的工作电压、系统分配给卡的地址(RCA)等信息。这些操作对系统中所有的卡都有效,且所有的数据传输都是通过CMD线进行的。系统初始化包括:W86L388D的初始化和SD卡的初始化。

W86L388D的初始化:①设置CPU访问W86L388D的总线宽度为8位,且W86L388D工作在模式1;②进行软件复位;③设置系统时钟,使系统工作于低速状态;④检测是否有卡插

入.如果没有则关闭卡电源,如果有,则进行下一步卡的初始化。

万方数据 

单片机,毕业论文

《工业控制计算机)2008年21卷第9期

SD卡的初始化:①W86L388D中断允许设置;②利用

ACMD41命令获取卡操作条件寄存器OCR的内容(使用ACMD41命令之前先使用CMD55命令),获取此卡工作允许的

电压范围;③利用CMD2命令获取卡识别寄存器CID的内容,

获取卡的厂商ID、卡的名称、卡的版本等信息;(多利用CMD3

命令获取系统分配给卡的地址RCA;⑤设置系统时钟,使系统

工作于高速状态;(9如果系统中有多张SD卡,利用CMD7命令选定其中一张卡进行下一步的操作。

数据传输模式:在这个模式中,可以对SD卡进行读、写和擦除等操作,包括:单块的读操作,单块的写操作,多块的读操作,多块的写操作。2.2文件系统的实现

考虑到目前SD卡容量都较大,因此文件系统采用FAT32格式设计。

(1)获取指定逻辑盘信息

调用底层驱动程序从第0块开始.每次读取一个扇区(512字节),如果发现最后结束标志的两个字节是55AA,并且第446(从O开始计数)个字节的值是OX80,则表示此扇区是主引导扇区(MBR)。读出主引导扇区后,根据主引导扇区的第454~457(从0开始编号)的连续四个字节的值(小端模式存储),就可以根据这个数值找到系统分区引导记录BPB扇区的地址了。在实际操作SD卡的过程中,发现用这种方法有时读不出个别SD卡的容量和类型信息,具体原因不明。所以修改的算法如下:从零号扇区开始每次读取一个扇区进行搜索 …… 此处隐藏:4927字,全部文档内容请下载后查看。喜欢就下载吧 ……

51单片机与SD卡接口设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1730722.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)