APP下载

分立器件测试系统软件平台的设计及实现

2011-09-12罗猛詹惠琴古军

电子测试 2011年11期
关键词:测试程序机软件下位

罗猛,詹惠琴,古军

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

0 引言

在早期的测试系统中,软件平台一般只提供文本编程方式给用户使用,其测试程序是以测试流程为依据从上至下一步一步排下来的,所有与测试相关的参数、程控指令、测试结果等都内置于一个文本测试软件中, 这种编程具有面向过程的编程规范,包含特定的语法规则,灵活性很强[1]。但是这种方式有其不足的一面,其一是一般测试程序编程过程较为复杂,这就要求测试人员必须具有较深的编程功底;其二是这种方式可维护性差,不适于进行快速高效的现代自动化测试。而本文提出的基于图形化编程语言的软件平台为测试工程师提供一个灵活简便的可编程环境。实现了测试参数和测试程序的分离,开发人员更加专注于测试方法本身,而不用花太多时间在构建测试系统所需的测试流程和控制策略上[2]。

1 软件平台的总体架构

ATS是整个测试系统的核心和关键,它是联系测试资源和被测对象的软桥梁,其体系结构的好坏直接关系到整个自动测试系统的性能[3]。硬件资源自检与校准、软件账号管理、流程图测试程序自动转换、测试指标报表生成及打印等功能都与软件系统的设计息息相关。本着层次化,组件化,标准化的要求,同时为了满足测试程序的可移植性及仪器的互换性以及测试系统软件结构的开放性、可扩充与裁减性等要求[4],我们将分立器件测试系统软件总共分为3个层次,包括ARM程序层,USB驱动层和上位机软件层,图1所示为系统软件平台总体架构框图。每个层的具体功能如下:

ARM程序层:主要包括各个功能板和测试板的驱动程序,以及实现ARM内核对各个功能板进行控制的执行程序。

USB驱动层:主要是USB的接口驱动函数,完成下层ARM与上位机软件层的通信,进行数据的编排和解析,是整个测试系统软件的纽带。

上位机软件层:是整个软件系统的最上层,也是最直接与用户接触的层次。用户需要设置和保存的所有个人信息、群组信息、测试工程及测试项目信息都要通过该层来完成,同时在硬件通信良好的情况下接收并在显示屏上显示测试仪的测试结果数据供用户查看分析。

图1 系统软件平台总体架构框图

2 上位机软件的设计

2.1 开发环境的选择

C#是由Microsoft为.NET Framework量身订做的程序设计语言。C#语言是由C/C++演变而来的,除了拥有C/C++的强大功能外,还具有Visual Basic简易使用的特性,也是一种面向对象设计语言。它继承了C++中类得继承、封装、多态、重载等特性,另外它现代、简单、完全面向对象和类型安全等新特性,从而使我们开发出来的测试系统软件具有良好的用户体验,优良的兼容性,较高的灵活性和可扩展性。基于系统开发的要求和C#语言的特点,我们最终选择了Visual Studio 2008作为上位机软件的开发工具。

2.2 上位机软件的层次结构

上位机软件层次结构如图2所示。其中驱动层包括USB驱动以及hp万用表驱动,其中USB通信API和hp万用表通信API是通过动态链接库(dll)形式封装,向中间层提供通信接口。中间层包括.net平台、微软控件以及第三方控件,这一层起到承上启下的作用。应用层即仪器界面,是整个程序框架的顶层。

图2 上位机软件层次结构图

3 USB驱动的设计

本测试系统中USB中间层主要负责上位机与下层ARM的数据信息交换,是上位计算机与分立器件测试系统连接的纽带。USB驱动程序主要完成两个方面的工作:一是通过USB驱动向下层ARM发送上位机的设置数据和控制信息;二是接收下层ARM发回的测试结果数据。驱动程序采用VC++6.0进行开发,以动态链接库的形式进行调用。

3.1 USB发送数据

当在界面上点击“下载”按钮后,上位机程序会将包含有数据类型、数据字节长度和数据信息或者控制命令信息的字符串按照规定的数据格式通过USB处理向下发送。图3所示为USB数据的下载流程。

图3 USB数据下载流程图

3.2 USB接收数据

当下位机完成一个器件的完整测试后会及时将测试结果数据通过USB中间层传输到上位机软件中,但是上位机软件并不能直接接收下位机送回的测试结果数据,而需要经过USB中间层的处理。所以当USB接收到下层ARM发回的测试结果数据后,USB驱动层要对测试的结果数据进行处理,调整结果数据的格式,并将包含有数据类型信息和数据长度信息的测试结果数据以字符串的形式按照某一协议格式送回到上位机软件中,供上位机软件调用。图4所示为USB数据上传的流程。

图4 USB上传数据流程图

