《圈圈教你玩USB》

《圈圈教你玩USB》是作者劉榮專門為廣大USB入門和提高者而編寫的USB入門級教材。2009年1月由北京航空航天出版社出版。作者在經過長期、大量的USB學習和開發後,按照自己的理解以及漢語的思維方式編寫了《圈圈教你玩USB》,同時將USB學習和開發過程中總結的一些經驗和方法溶入了書中。

基本信息

基本信息

出版社:北京航空航天大學出版社;第1版(2009年1月1日)
叢書名:部落格藏經閣叢書
平裝:313頁
語種:簡體中文
開本:16
ISBN:9787811246001,7811246007
條形碼:9787811246001
商品尺寸:22.9x18.3x1.3cm
商品重量:481g
品牌:北京航空航天大學出版社
ASIN:B002470W2I

 《圈圈教你玩USB》 圈圈教你玩USB

編輯推薦

《圈圈教你玩USB》是作者專門為廣大USB入門和提高者而編寫的USB入門級教材。作者在經過長期、大量的USB學習和開發後,按照自己的理解以及漢語的思維方式編寫了《圈圈教你玩USB》,同時將USB學習和開發過程中總結的一些經驗和方法溶入了書中。

《圈圈教你玩USB》的特點足以實例的方式,一步步講解USB設備與驅動程式和應用程式開發的詳細過程及步驟,同時在光碟中附帶了完整的原始碼(C/C++語言)。為了照顧初學者,書中語句儘量做到通俗易懂,少用專業辭彙。

作者簡介

劉榮,一位電子技術及計算機技術愛好者。利用業餘時間學習了大量電子技術及計算機技術相關知識,並設計了很多相關作品。網名“computer00”,也叫“電腦圈圈”,211C中國電子網論壇“技術交流”版版主。個人部落格《電腦圈圈的家當》及《圈圈的USB專區》為業內知名網點。

目錄

第1章 USB概述及協定基礎

1.1USB是什麼
1.2USB的特點
1.3USB的拓撲結構
1.4USB的電氣特性
1.5USB的線纜、插頭及插座
1.6USB的插入檢測機制
1.7USB的描述符及其之間的關係
1.8USB設備的枚舉過程
1.9USB的包結構及傳輸過程
1.9.1USB的包結構及包的分類
1.9.2令牌包
1.9.3數據包
1.9.4握手包
1.9.5特殊包
1.9.6如何處理數據包
1.10USB的四種傳輸類型
1.10.1USB事務
1.10.2批量傳輸
1.10.3中斷傳輸
1.10.4等時傳輸
1.10.5控制傳輸
1.10.6端點類型與傳輸類型的關係
1.10.7傳輸類型與端點支持的最大包長
1.11本章小結

第2章 硬體系統設計

2.1方案及晶片的選定
2.2D12引腳功能說明
2.3D12與AT89S52的連線
2.4串口部分電路
2.5按鍵部分
2.6指示燈部分
2.7IDE接口部分
2.8單片機部分
2.9元件安裝
2.10電路調試
2.11測試程式的編寫和調試
2.11.1建立一個工程
2.11.2為工程添加源檔案
2.11.3KEIL工具列及仿真介紹
2.11.4按鍵驅動的編寫
2.11.5串口驅動的編寫
2.11.6PDIUSBDl2讀寫函式及讀ID的實現
2.12本章小結

第3章 USB滑鼠的實現

3.1USB滑鼠工程的建立
3.2USB的斷開與連線
3.3USB中斷的處理
3.4讀取從主機傳送到端點O的數據
3.5USB標準請求
3.5.1USB標準設備請求的結構
3.5.2GET_DESCRIPTOR請求
3.5.3SET_ADDRESS請求
3.5.4SETCONFIGURATION請求
3.6設備描述符的實現
3.7設備描述符的返回
3.8設定地址請求的處理
3.9配置描述符集合的結構
3.9.1配置描述符的結構
3.9.2接口描述符的結構
3.9.3端點描述符的結構
3.9.4HID描述符的結構
3.10配置描述符集合的實現以及返回
3.11字元串及語言ID請求的實現
3.12設定配置請求的實現
3.13報告描述符的結構及實現
3.14報告的返回
3.15BusHound工具的簡介
3.16本章小結

