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