USB開發大全

USB開發大全

《USB開發大全》是人民郵電出版社2011年01月出版的圖書。

基本信息

內容簡介

《USB開發大全(第4版)》介紹了有關通用串列匯流排(Universal Serial Bus,USB)的工作方式、設備硬體及軟體編程等方面的知識和工程實例,內容大致可分為4個方面。第一,闡述USB協定,包括基本常識、設備枚舉、傳輸過程、設備類、主機通信方式以及匯流排狀態等。讀者通過學習,可迅速掌握USB接口的工作原理和組織結構。第二,詳細地介紹了USB硬體,從控制器晶片的選擇、電源供給、集線器原理,到線纜的電氣和機械特性,幾乎涵蓋USB硬體的全部技術細節。第三,討論了USB的程式編寫,涉及設備固件和驅動,重點闡述了HID設備類驅動程式的開發,並給出了在廠商專屬設備上套用WinUSB的方法。第四,作者也關注了幾種開發工具的使用。本書在組織上真正做到了協定、硬體、軟體、工具的完美結合,對4方面的論述滲透全書。

《USB開發大全(第4版)》融會作者在該領域豐富的工作經驗和設計實例,在規範與工程實際間搭起了橋樑。它是USB軟硬體的開發指南,一本無可替代的工具書。新版本與時俱進地增加了USB 3.0協定及其超高速匯流排的內容。

目錄

第1章 USB基礎 1

1.1 USB的用途和局限 1

1.1.1 給用戶帶來的好處 1

1.1.2 給開發者帶來的好處 3

1.1.3 USB不能做什麼 5

1.1.4 USB與Ethernet 7

1.1.5 USB與IEEE-1394 7

1.2 USB接口的發展演變 7

1.2.1 USB 1.0 7

1.2.2 USB 1.1 8

1.2.3 USB 2.0 8

1.2.4 USB 3.0 9

1.2.5 USB On-The-Go 9

1.2.6 無線USB 9

1.3 匯流排組成部分 10

1.3.1 拓撲結構 10

1.3.2 關於匯流排速率的考慮 11

1.3.3 術語 12

1.4 分割工作 13

1.4.1 主機的責任 13

1.4.2 設備的職責 14

1.4.3 匯流排速率和數據吞吐量 15

1.5 開發設備 16

1.5.1 組件 16

1.5.2 開發工具 16

1.5.3 工程開發的步驟 16

1.6 USB 3.0常見問題 17

1.6.1 功能 17

1.6.2 兼容性 18

1.6.3 線纜 19

1.6.4 電源和功耗 20

第2章 深入USB傳輸 21

2.1 傳輸的基礎 21

2.1.1 傳輸要素 21

2.1.2 通信的目的 22

2.1.3 管理匯流排上的數據 22

2.2 傳輸要素 23

2.2.1 端點:數據的來源和數據接收端 23

2.2.2 事務類型 23

2.2.3 管道:將端點連線到主機 24

2.2.4傳輸類型24

2.2.5 流管道和訊息管道 25

2.2.6 發起傳輸 25

2.3 USB 2.0事務 26

2.3.1 事務步驟 27

2.3.2 信息包的順序 29

2.3.3 時間約束和保證 29

2.3.4 分割事務 29

2.4 保證傳輸成功 30

2.4.1 狀態與控制 30

2.4.2 報告控制傳輸的狀態 32

2.4.3 錯誤檢查 32

2.5 超高速事務 34

2.5.1 信息包類型 34

2.5.2 數據傳輸 36

2.5.3 連線管理信息包 38

第3章 通用的傳輸類型 39

3.1 控制傳輸 39

3.1.1 可用性 39

3.1.2 結構 39

3.1.3 數據大小 44

3.1.4 速度 44

3.1.5 錯誤的檢測與處理 45

3.1.6 設備的職責 45

3.2 批量傳輸 45

3.2.1 可用性 46

3.2.2 結構 46

3.2.3 數據大小 48

3.2.4 速率 48

3.2.5 錯誤的檢測和處理 48

3.2.6 設備的職責 48

3.3 中斷傳輸 49

3.3.1 可用性 49

3.3.2 結構 49

3.3.3 數據大小 50

3.3.4 速率 50

3.3.5 錯誤的檢測和處理 51

3.3.6 設備的職責 51

