毕业设计(论文)-基于单片机MP3播放系统设计.doc_第1页
毕业设计(论文)-基于单片机MP3播放系统设计.doc_第2页
毕业设计(论文)-基于单片机MP3播放系统设计.doc_第3页
毕业设计(论文)-基于单片机MP3播放系统设计.doc_第4页
毕业设计(论文)-基于单片机MP3播放系统设计.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

贵州大学本科毕业论文(设计) 第 i 页 本科毕业论文(设计)本科毕业论文(设计) 论文(设计)题目:论文(设计)题目:mp3 播放系统 2011 年 5 月 15 日 贵州大学本科毕业论文(设计) 第 ii 页 目 录 摘要 iii abstractiv 前言 1 第一章 系统描述 2 1.1 综述2 1.2 系统框图2 1.3 功能实现2 第二章 系统的硬件设计和方案对比选择 3 2.1 系统设计结构图3 2.2 系统设计方案对比选择3 2.2.1 mcu 微处理控制器的方案对比选择 3 2.2.2 存储设备模块对比选择 4 2.2.2 音频解码器的对比选择 4 第三章 系统的硬件设计电路及元件说明 5 3.1 mcu 微控制器电路5 3.1.1 stc12c5a60s2 基本特性 6 3.1.2 stc12c5a60s2 增强特性 7 3.2 sd 卡模块8 3.2.1 sd 卡结构与接口定义 9 3.2.2 sd 卡读写模块原理电路图 10 3.3 vs1003 音频解码器模块12 贵州大学本科毕业论文(设计) 第 iii 页 3.3.1 vs1003 基本特性 12 3.3.2 vs1003 结构框图 12 3.3.3 vs1003 电路原理图 14 3.4 按键控制14 3.5 复位电路15 3.6 晶振电路16 第四章 系统的软件设计 17 4.1 程序设计框架17 4.2 znfat 文件系统模块介绍17 4.2.1 文件系统 17 4.2.2 fat32 文件系统17 4.2.3 znfat 文件系统19 4.3 sd 卡驱动程序设计22 4.3.1 spi 通信协议概述22 4.3.2 sd 卡驱动 23 4.4 vs1003 音频解码器模块30 4.5 主程序设计 32 第五章 系统的制作、焊接与调试 33 5.1 系统的制作33 5.2 系统的焊接33 5.3 系统的调试33 设计总结 35 参考文献 36 致谢 37 附录 38 附录一 系统的主程序清单 31 贵州大学本科毕业论文(设计) 第 iv 页 附录二 基于单片机 mp3 播放系统设计的原理图36 附录三 基于单片机 mp3 播放系统的 pcb 图37 附录四 基于单片机 mp3 播放系统设计的元器件清38 附录五 基于单片机 mp3 播放系统设计的实物图39 贵州大学本科毕业论文(设计) 第 v 页 基于单片机播放系统设计 摘要 根据 stc12c5a60s2 单片机的特点和芬兰 vlsi 公司出品的 vs1003 音频解码芯片, 本文提出了一种用单片机实现简易 mp3 播放器的方法,同时给出了软硬件设计的方法, 设计过程中包括硬件电路设计和软件程序编写两个方面。在硬件方面主要有 vs1003 音 频解码器以及 mp3 播放器的按键,在软件方面主要有 vs1003 的驱动,sd 卡工作在 spi 模式下的读写驱动,fat32 文件系统的移植,以及通过识别键值来控制 sd 的扇区 读写。 整个设计过程包括电子系统的设计技术及调试技术,包括需求分析,原理图的绘 制,pcb 板的绘制,制板,器件采购,安装,焊接,硬件调试,软件模块程序的编写, 模块测试,系统整体测试等整个开发调试过程。 关键词:单片机播放系统,stc12c5a60s2, vs1003, fat32,。 贵州大学本科毕业论文(设计) 第 vi 页 based on mcu mp3 system design abstract according to the characteristics of stc12c5a60s2 microcontroller and finland dfm product of our company vs1003 audio decoding chips, this paper puts forward a method using microcontroller is simple mp3 player method is given, and the hardware and software design method, design process including hardware circuit design and software programming two aspects. in hardware mainly has vs1003 audio codec and mp3 player key, in software basically has vs1003 driver, sd card work in spi mode of reading and writing, fat32 drive file system transplantation, and by identifying key value to control the sd sectors, reading, speaking and writing. the whole design process including electrical system design technology and debug technology, including the requirement analysis, the principle drawing and pcb rendering, plate making, installation, the device procurement, welding, hardware debugging, software module program compiling, and module testing and system overall test etc all development debugging process. keywords: stc12c5a60s2, vs1003, fat32, keyboard. 贵州大学本科毕业论文(设计) 第 1 页 前言 随着科技的日益发展,电子产品也不仅仅是在工业控制中流行,已经布满了我 们整个生活中。人们已经不再是追求温饱生活的简单目标,而是在这基础上追求更 好的娱乐精神享受。vs10xx 系列在国家 mp3 业余爱好者中影响颇大,apple 的 ipod 在的前身就是使用的是 vs10xx 系列芯片,为了成为一个 mp3 爱好者,本文也 设计了一个简易的 mp3 方案,同时给出了软硬件设计的方法。 本设计的论文包括硬件电路设计和软件程序设计两个方面,其中前者主要在第 三章中重点叙述,后者在第四章中叙述。在本设计论文的结尾,分别附有与本设计 相关的资料,包括设计系统主程序,系统原理图,系统 pcb 图,系统元件清单,系 统实物图及系统使用说明。 贵州大学本科毕业论文(设计) 第 2 页 第一章 系统描述 1.1 综述 本系统是基于 stc12c5a60s2 单片机所设计的 mp3 播放器,音频文件存储在 sd 卡上,通过文件系统的读 sd 扇区,由 stc12c5a60s2 单片机读取数据并送到 vs1003 音频解码器模块解码并输出,同时还可以通过按键来选择 sd 卡存储的歌曲 的顺序,以及暂停播放歌曲和音频解码器模块的音量大小。 整个系统分为四个模块:mcu 最小系统板、键盘、vs1003 音频解码、sd 卡模 块。mcu 是 stc12c5a60s2 单片机的最小系统板,上面有芯片需要工作的最基本 的资源:时钟控制电路、复位电路与外围电路相连的接口。 1.2 系统框图 图 1.1 系统总框图 1.3 功能实现 sd 卡读写 fat32 文件系统 mp3 文件播放 键盘控制歌曲顺序 贵州大学本科毕业论文(设计) 第 3 页 第二章 系统的硬件设计及方案对比选择 2.1 系统设计结构图 图 2.1 系统设计结构图 2.2 系统设计方案对比选择 根据设计要求,结合实际情况和设计成本要求,对系统主要部分的电路方案叙 述如下。 2.2.1mcu 微控制器方案对比选择 方案一:mcu 微处理控制器的种类很多,有 atmel 公司生产的 at89sxx 系 列单片机,其中有 8 位的单片机,也有 16 位的单片机。at89s52 为 8 位的单片机, 它是一种低损耗、高性能的 cmos 微处理器,片内有 8k 字节的存储空间,128 字 节 ram、4 个 8 位并口、1 个全双工串行口、2 个 16 位定时/计数器,寻址范围 64k。并且可以在线进行重复编程、快速擦除、快速写入程序,能重复擦除 / 写入 1000 次左右,数据保存时间为十年。 方案二:也是 atmel 公司生产的 avr 单片机,它也有很多特点,比如:体积 小 、集成度高、可靠性好、易于扩展、高速度、低功耗;功能强、是一款 risc 精 简指令集高速 8 位单片机。但是其市场价格较高,且已经在 mcu 市场夹缝中生存, 且现在以有停产的趋势。 方案三:是宏晶科技公司生产的 stc12c5a60s2 单片机,它是一款增强型单片 机。是一款高性能的微处理器,片内有 60k 字节的存储空间、1280 字节 sram、2 个 16 位定时/计数器,兼容普通 51 单片机,没有定时器 2,但有独立波特率发生器 做串行通讯的波特率发生器,工作频率是普通 51 单片机的 10 倍左右。 贵州大学本科毕业论文(设计) 第 4 页 综上所述,在本设计中,考虑到程序生成的 hex 文件较大,并且需要较快的执 行速度,选择宏晶科技公司生产的 stc12c5a60s2 单片机为微处理控制器。 2.2.2存储设备模块的对比选择 方案一:cf 卡是目前市场上历史悠久的存储卡之一 ,存储容量大,成本低, 兼容性好,这些都是 cf 卡的优点,缺点则是体积比较大。 方案二:infineon 和 sandisk 公司共同推出的一种全新的小巧的存储卡产品 mmc 卡,但是它适用于对尺寸和电池续航能力要求很高的手机以及其他手持便携 设备。 方案三:sd 卡(secure digital memory card)中文翻译为安全数码卡,是一 种基于半导体快闪记忆器的新一代记忆设备,它被广泛的用于便携式装置上,例如 数码相机、个人数码助理(pda)和多媒体播放器等。sd 卡大小犹如一张邮票,重 量只有 2 克,但是确有高记忆容量、快速数据传输、极大的移动灵活性以及很好的 安全性。 综上所述,在本设计中,考虑到 sd 卡比较常用,而且有较成熟的读取方法,所 以选择 sd 卡作为本系统的存储设备。 2.2.3音频解码器的对比选择 根据以前使用音频解码器的经验,选用芬兰的 vlsi 公司的 vs10xx 系列的芯片 性价比最高,而且也有很成熟的驱动方案。通过查阅 vs10xx 系列的芯片手册,选 择 vs1003 音频解码器。vs1003 是一个单片 mp3/wma/midi 音频解码器和 adpcm 编码器,它包含一个高性能,自主产权的低功耗 dsp 处理核 vs_dsp,工作 数据存储器,为用户应用提供 5kb 的指令 ram 和 0.5kb 的数据 ram。串行的控 制和数据接口,4 个常规用途的 i/o 口,一个 uart,也有一个高品质可变采样率的 adc 和立体声 dac,还有一个耳机放大器和地线缓冲器。所以 vs1003 很符合本设 计的基本需求功能。 贵州大学本科毕业论文(设计) 第 5 页 第三章 系统的硬件设计电路及元件说明 本章根据系统设计结构图来对每个部分的电路进行分析和说明,重点讲述 mcu 微控制器 stc12c5a60s2、sd 卡模块电路、vs1003 音频解码器模块电路、键盘。 该系统中 stc12c5a60s2 是核心器件,系统的设计原理图如附录二所示。 3.1 mcu 微控制器 图 3.1 stc12c5a60s2 的塑封图 stc12c5a60s2的塑封图如图 3.1 所示,它为 dip40 双列直插塑料封 stc12c5a60s2作为系统的核心控制元件,只有它能正常工作后才能使其它的元件进 入正常工作状态。因此,下面对stc12c5a60s2进行必要的说明,stc12c5a60s2的管 脚如图 3.2 所示。 贵州大学本科毕业论文(设计) 第 6 页 图 3.2 stc12c5a60s2的管脚图 3.1.1stc12c5a60s2 基本特性 1)vcc:40 脚,供电电压,一般接+5v 电压。 2)gnd:20 脚,接工作地。 3)p0 口:18 脚,p0 口是一个 8 位漏极开路的双向 i/o 口。作为输出口,每 位能驱动 8 个 ttl 逻辑电平。对 p0 端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,p0 口也被作为低 8 位地址/数据复用。在这种 模式下,p0 具有内部上拉电阻。 在 flash 编程时,p0 口也用来接收指令字节;在程序校验时,输出指令字节。 程序校验时,需要外部加上拉电阻,一般上啦电阻选 4.7k10k 为宜。本设计中用 5.1k 的排阻对 p0 口进行上拉电平。 4)p1 口:3239 脚,p1 口是一个内部具有上拉电阻的 8 位双向 i/o 口,p1 口 缓冲器能接收输出 4 个 ttl 门电流。p1 端口写入“1”后,被内部上拉电阻把端口 拉高,此时可以作为作输入口使用。作为输入使用时,被外部拉低的引脚由于内部 电阻的原因,将输出电流(iil)。 贵州大学本科毕业论文(设计) 第 7 页 5)p2 口:2027 脚,p2 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出缓冲器能驱动 4 个 ttl 逻辑电平。对 p2 端口写“1”时,内部上拉电阻把端 口拉高,此时可以作为输入口使用。在访问外部程序存储器或用 16 位地址读取外部 数据存储器(例如执行 movx dptr)时,p2 口送出高八位地址。在使用 8 位地 址(如 movx ri)访问外部数据存储器时,p2 口输出 p2 锁存器的内容。 在 flash 编程和校验时,p2 口也接收高 8 位地址字节和一些控制信号。 6)p3 口:1017 脚,p3 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p3 输出缓冲器能驱动 4 个 ttl 逻辑电平。 7)reset:9 脚,复位输入端。当振荡器复位器件时,要保持 rst 脚两个机 器周期的高电平时间。 8)ale/error!:30 脚,当访问外部存储器时,地址锁存允许的输出电平用于锁 存地址的地位字节。在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对 外部输出的脉冲或用于定时目的。 9)psen:29 脚,外部程序存储器的选通信号。 10)error!/vp:31 脚,访问外部程序存储器控制信号。当为低电平时,则ea 读取外部程序存储器;当端为高电平时,则读取内部程序存储器。ea 11)xtal1:19 脚,振荡器反相放大器和内部时钟发生电路的输入端。如采用 外部时钟源时,xtal1 为输入端。 12)xtal2:18 脚,振荡器反相放大器的输出端。如采用外部时钟源时, xtal2 应悬空不接。 3.1.2stc12c5a60s2 的增强特性 1)增强型 8051,1t,单时钟/机器周期,指令代码完全兼容传统 8051。 2)工作频率范围:0-35mhz,相当于普通 8051 的 0-420mhz。 3)用户应用程序空间 8k/16k/20k/32k/40k/48k/52k/60k/62k 字节 4)片上集成 1280 字节 ram。 5)isp(在系统可编程)/iap(在应用可编程),无需专用编程器,无需专用仿真 器可通过串口(p3.0/p3.1)直接下载用户程序,数秒即可完成一片。 6)有 eeprom 功能。 贵州大学本科毕业论文(设计) 第 8 页 7)内部集成 max810 专用复位电路(外部晶体 12m 以下时,复位脚可直接 1k 电阻到地)。 8)16 位定时器 t0/t1,没有定时器 2 但有独立波特率发生器做串行通讯的波特 率发生器。再加上两个 pca 模块可再实现 2 个 16 定时器。 9)a/d 转换,10 位精度 adc,共 8 路,转换速度可达 250k/s。 10)新增支持上升沿中断的 pca 模块。 3.2 sd 卡模块 sd 卡中文翻译为安全数码卡,sd 卡的技术是在 multimedia 卡(mmc)基础上发 展而来的。目前市场上 sd 卡的品牌有很多,诸如:sandisk,kingmax,松下和 kingston。sd 卡最大的特点就是通过加密功能,可以保证数据资料的安全保密。 图 3.3 sd 卡实物图 贵州大学本科毕业论文(设计) 第 9 页 3.2.1sd 卡结构与接口定义 图 3.4 sd 卡结构图 图 3.5 sd 接口与定义 贵州大学本科毕业论文(设计) 第 10 页 图 3.6 sd 卡的引脚定义 sd 卡的驱动有两种模式,sd 模式与 spi 模式。我们在用单片机对 sd 卡进行 驱动的时候,通常使用 spi 模式,一方面是因为 spi 模式接口与操作方法比较简单, 易于实现;另一方面是因为本设计操作的数据量并不是很大,速度并不需要很快。 sd 模式用于数据量比较大,速度要求比较快的应用场合。sd 模式操作起来比较复 杂。sd 卡工作在 spi 模式时,只需要 4 跟信号线,即 cs 片选、din 数据输入、 clk 时钟、dout 数据输出。而且 sd 卡的工作电压在 3.3v。 3.2.2sd 卡读写模块原理电路图 贵州大学本科毕业论文(设计) 第 11 页 图 3.7 sd 卡读写模块电路 图 3.8 单片机 3.3v 分压电路 因为 sd 卡的工作电压需要 3.3v,而我们本设计电路主要采用 5v 供电, 所以需要采用 5v 分压,选取 3.3k 和 1.8k 电阻串联分压提供 3.3v 电压。 贵州大学本科毕业论文(设计) 第 12 页 3.3vs1003 音频解码器模块 vs1003 是芬兰的 vlsi 公司 vsxx 系列的芯片,是一个单片 mp3/wma/midi 音频解码器和 adpcm 编码器。 3.3.1vs1003 基本特性 能解码 mpeg1 和 mpeg2 音频层 iii(cbr+vbr+abr);wma 4.0/4.1/7/8/9 5-384kbps 所有流文件;wmv(pcm+ima ad-pcm);产生 midi/sp-midi 文件 对话筒输入或线路输入的音频信号进行 ima adpcm 编码 支持 mp3 和 wav 流 高低音控制 单时钟操作 12.13mhz 内部 pll 锁相环时钟倍频器 低功耗 内含高性能片上立体声数模转换器,两声道间无相位差 内含能驱动 30 欧负载的耳机驱动器 模拟,数字,i/o 单独供电 为用户代码和数据准备的 5,5kb 片上 ram 串行的控制,数据接口 可被用作微处理器的从机 特殊应用的 spi flash 引导 供调试用途的 uart 接口 3.3.2vs1003 结构框图 贵州大学本科毕业论文(设计) 第 13 页 图 3.9 vs1003 的结构框图 主要功能管脚介绍: xreset: 复位 dreq: 数据请求 xdcs: 数据片选 xcs: 命令片选 sclk: 串行时钟 si: 串行输入 so: 串行输出 micp: 同向差分话筒输入 micn: 同向差分话筒输出 left right: 左右声道 linein: 线入输入 gbuf: 公共地缓冲器 rcap: 基准滤波电容 贵州大学本科毕业论文(设计) 第 14 页 3.3.3vs1003 电路原理图 图 3.10 vs1003 的电路原理图 3.4按键控制 本设计采用按键来实现歌曲的播放功能,增加上一首、下一首、播放、停止、 音量增、音量减等功能,以实现人机交互功能。如图 3.11 所示。 图 3.11 按键部分的电路图 贵州大学本科毕业论文(设计) 第 15 页 3.5 复位电路 在 stc12c5a60s2 单片机中的振荡器运行时,error!引脚上保持到少 2 个机器 周期的高电平输入信号,复位过程即可完成。根据此原理,本设计采用上电复位和 按键复位嵌套在系统中,增强了系统的实用性。本设计具体的复位电路如图 3.12 所 示。 图 3.12 复位电路连接图 3.6 晶振电路 at89s52 在工作时需要外部提供时钟信号,因此,本设计选择在其 18 脚 19 脚 之间接上 22.1184mhz 的晶振,为单片机提供机器振荡周期,并且方便使用串口助手 调试模块电路的基本功能。其电路连接图如图 3.13 所示。在图中,电容器 1c2,1c3 起稳定振荡频率、快速起振的作用,其电容值一般在 2050pf。 贵州大学本科毕业论文(设计) 第 16 页 图 3.13 晶振电路连接图 贵州大学本科毕业论文(设计) 第 17 页 贵州大学本科毕业论文(设计) 第 18 页 第四章 系统的软件设计 4.1 程序设计框架 4.2 znfat 系统模块介绍 4.2.1 文件系统 什么是文件系统?具体来说,文件系统为用户与存储设备的底层硬件交互抽象 出来的一种操作接口,它负责为用户建立文件,存入、读出、修改、转储文件,控 制文件的读取,给用户提供了一种机制,方便用户很简便的操作文件以及快速简洁 的找到磁盘上的位置,而且不用理会底层实现的复杂机制。 如果有了文件系统,我们就可以将数据组织为一个文件,给这些数据起一个名 字(文件名),通过这个名字就可以访问这些数据。文件系统会根据文件名为我们 找到数据在磁盘中的位置。 4.2.2 fat32 文件系统 图 4.1 fat32 文件系统整体概述 贵州大学本科毕业论文(设计) 第 19 页 mbr(master boot record)区 计算机在按下 power 键以后,开始执行主板 bios 程序。进行完一系列检测和配 置以后。开始按 bios 中设定的系统引导顺序引导系统。假定现在是硬盘。bios 执 行完自己的程序后如何把执行权交给硬盘呢。交给硬盘后又执行存储在哪里的程序 呢。其实,称为 mbr 的一段代码起着举足轻重的作用。mbr(master boot record), 即主引导记录,有时也称主引导扇区。位于整个硬盘的 0 柱面 0 磁头 1 扇区(可以看 作是硬盘的第一个扇区)。 mbr 不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的 mbr, 即使不同,mbr 也不会夹带操作系统的性质。具有公共引导的特性。 dbr (dos boot record)区 dbr 区(dos boot record)即操作系统引导记录区的意思,通常占用分区的第 0 扇区共 512 个字节(特殊情况也要占用其它保留扇区,我们先说第 0 扇)。在这 512 个字节中,其实又是由跳转指令,厂商标志和操作系统版本号,bpb(bios parameter block),扩展 bpb,os 引导程序,结束标志几部分组成。 fat allocation table(文件分配表) 它的作用是记录硬盘中有关文件如何被分散存储在不同扇区的信息。同 fat16 相比,fat32 主要具有以下特点: (1) 同 fat16 相比 fat32 最大的优点是可以支持的磁盘大小达到 2tb(2047gb),但是不能支持小于 512mb 的分区。基于 fat32 的 win 2000 可以支 持分区最大为 32gb;而基于 fat16 的 win 2000 支持的分区最大为 4gb。 (2) 由于采用了更小的簇,fat32 文件系统可以更有效率地保存信息。如两个 分区大小都为 2gb,一个分区采用了 fat16 文件系统,另一个分区采用了 fat32 文 件系统。采用 fat16 的分区的簇大小为 32kb,而 fat32 分区的簇只有 4kb 的大小。 这样 fat32 就比 fat16 的存储效率要高很多,通常情况下可以提高 15%。 (3) fat32 文件系统可以重新定位根目录和使用fat 的备份副本。另外 fat32 分区的启动记录被包含在一个含有关键数据的结构中,减少了计算机系统 崩溃的可能性。 保留扇区 贵州大学本科毕业论文(设计) 第 20 页 fat32 中的保留扇区除了磁盘总第 0 扇区用作 dbr,总第 2 扇区(win98 系统)或 总第 0xc 扇区(win2000,winxp)用作 os 引导代码扩展部分外,其余扇区都不参与操 作系统管理与磁盘数据管理,通常情况下是没作用的。操作系统之所以在 fat32 中 设置保留扇区,是为了对 dbr 作备份或留待以后升级时用。fat32 中,dbr 偏移 0x34 占 2 字节的数据指明了 dbr 备份扇区所在,一般为 0x06,即第 6 扇区。当 fat32 分区 dbr 扇区被破坏导致分区无法访问时。可以用第 6 扇区的原备份替换第 0 扇区来找回数据。 簇 fat32 文件系统中簇是存取数据的最小单元!哪怕一个文件的数据量只有一个 字节,它也会占用一个簇,而这个簇的空闲空间不能再被其他文件的数据占用! 4.2.3 znfat 文件系统 znfat 是由振南开创的用于单片机、arm、dsp 等微处理器的,与 fat32 文件 系统相兼容的,占用硬件资源极低的,应用和移植较为方便的,功能较为完备的嵌 入式文件系统解决方案。 图 4.2 znfat 的功能图 通过简单的移植,使 znfat 与格式化为 fat32 文件系统的 sd 卡底层驱动结合起 来,抽象出图 4.2 中的功能函数,实现对 sd 卡的操作。图 4.3 是 znfat 的接口函数: 贵州大学本科毕业论文(设计) 第 21 页 图 4.3 znfat 接口函数 简单介绍一下本系统采用的几个 znfat 的接口函数: 在使用 znfat 其他函数之前,必须对存储设备进行初始化 znfat_device_init()。 函数实现如下: void znfat_device_init() sd_reset(); sd_init(); 在对存储设备进行初始化之后,还需要调用 znfat_init()对文件系统初始化,将 很多参数信息装入到 arg 指向的结构体中,比如扇区大小、根目录的位置、fat 表大小等等。这些参数绝大部分是来自于 dbr 的 bpb 中,因此此函数主要在 作对 dbr 的参数解析。函数实现如下: void znfat_init(void) struct znfat_bpb *bpb; 贵州大学本科毕业论文(设计) 第 22 页 bpb=(struct znfat_bpb *)(znfat_buffer); /将数据缓冲区指针转 为 struct znfat_bpb 型指针 parg-dev_no=dev_no; /装入设备号 parg-bpb_sector_no =znfat_find_dbr(); /znfat_findbpb() 可以返回 bpb 所在的扇区号 znfat_readsector(parg-bpb_sector_no,znfat_buffer); parg-fatsectors =le2be(bpb-bpb_fatsz32) ,4);/装入 fat 表占用的 扇区数到 fatsectors 中 parg-firstdirclust =le2be(bpb-bpb_rootclus) ,4);/装入根目录簇号到 firstdirclust 中 parg-bytespersector =le2be(bpb-bpb_bytespersec),2);/装入每扇区字节数到 bytespersector 中 parg-sectorsperclust =le2be(bpb-bpb_secperclus) ,1);/装入每簇扇区数到 sectorsperclust 中 parg-firstfatsector =le2be(bpb-bpb_rsvdseccnt) ,2)+parg- bpb_sector_no;/装入第一个 fat 表扇区号到 firstfatsector 中 parg-firstdirsector =(parg-firstfatsector)+(bpb-bpb_numfats0)*(parg- fatsectors); /装入第一个目录扇区到 firstdirsector 中 parg-total_size =le2be(bpb-bpb_totsec32),4)*parg-bytespersector; /磁盘的总容量,单位是字节 temp_last_cluster=search_last_usable_cluster(); 打开一个文件(支持文件名通配,如 a*.txt 或*.*),uint8 znfat_open_file(struct fileinfostruct *pfi,const int8 *filepath, uint32 item,uint8 is_file) uint8 znfat_readsector(uint32 addr,uint8 *buf) znfat 的存储设备底层驱动 接口,读取存储设备的 addr 扇区的 512 个字节的数据放入 buf 数据缓冲区中。 贵州大学本科毕业论文(设计) 第 23 页 4.3 sd 卡驱动程序设计 sd 卡拥有 sd 和 spi 两种工作模式,相对于 sd 模式,spi(同步串行传输)模式 可以简化主机设计,降低成本。并且大部分微处理器都有 spi 模式,即使没有 spi 模式的微处理器,也可以通过软件来模拟 spi。 本设计因为微处理器没有 spi 模式,所以也采用软件来模拟 spi 与 sd 卡进行 通信。如图 4.4: 图 4.4 sd 卡数据通信方式 4.3.1 spi 通信协议概述 spi(serial peripheral interface)的原意是串行外围设备接口。是 motorola 首先在 其 mc68hcxx 系列处理器上定义的。spi 接口主要应用在 eeprom,flash ,实时时钟, ad 转换器,还有数字信号处理器和数字信号解码器之间。spi,是一种高速的,全双工, 同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 pcb 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集 成了这种通信协议。 spi 总线系统是一种同步串行外设接口,它可以使 mcu 与各种外围设备以串行 方式进行通信以交换信息。外围设置 flash ram、网络控制器、lcd 显示驱动器、 a/d 转换器和 mcu 等。spi 总线系统可直接与各个厂家生产的多种标准外围器件直 接接口,该接口一般使用 4 条线:串行时钟线(sck)、主机输入/从机输出数据线 miso、主机输出/从机输入数据线 mosi 和低电平有效的从机选择线 ss(有的 spi 接 口芯片带有中断信号线 int 或 int、有的 spi 接口芯片没有主机输出/从机输入数据 线 mosi)。 贵州大学本科毕业论文(设计) 第 24 页 spi 的通信原理也比较简单,它以主从方式工作,这种模式通常有一个主设备 和一个或多个从设备,需要至少 4 根线,事实上 3 根也可以(单向传输时)。也是 所有基于 spi 的设备共有的,它们是 sdi(数据输入),sdo(数据输出),sck(时钟), cs(片选)。 对于不带 spi 串行总线接口的 stc12c5a60s2 单片机来说,也可以采用 i/o 口 来模拟 spi 通信。如图 4.5: 图 4.5 模拟 spi 总线接口图 p1.1 模拟 mcu 的数据输出端(mosi),p1.2 模拟 spi 的数据输入端(miso), p1.0 模拟 spi 的 sck 输出端,p0.7 模拟 spi 的从机选择端。对于下降沿输入、上升 沿输出的各种外围串行外围接口芯片,只要改变 p1.0 的输出电平顺序就可以模拟出 spi 的操作。 4.3.2 sd 卡的驱动 图 4.6 命令格式 例如 cmd0(命令 0)的格式为:0x40(命令) 0x00 0x00 0x00 0x00(参数) 0x95(crc)。 sd 卡的主要功能操作有 复位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论