| 摘要 | 第5-7页 |
| Abstract | 第7-8页 |
| 缩略语对照表 | 第12-17页 |
| 第一章 绪论 | 第17-25页 |
| 1.1 课题研究背景及意义 | 第17-18页 |
| 1.2 数据采集系统的发展现状 | 第18-20页 |
| 1.3 PCIE总线的研究背景 | 第20-21页 |
| 1.4 论文内容与结构安排 | 第21-25页 |
| 第二章 PCIE协议概述 | 第25-35页 |
| 2.1 PCIE协议体系简介 | 第25-27页 |
| 2.1.1 PCIE总线拓扑结构 | 第25页 |
| 2.1.2 PCIE总线协议分层 | 第25-27页 |
| 2.1.3 PCIE总线事务介绍 | 第27页 |
| 2.2 PCIE事务层概述 | 第27-31页 |
| 2.2.1 TLP格式 | 第27-30页 |
| 2.2.2 路由与寻址规则 | 第30-31页 |
| 2.3 PCIE中断方式 | 第31-33页 |
| 2.3.1 MSI中断 | 第32-33页 |
| 2.3.2 INTx中断 | 第33页 |
| 2.4 PCIE配置空间 | 第33-34页 |
| 2.4.1 与PCI兼容的配置空间 | 第33-34页 |
| 2.4.2 PCIE扩展配置空间 | 第34页 |
| 2.5 本章小结 | 第34-35页 |
| 第三章 PCIE DMA控制器的FPGA设计 | 第35-63页 |
| 3.1 Xilinx PCI-Express IP核 | 第35-40页 |
| 3.1.1 功能特点 | 第36页 |
| 3.1.2 PCIE IP参数设置 | 第36-37页 |
| 3.1.3 主要接口 | 第37-40页 |
| 3.2 DMA发送逻辑设计 | 第40-46页 |
| 3.2.1 发送引擎模块 | 第40-43页 |
| 3.2.2 发送DMA控制模块 | 第43-46页 |
| 3.3 DMA接收逻辑 | 第46-51页 |
| 3.3.1 接收引擎模块 | 第46-47页 |
| 3.3.2 接收DMA控制模块 | 第47-51页 |
| 3.4 DMA控制寄存器模块 | 第51-53页 |
| 3.5 DDR3接口模块设计 | 第53-62页 |
| 3.5.1 DDR3控制器设计 | 第54-58页 |
| 3.5.2 DDR3跨时钟域设计 | 第58-60页 |
| 3.5.3 DMA接口转换模块 | 第60-62页 |
| 3.6 本章小结 | 第62-63页 |
| 第四章 基于Linux上位机的PCIE驱动程序开发 | 第63-75页 |
| 4.1 PCIE驱动程序中定义的数据结构 | 第63-65页 |
| 4.2 与设备操作相关的驱动程序设计 | 第65-68页 |
| 4.2.1 驱动模块加载/卸载 | 第65-66页 |
| 4.2.2 probe成员函数 | 第66-67页 |
| 4.2.3 remove成员函数 | 第67-68页 |
| 4.3 与文件操作相关的驱动设计 | 第68-73页 |
| 4.3.1 打开/关闭设备函数 | 第69-70页 |
| 4.3.2 读/写设备函数 | 第70-72页 |
| 4.3.3 I/O控制函数XPCIe_Ioctl | 第72-73页 |
| 4.4 与中断操作相关的驱动设计 | 第73页 |
| 4.5 本章小结 | 第73-75页 |
| 第五章 系统测试与验证 | 第75-83页 |
| 5.1 系统测试平台 | 第75页 |
| 5.2 驱动程序调试 | 第75-79页 |
| 5.2.1 驱动程序的加载 | 第76-77页 |
| 5.2.2 驱动程序的功能测试 | 第77-78页 |
| 5.2.3 配置空间/基址寄存器空间测试 | 第78-79页 |
| 5.3 FPGA验证与调试 | 第79-82页 |
| 5.3.1 PCIE总线逻辑测试 | 第80-82页 |
| 5.3.2 PCIE总线速度测试 | 第82页 |
| 5.4 本章小结 | 第82-83页 |
| 第六章 总结与展望 | 第83-85页 |
| 6.1 论文总结 | 第83页 |
| 6.2 未来工作展望 | 第83-85页 |
| 参考文献 | 第85-87页 |
| 致谢 | 第87-89页 |
| 作者简介 | 第89页 |