3.4等時傳輸51

3.4.1 可用性 52

3.4.2 結構 52

3.4.3 數據大小 54

3.4.4 速度 54

3.4.5 錯誤的檢測和處理 55

3.4.6 設備的職責 55

3.5 更多關於時間關鍵傳輸的內容 55

3.5.1 匯流排頻寬 55

3.5.2 設備性能 56

3.5.3 主機性能 56

3.5.4 主機等待時間 56

第4章 枚舉:主機如何了解設備 58

4.1 枚舉過程 58

4.1.1 枚舉步驟 59

4.1.2 設備移除 62

4.1.3 枚舉成功的秘訣 62

4.2 描述字 63

4.2.1 類型描述字 63

4.2.2 設備描述字 64

4.2.3 Device_Qualifier描述字 67

4.2.4 配置描述字 67

4.2.5 Other_Speed_Configuration描述字 68

4.2.6 接口聯合描述字 68

4.2.7 接口描述字 69

4.2.8 端點描述字 71

4.2.9 超高速端點夥伴描述字 73

4.2.10 字元串描述字 73

4.2.11 二進制目標存儲及設備性能描述字 74

4.2.12 其他標準描述字 75

4.2.13 微軟OS描述字 75

4.2.14 更新描述字到USB 2.0 76

第5章 控制傳輸:用於關鍵數據的結構化請求 77

5.1 控制傳輸的組成 77

5.1.1 設定階段 77

5.1.2 數據階段 78

5.1.3 狀態階段 79

5.1.4 錯誤處理 80

5.1.5 設備固件 80

5.2 標準請求 81

5.2.1 Get Status(獲得狀態)請求 82

5.2.2 Clear Feature(清除特徵)請求 83

5.2.3 Set Feature(設定特徵)請求 83

5.2.4 Set Address(設定地址)請求 84

5.2.5 Get Descriptor(獲得描述字)請求 85

5.2.6 Set Descriptor(設定描述字)請求 85

5.2.7 Get Configuration(獲得配置)請求 85

5.2.8 Set Configuration(設定配置)請求 86

5.2.9 Get Interface(獲得接口)請求 86

5.2.10 Set Interface(設定接口)請求 87

5.2.11 Synch Frame(幀同步)請求 87

5.2.12 Set SEL(設定選擇)請求 87

5.2.13 SetisochronousDelay(設定等時延時)請求 88

5.3 其他請求 88

5.3.1 類專屬請求 88

5.3.2 廠商定義的請求 88

第6章 晶片選擇 89

6.1 USB設備的組成部分 89

6.1.1 USB2.0控制器內部結構 89

6.1.2 其他的設備組件 90

6.2 簡化設備開發 92

6.2.1 設備要求 92

6.2.2 晶片文檔 93

6.2.3 驅動程式的選擇 93

6.2.4 調試工具 93

6.3 USB微控制器 95

6.3.1 Microchip的PIC18F4550 96

6.3.2 Cypress EZ-USB 99

6.3.3 ARM 101

6.4 連線到CPU的控制器 101

6.4.1 ST-NXP Wireless公司的ISP1582型控制器 101

6.4.2 PLX Technology的NET2272型控制器 102

6.4.3 FTDI公司的USB UART和USB FIFO 103

第7章 設備類 105

7.1 元素與用途 105

7.1.1 已被公認的規範 105

7.1.2 類規範的組成 106

7.2 已定義的類 107

7.2.1 音頻類 107

7.2.2 通信類 109

7.2.3 內容安全類 113

7.2.4 設備固件升級類 114

7.2.5 人機接口類 116

7.2.6 IrDA橋設備類 118

7.2.7 大容量存儲設備類 119

7.2.8 個人健康設備類 122

7.2.9 印表機設備類 122

7.2.10 智慧卡設備類 124

7.2.11 靜態圖像獲取設備類 126

7.2.12 測試與測量設備類 127

7.2.13 視頻設備類 128

7.3 非標準功能的實現 131

7.3.1 選擇驅動程式 131

7.3.2 使用通用驅動程式 131

7.3.3 從RS-232轉換到USB 131

7.3.4 從並行連線埠轉換到USB 132

7.3.5 PC與PC間的通信 133

第8章 主機的通信方式 134

8.1 設備驅動程式 134

