一种仪器模块通用接口的实现方法

文档序号:6587878阅读:132来源:国知局
专利名称:一种仪器模块通用接口的实现方法
技术领域
本发明涉及仪器模块,尤其是涉及一种仪器模块通用接口的实现方法。
背景技术
射频模块产品存在生命周期短、测试复杂程度高、测试项目繁多、不同产品的测试指标和测试方法存在差异等特点。而传统驱动库的一般只能提供驱动接口,一般根据仪器 厂商不同而通讯协议也不同,因此提供的仪器模块驱动库设计接口也不同,同时驱动方法 不可见,不能动态配置执行方法。只能在编码是固定使用。传统驱动库已无法满足要求。

发明内容
本发明的目的是提供一种提高生产效率的仪器模块通用接口的实现方法。为了达到上述目的,本发明采用如下技术方案一种仪器模块通用接口的实现方 法,实现方法步骤为步骤1 利用驱动方法配置层中的驱动方法配置库的打开函数创建仪器模块对象 实例;在步骤1中,测试终端会将仪器模块连接字符串传递给驱动方法配置库,驱动方 法配置库再将连接字符传递给仪器模块管理层中的仪器模块驱动管理库,仪器模块驱动管 理库按照一定的协议格式分离连接字符串并识别仪器模块类型,再根据具体类型加载仪器 模块驱动层中的仪器模块驱动实例库,然后利用仪器模块驱动实例库中的打开函数创建仪 器模块对象实例,同时将仪器模块对象实例句柄返回给上层;步骤2 利用驱动方法配置库的创建方法函数创建驱动方法对象;步骤3 利用驱动方法配置库的设置方法的参数值函数配置驱动方法的输入参 数;步骤4 利用驱动方法配置库的运行函数执行一个驱动方法;步骤5 利用驱动方法配置库的获取输出参数值函数获取到从仪器模块返回的数 据;步骤6 利用驱动方法配置库的释放函数释放某个驱动方法对象内存资源;如果要执行多个驱动方法的话,重复步骤2,3,4,5,6。所述驱动方法配置层中的驱动方法配置库采用软件工厂模式的设计方式,将测试 终端所用到的所有方法按照标准的方式进行封装,为上层提供统一的接口。所述仪器模块管理层中的仪器模块驱动管理库采用面向对象的设计方式,根据仪 器模块连接字符串自动分析和管理仪器模块驱动实例库,动态创建仪器模块驱动对象和方 法,支持多台仪器同时使用。所述仪器模块驱动层中的仪器模块驱动实例库采用面向对象的设计方式,支持创 建多个仪器模块驱动对象,为上层提供统一的接口。所述驱动方法配置层中的驱动方法配置库主要为配置终端和测试终端提供驱动方法配置和执行的API接口,驱动方法配置库位于驱动方法配置层中。所述仪器模块管理层中的仪器模块驱动管理库为驱动方法配置库提供仪器模块 通用的API接口,自动管理仪器模块驱动实例库,仪器模块驱动管理库位于仪器模块管理 层中。所述仪器模块驱动层中的仪器模块驱动实例库为仪器模块驱动管理库提供通用 的API接口,并实现仪器模块的驱动代码,仪器模块驱动实例库位于仪器模块驱动层中。所述驱动方法配置库、仪器模块驱动管理库、仪器模块驱动实例库都是*. dll文 件。所述仪器模块驱动层中的仪器模块驱动实例库通过VISA库的viOpen、viClose, viPrintf、viscanf、viWrite、viRead函数来发送和接收SCPI指令,对外提供标准的仪器模 块API接口函数。本发明针对射频产品测试过程中所使用的仪器模块厂商、型号、协议不同,驱动方 法接口不同,方法无法根据测试项目需求动态配置的缺陷,提供了一种与仪器通讯的通用 接口。实现仪器通用接口的驱动主要由驱动方法配置层中的驱动方法配置库、仪器模块管 理中的仪器模块驱动管理库和仪器模块驱动层中的仪器模块驱动实例库组成。除具有传统 驱动库功能外,还具有自动识别仪器功能、仪器分类管理功能、驱动方法可见,支持动态配 置执行功能以及二次开发的标准接口。本发明的有益效果是1、屏蔽仪器模块厂商、型号、通讯协议之间的差异,为所有的仪器模块提供统一的接口。2、自动管理仪器模块,减少维护难度。3、仪器模块驱动实例库独立设计,减少相互之间的关联性,进而提高了仪器模块 驱动库的稳定性和可靠性,同时也极大的减少了开发时间,提高了生产效率。4、所有的方法支持动态配置执行,根据需求灵活搭建射频模块测试项和测试方 法,大大减少的自动测试系统的开发时间,提高生产效率。5、支持二次开发功和自动管理仪器种类的功能。


