《PDIUSBD12 USB固件编程与驱动开发》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:周立功等编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2003
  • ISBN:7810772708
  • 页数:256 页
图书介绍:本书简要介绍了USB总线、USB通信协议、PDIUSBD12 USB器件的原理、接口技术、固件编程思想及其实现方法;重点介绍了USB驱动程序的开发及其USB应用程序设计。

第1章 USB总线概述 1

1.1 USB总线简介 1

1.2 USB总线的优点 1

1.3 PHILIPS公司的USB器件介绍 1

1.3.1 PHILIPS公司的USB设备器件 2

1.3.2 PHILIPS公司的USB主控器件 3

1.3.3 PHILIPS公司的OTG器件 10

2.1 USB系统构成 13

第2章 USB 1.1协议简介 13

2.2 USB设备的枚举过程 14

2.3 USB的分组标识 14

2.4 USB标准设备请求 16

2.5 USB设备的描述符 18

第3章 PDIUSBD12器件介绍 25

3.1 功能描述 25

3.1.1 PDIUSBD12器件特性 25

3.1.2 管脚配置 25

3.1.3 描述 27

3.2 端点描述 30

3.3 命令汇总 31

3.3.1 初始化命令 32

3.3.2 数据流命令 36

3.3.3 普通命令 40

第4章 USB开发套件 42

4.1 USB D12 SMART开发套件 42

4.1.1 简介 42

4.1.2 设置USB D12 SMART套件 43

4.1.3 D12端点描述 46

4.1.4 连接器描述 48

4.2 DP—51下载仿真实验仪 52

第5章 单片机的固件编程 54

5.1 固件编程的思想 54

5.2 固件编程的实现 56

5.2.1 硬件提取层——EPPHAL.C 57

5.2.2 PDIUSBD12命令接口——D12CI.C 57

5.2.3 中断服务程序——ISR.C 61

5.2.4 协议层——CHAP_9.C,PROTODMA.C 69

5.2.5 标准设备请求处理——CHAP_9.C 70

5.2.6 厂商请求处理——PROTODMA.C 81

5.2.7 主循环——MAINLOOP.C 84

5.2.8 其他CPU平台的固件接口的移植 89

5.2.9 USB设备枚举的数据传输过程 89

第6章 USB驱动程序开发 96

6.1 使用Windows DDK开发驱动程序 96

6.2 驱动程序设计中的基本概念 98

6.2.1 五层模型 98

6.2.2 IRP(IO请求包) 99

6.2.3 FDO、PDO、Filter DO以及IRP在一个设备对象堆栈中的流程 99

6.2.4 USB驱动程序相关概念 99

6.2.5 USB驱动程序的入口详解 100

6.2.6 驱动程序的初始化:BulkUsb_AddDevice 101

6.3 即插即用(PNP)处理例程的编写(IRP_MJ_PNP) 105

6.3.1 设备即插即用状态图解 105

6.2.7 驱动程序的卸载:BulkUsb__DriverUnload 105

6.3.2 处理即插即用IRP的主例程BulkUsb_DispatchPnP分析 106

6.3.3 处理设备启动IRP:IRP_MN_START_DEVICE 108

6.3.3 处理查询停止设备IRP:IRP_MN_QUERY_STOP_DEVICE 117

6.3.4 处理取消停止设备IRP:IRP_MN_CANCEL_STOP_DEVICE 118

6.3.5 处理停止设备IRP:IRP_MN_STOP_DEVICE 119

6.3.6 处理查询卸载设备IRP:IRP_MN_QUERY_REMOVE_DEVICE 120

6.3.7 处理取消卸载设备IRP:IRP_MN_CANCEL_REMOVE_DEVICE 121

6.3.8 处理意外卸载设备IRP:IRP_MN_SURPRISE_REMOVAL 122

6.3.9 处理卸载设备IRP:IRP_MN_REMOVE_DEVICE 124

6.3.10 处理查询设备性能IRP:IRP_MN_QUERY_CAPABILITIES 125

