电子备件高频信号通用测试平台_北京软件开发_软件开发公司_北京软件公司-北京华盛恒辉软件开发公司---专注于软件开发定制服务
经典案例
  • 金融大数据解决方案
  • 汽车大数据解决方案
  • 政府大数据解决方案
  • 铁路大数据解决方案
  • 电力大数据解决方案
  • 军工大数据解决方案
  • 解放军总装备部
  • 中国航天科工集团
  • 航天科技集团

电子备件高频信号通用测试平台

发布于:2018-05-15 14:27来源:北京软件开发公司 作者:北京大数据公司 点击:
北京软件开发公司----电子备件高频信号通用测试平台

1整个结构设计

 
 图 1  原理结构图
 

2软件整体结构流程图

 
图2 软件整体流程图
 

3模块详细设计说明


3.1  与通用测试平台的交互

通用测试平台是一个多功能的虚拟环境测试软件平台,具备强大的TPS功能。二次封装的DLL文件将被通用测试平台调用,调用的过程如下:
  1. 打开通用测试平台
  2. 打开通用测试平台中的“IVI仪器管理”
  3. 将二次封装的DLL文件,加入到通用测试平台的模块路径中,这样便与通用测试平台对接起来。
 
 
 
图3 在通用测试平台的“IVI仪器管理”中加载二次封装的DLL文件
 
 
3.2  加载二次封装的驱动库


3.2.1硬件驱动程序的二次封装

作为上层应用和测试仪器驱动程序之间的适配器,根据各个检测功能,对厂商提供的驱动程序进行封装,包括:33250A(Agilent)、N5183A(Agilent)、5500A(FLUKE)、53148A(Agilent)、MSO7054B(Agilent)、N9020A-526(Agilent)、34410A(Agilent)七种仪器,每种仪器封装为一个DLL,向上层应用提供一个调用接口,方便上层应用统一调用,这些接口包括但不限于:加载、接口查询、各个检测功能接口,获得错误类型,卸载等接口。
仪器模块有FLUKE、53148A(Agilent)、MSO7054B(Agilent)、N9020A-526(Agilent)、34410A(Agilent)。
仪器驱动由任务提出方提供,每台仪器实现的功能如下表1所示:北京大数据公司

 
序号 仪器名称 功能 封装要求
1 33250A 输出波形 正弦波、方波、斜波、脉冲 要求对左侧所列功能可配置
频率范围 输出波形:1μHz~80MHz(正弦波、方波);500μ~50MHz(脉冲);1μHz~25MHz(任意波)
垂直精度:12bit
调制方式 调幅、调相、调频、FSK
2
 
N5183A,附件N5183A-532、N5183A-1EA、N5183A-UNU、N5183A-UNT 和N5183A-1E1 输入频率范围 100kHz~31.8GHz 要求左侧所列 功能可配置
频率分辨率 0.01Hz
输出功率 -90dBM~+12dBm
频率开关速度 ≤900μs
调制方式 AM、FM、φM、脉冲
3 5500A 直流电压输出 0~±1020V 要求对左侧所列功能可配置
直流电流输出 0~±11A
电阻输出 0~329.99MΩ
交流电压输出 1mV~1020V,10Hz~500kHz,正弦波
交流电流输出 29mA~11A,10Hz~10kHz,正弦波
电容输出 0.33nF~1.1mF
热电偶源和测量 -250℃~+2316℃
RTD源 -200℃~+630℃
4 53148A 通道数 1 频率测试,功率测试,频率稳定度,功率稳定度
频率范围 50MHz~26.5GHz
功率范围 -70dBm~+20dBm
精度 ±50mVDVM
5 MSO7054B 示波器通道 4 波形分析,要求能够测试频率,周期,峰值,最大值,最小值,上升沿持续时间、下降沿持续时间、占空比、
带宽 500MHz
采样率 4GSa/s
测试 频率,峰峰值,最大值,最小值
存储深度 8Mpts
垂直分辨率 8bit
6 N9020A-526,附件N9068A-2FP(负责相位噪声测试的软件组件) 频率范围 20Hz~26.5GHz 频谱仪,可测量相位噪声、噪声系数、噪声系数稳定度,相位噪声稳定度
绝对幅度精度 0.3dB
第三阶截距 +15dBm
显示的平均噪声电平 -154dBm/Hz
W-CDMAACLR动态范围 78dB
标记峰值搜索速度 5ms
测量/模式切换速度 75ms
分析带宽 25MHz
7 34410A 直流电压 100mV~1000V 可测试直流电压、直流电流、电阻测试、交流电压交流电流、二极管导通测试、频率测试、电容测试
直流电流 100
电阻测试 100Ω~1000MΩ
交流电压 100mV~750V
3Hz~300KHz
交流电流 100μA~3A
3Hz~10KHz
二极管导通测试  
频率测试 3Hz~300KHz
电容测试 1nF~10uF
 
