EZ-USB FX系列单片机USB外围设备设计与应用:
PART 1 USB的基本概念
第1章 USB的基本特性
1.1 USB简介2
1.2 USB的发展历程3
1.2.1 USB 1.13
1.2.2 USB 2.04
1.2.3 USB与IEEE 1394的比较4
1.3 USB基本架构与总线架构6
1.4 USB的总线结构8
1.5 USB数据流的模式与管线的概念9
1.6 USB硬件规范10
1.6.1 USB的硬件特性11
1.6.2 USB接口的电气特性12
1.6.3USB的电源管理14
1.7 USB的编码方式14
1.8 结论16
1.9 问题与讨论16
第2章 USB通信协议
2.1 USB通信协议17
2.2 USB封包中的数据域类型18
2.2.1 数据域位的格式18
2.3 封包格式19
2.4 USB传输的类型23
2.4.1 控制传输24
2.4.2 中断传输29
2.4.3 批量传输29
2.4.4 等时传输29
2.5 USB数据交换格式30
2.6 USB描述符34
2.7 USB设备请求42
2.8 USB设备群组44
2.9 结论46
2.10 问题与讨论46
第3章 设备列举
3.1注册表编辑器47
3.2设备列举的步骤49
3.3设备列举步骤的实现--使用CATC分析工具51
3.4结论61
3.5问题与讨论61
第4章 USB芯片与EZUSB
4.1USB芯片的简介62
4.2USB接口芯片64
4.2.1Philips接口芯片64
4.2.2National Semiconductor接口芯片66
4.3内含USB单元的微处理器68
4.3.1Motorola69
4.3.2Microchip69
4.3.3SIEMENS70
4.3.4Cypress71
4.4USB芯片总揽介绍73
4.5USB芯片的选择与评估74
4.6问题与讨论80
第5章 设备与驱动程序
5.1阶层式的驱动程序81
5.2主机的驱动程序83
5.3驱动程序的选择86
5.4结论86
5.5问题与讨论87
第6章 HID群组
6.1HID简介88
6.2HID群组的传输速率88
6.3HID描述符90
6.3.1报告描述符93
6.3.2主要 main 项目类型96
6.3.3整体 global 项目卷标97
6.3.4区域 local 项目卷标98
6.3.5简易的报告描述符99
6.3.6Descriptor Tool 描述符工具 100
6.3.7兼容测试程序101
6.4HID设备的基本请求102
6.5Windows通信程序103
6.6问题与讨论106
PART 2 硬件技术篇
第7章 EZUSB FX简介
7.1简介109
7.2EZUSB FX硬件框图109
7.3封包与PID码111
7.4主机是个主控者113
7.4.1从主机接收数据113
7.4.2传送数据至主机113
7.5USB方向113
7.6帧114
7.7EZUSB FX传输类型114
7.7.1批量传输114
7.7.2中断传输114
7.7.3等时传输115
7.7.4控制传输115
7.8设备列举116
7.9USB核心116
7.10EZUSB FX单片机117
7.11重新设备列举117
7.12EZUSB FX端点118
7.12.1EZUSB FX批量端点118
7.12.2EZUSB FX控制端点0118
7.12.3EZUSB FX中断端点119
7.12.4EZUSB FX等时端点119
7.13快速传送模式119
7.14中断120
7.15重置与电源管理120
7.16EZUSB 2100系列120
7.17FX系列--从FIFO122
7.18FX系列--GPIF 通用型可程序化的接口 122
7.19AN2122/26各种特性的摘要122
7.20修订ID123
7.21引脚描述123
第8章 EZUSB FX CPU
8.1简介130
8.28051增强模式130
8.3EZUSB FX所增强的部分131
8.4EZUSB FX寄存器接口131
8.5EZUSB FX内部RAM131
8.6I/O端口132
8.7中断132
8.8电源控制133
8.9特殊功能寄存器 SFR 134
8.10内部总线135
8.11重置136
第9章 EZUSB FX内存
9.1简介137
9.28051内存138
9.3扩充的EZUSB FX内存139
9.4CS#与OE#信号140
9.5EZUSB FX ROM版本141
第10章 EZUSB FX输入/输出端口
10.1简介143
10.2I/O端口143
10.3EZUSB输入/输出端口寄存器146
10.3.1端口配置寄存器147
10.3.2I/O端口寄存器147
10.4EZUSB FX输入/输出端口寄存器149
10.5EZUSB FX端口配置表151
10.6I2C控制器156
10.78051 I2C控制器156
10.8控制位158
10.8.1START位158
10.8.2STOP位158
10.8.3LASTRD位158
10.9状态位159
10.9.1DONE位159
10.9.2ACK位159
10.9.3BERR位159
10.9.4ID1, ID0159
10.10送出 WRITE I2C数据160
10.11接收 READ I2C数据160
10.12I2C激活加载器160
10.13SFR寻址 FX 162
10.14端口A~E的SFR控制165
第11章 EZUSB FX设备列举与重新设备列举
11.1简介167
11.2预设的USB设备169
11.3USB核心对于EP0设备请求的响应170
11.4固件下载171
11.5设备列举模式172
11.6没有存在EEPROM173
11.7存在着EEPROM, 第一个字节是0xB0 0xB4, FX系列
11.8存在着EEPROM, 第一个字节是0xB2 0xB6, FX系列
11.9配置字节0,FX系列177
11.10重新设备列举 ReNumerationTM 178
11.11多重重新设备列举 ReNumerationTM 179
11.12预设描述符179
第12章 EZUSB FX批量传输
12.1简介188
12.2批量输入传输189
12.3中断传输191
12.4EZUSB FX批量IN的例子191
12.5批量OUT传输192
12.6端点对194
12.7IN端点对的状态194
12.8OUT端点对的状态195
12.9使用批量缓冲区内存195
12.10Data Toggle控制196
12.11轮询的批量传输的范例197
12.12设备列举说明199
12.13批量端点中断199
12.14中断批量传输的范例201
12.15设备列举说明205
12.16自动指针器205
第13章 EZUSB控制端点0
13.1简介209
13.2控制端点EP0210
13.3USB请求212
13.3.1取得状态 Get_Status 214
13.3.2设置特性(Set_Feature)217
13.3.3清除特性(Clear_Feature)218
13.3.4取得描述符(Get_Descriptor)219
13.3.5设置描述符(Set Descriptor)223
13.3.6设置配置(Set_Configuration)225
13.3.7取得配置(Get_Configuration)225
13.3.8设置接口(Set_Interface)225
13.3.9取得接口(Get_Interface)226
13.3.10设置地址(Set_Address)227
13.3.11同步帧227
13.3.12固件加载228
第14章 EZUSB FX等时传输
14.1简介229
14.2等时IN传输230
14.2.1初始化设置230
14.2.2IN数据传输230
14.3等时OUT传输231
14.3.1初始化设置231
14.3.2数据传输232
14.4设置等时FIFO的大小232
14.5等时传输速度234
14.5.1EZUSB 2100系列234
14.5.2EZUSB FX系列235
14.6快速传输 仅存于2100系列 236
14.6.1快速写入236
14.6.2快速读取237
14.7快速传输的时序 仅存于2100系列 237
14.7.1快速写入波形238
14.7.2快速读取波形239
14.8快速传输速度(仅存于2100系列)239
14.9其余的等时寄存器240
14.9.1除能等时寄存器240
14.9.20字节计数位241
14.10以无数据来响应等时IN令牌242
14.11使用等时FIFO242
第15章 EZUSB FX中断
15.1简介243
15.2USB核心中断244
15.3唤醒中断244
15.4USB中断信号源245
15.5SUTOK与SUDAV中断248
15.6SOF中断249
15.7中止 suspend 中断249
15.8USB重置中断249
15.9批量端点中断250
15.10USB自动向量250
15.11USB自动向量译码251
15.12I2C中断252
15.13IN批量NAK中断 仅存于AN2122/26与FX系列 253
15.14I2C STOP反相中断 仅存于AN2122/
26与FX系列 254
15.15从FIFO中断 INT4 255
第16章 EZUSB FX重置
16.1简介257
16.2EZUSB FX打开电源重置 POR 257
16.38051重置的释放259
16.3.1RAM的下载260
16.3.2下载EEPROM260
16.3.3外部ROM260
16.48051重置所产生的影响260
16.5USB总线重置261
16.6EZUSB脱离262
16.7各种重置状态的总结263
第17章 EZUSB FX电源管理
17.1简介265
17.2中止 suspend 266
17.3回复 resume 267
17.4远程唤醒 remote wakeup 269
第18章 EZUSB FX系统
18.1简介271
18.2DMA寄存器描述272
18.2.1来源. 目的. 传输长度地址寄存器272
18.2.2DMA起始与状态寄存器275
18.2.3DMA同步突发使能寄存器275
18.2.4虚拟寄存器278
18.3RD/FRD与WR/FWR DMA闪控的选择278
18.4DMA闪控波形与延伸位的交互影响279
18.4.1DMA外部写入279
18.4.2DMA外部读取280
第19章 EZUSB FX寄存器
19.1简介282
19.2批量数据缓冲区寄存器283
19.3等时数据FIFO寄存器284
19.4等时字节计数寄存器285
19.5CPU寄存器287
19.6I/O端口配置寄存器288
19.7I/O端口A~C输入/输出寄存器289
19.8230 Kbaud UART操作--AN2122/26寄存器291
19.9等时控制/状态寄存器291
19.10I2C寄存器292
19.11中断294
19.12端点0控制与状态寄存器299
19.13端点1~7的控制与状态寄存器300
19.14整体USB寄存器305
19.15快速传输309
19.16SETUP数据311
19.17等时FIFO的容量大小311
19.18通用I/F中断使能312
19.19通用中断请求312
19.20输入/输出端口寄存器D与E313
19.20.1端口D输出313
19.20.2输入端口D脚位313
19.20.3端口D输出使能313
19.20.4端口E输出313
19.20.5输入端口E脚位314
19.20.6端口E输出使能314
19.21端口设置314
19.22接口配置314
19.23端口A与端口C切换配置316
19.23.1端口A切换配置#2316
19.23.2端口C切换配置#2317
19.24DMA寄存器319
19.24.1来源. 目的. 传输长度地址寄存器319
19.24.2DMA起始与状态寄存器320
19.24.3DMA同步突发使能寄存器320
19.24.4选择8051 A/D总线作为外部FIFO321
PART 3 固件技术篇
第20章 EZUSB FX固件架构与函数库
20.1固件架构总览323
20.2固件架构的建立325
20.3固件架构的副函数钩子325
20.3.1工作分配器326
20.3.2设备请求 device request 326
20.3.3USB中断服务例程329
20.4固件架构整体变量332
20.5描述符表333
20.5.1设备描述符333
20.5.2配置描述符334
20.5.3接口描述符334
20.5.4端点描述符335
20.5.5字符串描述符335
20.5.6群组描述符335
20.6EZUSB FX固件的函数库336
20.6.1包含文件 *.H 336
20.6.2子程序336
20.6.3整体变量338
20.7固件架构的原始程序代码338
第21章 EZUSB FX固件范例程序
21.1范例程序的简介346
21.2外围I/O测试程序347
21.3端点对, EP_PAIR范例352
21.4批量测试, BulkTest范例362
21.5等时传输, ISOstrm范例368
21.6问题与讨论373
PART 4 实验篇
第22章 EZUSB FX仿真器
22?1简介375
22?2所需的工具376
22?3EZUSB FX框图377
22.4EZUSB最终版本的系统框图378
22?5第一次下载程序378
22.6EZUSB FX开发系统框图379
22.7设置开发环境380
22.8EZUSB FX开发工具组的内容381
22.9EZUSB FX开发工具组软件382
22.9.1初步安装程序382
22.9.2确认主机 个人计算机 是否支持USB382
22.10安装EZUSB控制平台. 驱动程序以及文件383
22.11EZUSB FX开发电路板385
22.11.1简介385
22.11.2开发电路板的浏览385
22.11.3所使用的8051资源386
22.11.4详细电路386
22.11.5LED的显示387
22.11.6Jumper387
22.11.7连接器391
22.11.8内存映象图392
22.11.9PLD信号394
22.11.10PLD源文件文件395
22.11.11雏形板的扩充连接器P1~P6397
22.11.12Philips PCF8574 I/O扩充IC400
22.12DMA USB FX I/O LAB开发工具介绍401
22.12.1USBFX简介401
22.12.2USBFX及外围整体环境介绍403
22?12?3USBFX与PC连接软件介绍404
22.12.4USBFX硬件功能介绍404
第23章 LED显示器输出实验
23.1硬件设计与基本概念409
23.2固件设计410
23.3.1固件架构文件FW.C411
23.3.2描述符文件DESCR.A51412
23.3.3外围接口文件PERIPH.C417
23.4固件程序代码的编译与链接421
23.5Windows程序, VB设计423
23.6INF文件的编写设计424
23.7结论426
23.8问题与讨论427
第24章 七段显示器与键盘的输入/输出
实验24.1硬件设计与基本概念428
24.2固件设计431
24.2.1七段显示器431
24.2.24×4键盘扫描433
24.3固件程序代码的编译与链接434
24.4Windows程序, VB设计436
24.5问题与讨论437
第25章 LCD文字型液晶显示器输出实验
25.1硬件设计与基本概念438
25.1.1液晶显示器LCD438
25.2固件设计452
25.3固件程序代码的编译与链接456
25.4Windows程序, VB设计457
25.5问题与讨论458
第26章 LED点阵输出实验
26.1硬件设计与基本概念459
26.2固件设计463
26.3固件程序代码的编译与链接463
26.4Windows程序, VB设计465
26.5问题与讨论465
第27章 步进电机输出实验
27.1硬件设计与基本概念466
27.1.11相激磁467
27.1.22相激磁467
27.1.31-2相激磁468
27?1?4PMM8713介绍469
27.2固件设计473
27.3固件程序代码的编译与链接474
27.4Windows程序, VB设计476
27.5问题与讨论477
第28章 I2C接口输入/输出实验
28.1硬件设计与基本概念478
28.2固件设计481
28.3固件程序代码的编译与链接483
28.4Windows程序, VB设计484
28.5问题与讨论485
第29章 A/D转换器与D/A转换器的输入/输出实验
29.1硬件设计与基本概念486
29.1.1A/D转换器486
29.1.2D/A转换器490
29.2固件设计493
29.2.1A/D转换器的固件设计493
29.2.2D/A转换器的固件设计496
29.3固件程序代码的编译与链接497
29.4Windows程序, VB设计498
29.5问题与讨论499
第30章 LCG绘图型液晶显示器输出实验
30.1硬件设计与基本概念500
30.1.1绘图型LCD500
30.1.2绘图型LCD控制指令集503
30.1.3绘图型LCD读取与写入时序图505
30.2固件设计506
30.2.1LCG驱动程序506
30.2.2USB固件码513
30.3固件程序代码的编译与链接516
30.4Windows程序, VB设计517
30.5问题与讨论518
附录A Cypress控制平台的操作
A.1EZUSB控制平台总览519
A.2主画面520
A.3热插拔新的USB设备521
A.4各种工具栏的使用524
A.5故障排除526
A.6控制平台的进阶操作527
A.7测试Unary Op工具栏上的按钮功能528
A.8测试制造商请求的工具栏 2100 系列的开发电路板 529
A.9测试等时传输工具栏532
A.10测试批量传输工具栏533
A.11测试重置管线工具栏535
A.12测试设置接口工具栏537
A.13测试制造商请求工具栏 FX系列开发电路板
A.14执行Get Device Descriptor 操作来验证开发板的功能是否正确539
A.15从EZUSB控制平台中, 加载dev_io的范例并且加以执行540
A.16从Keil侦错应用程序中, 加载dev_io范例程序代码, 然后再加以执行542
A.17将dev_io 目标文件移开, 且使用Keil IDE 集成开发环境 来重建545
A.18在侦错器下执行dev_io目标文件, 并且使用具有侦错能力的IDE547
A.19在EZUSB控制平台下, 执行ep_pair目标文件
A.20如何修改fw范例, 并在开发电路板上产生等时传输550
附录BEZUSB 2100系列及EZUSB FX系列引脚表
B.1EZUSB 2100系列引脚表555
B?2EZUSB FX系列引脚图表561
附录C EZUSB FX寄存器总览
附录D EEPROM烧录方式
暂无评论