基于μcosII的嵌入式文件系統的設計與實(shí)現

發(fā)布時(shí)間:2010-11-23 19:09    發(fā)布者:designer
關(guān)鍵詞: μCOS , 嵌入式 , 設計 , 實(shí)現 , 文件系統
1 前言

近年來(lái)隨著(zhù)數碼相機、掃描儀、攝像手機等數碼設備的興起,數字照片成為人們生活中不可缺少的一部分。數碼相框作為一種新興的顯示媒介,以它大容量的存儲相片的能力,良好的顯示效果和多樣的功能正越來(lái)越迅速的走進(jìn)千家萬(wàn)戶(hù)。

隨著(zhù)國家廣電總局推行電視數字化的進(jìn)程,數字電視全面鋪開(kāi)。本項目的開(kāi)發(fā)正是基于這兩種考慮,開(kāi)發(fā)了一種將數碼相框和數字電視相融合的產(chǎn)品。

在這個(gè)產(chǎn)品的開(kāi)發(fā)過(guò)程中,一個(gè)關(guān)鍵性的問(wèn)題就是為MB86H20B數字電視平臺擴展外部存儲的功能。本文中提到的基于μcosII的嵌入式文件系統的解決方案較好的解決了這一問(wèn)題。

2 嵌入式文件系統硬件連接圖

ISP1160與MB86H20B(簡(jiǎn)稱(chēng)20B)之間的硬件連接圖如圖1,ISP的異步傳輸端口與20B上的UPI(Universal Peripheral InteRFace)接口相連,這是一種可以配置模式和時(shí)序的接口。在此采用了IDE模式,按照ISP1160的時(shí)序要求對其進(jìn)行了配置。ISP1160在20B上僅僅映射2個(gè)IO地址,一個(gè)為數據端口,一個(gè)為命令端口,由A0的高低電平區分。





圖1 Decoder與USB Host Controller連接原理圖

ISP1160上的INT引腳連接到20B外部中斷引腳IRQ1。當中斷發(fā)生時(shí),20B進(jìn)入中斷服務(wù)程序,讀取ISP1160狀態(tài)寄存器。這就構成了ISP1160到20B的數據反饋通路。

3 在U盤(pán)上構建FAT32文件系統

FAT32文件系統由三部分構成, 這三部分在邏輯盤(pán)上的結構如圖2所示。





圖2 FAT32文件系統結構示意圖

DBR(DOS Boot Record)包含BIOS參數塊和DOS引導程序。在BIOS參數塊中包含了每簇扇區數,保留扇區數,隱含扇區數,每FAT扇區數,根目錄FDT在DATA區的起始位置等重要信息。

DATA區是從U盤(pán)根目錄FDT(FAT Directory Table)開(kāi)始的,在根目錄下用戶(hù)可以再創(chuàng )建不同的子目錄或文件,根目錄以及各個(gè)子目錄都有自己的FDT ,FDT 定義了文件名、文件大小以及文件存放的起始簇號。通過(guò)各子目錄和文件的FDT構成的樹(shù)形文件索引結構完成對文件的定位。

物理設備的最小存儲單位是Sector(扇區),在DATA區中最小的存儲單位是Cluster(簇),在U盤(pán)的flash上一般由8個(gè)Section構成一個(gè)Cluster。

由于一個(gè)文件往往在DATA區上占用多個(gè)簇,FAT32文件系統采用簇鏈的方式索引一個(gè)文件所占用的簇鏈。FAT(File Allocate Table)記錄了DATA區哪些簇被使用,當前簇的后繼簇簇號。

4 FAT文件系統的實(shí)現

本文件系統的實(shí)現,可以分為USB協(xié)議棧和FAT32文件系統為主的四大部分。層次結構關(guān)系如圖3所示。





圖3 軟件結構模型

4.1 協(xié)議層的實(shí)現

大容量類(lèi)設備都可能使用 RBC、SFF-8020i/MMC-2、QIC-157、UFI、SFF-8070i和 SCSI 等 6個(gè)命令集。嚴格來(lái)說(shuō),大容量類(lèi)主機端的驅動(dòng)都應全部支持以上指令集,但實(shí)際上常見(jiàn)的大容量設備都使用 SCSI 和 UFI 指令集。SCSI 和 UFI 指令集中常用的命令在大容量類(lèi)協(xié)議中都可兼容。

