《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于Blackfin處理器實現對硬盤FAT32文件系統的操作

基于Blackfin處理器實現對硬盤FAT32文件系統的操作

2008-07-24
作者:周 斌1, 景 霓2

  摘 要: 利用當今普遍使用的大容量" title="大容量">大容量存儲設備IDE硬盤以及高性能和高兼容性的FAT32文件系統" title="文件系統">文件系統可以實現大數據量媒體數據的存儲和管理。介紹了一種基于Blackfin533處理器實現對IDE硬盤的FAT32文件系統的操作的方法。
  關鍵詞: Blackfin533 IDE FAT32


  Blackfin處理器是美國 Analog Devices公司推出的專為滿足當今嵌入式音頻、視頻和通信應用的計算要求和功耗約束條件而設計的新型嵌入式處理器。當Blackfin用于音視頻的處理時,大數據量媒體數據的存儲和管理便成為一個關鍵問題。在處理大容量數據存儲的方案中,使用最為普遍的便是IDE硬盤。而針對文件的管理,由于FAT32文件系統在大容量文件分區管理方面具有很高的性能,而且可以在大多數操作系統中被識別,因此具有很高的兼容性。所以IDE硬盤加上FAT32文件系統可以作為嵌入式系統大容量文件存儲管理的理想方案。本文主要闡述此方案基于Blackfin533處理器的硬件和軟件實現。硬件部分為基于ADSP-BF533 EZKIT Lite評估板" title="評估板">評估板設計的IDE接口擴展板;軟件部分包括基于擴展板和VisualDSP++" title="VisualDSP++">VisualDSP++ IDDE開發的IDE接口驅動程序和FAT32文件系統操作函數。
1 IDE硬盤原理
1.1 IDE硬盤的尋址

  硬盤的存儲結構如圖1所示。


  它的基本存儲單元叫作扇區(Sector),除此之外。硬盤還有兩個重要的組成部分就是磁頭(Head)和柱面(Cylinder),它們共同組成硬盤的尋址空間,其地址被稱為物理地址。顯然,物理地址尋址方式不夠直觀、現在的大多數硬盤都支持另外一種尋址方式,其地址被稱為邏輯地址(LBA),它把扇區順序編號,不必再考慮C、H、S等參數。LBA和C、H、S的換算關系如下:
 ?。絅H×NS×C+NS×H+S-1;
  C=(LBA div NS)div NH;
  H=(LBA div NS)mod NH;
  S=(LBA mod NS)+1
  NH表示每個柱面的磁頭數,NS表示每個磁道的扇區數,C表示柱面數[1]
1.2 硬盤的引導原理
  硬盤分區的引導原理如圖2所示。


  硬盤的第一個扇區(0柱面,0磁頭,1扇區)被稱作主引導扇區——MBR(Master Boot Record)。在MBR中,主要內容就是引導代碼和主分區表。主分區表只有四個分區表項,它們可以直接描述分區,也可以通過擴展分區表進行擴展[2]。
  這種引導組織形式是與文件系統完全無關的,在每一個分區內,使用者可以根據自己的需要安裝任意的文件系統。但使用何種文件系統要在響應的分區表項內作記錄。
2 FAT32文件系統概述[2][4]
2.1 FAT文件系統

  FAT(File Allocation Table)文件系統是微軟在20世紀70年代末到80年代初發布的,由微軟的MS-DOS操作系統支持。在發展的過程中,出現了FAT12、FAT16、FAT32三個版本,其中,FAT12文件系統由于具有一些致命的缺點,很早就被FAT16取代了,而FAT16和FAT32目前還在廣泛使用。表1是三種文件系統的對比。


  FAT文件系統的原理可以簡單地描述為把存儲空間分塊映射到一個表中,從而實現對存儲空間的靈活支配。存儲空間中的每一個塊被稱作簇,存儲空間的映射表被稱作FAT表。三種FAT文件系統的一個明顯區別就是FAT表中表示一個簇所用的位數不同,分別是12、16和32。文件的存儲是不必連續的,但在FAT表中可用鏈表的形式把文件聯系在一起,如圖3所示。


  由于FAT文件系統目前在大部分操作系統上都給予了支持,而且實現起來簡單,所以是理想的嵌入式系統大容量存儲文件管理方案。
