分布式数据采集系统的设计方案详解
扫描二维码
随时随地手机看文章
1引言
分布式数据采集系统(Distributed data acquisition system)是相对于集中式数据采集系统而言的。它一般是由地面采集站、遥测数传电缆以及中央控制站三部分组成,其中地面采集站按测线的方向布置,负责采集一个或几个测点的地球物理数据,而中央控制站的主要任务是完成数据的记录和质量监控。这种系统已在地震勘探和高密度电法中被采用。
在工程安全监测领域,集中式数据采集系统在应用过程中遇到了不少难以克服的技术难题,单从产品的制造质量方面入手是不能完全解决这些问题的。随着集成电路技术的发展,集成电路芯片的功能越来越强大,体积越来越小,而价格却越来越低,所以在研制新的数据采集自动化系统时,工程技术人员不在担心成本因素、体积因素,而是将设计重点放在系统的稳定性上,着重研究数据采集系统如何应对监测工程中传感器大数量、分布范围特点。 [1]20世纪80年代,西方国家开始研究多CPU的数据采集自动化系统,即在原来集中式数据采集系统的每个“集线箱”中部署了一个或多个CPU,在监测数据采集的现场,就地将传感器的信号转换成为数字信号,并且具有相互独立的控制和数据管理能力,这时的“集线箱”变成了测量控制单元(MCU),而MCU通过通信网络将采集到的数据传送给上位计算机存储、分析计算和处理,这种数据采集系统就被称为分布式数据采集系统。当时计算机网络通信技术的快速发展,为分布式数据采集系统的成功提供了有力的技术保障。
为此,基于CycloneIV+STM32设计了一种新型的无线分布式采集系统,实现了数据的高可靠和同步传输。设计主要由3大部分组成:编码器、译码器、无线收发电台。在对编码器、译码器同步校准后,对待发送数据进行卷积编码,并转换为串行数据。数据转换为串行数据后,在串行数据帧头加入Barker码来实现帧的同步,并使用2条互为备份的数据传送通道同时发送数据。在数据接收端检测到barker码后,本地对互为备份的双通道数据进行viterbi译码(本文设计的viterbi译码器采用并行结构,大大的降低译码时间)。译码结束后,本地对双通道数据进行循环冗余校验,并做出判选,最后执行相应指令。并在规定时间给出相应反馈信号。设计的无线采集系统,即使某一数据通道出现少量错码,系统仍能有效的恢复出数据,并进行可靠的数据传输。系统添加了监控模块,实时备份上传的数据并监控,如发现不能正常上传,则启用备用模块保证整个系统正常工作。系统不仅能实现数据的高可靠和同步传输,而且具有很好的适用性,可广泛应用工业中。
2 无线分布式采集系统简介
2.1 系统硬件简介
无线分布式采集系统包括编码器、译码器(编码器、译码器硬件完全相同,只是配置逻辑不同,可配置为编码器、译码器、中继站)和无线通信电台。如图1所示,这是一个最简单的一对一式分布式系统。

图1 无线分布式采集系统结构
编码器作为上位机与译码器之间的桥梁,通过USB/RS485通道进行发送、接收命令和数据。译码器接收编码器发来的命令进行配置和采集,并将数据存储至DDR2中。译码器收到上传命令后,上传数据至编码器。
编码器/译码器硬件系统框图如图2所示。本系统主控单元由FPGA完成。FPGA选用Altera公司的EP4CGX30F407,逻辑单元为29440个,80个18×18乘法器,多达290个用户自定义IO。STM32作为监控和备用单元组成系统的基本架构,STM32F407ZG系列是基于高性能的ARM CortexTM-M4F的32位RISC内核,工作频率高达168 MHz,该STM32F407ZG系列采用高速嵌入式存储器(多达1 MB闪存,高达192 KB的SRAM),拥有3个12位ADC,2个DAC,1个低功耗RTC,12个通用16位定时器,2个通用32位定时器。人机交互部分由16X2液晶显示字符模块和4个按键组成,其主要功能是通过按键对基站编号设置并显示在LCD上。无线模块选用WSN-03系列无线模块作为收发平台,工作电压为5 V,传输速率和工作频段等都可配置。目前传输速率最大为115 200b ps,工作频为433 MHz可调。无线模块与FPGA主要以RXD/A,TXD/B,NRST(复位控制),SET(设置模块参数),SLP(休眠控制)信号线连接。GPS模块选用VKl6U6进行定位,与FPGA以UART接口连接,波特率定位9600 bps。ADC选用基于△-Σ技术的32 bits高精度低功耗模数转换芯片ADSl282,采样信号电平范围:差分输人一2.5~+2.5 V。单个译码器有6个采集通道,以2 k采样率,采样时常16 S来计算,单个译码器纯数据量为6×2 k×16×24-6144 Kbits.考虑到编码器,一次采样,8个基站的数据经编码后数据总量为98 304 Kbits,所以编码器和译码器需增加l片Micron Technology公司的MT47H256M8HG-37E IT(256Meg×8)作为缓存空间。由于DDR2 SDRAM需要特定的控制读写时序,系统直接采用Quartus II自带的“DDR2 SDRAM High-Performance Controller”IP CORE。USB部分由2个通道组成,一个是由FPGA、CY7C68013和USB接口组成;另一个由STM32(自带USB驱动)和USB接口组成。同时本设计中还添加了RS485串口,使整个系统与上位机能保持实时通信,为系统的远程控制提供了可能,并能保持系统更新。