3.3 USB驱动在系统中的调用

在分立器件测试系统中需要用到的USB动态链接库函数的调用方法如下:

(a)[DllImport("2440usbDLL.dll", EntryPoint ="UsbTransmit", CallingConvention = CallingConvention.StdCall)]

public static extern void UsbTransmit(IntPtr hwnd); 该函数调用主要实现的功能是下载

ARM程序编译生成的BIN文件。BIN文件是将系统的ARM程序编译生成的二进制文件,只有将BIN首先下载到ARM中整个系统才能开始工作,否则后续其他一切工作都不能完成。

(b) [DllImport("2440usbDLL.dll", EntryPoint ="strpc2arm3", CharSet = CharSet.Ansi, CallingConvention=Callin gConvention.StdCall)]

public static extern int strpc2arm3(string dataString);

该函数主要实现的功能是上位机工程设置参数的下载。参数dataString表示要下载的工程设置参数。

(c)[DllImport("2440usbDLL.dll", EntryPoint = "arm2pc_Data", CharSet = CharSet.Ansi, CallingConvention=CallingConve ntion.StdCall)]

public static extern string arm2pc_Data();

该函数主要实现的功能是接收由ARM传回的测试结果数据。

另外,本系统中USB动态链接库的编写借助了部分MFC类库中的函数,所以在应用本动态库时,需要同时添加四个MFC的动态库文件:MFCD42D.DLL、MFC42D.DLL、MFCO42D.DLL和MSVCRTD.DLL。

4 下位机软件设计

4.1 下位机arm程序的编译方法

基于GCC的诸多优点在设计初期,我们曾经考虑过使用GCC来编译下位机arm程序,但使用GCC需要编写makefile文件搭建编译平台,这不是一件容易的事情。但后来发现ADS1.2 IDE提供了此问题的解决方案,ADS1.2 IDE提供了一个菜单项可以把ADS1.2工程转化为一个和工程对等的.xml文件,然后调用ADS1.2提供的mcp2make工具将.xml文件转化为makefile文件。这使得设计下位机软件时可以用IDE界面搭建编译环境,设置编译信息,规避了编写makefile文件的诸多细节问题。得到了makefile文件后,我们就可以使用VC++6.0提供的nmake工具调用makefile文件编译整

个下位机工程。在makefile文件里分别调用ADS1.2提供armcc编译器以及armlink连接器最终把整个下位机工程编译成一个.axf文件;最后使用“fromelf -bin –output xxx.bin xxx.axf”命令将.axf文件转化为.bin文件下载到下位机,图5为测试程序自动转换及编译流程图。

图5 测试程序转换及编译流程图

4.2 下位机软件体系设计

4.2.1 下位机软件体系结构

下位机软件系统是运行在ARM处理器上的,直接与测试系统硬件进行接触,控制各个功能板和测试板当前所要进行的工作,是测试系统硬件的灵魂。下位机软件结构体系如图6所示。

图6 下位机软件体系结构图

4.2.2 下位机软件的功能结构

下位机功能结构如图7所示,分为工程师模式、单板模式、生产者模式。这3个模式用来配合上位机软件的工程师模式和生产者模式。

图7 下位机软件功能结构

5 应用和结论

本文介绍的分立器件测试系统已经投入使用。并针对晶体管、二极管等器件进行了大量的测试。图8所示为在软件平台下,针对NPN型三极管8050进行的几项指标测试返回的测试结果截图。看以看出测试结果符合NPN型三极管的特性参数。验证了分立器件测试系统软件平台的功能。

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

[2]王勇.雷达通用测试软件结构设计与实现[J].科技信息,2007(18):1-2.

[3]李宝安,李行善.自动测试系统(ATS)软件的发展及关键技术[J ].测控技术,2003,22(1) :124.

[4]沈震.通用ATE软件平台的研究与实现[D].合肥:中国科学技术大学,2005 :10-11.

[5]张在得,曹乃森,蒋晓松.ATE通用性设计与实现[J].计算机测量与控制,2003,11(11):830-832.

[6]GEORGE SHEPHERD.Visual C++.net 技术内幕[M].6版.北京:清华大学出版社,2004.

[7]刘锐宁,梁水,宋坤.Visual C++开发技术大全[M].2版.北京:人民邮电出版社,2009:651-656.

[8]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2009.

猜你喜欢

测试程序机软件下位
发射机房监控系统之下位机
基于Castle型机械手的三温量产测试平台实现
手机APP交互界面人因适合性测试程序的设计与实现
道岔监测系统上位机软件设计
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
基于正交试验法的北斗用户机软件测试用例设计
PCI-e高速数据采集卡的驱动与上位机软件设计
电气自动化控制设备可靠性测试探讨
CAN总线并发通信时下位机应用软件设计