新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于ARM系统硬盘接口的使用和文件管理系统

基于ARM系统硬盘接口的使用和文件管理系统

作者:时间:2011-12-20来源:网络收藏

  3 逻辑映射层控制标准及实现

  3.1 关于FAT 标准

  由于希望 对硬盘的读写操作能与主流操作共享, 该部分软件是根据与W indow s 相兼容的FA T 标准进行编制。用户也可以根据实际情况, 把该设计思路推广到如L inux 下的EX2 等其它工作平台。

  FA T 标准对硬盘逻辑结构作了划分, 主要有分区表、BPB 表、FA T 表、数据区等几部分。在硬盘格式化和分区后, 会在0 柱面0 磁头1 扇区建立分区表, 此表记载了硬盘在各分区起始和结束所使用的磁头、柱面、扇区号。对于每个分区, 逻辑0 扇区存放了一个BPB 表, 该表储存了整个文件关键的数据, 包括文件系统的类型, 每个扇区的字节数(Byte2PerSec ) , 每簇的扇区数(SecPerClu s) , 保留扇区数(R svdSecCn t) , FA T 表数目(N umFA T s) , 根目录起始簇(Roo tClu s) , 以及盘符和卷标等。其中簇(Clu STer) 是文件系统在效率原则下管理的最小单位, FA T 32 标准意味着每簇有8 扇区, 簇内存贮单元采用32 位二进制数。文件系统类型还可以使用FA T 12 和FA T 16 标准, 表示簇内存贮单元分别采用12 位和16 位二进制数。在格式化硬盘时, 依据硬盘簇的数目判断选用哪种文件系统标准, 若簇数小于4085 则是FA T 12, 若在4085 和65525 之间则是FA T 16, 大于65525 则是FA T 32。由于本文所述的系统使用大容量硬盘, 因而采用FA T 32 文件系统。

  在原理上, FA T 32 和其它两种方式是相同的, 完全可以移植过去。保留扇区是为BPB 表以后扩展保留一段区间, 暂且未被使用。

  3.2 关于FAT 表

  FA T 表实质上是一系列存放着数据的链接表。

  对于FA T 32 来说, 每四个字节(32b it) 对应硬盘数据区上的一个簇, 它们的数值是当前文件下一个簇的指针。如果这四个字节大于0x0FFFFFF8, 则表示当前文件在该簇内结束。若是0x00 则表示该簇是空的, 没有存放数据, 而0xFFFFFF7 表示这个簇已经损坏。采用这种方法, 在存取数据时只需沿着链接表寻址就行了, 不需按顺序存取, 也不会因删除文件造成磁盘碎片。FA T 表的大小是根据磁盘容量也就是簇的数量来决定, 不同磁盘FA T 表的大小不同。

  出于可靠性考虑, FA T 表一般都要冗余它的备份,冗余数量由BPB 表的N umFA T s 来定, 通常为2。

  这样在突然断电等意外情况下, 可以根据备份的FA T 表进行修复。

  3.3 硬盘数据区

  FA T 表之后是硬盘的数据区, 其开始是根目录(ROO T D irecto ry) , 此处存放了FA T 表根目录下的文件与子目录。存放格式有两种, 一种是长文件名, 一种是短文件名(标准的813 格式) , 通过数据中的特征位能分辨出来。长文件名和短文件名格式见参考文献, 它包含了文件的名字、属性、大小、起始簇数、建立及写操作的时间。实际上子目录的信息也被当作一个文件存储在根目录区, 只是它的属性为目录, 大小为0。同样, 子目录起始簇内存放了该目录下文件和子目录的信息表。依据这些信息, 可以在FA T 表找到该文件的链接表, 执行对整个文件相应操作。

  3.4 资源共享的实现

  对于不同的文字平台, 为能够实现资源共享, 采用UN ICODE 来存储文件名。在长文件名中, 每个字符都是用16b it s 的UN ICODE 来表示的, 而在短文件名中, 采用用户自定义的类型, 例如在简体中文W indow s 下, 采用A SC? 码和GB2312 码。通过U 2N ICODE 与其它码表对比查找程序, 用户可以在自己期望的文字平台上进行操作。

  图3 是读取一个文件的流程, 写文件的方法和读文件相类似, 只要注意在目录里建立文件时, 先把数据写入空白簇后再把FA T 表更新, 其中包括更新备份部分。

  逻辑映射层程序流程

  4 结束语

  笔者通过U SB 接口使用S3C44B0X 中 7TDM I 微处理器对20GB 以上的硬盘进行接口连接及控制, 用FA T 32 文件系统对硬盘进行数据管理, 多个大容量硬盘除了在 系统能正常工作外, 在W IN 98/2000/XP 操作系统支持下的PC机上, 均能实现数据资源共享。基于ARM 系统大容量硬盘管理与控制系统, 目前正被使用到远程电力网数据检测系统之中, 为嵌入式系统海量数据存储提供一种新的设计思路。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