想要知道什麼是USB?想要無障礙快速精通USB微控器韌體嗎?如果你想要更清楚有關USB韌體設計的來龍去脈,你會需要這本書。不但可幫助你迅速理解USB的通訊協定,更將不易學習的規範書採用韌體範例來解釋,相信不用多久時間,就可對USB有更深層的認識。本書內容共分為五章,由介紹簡易的USB韌體技巧開始,搭配滑鼠範例,實際體驗程式的撰寫與測試;第二章有描述元程式撰寫之教導;第三章提供一個應用軟體HidDevice.exe,也詳實的說明此軟體程式;最後四、五兩章針對通訊協定與咨求函數做完整的解說,構成一有系統的學習架構;最後第六章提供讀者實作練習的USB鍵盤範例。本書適用於私立大學、科大,電子、電機、資工「單晶片原理與應用」相關課程之教材,亦適合專業人員及有興趣者研讀參考之用。
目錄
第1章 簡易的USB韌體技巧1.1 前 言1-21.2 USB系統1-61.3 滑鼠範例1-71.3.1 硬體架構與輸出入介面1-71.3.2 主程式1-131.3.3 輸出入功能之韌體1-171.3.4 韌體與USB引擎的互動1-221.3.5 實際測試1-241.4 USB通信1-271.4.1 懸置模式1-281.4.2 USB匯流排重置1-341.4.3 韌體實際測試1-391.5 結 論1-49第2章 描述元2.1 描述元架構2-22.2 裝置描述元2-52.3 字串描述元2-62.4 組態描述元2-82.5 介面描述元2-102.6 HID類別描述元2-112.7 端點描述元2-122.8 HID類別特定描述元2-132.9 報告描述元2-132.9.1 標籤2-142.9.2 區域性項目標籤2-172.9.3 全域性項目標籤2-172.9.4 主項目2-212.9.5補充語法2-242.9.6 編碼2-252.10 典型報告描述元範例2-252.10.1 HID描述元編輯工具2-292.10.2 描述元之程式碼2-312.11 USB轉RS232裝置的範例2-372.12 多媒體按鍵裝置2-452.13 結 論2-52第3章 應用軟體3.1 前 言3-23.2 主程式3-33.3 讀寫動作3-53.4 裝置尋找與取得3-103.5 取得裝置介面的操作把3-213.6 軟體測試3-283.7 結 論3-33第4章 通信協定4.1 概 述4-24.2 封包的格式4-44.3 交 易4-64.3.1 設立式交易SETUP4-74.3.2 輸入式交易IN4-84.3.3 輸出式交易OUT4-94.3.4 交替機制4-104.4 中斷型傳輸4-124.4.1 中斷型輸入式交易的韌體技巧4-144.4.2 中斷型輸出式交易的韌體技巧4-184.5 控制型傳輸4-194.5.1 控制型傳輸的韌體流程4-244.5.2 控制型傳輸的設立式交易韌體4-294.5.3 控制型傳輸的輸入式與輸出式交易韌體4-334.5.4 控制型傳輸總整理4-424.6 結 論4-44第5章 咨求函數與匯流排列舉5.1 標準裝置咨求5-25.1.1 Get_Descriptor5-55.1.2 Get_Configuration5-65.1.3 Get_Interface5-65.1.4 Get_Status5-65.1.5 Set_Address5-75.1.6 Set_Descriptor5-75.1.7 Set_Configuration5-75.1.8 Set_Interface5-85.1.9 Set_Feature5-85.1.10 Clear_Feature5-85.2 HID類別特定咨求5-95.2.1 Get_Descriptor和Set_Descriptor5-105.2.2 Get_Report和Set_Report5-105.2.3 Get_Protocol和Set_Protocol5-115.2.4 Get_Idle和Set_Idle5-125.3 USB匯流排列舉5-135.3.1 取得裝置描述元(匯流排位址0)5-145.3.2 設定匯流排位址(匯流排位址0)5-155.3.3 取得裝置描述元(匯流排位址2)5-165.3.4 取得組態描述元(匯流排位址2)5-185.3.5 取得報告描述元(匯流排位址2)5-205.3.6 設定組態(匯流排位址2)5-235.3.7 設定怠惰期長(匯流排位址2)5-245.4 咨求函數之分組5-255.5 標準裝置咨求之韌體技巧5-285.5.1 主機傳給裝置5-285.5.2 裝置傳給主機5-345.6 HID類別特定咨求之韌體技巧5-415.7 半雙工傳輸範例5-455.7.1 描述元5-455.7.2 程式5-505.7.3 測試5-585.8 結 論5-65第六章實作:電腦鍵盤6.1電腦鍵盤工作原理6-36.2硬體電路6-56.3韌體技術6-156.4週邊功能測試6-25附錄A 韌體發展系統CY3654A.1 低速USB微控器之優勢A-2A.2 組譯器CYASMA-3A.3 購置發展系統套件CY3654A-5A.4 發展系統CY3654基本使用A-9A.5 系統功能驗證A-17附錄B CYASM組合語言B.1 組合語言語法B-2B.1.1 指令B-2B.1.2 程式指示B-3B.2 基本運算程式B-8B.2.1 指令nop與haltB-9B.2.2 資料轉換指令B-9B.2.3 IO暫存器讀寫指令B-10B.2.4 指令push和popB-10B.2.5 邏輯運算B-11B.2.6 位元運算B-12B.2.7 算術運算B-12B.2.8 無條件跳躍指令與中斷指令B-14B.2.9 條件跳躍指令B-16B.2.10 ROM頁碼遞增指令B-16B.2.11 案例選擇副程式B-17B.3 指令集B-19附錄C 元件減少增強型低速USB微控器C.1 功能方塊圖與腳位圖C-2C.2 程式記憶體(ROM)C-5C.3 資料記憶體(RAM)C-6C.4 IO暫存器C-7C.5 重 置C-9C.5.1 電壓太低重置(LVR)C-10C.5.2 電力不足重置(BOR)C-10C.5.3 看門狗計時器重置(WDR)C-10C.6 時脈選擇C-10C.7 12位元自走計時器C-12C.8 狀態與控制暫存器C-12C.9 懸置模式C-14C.10 中 斷C-14C.11 一般用途輸出入埠C-16C.12 輔助輸入埠C-21C.13 USB引擎C-22C.13.1 USB的IO暫存器C-22C.13.2 控制型端點的IO暫存器C-24C.13.3 中斷型端點的IO暫存器C-26C.13.4 端點模式C-27附錄D USB電腦滑鼠韌體原始碼D.1 SKLINMouse.asmD-2D.2 EP0_mouse.hD-35
第1章 簡易的USB韌體技巧1.1 前 言1-21.2 USB系統1-61.3 滑鼠範例1-71.3.1 硬體架構與輸出入介面1-71.3.2 主程式1-131.3.3 輸出入功能之韌體1-171.3.4 韌體與USB引擎的互動1-221.3.5 實際測試1-241.4 USB通信1-271.4.1 懸置模式1-281.4.2 USB匯流排重置1-341.4.3 韌體實際測試1-391.5 結 論1-49第2章 描述元2.1 描述元架構2-22.2 裝置描述元2-52.3 字串描述元2-62.4 組態描述元2-82.5 介面描述元2-102.6 HID類別描述元2-112.7 端點描述元2-122.8 HID類別特定描述元2-132.9 報告描述元2-132.9.1 標籤2-142.9.2 ...