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

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

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

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


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

本文介紹了一種基于Blackfin533處理器實現(xiàn)IDE硬盤的FAT32文件系統(tǒng)的操作的方案。這套系統(tǒng)是基于硬盤PIO傳輸模式設(shè)計的,硬盤PIO傳輸模式最大傳輸速度可達到8.3MByte/s,本系統(tǒng)讀文件速度平均可達6MByte/s,這說明本系統(tǒng)具有較高的效率。這套系統(tǒng)可以在VisualDSP++ 3.5下編譯成庫,其它程序可以很簡單地調(diào)用庫中提供的FAT32文件系統(tǒng)操作函數(shù),實現(xiàn)一種基于Blackfin533處理器的嵌入式大容量文件存儲管理的解決方案。
參考文獻
1 IDE - Hardware Reference & Information Document. http://www.repairfaq.org/filipg/LINK/F_IDE-tech.html, 1996.11.6
2 FAT文件系統(tǒng)原理(一)(二)(三)(四).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原理與系統(tǒng)開發(fā).北京:電子工業(yè)出版社, 2004





