APP下载

核仪器遥传系统数据校验设计

2022-03-07曹彧周建斌

电子测试 2022年24期
关键词:数据量字节上位

曹彧,周建斌

(成都理工大学核技术与自动化工程学院,四川成都,610059)

关键字:核测量;无线传输;程序设计;串行通信; SerialPort类;接收逻辑

0 引言

随着电子信息技术的发展,计算机技术在传统核测量领域得到了广泛应用,其中作为探测放射性核素主要设备的伽玛能谱仪,大量用于环境监测、地质勘探、核物理实验测量等领域[1],为避免现场测量时,长时间接触放射源对人体造成的危害,可使用无线传输模块将现场测量设备和计算机终端进行隔离,实现非接触式远距离测量[2],以此降低研究人员受辐射的危害。

串行接口作为计算机常用的对外接口,因其简单易用,在某些对通讯速度要求不高的测控场景中被广泛应用。以串行通信为基础的硬件设备与上位机进行数据传输时,上位机从串口缓冲区获取数据的方式,经调研发现常用的有两种,一种是等待指定时间后,从接收缓冲区读取指定长度的数据,下文简称为“时间模式”[3-4];一种是按照接收缓冲区字节长度是否达到硬件设备上传数据量来获取数据,下文简称为“字节模式”[5]。

本文使用的无线传输模块与计算机终端之间采用串行通信的方式进行数据交互,经实际测试发现,在使用无线模块进行数据遥传的过程中,因为通信质量不稳定,常规的以时间模式或字节模式这两种常用方式来获取数据的上位机接收逻辑,适用性差,易造成通信阻塞,进而导致测量传输系统无法正常运行,因此在前人的研究基础上,本文使用SerialPort类,提出并检验了一种新的数据接收逻辑,在增加了掉线重连、超时检测等功能后,测量传输系统的通信环境的适应能力及传输系统稳定性均得到了进一步的提升。

1 测量系统硬件构成

实际应用场景下的测量装置模型如图1所示,现场数据测量端由搭载探测器和无线数传电台模块的无人机组成,执行能谱测量及数据回传的任务。远程数据接收端由无线数传电台及运行测量控制程序的计算机构成,执行参数命令下发和现场测量数据接收的任务。

图1 实际应用场景下测量装置模型

测试过程中对实际应用场景下的装置进行了简化,去掉了无人机系统,仅在地面进行核仪器遥传测试,测试装置组成如图2所示,主要分为测量端与接收端两大部分,其中测量端主要由探测器与无线电台组成,接收端主要由计算机与无线电台组成。负责远距离无线传输的无线电台模块采用由成都亿佰特公司研发的E90-DTU工业级无线数传平台进行点对点通信。该无线数传平台支持RS-232、RS-485两种接口,可在距离较远、易受干扰的环境实现点对点跳频双向连传。

图2 测量装置结构组成

1.1 探测数据发送端设计

1.1.1 探测器与遥传模块通信

数据测量端基本结构模型如图3所示,碘化钠探测器主要包含NaI晶体、光电倍增管、前置放大器以及数字多道等模块,主要负责进行放射性测量。探测器与无线电台模块之间依靠RS-485串行总线进行数据交互,该协议采用差分信号进行传输具有结构简单且能有效抑制外界干扰的优点,数据交互过程包含测量数据上传以及测量参数配置,测量数据上传过程为探测器首先根据RS-485协议将数据上传至无线电台模块,然后通过无线电台将测量数据转换成电磁波,以此进行远距离无线传输。测量参数配置过程为无线电台首先对接收到的电磁波信号进行解析,然后将解析数据通过RS485协议下发给探测器,以此实现探测器测量参数的配置。

图3 数据测量端结构组成模型

1.1.2 探测器上传数据包设计

如图4所示,一个数据包由2个字节的帧头“0x55 0xAA”,接着是2个字节的测量时间“Th”、“Tl”,分别代表测量时间数据大小十六进制的高八位和低八位,然后是按顺序排列的2048个字节的能谱数据,结尾由2个字节地和校验字段共计2054个字节组成。在探测器接收到上位机通过遥传电台下发的测量数据获取指令后,立即通过遥传电台将测量数据包上传,经远程客户端电台发送至上位机。

图4 数据包格式示意图

1.2 探测数据接收端构成

1.2.1 遥传模块与计算机通信

