基于μcosII的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于cosii的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)近年來隨著數(shù)碼相機、掃描儀、攝像手機等數(shù)碼設(shè)備的興起,數(shù)字照片成為人們生活中不行缺少的一部分。數(shù)碼相框作為一種新興的顯示媒介,以它大容量的存儲相片的能力,良好的顯示效果和多樣的功能正越來越快速的走進千家萬戶。隨著國家廣電總局推行電視數(shù)字化的進程,全面鋪開。本項目的開發(fā)正是基于這兩種考慮,開發(fā)了一種將數(shù)碼相框和數(shù)字電視相融合的產(chǎn)品。在這個產(chǎn)品的開發(fā)過程中,一個關(guān)鍵性的問題就是為mb86h20b數(shù)字電視平臺擴展外部存儲的功能。本文中提到的基于cosii的文件系統(tǒng)的解決計劃較好的解決了這一問題。2 嵌入式文件系統(tǒng)硬件銜接圖isp1160與mb86h20b(簡

2、稱20b)之間的硬件銜接圖1,isp的異步傳輸端口與20b上的upi(universal peripheral interface)接口相連,這是一種可以配置模式和時序的接口。在此采納了ide模式,根據(jù)isp1160的時序要求對其舉行了配置。isp1160在20b上僅僅映射2個io地址,一個為數(shù)據(jù)端口,一個為指令端口,由a0的凹凸電平區(qū)別。圖1 decoder與 host controller銜接原理圖isp1160上的int引腳銜接到20b外部中斷引腳irq1。當中斷發(fā)生時,20b進入中斷服務(wù)程序,讀取isp1160狀態(tài)寄存器。這就構(gòu)成了isp1160到20b的數(shù)據(jù)反饋通路。3 在u盤上構(gòu)建

3、fat32文件系統(tǒng)fat32文件系統(tǒng)由三部分構(gòu)成, 這三部分在規(guī)律盤上的結(jié)構(gòu)2所示。圖2 fat32文件系統(tǒng)結(jié)構(gòu)暗示圖dbr(dos boot record)包含bios參數(shù)塊和dos引導程序。在bios參數(shù)塊中包含了每簇扇區(qū)數(shù),保留扇區(qū)數(shù),隱含扇區(qū)數(shù),每fat扇區(qū)數(shù),根名目fdt在data區(qū)的起始位置等重要信息。data區(qū)是從u盤根名目fdt(fat directory table)開頭的,在根名目下用戶可以再創(chuàng)建不同的子名目或文件,根名目以及各個子名目都有自己的fdt ,fdt 定義了文件名、文件大小以及文件存放的起始簇號。通過各子名目和文件的fdt構(gòu)成的樹形文件索引結(jié)構(gòu)完成對文件的定位。

4、物理設(shè)備的最小存儲單位是sector(扇區(qū)),在data區(qū)中最小的存儲單位是cluster(簇),在u盤的flash上普通由8個section構(gòu)成一個cluster。因為一個文件往往在data區(qū)上占用多個簇,fat32文件系統(tǒng)采納簇鏈的方式索引一個文件所占用的簇鏈。fat(file allocate table)記錄了data區(qū)哪些簇被用法,當前簇的后繼簇簇號。4 fat文件系統(tǒng)的實現(xiàn)本文件系統(tǒng)的實現(xiàn),可以分為usb協(xié)議棧和fat32文件系統(tǒng)為主的四大部分。層次結(jié)構(gòu)關(guān)系3所示。圖3 軟件結(jié)構(gòu)模型4.1 協(xié)議層的實現(xiàn)大容量類設(shè)備都可能用法 rbc、sff-8020i/mmc-2、qic-157、

5、ufi、sff-8070i和 scsi 等 6個指令集。嚴格來說,大容量類主機端的驅(qū)動都應所有支持以上命令集,但事實上頻繁的大容量設(shè)備都用法 scsi 和 ufi 命令集。scsi 和 ufi 命令集中常用的指令在大容量類協(xié)議中都可兼容。u盤的囫圇文件系統(tǒng)在主機軟件的協(xié)議層抽象為ufi(usb floppy interface)設(shè)備,通過含有ufi命令的指令塊(command block)與u盤通信。這層完成的功能有將文件系統(tǒng)中的操作翻譯為ufi命令,ufi命令打包成指令塊及其對應的逆向操作。表1 傳輸層api函數(shù)實現(xiàn)4.2 傳輸層的實現(xiàn)傳輸處理層用于處理指令塊,包括主機傳輸指令塊到大容量類設(shè)

6、備、主機與大容量設(shè)備之間的數(shù)據(jù)傳輸和主機接收指令塊處理狀態(tài)。大容量類設(shè)備傳輸協(xié)議分為bulk-only協(xié)議和 cbi-only協(xié)議。該層為指令層提供了指令塊處理函數(shù)的統(tǒng)一接口,使指令層不需理睬當前大容量類設(shè)備的傳輸協(xié)議。傳輸層接收由協(xié)議層包裝好的指令塊,按照已注冊的mass storage class設(shè)備的信息,采納單批量(bulk only)傳輸模式從批量輸出端點(bulk data out endpoint)傳輸出去。類似,也可以從批量輸入端點(bulk data in endpoint)接收數(shù)據(jù),向上傳遞到協(xié)議層解析。4.3 usb主機協(xié)議棧的實現(xiàn)在u盤銜接到usb電纜上后首先為isp1

7、160注冊一個root hub class,再為u盤注冊一個mass storage class的設(shè)備。接著,為了檢測u盤的銜接,啟動查詢當前狀態(tài)的host_serve的任務(wù)。當isp1160 與u盤銜接后,isp1160通過中斷通知20b,20b進入中斷服務(wù)程序轉(zhuǎn)變當前狀態(tài)。在host_serve任務(wù)中檢測到狀態(tài)的轉(zhuǎn)變,開頭usb協(xié)議的通信。至此,u盤(usb mass storage設(shè)備)注冊完成(大容量類相關(guān)代碼見程序清單3.1,3.2,表2)。由此以后,fat32文件系統(tǒng)所要對u盤舉行的操作都經(jīng)過bulk-only傳輸完成。程序清單3.1 大容量設(shè)備描述信息數(shù)據(jù)結(jié)構(gòu)程序清單2.2 規(guī)律

8、單元描述信息數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的大容量類的api函數(shù)如表2所示。表2 大容量類api函數(shù)列表4.4 此文件系統(tǒng)在cosii中的移植fat32文件系統(tǒng)來源于開源代碼,移植的主要工作是替換消息通訊函數(shù)。這些工作完成后,將對file的各種操作包裝成一個osfile任務(wù),接收應用程序發(fā)出的文件操作要求。文件系統(tǒng)的整體結(jié)構(gòu)圖4所示。圖4 文件系統(tǒng)層次結(jié)構(gòu)5 性能測試基于已經(jīng)實現(xiàn)的計劃,舉行了具體的測試。首先,對名目的創(chuàng)建,名目的刪除,進入名目,退出名目,文件的創(chuàng)建,文件的刪除,文件的讀取,文件的寫入等基本功能舉行了測試,均能遺憾完成以上功能。接下來對照較關(guān)鍵的文件讀取功能舉行了詳盡的測試。測試所得到的結(jié)果徹低達到了對數(shù)字相片讀取的要求。表3 不同文件的讀取時光6 結(jié)束語基于20b的upi接口實現(xiàn)usb的傳輸,之前沒有可以參考的范例,徹低是出于對硬件時序和文件系統(tǒng)的理解設(shè)計了囫圇解決計劃。此計劃解決了20b芯片上外掛u盤的問題, 從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論