基于單片機(jī)的嵌入式USB主機(jī)系統(tǒng)的實現(xiàn)
2.3 軟件層次劃分
從嵌入式USB主機(jī)的軟件層次劃分來看,系統(tǒng)軟件主要包括主控制器驅(qū)動程序、USB核心驅(qū)動程序,以及用戶軟件;從功能劃分來看,系統(tǒng)軟件可分為以下幾個部分:
1.主CPU與各系統(tǒng)模塊的初始化程序設(shè)計
實現(xiàn)主CPU及各系統(tǒng)模塊的初始化,包括實現(xiàn)I2C接口的LED顯示、鍵盤、時鐘芯片以及主CPU與USB主機(jī)控制芯片之間的數(shù)據(jù)通信功能。
2.USB主機(jī)系統(tǒng)軟件的實現(xiàn)
主要完成核心驅(qū)動程序的功能,具體來說就是實現(xiàn)USB的4種基本數(shù)據(jù)的傳輸方式,實現(xiàn)USB設(shè)備的枚舉過程,并獲取USB設(shè)備的描述符等。這些功能都可以通過讀寫主控制器寄存器來完成。因此,系統(tǒng)中只需分別定義一個讀寄存器函數(shù)和寫寄存器函數(shù),然后以此函數(shù)為基礎(chǔ)來構(gòu)成各功能子函數(shù),實現(xiàn)數(shù)據(jù)傳輸、設(shè)備枚舉以及獲取描述符等各種操作。
3.Mass Storage類協(xié)議的程序設(shè)計
實現(xiàn)Mass Storage設(shè)備類中Bulk-Only傳輸協(xié)議和Mass Storage類中UFI子類的各種請求命令,對設(shè)備進(jìn)行各種訪問和讀寫操作。
4.應(yīng)用程序設(shè)計
主要實現(xiàn)FAT文件系統(tǒng)。可根據(jù)FAT文件系統(tǒng)的基本體系,通過Mass Storage類協(xié)議中的UFI子類命令和標(biāo)準(zhǔn)的設(shè)備請求命令與設(shè)備的Flash閃存建立連接關(guān)系,并在USB主機(jī)系統(tǒng)中建立磁盤的空間結(jié)構(gòu),定義 MBR, DBR的數(shù)據(jù)結(jié)構(gòu),建立FAT表,F(xiàn)DT表,實現(xiàn)對文件系統(tǒng)進(jìn)行讀取等操作功能即可。
系統(tǒng)的軟件設(shè)計即可按照上述的4個功能模塊來依次構(gòu)建。
3結(jié)束語
本設(shè)計建立了基于單片機(jī)的嵌入式USB主機(jī)系統(tǒng),該系統(tǒng)實現(xiàn)了USB協(xié)議中的Mass Storage類協(xié)議和精簡的FAT文件系統(tǒng),能夠?qū)盤中的文件數(shù)據(jù)進(jìn)行讀寫,完成相應(yīng)的文件操作等各種功能。結(jié)果表明:利用該嵌入式USB主機(jī)系統(tǒng)對具體U盤中的文件進(jìn)行讀操作時,平均速度為60~80KB/S,對之進(jìn)行寫操作時,平均速度為40~50KB/S。該系統(tǒng)真正實現(xiàn)了便攜式,擺脫了PC機(jī)對USB設(shè)備的控制,無需PC主機(jī)即可對USB設(shè)備進(jìn)行讀寫操作,具有廣闊的應(yīng)用前景。程序主要采用C語言編寫,因此它可以很方便地移植到其它處理器中。
本文創(chuàng)新之處:目前,市場上脫離PC對U盤操作的單純產(chǎn)品很少,而且有些此功能的產(chǎn)品都有一定的應(yīng)用背景。本設(shè)計開發(fā)了U盤對拷器,留有擴(kuò)展口,可作U盤對拷器用,也可在此基礎(chǔ)上作二次開發(fā)。
參考文獻(xiàn)
[1] 王成儒.USB 2.0原理與工程開發(fā)[M].北京:國防工業(yè)出版社,2004.1
[2] 伊勇,王洪成.單片機(jī)開發(fā)環(huán)境uVision2使用指南及USB固件編程與調(diào)試[M]. 北京:北京航空航天大學(xué)出版社,2004.11
[3] 李群芳 張士軍編.單片微型計算機(jī)與接口技術(shù)(第2版)[M].西安:電子工業(yè)出版社,2005.1
[4] 郭文彬 孫智權(quán)等. 基于NiosⅡ的usb接口模塊設(shè)計[J].微計算機(jī)信息,2006,10-2:278-279。
評論