数据接收端基本结构模型如图5所示,计算机与无线电台模块之间依靠RS-232串行总线进行数据交互,交互过程中包括测量数据接收以及测量参数下发,其中测量数据接收过程为无线电台对接收到的电磁波信号进行解析并将解析结果通过RS232协议传输至计算机,最终由运行于此计算机上的测量控制软件对测量数据进行处理。测量参数下发过程为测量控制软件将测量参数通过RS232协议下发给无线电台模块,由无线电台将测量数据转换成电磁波进行远距离无线传输。

图5 数据接收端结构组成模型

1.2.2 上位机串口通信实现方法

上位机测控程序使用C#编程语言,在集成开发环境Visual Studio 2019进行Winform开发而来的窗体应用程序,该测控程序以SerialPort类为基础搭建串口通信模块,实现上位机进行串口通信数据收发的功能。该类定义了多种用于串口收发数据的方法,本文使用Read(byte[],int32,int32)方法从输入缓冲区读取指定长度的字节,并将那些字节写入字节数组中指定的偏移量处,发送数据使用的是Write(byte[])将字节数组放入发送缓冲区通过串行端口进行发送。

2 应答模式下几种传输架构对比分析

2.1 串口接收逻辑及实现

2.1.1 时间模式获取探测数据

在时间模式下,上位机向远程探测点发送读取数据的命令,等待一定时间,然后从接收缓冲区读取指定长度的数据。当从缓冲区读取到的数据长度与应收数据长度相等,则认为收到正确应答,进行应答统计,否则认为丢包,进行丢包统计加。应答正确后对数据包进行解包校验,若校验通过则进行正确包统计,否则进行错误包统计。经数据处理完成后,再次发送读取数据指令,重复此循环以获取最新的探测数据。

等待时间值的大小,与探测器上传数据量及不同环境下遥传电台的通信质量相关。此种时间模式的架构,优点是结构简洁、容易实现,缺点是容易受外界影响,导致丢包、错误包的产生,例如通信质量的变化,导致在等待指定时间后,缓冲区数据量与应收数据量不等导致丢包的产生,缓冲区数据量与应收数据量相等但数据顺序错位,因此导致校验失败,该数据包将被判定为错误包。

2.1.2 字节模式获取探测数据

为避免时间模式测量中,上位机向远程探测设备发送读取数据命令后,实际需要等待的时间长短会随传输环境的变化而变化,进而导致丢包、错误包产生的问题,可采用字节模式架构实现一定程度上的问题规避。

字节模式即向探测设备发送读取数据命令后,按接收缓冲区内的字节数量来获取数据的模式,读取使能的判断,是由缓冲区数据量大小是否达到应收数据量决定的,当缓冲区数量与应收数据量相等,便认为正确接收应答进行应答统计,应答正确后,进行数据包解包校验,并完成相关统计,最后经数据处理操作,再次发送读取数据指令,重复此循环以获取最新的探测数据。

与时间模式下的等待固定时间来触发读取使能的方法相比较,按照缓冲区字节量是否满足条件来使能数据读取的方式,具有较大弹性,适用性更广。但缺陷也是显而易见的,假设传输过程突发异常状况,如远程探测设备短暂掉线、遥传电台信号受到环境干扰等导致的传输数据缺失,则接收缓冲区中的数据量始终难以达到应收字节长度的要求,故而程序将陷入判断缓冲区数据量是否满足要求的循环,导致无法进行后续操作,以至于上位机软件程序进入假死状态。虽然此种模式具有此种缺陷,但是在数据传输稳定的测量条件下,仍然具有较大应用意义。

2.1.3 时间+字节模式获取探测数据

测试分析了时间模式、字节模式下进行数据读取的优势和劣势,综合考虑,设计出了一种新的数据接收架构,时间-字节模式,该模式具有字节模式数据接收适用性广的优点,又结合时间模式的特性对字节模式存在的缺陷进行修正。流程框架如下图6所示。为避免因故障致使端口意外关闭,进而无法正确传输数据的情况发生,加入端口开启检测模块,向远程探测器发送读取数据命令后,当遇到“端口未开启”报错,将关闭超时检测计时器Timer1并立即启动端口扫描计时器Timer0,扫描并记录接入端口的识别信息,如果与原端口识别信息相同,则停止端口扫描模块,重新下发读取数据命令,若不相同,则继续扫描。

图6 “时间模式”数据接收逻辑示意图