图2 系统框架
2.2 系统数据流程
系统的数据流程为:同步校准译码器,设置各个译码器接收命令后的延时-编码器配置采集参数、命令-译码器采集数据保存至DDR2中一各译码器分时接收数据上传命令并上传数据-编码器将数据汇总保存至DDR2-数据收集齐后通过USB/RS485上传至上位机。译码器节点配合计算机对各个点的数据进行轮询采集,它包含了无线传输模块和与计算机通信的USB接口。STM32将组帧后的数据备份并实时监控FPGA,如在规定时间或未能按指令进行工作,STM32将替代FPGA并使FPGA进入断电状态。
2.3 系统组帧格式
编码器与译码器之间是一对多的关系,译码器分时上传数据,译码器有2个通道,译码器有唯一的配置编号。数据帧的格式如图3所示。数据帧中除20字节有效数据之外,还包括组号、目的编号等。

图3 编码器、译码器间数据帧格式
为了改进接收信号质量,本系统引入信道编码的方法来改善信道质量。具体如图4所示。发送端对数据进行组帧、并串转换、卷积编码、加入同步帧信息后,把数据发送至无线通信电台进行调制。接收端的无线通信电台对信号进行解调后发送数据至接收端的FPGA.接收端的FPGA检测到帧同步信息后对接下来的数据保存,并进行Viterbi译码。FPGA对双通道的数据进行冗余校验,并选择正确的数据执行相关操作。

图4 无线数据传输
3 无线分布式采集系统数据传输的实现
3.1 可靠性
待发数据经卷积编码,互为备份的双通道发送,Viterbi译码,冗余校验,数据判选,系统能够很好的进行无线收发。
3.1.1 卷积编码
数据组帧完成后,由低位至高位进行并串转换,进行卷积编码。卷积编码是一种纠错信道编码,是由连续的输入信息序列经编码后得到连续输出的编码序列口。以(n,k,m)来描述卷积码,k为每次输入到卷积编码器的bit数,行为每k元组码字对应的卷积码输出n元组码字,m为编码储存度。卷积编码生成的n元组元不仅与当前输入有关系,还与前面m一1个输入的k元组有关系。本系统采用(2,1,4)卷积编码器,如图5所示。图中“+”代表异或。每bit经编码后都有2 bit输出(C1,C2)。

图5 (2,1,4)卷积编码器
3.1.2 Viterbi译码
接收端有2个接收通道,互不干扰。接收端对2个通道同时译码。译码采用Viterbi译码。Viterbi译码算法是一种卷积码的解码算法。Viterbi译码根据最大似然算法规则,能达到最佳译码,特别适合向前纠错。以本设计为例,根据图5,编码器4个延时状态(0,1)组成整个编码器的16个状态(D4D3D2D1),每个状态在编码器输入1或0时,跳转到另一个状态。并且输出也随之改变。译码就是编码的逆过程。算法规定任意t时刻收到的数据都要进行32次路径值计算、16次比较,比较后每个状态只保存一个路径值,为接下来计算减少了一半的运算量。反复208次,从16条幸存路径中选出一条路径值最小的,反推出这条路径,得出相应的译码输出。考虑到每次译码后,译码器都能回到初始状态,所以源数据最后加了8 bit的“0”。本设计采用并行处理结构,经214个周期还原出源码。
在设计FPGA逻辑时,基本采用多条并行的流水线技术,译码部分包含4个子模块:加比选模块、回溯模块、存储模块和时钟控制模块。路径值的计算和比较在3个时钟周期内完成,4个模块同时运行,大大的降低了译码时间。另外,为了提高FPGA效率,系统加入采样触发信号,保证系逻辑能够稳定运行。
3.1.3 数据判选
经译码后,接收端已接收到2组互为备份的数据。经实践证明,简单的并联冗余能大大的提高系统的可靠性。具体选择流程如图6所示。2路数据经Viterbi译码后,开始接收一帧数据,并写入RAM中,同时计算CRC校验、帧完整性检测、ID是否符合本地。上述检测都没问题时,对2路幸存路径的度量值进行比较,选择值小的通道作为最终数据。