8.1.1 分層的驅動程式模型 134

8.1.2 用戶及核心模式134

8.2 分層結構內部 136

8.2.1 應用程式 136

8.2.2 用戶模式下的用戶驅動程式 137

8.2.3 核心模式下的用戶驅動程式 137

8.2.4 匯流排和主機控制器驅動程式 138

8.3 編寫驅動程式 140

8.3.1 核心模式的驅動程式 140

8.3.2 用戶模式的驅動程式 140

8.3.3 測試工具 141

8.4 GUID的使用 141

8.4.1 設備設定GUID 141

8.4.2 設備接口GUID 142

第9章 為設備匹配驅動程式 143

9.1 使用設備管理器 143

9.1.1 查看設備 143

9.1.2屬性頁144

9.2 註冊表中的設備信息 145

9.2.1 Hardware鍵值 145

9.2.2 Class鍵值 146

9.2.3 Driver鍵值 147

9.2.4 Service鍵值 147

9.3 深入inf檔案148

9.3.1 結構及語法 150

9.3.2 設備專屬取值 151

9.4 使用設備標識字元串 151

9.4.1 找到匹配 153

9.4.2 何時提供INF檔案 153

9.5 工具及診斷協助 154

9.5.1 使用INF檔案的技巧 154

9.5.2 用戶可見到什麼 155

第10章 設備檢測 156

10.1 關於Windows API函式調用的簡要指導 156

10.1.1 託管代碼與非託管代碼 156

10.1.2 管理數據 159

10.2 找到您的設備 161

10.2.1 獲取設備接口GUID 163

10.2.2 請求指向設備信息集的指針 163

10.2.3 標識設備接口 164

10.2.4 請求帶有設備類路徑名的結構體 166

10.2.5 提取設備路徑名 168

10.2.6 結束通信 168

10.3 獲取句柄 169

10.3.1 請求通信句柄 169

10.3.2 關閉句柄 171

10.4 檢測設備連線和移除 171

10.4.1 關於設備通知 171

10.4.2 請求設備通知 171

10.4.3 記錄設備變化信息 174

10.4.4 讀取設備變化訊息 175

10.4.5 收回訊息中的設備路徑名 176

10.4.6 停止設備通知 178

第11章 人機接口設備:使用控制和中斷傳輸 180

11.1 什麼是HID 180

11.1.1 硬體要求 181

11.1.2 固件要求 182

11.2 描述字 182

11.2.1 HID接口 185

11.2.2 HID類描述字 185

11.2.3 報告描述字 186

11.3 HID專屬請求 187

11.3.1 Get Report請求 187

11.3.2 Get Idle請求 188

11.3.3 Get Protocol請求 188

11.3.4 Set Report請求 188

11.3.5 Set Idle請求 189

11.3.6 Set Protocol請求 189

11.4 數據傳輸 189

11.4.1 編寫固件 189

11.4.2 工具 190

第12章 人機接口設備:報告 191

12.1 HID報告的數據結構 191

12.1.1 使用HID描述符編輯工具 191

12.1.2 控制項及數據項目的值 192

12.1.3 項目格式 192

12.2 主項目 193

12.2.1 輸入項目,輸出項目及特徵項目 193

12.2.2 Collection項目 196

12.3 全局項目類型 196

12.3.1 識別報告 196

12.3.2 描述數據用途 197

12.3.3 單位轉換 198

12.3.4 轉換原始數據 199

12.3.5 描述數據大小及數據格式 201

12.3.6 儲存和恢復全局項目 201

12.4 局部項目類型 201

12.4.1 物理描述符 203

12.4.2 填充 203

第13章 人機接口設備:主機應用程式 204

13.1 HID API函式 204

13.1.1 請求HID信息 204

13.1.2 報告傳送與接收 205

13.1.3 報告數據提供及使用 206

13.1.4 HID通信管理 207

13.2 設備識別 207

13.2.1 讀取vendorID及Product ID 207

13.2.2 獲取設備功能指針 209

13.2.3 獲取設備功能 210

13.2.4 獲取按鈕及數值的功能 211

13.3 報告傳送與接收 212

13.3.1 向設備傳送輸出報告 212

13.3.2 由設備讀取輸入報告 214

13.3.3 向設備寫入特徵報告 220