6.4 电源管理例程的编写(IRP_MJ_POWER) 127

6.4.1 电源管理中的基本概念 127

6.4.2 处理电源管理IRP的基本规则 128

6.4.3 处理电源管理IRP的主例程BulkUsb_DispatchPower分析 129

6.4.4 处理电源状态查询IRP:IRP_MN_QUERY_POWER 131

6.4.5 处理电源状态设置IRP:IRP_MN_SET_POWER 135

6.4.6 处理等待/唤醒IRP:IRP_MN_WAIT_WAKE 138

6.4.7 电源操作中的回调例程 138

6.5 设备控制例程的编写(IRP_MJ_DEVICE_CONTROL) 143

6.6 数据读写例程的编写(IRP_MJ_READ,IRP_MJ_WRITE) 146

6.6.1 USB设备数据读写的基本概念 146

6.6.2 打开USB设备的IRP:IRP_MJ_CREATE 146

6.6.3 关闭USB设备的IRP:IRP_MJ_CLOSE 148

6.6.4 读写USB设备的IRP:IRP_MJ_READ,IRP_MJ_WRITE 149

6.7 WMI例程的编写(IRP_MJ_SYSTEM_CONTROL) 153

6.7.1 关于WMI的基本知识 153

6.7.2 处理WMI的主例程:BulkUsb_DispatchSysCtrl 154

6.7.3 各种具体的WMI的处理1 155

6.8 公用处理例程的编写 159

6.8.1 对USB设备的选择性挂起 159

6.8.2 对USB设备的等待/唤醒操作(Wait/Wake) 168

6.8.3 利用信号量机制确定处理中的IRP的个数 171

6.8.4 使用系统IRP来提交URB 173

6.8.5 处理堆积的IRP 174

6.8.6 取消IRP的工作 176

第7章 USB应用程序设计 178

7.1 查找设备 179

7.1.1 获取设备信息集 180

7.1.2 识别接口信息 181

7.1.3 获得设备路径名 182

7.2 打开设备 183

7.3 读写USB设备 184

7.4 关闭通信 187

第8章 USB51S及其EASYD12库的使用 188

8.1 各端点在固件中的使用 188

8.2 固件函数库子程序说明 189

8.3 增加用户请求 191

8.4 示例程序 191

8.5 EasyD12驱动程序库的使用 196

第9章 基于USB接口的E2PROM编程器 198

9.1 概述 198

9.2 硬件接口 198

9.3 通信协议 200

9.3.1 上位机命令(使用端点1) 200

9.3.3 写操作 201

9.3.2 读操作回应 201

9.4 使用说明 202

9.4.1 增加D12接收缓冲区监视位 202

9.4.2 USB事件标志定义 202

9.4.3 USB设备请求寄存器 203

9.4.4 Setup包数据缓冲区 203

9.4.5 注意事项 203

9.5 源代码 203

9.5.1 文件MAINLOOP.C清单 204

9.5.2 文件ISR.C清单 213

9.5.3 文件VI2C_C51.C清单 217

9.6 上位机软件设计 224

9.6.1 概述 224

9.6.2 EasyD12.dll简介 225

9.6.3 ZlgEasyD12演示程序简介 225

9.6.4 操作演示程序 225

9.6.5 使用EasyD12.dll 226

9.6.6 注意事项及程序设计 227

9.6.7 创意与超越 236

10.1 电源供电 237

第10章 USB开发的注意事项 237

10.2 数据传输 238

10.3 传输速度 238

10.4 PDIUSBD12常见问题解答 238

10.4.1 普通产品信息 238

10.4.3 上电复位 239

10.4.4 挂起 239

10.4.2 关于上电 239

10.4.5 时钟 241

10.4.6 接口 242

10.4.7 PDIUSBD12的编程 245

10.4.8 其他 245

10.5 SMART D12板常见问题解答 247

附录 249

附录1 TKS系列单片机实时在线仿真器 249

附录2 CP系列通用编程器 253

附录3 周立功单片机发展有限公司通讯录 256