武穎
(西南電子設(shè)備研究所,四川 成都 610036)
自動(dòng)測(cè)試系統(tǒng)是指人極少參與或不干預(yù)的情況下,自動(dòng)進(jìn)行測(cè)量,處理并輸出測(cè)試結(jié)果的系統(tǒng)。自動(dòng)測(cè)試設(shè)備ATE技術(shù)發(fā)展十分迅速,其軟件是整個(gè)測(cè)試系統(tǒng)的核心和關(guān)鍵,決定其工作的可靠性和穩(wěn)定性。近十余年來(lái)設(shè)計(jì)一種能夠?qū)崿F(xiàn)測(cè)試儀器與測(cè)試數(shù)據(jù)、軟件代碼與系統(tǒng)資源相分離的通用軟件架構(gòu), 成為迫切需求。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,各種應(yīng)用系統(tǒng)的體系結(jié)構(gòu)呈現(xiàn)出以網(wǎng)絡(luò)為中心的趨勢(shì)。文中在研究OpenSplice DDS 規(guī)范的基礎(chǔ)上,分析了DDS的特點(diǎn),利用其優(yōu)點(diǎn)構(gòu)建分布式測(cè)試系統(tǒng)。
OpenSplice DDS是DDS規(guī)范的一個(gè)實(shí)現(xiàn),采用發(fā)布、訂閱通信機(jī)制,建立全局?jǐn)?shù)據(jù)空間。它是位于網(wǎng)絡(luò)協(xié)議最上層的軟件,它屏蔽底層網(wǎng)代碼,代之以通用的、基于標(biāo)準(zhǔn)的應(yīng)用程序接口API。通過(guò)API提供易于理解的基于發(fā)布、訂閱的通訊模式。這種模式定義了兩種基本的角色:
發(fā)布者:創(chuàng)建數(shù)據(jù)、命名將數(shù)據(jù)分發(fā)給訂閱者;
訂閱者:注冊(cè)感興趣的主題。
任意一個(gè)節(jié)點(diǎn)可以成為發(fā)布者、訂閱者或兩者皆是,可擁有多個(gè)主題。DDS處理所有的網(wǎng)絡(luò)輸入輸出。用戶可以把精力花在應(yīng)用程序的設(shè)計(jì)上。
DDS網(wǎng)絡(luò)架構(gòu)采用P/S架構(gòu),如圖1所示。傳統(tǒng)C/S架構(gòu)以一個(gè)對(duì)象為中心,其他節(jié)點(diǎn)之間無(wú)法直接通信,如圖2所示。P/S架構(gòu)如圖3所示。無(wú)固定中心點(diǎn),降低了通信節(jié)點(diǎn)之間的空間、時(shí)間耦合性,提供了靈活的服務(wù)質(zhì)量(QOS)控制策略,解決了單點(diǎn)失效,服務(wù)瓶頸等問(wèn)題。

圖 1 P/S 模型

圖 2 C/S 模型

圖3 DDS模型
內(nèi)存存儲(chǔ):每臺(tái)計(jì)算機(jī)都有多個(gè)備份訪問(wèn)速度快。
便捷性:訂閱者可以隨時(shí)訂閱主題。
靈活性:根據(jù)QoS可以采用UDP,TCP和組播等多種傳輸策略。
可擴(kuò)展性:可以隨時(shí)增加一個(gè)新主題。
可靠性:真正實(shí)現(xiàn)了全分布式結(jié)構(gòu),單點(diǎn)失效對(duì)系統(tǒng)功能無(wú)影響。
動(dòng)態(tài)性:可以隨時(shí)添加或刪除節(jié)點(diǎn)。
擴(kuò)展功能:可以隨時(shí)增加一個(gè)新主題。
信號(hào)接收機(jī)自動(dòng)測(cè)試系統(tǒng),包括儀器控制節(jié)點(diǎn),被測(cè)信號(hào)接收機(jī)控制節(jié)點(diǎn),綜合管理控制節(jié)點(diǎn)。根據(jù)需要各個(gè)節(jié)點(diǎn)的軟件可以分布于不同計(jì)算機(jī)上。該軟件平臺(tái)主要完成如下幾個(gè)功能,如圖4所示。
軟件組成:
(1)提供儀器類(lèi)驅(qū)動(dòng)程序控制函數(shù):儀器類(lèi)驅(qū)動(dòng)程序是面向功能相似的同類(lèi)儀器的控制函數(shù)集合。邏輯儀器到物理儀器的映射由儀器可互換內(nèi)核根據(jù)測(cè)試資源控制數(shù)據(jù)庫(kù)的定義實(shí)現(xiàn)。儀器資源界面如圖5。

