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