注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡硬件、外部設備與維護USB 2.0硬件設計(第2版)

USB 2.0硬件設計(第2版)

USB 2.0硬件設計(第2版)

定 價:¥38.00

作 者: 蕭世文,宋延清 編著
出版社: 清華大學出版社
叢編項:
標 簽: 接口

ISBN: 9787302139799 出版時間: 2006-10-01 包裝: 膠版紙
開本: 185*260 頁數: 431 字數:  

內容簡介

  USB是外圍設備與計算機進行連接的快速且靈活的新式接口。本書介紹最新的USB 2.0標準,從USB 的基礎開始介紹,包括實際的硬件與軟件設計,并且使用匯編語言、Visual C++、Visual Basic 等來示范程序代碼的編寫。另外還有各種USB 芯片介紹,幫助讀者快速設計自己的USB 設備。本書共15章和1個附錄,內容包括:USB 簡介、USB 傳輸、檢測設備、控制傳輸、USB 控制器芯片、Cypress enCoRe控制芯片、驅動程序、設備類別、設備測試、電源管理與信號編碼、電路接口、集線器、HID設備、HID程序設計、HID設備開發(fā)實例以及USB參考資料等。本書適合從事USB 硬件、軟件設計的程序員和其他相關技術人員使用或參考。

作者簡介

暫缺《USB 2.0硬件設計(第2版)》作者簡介

圖書目錄

