>
科技 >
計(jì)算機(jī)與網(wǎng)絡(luò) >
硬件/嵌入式開(kāi)發(fā) >
USB技術(shù)及應(yīng)用設(shè)計(jì) USB(通用串行總線)是一種計(jì)算機(jī)外設(shè)連接規(guī)范,簡(jiǎn)單地說(shuō),是一種計(jì)算機(jī)外圍串行通訊接口標(biāo)準(zhǔn)。具有即插即用、數(shù)據(jù)傳輸可靠、擴(kuò)展方便、低成本等優(yōu)點(diǎn),已成為當(dāng)前計(jì)算機(jī)必備的接口之一,同時(shí)也被廣泛地應(yīng)用于嵌入式系統(tǒng)設(shè)計(jì)中。 本書(shū)采用理論與實(shí)際應(yīng)用相結(jié)合的方式,一方面詳細(xì)地分析了USB系統(tǒng)總線的體系結(jié)構(gòu),包括組成結(jié)構(gòu)、數(shù)據(jù)編碼、通訊原理和最新的USB 2.0及OTG(On-The-Go)技術(shù),另一方面對(duì)其應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)進(jìn)行了描述。作者通過(guò)對(duì)USB主機(jī)和USB設(shè)備系統(tǒng)開(kāi)發(fā)和Linux USB子系統(tǒng)的分析,闡述了USB系統(tǒng)軟硬件的結(jié)構(gòu)和實(shí)現(xiàn)。 本書(shū)的特點(diǎn)是全面、實(shí)用、條理清晰、通俗易懂,給出的實(shí)例都具有典型的代表性和實(shí)用性,結(jié)合本書(shū)描述的硬件設(shè)計(jì)及驅(qū)動(dòng)程序的開(kāi)發(fā)和調(diào)試,讓讀者能夠初步具備獨(dú)立的設(shè)計(jì)和開(kāi)發(fā)能力。 本書(shū)既適合開(kāi)發(fā)USB系統(tǒng)主機(jī)端(Host)及設(shè)備端(Device/Hub)的工程技術(shù)人員作為參考資料,也適合作為USB系統(tǒng)的初學(xué)者全面了解USB系統(tǒng)的入門教材。對(duì)開(kāi)發(fā)嵌入式系統(tǒng),特別是開(kāi)發(fā)嵌入式系統(tǒng)USB主機(jī)端的人員,本書(shū)是一本難得的參考用書(shū)。
第1章 USB簡(jiǎn)介 1
1.1 舊系統(tǒng)的缺點(diǎn) 1
1.1.1 很難與電話互聯(lián) 1
1.1.2 操作使用不便 2
1.1.3 系統(tǒng)擴(kuò)展性差 2
1.2 USB的優(yōu)缺點(diǎn) 2
1.2.1 實(shí)用性 2
1.2.2 數(shù)據(jù)傳輸 3
1.2.3 系統(tǒng)結(jié)構(gòu) 4
1.2.4 低功耗設(shè)計(jì) 5
1.2.5 系統(tǒng)兼容性 5
1.2.6 體系結(jié)構(gòu)的擴(kuò)充性 6
1.2.7 軟件驅(qū)動(dòng) 6
1.3 USB各組件簡(jiǎn)介 6
1.3.1 USB 連線 6
1.3.2 USB集線器 7
1.3.3 功能部件 7
1.4 USB主機(jī) 8
1.5 USB與RS-232的比較 8
1.5.1 物理連接 8
1.5.2 傳輸時(shí)序 9
1.5.3 驅(qū)動(dòng)程序 9
1.6 USB與IEEE-1394的比較 10
1.7 USB的主要應(yīng)用 11
1.7.1 應(yīng)用范圍 11
1.7.2 與計(jì)算機(jī)相關(guān)的典型應(yīng)用 12
1.7.3 與計(jì)算機(jī)無(wú)關(guān)的典型應(yīng)用 12
1.8 USB規(guī)范簡(jiǎn)介 14
1.8.1 USB基本規(guī)范 14
1.8.2 USB設(shè)備類規(guī)范 14
1.8.3 USB主機(jī)控制器規(guī)范 15
1.9 USB技術(shù)的拓展 15
1.9.1 PoweredUSB 16
1.9.2 ExtremeUSB 16
1.10 3種數(shù)據(jù)傳輸?shù)谋容^ 16
1.10.1 異步數(shù)據(jù)傳輸 16
1.10.2 同步數(shù)據(jù)傳輸 16
1.10.3 實(shí)時(shí)數(shù)據(jù)傳輸 17
1.11 本書(shū)內(nèi)容簡(jiǎn)介 17
第2章 USB 1.1結(jié)構(gòu)和屬性 18
2.1 拓?fù)浣Y(jié)構(gòu) 18
2.1.1 USB 主機(jī) 19
2.1.2 USB 設(shè)備 19
2.1.3 USB集線器 21
2.2 USB連接器 22
2.3 USB電纜 23
2.4 電氣特性 23
2.4.1 電壓和電流 23
2.4.2 延時(shí) 25
2.5 信號(hào)特性 29
2.5.1 信號(hào)線狀態(tài) 29
2.5.2 信號(hào)傳輸?shù)捻樞?30
2.5.3 位編碼、解碼和同步的方法 30
2.5.4 位填充 31
2.6 傳輸類型 31
2.7 傳輸速率 33
2.8 系統(tǒng)連接 33
2.9 系統(tǒng)供電 33
第3章 USB通信原理 35
3.1 通信的結(jié)構(gòu) 35
3.2 傳輸?shù)幕締卧?mdash;—包 37
3.2.1 編碼方式 37
3.2.2 包的組成 37
3.2.3 包的類型 40
3.3 事務(wù)處理 45
3.3.1 輸入(IN)事務(wù)處理 46
3.3.2 輸出(OUT)事務(wù)處理 48
3.3.3 設(shè)置(SETUP)事務(wù)處理 48
3.3.4 幀起始(SOF)事務(wù)處理 48
3.3.5 幀結(jié)尾(EOF)事務(wù)處理 48
3.3.6 低速事務(wù)處理 49
3.3.7 事務(wù)處理的特點(diǎn) 50
3.4 幀 50
3.4.1 幀的定義 51
3.4.2 幀起始(SOF) 51
3.5 數(shù)據(jù)傳輸 52
3.6 批量傳輸 53
3.6.1 批量傳輸?shù)氖聞?wù)處理過(guò)程 53
3.6.2 批量傳輸?shù)奶匦?55
3.6.3 批量傳輸中數(shù)據(jù)的格式 55
3.6.4 批量傳輸管道的方向性 55
3.6.5 批量傳輸對(duì)包長(zhǎng)度的限制 55
3.6.6 批量傳輸對(duì)總線訪問(wèn)的限制 56
3.7 中斷傳輸 57
3.7.1 中斷傳輸?shù)氖聞?wù)處理過(guò)程 57
3.7.2 中斷傳輸?shù)奶攸c(diǎn) 58
3.7.3 中斷傳輸?shù)臄?shù)據(jù)格式 59
3.7.4 中斷傳輸?shù)姆较?59
3.7.5 中斷傳輸對(duì)包的長(zhǎng)度的限制 59
3.7.6 中斷傳輸對(duì)總線訪問(wèn)的限制 60
3.8 控制傳輸 61
3.8.1 控制傳輸?shù)倪^(guò)程 61
3.8.2 控制傳輸?shù)奶攸c(diǎn) 64
3.8.3 控制傳輸類型的數(shù)據(jù)格式 65
3.8.4 控制傳輸?shù)姆较?65
3.8.5 控制傳輸包的大小的限制 65
3.8.6 控制傳輸?shù)目偩訪問(wèn)的限制 65
3.8.7 控制傳輸?shù)臄?shù)據(jù)順序 67
3.9 實(shí)時(shí)傳輸 67
3.9.1 實(shí)時(shí)傳輸?shù)奶攸c(diǎn) 68
3.9.2 實(shí)時(shí)傳輸?shù)氖聞?wù)處理過(guò)程 68
3.9.3 實(shí)時(shí)傳輸?shù)奶攸c(diǎn) 69
3.9.4 實(shí)時(shí)傳輸?shù)臄?shù)據(jù)格式 69
3.9.5 實(shí)時(shí)傳輸?shù)姆较?69
3.9.6 實(shí)時(shí)傳輸中包的大小的限制 69
3.9.7 實(shí)時(shí)傳輸?shù)目偩限制 70
3.10 傳輸類型與事務(wù)處理的關(guān)系 70
3.10.1 批量傳輸與事務(wù) 處理的關(guān)系 71
3.10.2 中斷傳輸與事務(wù) 處理的關(guān)系 71
3.10.3 實(shí)時(shí)傳輸和事務(wù) 處理的關(guān)系 71
3.10.4 控制傳輸和事務(wù) 處理的關(guān)系 71
3.11 USB通信的健壯性 72
3.11.1 數(shù)據(jù)傳輸中的同步 72
3.11.2 錯(cuò)誤檢測(cè)和恢復(fù) 74
3.12 USB帶寬計(jì)算 77
3.13 USB通信的特點(diǎn) 78
第4章 USB設(shè)備 79
4.1 USB設(shè)備物理結(jié)構(gòu) 79
4.2 USB設(shè)備邏輯結(jié)構(gòu) 81
4.3 USB設(shè)備分類 84
4.3.1 標(biāo)準(zhǔn)類型USB設(shè)備 84
4.3.2 非標(biāo)準(zhǔn)類型USB設(shè)備 85
4.3.3 對(duì)類和廠商提供功能的選擇 86
4.4 USB描述符 86
4.4.1 USB描述符的格式 88
4.4.2 USB標(biāo)準(zhǔn)描述符 88
4.4.3 USB設(shè)備類特定描述符 99
4.4.4 USB廠商特定描述符 101
4.5 USB命令 101
4.5.1 USB命令的結(jié)構(gòu) 102
4.5.2 標(biāo)準(zhǔn)命令 103
4.5.3 非標(biāo)準(zhǔn)的USB命令 111
4.6 設(shè)備的狀態(tài)機(jī) 112
4.7 設(shè)備的配置和管理 114
4.7.1 總線枚舉 115
4.7.2 設(shè)備類配置 115
4.7.3 定位相關(guān)設(shè)備驅(qū)動(dòng)程序 116
4.7.4 設(shè)備拔下 117
第5章 USB集線器 118
5.1 USB集線器的結(jié)構(gòu) 118
5.1.1 集線器的外部結(jié)構(gòu) 118
5.1.2 集線器的內(nèi)部結(jié)構(gòu) 119
5.2 USB集線器功能描述 120
5.2.1 設(shè)備擴(kuò)展 120
5.2.2 電源管理 121
5.2.3 錯(cuò)誤診斷和恢復(fù) 122
5.2.4 全速/低速設(shè)備支持 122
5.2.5 對(duì)設(shè)備連接/斷開(kāi)的處理 124
5.2.6 集線器的掛起和恢復(fù)功能 125
5.3 USB集線器數(shù)據(jù)流處理 126
5.4 USB集線器設(shè)備類 129
5.4.1 集線器描述符 129
5.4.2 集線器支持的命令 132
第6章 USB主機(jī) 141
6.1 USB主機(jī)概況 141
6.1.1 USB 主機(jī)端構(gòu)成 141
6.1.2 主機(jī)與設(shè)備接口的通信 143
6.2 主機(jī)控制器 143
6.2.1 主機(jī)控制器結(jié)構(gòu) 143
6.2.2 主機(jī)控制器功能 144
6.3 主機(jī)端軟件 146
6.3.1 USB主機(jī)端軟件結(jié)構(gòu) 146
6.3.2 軟件的功能 148
6.3.3 主機(jī)控制器驅(qū)動(dòng)程序(HCD) 149
6.3.4 USB驅(qū)動(dòng)(USBD) 149
第7章 USB 1.1 HC規(guī)范 157
7.1 OHCI規(guī)范 157
7.1.1 OHCI的結(jié)構(gòu) 157
7.1.2 對(duì)數(shù)據(jù)結(jié)構(gòu)的分析 162
7.1.3 對(duì)控制器驅(qū)動(dòng)程序的分析 167
7.1.4 對(duì)控制器硬件功能的分析 170
7.1.5 OHCI的寄存器信息 172
7.2 UHCI 規(guī)范 183
7.2.1 UHCI 數(shù)據(jù)傳輸簡(jiǎn)介 184
7.2.2 UHCI 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介 184
7.2.3 UHCI 在帶寬分配 186
7.2.4 UHCI根集線器 187
7.2.5 UHCI 控制器寄存器 187
7.2.6 UHCI PCI配置寄存器 192
7.3 OHCI與UHCI的比較 193
第8章 USB系統(tǒng)開(kāi)發(fā) 194
8.1 硬件結(jié)構(gòu) 194
8.2 硬件器件介紹 196
8.2.1 主機(jī)控制器 196
8.2.2 集線器 196
8.2.3 USB接口器件 197
8.2.4 USB控制器 197
8.2.5 USB電源管理 198
8.2.6 特殊功能的USB器件 198
8.3 軟件結(jié)構(gòu) 200
8.4 設(shè)計(jì)開(kāi)發(fā)過(guò)程 201
8.4.1 USB設(shè)備開(kāi)發(fā)過(guò)程 201
8.4.2 USB主機(jī)開(kāi)發(fā)過(guò)程 204
8.5 USB測(cè)試工具簡(jiǎn)介 205
第9章 USB設(shè)備開(kāi)發(fā)示例 207
9.1 系統(tǒng)分析 207
9.1.1 PDIUSBD11硬件介紹 207
9.1.2 PS/2接口簡(jiǎn)介 211
9.2 硬件設(shè)計(jì) 213
9.3 軟件設(shè)計(jì) 214
9.3.1 軟件結(jié)構(gòu) 214
9.3.2 PS2-USB設(shè)備通信管道 215
9.3.3 PS2-USB設(shè)備描述符定義 215
9.3.4 PS2-USB設(shè)備支持的請(qǐng)求 218
9.3.5 PS2-USB軟件流程圖描述 220
9.4 系統(tǒng)集成與測(cè)試 225
9.4.1 測(cè)試環(huán)境 225
9.4.2 測(cè)試內(nèi)容 225
第10章 USB主機(jī)開(kāi)發(fā)示例 227
10.1 SL811HS簡(jiǎn)介 227
10.1.1 SL811HS特點(diǎn) 227
10.1.2 SL811HS結(jié)構(gòu) 228
10.1.3 SL811HS寄存器 229
10.2 硬件設(shè)計(jì) 231
10.2.1 CPU選擇 231
10.2.2 RAM/ROM選擇 231
10.2.3 USB接口 231
10.3 軟件設(shè)計(jì) 233
10.3.1 SL811HS HC驅(qū)動(dòng)程序 (HCD)結(jié)構(gòu) 233
10.3.2 USBD接口模塊 234
10.3.3 SL811HS讀寫(xiě)操作模塊 235
10.3.4 HCD初始化模塊 236
10.3.5 根集線器模塊 236
10.3.6 數(shù)據(jù)傳輸模塊 240
10.3.7 中斷管理模塊 241
10.3.8 USBD 241
10.3.9 集線器及其他設(shè)備 驅(qū)動(dòng)程序 241
10.4 系統(tǒng)測(cè)試 241
10.4.1 測(cè)試環(huán)境 241
10.4.2 測(cè)試步驟 242
10.4.3 測(cè)試設(shè)備 242
10.4.4 HC/HCD測(cè)試 242
10.4.5 USBD測(cè)試 243
10.4.6 集線器驅(qū)動(dòng)程序測(cè)試 243
10.4.7 其他設(shè)備驅(qū)動(dòng)程序測(cè)試 243
第11章 Linux USB子系統(tǒng) 244
11.1 USB系統(tǒng)的軟件結(jié)構(gòu) 244
11.1.1 USB協(xié)議的設(shè)計(jì)思想 244
11.1.2 USB系統(tǒng)的體系結(jié)構(gòu) 244
11.1.3 主機(jī)端和設(shè)備端的軟件 結(jié)構(gòu)的比較 245
11.1.4 主機(jī)端的軟件結(jié)構(gòu) 246
11.2 Linux中USB子系統(tǒng) 247
11.2.1 USB子系統(tǒng)的結(jié)構(gòu) 247
11.2.2 USB文件系統(tǒng) 247
11.2.3 USB的代碼文件結(jié)構(gòu) 248
11.3 對(duì)USB 內(nèi)核的分析 250
11.3.1 主要數(shù)據(jù)結(jié)構(gòu) 250
11.3.2 USB內(nèi)核所提供的功能 255
11.4 對(duì)HC驅(qū)動(dòng)的支持 265
11.4.1 HCD的實(shí)現(xiàn)思路 265
11.4.2 OHC Driver的實(shí)現(xiàn) 267
11.5 USB客戶端驅(qū)動(dòng)程序的分析 273
11.5.1 對(duì)集線器的驅(qū)動(dòng)程序 的分析 273
11.5.2 對(duì)打印機(jī)的驅(qū)動(dòng)程序 的分析 276
第12章 USB 2.0簡(jiǎn)介 280
12.1 USB 2.0物理結(jié)構(gòu) 280
12.1.1 總線拓?fù)浣Y(jié)構(gòu) 280
12.1.2 系統(tǒng)物理連線 281
12.1.3 數(shù)據(jù)傳輸 281
12.1.4 USB 2.0標(biāo)志 281
12.1.5 USB 2.0系統(tǒng)組件 282
12.1.6 USB 2.0應(yīng)用 282
12.2 USB 2.0電氣信號(hào)特征 282
12.2.1 數(shù)據(jù)編碼 282
12.2.2 數(shù)據(jù)幀 282
12.2.3 高速設(shè)備檢測(cè) 283
12.3 USB 2.0數(shù)據(jù)傳輸 283
12.3.1 數(shù)據(jù)傳輸協(xié)議 283
12.3.2 高速傳輸帶寬 288
12.4 USB 2.0主機(jī) 292
12.5 USB 2.0設(shè)備 292
12.5.1 設(shè)備限定描述符 292
12.5.2 其他速度配置描述符 293
12.5.3 端點(diǎn)描述符 293
12.6 USB 2.0命令(請(qǐng)求字) 295
12.7 USB 2.0集線器 295
12.7.1 USB 2.0集線器結(jié)構(gòu) 296
12.7.2 事務(wù)處理轉(zhuǎn)換模塊(TT) 296
12.7.3 USB 2.0集線器標(biāo)準(zhǔn) 描述符 297
12.7.4 USB 2.0集線器類 描述符 298
12.7.5 USB 2.0集線器命令 299
12.8 USB 2.0器件 302
12.9 USB 2.0測(cè)試工具 303
第13章 EHCI簡(jiǎn)介 304
13.1 EHCI結(jié)構(gòu)簡(jiǎn)介 304
13.2 EHCI接口描述 305
13.2.1 EHCI調(diào)度數(shù)據(jù)結(jié)構(gòu) 306
13.2.2 EHCI根集線器 306
13.2.3 EHCI PCI配置寄存器 306
13.2.4 EHCI HC性能寄存器 308
13.2.5 EHCI HC操作寄存器 311
13.3 EHCI數(shù)據(jù)結(jié)構(gòu) 316
13.3.1 EHCI周期性幀列表 316
13.3.2 EHCI異步幀列表 318
13.3.3 實(shí)時(shí)(高速)傳輸 描述符(iTD) 318
13.3.4 SPLIT事務(wù)處理實(shí)時(shí) 傳輸描述符(siTD) 321
13.3.5 隊(duì)列單元傳輸 描述符(qTD) 324
13.3.6 隊(duì)列頭(QH) 326
13.3.7 周期幀跨度節(jié)點(diǎn)FSTN 329
第14章 USB OTG簡(jiǎn)介 331
14.1 USB OTG應(yīng)用 331
14.2 USB OTG機(jī)械特性 332
14.3 USB集線器支持 334
14.4 USB OTG外接電阻 334
14.4.1 A設(shè)備 335
14.4.2 B設(shè)備 335
14.5 A設(shè)備與B設(shè)備的 事件與狀態(tài)圖 335
14.5.1 A設(shè)備事件 335
14.5.2 B設(shè)備事件 336
14.5.3 A設(shè)備狀態(tài)圖 337
14.5.4 B設(shè)備狀態(tài)圖 338
14.6 會(huì)話請(qǐng)求協(xié)議 339
14.6.1 SRP電壓 339
14.6.2 SRP狀態(tài)轉(zhuǎn)換 340
14.7 主機(jī)協(xié)商協(xié)議 341
14.8 USB OTG描述符 342
14.9 USB OTG請(qǐng)求 343
14.9.1 b_hnp_support 343
14.9.2 a_hnp_support 344
14.9.3 a_alt_hnp_support 344
14.10 USB OTG結(jié)構(gòu) 344
14.11 USB OTG設(shè)計(jì)示例 345
14.11.1 硬件結(jié)構(gòu) 345
14.11.2 Vbus門檻電壓實(shí)現(xiàn) 346
14.11.3 設(shè)備接口實(shí)現(xiàn) 346
14.11.4 Vbus過(guò)流診斷 347
14.11.5 Vbus控制 347
附錄A HID類規(guī)范 348
附錄B 縮寫(xiě)及中英文對(duì)照 364
附錄C 參考文獻(xiàn)及相關(guān)網(wǎng)址 367
附錄D USB語(yǔ)言ID (Language Identifier) 369