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