表1  仪器驱动封装列表
 
以某数字IO仪器模块为例:该仪器模块有很多函数,但我们使用时将函数分成三个:初始化仪器、测试仪器、关闭仪器。对驱动程序二次封装,封装为若干主要接口函数,如:InitInstrument( )TestInstrument()CloseInstrument()、GetResultDataType( )、GetLastConfig()、GetDriverVersion( )等等。在初始化仪器时,我们将配置仪器的参数,如:通道选择(Channel)、IO输出方向(输入或输出)、状态(置高或置低)等,在测试函数中有返回的测量结果,该结果将在通用测试平台中显示出来
对硬件驱动程序的二次封装的详细过程如下:
需要先加载硬件本身自带的驱动动态库文件,加载过程如下:
一般的动态库有三个文件,分别为.h头文件、DLL库文件、Lib文件。
*.lib是索引文件,用来保存DLL库文件函数一些索引信息。
封装硬件原始驱动程序时,需要将这三个文件配置到软件开发环境中。将这三个文件加入的软件的开发环境中(这里使用VC6.0)。

 
流程图如下:
 
 
图4  加载硬件本身驱动程序的过程
 
详细过程步骤如下:

 
第一步,打开软件开发环境VC6.0,如下图:
 
 
图5  打开VC6.0 软件开发环境的Project菜单项
 
 
第二步,加入*。lib文件,如下图:
 
 
图7 在Project的Setting设置项的Link中加入*.lib文件
 
 
第三步,加载*.h头文件
 
 
图8  在程序里加入*。h文件和相关的头文件
 
 
第四步 实现各函数的功能
1、初始化仪器InitInstr函数的实现:
 
/**********************************************************************************/ //  模块功能:初始化仪器
//  参数说明:
//  int iInstrID,标识用于传入数据的仪器ID
//  char* cAddress,标识用于传入数据的仪器地址;指针为空,则使用上次地址.
//  bool  bSimulate,标识是否是仿真执行;仿真为真时,可不指定 仪器ID 和 仪器地址 。
//  返 回 值:BOOL,返回初始化结果;TRUE,初始化成功;FALSE,失败,错误信息通过
//  GetError()函数获取。
//  unsigned  long   hHandle 仪器句柄
//  备 注:IVI驱动使用 仪器ID(逻辑名称);普通驱动使用 仪器地址
****************************************************************************/
BOOL  InitInstr(int  iInstrID, char* cAddress, BOOL  bSimulate)
{
//调用Aglient公司的硬件本身的驱动程序接口
         If (VI_SUCCESS == Aglient_ N5183A_Init(“PXI6::5::INSTR”,  &g_hHandle ) )
{
       Return TRUE;
}
Else
{
       Return FALSE;
}
}
2、执行测试仪器的功能或性能的InstrExecute函数的实现:
 