第4章 USB鍵盤的實現

4.1USB鍵盤工程的建立
4.2設備描述符的實現
4.3配置描述符集合的實現
4.3.1配置描述符
4.3.2接口描述符
4.3.3HID描述符_
4.3.4端點描述符
4.4字元串描述符
4.5報告描述符
4.6輸入和輸出報告的實現
4.7 USB鍵盤實例的測試
4.8再談USBHID的報告描述符
4.9帶滑鼠功能的USB鍵盤(方法一)
4.10帶滑鼠功能的USB鍵盤(方法二)
4.11多媒體USB鍵盤
4.12本章小結

第5章 用戶自定義的USB HID備

5.1MyUsbHid工程的建立
5.2描述符的修改
5.3報告的實現
5.4對用戶自定義的USBHID設備的訪問
5.5訪問HID設備時所用到的相關函式
5.5.1 獲取HID設備的接口類GUID的函式
5.5.2獲取指定類的所有設備信息集合的函式
5.5.3從設備信息集合中獲取一個設備接口信息的函式
5.5.4獲取指定設備接口詳細信息的函式
5.5.5打開設備的函式
5.5.6獲取HID設備屬性的函式
5.5.7從設備讀取數據的函式
5.5.8往設備寫數據的函式
5.5.9通過控制端點O讀取報告的函式
5.5.10通過控制端點O傳送報告的函式
5.5.11關閉句柄的函式
5.5.12需要包含的庫檔案
5.6訪問USBHID設備的上位機軟體的實現
5.6.1上位機程式編寫的思路
5.6.2查找及打開HID設備的代碼
5.6.3讀輸入報告執行緒的代碼
5.6.4寫輸出報告的代碼(傳送LED的狀態)
5.6.5寫輸出報告執行緒的代碼
5.6.6執行緒的創建以及設備插拔事件的註冊
5.6.7對設備狀態改變事件的處理
5.7軟體界面以及使用方法
5.8本章小結

第6章 USB轉串口

6.1串口家族歷史
6.2串口接頭的引腳分布及功能
6.3USB轉串口的實現方法
6.4設備描述符
6.5字元串描述符
……
第7章USBMIDI鍵盤
第8章隨身碟
第9章自定義USB設備及驅動開發
第10章USB過濾驅動開發
附錄第3章實例的完整調試信息
參考文獻
後記

序言

USB作為一種計算機匯流排技術,在如今的個人計算機上已經是必不可少的了。看看我們身邊的計算機外部設備,有多少是通過USB口與計算機連線的?滑鼠、鍵盤、遊戲手柄、印表機、掃瞄器、MP3、數位相機、隨身碟、移動硬碟及移動光碟機等,另外,還有一些我們不太常見的USB設備,例如一些具有USB口的儀表儀器、開發用的調試器、燒錄機、USB網卡、USB耳機、USB話筒及USB電話,甚至一些行動電話(手機)也具備USB口。總之,只要是與計算機通信的外部設備,似乎都可以用USB來連線,這足見USB之強大。
USB之所以使用得如此廣泛,是因為它具有連線簡單、速度快、可擴展性強、支持熱插拔操作和標準統一等特點。由於USB協定詳細地規定了各種參數以及數據結構、格式,因而使得各廠生產出來的設備都能夠很好地相互兼容。不過,這卻給USB設備開發者帶來了一些麻煩。USB設備開發者首先要很清楚USB協定才能開發出符合協定的USB設備,然而USB協定本身是一個比較複雜、龐大的系統,再加上眾多的子類協定,使得很多設計者望而生畏,或者時間上不允許。所以有一些小公司將USB部分外包或者使用別人現成的USB模組來加快開發進度。如果你會開發USB相關設備的話,可能會獲得不少機會喔。不過,雖然圈圈(就是筆者我啦,讀者一定要牢記這點,不然把你弄暈了我可不負責)會一點USB,但目前還是窮光蛋一個。當然,你也可以學圈圈這樣,寫本書出來忽悠忽悠。
雖然USB這么好用,但是教你如何設計USB設備的書在市面上卻是少見,大部分都是對USB協定翻譯,只有少量的內容是實際開發的內容和代碼。圈圈從2003年年底(大二)開始學習USB,花了約一年的時間(主要是利用課餘時間)閱讀了一些USB書籍和文檔後,才真正開始動手做自己的第一個USB設備:一個基於AT89C52+PDIUSBD12的假隨身碟。圈圈自認自己資質不差,卻讓一個小小的USB困擾了這么久,我想除了自己的原因之外,還跟USB協定本身的複雜性和沒有一些好的書籍有很大關係。在整個USB學習過程中主要都是靠自己慢慢摸索,走了一些彎路。現在回過頭再來看看,如果當初能有一個整體的認識,按照合理的步驟來操作,就不會走這么多彎路了。因此圈圈意識到,迫切需要寫一本能讓USB初學者少走彎路、快速入門和上手的書籍。圈圈寫這本書,是真心地想要更多的人能夠學會USB,會.開發USB設備。本書並不是對USB協定簡單地進行翻譯,而是儘量用圈圈自己的語言來進行描述。

