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

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

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

IDE硬盤的數據傳輸速率可分為外部傳輸率(External Transfer Rate)和內部傳輸率(Internal Transfer Rate)。外部傳輸率指的是通過IDE接口緩存與控制器之間進行數據傳輸的速率。內部傳輸率也稱硬盤持續(xù)傳輸率,是磁盤與緩存之間的數據傳輸速率。后者比前者要慢很多,所以要提高傳輸速度,就要盡量連續(xù)讀寫,減少內部刷寫緩存的次數。
通過研究理論上文件操作的過程發(fā)現,對FAT表的操作大大地影響了對文件的連續(xù)讀寫。在實際程序設計中,為了解決這個問題,一方面在描述文件的數據結構中指定一個成員來記錄當前文件操作指針所在的簇,另一方面把部分FAT表提前讀入SDRAM中。這兩方面的處理大大減少了硬盤連續(xù)讀寫被打斷的次數。實驗證明這種方案大大提高了程序的效率,使速度大約提高了三個數量級。
4.3 功能設計
一組完善的文件系統庫函數是最基本的對文件操作的功能實現函數,應包括文件的打開、關閉、讀、寫、定位等函數。本人設計十個函數供外部調用,即文件的打開、關閉、讀、寫、定位、查找、目錄列表、重命名、創(chuàng)建目錄、刪除等。通過最上層的庫函數調用第二層的具體功能函數來實現這些函數的操作,其中最主要的三個功能函數是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原理與系統開發(fā).北京:電子工業(yè)出版社, 2004





