APP下载

分立元件自动测试仪图形化编程的实现

2011-08-07董天旭王冰峰

电子测试 2011年11期
关键词:测试程序测试函数测试仪

董天旭,王冰峰

(电子科技大学自动化工程学院,成都,611731)

0 引言

传统的分立元件测试仪,即专用分立元件测试仪,其测试程序通常固化于测试仪硬件中,能测试的器件类型和测试流程确定不变,因而使用范围受到一定限制。为了克服这种弊端就需要实现一种通用分立元件测试仪,即可以根据不同的测试器件、不同的测试指标、甚至不同的测试顺序,灵活的生成测试程序,并将其下载到测试仪硬件中实现相应测试目标。图形化编程是通用分立元件测试仪实现的方法:只需要依次在测试仪人机交互界面创建测试项目、绘制测试流程图、设置相应测试参数、编译链接测试程序、下载运行即可完成自动测试功能;这种实现方式十分灵活,易于系统升级扩展,便于测试人员操作。

1 分立元件自动测试仪系统构成

分立元件自动测试仪系统构成简化图如图1所示。本文采用C#语言在集成开发环境Microsoft Visual Studio 2010完成人机交互界面设计;CPU板采用ARM作为中央处理器,其应用程序主体采用ARM Developer Suite 1.2设计完成。

图1 分立元件自动测试仪系统构成简化图

2 图形化编程的实现

根据分立元件自动测试仪的操作流程,图形化编程的实现步骤包括:测试项目的创建、测试流程图的绘制、测试程序的生成与编译。

2.1 测试项目的创建

测试项目包括测试流程文件和测试项目文件。测试流程文件用于存储测试流程的绘制信息,由AddFlow控件的相应指令自动生成;测试项目文件是用于存储诸如:测试器件类型、测试器件型号、硬件配置、测试指标等测试信息的XML文档;之所以采用XML文档格式,是因为它是简单文本格式,而且采用类似树的层次结构来组织数据,使得数据的存储和读取十分便利。测试项目文件的XML文档格式如下:

“Project”是XML文档的根元素,数据信息均存储在其子元素中。“Project”下面创建了子元素“工程信息”和“测试流程”。“工程信息”又包括:“器件类型”、“器件型号”、“通道定义”、“分选信息组定义”、“分选信息组选择”、“分选机配置”、“测试指标”等子元素。“通道定义”用于存储测试目标将要使用的测试板类型,测试板通道号,以及测试板所在的插槽号等;“分选信息组定义”用于存储根据实际需要定义的一组或则多组分选信息,而“分选信息组选择”用于存储所选择的分选信息组名称。“分选机配置”用于存储分选机的配置参数;“测试指标”则是根据测试目标中测试指标的测试顺序对测试指标进行存储。“测试流程”作为“Project”的子元素,其功能不同于测试流程文件:测试流程文件用于存储测试流程图的绘制信息,而“测试流程”元素用于存储测试流程图中作为节点的测试函数的参数设置等信息。

2.2 测试流程图的绘制

测试流程图的绘制采用AddFlow控件实现。AddFlow是Lassalle Technologies开发的Windows Forms流程图控件。AddFlow包含两个重要子类:Node和Link,分别表示流程图节点和连线。Node的Text属性代表的是节点的文本内容,是能够直接从流程图获取的信息,在本文中使用它作为节点的唯一标识符号;Link的Dst属性代表的是Link的目标节点,在本文中使用它来遍历流程图,从而生成测试程序(需要说明的是本文实现的流程图均是顺序结构,这能够满足大多数分立元件的测试要求)。AddFlow又包括两个重要方法:WriteXml和ReadXml,分别用于将流程图绘制信息保存到测试流程文件以及从测试流程文件读取流程图绘制信息。

测试流程图包括总体测试流程图、各测试指标的测试流程图。总体测试流程图是根据测试顺序,使用各个测试指标作为流程图中的节点由人机交互界面自动绘制完成;测试指标的测试流程图是由用户根据其测试目标的需要,选择相应测试函数作为节点来绘制完成的。因此需要设计测试函数相应的流程图节点,其实现方式为(见图2):创建一个工具箱,工具箱可以是一个简单的窗口,其中包含了测试函数名称列表;为每个测试函数设计相应的参数设置界面;绘制流程图时,从工具箱选择测试函数,添加相应节点到流程图绘制区域;双击节点触发其参数设置界面的显示,界面加载时显示节点默认参数或已设置参数,设置完成后,关闭即可。

图2 工具箱设计(上)、某函数参数界面设计(下)

单个测试指标的测试流程图设计流程如图3所示(其中用Item代表某项测试指标,用Func代表某个测试函数)。

2.3 测试程序的生成与编译

