北京軟件開(kāi)發(fā)公司----電子備件高頻信號(hào)通用測(cè)試平臺(tái)
1整個(gè)結(jié)構(gòu)設(shè)計(jì)
圖 1 原理結(jié)構(gòu)圖
2軟件整體結(jié)構(gòu)流程圖
圖2 軟件整體流程圖
3模塊詳細(xì)設(shè)計(jì)說(shuō)明
3.1 與通用測(cè)試平臺(tái)的交互
通用測(cè)試平臺(tái)是一個(gè)多功能的虛擬環(huán)境測(cè)試軟件平臺(tái),具備強(qiáng)大的TPS功能。二次封裝的DLL文件將被通用測(cè)試平臺(tái)調(diào)用,調(diào)用的過(guò)程如下:
- 打開(kāi)通用測(cè)試平臺(tái)
- 打開(kāi)通用測(cè)試平臺(tái)中的“IVI儀器管理”
- 將二次封裝的DLL文件,加入到通用測(cè)試平臺(tái)的模塊路徑中,這樣便與通用測(cè)試平臺(tái)對(duì)接起來(lái)。
圖3 在通用測(cè)試平臺(tái)的“IVI儀器管理”中加載二次封裝的DLL文件
3.2 加載二次封裝的驅(qū)動(dòng)庫(kù)
3.2.1硬件驅(qū)動(dòng)程序的二次封裝
作為上層應(yīng)用和測(cè)試儀器驅(qū)動(dòng)程序之間的適配器,根據(jù)各個(gè)檢測(cè)功能,對(duì)廠商提供的驅(qū)動(dòng)程序進(jìn)行封裝,包括:33250A(Agilent)、N5183A(Agilent)、5500A(FLUKE)、53148A(Agilent)、MSO7054B(Agilent)、N9020A-526(Agilent)、34410A(Agilent)七種儀器,每種儀器封裝為一個(gè)DLL,向上層應(yīng)用提供一個(gè)調(diào)用接口,方便上層應(yīng)用統(tǒng)一調(diào)用,這些接口包括但不限于:加載、接口查詢(xún)、各個(gè)檢測(cè)功能接口,獲得錯(cuò)誤類(lèi)型,卸載等接口。
儀器模塊有FLUKE、53148A(Agilent)、MSO7054B(Agilent)、N9020A-526(Agilent)、34410A(Agilent)。
儀器驅(qū)動(dòng)由任務(wù)提出方提供,每臺(tái)儀器實(shí)現(xiàn)的功能如下表1所示:北京大數(shù)據(jù)公司
序號(hào) | 儀器名稱(chēng) | 功能 | 封裝要求 | |
1 | 33250A | 輸出波形 | 正弦波、方波、斜波、脈沖 | 要求對(duì)左側(cè)所列功能可配置 |
頻率范圍 |
輸出波形:1μHz~80MHz(正弦波、方波);500μ~50MHz(脈沖);1μHz~25MHz(任意波) 垂直精度:12bit |
|||
調(diào)制方式 | 調(diào)幅、調(diào)相、調(diào)頻、FSK | |||
2 |
N5183A,附件N5183A-532、N5183A-1EA、N5183A-UNU、N5183A-UNT 和N5183A-1E1 | 輸入頻率范圍 | 100kHz~31.8GHz | 要求左側(cè)所列 功能可配置 |
頻率分辨率 | 0.01Hz | |||
輸出功率 | -90dBM~+12dBm | |||
頻率開(kāi)關(guān)速度 | ≤900μs | |||
調(diào)制方式 | AM、FM、φM、脈沖 | |||
3 | 5500A | 直流電壓輸出 | 0~±1020V | 要求對(duì)左側(cè)所列功能可配置 |
直流電流輸出 | 0~±11A | |||
電阻輸出 | 0~329.99MΩ | |||
交流電壓輸出 | 1mV~1020V,10Hz~500kHz,正弦波 | |||
交流電流輸出 | 29mA~11A,10Hz~10kHz,正弦波 | |||
電容輸出 | 0.33nF~1.1mF | |||
熱電偶源和測(cè)量 | -250℃~+2316℃ | |||
RTD源 | -200℃~+630℃ | |||
4 | 53148A | 通道數(shù) | 1 | 頻率測(cè)試,功率測(cè)試,頻率穩(wěn)定度,功率穩(wěn)定度 |
頻率范圍 | 50MHz~26.5GHz | |||
功率范圍 | -70dBm~+20dBm | |||
精度 | ±50mVDVM | |||
5 | MSO7054B | 示波器通道 | 4 | 波形分析,要求能夠測(cè)試頻率,周期,峰值,最大值,最小值,上升沿持續(xù)時(shí)間、下降沿持續(xù)時(shí)間、占空比、 |
帶寬 | 500MHz | |||
采樣率 | 4GSa/s | |||
測(cè)試 | 頻率,峰峰值,最大值,最小值 | |||
存儲(chǔ)深度 | 8Mpts | |||
垂直分辨率 | 8bit | |||
6 | N9020A-526,附件N9068A-2FP(負(fù)責(zé)相位噪聲測(cè)試的軟件組件) | 頻率范圍 | 20Hz~26.5GHz | 頻譜儀,可測(cè)量相位噪聲、噪聲系數(shù)、噪聲系數(shù)穩(wěn)定度,相位噪聲穩(wěn)定度 |
絕對(duì)幅度精度 | 0.3dB | |||
第三階截距 | +15dBm | |||
顯示的平均噪聲電平 | -154dBm/Hz | |||
W-CDMAACLR動(dòng)態(tài)范圍 | 78dB | |||
標(biāo)記峰值搜索速度 | 5ms | |||
測(cè)量/模式切換速度 | 75ms | |||
分析帶寬 | 25MHz | |||
7 | 34410A | 直流電壓 | 100mV~1000V | 可測(cè)試直流電壓、直流電流、電阻測(cè)試、交流電壓交流電流、二極管導(dǎo)通測(cè)試、頻率測(cè)試、電容測(cè)試 |
直流電流 | 100 | |||
電阻測(cè)試 | 100Ω~1000MΩ | |||
交流電壓 |
100mV~750V 3Hz~300KHz |
|||
交流電流 |
100μA~3A 3Hz~10KHz |
|||
二極管導(dǎo)通測(cè)試 | ||||
頻率測(cè)試 | 3Hz~300KHz | |||
電容測(cè)試 | 1nF~10uF |
表1 儀器驅(qū)動(dòng)封裝列表
以某數(shù)字IO儀器模塊為例:該儀器模塊有很多函數(shù),但我們使用時(shí)將函數(shù)分成三個(gè):初始化儀器、測(cè)試儀器、關(guān)閉儀器。對(duì)驅(qū)動(dòng)程序二次封裝,封裝為若干主要接口函數(shù),如:InitInstrument( )、TestInstrument()、CloseInstrument()、GetResultDataType( )、GetLastConfig()、GetDriverVersion( )等等。在初始化儀器時(shí),我們將配置儀器的參數(shù),如:通道選擇(Channel)、IO輸出方向(輸入或輸出)、狀態(tài)(置高或置低)等,在測(cè)試函數(shù)中有返回的測(cè)量結(jié)果,該結(jié)果將在通用測(cè)試平臺(tái)中顯示出來(lái)。
對(duì)硬件驅(qū)動(dòng)程序的二次封裝的詳細(xì)過(guò)程如下:
需要先加載硬件本身自帶的驅(qū)動(dòng)動(dòng)態(tài)庫(kù)文件,加載過(guò)程如下:
一般的動(dòng)態(tài)庫(kù)有三個(gè)文件,分別為.h頭文件、DLL庫(kù)文件、Lib文件。
*.lib是索引文件,用來(lái)保存DLL庫(kù)文件函數(shù)一些索引信息。
封裝硬件原始驅(qū)動(dòng)程序時(shí),需要將這三個(gè)文件配置到軟件開(kāi)發(fā)環(huán)境中。將這三個(gè)文件加入的軟件的開(kāi)發(fā)環(huán)境中(這里使用VC6.0)。
流程圖如下:
圖4 加載硬件本身驅(qū)動(dòng)程序的過(guò)程
詳細(xì)過(guò)程步驟如下:
第一步,打開(kāi)軟件開(kāi)發(fā)環(huán)境VC6.0,如下圖:
圖5 打開(kāi)VC6.0 軟件開(kāi)發(fā)環(huán)境的Project菜單項(xiàng)
第二步,加入*.lib文件,如下圖:
圖7 在Project的Setting設(shè)置項(xiàng)的Link中加入*.lib文件
第三步,加載*.h頭文件
圖8 在程序里加入*.h文件和相關(guān)的頭文件
第四步 實(shí)現(xiàn)各函數(shù)的功能
1、初始化儀器InitInstr函數(shù)的實(shí)現(xiàn):
/**********************************************************************************/ // 模塊功能:初始化儀器
// 參數(shù)說(shuō)明:
// int iInstrID,標(biāo)識(shí)用于傳入數(shù)據(jù)的儀器ID
// char* cAddress,標(biāo)識(shí)用于傳入數(shù)據(jù)的儀器地址;指針為空,則使用上次地址.
// bool bSimulate,標(biāo)識(shí)是否是仿真執(zhí)行;仿真為真時(shí),可不指定 儀器ID 和 儀器地址 。
// 返 回 值:BOOL,返回初始化結(jié)果;TRUE,初始化成功;FALSE,失敗,錯(cuò)誤信息通過(guò)
// GetError()函數(shù)獲取。
// unsigned long hHandle 儀器句柄
// 備 注:IVI驅(qū)動(dòng)使用 儀器ID(邏輯名稱(chēng));普通驅(qū)動(dòng)使用 儀器地址
****************************************************************************/
BOOL InitInstr(int iInstrID, char* cAddress, BOOL bSimulate)
{
//調(diào)用Aglient公司的硬件本身的驅(qū)動(dòng)程序接口
If (VI_SUCCESS == Aglient_ N5183A_Init(“PXI6::5::INSTR”, &g_hHandle ) )
{
Return TRUE;
}
Else
{
Return FALSE;
}
}
2、執(zhí)行測(cè)試儀器的功能或性能的InstrExecute函數(shù)的實(shí)現(xiàn):
Int IntstExecture(unsigned long hHandle, char *cParamList)
{
//char *類(lèi)型的配置數(shù)據(jù)轉(zhuǎn)換字符串類(lèi)型,以便于解析
CString sParamlist = cParamList;
//獲取儀器參數(shù)設(shè)置
CString param1 = GetParamFromList(sParamlist, sKey1);
CString param1 = GetParamFromList(sParamlist, sKey2);
……..
………
//調(diào)用硬件本身的驅(qū)動(dòng)程序接口,并將參數(shù)傳入接口,開(kāi)始真正的測(cè)試執(zhí)行
If (Aglient_ N5183A_EXE(param1, param1) == SUCCESS)
{
//執(zhí)行成功,則獲取要測(cè)量的數(shù)據(jù)
If (Aglient_ N5183A_GetData ( &ResultData ))
{
Return ResultData;
}
Else
{
Return 0;
}
}
Else
{
//執(zhí)行失敗,則獲取錯(cuò)誤號(hào)
lastError = GetLastError();
}
Return lastError;
}
其他函數(shù)的實(shí)現(xiàn)與上述類(lèi)似。
所有的函數(shù)以表格列出:
序號(hào) | 函數(shù)名稱(chēng) | 函數(shù)參數(shù) | 函數(shù)功能 | 返回值 | 備注 |
1 | InitInstr | 初始化儀器 | BOOL | ||
2 | InstrExecute | 執(zhí)行測(cè)試 | int | ||
3 | CloseInstr | 關(guān)閉儀器 | BOOL | ||
4 | ResetInstr | 復(fù)位儀器 | BOOL | ||
5 | GetLastError | 獲取最后一次發(fā)生的錯(cuò)誤信息 | BOOL | ||
6 | GetResultDataType | 獲取結(jié)果數(shù)據(jù)類(lèi)型 | BOOL | ||
7 | GetResultDataInt | 返回指定測(cè)試結(jié)果的整形數(shù)值 | BOOL | ||
8 | GetResultDataDouble | 返回指定測(cè)試結(jié)果的浮點(diǎn)數(shù)值 | BOOL | ||
9 | GetResultDataBool | 返回指定測(cè)試結(jié)果的布爾數(shù)值 | BOOL | ||
10 | |||||
11 | GetResultDataChar | 返回指定測(cè)試結(jié)果的字符數(shù)值 | BOOL | ||
12 | GetResultDataDoubleArraySize | 返回指定測(cè)試結(jié)果的浮點(diǎn)數(shù)組的大小 | BOOL | ||
13 | GetResultDataDoubleArrayValue | 返回指定測(cè)試結(jié)果的浮點(diǎn)數(shù)組的值 | BOOL | ||
14 | GetResultDataIntArraySize | 返回指定測(cè)試結(jié)果的整型數(shù)組的大小 | BOOL | ||
15 | GetResultDataIntArrayValue | 返回指定測(cè)試結(jié)果的整型數(shù)組的值 | BOOL | ||
16 | GetResultDataBoolArray_Size | 返回指定測(cè)試結(jié)果的布爾數(shù)組的大小 | BOOL | ||
17 | GetResultDataBoolArrayValue | 返回指定測(cè)試結(jié)果的布爾數(shù)組的值 | BOOL | ||
18 | GetResultDataCharArraySize | 返回指定測(cè)試結(jié)果的字符數(shù)組的大小 | BOOL | ||
19 | GetResultDataCharArrayValue | 返回指定測(cè)試結(jié)果的字符數(shù)組的值 | BOOL |
表2 二次封裝DLL的接口函數(shù)列表
3.3用戶(hù)管理
3.3.1權(quán)限分級(jí)
第一級(jí),超級(jí)管理員,擁有所有權(quán)限,可以刪除、添加、用戶(hù)及修改用戶(hù)權(quán)限。也能管理測(cè)試流程,比如添加、刪除、修改測(cè)試流程。
第二級(jí),普通管理員,能管理測(cè)試流程,比如添加、刪除、修改測(cè)試流程。
第三級(jí),普通用戶(hù),只能執(zhí)行測(cè)試流程。本軟件不需要具備編寫(xiě)測(cè)試流程的功能,測(cè)試流程在通用測(cè)試平臺(tái)中編寫(xiě)。
圖8 用戶(hù)管理流程圖
圖9 用戶(hù)管理效果圖
3.3.2權(quán)限分配過(guò)程
將軟件界面(見(jiàn)圖10)上配置的用戶(hù)權(quán)限與權(quán)限結(jié)構(gòu)體對(duì)應(yīng),如果選擇了某項(xiàng)權(quán)限時(shí),結(jié)構(gòu)體中的成員變量值再被賦值為1。
當(dāng)某一個(gè)用戶(hù)執(zhí)行某操作時(shí),首先判斷用戶(hù)信息中的權(quán)限結(jié)構(gòu)體的值,當(dāng)值為T(mén)RUE 時(shí)表示用戶(hù)有權(quán)限,可以執(zhí)行操作,否則拒絕用戶(hù)執(zhí)行操作。
定義權(quán)限結(jié)構(gòu)體
Typedef Rights
{
BOOL AddUUT; //添加UUT
BOOL ModifyUUT; //修改UUT
BOOL TestExecute; //測(cè)試執(zhí)行
BOOL AddUser; //添加用戶(hù)
BOOL DeleteUser; //刪除用戶(hù)
BOOL DeleteUUT; //刪除UUT
} Rights;
圖 10 讀取權(quán)限的流程圖
軟件界面配置與權(quán)限結(jié)構(gòu)的對(duì)應(yīng)過(guò)程:
將界面上的配置信息保存到數(shù)據(jù),用戶(hù)登錄軟件時(shí),用戶(hù)信息(主要是權(quán)限信息)從數(shù)據(jù)庫(kù)中讀出來(lái)。這時(shí),我們定義一個(gè)權(quán)限結(jié)構(gòu)體,把權(quán)限信息的值賦給權(quán)限結(jié)構(gòu)體。
Rights admininstrator; //定義一個(gè)有系統(tǒng)管理員權(quán)限的結(jié)構(gòu)體變量
admininstrator. AddUUT = TRUE; //分配添加UUT的權(quán)限
admininstrator. ModifyUUT = TRUE; //分配修改UUT的權(quán)限
admininstrator. TestExecute = TRUE; //分配測(cè)試執(zhí)行的權(quán)限
admininstrator. AddUser = TRUE; //分配添加用戶(hù)的權(quán)限
admininstrator. DeleteUser = TRUE; //分配刪除用戶(hù)的權(quán)限
admininstrator. DeleteUUT = TRUE; //分配刪除UUT的權(quán)限
4 功能測(cè)試模塊
4.1權(quán)限分配過(guò)程功能測(cè)試模塊用于運(yùn)行一個(gè)包括了多個(gè)被測(cè)對(duì)象功能的測(cè)試流程集。測(cè)試流程集是由任務(wù)提出方通過(guò)通用測(cè)試平臺(tái)和完成,由任務(wù)承擔(dān)方通過(guò)編寫(xiě)功能測(cè)試模塊來(lái)負(fù)責(zé)管理和運(yùn)行。北京大數(shù)據(jù)公司。
功能測(cè)試模塊的流程管理主要包括以下內(nèi)容:
- 流程的名稱(chēng);
- 流程的路徑;
- 流程的功能
圖 13 功能控制模塊
用戶(hù)權(quán)限控制管理。軟件模塊控制管理。
軟件模塊功能調(diào)用包括:功能測(cè)試的選擇、性能測(cè)試的選擇、測(cè)試數(shù)據(jù)庫(kù)調(diào)用選擇、質(zhì)量評(píng)估的選擇和接口函數(shù)庫(kù)的管理。
6 測(cè)試數(shù)據(jù)庫(kù)模塊設(shè)計(jì)說(shuō)明
6.1.1模塊描述
測(cè)試數(shù)據(jù)庫(kù)的管理由任務(wù)提出方負(fù)責(zé)完成,本軟件的承擔(dān)方要求能夠調(diào)用提出方提供的可執(zhí)行文件。
圖 14 數(shù)據(jù)庫(kù)類(lèi)之間的關(guān)系圖
7 質(zhì)量評(píng)估模塊設(shè)計(jì)說(shuō)明
7.1.1模塊描述
質(zhì)量評(píng)估模塊分為專(zhuān)家只是生產(chǎn)和故障分析兩個(gè)子模塊,這兩個(gè)部分均由任務(wù)提出方負(fù)責(zé)完成,并提供可執(zhí)行文件。要求本軟件承擔(dān)方在設(shè)計(jì)時(shí),可選擇調(diào)用不同的子模塊。7.2.1功能
接口函數(shù)庫(kù)負(fù)責(zé)將點(diǎn)子備件高頻信號(hào)設(shè)備中各種儀器設(shè)備的驅(qū)動(dòng)接口二次封裝成統(tǒng)一格式的函數(shù)調(diào)用接口,供功能測(cè)試和性能測(cè)試模塊的調(diào)用。功能測(cè)試和性能測(cè)試包括了典型功能和性能蠶食的測(cè)試流程,選擇運(yùn)行響應(yīng)的測(cè)試流程,并通過(guò)盜用接口函數(shù)庫(kù)控制響應(yīng)儀器設(shè)備完成各項(xiàng)預(yù)定測(cè)試,同時(shí)將測(cè)試數(shù)據(jù)和結(jié)果傳送給測(cè)試數(shù)據(jù)庫(kù)進(jìn)行管理。
測(cè)試數(shù)據(jù)庫(kù)對(duì)功能測(cè)試和性能測(cè)試獲取的測(cè)試數(shù)據(jù)進(jìn)行管理,主要包括被測(cè)對(duì)象功能(性能)測(cè)試所需的供電激勵(lì)、連接路徑、檢測(cè)參數(shù)類(lèi)型、測(cè)量結(jié)果標(biāo)準(zhǔn)值、檢測(cè)門(mén)限及結(jié)論等。
質(zhì)量評(píng)估軟件通過(guò)調(diào)用測(cè)試數(shù)據(jù)庫(kù)中響應(yīng)對(duì)象的全部測(cè)試信息,采用相應(yīng)的數(shù)據(jù)分析方法,評(píng)估被測(cè)對(duì)象的狀態(tài)。
7.2.2 測(cè)試數(shù)據(jù)庫(kù)
測(cè)試數(shù)據(jù)庫(kù)的管理由任務(wù)提出方負(fù)責(zé)完成,本軟件的承擔(dān)方要求能夠調(diào)用提出方提供的可執(zhí)行文件。
7.2.3 質(zhì)量評(píng)估模塊
質(zhì)量評(píng)估模塊分為專(zhuān)家只是生產(chǎn)和故障分析兩個(gè)子模塊,這兩個(gè)部分均由任務(wù)提出方負(fù)責(zé)完成,并提供可執(zhí)行文件。要求本軟件承擔(dān)方在設(shè)計(jì)時(shí),可選擇調(diào)用不同的子模塊。
7.2.4 接口函數(shù)庫(kù)
接口函數(shù)庫(kù)將使用任務(wù)提出方提供的“IVI一起驅(qū)動(dòng)管理”模塊。要求任務(wù)承擔(dān)方能夠調(diào)用并執(zhí)行該模塊。
聯(lián)系方式:北京軟件開(kāi)發(fā)公司
電話:010-52895342,400-886-7161
郵件:service@hivekion.com
網(wǎng)址:http://www.pj008.cc
電話:010-52895342,400-886-7161
郵件:service@hivekion.com
網(wǎng)址:http://www.pj008.cc
【北京華盛恒輝科技有限公司 ——(hivekion)是一家軟件定制開(kāi)發(fā)公司,在軟件產(chǎn)品研發(fā)與服務(wù),華盛恒輝堅(jiān)持穩(wěn)健經(jīng)營(yíng)、持續(xù)創(chuàng)新、開(kāi)放合作,在安全生產(chǎn)、大數(shù)據(jù)處理等領(lǐng)域構(gòu)筑了端到端的解決方案優(yōu)勢(shì),為企業(yè)客戶(hù)提供有競(jìng)爭(zhēng)力的IT解決方案、 產(chǎn)品和服務(wù)。】