王兆麒,孔令,李洋,李仪
(中国电子科技集团公司第二十九研究所,成都 610036)
电子对抗整机装备通常由多种多通道射频模块组成,各模块的功能和性能直接决定了整机装备的作战效果。为了保证各型模块在整机工作中能够正常实现其功能以及发挥其性能,在装备至整机前,需要对每件模块的各个通道设置大量测试点进行测试,各型模块测试指标种类繁多,测试过程复杂,测试工作量较大,自动测试手段变得必不可少。
不同类型(甚至是同类型不同型号)多通道射频模块,由于指标参数、通道数目和组批台套数不同,以及通道TR 属性不固定等原因,导致各型产品的测试需求不尽相同。以往在模块批产前,采用定制化开发自动化测试系统或对现有测试系统进行改造的方式来满足产线的批产测试需求,这种开发改造方式存在重复开发、周期长、效率低的问题,已无法满足日趋复杂的测试过程和日益增长的产能。
综上所述,本文设计了一种基于C#与XML 的多通道射频模块可配置通用组批自动测试系统。测试前,测试人员只需编写或修改配置文件,并对测试系统进行微调联试,在测试时选择对应的产品型号即可实现在不同型号待测设备的自动测试过程中共享测试系统。目前该测试系统已支持多型多通道变频、频率源和前端模块的组批全自动测试。
自动测试系统的硬件架构如图1 所示,包括测控计算机、测试仪器、射频开关矩阵和待测模块。该自动测试系统支持GPIB 通用并行接口总线协议和TCP/IP 网络通信协议对测试仪器进行程控,可程控的仪器包括常见品牌的信号源、频谱仪、示波器和电源,其中电源支持多(单)通道类型电源多台程控,以满足组批测试需求。基于被测模块的测试需求和通信协议要求,测控计算机与被测模块之间支持RS232/RS422 串口和96 通道数字I/O 通信,且支持多通信接口并行通信。该测试系统支持多型射频开关矩阵,包括采用96 通道数字I/O通信的自研开关矩阵和GPIB/网口通信的外购开关矩阵。该测试系统使用的射频开关矩阵均为标准化模块组件,可按照测试需求以自由装配式快速搭建测试系统硬件,满足单工位带载任意台套数的任意通道数待测设备,同时支持射频通道在自动测试过程中的TR 属性切换[1-4]。
图1 系统硬件架构
在软件体系架构设计中,常用的架构模式有三层开发架构(3-tier application) 、SOA(面向服务架构)、DDD(领域驱动设计)等,目的在于实现高内聚、低耦合的思想[5]。
本测试系统采用三层开发架构,如图2 所示分为业务层、数据层和硬件交互层。业务层基于测试需求,完成仪器管理、试验信息设置,配置管理和测试执行等功能,该层基于C#实现。数据层负责测试参数和测试数据处理,该层基于XML 和C#实现。硬件平台提供对程控仪器和待测设备的物理接口,硬件交互层通过DLL 对仪器程控指令进行调用从而程控仪器,同时与待测设备进行通信[6]。
图2 系统软件架构
自动测试软件实现在不同型号待测设备之间通用,核心途径是将测试过程参数化,设计合理的数据结构表达测试过程并固化为配置文件。本测试系统基于具有结构性的标记语言XML 设计数据结构存储测试参数。本测试系统以待测设备型号命名建立文件夹保存配置文件,配置文件数据结构以多通道变频为例,如图3 所示分为三类:与待测设备型号强相关的综合测试参数和各通道指标参数,以及与测试系统硬件相关的插损配置文件。综合测试参数配置文件中,将测试参数分为“指标仪器配置”、“通道信息”、“开关信息” 、“电源配置”、“产品信息”和“报表配置”,共6 部分。用户在使用软件前,编写好综合测试参数和各通道指标参数配置文件,每次测试时只需选中待测型号即可,以对应型号的文件夹为入口,调用对应配置文件。插损配置文件由软件实测后以“产品序号-TR 属性-通道号”的方式命名自动保存。
图3 配置文件数据结构
本测试系统软件划分功能模块,不仅遵循高内聚低耦合的基本原则,而且还遵循与待测设备型号有无关联的原则,将如仪器程控、待测设备通信、通道切换和报表生成等与待测设备型号无关的通用功能,和与待测设备型号强关联的指标测试功能剥离。上述原则是实现测试平台能够在不同型号待测件之间通用的核心。软件主要功能模块包括:
1)硬件程控模块
包含多型信号源、频谱仪、示波器和电源等仪器以及多型射频开关矩阵的程控驱动库。软件根据测试需求通过加载程控指令参数,以虚拟设备的方式实现对仪器和射频开关矩阵进行控制[7,8]。
2)配置文件读取解析模块
读取配置文件,解析测试参数,将测试参数加载至软件界面和缓存区。
3)指标测试模块
依据待测设备产品规范,结合测试参数,按待测设备类型以DLL 的方式,对待测设备的频率、功率、杂波、谐波、相噪等主要指标的测试步骤进行封装,完成指标测试,并与软件界面交互,实时显示测试数据和测试结果判断。
4)待测件通信模块
建立待测设备和测控计算机之间的通信连接,向待测设备下发程控指令,并实时回读待测设备的上报信息。
5)报表生成模块
基于COM 组件技术调用Microsoft Office Word,结合配置参数自动生成Word 报表。
6)测试过程控制模块
模拟手动操作,通过程控电源和下发指令控制待测设备状态,并通过调用指标测试模块完成测试过程,存储测试数据和测试结果。
测试系统软件采用模块化设计思路,根据代码功能封装成软件模块,预留对外函数接口便于调用和二次开发。
1)硬件驱动类函数
public bool Open(int primaryAddr, int secondAddr)、public bool Open(string IPaddr, string Port)仪器初始化函数:分别通过GPIB 和TCP/IP 建立计算机与程控仪器或射频开关的通信连接,软件根据用户填写的地址信息自动识别具体使用哪种方式建立连接。
2)配置文件相关函数
private void XML_Load(string test_type)XML 加载解析函数:根据待测设备类型和实验类型读取XML 配置文件,并将测试参数解析加载至软件。
3)测试类函数
private void testStart()测试过程函数:控制一次全自动测试过程的执行。
4)待测设备通信函数
public bool PortOpen(string type,string add,string param)端口出初始化函数:用于建立计算机于待测设备之间的通信链路。
5)数据类函数
private void writerThreadStart(object parameter)报表生成函数:将测试数据,根据配置文和测试信息生成为指定格式和文件名的Word 报表,保存至指定路径。
测试软件执行流程如图4 所示。
图4 软件执行流程图
从流程图可得,软件从台套、通道、指标、测试频点4 个层面,以循环的方式遍历所有与测试系统相连待测设备的每个通道,各项指标的所有测试频点。测试完成后,根据配置文件自动生成Word 报表。软件执行过程逻辑清晰,层次分明,能够准确稳定高效地完成整个自动测试过程。
测试系统软件的UI 设计,遵循了简约、一致性和易用性的基本原则,对于不同型号待测件,交互方式相同,且交互过程操作简洁,简单易学[9,10]。软件UI 如图5 所示,主要包含了:
图5 软件UI
1)测试信息填写窗口:选择待测件型号,试验项目,填写测试地点等测试信息;
2)实验类型选择窗口:勾选待测实验类型;
3)指标选择窗口:勾选待测指标;
4)通道选择窗口:勾选待测通道;
5)待测设备信息窗口:填写待测设备编号,勾选待测设备和选择报表保存路径;
6)端口信息窗口:显示和更改待测设备通信端口信息;
7)指标仪器参数窗口:显示待测指标的仪器参数;
8)测试信息窗口:实时显示测试时间、待测设备编号、指标等测试过程信息;
9)测试操作窗口:显示测试过程执行状态,控制软件开始、停止和暂停测试。
10)协议下发窗口:显示下发至待测设备的通信内容。
本测试系统已在频率源、多通道变频和前端三种类型的模块产线上成功应用,具体应用情况及自动测试系统开发周期如表1 所示,本文以测试指标数目和开发周期衡量测试系统开发效率。在投入产线使用前,自动测试系统的开发需要经历需求分析、代码编写、硬件设计搭建、测试环境联调验证和管理控制流程5 个阶段,以往开发可测2 个指标到6 个指标的自动测试系统,开发周期为10 天至34 天不等,单个指标平均耗时5.5 天。使用本测试系统,在基础通用功能开发调试完成的情况下,各型待测模块自动测试系统的开发周期如表1 所示,单个指标平均耗时1.6 天,由此可得自动测试系统的开发效率提升了70 %以上。
表1 测试系统应用及开发周期
本文研究了一种多通道射频模块可配置通用组批自动测试系统设计方案。该测试系统采用标准模块化组件和程控仪器,以自由装配的方式搭建硬件系统;以通用可配置为核心设计理念,剥离通用和个性化功能模块,参数化自动测试过程,并依托具有结构性标记语言XML,设计数据结构保存测试参数,以C#为编译环境,结合虚拟仪器、多类型总线通信和COM 组件技术设计系统软件,实现了自动测试系统在不同类型多通道射频模块的组批全自动测试过程中通用,将自动测试系统的开发周期缩短了约70%以上,有效提高了产线自动测试能力建设效率。