第1章  USB簡介    1
1.1  USB的發(fā)展史    2
1.1.1  規(guī)范的版本    3
1.1.2  USB 2.0    4
1.1.3  IEEE-1394    4
1.2  USB的優(yōu)點    4
1.2.1  容易使用    4
1.2.2  傳輸速度快    5
1.2.3  低價位    6
1.2.4  低功耗    6
1.2.5  可靠性    6
1.2.6  操作系統(tǒng)的支持    7
1.2.7  外圍設備的支持    7
1.2.8  靈活性    7
1.2.9  USB實施者論壇    8
1.3  USB的缺點    8
1.3.1  缺乏對舊硬件的支持    8
1.3.2  缺乏點對點的通信能力    9
1.3.3  速度的限制    9
1.3.4  距離的限制    9
1.3.5  硬件的錯誤或故障    9
1.3.6  協(xié)議的復雜性    9
1.3.7  費用    9
1.4  與其他接口的比較    10
1.5  PC的軟硬件要求    11
1.5.1  主機控制器    11
1.5.2  操作系統(tǒng)    11
1.5.3  組件    12
1.5.4  總線拓撲    13
1.5.5  連接端口    15
1.6  主機的責任    15
1.7  外圍設備的責任    16
1.8  傳輸速度    19
1.9  開發(fā)流程    20
1.9.1  所需的鏈路元件    20
1.9.2  開發(fā)工具    20
1.9.3  開發(fā)步驟    21
第2章  USB傳輸    23
2.1  傳輸的基礎    23
2.1.1  配置通信    23
2.1.2  應用程序通信    23
2.1.3  管理總線的數據    24
2.1.4  主機速度和總線速度    25
2.2  傳輸要素    26
2.2.1  設備的端點    26
2.2.2  管道    27
2.2.3  傳輸類型    27
2.2.4  消息管道與流管道    29
2.2.5  傳輸的初始化    29
2.3  事務    30
2.3.1  事務的步驟    31
2.3.2  信息包的順序    33
2.3.3  定時約束和保障    34
2.3.4  分割事務    34
2.4  聯(lián)絡信號    36
2.4.1  ACK    37
2.4.2  NAK    37
2.4.3  STALL    37
2.4.4  NYET    38
2.4.5  ERR    38
2.4.6  無響應    38
2.4.7  控制傳輸的狀態(tài)    39
2.5  錯誤的檢驗    39
2.5.1  錯誤校驗位    39
2.5.2  數據交替位    40
2.6  控制傳輸    41
2.6.1  結構    41
2.6.2  信息包的大小    44
2.6.3  傳輸速度    44
2.6.4  檢測錯誤    45
2.7  批量傳輸    46
2.7.1  結構    46
2.7.2  信息包大小    47
2.7.3  傳輸速度    47
2.7.4  檢測錯誤    47
2.8  中斷傳輸    47
2.8.1  結構    48
2.8.2  信息包大小    48
2.8.3  傳輸速度    48
2.8.4  檢測錯誤    49
2.9  等時傳輸    49
2.9.1  結構    49
2.9.2  信息包大小    51
2.9.3  傳輸速度    51
2.9.4  檢測錯誤    51
2.10  時間關鍵的傳輸    51
2.10.1  總線的帶寬    51
2.10.2  設備的能力    52
2.10.3  主機軟件的能力    52
2.10.4  Windows的延遲    52
第3章  檢測設備    54
3.1  檢測設備的過程    54
3.1.1  檢測的步驟    55
3.1.2  檢測集線器    58
3.1.3  移除設備    58
3.2  描述符    59
3.2.1  類型    59
3.2.2  設備描述符    60
3.2.3  Device_Qualifier描述符    62
3.2.4  配置描述符    64
3.2.5  Other_Speed_Configuration
描述符    65
3.2.6  接口描述符    66
3.2.7  端點描述符    68
3.2.8  字符串描述符    70
3.3  USB 2.0兼容設備的描述符    73
第4章  控制傳輸    75
4.1  設置階段    75
4.1.1  令牌信息包    76
4.1.2  數據信息包    77
4.1.3  聯(lián)絡信息包    79
4.2  數據階段    80
4.2.1  令牌信息包    81
4.2.2  數據信息包    81
4.2.3  聯(lián)絡信息包    81
4.3  狀態(tài)階段    81
4.3.1  令牌信息包    82
4.3.2  數據信息包    82
4.3.3  聯(lián)絡信息包    82
4.4  檢測錯誤    83
4.5  請求    83
4.5.1  Clear_Feature    84
4.5.2  Get_Configuration    85
4.5.3  Get_Descriptor    85
4.5.4  Get_Interface    86
4.5.5  Get_Status    87
4.5.6  Set_Address    88
4.5.7  Set_Configuration    88
4.5.8  Set_Descriptor    89
4.5.9  Set_Feature    89
4.5.10  Set_Interface    90
4.5.11  Synch_Frame    91
4.5.12  類別特定的請求    91
4.5.13  廠商特定的請求    92
第5章  USB控制器芯片    93
5.1  USB控制器的組成    93
5.1.1  USB連接端口    93
5.1.2  數據緩沖區(qū)    94
5.1.3  CPU    94
5.1.4  程序內存    94
5.1.5  數據存儲器    95
5.1.6  寄存器    95
5.1.7  其他接口    95
5.1.8  其他特性    96
5.2  USB控制器芯片結構    96
5.2.1  專為USB設計的芯片    96
5.2.2  與現(xiàn)有的芯片兼容    98
5.2.3  需要外部微處理器接口
的芯片    99
5.2.4  芯片的文件    102
5.2.5  固件示例程序    102
5.2.6  驅動程序    103
5.2.7  調試工具    103
5.2.8  開發(fā)計劃的考慮    104
5.3  Cypress enCoRe    105
5.3.1  CPU結構    105
5.3.2  USB控制器    106
5.4  Cypress EZ-USB    106
5.4.1  CPU結構    107
5.4.2  USB控制器    109
5.5  Microchip PIC 16C7x5    109
5.5.1  結構    109
5.5.2  USB控制器    111
5.6  Netchip NET2888    111
5.6.1  結構    111
5.6.2  USB控制器    112
5.7  National Semiconductor USBN9603    113
5.7.1  結構    113
5.7.2  USB控制器    114
5.8  Philips Semiconductor
PDIUSBD11/12    114
5.8.1  結構    115
5.8.2  USB控制器    115
第6章  Cypress enCoRe
控制器芯片    116
6.1  選擇適合的芯片    116
6.2  匯編語言編譯器    116
6.2.1  匯編程序的基礎    118
6.2.2  匯編語言碼    119
6.2.3  匯編語言編譯器的用法    120
6.3  C編譯器    122
6.3.1  C語言的優(yōu)點    122
6.3.2  C編譯器的用法    123
6.4  芯片的結構    123
6.4.1  特性和限制    123
6.4.2  芯片內部    123
6.4.3  內存    124
6.4.4  程序堆棧指針    127
6.4.5  數據堆棧指針    127
6.5  USB通信    127
6.5.1  設備地址    129
6.5.2  模式    129
6.5.3  端點狀態(tài)及控制    131
6.5.4  USB狀態(tài)及控制    131
6.6  其他I/O    133
6.6.1  一般用途的I/O    133
6.6.2  內部電路    133
6.6.3  中斷    135
6.6.4  SPI連接端口    136
6.6.5  PS/2接口    137
6.7  定時器的功能    138
6.7.1  執(zhí)行定時工作    138
6.7.2  測量時距    139
6.8  中斷的處理    140
6.8.1  中斷服務例程    140
6.8.2  GPIO中斷    141
6.8.3  USB端點中斷    142
6.8.4  定時器中斷    142
6.8.5  中斷狀態(tài)    143
6.9  CPU的狀態(tài)、控制及脈沖    144
6.9.1  暫停CPU    144
6.9.2  重置    144
6.9.3  選擇和控制脈沖    146
6.9.4  電源的管理    146
6.10  硬件的工作    146
6.11  固件的工作    147
6.11.1  端點0中斷    147
6.11.2  傳送數據給主機    149
6.11.3  從主機接收數據    151
6.11.4  處理中斷傳輸    153
6.11.5  其他的響應    153
6.12  硬件開發(fā)工具    154
6.12.1  平臺板    154
6.12.2  監(jiān)視/調試器    155
第7章  驅動程序    157
7.1  設備驅動程序    157
7.2  設備驅動程序的來源    158
7.2.1  標準設備類型    158
7.2.2  客戶化設備    159
7.3  設備驅動程序的執(zhí)行模式    159
7.4  Win32驅動程序模型    159
7.5  分層的驅動程序    161
7.5.1  USB驅動程序層    161
7.5.2  函數驅動程序    161
7.5.3  總線驅動程序    162
7.6  通信的流程    163
7.6.1  用戶的角色    163
7.6.2  應用程序的角色    163
7.6.3  設備驅動程序的角色    165
7.6.4  集線器驅動程序的角色    166
7.6.5  總線類別驅動程序的角色    166
7.6.6  主機控制器驅動程序
的角色    167
7.6.7  設備的角色    167
7.6.8  響應    167
7.6.9  通信的終結    168
7.7  驅動程序的類型    168
7.7.1  Windows提供的驅動程序    168
7.7.2  廠商提供的驅動程序    168
7.8  編寫客戶化的驅動程序    168
7.8.1  工具軟件    169
7.8.2  WinRT for USB    169
7.8.3  WinDriver USB    171
7.8.4  提供函數庫的工具軟件    172
7.9  Windows如何選擇驅動程序    173
7.9.1  .inf文件    173
7.9.2  注冊表    174
7.9.3  檢測特定的設備    175
7.9.4  檢測通用的設備    176
7.10  .inf文件簡介    176
7.10.1  語法    178
7.10.2  Version區(qū)段    179
7.10.3  ClassInstall區(qū)段    179
7.10.4  Manufacturer區(qū)段    180
7.10.5  DestinationDirs區(qū)段    180
7.10.6  Strings區(qū)段    182
7.10.7  HID的通用.inf文件    182
7.10.8  建立.inf文件的工具    182
7.10.9  使用.inf文件的技巧    183
第8章  設備類別    185
8.1  類別    185
8.1.1  類別規(guī)范    185
8.1.2  類別的定義    186
8.2  標準類型的設備    188
8.2.1  鍵盤、鼠標和游戲桿    188
8.2.2  大容量存儲設備    188
8.2.3  打印機    192
8.2.4  數碼相機和掃描儀    193
8.2.5  音頻    195
8.2.6  調制解調器    196
8.3  非標準類型的設備    197
8.3.1  以中等速度傳輸數據
的設備    197
8.3.2  更新RS-232設備    197
8.3.3  POS設備    199
8.3.4  取代非標準并行端口設備    199
8.3.5  PC到PC的連接    200
8.3.6  無線連接    200
第9章  設備測試    202
9.1  USB測試工具    202
9.1.1  測試    203
9.1.2  HIDView    207
9.2  測試儀器    208
9.2.1  協(xié)議分析器    208
9.2.2  USB Expert的硬件    209
9.2.3  USB Expert的軟件    209
9.2.4  CATC Traffic Generator    211
9.2.5  Root 1 測試適配器    212
9.3  測試和標記    212
9.3.1  USB實施者論壇的
合格計劃    213
9.3.2  USB標志    214
9.3.3  Windows硬件品質
實驗室測試    214
9.3.4  驅動程序簽名    214
第10章  電源管理和信號編碼    216
10.1  電源的管理    216
10.1.1  電壓    216
10.1.2  可以使用總線電源
的設備    216
10.1.3  電源要求    217
10.1.4  通知主機    218
10.2  集線器電源    218
10.2.1  電的來源    219
10.2.2  過流保護    221
10.2.3  電源開關    222
10.3  節(jié)省電能    222
10.3.1  全局掛起和選擇掛起    222
10.3.2  掛起設備的限制    222
10.3.3  恢復通信    223
10.4  低速和中速的總線狀態(tài)    223
10.4.1  Differential 1和
Differential 0狀態(tài)    224
10.4.2  Single-ended 0狀態(tài)    225
10.4.3  Single-ended 1狀態(tài)    225
10.4.4  Data J和Data K狀態(tài)    225
10.4.5  閑置狀態(tài)    225
10.4.6  恢復狀態(tài)    225
10.4.7  信息包開始    225
10.4.8  信息包結束    225
10.4.9  未連接狀態(tài)    226
10.4.10  連接狀態(tài)    226
10.4.11  重置狀態(tài)    226
10.5  高速的總線狀態(tài)    226
10.5.1  高速Differential 1和
Differential 0狀態(tài)    227
10.5.2  高速Data J和Data K
狀態(tài)    228
10.5.3  Chirp J和Chirp K    228
10.5.4  高速Squelch    228
10.5.5  高速閑置    228
10.5.6  高速信息包開始    228
10.5.7  高速信息包結束    228
10.5.8  高速未連接狀態(tài)    229
10.6  數據編碼    229
10.6.1  維持同步    229
10.6.2  位填充    230
10.6.3  SYNC字段    230
10.6.4  信息包結尾    231
10.6.5  時序正確性    231
10.7  信息包格式    232
10.7.1  SYNC字段    232
10.7.2  PID字段    232
10.7.3  地址字段    233
10.7.4  端點字段    233
10.7.5  幀號碼字段    233
10.7.6  數據字段    233
10.7.7  CRC字段    234
10.7.8  信息包間的延遲    234
10.8  測試模式    234
第11章  電路接口    237
11.1  接收器與信號    237
11.2  低速和中速接收器    238
11.3  高速接收器    240
11.3.1  電路    240
11.3.2  轉換速度    241
11.3.3  檢測高速設備的移除    242
11.3.4  高速的掛起和恢復    242
11.4  信號電壓    243
11.4.1  低速和中速    243
11.4.2  高速    243
11.5  電纜    246
11.5.1  連接器    248
11.5.2  可拆分的與捕獲性
的電纜    249
11.5.3  電纜長度    250
11.6  信號的品質    250
11.6.1  噪聲    250
11.6.2  平衡線    250
11.6.3  雙絞線    251
11.6.4  邊緣速率    251
第12章  集線器    252
12.1  集線器的基礎    252
12.1.1  避免設備進入掛起狀態(tài)    253
12.1.2  可串聯(lián)的集線器數目    253
12.2  集線器中繼器    254
12.2.1  低速和中速的中繼器    254
12.2.2  高速的中繼器    254
12.3  事務轉換器    255
12.4  集線器控制器    256
12.5  速度    257
12.6  集線器類別    257
12.6.1  標準描述符    258
12.6.2  集線器描述符    260
12.6.3  標準請求    261
12.6.4  集線器類別請求    262
12.6.5  連接端口指示器    265
第13章  HID設備    266
13.1  HID 簡 介    266
13.1.1  硬件要求    267
13.1.2  固件要求    268
13.2  HID的描述符    269
13.2.1  描述符的內容    272
13.2.2  HID類別描述符    272
13.2.3  報表描述符    274
13.3  HID特定請求    278
13.3.1  Get_Report    279
13.3.2  Set_Report    279
13.3.3  Get_Idle    279
13.3.4  Set_Idle    280
13.3.5  Get_Protocol    281
13.3.6  Set_Protocol    281
13.4  傳輸數據    281
13.4.1  發(fā)送數據給主機    282
13.4.2  從主機接收數據    283
13.5  報表的結構    285
13.5.1  HID Descriptor Tool    286
13.5.2  短項目    287
13.5.3  長項目    287
13.6  Main項目類型    288
13.6.1  Input、Output和Feature
項目    288
13.6.2  Collection與End Collection
標記    291
13.7  Global項目類型    291
13.7.1  識別報表    292
13.7.2  數據的使用    293
13.7.3  轉換原始數據    294
13.7.4  數據的大小與格式    296
13.7.5  Global項目的儲存
與恢復    296
13.8  Local項目類型    296
13.9  填充    298
13.10  實體描述符    298
第14章  HID程序設計    300
14.1  主機的通信    300
14.1.1  說明文件    301
14.1.2  HID函數    301
14.1.3  DirectX    302
14.2  調用API函數    303
14.2.1  使用Visual C++    303
14.2.2  使用Visual Basic    304
14.3  取得HID類別的GUID    305
14.3.1  使用Visual C++    306
14.3.2  使用Visual Basic    306
14.4  取得HID信息的結構數組    307
14.4.1  使用Visual C++    307
14.4.2  使用Visual Basic    307
14.4.3  詳解    307
14.5  識別HID接口    308
14.5.1  使用Visual C++    308
14.5.2  使用Visual Basic    308
14.5.3  詳解    309
14.6  取得設備的路徑    309
14.6.1  使用Visual C++    310
14.6.2  使用Visual Basic    311
14.7  取得設備的代號    312
14.7.1  使用Visual C++    312
14.7.2  使用Visual Basic    313
14.8  取得廠商與產品ID    314
14.8.1  使用Visual C++    314
14.8.2  使用Visual Basic    314
14.8.3  詳解    315
14.9  取得包含設備能力的緩
沖區(qū)指針    315
14.9.1  使用Visual C++    315
14.9.2  使用Visual Basic    315
14.9.3  詳解    316
14.10  取得設備的能力    316
14.10.1  使用Visual C++    316
14.10.2  使用Visual Basic    317
14.10.3  詳解    317
14.11  取得數值的能力    317
14.12  發(fā)送輸出報表給設備    318
14.12.1  使用Visual C++    318
14.12.2  使用Visual Basic    318
14.12.3  詳解    319
14.13  從設備讀取輸入報表    319
14.13.1  使用Visual C++    320
14.13.2  使用Visual Basic    320
14.13.3  詳解    321
14.14  使用重疊ReadFile讀取報表    321
14.14.1  使用Visual C++    322
14.14.2  使用Visual Basic    323
14.15  使用多線程的ReadFile
  讀取報表    324
14.15.1  使用Visual C++    324
14.15.2  使用Visual Basic    326
14.16  發(fā)送特征報表給設備    326
14.16.1  使用Visual C++    326
14.16.2  使用Visual Basic    326
14.17  從設備讀取特征報表    327
14.17.1  使用Visual C++    327
14.17.2  使用Visual Basic    327
14.18  關閉通信    327
14.18.1  使用Visual C++    328
14.18.2  使用Visual Basic    328
第15章  HID設備開發(fā)實例    330
15.1  HID設備開發(fā)綜述    330
15.2  HID溫度計開發(fā)示例    333
15.3  用C語言來設計固件    400
附錄  USB參考資料    430

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號