论文部分内容阅读
科技的发展使得电子测量仪器正向着高性能、多功能化、模块化的方向发展,合成仪器的概念应时而生,同时将快速发展的嵌入式技术融合到合成仪器的研制中也使得其在各方面的优势都更加突出。本课题研究的基于PCIe总线的数据采集模块作为合成仪器中的一个核心部位,其在功能、性能上的要求也越来越高。本文在由合成仪器的Power PC主控板和FPGA数据采集卡组成的硬件基础上进行软件层的设计与实现。首先在Linux系统下搭建驱动软件开发及运行环境,主要包括在主机电脑上安装LTIB工具、TFTP服务、NFS以及Minicom串口调试工具。此外,还需为PowerPC主控板移植嵌入式Linux系统,包括U-Boot和Linux内核的移植,以及根文件系统的制作。其次在Linux环境下进行PCIe驱动软件的开发,并且在驱动软件的read()、write()函数中采用了DMA双缓冲区的乒乓操作、中断、内存屏障等关键技术优化其数据读/写性能。然后为驱动软件设计读写数据应用程序,分别给传输数据分配不同大小的缓冲区,以测试其对PCIe总线数据传输速率的影响。接下来在Qt集成开发环境下,通过QUdpSocket类进行socket编程来设计数据采集卡中千兆以太网模块的上位机软件,免去不少复杂代码。该上位机完成了对FPGA数据采集模块的发送、接收数据及相关数据处理,为FPGA数据采集卡的硬件调试提供可视化界面。最后是对各个部分进行测试与验证,驱动软件方面包括设备的系统启动、驱动程序的加载、PCIe基地址寄存器的读写以及驱动程序读写功能和速率的测试,上位机软件方面包括将数据通过上位机软件发送给FPGA数据采集卡和上位机接收数据采集卡返回来的数据两个部分,以验证千兆以太网模块和DDRII存储器模块的功能及其读/写速率。从测试结果可以看出,这两方面的软件设计都基本达到预期的要求。