嵌入式USB主機擴展應用
可以說(shuō),嵌入式USB主機,是整個(gè)USB系統發(fā)展的未來(lái)和趨勢。
5設計嵌入式USB主機
傳統意義的USB開(kāi)發(fā),僅僅是對USB外設的開(kāi)發(fā),USB底層驅動(dòng)程序和USB主控制器驅動(dòng)程序都由Windows等操作系統提供,有關(guān)這些驅動(dòng)程序的細節過(guò)程都蒙著(zhù)一層神秘的面紗。所以,要設計USB主機,就須設計這兩部分驅動(dòng)程序,Windows源碼不公開(kāi),這些細節資料就無(wú)從得到。
因此,設計就要遵循USB主機的協(xié)議規范??梢蚤営[參考文獻。具體的設計就要包括固件Firmware和硬件兩大部分。
硬件上首先要選擇USB主機的接口芯片?,F在比較成熟的有Cypress公司的SL811HS和Philips公司的ISP1161。并且選用一款合適的MCU和MPU來(lái)控制。那么這款MCU的選用需要比較講究。因為,整個(gè)USB協(xié)議框架是非常復雜的。那么這就需要MCU具有足夠的RAM,用以處理大量的數據緩沖區、大量的變量、數據存儲等等。一般8KB的RAM是最最基本的要求,而且越大越好,當然,小到2K,也可以實(shí)現基本功能,但是已經(jīng)非常捉襟見(jiàn)肘了。其次系統要有大量的程序存儲區,一般Flash的需求大概在10~60KB左右。之所以有如此大的范圍,這是因為USB定義很多的類(lèi),用以支持不同類(lèi)型的USB外設。每一類(lèi)就有其不同的驅動(dòng)程序,因此,設計的嵌入式USB主機支持的類(lèi)越多,那么需要的程序空間就越大。有個(gè)例子就是,要實(shí)現MassStorage類(lèi)就需要10K所有的Flash空間。
固件方面,就是要實(shí)現完整的USB主機協(xié)議類(lèi),包括設備的上電檢測、設備重起、分配地址、讀取設備的各種描述符等基本的操作,更重要的是要實(shí)現每一類(lèi)USB設備的協(xié)議棧。簡(jiǎn)單來(lái)說(shuō),每一類(lèi)設備的協(xié)議棧,就是一個(gè)特定的驅動(dòng)程序,傳統的做法,我們是在PC上使用WDM來(lái)編制驅動(dòng)程序。這里,在我們的嵌入式系統的開(kāi)發(fā)環(huán)境里,我們就要像開(kāi)發(fā)嵌入式的軟件一樣,可以用C語(yǔ)言、可以用匯編語(yǔ)言等來(lái)實(shí)現。限于篇幅所限,這里,無(wú)法進(jìn)一步展開(kāi)。筆者將在以后進(jìn)一步展開(kāi)討論。
筆者目前就已經(jīng)設計出了一款USB主機的演示系統,選用的USB主機接口芯片是Cypress公司的SL811HS,MCU選用的是Motorola公司的16位單片機MC68HC912D60A。整個(gè)USB主機系統支持的是USB的MassStorage類(lèi),也就是海量存儲類(lèi),這一類(lèi)是USB專(zhuān)門(mén)為支持磁盤(pán)存儲功能設計的。因此,現在的結果是,這個(gè)嵌入式的USB主機能夠具有同裝有Windows2000操作系統的PC一樣的功能,能夠直接對USB的移動(dòng)存儲設備進(jìn)行讀取,能夠自動(dòng)識別設備并把設備配置為標準的磁盤(pán)驅動(dòng)器,因此能夠直接進(jìn)行文件的讀取、格式化等一系列操作。為了通用,選用了朗科公司的USB優(yōu)盤(pán)作為外設。目前整個(gè)系統可以直接對優(yōu)盤(pán)進(jìn)行操作,讀取優(yōu)盤(pán)中的文件、寫(xiě)文件到優(yōu)盤(pán)中,等等。
6嵌入式USB主機的其他應用前景分析
1.以嵌入式USB主機做為核心的數據采集系統,可以應用在大量工業(yè)和民用領(lǐng)域中,比如城市輕軌鐵路的數據采集黑匣子中。中國幅員遼闊,鐵路線(xiàn)縱橫馳騁,如果每輛機車(chē)上都安裝一套這樣的“黑匣子”系統,那么需求量將是非常大的,同時(shí)將帶來(lái)很大的經(jīng)濟效益和市場(chǎng)前景。
2.嵌入式USB主機作為USB的延伸,國外處于剛剛起步的階段,僅有不多的半導體公司提供接口芯片,還沒(méi)有完整的嵌入式USB主機產(chǎn)品上市。廠(chǎng)家和USB論壇所能提供的Demo也限于依靠嵌入式操作系統WinCE和Linux等。國內的研究也剛開(kāi)始起步。因此,項目研究具有一定的領(lǐng)先和前瞻性。
3.在開(kāi)發(fā)USB主機,編寫(xiě)底層驅動(dòng)程序的同時(shí),注意整個(gè)系統的可移植性,使得有關(guān)USB通信的各個(gè)任務(wù)模塊化,盡量編寫(xiě)API。這樣,就可以在不同的操作系統、不同的
主機的功能。這就可以為日后嵌入式USB主機的產(chǎn)品化和進(jìn)一步研究打好基礎。這個(gè)工作有待進(jìn)一步完善。
參考文獻
1 馬偉。 OTG補充協(xié)議開(kāi)辟USB的新篇章,電子產(chǎn)品世界,2002年6月A版
2 SL811HS Datasheet,Cypress,2001
3 Open Host Controller Interface Specification for USB,Compaq,Microsoft,National Semiconductor,1999
4 Enhanced Host Controller Interface Specification for USB, Intel, 2001
5 USB Specification 1.1,1998
6 2.0 datasheet http://www.dzsc.com/datasheet/2.0_1758666.html.
7 device datasheet http://www.dzsc.com/datasheet/device_1397784.html.
8 SL811HS datasheet http://www.dzsc.com/datasheet/SL811HS_611618.html.
9 ISP1161 datasheet http://www.dzsc.com/datasheet/ISP1161_410194.html.
11 MC68HC912D60A datasheet http://www.dzsc.com/datasheet/MC68HC912D60A_1021844.html.
12 Demo datasheet http://www.dzsc.com/datasheet/Demo_2558744.html.
評論