基于μcosII的嵌入式文件系统的设计与实现 02
![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
基于μcosII的嵌入式文件系统的设计与实现 02
4 FAT文件系统的实现
本文件系统的实现,可以分为USB协议栈和FAT32文件系统为主的四大部分[4]。层次结构关系如图3所示。
![](http://embed.chinaitlab.com/UploadFiles_4615/201005/20100531111219490.jpg)
图3 软件结构模型 4.1 协议层的实现
大容量类设备都可能使用 RBC、SFF-8020i/MMC-2、QIC-157、UFI、SFF-8070i和 SCSI 等 6个命令集。严格来说,大容量类主机端的驱动都应全部支持以上指令集,但实际上常见的大容量设备都使用 SCSI 和 UFI 指令集。SCSI 和 UFI 指令集中常用的命令在大容量类协议中都可兼容。
U盘的整个文件系统在主机软件的协议层抽象为UFI(USB Floppy Interface)设备,通过含有UFI指令的命令块(Command Block)与U盘通信[5]。这层完成的功能有将文件系统中的操作翻译为UFI指令,UFI指令打包成命令块及其对应的逆向操作。
表1 传输层API函数实现 ![](http://embed.chinaitlab.com/UploadFiles_4615/201005/20100531111220359.jpg) 4.2 传输层的实现
传输处理层用于处理命令块,包括主机传输命令块到大容量类设备、主机与大容量设备之间的数据传输和主机接收命令块处理状态。大容量类设备传输协议分为Bulk-Only协议和 CBI-Only协议。该层为命令层提供了命令块处理函数的统一接口,使命令层不需理会当前大容量类设备的传输协议。
传输层接收由协议层包装好的命令块,根据已注册的Mass Storage Class设备的信息,采用单批量(Bulk Only)传输模式从批量输出端点(Bulk Data Out Endpoint)传输出去。类似,也可以从批量输入端点(Bulk Data In Endpoint)接收数据,向上传递到协议层解析。 |
|
|
|
|
|