中文摘要 | 第3-5页 |
英文摘要 | 第5-6页 |
1 绪论 | 第10-20页 |
1.1 研究背景及意义 | 第10-11页 |
1.2 国内外发展现状 | 第11-18页 |
1.2.1 PCIe总线传输概要 | 第11-13页 |
1.2.2 FPGA与Avalon-ST总线概述 | 第13-15页 |
1.2.3 WDF驱动模型系统框架概述 | 第15-18页 |
1.3 本文主要工作 | 第18-19页 |
1.4 文章结构安排 | 第19-20页 |
2 PCIe总线体系结构 | 第20-30页 |
2.1 Transaction Layer事物层 | 第20-23页 |
2.1.1 TLP格式 | 第21-22页 |
2.1.2 TLP的组装与拆解 | 第22-23页 |
2.2 DataLink Layer数据链路层 | 第23-25页 |
2.2.1 DLLP格式 | 第23-24页 |
2.2.2 DLLP的组装与拆解 | 第24-25页 |
2.3 Physical Layer物理层 | 第25-27页 |
2.3.1 逻辑物理层 | 第25-26页 |
2.3.2 电气物理层 | 第26-27页 |
2.4 PCIe总线信号 | 第27-28页 |
2.5 本章小结 | 第28-30页 |
3 WDF驱动框架 | 第30-38页 |
3.1 WDF驱动程序结构 | 第30-33页 |
3.1.1 KMDF基本对象 | 第30-31页 |
3.1.2 KMDF程序架构 | 第31-33页 |
3.2 KMDF模型的I/O通信 | 第33-35页 |
3.2.1 I/O请求的种类 | 第33-34页 |
3.2.2 I/O传输的方式 | 第34-35页 |
3.3 DMA传输 | 第35-36页 |
3.4 本章小结 | 第36-38页 |
4 PCIe接口的FPGA设计与实现 | 第38-48页 |
4.1 开发环境及步骤 | 第38-40页 |
4.1.1 FPGA设计流程 | 第38-39页 |
4.1.2 开发平台介绍 | 第39-40页 |
4.2 IP硬核设置 | 第40-41页 |
4.3 数据接收与发送模块 | 第41-44页 |
4.3.1 数据接收模块 | 第41-43页 |
4.3.2 数据发送模块 | 第43-44页 |
4.4 FIFO缓冲区模块 | 第44-46页 |
4.5 本章小结 | 第46-48页 |
5 KMDF驱动程序设计与实现 | 第48-62页 |
5.1 开发环境搭建 | 第48-50页 |
5.2 KMDF驱动程序设计与编写 | 第50-54页 |
5.2.1 驱动程序结构设计 | 第50-51页 |
5.2.2 DriverEntry入口函数 | 第51-52页 |
5.2.3 wsKMDFEvtDeviceAdd函数 | 第52-54页 |
5.3 驱动程序I/O处理函数 | 第54-56页 |
5.4 中断及DMA | 第56-58页 |
5.4.1 中断对象及处理函数 | 第56-57页 |
5.4.2 DMA处理函数 | 第57-58页 |
5.5 KMDF与应用程序通信 | 第58-59页 |
5.6 DMA优化策略 | 第59-61页 |
5.7 本章小结 | 第61-62页 |
6 调试及验证 | 第62-76页 |
6.1 调试环境搭建 | 第62-65页 |
6.1.1 双机调试配置 | 第62-63页 |
6.1.2 调试工具配置 | 第63页 |
6.1.3 inf文件 | 第63-64页 |
6.1.4 调试方法 | 第64-65页 |
6.2 应用层数据传输验证 | 第65-67页 |
6.2.1 应用层写流程 | 第65-66页 |
6.2.2 应用层读流程 | 第66-67页 |
6.2.3 验证结果 | 第67页 |
6.3 DMA数据传输验证 | 第67-70页 |
6.3.1 DMA写传输 | 第67-69页 |
6.3.2 DMA读传输 | 第69-70页 |
6.3.3 验证结果 | 第70页 |
6.4 实验数据传输及FFT处理 | 第70-75页 |
6.4.1 简单逻辑的数据处理 | 第71页 |
6.4.2 FFT处理参数设定 | 第71-72页 |
6.4.3 FFT处理模块 | 第72-73页 |
6.4.4 数据传输及结果比对 | 第73-75页 |
6.5 结果与讨论 | 第75页 |
6.6 本章小结 | 第75-76页 |
7 总结与展望 | 第76-78页 |
致谢 | 第78-80页 |
参考文献 | 第80-86页 |
附录 | 第86页 |