一種基于信號的儀器驅(qū)動實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于測試測量(Test and Measurement, T&M)領(lǐng)域,具體來說是一種構(gòu)建自動測試系統(tǒng)(Automatic Test System, ATS)的儀器驅(qū)動程序的實現(xiàn)方法。
【背景技術(shù)】
[0002]為了避免手動操作的低效,ATS需要對測試儀器進行程序控制,這就需要儀器驅(qū)動程序作為系統(tǒng)軟件與具體儀器之間的中介,執(zhí)行控制命令、傳遞狀態(tài)參數(shù)并返回結(jié)果數(shù)據(jù)。
[0003]隨著被測設(shè)備或系統(tǒng)(Unit Under Test, UUT)越來越復(fù)雜,待獲取的測試參數(shù)和要執(zhí)行的測試過程越來越繁多,使用的測試儀器也就相應(yīng)地越來越復(fù)雜和繁多,因此越來越要求ATS具有測試儀器可互換、測試軟件可移植、測試系統(tǒng)可擴展、系統(tǒng)組件可復(fù)用、測試程序集互操作等各種特性。這些要求中,儀器驅(qū)動程序與測試儀器可互換特性直接相關(guān),并對其它特性有重要影響。
[0004]為了滿足這些要求,ATS軟件和儀器驅(qū)動往往需要遵循一定的開發(fā)風(fēng)格。根據(jù)出發(fā)點的不同,有如下三種各具特點的風(fēng)格,每種都有相關(guān)的標(biāo)準支持:
O從測試設(shè)備出發(fā),基于儀器的測試。這種風(fēng)格簡單直觀,直接將測試需求分配到儀器提供的API (Applicat1n Programming Interface)上即可實現(xiàn),因此應(yīng)用最廣泛。IVI (Interchangeable Virtual Instrument)標(biāo)準是其典型代表。缺點是軟件很容易與具體儀器綁定,從而損害設(shè)備互換性和軟件移植性。
[0005]2)從測試領(lǐng)域出發(fā),基于功能的測試。這特別適合那些有標(biāo)準規(guī)定測試過程的測試領(lǐng)域,譬如電磁兼容測試。IV1-MSS (Measurement and Stimulus Subsystems)標(biāo)準是其典型代表。但現(xiàn)實世界中非標(biāo)準測試很多,造成IV1-MSS標(biāo)準不可能、也沒有規(guī)定具體的功能接口,在不同ATS間不可能互操作測試程序集。另外,對軟件人員要求較高,因此應(yīng)用不夠廣泛。
[0006]3)從被測對象出發(fā),基于信號的測試。由于信號種類有限,可以準確地描述,并且不涉及具體的測試設(shè)備,所以設(shè)備互換性、測試程序集互操作性等特性都很好,超過了前面兩種類型。ATLAS (Abbreviated Test Language for All Systems)標(biāo)準是其典型代表,很多大型ATS都用到了 ATLAS。缺點是開發(fā)過程復(fù)雜,需要昂貴的專有工具,所以應(yīng)用也不廣。
[0007]IEEE針對當(dāng)前ATS的需求定義了 1671和1641標(biāo)準。IEEE 1671行業(yè)標(biāo)準同時是IEC 61671國際標(biāo)準,又稱ATML (Automatic Test Markup Language),作用是規(guī)定各種對象的信息交換格式;IEEE 1641標(biāo)準又稱STD (Signal and Test Definit1n),作用是以信號為基礎(chǔ)對測試過程進行描述和建模,是對ATLAS的繼承和發(fā)展。這兩個標(biāo)準相互關(guān)聯(lián),ATML引用STD的內(nèi)容作為測試描述的手段;STD使用符合ATML的文檔作為需求來源。合理地利用、高效地實現(xiàn)這兩項標(biāo)準可以達到互換性、移植性、擴展性、復(fù)用性、互操作性等目標(biāo)。
[0008]參見圖1,STD 標(biāo)準包括 SML(Signal Modeling Language)、BSC(Basic SignalComponent)、TSF(Test Signal Framework)和 TR(Test Requirement)等四層。對開發(fā)ATS的大多數(shù)用戶來說,下層的SML和BSC固定不變,要做的工作是在TR和TSF兩層建立概念模型,并結(jié)合儀器驅(qū)動程序?qū)⑵滢D(zhuǎn)換成可實際運行的測試程序。TSF層描述對信號執(zhí)行的操作,可以使用 IDL (Interface Definit1n Language)和 XML (extensible MarkupLanguage)兩種描述方式;TR層描述信號需求,可以使用IDL、XML和TPL(Test ProcedureLanguage)等三種描述方式。
[0009]IDL是一種應(yīng)用很久的軟件開發(fā)技術(shù),有很多流行的開發(fā)工具支持,但它也有很大缺點。IDL自身只描述接口而不描述過程,適合描述TSF層的信號庫,而不能描述含有過程信息的測試需求,所以TR層的測試需求隱藏在使用IDL調(diào)用的特定編程語言的程序代碼中。這既損害了測試軟件的可移植性,又使這種方法不太適合作為高層次的需求描述工具。歐洲企業(yè)EADS率先推出了使用IDL的測試軟件NewwaveX SD,提供了信號開發(fā)環(huán)境和基于信號的測試平臺。
[0010]TPL是STD標(biāo)準自身提出的測試需求描述工具,也是早期版本中唯一的TR層技術(shù)。TPL是與具體編程語言無關(guān)的中立技術(shù),用注釋的方式嵌入程序代碼中,所以需要對其進行預(yù)處理、轉(zhuǎn)換成編程語言語句后才能編譯成可執(zhí)行代碼。這種方式的實現(xiàn)過程比較難,目前尚無知名的商業(yè)性開發(fā)工具。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的目的在于在提供一種基于信號的儀器驅(qū)動實現(xiàn)方法,其全部環(huán)節(jié)都使用XML技術(shù),采用了與NewwaveX SD不同的解決方案。
[0012]本發(fā)明的技術(shù)解決方案是:
一種基于信號的儀器驅(qū)動實現(xiàn)方法,其特殊之處在于:該方法在TSF層使用XML描述信號庫,然后將信號庫轉(zhuǎn)換成可調(diào)用運行的程序庫代碼;在TR層引入ATML標(biāo)準,使用XML描述測試需求,然后將其轉(zhuǎn)換成調(diào)用TSF信號庫的代碼;在將TR層描述轉(zhuǎn)換成代碼的過程中,調(diào)用了儀器驅(qū)動程序。
[0013]上述儀器驅(qū)動程序分為資源管理器和儀器驅(qū)動組件兩層;所述上層的資源管理器是單一的大對象,處理用信號形式描述的測試需求,并將其轉(zhuǎn)換成具體的儀器驅(qū)動組件的調(diào)用;所述下層的儀器驅(qū)動組件是很多功能較單一的小對象,作用是封裝不同接口、不同類型的儀器功能,并提供統(tǒng)一的信號調(diào)用組件。
[0014]上述基于信號的儀器驅(qū)動實現(xiàn)方法,其特殊之處在于,該方法具體包括:
1)編輯XML格式的TSF信號庫;
STD標(biāo)準為TSF信號庫提供了 XML Schema,所以使用通用的XML工具即可對其進行編輯;提供了配套的圖形化TSF信號庫編輯工具,導(dǎo)入、導(dǎo)出合格的TSF信號庫;
2)將TSF信號庫轉(zhuǎn)換成接口代碼;
將XML格式的TSF信號庫轉(zhuǎn)換成C#庫代碼,首先需要將其序列化成C#描述符對象,然后據(jù)此利用代碼生成技術(shù)輸出成C#接口代碼文件以及相應(yīng)的項目配置文件;
3)編輯XML格式的測試需求;
ATML標(biāo)準為測試描述提供了 XML Schema,其中很大一部分是測試需求,所以使用通用的XML工具即可對其進行編輯;提供了配套的圖形化流程配置編輯工具,導(dǎo)入、導(dǎo)出合格的測試描述;
4)將測試需求轉(zhuǎn)換成庫調(diào)用; 將XML格式的測試描述轉(zhuǎn)換成C#代碼,首先需要將其中的測試需求序列化成C#描述符對象,然后據(jù)此利用代碼生成技術(shù)輸出成C#代碼文件以及相應(yīng)的項目配置文件;這個過程需要糅合TSF接口代碼和資源管理器調(diào)用代碼。
[0015]上述資源管理器包括:
O信息注冊;儀器驅(qū)動組件將自身信息注冊在這個雙方都知道的信息集散地(Repository),程序執(zhí)行時能夠發(fā)現(xiàn)、啟動并調(diào)用它們來執(zhí)行測試,這相當(dāng)于操作系統(tǒng)中的注冊表;
2)能力綜合;資源管理器能查詢注冊于其中的所有組件信息,并從分散的組件信息歸納綜合出系統(tǒng)資源當(dāng)前具有的測試能力;
3)匹配分析;當(dāng)某種測試需求信號被提出時,資源管理器進行分析處理,并與資源測試能力進行匹配比較,給出最佳的匹配資源;
4)會話管理;測試執(zhí)行時與儀器交互,為了降低耦合性并不直接操控儀器,而是將其交給資源管理器處理;
5)調(diào)用轉(zhuǎn)換;上層程序使用信號語言描述需求,下層儀器只能靠API調(diào)用驅(qū)動,因此必須實現(xiàn)從信號到函數(shù)調(diào)用的轉(zhuǎn)換。
[0016]上述儀器驅(qū)動組件是具體的儀器驅(qū)動實現(xiàn)代碼,需要將儀器供應(yīng)商以API形式提供的儀器測量功能封裝成信號訪問接口以便調(diào)用。
[0017]上述A