Int  IntstExecture(unsigned long hHandle,  char *cParamList)
{
       //char *类型的配置数据转换字符串类型,以便于解析
       CString sParamlist = cParamList; 
 
       //获取仪器参数设置
CString param1 =  GetParamFromList(sParamlist, sKey1);
CString param1 =  GetParamFromList(sParamlist, sKey2);
……..
………
      
       //调用硬件本身的驱动程序接口,并将参数传入接口,开始真正的测试执行
       If  (Aglient_ N5183A_EXE(param1,  param1)  == SUCCESS)
       {
              //执行成功,则获取要测量的数据
              If  (Aglient_ N5183A_GetData ( &ResultData ))
              {
Return  ResultData;
}
Else
{
Return  0;
}
             
}
Else
{
       //执行失败,则获取错误号
       lastError  =  GetLastError();
}
Return  lastError;
}
 
其他函数的实现与上述类似。
所有的函数以表格列出:

序号 函数名称 函数参数 函数功能 返回值 备注
1 InitInstr   初始化仪器 BOOL  
2 InstrExecute   执行测试 int  
3 CloseInstr   关闭仪器 BOOL  
4 ResetInstr   复位仪器 BOOL  
5 GetLastError   获取最后一次发生的错误信息 BOOL  
6 GetResultDataType   获取结果数据类型 BOOL  
7 GetResultDataInt   返回指定测试结果的整形数值 BOOL  
8 GetResultDataDouble   返回指定测试结果的浮点数值 BOOL  
9 GetResultDataBool   返回指定测试结果的布尔数值 BOOL  
10          
11 GetResultDataChar   返回指定测试结果的字符数值 BOOL  
12 GetResultDataDoubleArraySize   返回指定测试结果的浮点数组的大小 BOOL  
13 GetResultDataDoubleArrayValue   返回指定测试结果的浮点数组的值 BOOL  
14 GetResultDataIntArraySize   返回指定测试结果的整型数组的大小 BOOL  
15 GetResultDataIntArrayValue   返回指定测试结果的整型数组的值 BOOL  
16 GetResultDataBoolArray_Size   返回指定测试结果的布尔数组的大小 BOOL  
17 GetResultDataBoolArrayValue   返回指定测试结果的布尔数组的值 BOOL  
18 GetResultDataCharArraySize   返回指定测试结果的字符数组的大小 BOOL  
19 GetResultDataCharArrayValue   返回指定测试结果的字符数组的值 BOOL  
 
表2  二次封装DLL的接口函数列表
 
3.3用户管理
3.3.1权限分级
第一级,超级管理员,拥有所有权限,可以删除、添加、用户及修改用户权限。也能管理测试流程,比如添加、删除、修改测试流程。
第二级,普通管理员,能管理测试流程,比如添加、删除、修改测试流程。
第三级,普通用户,只能执行测试流程。本软件不需要具备编写测试流程的功能,测试流程在通用测试平台中编写。
 
 
图8 用户管理流程图
 
图9 用户管理效果图
 
 
3.3.2权限分配过程
将软件界面(见图10)上配置的用户权限与权限结构体对应,如果选择了某项权限时,结构体中的成员变量值再被赋值为1。
当某一个用户执行某操作时,首先判断用户信息中的权限结构体的值,当值为TRUE 时表示用户有权限,可以执行操作,否则拒绝用户执行操作。
定义权限结构体
Typedef   Rights
{
BOOL  AddUUT;        //添加UUT
BOOL  ModifyUUT;     //修改UUT
BOOL  TestExecute;      //测试执行
BOOL  AddUser;        //添加用户
BOOL  DeleteUser;      //删除用户
BOOL  DeleteUUT;      //删除UUT
} Rights;
 
 
图 10  读取权限的流程图
 