本发明将通过例子并参照附图的方式说明,其中图1是本发明实现仪器模块通用接口的驱动结构层次图;图2是本发明构成射频模块产品自动测试系统的框架图。
具体实施例方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥 的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙 述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只 是一系列等效或类似特征中的一个例子而已.见图1所示,一种仪器模块通用接口的实现方法,实现方法步骤为
步骤1 利用驱动方法配置层中的驱动方法配置库的打开函数创建仪器模块对象 实例;在步骤1中,测试终端会将仪器模块连接字符串传递给驱动方法配置库,驱动方 法配置库再将连接字符传递给仪器模块管理层中的仪器模块驱动管理库,仪器模块驱动管 理库按照一定的协议格式分离连接字符串并识别仪器模块类型,再根据具体类型加载仪器 模块驱动层中的仪器模块驱动实例库,然后利用仪器模块驱动实例库中的打开函数创建仪 器模块对象实例,同时将仪器模块对象实例句柄返回给上层;步骤2 利用驱动方法配置库的创建方法函数创建驱动方法对象;步骤3 利用驱动方法配置库的设置方法的参数值函数配置驱动方法的输入参 数;步骤4 利用驱动方法配置库的运行函数执行一个驱动方法;步骤5 利用驱动方法配置库的获取输出参数值函数获取到从仪器模块返回的数 据;步骤6 利用驱动方法配置库的释放函数释放某个驱动方法对象内存资源;如果要执行多个驱动方法的话,重复步骤2,3,4,5,6。所述驱动方法配置层中的驱动方法配置库采用软件工厂模式的设计方式,将测试 终端所用到的所有方法按照标准的方式进行封装,为上层提供统一的接口。所述仪器模块管理层中的仪器模块驱动管理库采用面向对象的设计方式,根据仪 器模块连接字符串自动分析和管理仪器模块驱动实例库,动态创建仪器模块驱动对象和方 法,支持多台仪器同时使用。所述仪器模块驱动层中的仪器模块驱动实例库采用面向对象的设计方式,支持创 建多个仪器模块驱动对象,为上层提供统一的接口。所述驱动方法配置层中的驱动方法配置库主要为配置终端和测试终端提供驱动 方法配置和执行的API接口 .所述仪器模块管理层中的仪器模块驱动管理库为驱动方法配置库提供仪器模块 通用的API接口,自动管理仪器模块驱动实例库.所述仪器模块驱动层中的仪器模块驱动实例库为仪器模块驱动管理库提供通用 的API接口,并实现仪器模块的驱动代码。所述驱动方法配置库、仪器模块驱动管理库、仪器模块驱动实例库都是*. dll文 件。所述仪器模块驱动层中的仪器模块驱动实例库通过VISA库的viOpen、viClose, viPrintf、viscanf、viWrite、viRead函数来发送和接收SCPI指令,对外提供标准的仪器模 块API接口函数。如图2所示,图2中的ATML为驱动方法配置库,功率计驱动管理库、噪声仪驱动管 理库、网络仪驱动管理库、频谱仪驱动管理库、信号源驱动管理库、射频模块产品驱动管理 库都为仪器模块驱动管理库,NRT功率计驱动库、N8974A驱动库、E5062A驱动库、N9010A驱 动库、FSP-7驱动库、FSP-3驱动库、N5082A驱动库、产品驱动库都为仪器模块驱动实例库。为了更清楚说明本发明的通用接口的实现方法,下面阐述在射频模块产品自动测 试系统的仪器模块的通用接口上进行具体说明,但是本发明不仅适合于射频模块产品测试所用的仪器模块驱动接口,也合适于其它仪器模块的驱动接口,本发明一种仪器模块通用接口的实现方法,在一个具有配置终端、测试代码、测试仪器、测试终端中,a驱动方法配置库位于驱动方法配置层中,驱动方法配置库主要为配置终端和测 试终端提供驱动方法配置和执行的API接口 ;仪器模块驱动管理库位于仪器模块管理层 中,仪器模块驱动管理库为驱动方法配置库提供仪器模块通用的API接口,自动管理仪器 模块驱动实例库;仪器模块驱动实例库位于仪器模块驱动层中,为仪器模块驱动管理库提 供通用的API接口,并实现仪器模块的驱动代码;物理层主要包括测试仪器和测试所需的 附件。b在配置终端声明仪器模块别名变量,创建测试项目和配置测试步骤,实际上配置 测试步骤就是配置仪器模块驱动库方法的执行顺序。c在测试终端将仪器模块别名与实际所使用的仪器模块建立对应映射关系。d测试终端装载仪器模块驱动,将仪器模块驱动库动态加载到PC内存中,得到仪 器模块驱动动态库句柄和仪器模块驱动实例句柄,通过执行仪器模块驱动实例的某个方法 来实现仪器模块驱动的功能。在步骤a中,驱动方法配置库、仪器模块驱动管理库、仪器模块驱动实例库都是 *. dll文件。在步骤d中,会完成仪器模块的初始化,在驱动方法配置库中将会生成一个仪器 模块容器,用于管理设备句柄;在驱动管理库中生成一个仪器模块驱动库管理容器,用来管 理仪器模块驱动库实例库和仪器模块驱动方法入口地址。1、驱动方法配置层中的驱动方法配置库为了达到统一仪器模块驱动方法接口的 目的采用对象工厂的设计思路,主要包括五部分定义驱动方法基类;定义从基类派生出 仪器模块驱动方法的派生类(相当于工厂中的产品模型);方法工厂;方法产生器;外部访 问驱动方法的API接口函数。a在步骤1中所述的仪器模块驱动方法基类的成员主要包括;a)函数参数设置结构体{参数名称;参数类型;参数个数;参数值;参数单位;}b)输入参数容器 < 函数参数设置结构体>c)输出参数容器 < 函数参数设置结构体>d)设置输入参数(输入参数容器)
e)获取输入参数(输入参数容器)f)设置输出参数(输出参数容器)g)获取输出参数(输出参数容器)h)运行
i)初始化b在步骤1中所述的访问驱动方法的对外API接口函数主要包括;a)打开(仪器模块类型号,仪器模块连接字符串,仪器模块句柄)b)关闭(仪器模块类型号,仪器模块连接字符串)c)获取所有的驱动方法名称(方法名称,方法个数)d)获取一类仪器模块驱动方法名称(仪器模块类型号,方法名称,方法个数)e)创建一个方法(方法名称,方法句柄)f)释放一个方法(方法句柄)g)设置一个方法的功能描述语(方法句柄,功能描述语)h)获取一个方法的功能描述语(方法句柄,功能描述语)i)获取一个方法的输入参数个数(方法句柄,输入参数个数)j)获取输入参数的详细信息(方法句柄,输入参数索引号,输入参数名称,输入参数类型,输入参数个数,输入参数值,输入参数单位)k)设置输入参数值(方法句柄,输入参数索引号,输入参数值)1)获取输出参数个数(方法句柄,输出参数个数)m)获取输出参数的详细信息(方法句柄,输出参数索引号,输出参数名称,输出参数类型,输出参数个数,输出参数值,输出参数单位)η)运行一个方法(方法句柄)在步骤1中所述的方法工厂采用“可伸缩工厂”的基本设计,每次添加一个新的“仪器模块驱动方法派生类”时,不必修改它的的代码。将仪器模块驱动方法工厂职能划分清楚,每个新的“仪器模块驱动方法”都必须对工厂注册,并将“驱动方法标识”和“生成函数的指针”传递给它。通常生成函数只有一行,大致像这样BaseClass 氺 CreateDeviceMethod (){return new DeviceMethod}2、位于驱动方法配置层中的驱动方法配置库为了达到仪器模块驱动方法可见、选 择配置的目的采用泛型设计,声明一个Map容器用来保存所有被注册过的仪器模块驱动 方法名称。3、位于仪器模块管理层中的仪器模块驱动管理库采用面向对象设计,根据测试终 端的配置的仪器模块连接字符串,通过微软Microsoft的装载库LoadLibrary函数来装载 仪器模块驱动实例库,并注册仪器模块驱动库管理Map,并将“驱动库名称”、“驱动库句柄” 和“仪器模块句柄”传递给它。4、位于仪器模块驱动层中的仪器模块驱动实例库采用面向对象设计思想,采用SCPI 开发规范,通过 VISA 库的 viOpen、viClose、viPrintf、viscanf、viWrite、viRead 等 函数来发送和接收SCPI指令,对外提供标准的仪器模块API接口函数。采用这种分层的结构设计,可以处理仪器模块型号更换的问题。所有驱动库方法 都是可见,选择配置可降低开发难度和提高开发效率。本发明并不局限于前述的具体实施方式
。本发明扩展到任何在本说明书中披露的 新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
权利要求
一种仪器模块通用接口的实现方法,其特征在于,实现方法步骤为步骤1利用驱动方法配置层中的驱动方法配置库的打开函数创建仪器模块对象实例;在步骤1中,测试终端会将仪器模块连接字符串传递给驱动方法配置库,驱动方法配置库再将连接字符传递给仪器模块管理层中的仪器模块驱动管理库,仪器模块驱动管理库按照一定的协议格式分离连接字符串并识别仪器模块类型,再根据具体类型加载仪器模块驱动层中的仪器模块驱动实例库,然后利用仪器模块驱动实例库中的打开函数创建仪器模块对象实例,同时将仪器模块对象实例句柄返回给上层;步骤2利用驱动方法配置库的创建方法函数创建驱动方法对象;步骤3利用驱动方法配置库的设置方法的参数值函数配置驱动方法的输入参数;步骤4利用驱动方法配置库的运行函数执行一个驱动方法;步骤5利用驱动方法配置库的获取输出参数值函数获取到从仪器模块返回的数据;步骤6利用驱动方法配置库的释放函数释放某个驱动方法对象内存资源;如果要执行多个驱动方法的话,重复步骤2,3,4,5,6。
2.根据权利要求1所述的仪器模块通用接口的实现方法,其特征在于,所述驱动方法 配置层中的驱动方法配置库采用软件工厂模式的设计方式,将测试终端所用到的所有方法 按照标准的方式进行封装,为上层提供统一的接口。
3.根据权利要求1所述的仪器模块通用接口的实现方法,其特征在于,所述仪器模块 管理层中的仪器模块驱动管理库采用面向对象的设计方式,根据仪器模块连接字符串自动 分析和管理仪器模块驱动实例库,动态创建仪器模块驱动对象和方法,支持多台仪器同时 使用。
4.根据权利要求1所述的仪器模块通用接口的实现方法,其特征在于,所述仪器模块 驱动层中的仪器模块驱动实例库采用面向对象的设计方式,支持创建多个仪器模块驱动对 象,为上层提供统一的接口。
5.根据权利要求1所述的仪器模块通用接口的实现方法,其特征在于,所述驱动方法 配置层中的驱动方法配置库主要为配置终端和测试终端提供驱动方法配置和执行的API 接口。
6.根据权利要求1所述的仪器模块通用接口的实现方法,其特征在于,所述仪器模块 管理层中的仪器模块驱动管理库为驱动方法配置库提供仪器模块通用的API接口,自动管 理仪器模块驱动实例库。
7.根据权利要求1所述的仪器模块通用接口的实现方法,其特征在于,所述仪器模块 驱动层中的仪器模块驱动实例库为仪器模块驱动管理库提供通用的API接口,并实现仪器 模块的驱动代码。
8.根据权利要求1或2或3或4或5或6或7所述的仪器模块通用接口的实现方法, 其特征在于,所述驱动方法配置库、仪器模块驱动管理库、仪器模块驱动实例库都是*. dll 文件。
9.根据权利要求1所述的仪器模块通用接口的实现方法,其特征在于,所述仪器模 块驱动层中的仪器模块驱动实例库通过VISA库的viOpen、viClose、viPrintf、viscanf、 viffrite, viRead函数来发送和接收SCPI指令,对外提供标准的仪器模块API接口函数。
全文摘要
本发明公开了一种仪器模块通用接口的实现方法,将驱动方法配置库位于驱动方法配置层中,驱动方法配置库主要为配置终端和测试终端提供驱动方法配置和执行的API接口;将仪器模块驱动管理库位于仪器模块管理层中,仪器模块驱动管理库为驱动方法配置库提供仪器模块通用的API接口,自动管理仪器模块驱动实例库;将仪器模块驱动实例库位于仪器模块驱动层中,为仪器模块驱动管理库提供通用的API接口,并实现仪器模块的驱动代码。本发明大大减少的自动测试系统的开发时间,提高生产效率。
文档编号G06F13/38GK101799764SQ20091031293
公开日2010年8月11日 申请日期2009年12月31日 优先权日2009年12月31日
发明者吴学锋, 强波, 杜春, 贺达 申请人:芯通科技(成都)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1