本发明涉及通信领域,具体为一种具有统一时间标志的多路数据采集系统。
背景技术:
目前,数据采集系统更多地要求采集不同设备的各种信号,包括模拟信号和数字信号。在面对采集不同种类信号时,通常采用两种方法:一种是对模拟量和数字量数据独立编帧分别存储,另一种是对模拟量和数字量进行数据混合编帧存储,即对不同种类的信号加上不同的帧标志来区别。由于数字量信号发送的不连续性和发送随机性,这两种方法都无法确定接收到的数字信号在整个采集过程中的确定时间,导致出现了模拟信号与数字信号在同一采集时间域中的时间不能统一的问题。
技术实现要素:
为了便于事后能够对数据进行准确的分析和处理,能够在同一时间坐标系下精确反映模拟量数据和数字量数据的时序关系,本发明提出将数字量数据与模拟量信号的时间信息进行混合编帧的方法。
本发明是采用如下技术方案实现的:
一种具有统一时间标志的多路数据采集系统,硬件电路组成包括信号输入接口电路,FPGA数据编码处理模块和MCU通讯模块。
所述信号输入接口电路包括用于处理模拟信号的调理电路和用于接收数字信号的RS422接口电路。
所述模拟信号调理电路的输出端与多路模拟开关的输入端连接,所述多路模拟开关的输出端与AD转换模块的输入端连接,所述AD转换模块的输出端与FPGA数据编码处理模块的数据输入端连接。
所述RS422接口电路的输出端与FPGA数据编码处理模块的数字信号输入端连接。
所述FPGA数据编码处理模块的输出端与MCU通讯模块的输入端连接,所述MCU通讯模块的输出端外接SPI接收设备。
其中,FPGA数据编码处理模块内设计ADC控制模块、数字量接收模块和时间标志插入模块。
所述ADC控制模块根据控制时序图,向AD转换模块发出相应的时序控制信号,实现ADC启动转换和数据读取,并完成模拟信号的通道切换,转换数据的编码和发送,同时将ADC的采样时钟作为同步时钟信号发送给时间标志插入模块。
所述数字量接收模块完成数字量数据的检测和接收,在程序复位完成后,开始检测起始位并进行数据异步接收。
所述时间标志插入模块一方面记录ADC控制模块发送过来的同步时钟信号,一方面去检测数字量接收模块是否有数据正在接收,当检测到数字量接收模块在设定时间内没有接收到数据时,则插入同步时间标志,即读取记录的当前同步时钟值,按照数据帧编码结构将其写入到数字量缓存FIFO中;继续检测串口是否再次收到数据,如果没有检测到数据,就不再插入时间标志,即一次数据接收完之后只插入一次时间标志;如果再次检测到数据,则在该次数据接收完之后的设定时间内无数据接收时,再次插入同步时间标志;依次进行,直至数据接收完毕。
所述MCU通讯模块对FPGA数据编码处理模块内FIFO的数据进行读取,并通过SPI接口发送给接收设备,通过数据处理软件解析数字量数据,获得与模拟量相关的同步时间信息,则能够在同一时间坐标系下精确反映模拟量数据和数字量数据的时序关系。
本发明有效地解决了采集系统中模拟量和数字量两种不同信号采集接收时的时间同步问题,使采集系统有了在同一时间域下的完整数据,为试验数据的时序分析提供了方便。该发明能够为接收的数字量数据提供准确的同步时间信息,另外AD采集时钟的分频系数与插入时间标志的设定时间可以灵活修改,使发明具有一定的通用性。目前,本发明已成功地应用到相关项目中,时间精度也能满足实际要求,具有一定的参考价值。
附图说明
图1表示系统原理框图。
图2表示ADS7881控制时序图。
图3表示ADC控制模块程序状态机。
图4表示数字量接收模块状态机。
图5表示数字量编码帧结构。
图6表示时间标志插入模块的状态机。
图7表示通讯SPI发送数据流程图。
图8表示ADC控制模块仿真结果图。
图9表示数字量接收模块仿真结果图。
图10表示时间标志插入模块仿真结果图。
具体实施方式
下面结合附图对本发明的具体实施例进行详细说明。
一种具有统一时间标志的多路数据采集系统,以8路模拟信号的采集和一路数字信号的接收为例,实现数字量数据与时间标志信息进行混合编帧的系统原理框图如图1所示。整个系统包含三个部分:信号采集接收,数据编码处理和通讯传输。
信号采集接收电路用于完成模拟信号的调理和数字量信号的接收,包括用于处理模拟信号的调理电路和用于接收数字信号的RS422接口电路。所述模拟信号调理电路的输出端与多路模拟开关的输入端连接,所述多路模拟开关的输出端与AD转换模块的输入端连接,所述AD转换模块的输出端与数据编码处理模块的数据输入端连接;所述RS422接口电路的输出端与数据编码处理模块的数字信号输入端连接。其中,模拟信号调理模块(电路)采用LINENR公司的LTC2051运算放大器设计模拟信号调理跟随电路,调理后的电压信号在AD转换模块的量程范围内。通过ADG608多路模拟开关实现多路模拟信号的通道切换。AD转换模块选用BB公司的ADS7881芯片完成多路模拟信号的模数转换。对于数字量信号的接收,选用MAMIM公司的MAX3490芯片,该接口芯片将RS422标准的差分信号转换成FPGA数据编码处理模块可以进行处理的单端3.3V电压信号,由FPGA模块对数字量进行接收处理。
所述数据编码处理模块的输出端与通讯模块的输入端连接,所述通讯模块的输出端外接SPI接收设备。其中,数据编码处理功能选用FPGA芯片来实现和完成,通过VHDL语言编写模块化的程序来实现多路模拟开关MUX的切换、ADC的时序控制、数字信号的接收、同步时间标志的插入以及编码数据的缓存处理。FPGA芯片选用ALTERA公司cyclone系列EP1C6T144I7,其供电电压为3.3V,具有内部可编程逻辑单元多、运行速度快、功耗低、输出时序稳定的特点。考虑到系统的可扩展性和功能多样性,通讯传输模块没有选用专用的SPI通讯接口芯片来实现数据通讯,而是选用了SILAB公司C8051F340型号的MCU。该器件内部集成了多种形式的通讯外设接口,通过编程实现对外设接口的操作,具有操作灵活,扩展性强的特点。
本系统软件包括数据编码和数据传输两部分,其中数据编码是整个系统的核心。
数据编码部分如下:
数据编码程序主要用于实现对多路模拟开关的切换控制、ADC的转换控制、数字量数据的接收、同步时间标志的插入、数据的写入缓存控制,最终形成数据流。数据编码处理模块内设计ADC控制模块、数字量接收模块和时间标志插入模块。
ADC控制模块主要功能是依据ADS7881的控制时序图,如图2所示,在ADS7881的引脚发出相应的时序控制信号,实现ADC启动转换和数据读取;并完成模拟信号的通道切换,转换数据的编码和数据发送,同时将ADC的采样时钟作为同步时钟信号输入到时间标志插入模块。整个控制过程由状态机实现,状态机如图3所示。
数字量接收模块主要是完成数字量数据的检测和接收,在程序复位完成后,开始检测起始位并进行数据异步接收。其状态机如图4所示。
数字量编码是将数字量数据和模拟量的同步时间信息按照一定的协议进行混合编码,那么在何时插入同步时间信息就成为了关键。采用的方法是,时间标志插入模块一方面记录ADC控制模块发送过来的同步时钟信号,一方面去检测数字量接收模块是否有数据正在接收,当检测到数字量接收模块在设定时间内没有接收到数据时,则插入同步时间标志,即读取记录的当前同步时钟值,按照数据帧编码结构将其写入到数字量缓存FIFO中;继续检测串口是否再次收到数据,如果没有检测到数据,就不再插入时间标志,即一次数据接收完之后只插入一次时间标志;如果再次检测到数据,则在该次数据接收完之后的设定时间内无数据接收时,再次插入同步时间标志;依次进行,直至数据接收完毕。这一控制过程由状态机实现,如图6所示。其中,数字量编码帧结构为:数字量数据+时间标志帧头EB 90+4字节时间信息,如图5所示。
数据传输部分如下:
采集数据通过MCU内部的SPI通讯接口进行传输,SPI发送数据的软件流程如图7所示。从图7中可以看出,在MCU检测到FPGA内部的FIFO缓存输出半满信号HF为低电平时,通过操作I/O端口在电平下降沿对FIFO的数据进行读取,再控制SPI控制寄存器将数据通过SPI接口发送给接收设备。通过数据处理软件解析数字量数据,获得与模拟量相关的同步时间信息,则能够在同一时间坐标系下精确反映模拟量数据和数字量数据的时序关系。
以下为对本系统的仿真结果与分析
1、ADC控制模块仿真分析
利用Quartus Ⅱ软件对ADC控制模块进行程序功能仿真,仿真结果如图8所示。从图8中可以看出,按照如图2所示的ADC控制时序,数据转换完毕后,在AD数据读取信号ad_rd为低电平期间进行转换数据的读取,并将数据按照规定好的数据帧格式进行编码;同时将同步时钟信号sys_time_clk输出到时间标志插入模块。
设计中采用的同步时钟是由AD采集时钟2分频后得到的,AD采集时钟的分频系数与插入的时间信息精度有关,分频系数越大,时间精度越低。
2、数字量接收模块和时间标志插入模块仿真结果分析
数字量接收模块和时间标志插入模块的程序仿真结果分别如图9和图10所示。从两个图中可以看出,串行接口有数据接收时,状态端串口忙信号t_busy为高电平,数据接收写入(串口写信号uart_wr为低电平)完成后,串口忙信号t_busy变为低电平,当时间标志插入模块检测到t_busy为低电平并在低电平持续时间达到设定时间11μs时,将同步时间标志帧写入到缓存FIFO中。写入同步时间的控制信号为time_wr,在时间标志帧写入缓存时,time_wr信号会输出6个低电平,完成同步时间数据的写入。
由于串口发送数据的周期和不发送数据的空闲时间是不固定的,为使时间标志插入模块能适用于不同发送周期的情况,可以通过测试空闲时间参数来灵活设置时间标志帧的写入时刻。
从仿真结果分析可见,由于帧结构固定,每路时间标志信息在帧中的位置也是固定的,所以只要监测到帧标志为EB 90,就可以提取出数字量的接收时间信息,从而达到模拟量和数字量数据的时间统一。
综上所述,本发明提出了一种在同一时间坐标系下测试分析模拟量和数字量数据的设计方案,将ADC采样时钟作为同步时钟信号,在串口接收数据的空闲时间段内,利用FPGA将数字量数据与同步时钟信息进行混合编帧,使采集系统有了在同一时间域下的完整数据,并使用Quartus Ⅱ软件进行了仿真与分析。经实践应用,验证了该方法的可行性。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明的技术方案的精神和范围,其均应涵盖本发明的权利要求保护范围中。