多功能USB組合設備的結(jié)構(gòu)設計
摘要:針對鼠標和鍵盤等人機接口設備存在功能單一的缺點,不能完全滿足現(xiàn)代社會的需求,提出了一種多功能USB設備的設計方法。多功能USB設備是一種復雜的USB設備,它雖然只有一個USB接口,但卻具有實現(xiàn)多種類型設備的功能。以USB多媒體鍵盤編碼器HT82K95E為核心,完成了兩種人機接口設備的枚舉過程。還對USB復合設備和USB組合設備兩種基本設計方法進行了比較,并對USB組合設備的實現(xiàn)進行了詳細的介紹。
關(guān)鍵詞:人機接口設備;HT82K95E;復合設備;組合設備
引言
隨著USB通信技術(shù)的不斷發(fā)展,USB接口得到了廣泛的應用。單一功能的USB設備,如USB鍵盤、USB鼠標、USB調(diào)制解調(diào)器等,已經(jīng)不能滿足人們對USB設備功能的要求。多功能的USB設備正不斷涌現(xiàn)出來,常見的有帶話筒的USB攝像頭、USB可視電話等。因此,研究多功能USB設備對于滿足人們對新型USB設備的需求是十分必要的。
1 多功能USB設備的結(jié)構(gòu)模型
多功能USB設備通常是通過單個或多個USB控制器連接不同類型的設備來實現(xiàn)的。而在一個USB接口上實現(xiàn)多個設備有兩種方法:一種是復合設備(Compound Device),一種是組合設備(Composite Device)。圖1和圖2分別給出了復合設備和組合設備的結(jié)構(gòu)模型。
實際上,USB設備應該被視為不同的功能。多個功能可以被封裝在一起形成一個物理設備。所以復合設備其實就是幾個設備通過一個USB Hub形成的單一設備,復合設備內(nèi)的Hub和與Hub相連的各個功能會分配各自的設備地址。組合設備也就是具有多個接口的設備,每個接口代表一個獨立的設備,但是組合設備只有一個設備地址。
采用復合設備方法開發(fā)多功能USB設備時,其開發(fā)過程同開發(fā)兩種不同類型的USB設備相同,開發(fā)難度較低。本文重點介紹組合設備的設計方法,并舉例加以實現(xiàn)。
2 組合設備的設計方法
2.1 組合設備的特點
USB組合設備是指具有多個接口且接口間相互獨立的USB設備。一個USB設備只有一個設備地址,可以將不同的功能與不同的接口對應,來開發(fā)多功能USB設備。
組合設備采用一個USB控制芯片,同時接A設備和B設備。主機可以同時與A設備和B設備通信。
2.2 組合設備的描述符結(jié)構(gòu)
如圖3所示,以兩個接口的組合設備為例,來說明組合設備的描述符結(jié)構(gòu)。一個設備描述符下有一個配置描述符,一個配置描述符下可以有多個接口描述符,分別對應不同的設備。每個接口描述符下又包含多個端點描述符。一個USB邏輯設備對USB系統(tǒng)來說就是一個端點集合。端點可以根據(jù)它們實現(xiàn)的接口來分類。所有的USB設備都需要實現(xiàn)一個缺省的控制方法。這種方法將端點0作為輸入端點,同時也將端點0作為輸出端點。USB系統(tǒng)用這個缺省方法初始化及一般地使用邏輯設備(即設置此設備)。設備可以有除端點0以外的其他端點,這取決于這些設備的實現(xiàn)。低速設備除端點0外,只能有2個額外的可選端點。而高速設備可具有的額外端點數(shù)僅受限于協(xié)議的定義。除缺省控制通道的缺省端點外,其他端點只有在設備被設置后才可使用。而且除端點0外,其他端點在不同接口間不能共享。
組合設備使用一個USB控制芯片,通過控制不同的接口與不同的設備進行通信,解決了主機與組合設備內(nèi)各個設備數(shù)據(jù)流的區(qū)分問題。
3 組合設備的硬件實現(xiàn)
3.1 USB接口部分
設備采用Holtek公司的8位USB多媒體鍵盤編碼器HT82K95E作為本系統(tǒng)的核心。鼠標、鍵盤等HID類設備為低速設備,所以該設備要能同時實現(xiàn)鼠標和鍵盤數(shù)據(jù)同PC機的雙向傳輸,MCU首先必須具有低速的USB接口,并且支持3個端點(包括端點0)。綜合考慮,選用了HT82K95E作為本系統(tǒng)的主控芯片。由于鼠標和鍵盤均屬于低速設備,所以應在USB信號線上加1.5kΩ的上拉電阻。
3.2 MCU部分
USB接口部分原理圖如圖4所示。MCU的復位電路采用由R1和C1組成的RC積分電路來實現(xiàn)上電復位功能。上電瞬間,由于電容電壓不能突變,所以復位引腳為低電平,然后電容開始緩慢充電,復位引腳電位開始升高,最后變?yōu)楦唠娖?,完成芯片的上電復位。HT82K95E微控制器內(nèi)部還包含一個低電壓復位電路(LVR)用于監(jiān)視設備的供電電壓。如果設備的供電電壓下降到0.9VLVR的范圍內(nèi)并且超過1 ms的時間。那么LVR就會自動復位設備。
應當注意的是,對于該設備的復位電路,還應加一個BAT54SW二極管,接法如圖4中D1所示。如果不加D1,設備在第一次使用時能夠正常復位,但在以后的使用中卻無法正常復位,原因是電容中的電荷無法釋放掉,而D1可以通過整個電路快速釋放掉電容中的電荷。
該組合設備采用HT82K95E USB控制芯片,通過對兩個接口的管理,實現(xiàn)了鼠標和鍵盤的功能。
4 固件設計
USB固件程序是USB設備功能的核心。對于HID設備,其主要的功能設計都是在固件程序中進行的。這里采用Holtek C語言進行帶鍵盤的鼠標組合設備的開發(fā)。
HT82K95E芯片的ROM空間是按頁(page)來劃分的,1頁為256個字。這樣,整個ROM空間正好劃分為若干連續(xù)的頁。單片機ROM中的任何區(qū)域都可以用來查表。在這里只介紹Holtek C中的一種查表指令:TABRDL[m]。該指令用于查ROM中最后1頁的數(shù)據(jù)。HT82K95E具有表指針寄存器TB HP,在使用TABRDL指令時,TBHP默認為最后1頁的首址高位。通過查表,表格的低位字節(jié)送入[m],高位字節(jié)送入TBLH寄存器。
在固件設計中,將描述符存儲在ROM的最后1頁,當主機請求設備的各種描述符時,通過TABRDL指令將描述符從最后1頁取出,并傳送給主機,完成設備的枚舉過程。該組合設備的描述符在下面給出。
ASM_CONFIG_LEN為配置描述符的大小,其值為配置描述符、接口描述符、HID描述符和端點描述符的大小的總和。ASM_ENTlTY_LEN_0為鼠標報告描述符的大小,ASM_ENTITY_LEN_1為鍵盤報告描述符的大小。描述符中其他各項的意義在本文中不作詳細解釋,通過使用周立功公司的USB分析儀USBAnalyser,可分析出該組合設備的枚舉過程流程,如圖5所示。
結(jié)語
本文簡要分析了多功能USB設備兩種結(jié)構(gòu)模型的不同,重點介紹了組合設備的設計方法?;谠撛O計方法,采用Holtek的8位單片機HT82 K95E芯片設計了一款鼠標鍵盤組合設備。在開發(fā)此組合設備的過程中,可以分別調(diào)試兩個接口,如果每個接口都可正確運行,接著就可編寫兩個接口的描述符,實現(xiàn)組合設備的功能。組合設備對USB控制器可提供的端點數(shù)量和這些端點所支持的傳輸類型有所限制。USB控制器需較好的支持設備A和設備B間的傳輸協(xié)議。目前,不少芯片廠商也逐漸提供了組合設備的芯片方案。