《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于Blackfin處理器實(shí)現(xiàn)對(duì)硬盤FAT32文件系統(tǒng)的操作

基于Blackfin處理器實(shí)現(xiàn)對(duì)硬盤FAT32文件系統(tǒng)的操作

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

  摘 要: 利用當(dāng)今普遍使用的大容量" title="大容量">大容量存儲(chǔ)設(shè)備IDE硬盤以及高性能和高兼容性的FAT32文件系統(tǒng)" title="文件系統(tǒng)">文件系統(tǒng)可以實(shí)現(xiàn)大數(shù)據(jù)量媒體數(shù)據(jù)的存儲(chǔ)和管理。介紹了一種基于Blackfin533處理器實(shí)現(xiàn)對(duì)IDE硬盤的FAT32文件系統(tǒng)的操作的方法。
  關(guān)鍵詞: Blackfin533 IDE FAT32


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

  硬盤的存儲(chǔ)結(jié)構(gòu)如圖1所示。


  它的基本存儲(chǔ)單元叫作扇區(qū)(Sector),除此之外。硬盤還有兩個(gè)重要的組成部分就是磁頭(Head)和柱面(Cylinder),它們共同組成硬盤的尋址空間,其地址被稱為物理地址。顯然,物理地址尋址方式不夠直觀、現(xiàn)在的大多數(shù)硬盤都支持另外一種尋址方式,其地址被稱為邏輯地址(LBA),它把扇區(qū)順序編號(hào),不必再考慮C、H、S等參數(shù)。LBA和C、H、S的換算關(guān)系如下:
 ?。絅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表示每個(gè)柱面的磁頭數(shù),NS表示每個(gè)磁道的扇區(qū)數(shù),C表示柱面數(shù)[1]
1.2 硬盤的引導(dǎo)原理
  硬盤分區(qū)的引導(dǎo)原理如圖2所示。


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

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


  FAT文件系統(tǒng)的原理可以簡單地描述為把存儲(chǔ)空間分塊映射到一個(gè)表中,從而實(shí)現(xiàn)對(duì)存儲(chǔ)空間的靈活支配。存儲(chǔ)空間中的每一個(gè)塊被稱作簇,存儲(chǔ)空間的映射表被稱作FAT表。三種FAT文件系統(tǒng)的一個(gè)明顯區(qū)別就是FAT表中表示一個(gè)簇所用的位數(shù)不同,分別是12、16和32。文件的存儲(chǔ)是不必連續(xù)的,但在FAT表中可用鏈表的形式把文件聯(lián)系在一起,如圖3所示。


  由于FAT文件系統(tǒng)目前在大部分操作系統(tǒng)上都給予了支持,而且實(shí)現(xiàn)起來簡單,所以是理想的嵌入式系統(tǒng)大容量存儲(chǔ)文件管理方案。
2.2 FAT32文件系統(tǒng)
  由于FAT16文件系統(tǒng)在大容量分區(qū)管理方面的效率急劇下降,而FAT32文件系統(tǒng)卻很好地解決了這個(gè)問題,所以在大分區(qū)管理方面,F(xiàn)AT32是理想的文件系統(tǒng)。


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


3 IDE硬盤接口設(shè)計(jì)
3.1 ADSP-BF533 EZKIT Lite評(píng)估板簡介[5]

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


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


4 FAT32文件系統(tǒng)軟件設(shè)計(jì)
  FAT32文件系統(tǒng)接口程序是在VisualDSP++ 3.5集成編譯環(huán)境下編寫和調(diào)試的。程序用標(biāo)準(zhǔn)C語言編寫,調(diào)用關(guān)系分為五個(gè)層次,如表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)境、帶實(shí)時(shí)運(yùn)行庫的C/C++優(yōu)化編譯器、匯編和鏈接器和仿真軟件以及大量的程序例程。VisualDSP++還有很多有用的功能,可以使開發(fā)人員更準(zhǔn)確地把握程序占用內(nèi)部資源的情況,更直觀地了解程序內(nèi)部各函數(shù)的效率等等,這樣在Visual DSP++這個(gè)軟件平臺(tái)上就可以方便地進(jìn)行DSP程序的開發(fā)和優(yōu)化。
4.2 文件讀寫策略優(yōu)化
  FAT32文件系統(tǒng)底層驅(qū)動(dòng)函數(shù)決定文件讀寫的策略,是提高程序讀寫文件速度的關(guān)鍵。理論上FAT32文件系統(tǒng)可以按照如圖8所示的方式對(duì)文件的任意內(nèi)容進(jìn)行操作。但是這個(gè)操作是要針對(duì)IDE硬盤進(jìn)行的,所以必須考慮IDE硬盤的數(shù)據(jù)傳輸特性。


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

?


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


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


