资料库

基于ARM的SD卡文件系统设计.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
2009 年第 07 期,第 42 卷 通 信 技 术 Vol.42,No.07,2009 总第 211 期 Communications Technology No.211,Totally 基于 ARM 的 SD 卡文件系统设计 孟惠霞, 吕书勇 (济源职业技术学院,河南 济源 454650) 【摘 要】ARM 以其高性能、低功耗、易扩展的特点成为了嵌入式系统全球领先的 16/32 位 RISC 微处理器内核。但由于 嵌入式系统中数据量的增加,对存储设备的要求也越来越高。在众多存储卡中,SD 卡占有越来越多的市场份额。文中介绍了 基于 ARM7 平台设计的 SD 卡读写系统,包括 SD 卡与 LPC2292 的硬件接口电路设计及相应的软件程序设计。 【关键词】嵌入式系统;ARM 处理器;SD 卡;FAT16 文件系统 【中图分类号】TP393 【文献标识码】A 【文章编号】1002-0802(2009)07-0135-02 Design of ARM-based SD Card File System MENG Hui-xia, LV Shu-yong (Jiyuan Vocational and Technical College, Jiyuan Henan 454650,China) 【Abstract】ARM, with its high performance, low power consumption, and flexible extension, is particularly suitable for designing embedded systems. With the increase of data in embedded systems, the requirement of storage device is even higher. Of the most flash memory cards, the SD card occupies more and more market quotas in the application. Based on the platform of ARM7, a SD card file system is designed, including the interface between LPC2292 and SD card and corresponding software system. 【Key words】embedded system;ARM;SD card;FAT16 file system 0 引言 随着微控制器性能的不断提高,嵌入式系统应用越来越 广泛。特别是 32 位的 ARM 出现以后,使得在一个低成本、 微功耗的嵌入式系统可以实现语音处理、图像处理、网络处 [1] 理等功能 储提出了更高的要求。 ,而这些技术的进步也对嵌入式系统中的文件存 近年来,以 Flash Memory 为存储体的各种存储卡以其特 有的体积小、功耗低、高可靠、可擦写、非易失性等特点, 在嵌入式系统中得到了广泛的应用。目前应用的主流存储卡 有 CF 卡 (Compact Flash Card)、MMC 卡(Multi Media Card)、 Memory Stick(记忆棒)、SD 卡(Secure Digital Card)等。由于 分别由多家不同的公司研制生产,互不兼容。其中 SD 卡以 其大容量、高性能、尤其是安全等多种特点,在应用中占有 了越来越多的市场份额,于是在嵌入式环境中进行大容量的 数据存储设计时,SD 卡就成为了存储卡的首选 。 [2] 1 系统硬件设计 系统整体设计的结构框图如下页图 1 所示,系统的 CPU 采 用 Philips 公 司 的 LPC2292 芯 片 , 它 是 一 款 基 于 ARM7TDMI-S CPU 的微控制器,144 脚封装,通过片内 PLL 可实现最大为 60 MHz 的 CPU 的操作频率,具有极低的功耗, 可使用的 GPIO 高达 76~112 个。提供了多个串行接口,其中 就有 2 个 SPI 接口 [3] 。LPC2292 是整个系统的核心控制器。 1.1 电源和复位电路设计 由于 LPC2292 芯片需要双电源,因此系统使用的是 3.3 V 的 I/O 通道电源和 1.8 V 的内核电源,内核的 1.8 V 电源是通 过线形稳压芯片 TPS79318 直接从 3.3V 电源上获得的。 本设计根据 ARM 芯片的高速、低功耗、低工作电压导 致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的 稳定性、电源监控可靠性等诸多方面要求高的特点,设计使 用带有备用电池控制器和片选控制的专用低功耗微处理器 收稿日期:2009-01-04。 作者简介:孟惠霞(1958-)女,讲师,主要研究方向为电工电子技术、单片机应用;吕书勇(1975-),男,硕士,讲师,主要从事电子技术 方面的研究工作。 135
电源监控芯片 MAX6365PKA29。 得 SD 卡响应的接口函数。通过这些基本的底层驱动接口程 JTAG 电路 序,配合 SD 卡命令,就可以完成基本的 SD 卡操作。 CPU SRAM 接口电路 FLASH 存储器 接口电路 时钟电路 扩展槽 2.2 文件系统设计 FAT 格式的文件系统是 MS-DOS 采用的文件系统组织形 式,它采用索引的连接表分配方法来分配和管理文件系统。 FAT16 是指文件分配表使用 16 位数字。16 位分配表最多能 管理 65536(2 的 16 次方)个簇,即所规定的一个逻辑盘的 总簇数。 本次文件系统设计使用的是 ZLG/FS 文件系统。ZLG/FS 是一个可移植到不同 CPU 上运行的文件系统管理软件包[6]。 它支持 FAT12、FAT16、FAT32 文件系统。 文件系统 ZLG/FS 中,各种文件操作的函数是用户可以 直接调用的。 (1) 初始化。用户程序必须先初始化文件操作模块才能 使用,这是通过调用函数 File Init()实现的。函数功能是将已 打开文件信息表的各项设置设为空闲; (2) 打开文件。打开文件命令有两个参数,第 1 个参数 Dir File Name 是指向文件名字符串的指针,字符串可以包含 驱动器和目录,但不能包含通配符。第二参数 Type 表示文 件的打开方式,目前版本可以为“R”(只读方式) 、“W”(只 写方式)、“RW”和“WR”。“RW”和“WR”都是以读/写方式打 开文件,与只写方式不同,若文件已经存在,则不会被删除 儿直接被打开; (3) 从文件中读数据。ZLG/FS 提供两个函数从文件中 读取数据,其中函数 FileGetCh()为从文件中读取 1 个字节数 据,而函数 FileRead()为一次从文件中读取多个字节数据。 函数 FileGetCh()有两个参数,其中 Ch 为一个指针,读到的 字节数据就存储到它指向的位置。而 Handle 为文件句柄,用 来指示需要操作的文件; (4) 把数据写入文件。ZLG/FS 提供两个函数向文件中 写入数据,函数 File Put Ch()作用是写 1 个字节到指定文件, 还可以通过调用函数 File Write()一次写入多个数据到指定文 件中。函数 File Write()有 3 个参数,其中第 1 个参数 Buf 为 要写入文件的源数据指针。第 2 个参数 Size 为需要读取的字 节数。第 3 个参数 Handle 为文件句柄,用来指示需要操作的 文件,它应当是先前调用函数 File Open()时的返回值。函数 File Write()的返回值是真实写到文件中的字节数目。 (5) 移动文件读/写位置。ZLG/FS 提供函数 File Seek() 用来移动文件的内部指针,它将影响再次读/写文件时的位 置。函数 File Seek()具有 3 个参数,其中第 1 个参数 Handle 为文件句柄,用来指示需要操作的文件,它应当是先前调用 函数 FileOpen()时的返回值。第 2 个参数 offset 为移动的字节 数(此数是有符号数,为负数时,其移动的方向与其为正数 时的方向相反)。第 3 个参数 Whence 为移动的方式。 3 系统调试 系统通过 Easy JTAG 和调试用的宿主机连接并设置好驱 (下转第 150 页) SD 卡 电源电路 复位电路 图 1 系统硬件框 1.2 时钟和 JATG 接口电路设计 LPC2292 的振荡器支持晶振的范围为 1~30 MHz,而 ARM 处理器时钟频率 CCLK 不同于晶振输出频率范围,必 须连接并运行 PLL。PLL 可以接受范围为 10~25 MHz 的输 入时钟频率,输入频率通过一个电流控制振荡器(CCO)可 以倍增为 10~60 MHz。倍增器可以是从 1 到 32 的整数。 CCO 操作的范围为 156~320 MHz,增加一个分频器,这样 PLL 在提供所需要的输出频率时,使 CCO 保持在其频率范 围内。输出分频器可设置为 2、4、8 或者 16 以产生输出时 钟。PLL 在芯片复位后关闭并且被旁路,可通过软件使能。 PLL 的设置时间为 100 us。 通过 JTAG 接口,可对芯片内部的所有部件进行访问, 因而是开发调试嵌入式系统的一种简洁高效的手段。本设计 中采用的是 20 针 JTAG 接口。 1.3 SD 卡电路设计[4] SD 卡有 9 个引脚,支持两种串行数据传输协议,即 SD 和 SPI(Serial Peripheral Interface)模式,应用中可以任意选 择其中一种,在本次设计中选用 SPI 模式。SD 卡的 SPI 通 道由以下 4 个信号组成:CS(片选)、CLK(时钟)、DataIn(主机 到卡的数据信号)和 Data Out(卡到主机的数据信号)。 LPC2292 包含 2 个 SPI 接口。SPI 是一个全双工的串行 接口,它设计成可以处理在一个给定总线上多个互连的主机 和从机。在一定数据传输过程中,接口上只能有一个主机和 一个从机进行通信。在一次数据传输中,主机总是向从机发 送一个字节数据,而从机也总是向主机发送一个字节数据。 特性:(1)两个完全独立的 SPI 控制器;(2)遵循串行外设 接口(SPI)规范;(3)同步、串行、全双工通信;(4)组合的 SPI 主机和从机;(5)最大数据位速率为输入时钟速率的 1/8。 2 系统软件设计 2.1 基于 μC/OS-II 的底层驱动程序设计 以下是基于 SPI 总线的 SD/MMC 卡底层驱动程序,由于 使用 SPI 总线访问 SD 卡,这种方式和 MMC 卡是兼容的。这 里主要介绍几个重要的底层驱动接口程序[5],分别是:(1) SD 卡的初始化函数。(2)向 SD 卡发送命令的函数。(3)获 136
号耦合,负责信号传输。 管整流桥、滤波电容、三端稳压电源 7812 和 7805 组成。 电源耦合电路,市电能量被电源变压器吸收后经整流电 信号耦合电路,采用变压器耦合。将耦合变压器和高耐 路、滤波电路和稳压电路得到所需的+12 V 和+5 V 直流电源。 压值电容串联,组成高通滤波器,阻止 50 Hz 低频市电信号 其中,整流电路采用整流桥芯片 PB206,滤波电路采用 C 型 滤波。主要器件有工频变压器(220 V/12 V、10 W)、二极 通过,并让高频的扩频信号顺利通过。该电路在变压器二次 侧的信号输入通道接一个起限幅作用的双向稳压管。[4] 3 结语 一步实现商品化、实用化,电力载波技术在传输的速度和传 本文主要的研究工作: 输的容量上将会有很大的发展空间。 a.电力线载波通信的实现。即在家庭内部采用电力线 通信,并利用扩频技术来提高低压电力线通信的抗干扰能 参考文献 力,选定基于 CEBus 协议的 SSCP300 芯片作为自动抄表模块 [1] 刘晓胜,吴乐南,周爽.智能小区系统工程技术导论[M]. 北京:电子 核心,完成了自动抄表模块的设计。 工业出版社,2001. b.自动抄表系统的设计。国内低压电力线干扰比较大, [2] 吕景泉等.楼宇智能化技术[M]. 北京:机械工业出版社,2002. 采用扩频载波方式可以有效解决干扰大的问题,将 SSC P300 [3] 肖晴,鲁鸿雁.家庭网络系统及其实现[J]. 电子技术(上海),2001 载波芯片应用于居民小区的自动抄表系统中,取得了较好的 (04):59-62. 效果。同样这套系统也可以应用于水表和煤气表的抄录中。 [4] 刘敬猛,王田苗等.智能化网络家电控制中电力载波模块的设计[J]. 随着低压电力载波技术的发展,产品的成本将逐步降低,进 自动化与仪器仪表,2002(03):23-25. (上接第 136 页) 动后,就可以在宿主机上进行程序的下载、单步跟踪调试、 全速运行等功 能。Easy JTAG 仿真器是 LPC2000 系列 ARM7 微控制器的 JTAG 仿真器,采用 ARM 公司提出的标 准 20 脚 JTAG 仿真调试接口。本次开发中,当遇到难以直 接通过 VT100 终端判断的错误时,就可以使用这种方法对可 能出现问题的程序段设置断点,进行单步的跟踪,查找错误。 VT100 终端相当于给嵌入式系统扩展了一个键盘和显示 器。通过 VT100 终端,结合相应的终端调试程序,到对 SD 卡中的根目录文件进行读写的运行状态显示,对于 SD 卡的 各种操作能够正常进行。 4 结语 完成文中设计所需要的 ARM 技术以成为当今嵌入式系 统的主流技术之一。采用 RISC 结构的 ARM 体系是目前嵌 入式处理器中比较成功并且有蓬勃生命力的体系结构。随着 据的存储和处理的需求越来越高,因此在微型处理器中进行 存储卡的研究是非常有意义的。 参考文献 [1] 周立功.ARM 微控制器基础与实践[M].北京:北京航空航天大学出版 社,2003. [2] 纪竞舟,付宇卓﹒嵌入式Linux下的MMC/ SD 卡的原理及实现[M]﹒ 上海:上海交通大学芯片与系统研究中心,2005. [3] 吴明晖﹒基于 ARM 的嵌入式系统开发与应用[M]﹒北京:人民邮电出 版社,2004﹒ [4] 孙社文,张铭伯.基于DPS技术和以太网卡的数据传输方案[J].通信 技术,2008 (07):98-99. [5] 侯明,杜奕.基于CAN总线的接口电路[J].通信技术,2008,41(07): 138-139. [6] 王田苗﹒嵌入式系统设计与实例开发[M]﹒北京:清华大学出版社, 微型处理器技术的快速发展,使用微型处理器进行大规模数 2002. 150
分享到:
收藏