13.3.4 從設備讀取特徵報告 221

13.3.5 關閉通信 222

第14章 利用WinUSB的廠商定義函式 224

14.1 功能與局限 224

14.1.1 設備要求 224

14.1.2 主機要求 224

14.1.3 設備固件 224

14.1.4 分配WinUSB驅動程式 226

14.2 訪問設備 227

14.2.1 獲取WinUSB句柄 228

14.2.2 請求接口描述符 229

14.2.3 端點識別 230

14.2.4 配置管道策略 233

14.2.5 利用批量傳輸及中斷傳輸寫入數據 237

14.2.6 利用批量傳輸及中斷傳輸讀取數據 238

14.2.7 使用廠商定義的控制傳輸 239

14.2.8 關閉通信 242

第15章 集線器 243

15.1 USB 2.0 243

15.1.1 集線器轉發器 244

15.1.2 事務轉換器 245

15.1.3 集線器控制器 249

15.1.4 傳輸速率 249

15.1.5 維持已激活連結 250

15.2 USB 3.0 250

15.2.1 匯流排速率 251

15.2.2 USB 3.0的構成 251

15.2.3 通信管理 251

15.3 集線器類 252

15.3.1 集線器描述符 252

15.3.2 集線器類請求 252

15.3.3 連線埠指示器 252

第16章 電源管理 253

16.1 電源選項 253

16.1.1 電壓 253

16.1.2 使用匯流排電源 254

16.1.3 電源需求 255

16.1.4 通知主機 255

16.1.5 電池充電 256

16.2 集線器電源 257

16.2.1 電源 257

16.2.2 電流超載保護 258

16.2.3 功率切換 259

16.3 節電模式 259

16.3.1 USB 2.0鏈路電源管理 259

16.3.2掛起狀態259

16.3.3 休眠狀態 260

16.3.4 超速通信電源管理 261

16.3.5 Windows作業系統下的電源管理 264

第17章 測試與調試 266

17.1 工具 266

17.1.1 硬體協定分析器267

17.1.2 軟體協定分析器 268

17.1.3 流量發生器 269

17.2 測試 269

17.2.1 合規性 270

17.2.2 Windows徽標 273

第18章 匯流排上的包 276

18.1 USB 2.0通信 276

18.1.1 低速、全速匯流排狀態 276

18.1.2 高速匯流排狀態 277

18.1.3 數據編碼 279

18.1.4 保持同步 279

18.1.5 精確計時 280

18.1.6 包的格式 281

18.1.7 包間延遲 282

18.1.8 測試模型 282

18.2 超速通信 283

18.2.1 數據加擾 283

18.2.2 編碼 283

18.2.3 鏈路層 283

18.2.4 復位 284

第19章 電氣與機械接口 285

19.1 USB 2.0收發器 285

19.1.1 線纜段 285

19.1.2 低速和全速收發器 286

19.1.3 高速收發器 288

19.1.4 信號電壓 291

19.2 USB 2.0線纜 292

19.2.1 導線 292

19.2.2 連線器 293

19.2.3 可拆卸及不可分離線纜 294

19.2.4 線纜長度 294

19.2.5 匯流排長度 295

19.2.6 晶片間連線 295

19.3 USB 3.0 296

19.3.1 傳送器和接收器 296

19.3.2 線纜 296

19.4 確保信號質量 299

19.4.1 噪聲來源 299

19.4.2 對稱傳輸線 300

19.4.3 雙絞線 300

19.4.4 禁止 301

19.4.5 邊沿變化率 301

19.4.6 被隔離的接口 301

19.5 無線方式實現USB 301

19.5.1 無線USB認證 302

19.5.2 Cypress無線USB 302

19.5.3 其他選擇 303

第20章 嵌入式系統主機 305

20.1 USB OTG 305

20.1.1 能力與局限 305

20.1.2 OTG連線器 306

20.1.3 A型設備及B型設備 306

20.1.4 OTG設備要求 306

20.1.5 OTG描述符 310

20.1.6HNP特徵代碼 310

20.2 其他主機選項 311

20.2.1 嵌入式主機要求 311

20.2.2 設備連線埠 312

20.3 控制器晶片 312

20.3.1 微控制器 312

20.3.2 接口晶片 313

相關詞條

相關搜尋

熱門詞條

聯絡我們