首页 » 技术文章 » 基于μcosII的嵌入式文件系统的设计与实现

基于μcosII的嵌入式文件系统的设计与实现

作者:  时间:2010-05-28 13:28  来源:EDN

  前言

  近年来随着数码相机、扫描仪、摄像手机等数码设备的兴起,数字照片成为人们生活中不可缺少的一部分。数码相框作为一种新兴的显示媒介,以它大容量的存储相片的能力,良好的显示效果和多样的功能正越来越迅速的走进千家万户。

  随着国家广电总局推行电视数字化的进程,数字电视全面铺开。本项目的开发正是基于这两种考虑,开发了一种将数码相框和数字电视相融合的产品。

  在这个产品的开发过程中,一个关键性的问题就是为MB86H20B数字电视平台扩展外部存储的功能。本文中提到的基于μcosII嵌入式文件系统的解决方案较好的解决了这一问题。

  嵌入式文件系统硬件连接图

  ISP1160MB86H20B(简称20B)之间的硬件连接图如图1ISP的异步传输端口与20B上的UPIUniversal Peripheral InteRFace)接口相连,这是一种可以配置模式和时序的接口。在此采用了IDE模式,按照ISP1160的时序要求对其进行了配置。ISP116020B上仅仅映射2IO地址,一个为数据端口,一个为命令端口,由A0的高低电平区分[3]

1  DecoderUSB Host Controller连接原理图

  ISP1160上的INT引脚连接到20B外部中断引脚IRQ1。当中断发生时,20B进入中断服务程序,读取ISP1160状态寄存器。这就构成了ISP116020B的数据反馈通路。

  U盘上构建FAT32文件系统

  FAT32文件系统由三部分构成, 这三部分在逻辑盘上的结构如图2[1]所示。

2  FAT32文件系统结构示意图

  DBRDOS Boot Record)包含BIOS参数块和DOS引导程序。在BIOS参数块中包含了每簇扇区数,保留扇区数,隐含扇区数,每FAT扇区数,根目录FDTDATA区的起始位置等重要信息。

  DATA区是从U盘根目录FDTFAT Directory Table)开始的,在根目录下用户可以再创建不同的子目录或文件,根目录以及各个子目录都有自己的FDT FDT 定义了文件名、文件大小以及文件存放的起始簇号。通过各子目录和文件的FDT构成的树形文件索引结构完成对文件的定位。

  物理设备的最小存储单位是Sector(扇区),在DATA区中最小的存储单位是Cluster(簇),在U盘的flash上一般由8Section构成一个Cluster

  由于一个文件往往在DATA区上占用多个簇,FAT32文件系统采用簇链的方式索引一个文件所占用的簇链。FATFile Allocate Table)记录了DATA区哪些簇被使用,当前簇的后继簇簇号[1] 

  4  FAT文件系统的实现

  本文件系统的实现,可以分为USB协议栈和FAT32文件系统为主的四大部分[4]。层次结构关系如图3所示。

软件结构模型

  4.1  协议层的实现

  大容量类设备都可能使用 RBCSFF-8020i/MMC-2QIC-157UFISFF-8070i SCSI 6个命令集。严格来说,大容量类主机端的驱动都应全部支持以上指令集,但实际上常见的大容量设备都使用 SCSI UFI 指令集。SCSI UFI 指令集中常用的命令在大容量类协议中都可兼容。

  U盘的整个文件系统在主机软件的协议层抽象为UFIUSB Floppy Interface)设备,通过含有UFI指令的命令块(Command Block)与U盘通信[5]。这层完成的功能有将文件系统中的操作翻译为UFI指令,UFI指令打包成命令块及其对应的逆向操作。

传输层API函数实现

  4.2  传输层的实现

  传输处理层用于处理命令块,包括主机传输命令块到大容量类设备、主机与大容量设备之间的数据传输和主机接收命令块处理状态。大容量类设备传输协议分为Bulk-Only协议和 CBI-Only协议。该层为命令层提供了命令块处理函数的统一接口,使命令层不需理会当前大容量类设备的传输协议。

  传输层接收由协议层包装好的命令块,根据已注册的Mass Storage Class设备的信息,采用单批量(Bulk Only)传输模式从批量输出端点(Bulk Data Out Endpoint)传输出去。类似,也可以从批量输入端点(Bulk Data In Endpoint)接收数据,向上传递到协议层解析。

相关推荐

Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案

u-blox  嵌入式  Ctrack  2014-05-21

动作撷取追踪的嵌入式体感控制新技术

嵌入式  体感控制  2013-12-06

嵌入式系统的固件更新

嵌入式  Flash  RAM  缓冲区  2013-09-12

汽车电子向一体化集成、网络化与智能化发展

汽车电子  嵌入式  2013-05-23

东芝开发嵌入式SRAM低功耗技术智能手机

东芝  嵌入式  SRAM  2013-02-23

飞思卡尔基于ARM平台全系列MCU引领嵌入式应用新趋势

飞思卡尔  ARM  嵌入式  2013-01-29
在线研讨会
焦点