日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于μcosII的嵌入式文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

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

圖1  Decoder與USB Host Controller連接原理圖
    ISP1160與MB86H20B(簡(jiǎn)稱20B)之間的硬件連接圖如圖1,ISP的異步傳輸端口與20B上的UPI(Universal Peripheral Interface)接口相連,這是一種可以配置模式和時(shí)序的接口。在此采用了IDE模式,按照ISP1160的時(shí)序要求對(duì)其進(jìn)行了配置。ISP1160在20B上僅僅映射2個(gè)IO地址,一個(gè)為數(shù)據(jù)端口,一個(gè)為命令端口,由A0的高低電平區(qū)分[3]。
    ISP1160上的INT引腳連接到20B外部中斷引腳IRQ1。當(dāng)中斷發(fā)生時(shí),20B進(jìn)入中斷服務(wù)程序,讀取ISP1160狀態(tài)寄存器。這就構(gòu)成了ISP1160到20B的數(shù)據(jù)反饋通路。
3  在U盤上構(gòu)建FAT32文件系統(tǒng)
    FAT32文件系統(tǒng)由三部分構(gòu)成, 這三部分在邏輯盤上的結(jié)構(gòu)如圖2[1]所示。

圖2  FAT32文件系統(tǒng)結(jié)構(gòu)示意圖
    DBR(DOS Boot Record)包含BIOS參數(shù)塊和DOS引導(dǎo)程序。在BIOS參數(shù)塊中包含了每簇扇區(qū)數(shù),保留扇區(qū)數(shù),隱含扇區(qū)數(shù),每FAT扇區(qū)數(shù),根目錄FDT在DATA區(qū)的起始位置等重要信息。
    DATA區(qū)是從U盤根目錄FDT(FAT Directory Table)開始的,在根目錄下用戶可以再創(chuàng)建不同的子目錄或文件,根目錄以及各個(gè)子目錄都有自己的FDT ,F(xiàn)DT 定義了文件名、文件大小以及文件存放的起始簇號(hào)。通過各子目錄和文件的FDT構(gòu)成的樹形文件索引結(jié)構(gòu)完成對(duì)文件的定位。
    物理設(shè)備的最小存儲(chǔ)單位是Sector(扇區(qū)),在DATA區(qū)中最小的存儲(chǔ)單位是Cluster(簇),在U盤的flash上一般由8個(gè)Section構(gòu)成一個(gè)Cluster。
    由于一個(gè)文件往往在DATA區(qū)上占用多個(gè)簇,F(xiàn)AT32文件系統(tǒng)采用簇鏈的方式索引一個(gè)文件所占用的簇鏈。FAT(File Allocate Table)記錄了DATA區(qū)哪些簇被使用,當(dāng)前簇的后繼簇簇號(hào)[1]。 
4  FAT文件系統(tǒng)的實(shí)現(xiàn)
    本文件系統(tǒng)的實(shí)現(xiàn),可以分為USB協(xié)議棧和FAT32文件系統(tǒng)為主的四大部分[4]。層次結(jié)構(gòu)關(guān)系如圖3所示。
4.1  協(xié)議層的實(shí)現(xiàn)
    大容量類設(shè)備都可能使用 RBC、SFF-8020i/MMC-2、QIC-157、UFI、SFF-8070i和 SCSI 等 6個(gè)命令集。嚴(yán)格來說,大容量類主機(jī)端的驅(qū)動(dòng)都應(yīng)全部支持以上指令集,但實(shí)際上常見的大容量設(shè)備都使用 SCSI 和 UFI 指令集。SCSI 和 UFI 指令集中常用的命令在大容量類協(xié)議中都可兼容。

圖3  軟件結(jié)構(gòu)模型[!--empirenews.page--]
    U盤的整個(gè)文件系統(tǒng)在主機(jī)軟件的協(xié)議層抽象為UFI(USB Floppy Interface)設(shè)備,通過含有UFI指令的命令塊(Command Block)與U盤通信[5]。這層完成的功能有將文件系統(tǒng)中的操作翻譯為UFI指令,UFI指令打包成命令塊及其對(duì)應(yīng)的逆向操作。
表1  傳輸層API函數(shù)實(shí)現(xiàn)

4.2  傳輸層的實(shí)現(xiàn)
    傳輸處理層用于處理命令塊,包括主機(jī)傳輸命令塊到大容量類設(shè)備、主機(jī)與大容量設(shè)備之間的數(shù)據(jù)傳輸和主機(jī)接收命令塊處理狀態(tài)。大容量類設(shè)備傳輸協(xié)議分為Bulk-Only協(xié)議和 CBI-Only協(xié)議。該層為命令層提供了命令塊處理函數(shù)的統(tǒng)一接口,使命令層不需理會(huì)當(dāng)前大容量類設(shè)備的傳輸協(xié)議。