软件界面配置与权限结构的对应过程:
将界面上的配置信息保存到数据,用户登录软件时,用户信息(主要是权限信息)从数据库中读出来。这时,我们定义一个权限结构体,把权限信息的值赋给权限结构体。
Rights   admininstrator;    //定义一个有系统管理员权限的结构体变量
admininstrator. AddUUT     =  TRUE;   //分配添加UUT的权限
admininstrator. ModifyUUT   =  TRUE;   //分配修改UUT的权限
admininstrator. TestExecute   =  TRUE;   //分配测试执行的权限
admininstrator. AddUser      =  TRUE;   //分配添加用户的权限
admininstrator. DeleteUser    =  TRUE;   //分配删除用户的权限
admininstrator. DeleteUUT    =  TRUE;   //分配删除UUT的权限

4 功能测试模块

4.1权限分配过程
       功能测试模块用于运行一个包括了多个被测对象功能的测试流程集。测试流程集是由任务提出方通过通用测试平台和完成,由任务承担方通过编写功能测试模块来负责管理和运行北京大数据公司
       功能测试模块的流程管理主要包括以下内容:

  • 流程的名称;
  • 流程的路径;
  • 流程的功能
对以上这些内容要求可显示(采用列表方式)并可更改。同时要求对流程的数量可以增加、删减,并可调整流程之间的顺序。
功能测试模块在运行测试流程时,要求调用任务提出方提供的通用测试平台的ActiveX组件,将相关的功能模块嵌入本软件系统中。该组件可以根据测试任务进行操作提醒、过程显示等,组件的具体实现方式由任务提出方负责指导承担方完成。
图 13 功能控制模块
用户权限控制管理。
软件模块控制管理。
软件模块功能调用包括:功能测试的选择、性能测试的选择、测试数据库调用选择、质量评估的选择和接口函数库的管理。

6 测试数据库模块设计说明

6.1.1模块描述

测试数据库的管理由任务提出方负责完成,本软件的承担方要求能够调用提出方提供的可执行文件。

图 14 数据库类之间的关系图

7 质量评估模块设计说明

7。1。1模块描述

质量评估模块分为专家只是生产和故障分析两个子模块,这两个部分均由任务提出方负责完成,并提供可执行文件。要求本软件承担方在设计时,可选择调用不同的子模块。

7.2.1功能

接口函数库负责将点子备件高频信号设备中各种仪器设备的驱动接口二次封装成统一格式的函数调用接口,供功能测试和性能测试模块的调用。
  功能测试和性能测试包括了典型功能和性能蚕食的测试流程,选择运行响应的测试流程,并通过盗用接口函数库控制响应仪器设备完成各项预定测试,同时将测试数据和结果传送给测试数据库进行管理。
  测试数据库对功能测试和性能测试获取的测试数据进行管理,主要包括被测对象功能(性能)测试所需的供电激励、连接路径、检测参数类型、测量结果标准值、检测门限及结论等。
   质量评估软件通过调用测试数据库中响应对象的全部测试信息,采用相应的数据分析方法,评估被测对象的状态。
7.2.2   测试数据库
       测试数据库的管理由任务提出方负责完成,本软件的承担方要求能够调用提出方提供的可执行文件。
7.2.3  质量评估模块
       质量评估模块分为专家只是生产和故障分析两个子模块,这两个部分均由任务提出方负责完成,并提供可执行文件。要求本软件承担方在设计时,可选择调用不同的子模块。
7.2.4  接口函数库
       接口函数库将使用任务提出方提供的“IVI一起驱动管理”模块。要求任务承担方能够调用并执行该模块。


联系方式:北京软件开发公司
电话:010-52895342,400-886-7161
邮件:service@hivekion。com
网址:http://www。hivekion。com
【北京华盛恒辉科技广西快3 ——(hivekion)是一家软件定制开发公司,在软件产品研发与服务,华盛恒辉坚持稳健经营、持续创新、开放合作,在安全生产、大数据处理等领域构筑了端到端的解决方案优势,为企业客户提供有竞争力的IT解决方案、 产品和服务。
 
------分隔线----------------------------
------分隔线----------------------------
QQ客服热线
山东群英会 湖南幸运赛车 黑龙江快乐十分 广东快乐十分 湖北快3 吉林快3 江西快3 浙江11选5 江西快3 江西11选5