2.2 FAT32文件系統
  由于FAT16文件系統在大容量分區管理方面的效率急劇下降,而FAT32文件系統卻很好地解決了這個問題,所以在大分區管理方面,FAT32是理想的文件系統。


  FAT32文件系統在結構上延續了FAT文件系統的基本結構,如圖4所示,主要由以下三部分組成:
  (1) DBR(Dos Boot Record),包括跳轉指令、廠商標志、os版本號,BPB(Bios Parameter Block)、擴展BPB、引導程序和結束符;
  (2) FAT表,實際數據存儲空間的映射表,FAT1和FAT2完全一致,后者作為前者的備份;
  (3) 實際數據存儲空間,相比FAT16,從簇2不再有專門的根目錄空間,而是把根目錄也當作一個特殊的文件來處理,起始簇是2。
2.3 FAT32文件系統對文件的管理
  除了根目錄的所有文件(子目錄也作為一種特殊的文件存在)都對應一組數據作為文件描述,被稱為文件目錄項。每個目錄內的所有文件和子目錄的文件目錄項都存儲在這個目錄對應的存儲空間內,每一個文件目錄項有32個字節,主要包括文件名、文件屬性、文件大小、文件存儲位置以及一系列的時間描述等。 把文件路徑、文件目錄項、FAT表聯系在一起就可以完全把握一個文件在硬盤的存儲情況。圖5所示是一個例子,通過下面的步驟定位文件的所有內容:
  (1) 通過路徑找到文件所在目錄的簇(a)。
  (2) 在目錄對應的空間(c)內比對文件名,找到文件對應的文件目錄項(d)。
  (3) 通過文件目錄項確定文件的起始簇和文件大小。
  (4) 根據FAT表內的簇鏈(b)確定文件的存儲空間(e)。


3 IDE硬盤接口設計
3.1 ADSP-BF533 EZKIT Lite評估板簡介[5]

  Blackfin533是美國Analog Devices公司開發的具有MISC體系的微處理器。這種體系是同時具有RISC指令集和DSP內核的一個集合,所以Blackfin533既可以作為通用嵌入式微處理器進行開發應用,又具有強大的DSP數據處理能力。
  ADSP-BF533 EZKIT Lite是Analog Devices公司為方便Blackfin533的開發應用而提供的評估板。它可以與PC機通過USB或者PCI接口的仿真器進行調試,操作使用簡單方便。評估板的核心是一片Blackfin533處理器,輸入頻率是27MHz,可以通過內部PLL控制工作在所需的工作頻率上,最高可達750MHz。
  ADSP-BF533 EZKIT Lite評估板的片上資源非常豐富。有32M SDRAM(16M×16bit)、2M Flash(512K×16bit×2);通過AD1836音頻處理芯片提供了四路音頻輸入和六路音頻輸出端口;通過ADV7183視頻解碼芯片和ADV7171視頻編碼芯片分別提供了三路視頻輸入和視頻輸出端口;此外,評估板還提供了UART、JTAG、按鈕電路和LED指示等設備,尤其是提供了一組功能齊全的擴展接口便于其它設備的接入。IDE接口電路就是在這組擴展接口的基礎上設計的。
3.2 硬件設計
  IDE接口擴展板的設計是基于Blackfin533芯片的EBIU(External Bus Interface Unit)設計的。
  EBIU是Blackfin533與外部存儲器之間的一個通用外部總線接口,通過對EBIU控制寄存器的設置,既可以連接SDRAM等同步存儲器,也可以連接ROM、FIFOs、Flash等異步存儲器。EBIU內部結構如圖6所示。


  按照ATAPI協議[3]在EBIU的基礎上設計了IDE接口方案,使Blackfin533可以通過這一接口實現對硬盤的操作,如圖7所示。


4 FAT32文件系統軟件設計
  FAT32文件系統接口程序是在VisualDSP++ 3.5集成編譯環境下編寫和調試的。程序用標準C語言編寫,調用關系分為五個層次,如表2所示。


4.1 Visual DSP++3.5集成編譯環境[6]
  Visual DSP++ 3.5是Analog Devices公司為其DSP而開發的一套方便的管理系統,完整的系統包括集成了Visual DSP++內核的集成編譯和調試環境、帶實時運行庫的C/C++優化編譯器、匯編和鏈接器和仿真軟件以及大量的程序例程。VisualDSP++還有很多有用的功能,可以使開發人員更準確地把握程序占用內部資源的情況,更直觀地了解程序內部各函數的效率等等,這樣在Visual DSP++這個軟件平臺上就可以方便地進行DSP程序的開發和優化。
