基于Qt的微波辐射计数据采集系统上位机软件设计
2018-12-20黄邑燊
黄邑燊
(1.中国科学院国家空间科学中心微波遥感技术重点实验室,北京100190;2.中国科学院国家空间科学中心北京 100190;3.中国科学院大学北京100149)
微波遥感技术广泛应用于水文、气象和环境监测等领域。微波辐射计是被动式遥感仪器[1],根据天线接收到的目标辐射能量信息,通过定标方程得到辐射计输出电压与所观测目标的亮温的关系,进而研究被观测目标的辐射特性[2]。全极化微波辐射计是一种新型的微波遥感器,它在双极化微波辐射计只测量目标辐射信息幅度的基础上,进一步测量其相位,实现了人们在微波遥感中对电磁波极化信息的全部利用[3]。在微波辐射计系统中,数据采集与系统控制模块对辐射计接收到的目标的全极化信息进行采集和数字化处理[4],再进行存储和管理,因此需要一个便捷和高效的的人机交互软件来提高对数据的采集和处理速度。
文中设计了一款针对直接检波和数字相关型通用的上位机软件,完成数据的采集、处理以及显示功能。
1 微波辐射计系统简介
1.1 直接检波型微波辐射计
微波辐射计的接收机单元采用全功率的工作体制,结构简单,可靠性高[5]。直接检波型辐射计接收机的功能是将天线单元接收到的目标辐射信号进行下变频、放大、滤波、检波并积分放大至可供数控单元采集量化的电平幅度[6],数控单元将采集到的电平数据通过网口传送给上位机。直接检波型辐射计接收机单元结构图如图1所示。其中Tv和Th分别表示垂直和水平极化亮温。
图1 直接检波型微波辐射计系统框图
1.2 数字相关型全极化辐射计
数字相关型全极化微波辐射计系统中,天线接收到的目标辐射通过极化分离器(OMT)分为水平极化和垂直极化两个极化分量,然后通过放大(LNA)、滤波和正交解调过程产生正交的IQ信号,进入数字相关器进行相关运算,得到4个Stokes电压信号,再通过串口传送到上位机软件。数字相关型辐射计的系统框图如2所示[7]。
图2 数字相关型微波辐射计系统框图
其中Tv和Th分别表示垂直和水平极化亮温,T3和T4表示其复相关量。在实际测量中,数字相关器输出的是I1*I1、I2*I2、Q1*Q1、Q2*Q2、I1*Q1、I1*I2、Q1*I2、Q1*Q28个相关数的积分结果。4个Stokes参数可表示为
2 设计需求
微波辐射计数据采集系统上位机软件的功能是提供人机交互界面,软件根据用户定义的指令通过RS232串口和以太网口向下位机发送命令,上位机软件把从串口和网口接收来的数据依次存入文件,将字节分析匹配解析数据包,再将提取出来的微波辐射信息通过可视化图形显示出来,并能实现图像的存储、缩放和灰度显示等功能。上位机软件的基本组成功能如图3所示。
图3 上位机软件基本功能
上位机软件的主要功能包括:
1)数据通信:
实现与辐射计数据管理单元的串口和网口通信,包括配置参数,发送和接收数据包的任务。
2)数据处理:
根据工作模式的选择,对接收到的数据包进行解析,提取4个Stokes测量参数并进行格式转化。
3)数据显示:
①显示串口和网口接收到的数据和辅助工作参数,包括日期、工作模式和积分时间;
②根据辐射计各通道信号测量值结合坐标信息绘制图形。
4)文件管理:
将接收到的数据进行存储和更改,并且能够将数据导出进行绘图处理。
3 上位机软件设计
辐射计数据采集系统上位机软件基于Qt Creator软件开发环境并在window10操作系统上运行的。Qt Creator是一个用Qt开发的轻量级跨平台集成开发环境[8],因为其良好的封装机制和丰富的API函数被广泛使用。基于Qt类库本身,用户可通过自定义或内建对话框的方式构建操作面板和显示面板。上位机软件的设计流程如图4所示。
图4 上位机软件设计流程图
3.1 Qt通讯和数据包解析
3.1.1 串口通信模块
串行通信接口,是采用串行通信方式的扩展接口[9]。串行接口(Serial Interface)是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本,适用于远距离通信,但传送速度较慢[10]。在Qt中并没有特定的串口控制类,通常使用的是第三方写的qextserialport类。在Windows环境下,需使用qextserialbase.cpp、qextserialbase.h、qextserialport.cpp、qextserialport.h、win_qextserialport.cpp和 win_qextserialport.h这6个文件[11]。该类包含串口设置、串口发送、串口接收3个模块。串口设置的各属性如表1所示,包括串口号、波特率、数据位、校验位和停止位,数据包头可根据个人设定,供解析数据的时候使用。
表1 串口属性设置
串口接收到的数据包是十六进制,包头为12 34,数据中包含数据采集单元传输的水平和垂直通道的电平信号的相关和累加结果,需要将其进行解包。将十六进制转化为int格式再进行分类和显示。串口通信界面如图5所示。
图5 串口通信界面
串口调试模块的主要功能是通过配置串口参数,能够对串口传输数据进行实时显示,当采集到的数据量达到需求,可以保存数据到自定义文件内方便后续的处理。
3.1.2 串口通信模块
UDP(User Datagram Protocol)是一种简单的面向数据报、无连接、传输层协议[12]。UDP不提供错误校正,不保证有序,无法去重复,没有流量和拥塞控制,不能保证数据一定到达目的地,但是可以通过校验和提供错误侦测[13]。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,因此传输速度很快[14]。在Qt中UDP数据的发送和接收可以使用QUdpSocket类来实现。一般使用bind()去绑定地址和端口号,然后使用writeDatagram()和 readDatagram()去传输数据。UDP属性一般设置本地的IP和端口号以及目标主机的IP和端口号,具体设置参数如表2所示。
网口接收到十六进制数据包,包头为EB 91 55 AA,将数据包进行解包和处理。UDP通信和显示界面如图6所示。
表2 UDP属性设置
图6 网口通信界面
UDP调试模块的主要功能是通过配置本地和目标主机的IP和端口号,能够对网口传输数据进行实时显示和存储。
3.1.3 数据包解析
上位机软件接收到十六进制数据包,并保存为文本格式或二进制文件格式。因此在提取数据的时候采取调用外部文件的模式,识别数据流中的包头并进行定位。根据包头的位置,提取有效数据信息并进行分类,再转化为十六进制数据进行运算。以解析网口传输数据为例具体实现过程如下:
3.2 Qwtplot绘图
QwtPlot类是一个二维绘图部件,继承自QFrame和QwtPlotDict。但实际上它只是一个视图窗口,QwtPlotCanvas类才是真正的绘制设备。在QwtPlot的画布上可以显示不限数量的曲线和网格,或者其它任意从QwtPlotItem派生出来的子类[15]。
(1)曲线绘图
QwtPlot绘制曲线需要用到QwtPlotCurve类:曲线类图元,这个类表征一系列点数据。软件中具体的实现过程如下:
(2)三维散点绘图
在曲线绘图工具的基础上,绘制三维散点图需要QwtPlotSpectroCurve类:三维散点图,用颜色表示Z轴。三维散点绘图实现过程如下:
(3)鼠标动作
在QwtPlot上绘制图形,需要使用鼠标实现缩放等操作。设计通过鼠标滚轮实现画布的缩放,点击左键勾选动作能够实现局部放大,点击右键恢复至上一次放大前的状态,实现代码如下所示。
3.3 试验与软件测试
在全极化辐射计定标试验中,需要观测目标辐射极化信息随着相位延迟版旋转角度的变化[16]。曲线绘图中横轴表示延迟版旋转的时间,纵轴表示通道间的数字自相关和互相关结果。
试验过程中对线极化源的测量结果如图7所示,其中左上和右上分别表示的是通道1和通道2中IQ两路的自相关量,左下和右下表示通道1和通道2中IQ两路的复相关量。
从图中可以直观观测4个Stokes信号随相位延迟版角度变化的趋势以及动态范围,可以检验接收机通道间的功率和相位是否一致。
图7 极化信息显示
4 结论
本文针对微波辐射计数据采集系统设计了基于Qt的上位机软件[17]。首先对直接检波和数字相关型微波辐射计系统进行了介绍,根据微波辐射计数据接口的不同,实现了上位机软件与空间中心设计的微波辐射计系统数控单元的串口与UDP通信。该上位机软件提供了友好的用户使用界面,能够用便捷的操作实现对数据的传输、处理和图形的展示,提高了测试接收机性能和观测目标的辐射分布信息的速度和效率。