论文部分内容阅读
数据采集技术已经应用在各行各业,例如:通信、工业控制、互联网等,无一不存在数据采集系统的身影。本文立足于智能电网监控的需求,设计并实现了以太网数据的采集系统;采集系统包含硬件、驱动程序和应用程序三个部分。本文在深入研究数据采集卡的设计原理和方法的基础上,设计了多路10/100Base的PHY同时采集数据,采集速度理论值达到600Mbps;通过两个“乒乓”中的DDR3芯片转存采集到的数据,并通过管理队列管理整个采集过程;在FPGA提供的PCI-E IPCORE的基础上,设计了PCI-E接口模块,设计了主模式的DMA传输模块,使得采集系统的DMA传输速度理论值达到2Gbps。本文在深入研究Linux设备驱动的原理和实现方法的基础上,设计并实现了采集卡驱动,完成了海量DMA传输的设计与实现;采用了异步通知的方式通知应用层获取数据,在提交数据时采用了高效的内存映射的方法;并为应用层控制设备的正常运行提供了传输控制的各种接口。在应用程序中,实现了设备启动、停止和复位的控制,完成了数据的正确获取与存入硬盘;在每次数据采集之后设计了数据统计模块以确认采集量和采集速度。经过实际测试,整个系统的DMA传输速度达到1.5Gbps,采集速度达到530Mbps,系统能够稳定运行,达到了智能电网监控系统的要求。本文的特色如下:1.采用保留内存的方法获取海量DMA缓存,在此基础上硬件与驱动之间的数据传输采用海量DMA的方法,将原本需要分多次小块数据传输化成一次海量数据传输即可,单次DMA传输可达64MB,改善了数据的传输效率;2.在应用层与驱动层数据传输中,采用基于内存映射的混合I/O方式,用拷贝的方式传输DMA缓冲区状态信息,用内存映射的方式实现DMA缓冲区数据的零拷贝传输,提高了应用层与驱动层数据的交互效率。