基于Android的网络分析仪无线移动测量系统研究
2019-01-30文常保时晓文李演明
文常保, 时晓文, 茹 锋, 李演明, 王 飚
(长安大学 电子与控制工程学院 微纳电子研究所, 陕西 西安 710064)
网络分析仪能够动态扫描输入信号,测量频率响应、幅频、相位、驻波比以及阻抗等参数,因此成为射频、微波研究领域的主要测试仪器之一[1-3]。然而,网络分析仪属于贵重仪器,体积较大、操作复杂,对测试环境和条件有严格要求,在测试的便捷性、灵活性和移动性方面较差。为了满足远程测试的需求,Agilent提出用网卡和LAN实现网络分析仪的远程连接,在一定程度上满足了远程测试的需要。但是,LAN连接存在布线、灵活性差等问题[4]。随着智能移动端的广泛使用,开发智能移动端的无线测试功能,将可以实现网络分析仪的远程测试,提高测试的便捷性、灵活性和仪器设备的利用率[5]。
目前,智能移动端的操作系统主要有IOS和Android两种。IOS系统主要用Objective-C语言设计开发,而Android操作系统主要用Java语言开发。由于Android操作系统是基于Linux内核开发的开源操作系统,具有丰富的开发资源和成熟的、高度集成化的开发环境,开发难度较低、效率更高[6-7],且国内用户量庞大,所以本文提出了一种基于Android的网络分析仪的无线移动端测量系统。
1 网络分析仪无线移动测量系统的结构
基于Android的网络分析仪无线移动测量系统由智能移动端、实验室仪器端和包括WiFi模块的服务器端组成(见图1)。智能移动端通过WiFi连接到服务器端,向服务器端实时传输控制信号。服务器端通过LAN连接接口与网络分析仪建立连接,动态向网络分析仪传输可编程仪器标准指令(standard commands for programmable instruments,SCPI)[8-9],网络分析仪根据操作指令完成测量任务。
图1 系统物理连接图
网络分析仪的无线移动测量系统设计包括智能移动端设计、服务器端设计和实验室仪器端设计。智能移动端包括TCP/IP的连接模块、测量参数设置模块、校准模块、结果输出模块和测量分析模块,其具体结构如图2所示;服务器端设计包括TCP/IP的连接、网络分析仪连接和各种功能函数的程序设计。
图2 无线移动测量系统结构图
智能移动端的TCP/IP连接模块实现与服务器端连接,完成器件测量的初始化工作。测量参数设置部分控制网络分析仪设置校准和测量参数。结果输出模块分别输出测量图像和测量数据,可以将数据和图像保存在服务器端和智能移动端。测量分析模块主要对测量结果进行标记分析、极限分析和比较分析。
服务器端的TCP/IP部分与智能移动端连接,接收智能移动端传输的控制指令。在网络分析仪连接部分,服务器端通过LAN接口连接到网络分析仪。功能函数中包括用于控制网络分析仪的多种方法,这些方法相互配合进行参数的测量。
2 网络分析仪无线移动测量系统的设计
2.1 智能移动端设计
智能移动端设计主要包括TCP/IP的连接模块、测量参数设置模块、校准模块、结果输出模块和测量分析模块,其设计结构如图3所示。
图3 智能移动端设计结构图
在TCP/IP连接模块中,根据TCP/IP协议将WiFi连接的无线局域网下的智能移动端和服务器端分别设置为客户端(Client)和服务端(Server)。其客户端实现程序为:
Socket client=new Socket(″192.168.0.103″,″1213″)
其中“192.168.0.103”参数是服务器端在局域网下的IP地址,其值可以通过命令提示符获得。″1213″是设置的服务器端口值,服务器(Server)端程序为:
ServerSocket server = new ServerSocket(1213″) Socket socket = server.accept()
将智能移动端和服务器端连通后,通过开发语言中的I/O流来传输和接收具体的信号,服务器端根据不同的指令来实现对应的功能。
在测量参数设置模块中,包括控制网络分析仪设置S-Parameter、Power-Ranger、Center、Span、Points和IF-Bandwidth等参数,也可以设置Amplitude-Frequency、Phase-Frequency和Impendance等Format显示类型。测量参数设置部分选择下拉框和单选按钮进行设计,根据选择来确定输出流传输给服务器端的信息。因Android的UI主线程中应当避免执行耗时程序,以防界面刷新造成卡顿现象,所以在子线程中执行消息传输过程。通过Android中的Handler消息传递机制实现消息的传输,传输设计的关键程序为:
Looper.prepare(); recevieHandler = new Handler(); public void handleMessage(Message msg) { dos.writeUTF(msg.obj.toString().trim() + ″ ″); } Looper.loop();
对于校准模块和结果输出模块,同样是根据所设置参数值的不同,向服务器端传输不同的操作指令。服务器端调用相应的功能函数来实现对网络分析仪的控制,常用于网络分析仪操作的SCPI控制指令如表1所示。
测量结果输出模块从服务器端读取相应的图片信息和数据信息。设计用于图片和数据传输的子程序来接收图片,子程序接收到信息后,将信息解码成Bitmap位图信息,然后经Handler消息机制通知UI主线程的ImageView图像组件来动态显示相应的图片信息。
表1 网络分析仪SCPI仪器常用控制指令
测量分析模块用于对测量结果进行分析,包含标记分析、极限分析和比较分析。由智能移动端向服务器端发送测量分析指令,通过服务器端控制网络分析仪完成测量结果的分析。在分析结束后,利用Android系统中的Environment.getExternalStorageDirectory()方法在智能移动端上新建文件,将分析得到的结果保存在文件中,以便后续处理和共享。
2.2 服务器端设计
服务器端程序的设计要能够实现服务器向网络分析仪发送SCPI指令,实时控制网络分析仪。与在VB编程环境下编写控制网络分析仪程序不同的是:Java编程环境中并未提供像VISA-COM一样集成的Windows接口,无法直接调用已有的接口程序,所以需要解决服务器和网络分析仪之间的通信控制问题。
Agilent提供了一种名为VISA(virtual instrument software architecture)的仪器标准I/O API。这种API适用于开发与网络分析仪进行I/O连接的仪器驱动程序和应用。在VISA中提供了打开仪器的viOpenDefaultRM和viOpen函数、向仪器中写入命令和从仪器中读取结果的viWrite和viRead等函数,这些函数使得开发网络分析仪的无线移动测量系统成为可能。
虽然VISA库中提供了可以与网络分析仪进行交互控制的功能函数,但是在Java编程环境中并不能直接调用这些原生函数,而且在函数重写过程中无法确定函数中参数的具体类型。在Java开发环境下,若要使用VISA库中的原生函数,需要调用一个开源的Java框架JNA(Java native access),该框架由SUN公司主导开发,是在经典的JNI(Java native interface)的基础上开发的一个框架。JNA提供了一个由C语言编写的动态转发器,可以自动实现Java和C语言的数据类型映射。借助于JNA框架,在Java环境中调用仪器设备的原生函数,完成对网络分析仪的底层操作。JNA框架调用实现代码为
VISA32 INSTANCE= (VISA32) Native.loadLibrary (″VISA32″, VISA32.class)
调用VISA库后,重写仪器的原生函数,使得在Java编程环境中能够实现原生函数的功能。主要是服务器端向网络分析仪发送SCPI指令、控制仪器执行相应的操作,然后从网络分析仪中读取反馈结果。
在测量结果输出部分,服务器端从网络分析仪中读取图像和数据并遵从IEEE488.2的网络传输协议。文件采用数据块(block data)的方式进行传输。在读取的数据流中,传输的数据块具有固定的规范格式,如图4所示。
图4 网络分析仪数据传输的规范格式
当服务器端读取到来自网络分析仪的反馈信息时,需要按照规范的数据格式进行解包,将有效的输出信息解析出来进行显示和处理。
3 实验及结果分析
选取中心频率为101.764 MHz的声表面波器件作为测量对象,验证网络分析仪无线移动测量系统的适用性。
在同一局域网前提下,将智能移动端和服务器端通过TCP/IP协议连接,连接到服务器端时需要设置服务器IP地址和登录端口信息。在确认连接到指定的服务器并登录后,系统将自动跳转到测量参数设置界面进行测量参数的设置。
测量开始时,先在测量参数界面设置网络分析仪的IP地址,点击“连接到VNA”使服务器端与网络分析仪的连接。如果连接失败,会以Toast的方式返回一个连接失败的消息提示;如果成功连接到网络分析仪,同样以Toast的方式显示所连接的网络分析仪的相关信息。在测量参数设置界面中包括多种常用测量参数[10-11],S参数设置了4个用于双端口网络的散射参量值S11、S21、S12、S22。同时也设置了Center、IF-bandwidth以及Span等参数的可选值,更加方便了多种状态的测量。如果在设置参数过程中出现一些误操作,可以通过“重置”按钮重新设置。当所有设置完成之后,网络分析仪会动态显示当前测量的结果图。
在校准过程中,选用85032F校准套件进行双端口校准。根据基于12项误差模型的SOLT校准技术的校准步骤,对网络分析仪的端口1和端口2分别进行开路校准(open cal)、短路校准(short cal)、负载校准(load cal)或者全单端口校准(full 1 port),接着对网络分析仪的端口1和端口2进行直通校准(thru cal)或者全双端口校准(full 2 port)[12-14]。校准操作之后,能够修正网络分析仪的测量误差,并将测量状态进行保存。
根据12项误差模型SOLT校准技术,对网络分析仪端口1执行一次完整的校准过程,如图5所示。在校准过程中,网络分析仪内部的校准算法会自动补偿校准时出现的误差,在测量过程中能够有效地消除这部分误差。在测量实验中,可以从网络分析仪获取屏幕图片,在图中可以看到各点的损耗值。
图5 移动端控制网络分析仪端口1校准
网络分析仪还能对测量结果进行分析,常见的分析方法有标记分析、极限分析和比较分析。
标记分析允许测量人员在被测器件的频率范围内对测量结果进行单点的标记分析。当输入Frequency值后,点击“MAKER分析”,网络分析仪将在对应的频率值点处标记出该点的对应信息。每次进行标记分析的数据都能够保存到移动端的内存中,借助智能移动端的优势进行分享、备份及后续处理。
在极限分析操作界面中,设置完成Type、Begin Stimulus、End Stimulus、Begin Response和End Response参数,点击“LIMIT TEST”之后将对测量结果进行极限分析。极限分析将筛选出损耗过大的声表面波器件,并对相应的点进行记录。极限分析操作如图6(a)所示。
网络分析仪的比较分析是对不同测量类型下声表面波器件的响应进行分析。图6(b)中显示的是声表面波器件在S参数为S11和S12时测量得到的幅频响应特性,双窗口界面更加形象地显示了不同测量参数下器件的响应特性,使得器件比较分析更加直观。
图6 测量结果分析界面
图6(b)所示为测量的声表面波器件在S参数为S12时,其中心频率处的反向传输损耗为-39.143 dB;当S参数为S11时,其中心频率处的反射损耗在测量范围内最大为-43.239 dB。在对比分析中,能够更加方便地表征出器件在不同S参数类型下其损耗的情况,从而更加有利于器件研究。
实验结果表明,基于Android的网络分析仪无线移动测量系统能够实现网络分析仪与智能移动端的连接,完成设置校准参数和仪器校准,也可以实现测量结果的分析和输出功能。
4 结语
基于Android的网络分析仪无线移动测量系统实现了远程操控网络分析仪进行校准、测量以及分析的整体功能。该设计大大地降低了网络分析仪的使用成本和维护费用,也降低了测量人员的操作难度和工作量。将网络分析仪的使用集成到移动智能端,不仅为实验室仪器设备信息化管理和使用提供了可行的方案,而且也为教学研究提供了高效、便捷的实验室仪器操作平台。