出版時間:2009-1 出版社:北京航空航天大學出版社 作者:劉榮 頁數(shù):313
Tag標簽:無
前言
USB作為一種計算機總線技術,在如今的個人計算機上已經(jīng)是必不可少的了??纯次覀兩磉叺挠嬎銠C外部設備,有多少是通過USB口與計算機連接的?鼠標、鍵盤、游戲手柄、打印機、掃描儀、MP3、數(shù)碼相機、U盤、移動硬盤及移動光驅等,另外,還有一些我們不太常見的USB設備,例如一些具有USB口的儀表儀器、開發(fā)用的調試器、燒錄機、USB網(wǎng)卡、USB耳機、USB話筒及USB電話,甚至一些移動電話(手機)也具備USB口。總之,只要是與計算機通信的外部設備,似乎都可以用USB來連接,這足見USB之強大。USB之所以使用得如此廣泛,是因為它具有連接簡單、速度快、可擴展性強、支持熱插拔操作和標準統(tǒng)一等特點。由于USB協(xié)議詳細地規(guī)定了各種參數(shù)以及數(shù)據(jù)結構、格式,因而使得各廠生產出來的設備都能夠很好地相互兼容。不過,這卻給USB設備開發(fā)者帶來了一些麻煩。USB設備開發(fā)者首先要很清楚USB協(xié)議才能開發(fā)出符合協(xié)議的USB設備,然而USB協(xié)議本身是一個比較復雜、龐大的系統(tǒng),再加上眾多的子類協(xié)議,使得很多設計者望而生畏,或者時間上不允許。所以有一些小公司將USB部分外包或者使用別人現(xiàn)成的USB模塊來加快開發(fā)進度。如果你會開發(fā)USB相關設備的話,可能會獲得不少機會哦。不過,雖然圈圈(就是筆者我啦,讀者一定要牢記這點,不然把你弄暈了我可不負責)會一點USB,但目前還是窮光蛋一個。當然,你也可以學圈圈這樣,寫本書出來忽悠忽悠。雖然USB這么好用,但是教你如何設計USB設備的書在市面上卻是少見,大部分都是對USB協(xié)議翻譯,只有少量的內容是實際開發(fā)的內容和代碼。圈圈從2003年年底(大二)開始學習USB,花了約一年的時間(主要是利用課余時間)閱讀了一些USB書籍和文檔后,才真正開始動手做自己的第一個USB設備:一個基于AT89C52+PDIUSBD12的假U盤。圈圈自認自己資質不差,卻讓一個小小的USB困擾了這么久,我想除了自己的原因之外,還跟USB協(xié)議本身的復雜性和沒有一些好的書籍有很大關系。在整個USB學習過程中主要都是靠自己慢慢摸索,走了一些彎路?,F(xiàn)在回過頭再來看看,如果當初能有一個整體的認識,按照合理的步驟來操作,就不會走這么多彎路了。因此圈圈意識到,迫切需要寫一本能讓USB初學者少走彎路、快速入門和上手的書籍。圈圈寫這本書,是真心地想要更多的人能夠學會USB,會.開發(fā)USB設備。本書并不是對USB協(xié)議簡單地進行翻譯,而是盡量用圈圈自己的語言來進行描述。
內容概要
通過U盤、USB鼠標、USB鍵盤、USB MIDI鍵盤、USB轉串口、自定義的USB HID設備和自定義的USB設備等幾個具體的USB例子,一步步講解USB設備及驅動程序和應用程序開發(fā)的詳細過程和步驟。最后兩章介紹USB WDM驅動開發(fā),并給出一個簡單的USB驅動和USB上層過濾驅動的實例。 本書附帶的光盤中有USB學習板的電路圖以及所有實驗的完整源代碼包(C/C++語言)。 本書的讀者對象主要是USB設備與驅動設計的初學者和提高者,以及所有對圈圈的支持者。
作者簡介
劉榮,一位電子技術及計算機技術愛好者。利用業(yè)余時間學習了大量電子技術及計算機技術相關知識,并設計了很多相關作品。網(wǎng)名“computer00”,也叫“電腦圈圈”,211C中國電子網(wǎng)論壇“技術交流”版版主。個人博客《電腦圈圈的家當》及《圈圈的USB專區(qū)》為業(yè)內知名網(wǎng)點。
書籍目錄
第1章 USB概述及協(xié)議基礎 1.1 USB是什么 1.2 USB的特點 1.3 USB的拓撲結構 1.4 USB的電氣特性 1.5 USB的線纜、插頭及插座 1.6 USB的插入檢測機制 1.7 USB的描述符及其之間的關系 1.8 USB設備的枚舉過程 1.9 USB的包結構及傳輸過程 1.9.1 USB的包結構及包的分類 1.9.2 令牌包 1.9.3 數(shù)據(jù)包 1.9.4 握手包 1.9.5 特殊包 1.9.6 如何處理數(shù)據(jù)包 1.10 USB的四種傳輸類型 1.10.1 USB事務 1.10.2 批量傳輸 1.10.3 中斷傳輸 1.10.4 等時傳輸 1.10.5 控制傳輸 1.10.6 端點類型與傳輸類型的關系 1.10.7 傳輸類型與端點支持的最大包長 1.11 本章小結第2章 硬件系統(tǒng)設計 2.1 方案及芯片的選定 2.2 D12引腳功能說明 2.3 D12與AT89S52的連接 2.4 串口部分電路 2.5 按鍵部分 2.6 指示燈部分 2.7 IDE接口部分 2.8 單片機部分 2.9 元件安裝 2.10 電路調試 2.11 測試程序的編寫和調試 2.11.1 建立一個工程 2.11.2 為工程添加源文件 2.11.3 KEIL工具欄及仿真介紹 2.11.4 按鍵驅動的編寫 2.11.5 串口驅動的編寫 2.11.6 PDIUSBDl2讀寫函數(shù)及讀ID的實現(xiàn) 2.12 本章小結第3章 USB鼠標的實現(xiàn) 3.1 USB鼠標工程的建立 3.2 USB的斷開與連接 3.3 USB中斷的處理 3.4 讀取從主機發(fā)送到端點O的數(shù)據(jù) 3.5 USB標準請求 3.5.1 USB標準設備請求的結構 3.5.2 GET_DESCRIPTOR請求 3.5.3 SET_ADDRESS請求 3.5.4 SETCONFIGURATION請求 3.6 設備描述符的實現(xiàn) ……第4章 USB鍵盤的實現(xiàn)第5章 用戶自定義的USB HID設備第6章 USB轉串口第7章 USB MIDI鍵盤第8章 U盤第9章 自定義USB設備及驅動開發(fā)第10章 USB過濾驅動開發(fā)附錄 第3章實例的完整調試信息參考文獻后記
章節(jié)摘錄
插圖:要正確地使用一個芯片,首先要閱讀它的數(shù)據(jù)手冊(datasheet)。數(shù)據(jù)手冊是芯片廠商提供給用戶使用該芯片的技術文檔,通常包括芯片功能簡介、方框圖、內部工作原理、寄存器排布、控制命令、引腳分布、電路圖和封裝等各種重要信息。數(shù)據(jù)手冊通??蓮男酒镜木W(wǎng)站下載,或者在一些技術論壇也會提供下載。用該芯片的型號加pdf作為關鍵字,使用搜索引擎搜索通常也可以搜索到數(shù)據(jù)手冊。初學者一定要學會去查找和閱讀數(shù)據(jù)手冊,不要怕麻煩。拿到數(shù)據(jù)手冊后,先大概瀏覽一遍,看自己需要的信息在哪里。實際使用時,再對需要的信息細讀。下面介紹D12的引腳分布。圖2.2.1就是從D12的數(shù)據(jù)手冊中復制來的引腳分布圖。通常,從這些引腳名上可以看出很多有用的信息。例如,圖2.2.1中DATA(O>~DATA表示數(shù)據(jù)口,而GND則表示地線。ALE(Addrass Latch Enable)也是很常用的,是地址鎖存使能;CS(Chip Select)表示片選,后面加個N就表示低電平有效(有時也會在標號上加橫杠或者在前面加斜杠),即低電平時選中該芯片;INT表示中斷請求信號;RD表示讀選通信號;WR表示寫選通信號;RESET表示復位。這些引腳后面的N都表示它們是低電平有效的。XTAL1和XTAL2是接晶體的。
后記
經(jīng)過兩個多月的苦戰(zhàn),終于完成了本書的初稿。圈圈想說,寫書真的是件挺辛苦的事。就算拿本幾百頁的書,全部敲到計算機中也不容易,何況自己寫幾百頁出來呢。不過看到網(wǎng)上很多網(wǎng)友對本書的期待,以及周圍朋友的支持,給了圈圈很大動力。在這里圈圈要對他們說聲謝謝。這是圈圈第一次寫書(應該叫處女作比較專業(yè)),所以沒啥經(jīng)驗,不知道最后出來的效果咋樣。圈圈從小就害怕寫作文(讀書時為了應付作文,經(jīng)常找一些書來抄,或者找家長代勞),語文成績也一直是剛剛及格的水平,所以寫出來的文章干巴巴的,有點像記流水帳(很多語文老師對圈圈的作文如此評價)。為了讓讀者能夠更容易理解和接受,圈圈盡量使用一些簡單、通俗的句子,有很多地方還有重復的說明,以讓讀者能夠得到確切的答案。如果你覺得本書說得太簡單,或者有些重復,那很正常,因為這本書主要面向的是初學者。限于圈圈的水平,同時為了減少讀者的負擔,后記也就只能湊出這么幾百個字了。如果你對本書有什么好的建議,請不要吝嗇,可以給圈圈發(fā)郵件或者留言;如果你覺得本書寫得不錯,請多多宣傳一下;如果你覺得本書寫得不好,也可以給圈圈扔磚頭,因為鮮花與磚頭永遠是共同存在的;如果你在找書墊桌子腳時,請不要用本書,如果真的要用,也請麻煩順手把封面朝上……最后,感謝廣大網(wǎng)友、讀者以及家人和朋友支持,感謝北航出版社,感謝胡編,感謝21IC,感謝CEPARK,感謝EDN,感謝OURAVR,感謝圈圈,感謝CCTV……
編輯推薦
《圈圈教你玩USB》是作者專門為廣大USB入門和提高者而編寫的USB入門級教材。作者在經(jīng)過長期、大量的USB學習和開發(fā)后,按照自己的理解以及漢語的思維方式編寫了《圈圈教你玩USB》,同時將USB學習和開發(fā)過程中總結的一些經(jīng)驗和方法溶入了書中?!度θ棠阃鎁SB》的特點足以實例的方式,一步步講解USB設備與驅動程序和應用程序開發(fā)的詳細過程及步驟,同時在光盤中附帶了完整的源代碼(C/C++語言)。為了照顧初學者,書中語句盡量做到通俗易懂,少用專業(yè)詞匯。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載