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