自动化电磁环境监测系统软件开发与实现*
2020-10-17苏晓明
王 玥,刘 奇,刘 晔,苏晓明
(中国科学院新疆天文台,新疆 乌鲁木齐 830011)
随着社会的发展和国民经济的增长,高频电子技术和高速数字处理技术的应用越来越广泛,频谱用户不断增多,频谱使用率越来越高,移动通信、卫星导航及其他无线通信对射电天文的影响越来越大[1]。射电天文使用带宽连续覆盖,射电望远镜的灵敏度不断提高,极易受到台址内外电磁干扰的影响,射电天文观测对台址电磁环境的要求越来越高[2]。
射电天文台站内电磁干扰信号具有多样性,如环境噪声的宽带干扰源、瞬态信号干扰源和具有极化特性的辐射干扰源等。为了更好地保护电磁环境,贵州省无线电监测站在500米口径球面射电望远镜(Five-hundred-meter Aperture Spherical Telescope, FAST)台址设立了电磁环境监测站,以长期保障500 m射电望远镜的正常运行。美国绿岸射电望远镜(Green Bank Telescope, GBT)设立了两个射频干扰(Radio Frequency Interference, RFI)监测系统[3],在电磁干扰监测方面做了很多工作。平方千米阵列(Square Kilometer Array, SKA)根据射频干扰测试协议[4]开发了射频干扰测试系统[5],针对平方千米阵列选址做了大量测试、分析与数据处理[6]。在射电天文台站周围建立电磁环境监测站,针对电磁干扰信号进行监测,能够为确定及排除干扰源提供依据,从而消除射电天文台站的电磁干扰。电磁环境监测工作量大,且耗时较长,为有效监测台站电磁环境,实时掌握台站电磁干扰变化,提高测试效率,有必要开发自动化监测软件。
新疆天文台110 m全向可动射电望远镜[7]具有极高的系统灵敏度,工作带宽150 MHz~115 GHz。为提高望远镜台址电磁环境监测及数据处理效率,本文依托现有电磁环境监测系统,开发电磁环境监测及数据处理软件,实现长期自动化频谱监测与高效数据处理,为110 m射电望远镜电磁兼容性设计、台址无线电管理、消干扰策略等提供重要依据。
1 软件功能需求分析
1.1 电磁环境监测系统概述
高灵敏度电磁环境监测系统由升降杆、测试天线、信号分析仪、射频接收模块、云台、电源模块、控制器、计算机、射频线缆及通信线缆等组成[8],如图1,测量系统工作带宽为100 MHz~13.6 GHz。自动化电磁环境监测需通过计算机控制天线云台、射频接收模块、信号分析仪等实现不同带宽、不同时段、不同方向、不同极化的电磁环境测量,并采用标准噪声源对测试系统微波链路进行校准,提高测量数据的精度,同时,通过校验系统噪声确定系统的性能参数,提高测量数据的可靠性。
图1 监测系统硬件框图[8]
射频接收模块是电磁环境监测系统的核心模块,该模块分为0.1~2 GHz、2~6 GHz、6~13.6 GHz 3个微波链路,通过低损耗微波开关实现链路切换,如图2。另外,为有效监控射频接收模块的内部温度和环境温度,分析温度对测量不确定度的影响,提高测量数据的校准精度,射频接收模块内安装了2个温度传感器和1个湿度传感器[8]。
图2 射频接收模块微波链路[8]
电磁环境监测拟采用准实时电磁环境测量方法[9],分为4个测试频段,即0.1~0.4 GHz、0.4~2 GHz、2~6 GHz、6~13.6 GHz。每轮测试包括6个测试方向,测试范围覆盖360°,测试分为水平极化测试和垂直极化测试,每个极化方式测试1天,交替循环。为提高测试数据的准确性,每个方向测试前先进行系统校准,同时,完成频谱序列、环境数据及其它关键信息采集与存储,循环实现自动化测量。依照采用的准实时电磁环境测量方法,每个方向测量时间为12 min,每轮测试6个方向的时间为72 min,即单一方向的时间分辨率为72 min,每天测量19轮数据,通过准实时测量,分析电磁干扰随时间的变化[8]。
1.2 软件开发的功能需求
依据上述电磁环境监测系统的要求,以及采用的准实时电磁环境测量方法,考虑测量数据的可靠性,电磁环境监测系统软件开发需实现各硬件的协同控制、实时校准、关键参数监控及数据的有效记录和存储功能。
1.2.1 自动化测量与控制
自动化电磁环境测量与控制涉及射频接收模块切换、天线云台转动、信号分析仪测试等,需实现计算机与天线云台、射频接收模块及信号分析仪进行通信,并根据测试需求,控制天线云台转动至不同的测试位置,控制射频接收模块切换至不同测量频段,记录环境温度、射频接收模块内部温度与湿度,控制信号分析仪进行关键参数设置、系统校准、频谱监测与数据存储等。
1.2.2 系统关键参数监控
电磁环境监测系统处于长期无人值守工作状态,无法掌握硬件系统性能是否正常,通过实时监控系统关键参数,如系统增益与噪声系数、环境温度、射频接收模块内部温度与湿度、天线云台方位俯仰等信息,实现硬件系统状态的实时监控,保障硬件系统性能的可靠性,提高测量数据的精度。
1.2.3 数据流设计
电磁环境监测过程中产生大量不同类型的数据,需针对数据文件格式及命名方式进行合理设计,实现不同类型测试数据的有效存储,方便后期的数据处理及管理。软件开发需针对不同测试数据调研合适的存储方式,提高数据存储速度,减小数据存储量,并研究数据文件的命名方式,方便后期数据的快速检索、提取与处理。
1.3 软件开发关键技术问题
根据软件开发的功能需求,实现多仪器设备控制、关键参数实时监控及数据格式的有效设计,涉及的关键技术问题考虑如下:
(1)自动化电磁环境测量过程中涉及多个仪器设备,为实现准实时电磁环境测量,提高测量时间分辨率的精确度,需解决多仪器之间的协调控制问题。通过分析仪器之间的数据接口及运行逻辑,优化各仪器的运行与等待时间,采用多仪器并行控制,实现射频接收模块、信号分析仪及天线云台之间的协同控制,确保电磁环境监测有序进行。
(2)为解决多仪器设备的逻辑控制与优化,实现系统关键参数的有效监控,软件在运行过程中需定时更新系统的关键参数,在软件界面实时显示。传统的单线程测量方式,测量过程中软件界面无法实时响应,采用多线程并行处理技术,即在主线程外开辟多个辅助线程,通过对多个线程逻辑进行优化,并共享全局变量和系统资源,实现自动化电磁环境监测的多仪器并行控制及关键性能参数的实时监控。
(3)电磁环境的长期监测会产生大量的数据且数据类型较多,不利于后期的数据处理及管理。为解决此问题,需要结合频谱分析需求,调研高效的数据存储方式,依据数据处理流程,设计数据格式,研究数据文件的命名方式,实现数据的有效存储与管理、快速调用与分析。
2 软件开发功能实现
2.1 自动化测量与控制
自动化电磁环境测量的重点在于射频接收模块、天线云台及信号分析仪的通信与协同控制。如图3,通过控制天线云台转动,控制射频接收模块进行微波切换及温度与湿度数据记录,控制信号分析仪进行系统校准、频谱监测与数据存储,实现自动化电磁环境监测。为确保电磁环境监测有序进行,自动化测量与控制过程的难点在于多仪器之间的协调通信与时间接口控制。通过分析各仪器的通信方式、数据接口及运行逻辑,优化各仪器运行与等待时间,实现仪器之间良好的协调与配合,提高测量时间分辨率的精确度。
图3 控制链路示意图
2.1.1 仪器通信方式选取与实现
电磁环境监测系统使用的信号分析仪R&S FSW13提供了多种仪器与计算机互联的方式,如USB,GPIB,LAN等。其中,GPIB需要购买专用的接口卡和数据线,系统搭建成本较高,而USB不便于将许多仪器组成一个网络。同时,LAN突破了GPIB在长度上的限制,增加了仪器远程控制的距离,具有更高的传输速度与可靠性,并能够连接以太网,实现数据的远程采集[10]。为实现计算机与信号分析仪的良好通信,采用LAN与计算机相连,基于虚拟仪器软件架构(Virtual Instrument Software Architecture, VISA)[11]与仪器标准编程指令(Standard Commands for Programmable Instruments, SCPI)[11]实现仪器的通信与控制。
射频接收模块及天线云台通过串口与计算机相连,串口通信具有简单、可靠、灵活、实时性强等特点。串口通信技术发展较为成熟,通信方式各有优劣。使用NI-VISA进行串口通信只能发送字符或字符串,不能发送十六进制数;使用MSComm控件灵活性不足,且不能在函数或多线程中使用;调用Windows的串口通信应用程序接口(Application Programming Interface, API)函数,可以清楚地掌握串口通信的机制,并且自由灵活。由于射频接收模块的控制命令为十六进制,同时为了实现系统关键参数的实时监控,需要使用多线程并行处理技术,因此采用应用程序接口函数进行串口通信。
2.1.2 仪器运行逻辑
自动化电磁环境测量过程中各仪器运行的顺序及逻辑如图4,每次测量开始前天线云台先转动至指定位置并读取天线方位、俯仰信息,然后射频接收模块切换至系统校准模式,信号分析仪进行系统校准,校准完成后,射频接收模块读取温度、湿度数据,再切换至频谱测量模式,信号分析仪进行频谱测量,测量完成后天线云台转动至下一测试位置。
图4 仪器运行逻辑
2.1.3 多仪器协调控制
为保证电磁环境监测有序进行,仪器之间需要良好的衔接与配合。结合各仪器运行逻辑,对各仪器运行与等待时间进行优化,采用多仪器并行控制,通过实时掌握天线云台位置信息与信号分析仪测试状态,实现仪器的协调控制。
信号分析仪的状态寄存器通常用来记录测试状态,在测试过程中,状态寄存器的数值会发生变化,没有测试任务时,状态寄存器的值为0。通过读取状态寄存器的数值判断测试任务是否完成,如图5。若测试未完成,进程挂起,继续等待;若测试完成,则控制天线云台转动,进行下一轮测试。采用同样的方法,通过读取天线云台的方位判断天线云台是否转动至指定位置,若未转动至指定位置,进程挂起,继续等待;若转动至指定位置,则控制仪器进行其他操作。
图5 仪器判断流程图
2.2 系统关键参数监控
系统关键参数包括系统增益、系统噪声系数、环境温度、射频接收模块内部温度与湿度、天线云台方位俯仰等。系统增益用于测试数据的校准,降低测试不确定度;系统噪声系数用于确定系统性能是否正常,提高测试数据的可靠性;环境温度和射频接收模块内部温度用于分析温度对测量不确定度的影响,提高测量数据校准精度;射频接收模块内部湿度用于确定射频接收模块内部是否进入水汽,提高监测系统的可靠性;天线云台方位俯仰用于确定系统测试方位,判断系统测试状态。系统关键参数的实时监控能够提高监测系统的可靠性及测试数据的准确性。
采用传统的单线程方式执行电磁环境监测时,仅能执行测量任务,而无法响应其它消息。为实现多任务并行处理,采用多线程并行处理技术,实现多仪器设备的逻辑控制与优化及系统关键参数的实时监控。线程是进程内部的一个执行单元,用户根据需要在应用程序中创建其它线程,多个线程并发运行于同一个进程,如图6。一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便。多线程可以实现并行处理,避免了某项任务长时间占用中央处理器的时间。
图6 多线程进程示意图
为实现电磁环境监测过程的多任务并行处理,在主线程外创建了两个线程,如图7。其中,控制与测量线程实现多个仪器的协调控制、系统关键参数记录、自动化电磁环境测量等;数据处理线程实现系统性能参数的计算,通过处理系统校准数据,获取系统增益和系统噪声系数。另外,使用全局变量及消息响应机制,测量与校准数据处理完成后,调用消息响应函数,发送消息至主线程,在软件界面实时显示系统增益与系统噪声系数曲线及系统关键参数信息,实现多仪器并行控制、自动化测量与系统状态的实时监控。
图7 多线程控制
2.3 数据流设计
2.3.1 测试数据结构
图8给出了电磁环境测量流程产生的各类数据,主要来自天线云台的方位俯仰数据、射频接收模块的温度湿度、信号分析仪的系统校准及频谱监测数据等。从图8可以看出,系统校准和频谱监测数据分为4个频段,共计约862 kB,每个频段各6个测试方向,则每轮测试数据量约862 kB × 6=5 172 kB,每个方向包括水平极化和垂直极化,24 h切换一次,共测量19轮,24 h的数据量约5 172 kB × 19=96 MB。为方便后期数据处理和管理,将系统校准和频谱监测数据的时间特征信息、环境温度、射频接收模块内部温度湿度等同时存入数据文件。
图8 监测系统数据
由此可知,电磁环境监测数据量大,数据类型多,数据结构复杂。结合数据检索及数据处理的便捷性,考虑采用HDF5文件对测试数据进行存储。HDF5格式包含了数据模型、库和文件格式标准,具有便捷有效、移植性强、灵活可扩展等特点。采用HDF5文件存储数据,能够对测试数据进行有效管理,同时提高数据处理效率。
2.3.2 数据文件格式及命名设计
为了提高电磁环境监测数据的处理效率,方便后期的数据检索、调用与处理,需针对数据文件格式及命名方式进行设计,区分不同类型的测试数据,实现数据的快速查找与提取。HDF5文件格式与命名方式如图9,文件名的命名方式为测试日期_检波方式,不同测量模式下的测试数据存入不同的HDF5文件。每个HDF5文件包含3级组(Group),分别为极化方式、方向、频段与环境数据,所有数据存储在频段与环境数据组对应的数据集中。频段组对应的数据集包括系统校准与频谱监测数据,系统校准数据的命名方式为Cal_测试日期_测试方向_测试轮次,频谱监测数据的命名方式为Test_测试日期_测试方向_测试轮次。环境数据组对应的数据集包括测量时间序列和温度湿度序列,测量时间序列的命名方式为Time_测试日期_测试方向,温度湿度序列的命名方式为Temp_测试日期_测试方向。
图9 HDF5数据格式
3 软件界面设计
由上述软件功能可知,自动化电磁环境监测软件需要实现的主要功能包括设备调试、自动化测量、系统状态监控等。设备调试主要用于查看设备的连接状态,便于进行系统安装调试及维护等。测量功能实现一键自动化测量,包括天线云台控制、微波链路切换、温度湿度数据采集、系统校准测试、系统性能参数计算、频谱测量及数据存储等。系统状态监控主要用于实时监测系统关键参数,提高硬件系统的可靠性,保证测量数据的精度。
基于上述软件功能,软件界面的设计包括登录界面与测试界面。登录界面记录测试时间、测试人员及测试地点,用于测试数据文件的命名,便于数据检索与提取。测试界面主要分为3部分:(1)测试功能区,主要用于输入信号分析仪地址,实现仪器通信及一键自动化测量;(2)串口调试区,主要用于发送相应命令至射频接收模块或天线云台,同时接收其返回值并显示,判断设备连接状态,了解天线方位俯仰位置及温度、湿度等系统状态信息,便于进行系统安装调试及维护;(3)系统状态监控区,主要用于实时显示测试过程中的系统性能曲线(系统增益、系统噪声系数)及其他系统关键参数信息,掌握硬件系统的状态,保障硬件系统性能的可靠性。
依据软件功能,开发的软件界面如图10,界面简单明了,易操作。通过点击测试按钮实现一键自动化测量;通过串口调试功能区点击微波开关或电机控制按钮,实现射频接收模块或天线云台控制命令的发送及返回值的接收;通过测试信息与系统性能显示区实现系统关键参数的实时监控。
图10 软件界面
4 结 论
本文针对110 m射电望远镜台址电磁环境监测系统开发了自动化电磁环境监测软件,实现了设备调试、自动化频谱测量、系统关键参数监控等功能,解决了手动测试成本高、耗时长等问题,提高了电磁环境测量效率。在未来工作中,自动化电磁环境监测系统软件还需进一步优化:(1)开发实时频谱监测功能,提高测量时间分辨率,更好地针对瞬态信号进行检测;(2)开发基于网络的实时信号识别统计功能,进一步提高电磁环境监测效率。