多功能USB組合設備的結構設計
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所示。本文引用地址:http://www.ex-cimer.com/article/161413.htm
結語
本文簡要分析了多功能USB設備兩種結構模型的不同,重點介紹了組合設備的設計方法?;谠撛O計方法,采用Holtek的8位單片機HT82 K95E芯片設計了一款鼠標鍵盤組合設備。在開發(fā)此組合設備的過程中,可以分別調試兩個接口,如果每個接口都可正確運行,接著就可編寫兩個接口的描述符,實現(xiàn)組合設備的功能。組合設備對USB控制器可提供的端點數(shù)量和這些端點所支持的傳輸類型有所限制。USB控制器需較好的支持設備A和設備B間的傳輸協(xié)議。目前,不少芯片廠商也逐漸提供了組合設備的芯片方案。
評論