注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)硬件、外部設(shè)備與維護(hù)USB 2.0硬件設(shè)計(第2版)

USB 2.0硬件設(shè)計(第2版)

USB 2.0硬件設(shè)計(第2版)

定 價:¥38.00

作 者: 蕭世文,宋延清 編著
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 接口

ISBN: 9787302139799 出版時間: 2006-10-01 包裝: 膠版紙
開本: 185*260 頁數(shù): 431 字?jǐn)?shù):  

內(nèi)容簡介

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

作者簡介

暫缺《USB 2.0硬件設(shè)計(第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  外圍設(shè)備的支持    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é)議的復(fù)雜性    9
1.3.7  費用    9
1.4  與其他接口的比較    10
1.5  PC的軟硬件要求    11
1.5.1  主機(jī)控制器    11
1.5.2  操作系統(tǒng)    11
1.5.3  組件    12
1.5.4  總線拓?fù)?nbsp;   13
1.5.5  連接端口    15
1.6  主機(jī)的責(zé)任    15
1.7  外圍設(shè)備的責(zé)任    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  傳輸?shù)幕A(chǔ)    23
2.1.1  配置通信    23
2.1.2  應(yīng)用程序通信    23
2.1.3  管理總線的數(shù)據(jù)    24
2.1.4  主機(jī)速度和總線速度    25
2.2  傳輸要素    26
2.2.1  設(shè)備的端點    26
2.2.2  管道    27
2.2.3  傳輸類型    27
2.2.4  消息管道與流管道    29
2.2.5  傳輸?shù)某跏蓟?nbsp;   29
2.3  事務(wù)    30
2.3.1  事務(wù)的步驟    31
2.3.2  信息包的順序    33
2.3.3  定時約束和保障    34
2.3.4  分割事務(wù)    34
2.4  聯(lián)絡(luò)信號    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  無響應(yīng)    38
2.4.7  控制傳輸?shù)臓顟B(tài)    39
2.5  錯誤的檢驗    39
2.5.1  錯誤校驗位    39
2.5.2  數(shù)據(jù)交替位    40
2.6  控制傳輸    41
2.6.1  結(jié)構(gòu)    41
2.6.2  信息包的大小    44
2.6.3  傳輸速度    44
2.6.4  檢測錯誤    45
2.7  批量傳輸    46
2.7.1  結(jié)構(gòu)    46
2.7.2  信息包大小    47
2.7.3  傳輸速度    47
2.7.4  檢測錯誤    47
2.8  中斷傳輸    47
2.8.1  結(jié)構(gòu)    48
2.8.2  信息包大小    48
2.8.3  傳輸速度    48
2.8.4  檢測錯誤    49
2.9  等時傳輸    49
2.9.1  結(jié)構(gòu)    49
2.9.2  信息包大小    51
2.9.3  傳輸速度    51
2.9.4  檢測錯誤    51
2.10  時間關(guān)鍵的傳輸    51
2.10.1  總線的帶寬    51
2.10.2  設(shè)備的能力    52
2.10.3  主機(jī)軟件的能力    52
2.10.4  Windows的延遲    52
第3章  檢測設(shè)備    54
3.1  檢測設(shè)備的過程    54
3.1.1  檢測的步驟    55
3.1.2  檢測集線器    58
3.1.3  移除設(shè)備    58
3.2  描述符    59
3.2.1  類型    59
3.2.2  設(shè)備描述符    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兼容設(shè)備的描述符    73
第4章  控制傳輸    75
4.1  設(shè)置階段    75
4.1.1  令牌信息包    76
4.1.2  數(shù)據(jù)信息包    77
4.1.3  聯(lián)絡(luò)信息包    79
4.2  數(shù)據(jù)階段    80
4.2.1  令牌信息包    81
4.2.2  數(shù)據(jù)信息包    81
4.2.3  聯(lián)絡(luò)信息包    81
4.3  狀態(tài)階段    81
4.3.1  令牌信息包    82
4.3.2  數(shù)據(jù)信息包    82
4.3.3  聯(lián)絡(luò)信息包    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  數(shù)據(jù)緩沖區(qū)    94
5.1.3  CPU    94
5.1.4  程序內(nèi)存    94
5.1.5  數(shù)據(jù)存儲器    95
5.1.6  寄存器    95
5.1.7  其他接口    95
5.1.8  其他特性    96
5.2  USB控制器芯片結(jié)構(gòu)    96
5.2.1  專為USB設(shè)計的芯片    96
5.2.2  與現(xiàn)有的芯片兼容    98
5.2.3  需要外部微處理器接口
的芯片    99
5.2.4  芯片的文件    102
5.2.5  固件示例程序    102
5.2.6  驅(qū)動程序    103
5.2.7  調(diào)試工具    103
5.2.8  開發(fā)計劃的考慮    104
5.3  Cypress enCoRe    105
5.3.1  CPU結(jié)構(gòu)    105
5.3.2  USB控制器    106
5.4  Cypress EZ-USB    106
5.4.1  CPU結(jié)構(gòu)    107
5.4.2  USB控制器    109
5.5  Microchip PIC 16C7x5    109
5.5.1  結(jié)構(gòu)    109
5.5.2  USB控制器    111
5.6  Netchip NET2888    111
5.6.1  結(jié)構(gòu)    111
5.6.2  USB控制器    112
5.7  National Semiconductor USBN9603    113
5.7.1  結(jié)構(gòu)    113
5.7.2  USB控制器    114
5.8  Philips Semiconductor
PDIUSBD11/12    114
5.8.1  結(jié)構(gòu)    115
5.8.2  USB控制器    115
第6章  Cypress enCoRe
控制器芯片    116
6.1  選擇適合的芯片    116
6.2  匯編語言編譯器    116
6.2.1  匯編程序的基礎(chǔ)    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  芯片的結(jié)構(gòu)    123
6.4.1  特性和限制    123
6.4.2  芯片內(nèi)部    123
6.4.3  內(nèi)存    124
6.4.4  程序堆棧指針    127
6.4.5  數(shù)據(jù)堆棧指針    127
6.5  USB通信    127
6.5.1  設(shè)備地址    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  內(nèi)部電路    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  中斷服務(wù)例程    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  傳送數(shù)據(jù)給主機(jī)    149
6.11.3  從主機(jī)接收數(shù)據(jù)    151
6.11.4  處理中斷傳輸    153
6.11.5  其他的響應(yīng)    153
6.12  硬件開發(fā)工具    154
6.12.1  平臺板    154
6.12.2  監(jiān)視/調(diào)試器    155
第7章  驅(qū)動程序    157
7.1  設(shè)備驅(qū)動程序    157
7.2  設(shè)備驅(qū)動程序的來源    158
7.2.1  標(biāo)準(zhǔn)設(shè)備類型    158
7.2.2  客戶化設(shè)備    159
7.3  設(shè)備驅(qū)動程序的執(zhí)行模式    159
7.4  Win32驅(qū)動程序模型    159
7.5  分層的驅(qū)動程序    161
7.5.1  USB驅(qū)動程序?qū)?nbsp;   161
7.5.2  函數(shù)驅(qū)動程序    161
7.5.3  總線驅(qū)動程序    162
7.6  通信的流程    163
7.6.1  用戶的角色    163
7.6.2  應(yīng)用程序的角色    163
7.6.3  設(shè)備驅(qū)動程序的角色    165
7.6.4  集線器驅(qū)動程序的角色    166
7.6.5  總線類別驅(qū)動程序的角色    166
7.6.6  主機(jī)控制器驅(qū)動程序
的角色    167
7.6.7  設(shè)備的角色    167
7.6.8  響應(yīng)    167
7.6.9  通信的終結(jié)    168
7.7  驅(qū)動程序的類型    168
7.7.1  Windows提供的驅(qū)動程序    168
7.7.2  廠商提供的驅(qū)動程序    168
7.8  編寫客戶化的驅(qū)動程序    168
7.8.1  工具軟件    169
7.8.2  WinRT for USB    169
7.8.3  WinDriver USB    171
7.8.4  提供函數(shù)庫的工具軟件    172
7.9  Windows如何選擇驅(qū)動程序    173
7.9.1  .inf文件    173
7.9.2  注冊表    174
7.9.3  檢測特定的設(shè)備    175
7.9.4  檢測通用的設(shè)備    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章  設(shè)備類別    185
8.1  類別    185
8.1.1  類別規(guī)范    185
8.1.2  類別的定義    186
8.2  標(biāo)準(zhǔn)類型的設(shè)備    188
8.2.1  鍵盤、鼠標(biāo)和游戲桿    188
8.2.2  大容量存儲設(shè)備    188
8.2.3  打印機(jī)    192
8.2.4  數(shù)碼相機(jī)和掃描儀    193
8.2.5  音頻    195
8.2.6  調(diào)制解調(diào)器    196
8.3  非標(biāo)準(zhǔn)類型的設(shè)備    197
8.3.1  以中等速度傳輸數(shù)據(jù)
的設(shè)備    197
8.3.2  更新RS-232設(shè)備    197
8.3.3  POS設(shè)備    199
8.3.4  取代非標(biāo)準(zhǔn)并行端口設(shè)備    199
8.3.5  PC到PC的連接    200
8.3.6  無線連接    200
第9章  設(shè)備測試    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  測試和標(biāo)記    212
9.3.1  USB實施者論壇的
合格計劃    213
9.3.2  USB標(biāo)志    214
9.3.3  Windows硬件品質(zhì)
實驗室測試    214
9.3.4  驅(qū)動程序簽名    214
第10章  電源管理和信號編碼    216
10.1  電源的管理    216
10.1.1  電壓    216
10.1.2  可以使用總線電源
的設(shè)備    216
10.1.3  電源要求    217
10.1.4  通知主機(jī)    218
10.2  集線器電源    218
10.2.1  電的來源    219
10.2.2  過流保護(hù)    221
10.2.3  電源開關(guān)    222
10.3  節(jié)省電能    222
10.3.1  全局掛起和選擇掛起    222
10.3.2  掛起設(shè)備的限制    222
10.3.3  恢復(fù)通信    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  恢復(fù)狀態(tài)    225
10.4.7  信息包開始    225
10.4.8  信息包結(jié)束    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  高速信息包結(jié)束    228
10.5.8  高速未連接狀態(tài)    229
10.6  數(shù)據(jù)編碼    229
10.6.1  維持同步    229
10.6.2  位填充    230
10.6.3  SYNC字段    230
10.6.4  信息包結(jié)尾    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  數(shù)據(jù)字段    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  轉(zhuǎn)換速度    241
11.3.3  檢測高速設(shè)備的移除    242
11.3.4  高速的掛起和恢復(fù)    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  信號的品質(zhì)    250
11.6.1  噪聲    250
11.6.2  平衡線    250
11.6.3  雙絞線    251
11.6.4  邊緣速率    251
第12章  集線器    252
12.1  集線器的基礎(chǔ)    252
12.1.1  避免設(shè)備進(jìn)入掛起狀態(tài)    253
12.1.2  可串聯(lián)的集線器數(shù)目    253
12.2  集線器中繼器    254
12.2.1  低速和中速的中繼器    254
12.2.2  高速的中繼器    254
12.3  事務(wù)轉(zhuǎn)換器    255
12.4  集線器控制器    256
12.5  速度    257
12.6  集線器類別    257
12.6.1  標(biāo)準(zhǔn)描述符    258
12.6.2  集線器描述符    260
12.6.3  標(biāo)準(zhǔn)請求    261
12.6.4  集線器類別請求    262
12.6.5  連接端口指示器    265
第13章  HID設(shè)備    266
13.1  HID 簡 介    266
13.1.1  硬件要求    267
13.1.2  固件要求    268
13.2  HID的描述符    269
13.2.1  描述符的內(nèi)容    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  傳輸數(shù)據(jù)    281
13.4.1  發(fā)送數(shù)據(jù)給主機(jī)    282
13.4.2  從主機(jī)接收數(shù)據(jù)    283
13.5  報表的結(jié)構(gòu)    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
標(biāo)記    291
13.7  Global項目類型    291
13.7.1  識別報表    292
13.7.2  數(shù)據(jù)的使用    293
13.7.3  轉(zhuǎn)換原始數(shù)據(jù)    294
13.7.4  數(shù)據(jù)的大小與格式    296
13.7.5  Global項目的儲存
與恢復(fù)    296
13.8  Local項目類型    296
13.9  填充    298
13.10  實體描述符    298
第14章  HID程序設(shè)計    300
14.1  主機(jī)的通信    300
14.1.1  說明文件    301
14.1.2  HID函數(shù)    301
14.1.3  DirectX    302
14.2  調(diào)用API函數(shù)    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信息的結(jié)構(gòu)數(shù)組    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  取得設(shè)備的路徑    309
14.6.1  使用Visual C++    310
14.6.2  使用Visual Basic    311
14.7  取得設(shè)備的代號    312
14.7.1  使用Visual C++    312
14.7.2  使用Visual Basic    313
14.8  取得廠商與產(chǎn)品ID    314
14.8.1  使用Visual C++    314
14.8.2  使用Visual Basic    314
14.8.3  詳解    315
14.9  取得包含設(shè)備能力的緩
沖區(qū)指針    315
14.9.1  使用Visual C++    315
14.9.2  使用Visual Basic    315
14.9.3  詳解    316
14.10  取得設(shè)備的能力    316
14.10.1  使用Visual C++    316
14.10.2  使用Visual Basic    317
14.10.3  詳解    317
14.11  取得數(shù)值的能力    317
14.12  發(fā)送輸出報表給設(shè)備    318
14.12.1  使用Visual C++    318
14.12.2  使用Visual Basic    318
14.12.3  詳解    319
14.13  從設(shè)備讀取輸入報表    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ā)送特征報表給設(shè)備    326
14.16.1  使用Visual C++    326
14.16.2  使用Visual Basic    326
14.17  從設(shè)備讀取特征報表    327
14.17.1  使用Visual C++    327
14.17.2  使用Visual Basic    327
14.18  關(guān)閉通信    327
14.18.1  使用Visual C++    328
14.18.2  使用Visual Basic    328
第15章  HID設(shè)備開發(fā)實例    330
15.1  HID設(shè)備開發(fā)綜述    330
15.2  HID溫度計開發(fā)示例    333
15.3  用C語言來設(shè)計固件    400
附錄  USB參考資料    430

本目錄推薦

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