後記

經過兩個多月的苦戰,終於完成了本書的初稿。圈圈想說,寫書真的是件挺辛苦的事。就算拿本幾百頁的書,全部敲到計算機中也不容易,何況自己寫幾百頁出來呢。不過看到網上很多網友對本書的期待,以及周圍朋友的支持,給了圈圈很大動力。在這裡圈圈要對他們說聲謝謝。
這是圈圈第一次寫書(應該叫處女作比較專業),所以沒啥經驗,不知道最後出來的效果咋樣。圈圈從小就害怕寫作(讀書時為了應付作文,經常找一些書來抄,或者找家長代勞),語文成績也一直是剛剛及格的水平,所以寫出來的文章乾巴巴的,有點像記流水帳(很多語文老師對圈圈的作文如此評價)。為了讓讀者能夠更容易理解和接受,圈圈儘量使用一些簡單、通俗的句子,有很多地方還有重複的說明,以讓讀者能夠得到確切的答案。如果你覺得本書說得太簡單,或者有些重複,那很正常,因為這本書主要面向的是初學者。
限於圈圈的水平,同時為了減少讀者的負擔,後記也就只能湊出這么幾百個字了。如果你對本書有什麼好的建議,請不要吝嗇,可以給圈圈發郵件或者留言;如果你覺得本書寫得不錯,請多多宣傳一下;如果你覺得本書寫得不好,也可以給圈圈扔磚頭,因為鮮花與磚頭永遠是共同存在的;如果你在找書墊桌子腳時,請不要用本書,如果真的要用,也請麻煩順手把封面朝上……
最後,感謝廣大網友、讀者以及家人和朋友支持,感謝北航出版社,感謝胡編,感謝21IC,感謝CEPARK,感謝edn,感謝OURAVR,感謝圈圈,感謝CCTV……

文摘

要正確地使用一個晶片,首先要閱讀它的數據手冊(datasheet)。數據手冊是晶片廠商提供給用戶使用該晶片的技術文檔,通常包括晶片功能簡介、方框圖、內部工作原理、暫存器排布、控制命令、引腳分布、電路圖和封裝等各種重要信息。數據手冊通常可從晶片公司的網站下載,或者在一些技術論壇也會提供下載。用該晶片的型號加pdf作為關鍵字,使用搜尋引擎搜尋通常也可以搜尋到數據手冊。初學者一定要學會去查找和閱讀數據手冊,不要怕麻煩。拿到數據手冊後,先大概瀏覽一遍,看自己需要的信息在哪裡。實際使用時,再對需要的信息細讀。
下面介紹D12的引腳分布。圖2.2.1就是從D12的數據手冊中複製來的引腳分布圖。
通常,從這些引腳名上可以看出很多有用的信息。例如,圖2.2.1中DATA(O>~DATA<7>表示數據口,而GND則表示地線。ALE(AddrassLatchEnable)也是很常用的,是地址鎖存使能;CS(ChipSelect)表示片選,後面加個N就表示低電平有效(有時也會在標號上加橫槓或者在前面加斜槓),即低電平時選中該晶片;INT表示中斷請求信號;RD表示讀選通信號;WR表示寫選通信號;RESET表示復位。這些引腳後面的N都表示它們是低電平有效的。XTAL1和XTAL2是接晶體的。

相關詞條

相關搜尋

熱門詞條

聯絡我們