基于CF卡的特定FAT文件系統的設計與實現
在Nios II上還有另外一個非常重要的概念,即Avalon數據總線結構。Avalon總線是為SOPC環境而設計的,是一種相對簡單的總線結構,主要用于連接片內處理器與外設,以構成SOPC系統,互連邏輯由PLD內部的邏輯單元構成。總線描述了主從設備間的端口連接關系以及設備間通信的時序關系。總線擁有多種傳輸模式,以適應不同外設的要求,其基本的傳輸模式是在一個主外設和一個從外設之間進行單字節、半字或字(8、16或32位)的傳輸。總線設有特定的端口長度對齊功能,使得不同數據端口長度的主從端之間進行傳輸不存在任何問題,更加方便了開發者的使用。此外,利用DMA控制器組件,使得DMA技術可以非常方便地應用于Nios系統。在DMA模式下傳輸數據時,傳輸的數據量越大,則傳輸發起所耗費的運算量則相對越小,傳輸效率也越高。
4、特定FAT32文件系統的結構與實現
為了使用和管理上的方便,將數據信息以文件的形式存放在存儲介質上,加上特有的邏輯組織關系,就構成了文件系統。在PC電腦+Windows操作系統的模式下,最為普遍的就是FAT文件系統。隨著數據量的不斷加大,FAT文件系統也由最初的FAT12發展到了FAT32,最大可以支持4GB的單個文件,理論上最大可以支持2TB的分區。
FAT32文件系統的邏輯結構如圖3所示。由于在FAT32文件系統中,文件存放采用鏈式結構,鏈表存儲在FAT表中,因此實現了文件實際數據的不連續存放(最小存儲單位內是連續的)。雖然這種鏈式結構使得文件在管理操作上實現了動態反復靈活分配存儲空間的目的,但是由于過多的尋址也同時降低了系統對于文件讀寫的性能。在很多實際的測試系統中,數據的實時存
儲性能目標更為重要,因此完全可以將FAT32系統簡化,使得具體的文件數據在用戶數據區中連續存放,而系統在操作文件的時候,只需要獲取文件的第一個數據地址(簇號)以及文件的大小,即可進行連續地址讀寫操作,省去了不斷查找簇鏈的運算開銷。并且,由于實際數據在物理地址上連續存放,更使得DMA可以發揮其特有的優勢,一次性的傳輸數據量可以大大提高,讀寫操作得以更加高效的執行。
在具體的操作上,主要問題在于如何定位文件的第一個數據簇號以及如何獲取文件的大小。作者在Altera公司提供的Nios II IDE編程環境中,采用C語言成功編寫相關程序。程序運行流程如圖4所示。
5、總結
本文給出了一種可以實際應用的基于CF卡的特定簡化版FAT32文件系統,以及該文件系統所應用的硬件平臺。系統存儲介質不僅僅擁有長期保存、便于攜帶的特點,而且通過簡化文件系統結構,提高了數據存儲操作的速率和效率,并且該文件系統完全可以直接被Windows操作系統所識別,方便數據的后續操作處理。
評論