4.2 文件讀寫策略優化
  FAT32文件系統底層驅動函數決定文件讀寫的策略,是提高程序讀寫文件速度的關鍵。理論上FAT32文件系統可以按照如圖8所示的方式對文件的任意內容進行操作。但是這個操作是要針對IDE硬盤進行的,所以必須考慮IDE硬盤的數據傳輸特性。


  IDE硬盤的數據傳輸速率可分為外部傳輸率" title="傳輸率">傳輸率(External Transfer Rate)和內部傳輸率(Internal Transfer Rate)。外部傳輸率指的是通過IDE接口緩存與控制器之間進行數據傳輸的速率。內部傳輸率也稱硬盤持續傳輸率,是磁盤與緩存之間的數據傳輸速率。后者比前者要慢很多,所以要提高傳輸速度,就要盡量連續讀寫,減少內部刷寫緩存的次數。
  通過研究理論上文件操作的過程發現,對FAT表的操作大大地影響了對文件的連續讀寫。在實際程序設計中,為了解決這個問題,一方面在描述文件的數據結構中指定一個成員來記錄當前文件操作指針所在的簇,另一方面把部分FAT表提前讀入SDRAM中。這兩方面的處理大大減少了硬盤連續讀寫被打斷的次數。實驗證明這種方案大大提高了程序的效率,使速度大約提高了三個數量級。
4.3 功能設計
  一組完善的文件系統庫函數是最基本的對文件操作的功能實現函數,應包括文件的打開、關閉、讀、寫、定位等函數。本人設計十個函數供外部調用,即文件的打開、關閉、讀、寫、定位、查找、目錄列表、重命名、創建目錄、刪除等。通過最上層的庫函數調用第二層的具體功能函數來實現這些函數的操作,其中最主要的三個功能函數是fnFindFile、fnReadFile、fnWriteFile。
  fnFindFile的功能是在指定目錄下查找和目標文件名相匹配的文件目錄項,生成這個文件的指針,流程圖如圖9所示。
  fnReadFile函數是讀文件函數。它的參數包括要讀入的地址、要讀入數據的單位尺寸、要讀入數據的長度和目標文件的文件指針,流程圖如圖10所示。

?


  fnWriteFile函數是寫文件函數。它的參數和基本流程和讀文件函數類似,但是由于寫文件可能會超過原文件大小,所以必須考慮在硬盤上開辟新的空間和修改文件信息等問題,流程圖如圖11所示。


  本文介紹了一種基于Blackfin533處理器實現IDE硬盤的FAT32文件系統的操作的方案。這套系統是基于硬盤PIO傳輸模式設計的,硬盤PIO傳輸模式最大傳輸速度可達到8.3MByte/s,本系統讀文件速度平均可達6MByte/s,這說明本系統具有較高的效率。這套系統可以在VisualDSP++ 3.5下編譯成庫,其它程序可以很簡單地調用庫中提供的FAT32文件系統操作函數,實現一種基于Blackfin533處理器的嵌入式大容量文件存儲管理的解決方案。


參考文獻
1 IDE - Hardware Reference & Information Document. http://www.repairfaq.org/filipg/LINK/F_IDE-tech.html, 1996.11.6
2 FAT文件系統原理(一)(二)(三)(四).http://www.sjhf.net, 2004-04-20
3 Information Technology -AT Attachment with Packet Interface Extension (ATA/ATAPI-4), T13,Revision 18,19 August 1998
4 Microsoft Extensible Firmware Initiative FAT32 File System Specification(Version 1.03). Microsoft Corporation, December 6, 2000
5 ADSP-BF533 EZ-KIT Late(r) Evaluation System Manual. Analog Device Inc,2000
6 劉 峰. Blackfin系列DSP原理與系統開發.北京:電子工業出版社, 2004

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 成人国产一区二区 | 精品国产系列在线观看 | 99久久精品自在自看国产 | 男人女人的免费视频网站 | 99视频在线看 | 国产一级电影 | 伊人网综合在线观看 | 99久久亚洲 | 国产免费一级片 | 色爱综合网欧美 | 999福利视频 | 九九视频在线免费观看 | 91国偷自产一区二区三区蜜臀 | 天天插狠狠干 | 男人天堂一区 | 国产精品v欧美精品v日本精 | 久久精品播放 | 一级片短视频 | 99视频精品在线 | 成人毛片免费视频 | 成人黄色在线电影 | 久久精品视频9 | 日韩欧美高清在线 | 青青草久久伊人 | 国产免费观看网站 | 国产免费一区2区3区4区 | 色中色综合网 | 99爱视频免费高清在线观看 | 辘轳女人和井电视剧全集播放 | 久草视频在线资源 | 日韩午夜| 高清欧美不卡一区二区三区 | 免费网站视频 | 国产精品久久久久久久久久久不卡 | gogogo高清在线观看 | 99视频精品全部 在线 | 国产成人精品电影在线观看18 | 欧美精品久久久久久久影视 | 欧美性生活网站 | 青青青青久久精品国产h | 91丁香亚洲综合社区 |