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