圖4 軟件平臺(tái)架構(gòu)

圖5 儀器資源界面
(2)SUT適配器軟件:此軟件安裝于與接收機(jī)連接的計(jì)算機(jī)上,主要負(fù)責(zé)對(duì)測(cè)試設(shè)備的通信。SUT適配器軟件采用標(biāo)準(zhǔn)的協(xié)議格式,根據(jù)被測(cè)設(shè)備通信協(xié)議格式的不同。通過(guò)協(xié)議解析軟件可不斷擴(kuò)展被測(cè)設(shè)備。SUT交互界面如圖6。

圖6 SUT交互界面
發(fā)布者,創(chuàng)建數(shù)據(jù),給數(shù)據(jù)命名,并將數(shù)據(jù)分發(fā)訂閱者;訂閱者,注冊(cè)主題,在主題數(shù)據(jù)有變化時(shí)接收數(shù)據(jù)。任意一個(gè)節(jié)點(diǎn)可以成為發(fā)布者、訂閱者或兩者皆是。DDS工作流程如圖7所示。我們對(duì)DDS的API進(jìn)行了封裝:初始化、注冊(cè)主題、讀取、寫(xiě)入。
(1)初始化DDS:創(chuàng)建參與者。用于創(chuàng)建一個(gè)可以利用數(shù)據(jù)收發(fā)的客戶端。
(2)注冊(cè)主題得到句柄:不同節(jié)點(diǎn)由于功能不同可定義不同主題,例如儀器控制節(jié)點(diǎn)主題為與儀器相關(guān)的頻譜數(shù)據(jù),信號(hào)源數(shù)據(jù)等。

圖7 DDS中間件工作流程
(3)枚舉主題:將測(cè)試的項(xiàng)目的主題枚舉出來(lái)。應(yīng)用于SUT的主題包括:自檢、查詢等。應(yīng)用于儀器的主題為與儀器通信的指令。主題寫(xiě)入XML文件中,說(shuō)明主題的ID,類(lèi)型。
(4)讀總線上相應(yīng)主題數(shù)據(jù):該接口是接收總線上訂閱數(shù)據(jù)。不同主題的數(shù)據(jù)需要不同的處理程序?qū)?yīng)。
(5)寫(xiě)主題數(shù)據(jù)到總線:該接口發(fā)送不同主題內(nèi)容,包括發(fā)送的域名。
(6)注冊(cè)發(fā)送實(shí)例:該接口將數(shù)據(jù)發(fā)送到訂閱端,依據(jù)在XML文件中的主題定義通過(guò)回調(diào)函數(shù)依次注冊(cè),循環(huán)從隊(duì)列中讀取發(fā)送消息。
(7)訂閱接收:該接口用于處理接收的數(shù)據(jù),并將數(shù)據(jù)傳送給本地程序模塊。對(duì)不同的數(shù)據(jù)類(lèi)型或消息需要不同處理函數(shù)對(duì)應(yīng)。
傳統(tǒng)ATE為傳統(tǒng)的C/S機(jī)構(gòu),各功能軟件布置在一個(gè)計(jì)算機(jī)上。這樣不能擴(kuò)展,所有測(cè)試工作,數(shù)據(jù)處理依靠中心計(jì)算機(jī)。無(wú)法適用于大型測(cè)試系統(tǒng)。

圖9 測(cè)試系統(tǒng)網(wǎng)絡(luò)構(gòu)成
DDS引入“全局?jǐn)?shù)據(jù)空間”概念。滿足多種用戶需求,系統(tǒng)解耦合。如圖9所示,不僅單平臺(tái)的裝備可以通信,多個(gè)平臺(tái)的裝備之間也可以通信。一個(gè)連接失敗可以換用另一個(gè),大大降低了網(wǎng)絡(luò)延遲。

圖10 測(cè)試系統(tǒng)網(wǎng)絡(luò)構(gòu)成
測(cè)試技術(shù)的發(fā)展日新月異,設(shè)備集成化程度越來(lái)越高,人們對(duì)測(cè)試設(shè)備的要求也日益提高。本文將DDS數(shù)據(jù)分發(fā)服務(wù)應(yīng)用于測(cè)試系統(tǒng)中,實(shí)現(xiàn)了分布測(cè)試系統(tǒng)中各個(gè)節(jié)點(diǎn)之間高效、高可靠的數(shù)據(jù)交互,使測(cè)試系統(tǒng)網(wǎng)絡(luò)化。