(1.海装沈阳局驻哈尔滨地区第三军事代表室,哈尔滨 150001;2.哈尔滨工业大学 仪器科学与工程学院,哈尔滨 150001;3.北京航空航天大学 自动化科学与电气工程学院,北京 430071)
随着电子技术的发展,各种电子设备的现代化、高科技化、复杂化程度也越来越高,针对设备的测试内容也日趋繁杂,测试工作量急剧增加,而规定的测试时间越来越短,导致传统的人工参数测试方法难以满足现代测试需求。因此,必须依靠以计算机为核心的测试系统来实现设备的自动化测试[1]。
自动化测试系统[2-4](Automatic Test System,ATS)有关的研究工作最早开始于1955年美国的SETE计划,用以解决军用电子设备(如航空电子系统和导弹系统等)的维护问题。自动测试系统是指可以自动进行测量,数据处理,并且以合适的方式显示输出测试结果,而无需人员参与或仅需极少参与的系统[5]。与传统的人工参数测试方法相比,自动测试可以提高工作效率、降低成本,在现代测试测量技术中有着十分重要的作用。为满足自动测试系统课程实验的教学演示需要,本文以某信号调理模块为被测对象设计了一套基于LXI总线[6]的多通道自动测试系统。经实际应用测试,该自动测试系统实现了对信号调理模块的自动测试,同时可进行通道选择,具有良好的教学演示效果。
通过分析课程实验的教学演示需求,以信号调理模块为被测对象设计的自动测试系统应具备如下技术要求:
1)自动测试系统能够产生激励信号作为信号调理模块的输入。
2)自动测试系统能够采集信号调理模块的输出信号,并具备后续的分析、处理和显示功能。
3)能够通过上位机实现测试通道的选择切换,将信号调理模块依次接入自动测试系统进行测试。
设计的多通道自动测试系统主要由激励信号源、信号调理模块、数据采集器以及通道选择模块组成,系统结构如图1所示。上位机通过LXI总线[7-9]发送程控仪器指令,用于控制激励信号源产生输入信号调理模块的激励信号,数据采集器采集选定通道信号调理模块的输出波形信号;同时上位机可通过串口指令控制通道选择模块完成测试通道的选择。上位机基于LabVIEW软件开发相应的软件界面,用于实现人机交互以及测试系统的控制。
图1 多通道自动测试系统结构
设计的多通道自动测试系统主要由激励信号源、信号调理模块、数据采集器以及通道选择模块组成。其中信号调理模块采用实验室已有的某信号模块,激励信号源和数据采集器分别采用HTLX3730B 100MSPS任意波形发生器、HTLX4484B八通道同步数据采集仪。根据设计指标要求,多通道选择模块应采用5 V供电,具备与信号调理模块输出相连的SMA接口,并通过BNC接口与数据采集器的各通道连接,同时可以接收上位机的串口控制指令完成4个测试通道间的切换。
系统中采用的信号调理模块是一款用于配套测量发动机转速传感器输出的信号调理模块,其作用是将传感器输出的正弦波信号,调理成同频率的方波信号,该模块的具体性能指标参数如表1所示。
多通道自动测试系统的搭建需要激励信号源和数据采集器,选用已具备的两种型号的LXI仪器模块。下面分别对采用的LXI仪器模块进行介绍:
表1 信号调理模块基本性能指标参数
1)激励信号源:使用HTLX3730B 100 MSPS任意波形发生器。该任意波形发生器基于LXI总线并符合IVI 1.3标准,具备16位的分辨率和256 MB的板载缓存,最高数据转换率可达100 MS/s,通过待用数字内插技术可使有效转换率达到400 MS/s,输出信号的最大带宽为43 MHz。
2)数据采集器:使用HTLX4484B 八通道同步数据采集仪。该数据采集器可使用8个独立的单端采集通道或8个独立的差分通道,所有通道共享512 MB的SDRAM数据存储器,各通道均有一个独立的16位A/D转换器和信号调理电路,可实现的最高采样为2 MSa/s。
综合考虑实现硬件资源使用率、实现成本等因素后,选择采用单片机控制继电器阵列的方式实现通道选择模块,设计的硬件电路框图如图2所示。硬件电路主要包括单片机最小系统、通信及供电电路和继电器阵列及外部接口,下面分别对这三部分的硬件电路设计进行介绍。
图2 通道选择模块硬件电路图
1)单片机最小系统:通道选择模块的微控制器采用基于RISC指令集的Atmel ATmega328-PU,设计的单片机最小系统的原理图如图3所示。时钟电路由一个16M无源晶振和两个22pF电容组成,复位电路同时具备上电自动复位和手动按键复位两种复位方式,为便于观察上电情况和串口通信情况,添加了电源指示灯和串口指示灯。
图3 ATmega328-PU最小系统原理图
2)通信及供电电路:为保证通道选择模块能够接收上位机的控制指令进而完成测试通道的选择,因此需要实现与上位机之间的通信,采用常见的Micro USB接口实现。由于ATmega328-PU单片机的串口输出为TTL电平,所以采用CH430T电平转换芯片实现串口信号和USB信号之间的转换。由于CH340T的正常工作需要独立的时钟源,所以用12 M无源晶振和2个22 pF电容组成时钟电路。此外针对通道选择模块的供电需求设计了两种方式:通过USB接口直接供电或者由外部直流电源通过接线端子供电,这两种供电方式通过一个单刀双掷开关进行选择。通信及供电电路的原理图如图4所示。
图4 通信及供电电路原理图
3)继电器阵列及外部接口:考虑单片机I/O口的负载驱动能力有限,无法直接驱动控制继电器,因此采用ULN2803驱动芯片,该驱动芯片最多可实现八路驱动,现选用其中四路用作继电器驱动。在COM引脚外接高电平时,一旦单片机的I/O口输出低电平,对应的继电器吸合,使能信号调理模块的输入,从而实现通道选择的功能。由于激励信号源的输出接口为SMA,数据采集器的输入接口为BNC,因此通道选择模块的外部接口设计为一个SMA接口和4个BNC接口。继电器阵列及外部接口的原理图如图5所示。
图5 继电器阵列及外部接口原理图
多通道自动测试系统的自动测试、通道选择功能的实现需要在硬件设计的基础上进行相应的系统软件设计。通过分析该多通道自动测试系统的工作原理,设计的系统软件应实现以下功能点:
1)具备本地人机交互界面,能够响应鼠标、键盘操作。
2)能够控制激励信号源、数据采集器这两个LXI仪器模块。
3)实现与通道选择模块之间的串口通信,用于发送通道选择控制指令。
因此系统软件设计主要包括上位机软件设计和下位机程序设计,下面就多通道自动测试系统的软件设计工作进行介绍。
由于上位机的控制软件既要响应软面板的用户事件,又需在后台执行激励信号源和数据采集器的控制操作,同时还要进行采集波形信号的分析处理,因此需要采用多线程的设计实现。然而各个线程之间并非完全独立,它们之间还会进行必要的数据交换和信息传递,因此控制软件采用“生产者-消费者”架构,即通过顺序队列(FIFO)缓冲区实现线程之间的同步和通信。
在生产者线程中使用事件结构,因此当用户在软面板执行例如按下按键、输入数据等操作时,就会产生一个对应的事件,在控制程序中每个事件都映射着一个操作响应函数。每当用户操作被事件结构响应后,都会将一个捆绑有对应事件枚举变量的簇送入顺序队列缓冲区,供消费者线程读取。此外,在簇中还有一个用来传递事件数据的变量。在消费者线程中使用状态机结构。首先判断顺序队列缓冲区是否为空,如果非空则从中依次读取缓存簇并进行解绑,然后使用条件结构根据簇中的枚举变量执行相应分支的响应操作。基于“生产者-消费者”架构完成上位机控制软件的设计,能够有效避免用户事件的丢失,提高测试系统的运行可靠性,其执行流程图如图6所示。
图6 上位机控制软件执行流程图
系统中上位机通过TCP/IP协议发送SCPI(Standard Commands for Programmable Istruments)指令对激励信号源和数据采集器进行控制。此外,上位机还需通过串口指令控制通道选择模块完成测试通道选择。虽然两者的硬件接口分别是LAN口和串口,但是控制软件可以调用VISA(Virtual Instrument Software Architecture)对不同接口的仪器以统一的形式发送程控指令[10-11]。图7分别为VISA资源库中的打开、关闭、发送和读取4种基本结构,通过VISA库对自动测试系统中的仪器进行控制时,均需要调用上述4种基本结构。
图7 VISA资源中的4种基本结构
由于多通道自动测试系统中的仪器设备具有较多共同的属性和调用方法,因此采用面向对象的方法进行仪器驱动程序的设计。针对各仪器设备间共有的属性和方法创建ATS_Instr类作为父类,仪器驱动程序中的其他类,例如ATS_LXIFgen(激励信号源)类、ATS_LXIDAQ(数据采集器)类和ATS_ATmegaSwitch(通道选择模块)类均是继承自ATS_Inst父类的子类,它们之间的继承关系如图8所示。
图8 仪器驱动程序类间的继承关系
ATS_LXIFgen类的实例化仪器是HTLX3730B激励信号源,该子类在父类的基础上增加了波形输出配置程序接口;ATS_LXIDAQ类的实例化仪器是HTLX4484数据采集器,该子类在父类的基础上增加了采样率和采样点数的属性,还增加了配置输入、信号采集以及信号处理程序接口;ATS_ATmegaSwitch类的实例化设备是通道选择模块,该子类在父类的基础上增加了通道选择程序接口,同时上述3个子类还根据自身特性重写了仪器初始化、启动和停止的程序接口。采用面向对象的方法进行仪器驱动程序的设计,不仅可以减少重复的代码量而且便于后期的代码维护升级。
通道选择模块中的ATmega328-PU微控制器程序采用串口命令驱动的状态机实现,即通过接收的上位机指令来决定状态机的跳转。不同的状态机状态对应不同的I/O口输出电平组合,进而控制继电器阵列状态实现测试通道的选择。下位机的程序流程如图9所示。
图9 下位机程序流程图
上位机与下位机之间的串口通信命令帧采用4个字节,前两个字节0xFF作为帧头,第三个字节为命令数据,第四个字节为命令数据的反码。不同的命令数据对应不同测试通道选择,它们之间的对应关系如表2所示。
表2 通达选择命令表
上位机软面板通过调用仪器模块的驱动程序实现对多通道自动测试系统的控制,例如激励信号源输出信号设置,测试通道设备选择等,同时还集成了波形显示窗口以便于用户对波形的观察。如图10所示上位机软面板主要由3个区块组成:波形显示区块、设备选择区块以及输入信号设置区块。
图10 上位机软面板
为验证设计的多通道自动测试系统的功能正确性,首先上位机通过LXI总线发送程控命令对测试系统中的激励信号源、数据采集器两种型号的LXI仪器模块进行连接、功能测试,通过串口发送串口指令控制通道选择模块进行通道切换测试,随后对整个系统进行了整体功能测试。
在设计的多通道自动测试系统中,上位机与激励信号源、数据采集器之间的通信依赖于LXI总线,因此首先对测试系统中LXI总线通信功能进行测试。用LabVIEW编写用于测试LXI总线通信连接的程序,程序具体实现调用VISA发送一个通用的SCPI指令*IDN?,该指令用于查询LXI仪器的设备信息。测试结果如图11所示,LXI仪器模块返回相关设备信息,说明LXI总线的通信连接正常。
图11 LXI总线通信连接测试
激励信号源、数据采集器的功能测试采用如下方法实现:采用SMA接头转BNC接头的信号传输线将激励信号源输出端和数据采集器的一个输入通道相连接,用LabVIEW编写两者的测试程序并同时运行,测试结果如图12和图13所示,激励信号源的输出设置和数据采集器测得的波形一致,表明两者的功能正确。
图12 激励信号源测试
图13 数据采集器测试
完成自动测试系统中各模块的功能测试后,对整个系统进行全局功能测试。激励信号源的输出端与通道选择模块的SMA接口连接,作为系统的测试信号输入;信号调理模块由直流稳压电源输出的24 V供电,并将其输入、输出端连接至通道选择模块上的接线端子;最后将通道选择模块的4个BNC输出端与数据采集器的4个采集通道相连接,通过以上步骤完成测试系统的搭建。此后,用户可通过上位机软面板控制系统进行关于信号调理模块的自动测试。图14显示的是某次测试实例的结果,上位机控制激励信号源产生幅值为5.00 V、频率为1 000 Hz的正弦波作为测试信号,经过信号调理模块的作用后,数据采集器采集到赋值为2.78 V、频率为1 000 Hz的方波输出信号,由于输出波形信号符合预期的指标参数,所以自动测试系统的合格指示灯为绿色,表明信号调理模块通过测试。除此之外,通过上位机发送串口指令进行了通道选择测试,测试结果表明该系统可实现测试通道的灵活选择切换,具备良好的教学演示效果。
图14 系统整体功能测试
本文从自动测试课程实验的教学演示实际需求出发,以某信号调理模块为被测对象,设计开发了一套基于LXI总线的自动测试系统并进行了相关测试,测试结果表明该自动测试系统可由计算机控制产生输入信号调理模块的激励信号,对信号调理模块的输出信号进行采集、分析处理以及显示,同时具备通道选择切换功能,在实际应用满足自动测试系统课程实验的教学演示需求。