多功能USB組合設備的結構設計
4 固件設計
USB固件程序是USB設備功能的核心。對于HID設備,其主要的功能設計都是在固件程序中進(jìn)行的。這里采用Holtek C語(yǔ)言進(jìn)行帶鍵盤(pán)的鼠標組合設備的開(kāi)發(fā)。
HT82K95E芯片的ROM空間是按頁(yè)(page)來(lái)劃分的,1頁(yè)為256個(gè)字。這樣,整個(gè)ROM空間正好劃分為若干連續的頁(yè)。單片機ROM中的任何區域都可以用來(lái)查表。在這里只介紹Holtek C中的一種查表指令:TABRDL[m]。該指令用于查ROM中最后1頁(yè)的數據。HT82K95E具有表指針寄存器TB HP,在使用TABRDL指令時(shí),TBHP默認為最后1頁(yè)的首址高位。通過(guò)查表,表格的低位字節送入[m],高位字節送入TBLH寄存器。
在固件設計中,將描述符存儲在ROM的最后1頁(yè),當主機請求設備的各種描述符時(shí),通過(guò)TABRDL指令將描述符從最后1頁(yè)取出,并傳送給主機,完成設備的枚舉過(guò)程。該組合設備的描述符在下面給出。


ASM_CONFIG_LEN為配置描述符的大小,其值為配置描述符、接口描述符、HID描述符和端點(diǎn)描述符的大小的總和。ASM_ENTlTY_LEN_0為鼠標報告描述符的大小,ASM_ENTITY_LEN_1為鍵盤(pán)報告描述符的大小。描述符中其他各項的意義在本文中不作詳細解釋?zhuān)ㄟ^(guò)使用周立功公司的USB分析儀USBAnalyser,可分析出該組合設備的枚舉過(guò)程流程,如圖5所示。本文引用地址:http://dyxdggzs.com/article/161413.htm
結語(yǔ)
本文簡(jiǎn)要分析了多功能USB設備兩種結構模型的不同,重點(diǎn)介紹了組合設備的設計方法?;谠撛O計方法,采用Holtek的8位單片機HT82 K95E芯片設計了一款鼠標鍵盤(pán)組合設備。在開(kāi)發(fā)此組合設備的過(guò)程中,可以分別調試兩個(gè)接口,如果每個(gè)接口都可正確運行,接著(zhù)就可編寫(xiě)兩個(gè)接口的描述符,實(shí)現組合設備的功能。組合設備對USB控制器可提供的端點(diǎn)數量和這些端點(diǎn)所支持的傳輸類(lèi)型有所限制。USB控制器需較好的支持設備A和設備B間的傳輸協(xié)議。目前,不少芯片廠(chǎng)商也逐漸提供了組合設備的芯片方案。
評論