论文部分内容阅读
随着信息技术的发展,数据采集作为一项关键技术已应用于通信、网络、工业控制,自动化、医疗和生命科学等方方面面,例如无线通信基站中的数据采集模块,军工航天中的高清晰图像处理单元,高性能数字存储示波器,雷达目标探测仪和DNA光谱分析仪等。但近年来随着信息数据量的不断增长,对数据采集系统中的采集、存储、传输和处理等关键技术都提出了更大的挑战。本论文的项目背景是实现基于体域网协议模型的数据采集系统,所有的基带数据处理部分在通用CPU上完成,处理完成后的数据经PCIE总线接口传输到FPGA平台,在FPGA上完成数字上/下变频和高速AD/DA转换。本论文主要研究的内容是基于PCIE总线的DMA控制器的设计,即将FPGA高速数据采集卡中DDR3 SDRAM存储的大量数据通过PCIE的总线接口以DMA的方式传送到上位机中,在上位机的软件中可以进行实时的分析和处理。本论文在基于FPGA的硬件平台实现4通道配置的PCIE Gen2.0 DMA控制器的总线接口设计,利用Xilinx FPGA的PCIE IP生成PCIE端点设备,在事务层设计TLP的组包和拆包以及相关接口的设计。与传统设计采用FIFO或者RAM不同,本论文采用8GB的DDR3 SDRAM作为本地存储器,能够实现项目中大数据量的存储与传输要求;另一方面,根据PCIE协议规定,PCIE端点设备作为总线主控设备进行PCIE总线传输时,组织的存储器读事务属于非转发事务,即在接收上位机数据之前需要首先发送请求包,本论文创新性地设计了存储器读请求包的轮询发送机制,有效地避免了从上位机接收数据时的存储空间溢出问题。最后,实现了PCIE DMA控制器和DDR3控制器之间的接口转换,并在两个不同工作时钟域模块之间加入了异步FIFO,有效地避免了对DDR3进行跨时钟域读写操作时亚稳态的发生。本论文在基于Linux的上位机平台上实现PCIE的驱动程序。区别于传统的DMA驱动设计,本论文设计了一种海量数据DMA传输的方式。首先将待传输的数据划分成4MB的DMA数据块,将与DMA传输相关的变量组织成DMA操作符形式的结构体,将不同的DMA操作符通过链表的形式组织起来,并利用Linux内核的completio n同步机制实现DMA读/写操作和用户空间操作的并行处理。改进后的驱动程序设计减小了系统的时间开销,加快了DMA的传输效率。本论文以BEEcube公司的miniBE E设备为开发平台,以平台中的XilinxVirtex6 FPGA芯片作为实现数据存储和控制的逻辑芯片。除了FPGA主处理板,miniBEE平台中还包括Linux上位机和实现上位机和处理板数据通信的PCIE总线。结合检测FPGA内部信号的Chip Scope软件,对本文设计的PCIE DMA控制器的FPGA逻辑进行了检测,通过编写应用程序对驱动程序的设计进行了测试。经过测试,本文设计的PCIE DMA控制器在进行DMA读写事务操作时总线带宽峰值可分别达到965MBps和882MBps,基本达到PCIE Gen2.0 X4总线的理论有效峰值带宽。