测试程序包括测试流程代码,测试函数定义代码,通讯代码等,它们共同包含在一个ARM Developer Suite工程中。除测试流程代码外,其余代码均由测试仪设计员在ARM Developer Suite中设计完成,且设计完成后固定不变。测试流程代码则由人机交互界面根据用户绘制的测试流程图生成,所以根据测试目标的不同测试流程代码是不同的、它是可改变的。测试流程代码又包括测试流程定义代码和测试流程调用代码。测试流程定义代码获得流程如图4所示。测试流程调用代码的获得方法类似定义代码的获得,甚至要简单得多,其基本思想是在程序入口函数main_app内直接或则间接包含测试流程调用代码即可。本文采用间接的方式,即事先在main_app函数内调用某个函数,而将测试流程调用代码写入到该函数定义的内部。

图3 测试流程图的设计流程

使用ARM Developer Suite开发ARM程序时,ADS工程编译连接后产生以工程名称命名的bin文件,该文件即是ARM运行所需要的二进制可执行文件。为了使得人机交互界面具备同样功能,首先为测试程序的ADS工程制作Makefile文件(可以手动制作或使用mcp2make等小工具),然后调用Microsoft Visual Studio 2010的命令编译器NMake.exe,执行相应命令即可完成ADS工程的编译和链接(比如:nmake /f ADS工程名称.mk all),从而获得所需bin文件;将bin文件下载到作为测试仪中央处理器的ARM中即可实现相应的测试功能。

图4 测试流程定义代码

3 示例与总结

本文以NPN型三极管8050为示例,测试它的正向直流电流放大倍数HFE,其测试条件为VCE=1V、IC=800mA,合格条件为30<HFE<300,测试流程图如图5所示。

图5 HFE测试流程图

该流程图中,UR_1表示用户继电器函数,用于搭建测试电路(继电器矩阵为8×8);Delay_2表示延时函数;FV_3、FIMI_4表示施压函数和输出测量函数,用于提供测试条件和获得测试值;Return_5表示返回值表达式,用于根据测试值计算出HFE值。

测试流程图绘制完成后,工程文件中存储的相关工程信息如下:

对测试程序进行编译连接后,生成可执行文件,将其下载到测试仪硬件中,对单个8050进行100次重复测试(实验条件下,测试仪未装配分选机),测试仪正常工作并获得其HFE值为78倍,即该测试指标合格。

实践证明,该图形化编程能够使得分立元件自动测试仪根据实际需要,即根据不同的测试器件、不同的测试指标、不同的测试顺序生成不同的测试程序完成相应测试功能,使得分立元件自动测试仪便于进行可测试器件类型的扩展,因为倘若测试程序固化于测试仪硬件中其可测器件类型同时也固定不变;该图形化编程方式,较之ARM Developer Suite等集成开发环境,用户不需要知道大量编程语言知识,也不需要知道测试函数的申明方式,只需要多次使用之后就能掌握如何生成正确的测试程序,从而降低了对使用人员的限制。但该实现方式也存在一定不足,比如目前仅完成了顺序结构测试流程代码的实现,因此,包含分支等复杂结构的流程图的代码实现,是进一步研究的内容。

[1]戴春翟,李晓静,张侃谕.集成电路测试系统通用测试软件的研究与设计[J].电子测量技术,2010,33(1):133-135.

[2]李旭刚. 集成电路测试系统软件的设计及实现[J].电子测试,2010,9(9):6-9.

[3]Karli Watson, Christian Nagel. C#入门经典[M]. 齐立波 译.5版.北京:清华大学出版社,2010.

[4]Bill Evjen, Jay Glynn. C#高级编程[M]. 李铭 译.7版.北京:清华大学出版社,2010.

[5]范书瑞,赵燕飞,高铁成. ARM处理器与C语言开发应用[M].北京:北京航空航天大学出版社,2008.

[6]David Hunter, Jeff Rafter, Joe Fawcett. XML入门经典[M].吴文国 译.4版.北京:清华大学出版社,2009.

[7]Lassalle Technologies. AddFlow for .NET V2.2 Tutorial. http://www.lassalle.com ,2008.

[8]罗云彬.Windows环境下32位汇编语言程序设计[M]北京:电子工业出版,2009.

猜你喜欢

测试程序测试函数测试仪
SDL Atlas推出第二代HydroPro耐静水压测试仪
使用快速水洗色牢度测试仪检测超细纤维脱落
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
基于博弈机制的多目标粒子群优化算法
便携式转辙机转换力测试仪
基于Castle型机械手的三温量产测试平台实现
具有收缩因子的自适应鸽群算法用于函数优化问题
手机APP交互界面人因适合性测试程序的设计与实现
基于单片机的PM2.5测试仪设计与应用