文/鄧細鳳 宋帆
ATS在直升機機載電子設備的保障維修中發(fā)揮著重要作用,測試儀器的可互換性作為衡量ATS的重要指標之一,是ATS設計時應考慮的重點問題。伴隨著儀器互換技術的發(fā)展,先后出現(xiàn)了IEEE-488、SCPI(Standard Command for Programming Instrument)、VISA(Virtual Instrument Software Architecture)、IVI(Interchangeable Virtual Instrument)等儀器驅動模型標準和規(guī)范。針對儀器驅動開發(fā)的研究很多,張波等人針對ATS中儀器的可互換性提出了構建面向信號儀器驅動模型的方法,驗證了面向信號的儀器驅動能真正實現(xiàn)儀器的可互換。曲賓等人提出了ATML描述儀器通道資源方法研究,驗證了XML在資源描述及資源配置過程中的通用性和靈活性。本文結合某型機機載電子設備的地面綜合測試診斷設備項目,基于面向信號的ATS軟件平臺,設計并實現(xiàn)了基于ATML的儀器驅動,解決了ATS中的儀器可互換性問題。
本文的面向信號ATS軟件基于自動測試標記語言(Automatic Test Markup Language,ATML)和信號測試定義規(guī)范(Signal & Test Definition,STD),采用層次化體系結構,自上至下分為用戶交互層、數(shù)據交互層、運行期解析執(zhí)行層和儀器驅動層,軟件架構圖如圖1所示。用戶交互層提供交互式的開發(fā)工具,用戶利用開發(fā)工具完成測試儀器、測試平臺、測試配置、UUT、適配器、測試線纜、測試策略等的建模,動態(tài)轉換成相應的XML文件;數(shù)據交互層以XML文件接口形式完成測試資源信息的交互,運行期解析執(zhí)行層解析XML文件包含的測試項目及測試動作,完成物理路徑的匹配及虛擬儀器資源的映射,儀器驅動層通過調用面向信號的儀器驅動來實現(xiàn)整個測試任務。為了實現(xiàn)儀器的互換,測試運行期引擎首先調用面向信號的儀器驅動,在面向信號儀器驅動內部通過測試儀器描述文件實現(xiàn)信號能力與資源的映射。采用該體系結構,若需要更換儀器,只需修改測試儀器描述文件,TPS無需任何改動,確保了ATS的通用性。
在測試儀器能力描述中,ATML標準不直接利用儀器的物理端口,而是定義信號能力和邏輯端口,通過邏輯端口實現(xiàn)信號能力到資源的映射。本文的儀器驅動設計以ATML標準發(fā)布的儀器描述模式(InstrumentDescription.xsd)、儀器實例模式(InstrumentInstance.xsd)為原型,根據實際測試需求確定儀器所需的元素、屬性,儀器模型的樹形結構圖如圖2所示,分為基本信息、信號能力、資源、接口信息、連線五部分?;拘畔▋x器名稱、版本號、簡要描述、儀器編號、型號和廠商名稱,其中儀器編號、型號和廠商名稱是儀器的識別信息。信號能力對儀器產生/測量信號的能力進行描述,包括能力名稱、能力描述、邏輯端口信息、信號信息。資源是儀器內部的功能模塊,包括資源名稱和邏輯端口信息。接口信息包括邏輯端口和物理連接器,以及邏輯端口針腳與物理連接器針腳的對應關系。連線是通過信號能力的邏輯端口與資源的邏輯端口的連接、資源的邏輯端口與接口信息的邏輯端口的連接,實現(xiàn)信號能力到資源的映射。
基于ATML的儀器驅動開發(fā)分為測試儀器描述和接口函數(shù)實現(xiàn)兩大部分。本文以NI PXIe-4080數(shù)字萬用表為例闡述基于ATML的儀器驅動的實現(xiàn)過程。
分析廠商提供的資料獲取儀器模型所需的基本信息、接口信息、信號能力、資源、連線,萬用表的模型信息如下:
(1)儀器名稱:6位半萬用表;
(2)儀器型號:PXIe-4080;
(3)版本號:
(4)廠商:NI。
萬用表的接口信息包括邏輯端口、物理連接器及其映射關系,如圖3所示。
萬用表的基本信號能力包括直流電壓測量、交流電壓測量、直流電流測量、交流電流測量、頻率測量、二線電阻測量、四線電阻測量、二極管正向電壓測量、波形點采集,如圖4所示。
圖1:ATS軟件架構圖
資源名稱:DMM4080_MEASURE;邏輯端口與圖2中的端口一致。
按照圖3的端口信息完成信號能力的邏輯端口與資源的邏輯端口的連線;按照圖2完成資源的邏輯端口與物理連接器的連線。
利用ATS軟件平臺的驅動開發(fā)工具,儀器模型中所需的元素、屬性可通過人機界面輸入相關信息,動態(tài)生成ATML測試儀器模型文檔TI.xml。
ATS軟件平臺利用測試儀器TI.XML自動生成儀器驅動程序框架,包括SOD_PXIe-4080.c( 源 文 件)、SOD_PXIe-4080.cws、SOD_PXIe-4080.h( 頭 文 件)、SOD_PXIe-4080.prj四個文件,將萬用表廠家提供的IVI底層驅動文件nidmm.fp、nidmm.h、nidmm_32.dll、nidmm_32.lib添加到儀器驅動工程中,供源文件調用。
源文件中的接口函數(shù)主要分為儀器公共接口和信號接口函數(shù)兩大類。儀器公共接口主要功能是實現(xiàn)儀器的初始化、自檢、復位和關閉,該接口方法包括SOD_Init、SOD_SelfTest、SOD_Reset、SOD_Close,其方法、參數(shù)定義及功能實現(xiàn)如下:
Int SOD_Init(char* TIAddress, char*optionString,int* handle, struDriverReturnVal*drivReturnVal);//DMM初始化,獲取儀器句柄,如果初始化失敗,則返回“初始化失敗”提示信息
Int SOD_SelfTest(int handle,struDriverReturnVal* drivReturnVal);//DMM自檢,如果自檢失敗,則返回“自檢失敗”提示信息
圖2:儀器模型樹形結構圖
圖3:萬用表接口信息
圖4:萬用表信號能力
Int SOD_Reset(int handle,struDriverReturnVal* drivReturnVal);// DMM復位,如果復位失敗,則返回“復位失敗”提示信息
Int SOD_Close(int handle,struDriverReturnVal* drivReturnVal);// DMM關閉,如果關閉失敗,則返回“關閉失敗”提示信息
信號接口函數(shù)通過獲取信號能力名稱,完成該信號的建立、連接、讀取、斷開、復位等操作。該接口方法包括Setup、Connect、Read、Disconnect、Reset。以直流電壓測量信號為例,其方法、參數(shù)定義及功能實現(xiàn)如下:
int SOD_Measure_DC_VOLTS_Setup(int handle,char* chName,char*signalXml,struDriverReturnVal*drivReturnVal);// 直流電壓信號建立,如果建立失敗,則返回“直流電壓信號建立”提示信息
int SOD_Measure_DC_VOLTS_Connect(int handle,char* chName,char*signalXml,struDriverReturnVal*drivReturnVal);// 直流電壓信號連接,如果連接失敗,則返回“直流電壓信號連接失敗”提示信息
int SOD_Measure_DC_VOLTS_Read(int handle,char* chName,char*signalXml,struDriverReturnVal*drivReturnVal);// 直流電壓信號讀取,如果讀取失敗,則返回“直流電壓信號讀取失敗”提示信息
int SOD_Measure_DC_VOLTS_Disconnect(int handle,char* chName,char*signalXml,struDriverReturnVal*drivReturnVal);// 直流電壓信號斷開,如果斷開失敗,則返回“直流電壓信號斷開失敗”提示信息
int SOD_Measure_DC_VOLTS_Reset(int handle,char* chName,char*signalXml,struDriverReturnVal*drivReturnVal);// 直流電壓信號復位,如果復位失敗,則返回“直流電壓信號復位失敗”提示信息
基于ATML的測試儀器驅動使得ATS測試儀器互換簡單可行,當需要更換測試儀器時,只需更改相關儀器的測試儀器描述文件(TI.xml),該方法已應用于某型機機載電子設備的地面綜合測試診斷設備項目中。結果表明,該驅動設計方法有效解決了ATS中的儀器可互換性問題。
參考文獻
[1]劉金寧,孟晨,方新,陳德祥.基于信號接口的IVI驅動器設計標準—IVISignal Interface及其應用[J].測控技術,2004,23(04):68-70.
[2]張波,劉洪文,劉金寧.面向信號的ATS儀器驅動器研究[J].測控技術,2011,30(02):1-3.
[3]曲賓,李曉白,路輝.ATML描述儀器通道資源方法研究[J].計算機與現(xiàn)代化,2008,9:14-17.
[4]張文,楊京禮.一種面向信號的自動測試系統(tǒng)資源分配方法設計[J].現(xiàn)代電子技術,2013,36(19):116-119.
[5]劉昕.面向信號的測試資源映射技術研究[D].哈爾濱工業(yè)大學,2011.