网络化数据采集系统可以在很多远程监控的场合应用,其主要特点在于采集数据的远程传输。一个典型的网络化数据采集系统电路结构如下图所示:

 

wKiom1OFLneSgHt0AADNOT6qTXM837.jpg

 

一个数据采集节点通常可以支持多通道并行采样。因此,前端输入通道支持多路并行输入。每路输入信号经过阻抗匹配电路之后进行低通滤波处理。很多接入的传感器信号频率不是很高,因此,需要采用低通滤波器将高频信号滤除(采样预处理),然后接入多通道同步模数转换器进行量化处理。

模数转换在采样控制器的控制下进行,采样控制器可以在FPGA内部实现。模数转换之后的结果直接存入FIFO,当FIFO中的数据量超过设定阈值时,开始向ARM处理器提交中断请求。ARM处理器接收到中断请求之后,开始读取FIFO中的数据,然后生成网络包,通过以太网络发往主机服务器。从这个电路结构来看,FIFO在这里起到了数据缓冲的作用,FIFO的容量和采样频率相关。如果采样频率较高,那么需要开辟较大的FIFO空间,否则会出现数据丢点的状况。采样频率的上限值取决于网络数据传输率,如果网络端口的吞吐量存在问题,那么采样率不能太高,否则同样会出现数据丢点的状况。采样频率、FIFO容量和网络吞吐量三者是息息相关的,分析三者的关系可以采用流水线模型。

在这个系统中,模数转换控制器和FIFO都可以采用FPGA来实现,其具有非常好的软件可配置型。FIFO容量的配置、采样逻辑都可以针对实际的应用环境进行优化。FPGA内的所有电路都可以采用Verilog来实现。

网络化数据采集系统不仅涉及到数据采集系统,而且还涉及到网络数据传输。网络数据传输涉及到传输协议的处理,特别是网络协议栈的处理。因此,在设计实现该系统的时候,需要采用ARM处理器来完成传输协议的处理。在ARM处理器中可以实现轻量的TCP/IP协议栈以及自定义的上层传输协议。其最重要的目的就是将采集数据传输到主机服务器,并且需要处理数据丢包、乱序等一系列问题。

在网络端可以采用常用的网络接口控制器实现以太网层的数据传输。该控制器实现以太网PHYMAC层的数据传输。另外,为了便于调试和系统状态检测,需要外扩调试串口。

从整个电路结构上来看,网络化数据采集系统的设计实现不是特别复杂,其主要研制工作量在于FPGAARM程序开发、调试。由于采样频率通常不会太高,因此,信号调理和数据采集电路很容易调试。

我开发设计的网络化数据采集系统实物如下所示:

 

wKioL1OFLmTCIGIPAAJh6G3pick351.jpg

 

随着物联网时代的到来,智能硬件不断被大家重视。基于有线网络、无线网络的远程数据采集这样的基本硬件系统有着非常多的应用点,用于构建大数据时代的硬件基石。