图6 数据的选择
3.2 同步的实现
为了保证编码器和译码器之间能严格实现同步,数据帧需要加入同步帧。实现帧同步的方法通常有2种:起止同步法和集中式插入同步法。起止式同步比较简单,一般在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。集中插入式同步法中插人的同步码要求在接收端进行同步识别时出现伪同步的概率尽可能低,并且要求该码具有尖锐的自相关特性以便识别。7位巴克码作为帧同步码,其局部自相关函数为:

由上公式计算可知,7位巴克码的自相关函数在j一0时出现尖锐的单峰特性。设计中采用2组同步帧头作为同步码,同步帧头由7位巴克码和1 bit的0组成。
到现在为止,待发数据bit数为:208×2+8×2-432 bits。经调制解调后,接收端检测帧同步信息,同步信息为2组11100100组成。每组同步信息高7位与7位巴克码相比,允许出错位数在1位以内。设P为码元错误概率,行为同步码组的码元数,m为判决其允许码组中的错误码元最大数,在本系统中行n=7,m=1。在P=0.01时,单一barker码的漏同步概率为:

当2组同步帧都满足时,帧同步建立,接收端保 存接下来的数据。无线通信电台与FPGA以rs485连接,如图7所示,FPGA检测X是否为“0”,当检测到“0”,不接收端对接下来的数据X与本地巴克码对应位进行位异或运算。当检测1 byte barker码,错1位以内时,发出一value脉冲。当检测到2个value脉冲时,说明同步已建立,接收端开始存储接下来的数据。

图7 barler码识别
4 系统监控模块的实现
STM32与FPGA连接如图8所示,由于ARM与FPGA的相互通信直接影响着控制器的性能,所以该并行总线的设计就成为一个非常关键的问题。该总线可以包括芯片的地址总线(ADDR[021])、数据总线(DB[015])、控制总线、复位信号(nRST)以及中断信号线(INT),其中控制总线包括使能信号(nOE)、片选信号(nCS)、读信号(nRD)、写信号(nWE),这样做的好处是,将FPGA芯片存储器化,即STM32可通过对特定地址的访问来控制FPGA工作,并且可通过共同的复位信号将STM32与FPGA芯片同时复位,尽量避免总线竞争和冒险现象的出现。

图8 STM32与FPGA连接
STM32与FPGA同时接收命令,在解析完命令后,FPGA应在规定的时间内发送数据,FH认组帧完成时,发出INT信号至黜2申请中断。如果STM32在规定时间内没有接收到FPGA发来的INT信号,将开始计时,计时时间内未能接收INT信号,STM32将停止FPGA供电电源工作,由STM32代替FPGA工作,保证整个系统能稳定进行。
无线分布式采集系统是一种通过无线通信技术实现数据采集的系统,主要用于地形复杂或不适合人类出现的区域。该系统通常由多个采集节点组成,每个节点负责采集特定区域的数据,并通过无线方式将这些数据传输到中央处理单元。
无线分布式采集系统的特点
灵活性:由于采用无线通信,系统部署更加灵活,不受物理布线的限制。
可靠性:系统设计通常包括数据冗余和错误检测机制,确保数据的可靠传输。
扩展性:可以轻松添加或移除节点,适应不同场景的需求变化。
低功耗:部分系统设计采用低功耗硬件和优化算法,确保长时间运行。
无线分布式采集系统的应用场景
无线分布式采集系统广泛应用于各种需要远程监测和数据采集的场景,如:
环境监测:监测空气质量、水质、温度、湿度等环境参数。
工业监控:监测生产线状态、设备运行参数等。
农业监测:监测土壤湿度、光照强度、温度等农业相关参数。
灾害预警:监测地震、洪水等自然灾害的前兆数据。
无线分布式采集系统的技术细节
硬件组成:通常包括编码器、译码器、无线通信电台等组件。编码器负责数据收集和发送,译码器负责数据接收和处理。
通信技术:常用的通信技术包括ZigBee、LoRa、NB-IoT等,这些技术提供了不同的覆盖范围和传输速率。
数据处理:系统通常采用数据压缩、错误检测和纠正等技术,确保数据的完整性和可靠性。