第一章 绪论 | 第1-25页 |
1.1 计算机总线技术 | 第15-18页 |
1.1.1 计算机总线概述 | 第15页 |
1.1.2 计算机体系中常见的总线 | 第15-16页 |
1.1.3 USB总线的介绍 | 第16-18页 |
1.1.3.1 USB发展历程 | 第16-17页 |
1.1.3.2 USB主要特征 | 第17-18页 |
1.2 串行总线的系统架构 | 第18-19页 |
1.2.1 串行总线的基本系统结构 | 第18-19页 |
1.3 USB总线的系统架构 | 第19-23页 |
1.3.1 USB总线拓扑结构 | 第19-20页 |
1.3.2 USB主机 | 第20-21页 |
1.3.3 USB设备 | 第21-22页 |
1.3.4 USB集线器 | 第22-23页 |
1.4 课题意义 | 第23页 |
1.5 论文结构 | 第23-25页 |
第二章 层次化的串行总线通信及通信设备端的框架 | 第25-55页 |
2.1 串行总线的层次化 | 第25-26页 |
2.2 USB数据流模型 | 第26-41页 |
2.2.1 USB设备框架 | 第26-28页 |
2.2.1.1 USB总线接口层 | 第27页 |
2.2.1.2 USB设备层 | 第27页 |
2.2.1.3 功能层 | 第27-28页 |
2.2.2 USB通信流 | 第28-31页 |
2.2.2.1 USB端点 | 第29-30页 |
2.2.2.2 通道 | 第30-31页 |
2.2.2.2.1 流通道 | 第30页 |
2.2.2.2.2 消息通道 | 第30-31页 |
2.2.3 传输类型 | 第31-37页 |
2.2.3.1 控制传输 | 第31-33页 |
2.2.3.2 同步传输 | 第33-34页 |
2.2.3.3 中断传输 | 第34-36页 |
2.2.3.4 批传输 | 第36-37页 |
2.2.4 传输的总线访问 | 第37-41页 |
2.2.4.1 传送管理 | 第37-39页 |
2.2.4.1.1 客户软件 | 第38页 |
2.1.4.1.2 USB驱动程序 | 第38-39页 |
2.1.4.1.3 主机控制器驱动程序 | 第39页 |
2.1.4.1.4 事务列表 | 第39页 |
2.1.4.1.5 主机控制器 | 第39页 |
2.1.4.2 事务跟踪 | 第39-40页 |
2.2.4.3 计算总线事务时间 | 第40-41页 |
2.2.4.4 计算应用层和主机软件缓冲区大小 | 第41页 |
2.2.4.5 总线带宽归还 | 第41页 |
2.3 USB设备构架 | 第41-54页 |
2.3.1 USB设备状态及其转换 | 第41-43页 |
2.3.1.1 外置的设备状态 | 第41-42页 |
2.3.1.2 总线列举 | 第42-43页 |
2.3.2 通用 USB设备操作 | 第43-44页 |
2.3.3 USB设备请求 | 第44-45页 |
2.3.4 标准设备请求 | 第45-49页 |
2.3.4.1 清除特性(CLEAR_FEATURE()) | 第46-47页 |
2.3.4.2 取得配置(GET_CONFIGURATION()) | 第47页 |
2.3.4.3 取得设备描述符(GET_DESCRIPTORO) | 第47页 |
2.3.4.4 取得接口设置(GET_INTERFACE()) | 第47页 |
2.3.4.5 取得状态(GET_STATUS()) | 第47-48页 |
2.3.4.6 设置地址(SET_ADDRESS()) | 第48页 |
2.3.4.7 设置配置值(SET_CONFIGURATION()) | 第48页 |
2.3.4.8 设置描述符(SET_DESERIPTOR()) | 第48页 |
2.3.4.9 设置特性(SET_FEATURE()) | 第48页 |
2.3.4.10 设置接口(SET_INTERFACE()) | 第48页 |
2.3.4.11 同步帧(SYNCH_TRAME()) | 第48-49页 |
2.3.5 描述符和标准设备描述符 | 第49-54页 |
2.3.5.1 标准设备描述符 | 第49-50页 |
2.3.5.2 标准设备配置描述符 | 第50-51页 |
2.3.5.3 接口描述符和端点描述符 | 第51-53页 |
2.3.5.4 字串描述符 | 第53-54页 |
2.4 小结 | 第54-55页 |
第三章 USB的硬件/软件设计实现 | 第55-88页 |
3.1 USB协议的简要概述 | 第55-57页 |
3.2 USB串行接口引擎SIE | 第57-73页 |
3.2.1 不归零翻转 NRZI编码和解码电路的设计 | 第57-60页 |
3.2.1.1 不归零翻转编码电路的设计 | 第59页 |
3.2.1.2 不归零翻转解码电路的设计 | 第59-60页 |
3.2.2 时钟数据恢复 CDR电路 | 第60-65页 |
3.2.3 封包处理 | 第65-68页 |
3.2.4 CRC编解码电路的设计 | 第68-72页 |
3.2.4.1 CRC算法原理 | 第69-70页 |
3.2.4.2 USB中 CRC硬件电路 | 第70-72页 |
3.2.5 USB中的重置、暂停、恢复与远程唤醒 | 第72-73页 |
3.2.5.1 USB总线重置 | 第72页 |
3.2.5.2 暂停与恢复 | 第72-73页 |
3.2.5.4 USB设备的控制过程 | 第73页 |
3.3 并行接口引擎 PIE关键部件的设计 | 第73-78页 |
3.3.1 端点缓存器需要设计为异步 FIFO的原因 | 第74-75页 |
3.3.2 异步 FIFO设计的难点 | 第75页 |
3.3.3 空/满状态标志信号的产生 | 第75-76页 |
3.3.4 指针的同步化 | 第76页 |
3.3.5 二进制指针和格雷码指针的比较 | 第76-78页 |
3.3.6 异步 FIFO的硬件电路 | 第78页 |
3.4 USB设备端软件的设计 | 第78-87页 |
3.4.1 USB设备固件架构总揽 | 第78-80页 |
3.4.2 固件架构的建立 | 第80页 |
3.4.3 固件架构的副函数钩子 | 第80-86页 |
3.4.3.1 工作分配器 | 第80-81页 |
3.4.3.2 设备请求(device request) | 第81-83页 |
3.4.3.3 USB中断服务例程 | 第83-86页 |
3.4.4 描述符表 | 第86页 |
3.4.5 固件的函数库 | 第86-87页 |
3.4.5.1 子函数 | 第86-87页 |
3.5 小结 | 第87-88页 |
第四章 验证 | 第88-102页 |
4.1 USB IP核的 FPGA设计流程 | 第88-92页 |
4.2 USB IP软核的软件仿真 | 第92-94页 |
4.3 硬件仿真测试 | 第94-101页 |
4.3.1 设备列举 | 第94-98页 |
4.3.1.1 驱动程序的选择 | 第94-97页 |
4.3.1.2 设备列举过程 | 第97-98页 |
4.3.2 USB I/O外围设备 | 第98-101页 |
4.3.2.1 固件设计 | 第98-100页 |
4.3.2.2 Windows程序、VB设计 | 第100页 |
4.3.2.3 INF文件的编写设计 | 第100-101页 |
4.4 小结 | 第101-102页 |
第五章 总结与展望 | 第102-103页 |
5.1 总结 | 第102页 |
5.2 展望 | 第102-103页 |
参考文献 | 第103-105页 |