1、网络信息工程2022.24820 引言随着电子信息技术的发展,计算机技术在传统核测量领域得到了广泛应用,其中作为探测放射性核素主要设备的伽玛能谱仪,大量用于环境监测、地质勘探、核物理实验测量等领域1,为避免现场测量时,长时间接触放射源对人体造成的危害,可使用无线传输模块将现场测量设备和计算机终端进行隔离,实现非接触式远距离测量2,以此降低研究人员受辐射的危害。串行接口作为计算机常用的对外接口,因其简单易用,在某些对通讯速度要求不高的测控场景中被广泛应用。以串行通信为基础的硬件设备与上位机进行数据传输时,上位机从串口缓冲区获取数据的方式,经调研发现常用的有两种,一种是等待指定时间后,从接收缓冲区
2、读取指定长度的数据,下文简称为“时间模式”3-4;一种是按照接收缓冲区字节长度是否达到硬件设备上传数据量来获取数据,下文简称为“字节模式”5。本文使用的无线传输模块与计算机终端之间采用串行通信的方式进行数据交互,经实际测试发现,在使用无线模块进行数据遥传的过程中,因为通信质量不稳定,常规的以时间模式或字节模式这两种常用方式来获取数据的上位机接收逻辑,适用性差,易造成通信阻塞,进而导致测量传输系统无法正常运行,因此在前人的研究基础上,本文使用SerialPort 类,提出并检验了一种新的数据接收逻辑,在增加了掉线重连、超时检测等功能后,测量传输系统的通信环境的适应能力及传输系统稳定性均得到了进一
3、步的提升。1 测量系统硬件构成实际应用场景下的测量装置模型如图 1 所示,现场数据测量端由搭载探测器和无线数传电台模块的无人机组成,执行能谱测量及数据回传的任务。远程数据接收端由无线数传电台及运行测量控制程序的计算机构成,执行参数命令下发核仪器遥传系统数据校验设计曹彧,周建斌(成都理工大学核技术与自动化工程学院,四川成都,610059)摘要:文章针对远程放射性测量无线传输系统运行过程中数据传输不稳定的问题,从程序设计出发,结合了常见的按时间读取、按字节读取的上位机串行通信数据接收逻辑,基于串口 SerialPort 类和计时器 Timers 类,提出并应用了一种数据接收逻辑,以此提升传输系统稳
4、定性。该接收逻辑综合了按字节读取等待时间弹性大的优点以及按时间读取定时重传的优点,增加掉线重连、超时检测的功能。实验表明采用此数据接收逻辑的测量传输系统,通信环境适应能力及传输稳定性均得到了提高。关键字:核测量;无线传输;程序设计;串行通信;SerialPort 类;接收逻辑中图分类号:TL812+.1 文献标识码:ANuclearInstrumentstelemetrydataverificationsystemdesignCao Yu,Zhou Jianbin(Chengdu University of Technology The College of Nuclear Technolog
5、y and Automation Engineering,Chengdu Sichuan,610059)Abstract:This paper aims at the problem of unstable data transmission during the operation of wireless transmission system for remote radioactivity measurement,starting from the program design,this paper combines the common serial communication dat
6、a receiving logic of the host computer which is read by time and read by byte,based on the SerialPort class and Timers class,a data receiving logic is proposed and applied to improve the stability of the transmission system.The receiving logic combines the advantages of large elasticity of waiting t
7、ime of read by byte and the advantages of timed retransmission of read by time,and adds the functions of reconnection and timeout detection.Experiments show that using this data receiving logic measurement of transmission system,communication environment adaptability and transmission stability are i
8、mproved.Keywords:Nuclear measurement;Wireless transmission;Program design;Serial communication;SerialPort class;Receive logicDOI:10.16520/ki.1000-8519.2022.24.020网络信息工程2022.2483和现场测量数据接收的任务。图 1 实际应用场景下测量装置模型测试过程中对实际应用场景下的装置进行了简化,去掉了无人机系统,仅在地面进行核仪器遥传测试,测试装置组成如图 2 所示,主要分为测量端与接收端两大部分,其中测量端主要由探测器与无线电台组成
9、,接收端主要由计算机与无线电台组成。负责远距离无线传输的无线电台模块采用由成都亿佰特公司研发的 E90-DTU 工业级无线数传平台进行点对点通信。该无线数传平台支持 RS-232、RS-485 两种接口,可在距离较远、易受干扰的环境实现点对点跳频双向连传。图 2 测量装置结构组成1.1 探测数据发送端设计1.1.1 探测器与遥传模块通信数据测量端基本结构模型如图 3 所示,碘化钠探测器主要包含 NaI 晶体、光电倍增管、前置放大器以及数字多道等模块,主要负责进行放射性测量。探测器与无线电台模块之间依靠 RS-485 串行总线进行数据交互,该协议采用差分信号进行传输具有结构简单且能有效抑制外界干
10、扰的优点,数据交互过程包含测量数据上传以及测量参数配置,测量数据上传过程为探测器首先根据 RS-485协议将数据上传至无线电台模块,然后通过无线电台将测量数据转换成电磁波,以此进行远距离无线传输。测量参数配置过程为无线电台首先对接收到的电磁波信号进行解析,然后将解析数据通过 RS485 协议下发给探测器,以此实现探测器测量参数的配置。1.1.2 探测器上传数据包设计如图 4 所示,一个数据包由 2 个字节的帧头“0 x55 0 xAA”,接着是 2 个字节的测量时间“Th”、“Tl”,分别代表测量时间数据大小十六进制的高八位和低八位,然后是按顺序排列的2048 个字节的能谱数据,结尾由 2 个
11、字节地和校验字段共计 2054 个字节组成。在探测器接收到上位机通过遥传电台下发的测量数据获取指令后,立即通过遥传电台将测量数据包上传,经远程客户端电台发送至上位机。图 4 数据包格式示意图1.2 探测数据接收端构成1.2.1 遥传模块与计算机通信数据接收端基本结构模型如图 5 所示,计算机与无线电台模块之间依靠 RS-232 串行总线进行数据交互,交互过程中包括测量数据接收以及测量参数下发,其中测量数据接收过程为无线电台对接收到的电磁波信号进行解析并将解析结果通过 RS232 协议传输至计算机,最终由运行于此计算机上的测量控制软件对测量数据进行处理。测量参数下发过程为测量控制软件将测量参数通
12、过 RS232 协议下发给无线电台模块,由无线电台将测量数据转换成电磁波进行远距离无线传输。1.2.2 上位机串口通信实现方法上位机测控程序使用 C#编程语言,在集成开发环境 Visual Studio 2019 进 行 Winform 开 发 而 来 的 窗 体应用程序,该测控程序以 SerialPort 类为基础搭建串口通信模块,实现上位机进行串口通信数据收发的功能。该类定义了多种用于串口收发数据的方法,本文使用Read(byte,int32,int32)方法从输入缓冲区读取指定长度的字节,并将那些字节写入字节数组中指定的偏移量处,图 3 数据测量端结构组成模型图 5 数据接收端结构组成模
13、型网络信息工程2022.2484发送数据使用的是 Write(byte)将字节数组放入发送缓冲区通过串行端口进行发送。2 应答模式下几种传输架构对比分析2.1 串口接收逻辑及实现2.1.1 时间模式获取探测数据在时间模式下,上位机向远程探测点发送读取数据的命令,等待一定时间,然后从接收缓冲区读取指定长度的数据。当从缓冲区读取到的数据长度与应收数据长度相等,则认为收到正确应答,进行应答统计,否则认为丢包,进行丢包统计加。应答正确后对数据包进行解包校验,若校验通过则进行正确包统计,否则进行错误包统计。经数据处理完成后,再次发送读取数据指令,重复此循环以获取最新的探测数据。图 6 “时间模式”数据接
14、收逻辑示意图等待时间值的大小,与探测器上传数据量及不同环境下遥传电台的通信质量相关。此种时间模式的架构,优点是结构简洁、容易实现,缺点是容易受外界影响,导致丢包、错误包的产生,例如通信质量的变化,导致在等待指定时间后,缓冲区数据量与应收数据量不等导致丢包的产生,缓冲区数据量与应收数据量相等但数据顺序错位,因此导致校验失败,该数据包将被判定为错误包。2.1.2 字节模式获取探测数据为避免时间模式测量中,上位机向远程探测设备发送读取数据命令后,实际需要等待的时间长短会随传输环境的变化而变化,进而导致丢包、错误包产生的问题,可采用字节模式架构实现一定程度上的问题规避。字节模式即向探测设备发送读取数据
15、命令后,按接收缓冲区内的字节数量来获取数据的模式,读取使能的判断,是由缓冲区数据量大小是否达到应收数据量决定的,当缓冲区数量与应收数据量相等,便认为正确接收应答进行应答统计,应答正确后,进行数据包解包校验,并完成相关统计,最后经数据处理操作,再次发送读取数据指令,重复此循环以获取最新的探测数据。图 7 “字节模式”数据接收逻辑示意图与时间模式下的等待固定时间来触发读取使能的方法相比较,按照缓冲区字节量是否满足条件来使能数据读取的方式,具有较大弹性,适用性更广。但缺陷也是显而易见的,假设传输过程突发异常状况,如远程探测设备短暂掉线、遥传电台信号受到环境干扰等导致的传输数据缺失,则接收缓冲区中的数
16、据量始终难以达到应收字节长度的要求,故而程序将陷入判断缓冲区数据量是否满足要求的循环,导致无法进行后续操作,以至于上位机软件程序进入假死状态。虽然此种模式具有此种缺陷,但是在数据传输稳定的测量条件下,仍然具有较大应用意义。2.1.3 时间+字节模式获取探测数据测试分析了时间模式、字节模式下进行数据读取的优势和劣势,综合考虑,设计出了一种新的数据接收架构,时间-字节模式,该模式具有字节模式数据接收适用性广的优点,又结合时间模式的特性对字节模式存在的缺陷进行修正。流程框架如下图 6 所示。为避免因故障致使端口意外关闭,进而无法正确传输数据的情况发生,加入端口开启检测模块,向远程探测器发送读取数据命令后,当遇到“端口未开启”报错,将关闭超时检测计时器 Timer1 并立即启动端口扫描计时器 Timer0,扫描并记录接入端口的识别信息,如果与原端口网络信息工程2022.2485识别信息相同,则停止端口扫描模块,重新下发读取数据命令,若不相同,则继续扫描。端口正常开启情况下,向远程探测器发送读取数据命令后,同时开启超时检测计时器 Timer1 进行嘀嗒计时,数据接收模块检测接收缓冲区数据是否达到