HID類鍵盤的報告描述符的理解.doc

HID類鍵盤的報告描述符的理解.doc

ID:49924753

大?。?13.00 KB

頁數(shù):6頁

時間:2020-03-05

HID類鍵盤的報告描述符的理解.doc_第1頁
HID類鍵盤的報告描述符的理解.doc_第2頁
HID類鍵盤的報告描述符的理解.doc_第3頁
HID類鍵盤的報告描述符的理解.doc_第4頁
HID類鍵盤的報告描述符的理解.doc_第5頁
資源描述:

《HID類鍵盤的報告描述符的理解.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫

1、USB學(xué)習(xí)小記-HID類鍵盤的報告描述符的理解前言?  斷斷續(xù)續(xù)的學(xué)習(xí)了將近三個月,才把USB的HID類搞明白,速度真是夠慢的。利用晚上+周末的時間學(xué)習(xí)自己的東西確實是必要的,不過效率是有點低,以后要更專注一些才行,希望自己能做到吧?! ≡趯W(xué)習(xí)過程中,剛開始主要參考了周立功編寫的一本《PDIUSBD12USB固件編程與驅(qū)動開發(fā)》,后面的學(xué)習(xí)主要參考電腦圈圈的資料包,包括里面的HID類的英文協(xié)議文檔,還有一位臺灣前輩幾年前寫的幾篇文章,還有網(wǎng)絡(luò)下有下得到的一些例程。在此感謝各位大蝦前輩的分享。?一、學(xué)習(xí)流程  1,先大致看下USB1.1中文版的協(xié)議(就是網(wǎng)上能找到的翻譯版),先了解一

2、下USB1.1的工作流程(可能此時的你會對其中很多內(nèi)容都很含糊,不過沒關(guān)系,請堅持?。弧 ?,選擇一款最常用的USB芯片,比如我選擇的NXP的PDIUSBD12.有很多使用該芯片的源碼可以在上網(wǎng)搜索得到,而且周立功公司為其寫了一本書,前面的章節(jié)對USB的工作流程作了一個簡單而又清晰的講解,而不致讓人陷入?yún)f(xié)議的海洋里;  3,有了對USB1.1協(xié)議的大致了解,選好了開發(fā)的平臺(我剛好手上有一塊周立功公司的EASEARM2200的開發(fā)板,上面有D12)之后,先跑一下附帶的例程(此開發(fā)板配套的例程是基于UCOS2系統(tǒng)的,剛開始用它來參考肯定暈)。沒有能跑的例程,那就上網(wǎng)找一下經(jīng)驗證的例

3、程,比如電腦圈圈在EDNCHINA建立的USB學(xué)習(xí)小組里有很好的幾個例程,而且都是基于51+D12的,所以極具參考價值。我是參考周立功公司出的那本書來學(xué)習(xí)的,電腦圈圈的例程與此書的例子書寫風(fēng)格較相似,所以可以互相參考。如果也沒有開發(fā)板,那可購買一套電腦圈圈他們搞活動的套件或者直接用51+D12自己搭一下,這樣就可以直接用電腦圈圈寫的例程了,可以避免走很多彎路?! ?,有了例程的直觀印象后,此時可以上BUSHOUND5.0了。此軟件可以觀察到USB設(shè)備與主機(PC)之間的通訊數(shù)據(jù),特別那11個標準請求的理解,通過此軟件的觀察,可以更好理解其相互之間是如何完成這個握手枚舉過程的?! ?

4、,好了,有了之前的準備工作,是否打算自己做一個設(shè)備了呢?嗯,如果學(xué)習(xí)是從易到難,那效率是事半功倍。USB分為好幾個大類,最簡單的類是HID類,即人機接口類,那可以從此入手。最常見的人機接口類設(shè)備就是鼠標鍵盤了。所以我們可以動手制作一個鼠標或鍵盤作為第一個實踐例子。  6,在真正動手寫程序之前,還需要加深對USB枚舉過程的理解和熟悉,特別是其流程。而其中最重要的就是對11個標準請求的理解了。枚舉的過程就是設(shè)備對主機發(fā)過來的這些請求進行正確響應(yīng),告訴主機,“我”是一個什么樣的設(shè)備,各種屬性均是什么,完成枚舉后,主機才能根據(jù)“我”的屬性,對“我”發(fā)送過去的數(shù)據(jù)進行正確的解釋?! ?,OK

5、,那開始寫程序了,我們選擇做一個鍵盤作為第一個例子。用D12的朋友,在閱讀過D12的數(shù)據(jù)手冊后,參考電腦圈圈的例子,看其最底層的驅(qū)動是如何寫的,先把這部分的驅(qū)動完成,再談協(xié)議的實現(xiàn)。?《1》USB器件最底層的驅(qū)動編寫;?《2》11個標準請求函數(shù)的編寫;?《3》6個HID類請求函數(shù)的編寫;(此6個函數(shù)很簡單)?《4》USB中斷部分的編寫,可用查詢或中斷法,根據(jù)D12的中斷寄存器的值,去調(diào)用11個標準請求函數(shù);?《5》編寫描述符;鍵盤要用到的描述符包括:1,設(shè)備描述符,2,配置描述符,3,接口描述符,4,HID描述符,5,端點描述符,6,報告描述符,7,字符串描述符。其中4,6為HID

6、類專有的描述符,7是可選的?! ‘?dāng)完成上面5個部分的函數(shù)編寫后,如果編寫正確,如果你對枚舉流程理解正確,如果描述符沒錯(可直接使用網(wǎng)上的例子的),那么此時應(yīng)該能夠枚舉成功了,如果不正確,請分部檢查以上5個部分的函數(shù)?! ?,完成第7步后,能枚舉成功,可以說是成功一大半了。此時就考慮如何發(fā)數(shù)據(jù)發(fā)出去即可。對于HID類設(shè)備,特別是鼠標鍵盤這類的,只需你能按照報告描述符所描述的格式,把數(shù)據(jù)發(fā)送過去,那么PC端即會對你所發(fā)送的數(shù)據(jù)進行響應(yīng)了,也就是你的鍵盤能輸入數(shù)據(jù)了?! ≌麄€HID類的,對于鍵盤鼠標這類設(shè)備的開發(fā)即可算是結(jié)束了。雖然步驟就是那么多,不過想最后成功,需要參考大量的資料,最重

7、要是是英文的HID協(xié)議,里面有對描述符的詳細講解,還有例子。還有周立功公司的那本書,雖然后面的看不懂也暫時用不上,不過前面的結(jié)合D12這個芯片還是很有參考價值的。其它的書可以先不看吧,覺得沒看也沒什么。?二、鍵盤的報告描述符的理解  在參考別人的例程實現(xiàn)了鍵盤跑起來的時候,你這時候應(yīng)該會想問的是,為什么描述符要這樣寫呢?  好的,我當(dāng)初也有同樣的疑問,那下面來簡單說說鍵盤的報告描述符的含義。其它的描述符含義很明顯,這里就不作詳細講解?! 蟾婷枋龇荋ID類設(shè)備最重要

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。