USB鍵盤特殊功能鍵的實現

來源:互聯網
上載者:User

摘要: 本文較為詳盡地介紹了在USB多媒體鍵盤系統中,特殊功能鍵的實現方法。
關鍵詞: 通用序列匯流排;系統特殊功能鍵;使用者特殊功能鍵;報告描述符

引言

    隨著電腦介面技術的日新月異,傳統的PS2鍵盤已不再對市場形成壟斷,USB鍵盤正在逐漸擴大市場佔有率。與此同時,USB鍵盤也在不斷完善自身的功能,由於傳統的107鍵結構鍵盤已無法滿足使用者的需要,所以帶有特殊功能鍵的USB多媒體鍵盤也就應運而生。

USB

    USB介面具有如下優點:隨插即用(Plug and Play)的特性,並具有自動檢測的功能;可擴充到127個裝置,支援熱插拔,無需關閉系統電源;最高可達480Mbps傳輸速率(USB2.0協議支援,USB1.1協議最大支援12Mbps),可滿足大多數裝置的傳輸使用需要。

    USB的資料轉送共有四種類型:(1)控制傳輸;(2)中斷傳輸;(3)批量傳輸;(4)同步傳輸。在USB鍵盤中只用到控制傳輸和中斷傳輸。所有的USB裝置,必須通過系統列舉才可以正常使用。USB協議規定幾種必需的描述符:裝置描述符,配置描述符,介面描述符,端點描述符,HID描述符和報告描述符,鍵盤裝置列舉的過程,是裝置根據自身的具體實際把描述符按主機要求的順序和格式,通過D+和D-兩路差分資料線,發送給主機的根集線器。列舉成功後,裝置管理員中顯示此裝置為人體學輸入裝置[1]。列舉簡單流程1所示。

             圖1  裝置列舉流程圖

報告描述符

    一個USB多媒體鍵盤,共包含三種按鍵:普通按鍵,系統特殊功能鍵和使用者特殊功能鍵,其中系統特殊功能鍵有Sleep、Power和Wakeup三個,使用者特殊功能鍵較多,常用的有www, Mail , My Computer等。在USB列舉中,對鍵盤的特殊功能鍵的描述,主要是通過鍵盤的報告描述符(表1,表2)來實現的,即按照USB協議[2]的要求,將給定的報告描述符發送給主機,主機通過分析接收到的報告描述符,判斷出鍵盤的按鍵資訊,然後實現對按鍵的響應。下面給出列舉的報告描述符並詳細說明。

    描述符中0980表示其下的描述符是關於系統特殊功能鍵,定義頭位元組為02,第二個位元組表示索引值資訊,報告數值為3,表示有三個不同的健值需要發送。發送時,第二位元組每位從低位到高位順序置1,以表示不同索引值,向主機發送的資料如下:
POWER:
00000010 00000001 即02 01
SLEEP:
00000010 00000010 即02 02
WAKEUP:
00000010 00000100 即02 04
當按鍵抬起時,向主機發送零幀:即02 00

    報告描述符中050c,0901表示以下是使用者特殊功能鍵,定義字頭是03,報告長度為8,需要8位即一個位元組來表示所有的索引值資訊。不同的索引值,是通過對位元組從低到高的8位順序置1來表示,對於我們的報告描述符,按鍵PLAY/PAUSE送入主機的索引值應為:    00000011 00000001 即03 01 

    以下列舉三個常用按鍵按下時鍵盤向主機發送的索引值:

WWW:  報告描述符中第六個,送入主機的索引值應把第六位置1,即:
00000011 00100000  即03 20  

SEARCH: 報告描述符中第五個,送入主機的索引值應把第五位置1,即:
00000011 00010000  即03 10  

MAIL:  報告描述符中第二個,送入主機的索引值應把第二位置1,即:
00000011 00000010  即03 02 

    當按鍵抬起時,向主機發送零幀:   即03 00

系統方案

    我們使用Altera公司1K100QC208晶片作為系統的核心晶片,實現鍵盤掃描,編碼,USB介面以及整體系統控制的功能,配以Philips公司的P11A晶片,作為USB裝置的和主機之間的 transceiver,外加一個改裝後的帶特殊功能鍵的鍵盤,組成USB帶特殊功能鍵的鍵盤系統(圖2)。

               圖2  系統實現

結語

    通過以上方案,我們按照USB協議規定和主機通訊,實現了USB多媒體鍵盤特殊功能鍵部分的功能。

參考文獻:

1.  “Universal Serial Bus Specification Revision 1.1”,1998
2.  “Device Class Definition for Human Interface Devices(HID)”,2001

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.