參考文獻(xiàn)
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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲桃花岛网站| 99热在线精品观看| 亚洲美女91| 亚洲第一页中文字幕| 国产亚洲激情在线| 国产精品尤物| 国产精品永久在线| 国产精品青草综合久久久久99| 欧美精品一区二区三区一线天视频 | 亚洲激情自拍| 亚洲黄色在线观看| 亚洲国产美女| 亚洲人成在线观看网站高清| 亚洲电影免费| 91久久精品一区二区别| 亚洲日韩欧美视频一区| 99re热这里只有精品视频| 一区二区日韩欧美| 亚洲午夜一区二区| 香蕉亚洲视频| 亚洲国产裸拍裸体视频在线观看乱了 | 国产精品黄色| 国产精品久久看| 国产欧美精品xxxx另类| 国产午夜精品久久| 一区二区在线视频| 亚洲青涩在线| 中文在线不卡| 欧美一区二区三区在| 久久精品夜色噜噜亚洲a∨| 亚洲国产精品99久久久久久久久| 亚洲高清久久| 亚洲美女视频在线观看| 亚洲一区二区欧美日韩| 欧美一级艳片视频免费观看| 久久久久这里只有精品| 乱中年女人伦av一区二区| 欧美猛交免费看| 国产精品嫩草99av在线| 国产在线观看精品一区二区三区| 亚洲大胆美女视频| 在线亚洲伦理| 亚洲电影第三页| 一区二区欧美在线| 久久国产视频网站| 欧美国产另类| 国产精品麻豆va在线播放| 黑丝一区二区三区| 亚洲精品国精品久久99热| 中国成人亚色综合网站| 欧美在线播放一区| 日韩一区二区久久| 欧美一区二区性| 欧美高清免费| 国产日产欧美精品| ●精品国产综合乱码久久久久| 亚洲最新色图| 欧美主播一区二区三区| 一区二区三区国产精华| 久久九九免费| 欧美午夜精品久久久久久浪潮| 国产午夜精品全部视频播放| 亚洲高清色综合| 午夜国产不卡在线观看视频| 亚洲精品欧洲| 欧美呦呦网站| 欧美日韩八区| 国内精品久久久久久久97牛牛| 亚洲裸体俱乐部裸体舞表演av| 欧美一区二区日韩| 亚洲无限乱码一二三四麻| 久久嫩草精品久久久久| 欧美日韩中文在线| 樱花yy私人影院亚洲| 亚洲一区高清| 日韩亚洲欧美一区| 久久视频在线免费观看| 国产精品久久精品日日| 亚洲国产日韩一级| 欧美一区二区视频免费观看| 亚洲一区二区久久| 欧美99久久| 国产在线拍偷自揄拍精品| 亚洲视频在线观看网站| 亚洲乱码国产乱码精品精天堂| 久久久精品日韩欧美| 国产精品久久久久9999吃药| 亚洲精品美女在线| 久久精品国产亚洲5555| 欧美影院精品一区| 国产精品久久国产三级国电话系列| 亚洲三级毛片| 亚洲激情在线观看| 久久久成人网| 国产欧美一区二区精品婷婷 | 精品99一区二区| 午夜一区不卡| 午夜激情综合网| 欧美日一区二区在线观看 | 香蕉乱码成人久久天堂爱免费| 亚洲一区免费视频| 欧美日韩国产亚洲一区| 亚洲成人在线| 久久精品视频在线观看| 久久精品国内一区二区三区| 国产精品久久久久久久久动漫| 99在线精品视频| 一区二区91| 欧美日韩1区| 亚洲毛片av在线| aa国产精品| 欧美久久婷婷综合色| 亚洲国产毛片完整版| 亚洲激情国产精品| 久久综合999| 黄色一区二区三区| 亚洲第一色在线| 麻豆精品视频在线| 亚洲第一天堂av| 亚洲美女在线一区| 欧美国产极速在线| 亚洲日本在线观看| 在线亚洲高清视频| 欧美日韩另类一区| 夜夜嗨一区二区| 亚洲欧美色婷婷| 国产欧美日韩一区二区三区在线| 亚洲一区二区三区欧美| 香蕉成人久久| 国产乱码精品| 欧美在线影院| 麻豆av福利av久久av| 亚洲国产精品小视频| 一本大道久久a久久综合婷婷| 欧美日韩四区| 中文在线一区| 欧美在线不卡视频| 国外成人在线视频| 91久久精品国产91久久性色tv| 欧美激情中文字幕一区二区| 亚洲靠逼com| 午夜久久久久久久久久一区二区| 国产乱肥老妇国产一区二| 欧美自拍偷拍午夜视频| 免费亚洲一区二区| 日韩视频免费观看高清完整版| 亚洲一区影音先锋| 国产亚洲欧美另类中文| 亚洲激情视频在线观看| 欧美日韩国产综合视频在线观看 | 国产精品国产a| 先锋影音国产精品| 麻豆精品视频在线观看| 亚洲人成艺术| 欧美一区二区久久久| 极品裸体白嫩激情啪啪国产精品| 99riav久久精品riav| 国产精品家庭影院| 久久精品夜夜夜夜久久| 欧美日韩人人澡狠狠躁视频| 亚洲在线网站| 免费亚洲婷婷| 亚洲一卡二卡三卡四卡五卡| 老巨人导航500精品| 亚洲剧情一区二区| 久久精品免费| 亚洲精品一区二区三区蜜桃久| 午夜精品久久久久久99热软件| 激情六月婷婷久久| 亚洲天堂免费观看| 国产色产综合色产在线视频| 亚洲国产天堂网精品网站| 欧美日韩一二三四五区| 欧美一区二区三区在线播放| 欧美人与性动交cc0o| 午夜亚洲激情| 欧美日韩国产黄| 欧美在线看片a免费观看| 欧美日韩国产综合一区二区| 午夜国产精品影院在线观看| 欧美久久久久久蜜桃| 欧美一区二区视频在线观看| 欧美日韩三区| 亚洲国产欧美一区| 国产精品免费看| 日韩天堂在线观看| 国产一区91| 亚洲午夜羞羞片| 亚洲高清成人| 久久久久国产精品午夜一区| 99精品国产福利在线观看免费| 玖玖视频精品| 午夜精品免费| 欧美视频在线观看免费| 亚洲欧洲精品一区二区| 国产亚洲毛片| 午夜精品久久久久久99热| 亚洲精品美女91| 免费观看亚洲视频大全| 欧美一区二区视频观看视频|