U盤(pán)的整個(gè)文件系統在主機軟件的協(xié)議層抽象為UFI(USB Floppy Interface)設備,通過(guò)含有UFI指令的命令塊(Command Block)與U盤(pán)通信。這層完成的功能有將文件系統中的操作翻譯為UFI指令,UFI指令打包成命令塊及其對應的逆向操作。

表1 傳輸層API函數實(shí)現





4.2 傳輸層的實(shí)現

傳輸處理層用于處理命令塊,包括主機傳輸命令塊到大容量類(lèi)設備、主機與大容量設備之間的數據傳輸和主機接收命令塊處理狀態(tài)。大容量類(lèi)設備傳輸協(xié)議分為Bulk-Only協(xié)議和 CBI-Only協(xié)議。該層為命令層提供了命令塊處理函數的統一接口,使命令層不需理會(huì )當前大容量類(lèi)設備的傳輸協(xié)議。

傳輸層接收由協(xié)議層包裝好的命令塊,根據已注冊的Mass Storage Class設備的信息,采用單批量(Bulk Only)傳輸模式從批量輸出端點(diǎn)(Bulk Data Out Endpoint)傳輸出去。類(lèi)似,也可以從批量輸入端點(diǎn)(Bulk Data In Endpoint)接收數據,向上傳遞到協(xié)議層解析。

4.3 USB主機協(xié)議棧的實(shí)現

在U盤(pán)連接到USB電纜上后首先為ISP1160注冊一個(gè)Root Hub Class,再為U盤(pán)注冊一個(gè)Mass Storage Class的設備。接著(zhù),為了檢測U盤(pán)的連接,啟動(dòng)查詢(xún)當前狀態(tài)的Host_Serve的任務(wù)。當ISP1160 與U盤(pán)連接后,ISP1160通過(guò)中斷通知20B,20B進(jìn)入中斷服務(wù)程序改變當前狀態(tài)。在Host_Serve任務(wù)中檢測到狀態(tài)的改變,開(kāi)始USB協(xié)議的通信。至此,U盤(pán)(USB Mass Storage設備)注冊完成(大容量類(lèi)相關(guān)代碼見(jiàn)程序清單3.1,3.2,表2)。由此以后,FAT32文件系統所要對U盤(pán)進(jìn)行的操作都經(jīng)過(guò)Bulk-Only傳輸完成。





程序清單3.1 大容量設備描述信息數據結構





程序清單2.2 邏輯單元描述信息數據結構

實(shí)現的大容量類(lèi)的API函數如表2所示。

表2 大容量類(lèi)API函數列表




4.4 此文件系統在μcosII中的移植

FAT32文件系統來(lái)源于開(kāi)源代碼,移植的主要工作是替換消息通訊函數。這些工作完成后,將對File的各種操作包裝成一個(gè)OSFile任務(wù),接收應用程序發(fā)出的文件操作要求。文件系統的整體結構圖如圖4所示。





圖4 文件系統層次結構

5 性能測試

基于已經(jīng)實(shí)現的方案,進(jìn)行了詳細的測試。首先,對目錄的創(chuàng )建,目錄的刪除,進(jìn)入目錄,退出目錄,文件的創(chuàng )建,文件的刪除,文件的讀取,文件的寫(xiě)入等基本功能進(jìn)行了測試,均能圓滿(mǎn)完成以上功能。

接下來(lái)對比較關(guān)鍵的文件讀取功能進(jìn)行了詳盡的測試。測試所得到的結果完全達到了對數字相片讀取的要求。

表3 不同文件的讀取時(shí)間





6 結束語(yǔ)

基于20B的UPI接口實(shí)現USB的傳輸,之前沒(méi)有可以參考的范例,完全是出于對硬件時(shí)序和文件系統的理解設計了整個(gè)解決方案。此方案解決了20B芯片上外掛U盤(pán)的問(wèn)題, 從而使20B芯片可以應用于數字相框(Digital Video Frame)領(lǐng)域。
為了讓文件系統能夠更好的適應嵌入式應用的需求,可以對文件系統做出一些優(yōu)化,盡量做到對flash的寫(xiě)平衡,提高文件的讀取速度,減少文件系統對CPU和內存資源的占用。
本文地址:http://selenalain.com/thread-41006-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页