端口正常开启情况下,向远程探测器发送读取数据命令后,同时开启超时检测计时器Timer1进行嘀嗒计时,数据接收模块检测接收缓冲区数据是否达到应收数据量要求,当遇到异常传输情况导致的数据传输缺失,致使缓冲区的数据量始终无法达到应收数据量的水平,在超时检测模块的辅助下,程序将不会陷入假死状态,而是在超时之后,将此失败应答统计为丢包,并向远程探测器重新发起数据请求命令。当接收缓冲区中的数据量满足要求时,则启动数据读使能,相应统计值进行累加,关闭超时检测模块使能,并将缓冲区中的数据读出,按照协议进行解包校验,统计接收信息,待后续数据处理完成后,再次发送读取数据命令,重复此循环以获取最新的探测数据。

2.2 数据传输测试对比

在需要应答信号的测量控制系统中,依据上述三种串行通讯数据传输逻辑,使用C#编程语言,以SerialPort类为基础,编写三种相应的串口通信测试程序,界面如下图7、8、9所示,在相同的测量环境下,使用同一个遥传测试平台,传输距离设置为100米,中间以门、墙作简单隔挡,进行连续测量,测试分析三种数据接收模式的稳定性。

图7 “字节模式”数据接收逻辑示意图

图8 “时间+字节模式”数据接收逻辑示意图

图9 “时间模式”上位机界面

图10 “字节模式”上位机程序

2.2.1 测量传输统计

如表1所示数据包接收统计,分别针对三种数据接收模式的上位机测量程序,在同一测量条件下,连续测量1小时,统计其数据接收信息,其中“应收包数目”表示上位机向远程探测器发送数据获取命令,对应的正常情况下数据包接收数目,“实收包数目”表示在一定应答时间限制内的,接收到与探测器上传数据等量的数据包接收数目,“丢失包数目”表示在一定时间内未收到与探测器上传数据等量数据包的次数。“错误包数目”表示接收到与探测器上传数据等量的数据后,校验通过的数目。字节模式下,因为其固有的逻辑缺陷,在单次接收数据出错后,程序将陷入假死状态,导致测量系统无法正常通信,因此字节模式下接收数据数目如表所示,理论上接收数据包数目应与“时间+字节”模式相等。

图11 “时间+字节模式”上位机程序

表1 测量包信息统计

2.2.2 丢失包与错误包统计分析

由于字节模式进行100次应答之后,测量传输失败,因此丢包统计分析只在“时间模式”和“时间+字节模式”之间讨论。如图12所示,在“时间+字节模式”下的每传输50包数据发生的数据包丢失率水平低于“时间模式”下的数据包丢失率水平。

图12 丢包率统计堆积柱状图对比

由于字节模式进行100次应答之后,测量传输失败,因此错误包统计分析只在“时间模式”和“时间+字节模式”之间讨论。如图13所示,“时间+字节模式”下每传输50包数据产生的错误率低于“时间模式”下的错误率。

图13 错误率统计堆积柱状图对比

3 结束语

本测试系统的数据传输校验采用简单加和的方法对数据包进行校验,但加和校验得出的校验结果可靠性较低,例如数据段内因字节顺序改变导致的错误,加和校验并不能进行有效区分。由于CRC循环冗余校验获得的校验码与数据包数据段的每一位数据构成一种特定的关系,达到以较少的冗余位获得可靠的校验结果的目的,因此后续可用CRC校验进行改进。

本文从实际测量实验中遇到的问题出发,在常用的串行通信上位机数据接收逻辑的基础上,提出了“时间+字节”的接收模型,并通过C# Winform开发了基于此接收模型的上位机测量控制程序。经相关测试验证后,结果表明:1)当无线传输通信质量出现严重下降时,即测量数据传输过程中出现字节丢失的情况,使用改进型上位机测控程序所组成的核仪器遥传测量系统,测量传输能够稳定进行。2)当遇到测量传输设备因故障导致掉线的异常情况,此种异常采用人为断开连接线的方式进行模拟。经测试使用“时间+字节”模式的上位机程序,测量传输系统能够稳定运行,由于具有掉线重连的功能,提高了系统数据传输可靠性。

猜你喜欢

数据量字节上位
No.8 字节跳动将推出独立出口电商APP
基于大数据量的初至层析成像算法优化
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
No.10 “字节跳动手机”要来了?
特斯拉 风云之老阿姨上位
简谈MC7字节码
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位