实时数据采集系统及方法
【技术领域】
[0001]本发明涉及数据采集,具体地,涉及一种实时数据采集系统及方法。
【背景技术】
[0002]数据采集是使用计算机测量电压、电流、温度、压力或声音等电子、物理现象的过程。基于PC的DAQ (数据采集,Data Acquisit1n)系统利用行业标准计算机的处理、生产、显示和连通能力,提供更强大、灵活且成本效益的测量解决方案。不论是单机数据采集(采集卡+局部总线)还是多点分布式数据采集装置(上位机+下位机+现场总线),一般均包括传感器、DAQ设备(信号调理、数模转换)、通过标准计算机总线(或网络)连接至计算机。现有技术中的DAQ系统组成如图1所示。
[0003]现有基于PC的数据采集系统,采用多线程处理技术,为防止数据传输延时、线程调度处理不及时等原因而引起的数据丢失,通常DAQ系统均基于多级缓存机制,由于PC机是分时多任务系统,中断和定时精度不可能达到更高。采用DMA方式降低了 CPU的占用率提升了传输带宽,仍不能从根本上满足实时系统对时间的严格要求,而且在强实时性应用场景不允许DMA(直接内存访问,Direct Memory Access)长期占用总线,因此单纯DMA技术也存在一定的弊端。采用RT0S(实时操作系统,RealTime Operating System)任务调度机制可以提高实时性,但缺点是一方面增加系统移植成本,另一方面从根本上受限基于“指令串行”先天缺陷,实时性不容易符合现代高速控制系统要求。如图所示,1代表T0时刻DAQ设备缓存数据已准备好,但数据到达计算机缓存的时刻Tx时缓存数据如2所示;而最终到达线程调度时刻Ty,进入线程的缓存内容为4,而3成为下一周期T0时刻的缓存,如此往复执行。即Ty时刻处理的数据是T0时刻的数据,而Ty的精度在基于缓存的机制下无法得到更加精确的保证,导致系统实时性无法保证。
【发明内容】
[0004]针对现有技术中的缺陷,本发明的目的是提供一种实时数据采集系统及方法。
[0005]根据本发明的一个方面提供的实时数据采集系统,包括传感器、DAQ设备和计算机;
[0006]其中,所述传感器、所述DAQ设备和所述计算机依次相连;所述DAQ设备包括可编程逻辑器件和ADC模数转换器;
[0007]所述传感器用于采集模拟量数据,所述ADC模数转换器用于将所述模拟量数据转换为数字量数据;所述可编程逻辑器件用于将数字量数据滤波生成滤波数据并传送至计算机的缓存中。
[0008]优选地,所述可编程逻辑器件用于实现周期性数据刷新有限状态机FSM ;
[0009]所述周期性数据刷新有限状态机FSM的周期固定为T,其精度不会受操作系统调度延时、程序指令中断等延时等因素的限制,因而可达到微妙甚至纳秒级精度的数量级。
[0010]优选地,所述可编程逻辑器件采用可编程逻辑器件CPLD或现场可编程逻辑器件FPGA ο
[0011]根据本发明的另一个方面提供的实时数据采集方法,采用所述的实时数据采集系统,包括如下步骤:
[0012]步骤1:可编程逻辑器件启动ADC模数转换器;
[0013]步骤2:可编程逻辑器件对ADC模数转换器生成的数字量数据进行数字量数据滤波生成滤波数据;
[0014]步骤3:将滤波数据暂存到可编程逻辑器件的FIFO缓存中;
[0015]步骤4:将所述滤波数据传送到计算机的缓存中;
[0016]步骤5:计算机执行所述滤波数据实时采集处理任务。
[0017]优选地,当滤波数据暂存到可编程逻辑器件的FIFO缓存中时,同时存储一个同步的时间戳标记。
[0018]优选地,在步骤4中,当将所述滤波数据传送到计算机的缓存时,所述计算机数据采集线程通过ΡΙ0方式实时查询当前DAQ设备的时间戳与计算机的缓存时间戳,若当前DAQ设备的时间戳与计算机的缓存时间戳超出设定的实时性阈值,则继续将所述滤波数据传送到计算机的缓存中,否则进步步骤5。
[0019]优选地,在步骤4之前还包括如下步骤:
[0020]-循环重复执行步骤1至步骤3,每次循环执行步骤1至步骤3后,递增一个时间变化量Atl。
[0021 ] 优选地,在步骤2中,通过DMA方式将滤波数据传送到计算机的缓存中。
[0022]与现有技术相比,本发明具有如下的有益效果:
[0023]1、本发明采用通用的微处理器和可编程逻辑器件即可实现,与现有数据采集装置结构兼容,将可编程并行计算应用于数据采集实现,克服CPU指令串行和操作系统调度导致的非实时因素,以极低的硬件成本实现较高的性能;
[0024]2、本发明克服了传统的数据采集技术因缓存延时、线程调度实时精度不高导致的系统实时性问题,将实时精度提高一个数量级(微秒甚至纳秒);
[0025]3、本发明原理可扩展用于其他计算机数据处理任务,尤其适用于多通道并行高速数据采集系统。
【附图说明】
[0026]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0027]图1为现有技术中DAQ系统的结构示意图;
[0028]图2为现有技术中DAQ系统的多级缓存机制示意图;
[0029]图3为现有技术中DAQ系统的多级缓存机制的时间示意图;
[0030]图4为本发明的结构示意图;
[0031]图5为本发明中的实时数据原理示意图。
[0032]图中:
[0033]10为时间轴;
[0034]11为任务调度时刻;
[0035]12为精细间隔时间;
[0036]13为数据采样值缓存阵列;
[0037]14、15、16、17均为非实时的任务调度时刻间隔;
[0038]18为时间间隔;
[0039]100为有限状态机FSM。
【具体实施方式】
[0040]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0041]随着半导体工艺水平提高,可编程逻辑技术(CPLD、FPGA)以其并行执行、逻辑可定制、实现成本低、硬件强实时等技术优势,在计算机领域得到大规模应用。为了实现本发明的目的,本发明提供的实时数据采集系统,包括传感器、DAQ设备和计算机;其中,所述传感器、所述DAQ设备和所述计算机依次相连;所述DAQ设备包括可编程逻辑器件和ADC(模数转换,Analog Digitalize Converter)模数转换器;所述传感器用于采集模拟量数据,所述ADC模数转换器用于将所述模拟量数据转换为数字量数据;所述可编程逻辑器件用于将数字量数据滤波生成滤波数据并传送至计算机的缓存中。
[0042]所述可编程逻辑器件用于实现周期性数据刷新有限状态机FSM ;所述周期性数据刷新有限状态机FSM(有限状态机,Finite State Machine)的周期固定为T,精度至少可达到微秒