傳輸層接收由協(xié)議層包裝好的命令塊,根據(jù)已注冊(cè)的Mass Storage Class設(shè)備的信息,采用單批量(Bulk Only)傳輸模式從批量輸出端點(diǎn)(Bulk Data Out Endpoint)傳輸出去。類似,也可以從批量輸入端點(diǎn)(Bulk Data In Endpoint)接收數(shù)據(jù),向上傳遞到協(xié)議層解析。
4.3  USB主機(jī)協(xié)議棧的實(shí)現(xiàn)
    在U盤連接到USB電纜上后首先為ISP1160注冊(cè)一個(gè)Root Hub Class,再為U盤注冊(cè)一個(gè)Mass Storage Class的設(shè)備。接著,為了檢測(cè)U盤的連接,啟動(dòng)查詢當(dāng)前狀態(tài)的Host_Serve的任務(wù)。當(dāng)ISP1160 與U盤連接后,ISP1160通過中斷通知20B,20B進(jìn)入中斷服務(wù)程序改變當(dāng)前狀態(tài)。在Host_Serve任務(wù)中檢測(cè)到狀態(tài)的改變,開始USB協(xié)議的通信。至此,U盤(USB Mass Storage設(shè)備)注冊(cè)完成(大容量類相關(guān)代碼見程序清單3.1,3.2,表2)。由此以后,F(xiàn)AT32文件系統(tǒng)所要對(duì)U盤進(jìn)行的操作都經(jīng)過Bulk-Only傳輸完成。
typedef struct MASS_STORAGE_CLASS
    { unsigned char  LUN;/* 該設(shè)備的邏輯單元數(shù)*/
    struct _HMEDLUN *LUN_infor_ptr[MAX_MASS_LUN]; /*  邏輯單元描述信息結(jié)構(gòu)指針 */ 
    device_instance   *dvi_ptr;     
/*設(shè)備信息描述結(jié)構(gòu)指針*/
    endpoint_info  *setup_epi_ptr;   
/*控制端點(diǎn)描述信息結(jié)構(gòu)指針*/ 
    transfer_instance  *tr_bulk_in_ptr;    
/*批量輸入傳輸描述符*/
    transfer_instance  *tr_bulk_out_ptr;   
/*批量輸出傳輸描述符*/
    transfer_instance  *tr_int_in_ptr;  
/*中斷輸入傳輸描述符CBI-Only 使用*/
    unsigned char  SubclassCode;    
/*子類代碼*/
    unsigned char  ProtocolCode;    
/*傳輸協(xié)議代碼CBI或BULK*/ 
    unsigned char  *CBW_BuffPtr;    
/*批量傳輸?shù)拿畎彌_區(qū)指針*/
    unsigned char  RBC_BuffPtr[12];   
/*命令設(shè)置緩沖區(qū)*/
}MassStorageClass,*PMassStorageClass;
    程序清單3.1 大容量設(shè)備描述信息數(shù)據(jù)結(jié)構(gòu)
 
typedef struct _HMEDLUN
    { unsigned char LUN;    
//所在大容量設(shè)備的邏輯單元號(hào)
    MassStorageClass *MSC;    
//大容量設(shè)備的描述信息結(jié)構(gòu)
    unsigned char    VendorInfo[8];   
//廠商信息
    unsigned char    ProductInfo[16];   
//產(chǎn)品信息
    unsigned char    ProductRev[4];   
//產(chǎn)品版本
    unsigned int  LastLogicalBlookAddress; 
//最后邏輯塊地址
    unsigned int    BlockLengthInBytes;  
//邏輯塊長(zhǎng)度
    }hMedLUN;
    程序清單2.2 邏輯單元描述信息數(shù)據(jù)結(jié)構(gòu)[!--empirenews.page--]
    實(shí)現(xiàn)的大容量類的API函數(shù)如表2所示。
表2  大容量類API函數(shù)列表

4.4  此文件系統(tǒng)在μcosII中的移植   
    FAT32文件系統(tǒng)來源于開源代碼,移植的主要工作是替換消息通訊函數(shù)。這些工作完成后,將對(duì)File的各種操作包裝成一個(gè)OSFile任務(wù),接收應(yīng)用程序發(fā)出的文件操作要求。文件系統(tǒng)的整體結(jié)構(gòu)圖如圖4所示。

圖4  文件系統(tǒng)層次結(jié)構(gòu)[2]
5  性能測(cè)試
    基于已經(jīng)實(shí)現(xiàn)的方案,進(jìn)行了詳細(xì)的測(cè)試。首先,對(duì)目錄的創(chuàng)建,目錄的刪除,進(jìn)入目錄,退出目錄,文件的創(chuàng)建,文件的刪除,文件的讀取,文件的寫入等基本功能進(jìn)行了測(cè)試,均能圓滿完成以上功能。
    接下來對(duì)比較關(guān)鍵的文件讀取功能進(jìn)行了詳盡的測(cè)試。測(cè)試所得到的結(jié)果完全達(dá)到了對(duì)數(shù)字相片讀取的要求。
表3  不同文件的讀取時(shí)間

6  結(jié)束語
    基于20B的UPI接口實(shí)現(xiàn)USB的傳輸,之前沒有可以參考的范例,完全是出于對(duì)硬件時(shí)序和文件系統(tǒng)的理解設(shè)計(jì)了整個(gè)解決方案。此方案解決了20B芯片上外掛U盤的問題, 從而使20B芯片可以應(yīng)用于數(shù)字相框(Digital Video Frame)領(lǐng)域。
    為了讓文件系統(tǒng)能夠更好的適應(yīng)嵌入式應(yīng)用的需求,可以對(duì)文件系統(tǒng)做出一些優(yōu)化,盡量做到對(duì)flash的寫平衡,提高文件的讀取速度,減少文件系統(tǒng)對(duì)CPU和內(nèi)存資源的占用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機(jī) CAN

要問機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會(huì)》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學(xué)者共同探討了在形勢(shì)依然嚴(yán)峻的當(dāng)下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