武穎
(西南電子設(shè)備研究所,四川 成都 610036)
自動測試系統(tǒng)是指人極少參與或不干預(yù)的情況下,自動進行測量,處理并輸出測試結(jié)果的系統(tǒng)。自動測試設(shè)備ATE技術(shù)發(fā)展十分迅速,其軟件是整個測試系統(tǒng)的核心和關(guān)鍵,決定其工作的可靠性和穩(wěn)定性。近十余年來設(shè)計一種能夠?qū)崿F(xiàn)測試儀器與測試數(shù)據(jù)、軟件代碼與系統(tǒng)資源相分離的通用軟件架構(gòu), 成為迫切需求。隨著計算機技術(shù)的飛速發(fā)展,各種應(yīng)用系統(tǒng)的體系結(jié)構(gòu)呈現(xiàn)出以網(wǎng)絡(luò)為中心的趨勢。文中在研究OpenSplice DDS 規(guī)范的基礎(chǔ)上,分析了DDS的特點,利用其優(yōu)點構(gòu)建分布式測試系統(tǒng)。
OpenSplice DDS是DDS規(guī)范的一個實現(xiàn),采用發(fā)布、訂閱通信機制,建立全局數(shù)據(jù)空間。它是位于網(wǎng)絡(luò)協(xié)議最上層的軟件,它屏蔽底層網(wǎng)代碼,代之以通用的、基于標準的應(yīng)用程序接口API。通過API提供易于理解的基于發(fā)布、訂閱的通訊模式。這種模式定義了兩種基本的角色:
發(fā)布者:創(chuàng)建數(shù)據(jù)、命名將數(shù)據(jù)分發(fā)給訂閱者;
訂閱者:注冊感興趣的主題。
任意一個節(jié)點可以成為發(fā)布者、訂閱者或兩者皆是,可擁有多個主題。DDS處理所有的網(wǎng)絡(luò)輸入輸出。用戶可以把精力花在應(yīng)用程序的設(shè)計上。
DDS網(wǎng)絡(luò)架構(gòu)采用P/S架構(gòu),如圖1所示。傳統(tǒng)C/S架構(gòu)以一個對象為中心,其他節(jié)點之間無法直接通信,如圖2所示。P/S架構(gòu)如圖3所示。無固定中心點,降低了通信節(jié)點之間的空間、時間耦合性,提供了靈活的服務(wù)質(zhì)量(QOS)控制策略,解決了單點失效,服務(wù)瓶頸等問題。
圖 1 P/S 模型
圖 2 C/S 模型
圖3 DDS模型
內(nèi)存存儲:每臺計算機都有多個備份訪問速度快。
便捷性:訂閱者可以隨時訂閱主題。
靈活性:根據(jù)QoS可以采用UDP,TCP和組播等多種傳輸策略。
可擴展性:可以隨時增加一個新主題。
可靠性:真正實現(xiàn)了全分布式結(jié)構(gòu),單點失效對系統(tǒng)功能無影響。
動態(tài)性:可以隨時添加或刪除節(jié)點。
擴展功能:可以隨時增加一個新主題。
信號接收機自動測試系統(tǒng),包括儀器控制節(jié)點,被測信號接收機控制節(jié)點,綜合管理控制節(jié)點。根據(jù)需要各個節(jié)點的軟件可以分布于不同計算機上。該軟件平臺主要完成如下幾個功能,如圖4所示。
軟件組成:
(1)提供儀器類驅(qū)動程序控制函數(shù):儀器類驅(qū)動程序是面向功能相似的同類儀器的控制函數(shù)集合。邏輯儀器到物理儀器的映射由儀器可互換內(nèi)核根據(jù)測試資源控制數(shù)據(jù)庫的定義實現(xiàn)。儀器資源界面如圖5。
圖4 軟件平臺架構(gòu)
圖5 儀器資源界面
(2)SUT適配器軟件:此軟件安裝于與接收機連接的計算機上,主要負責對測試設(shè)備的通信。SUT適配器軟件采用標準的協(xié)議格式,根據(jù)被測設(shè)備通信協(xié)議格式的不同。通過協(xié)議解析軟件可不斷擴展被測設(shè)備。SUT交互界面如圖6。
圖6 SUT交互界面
發(fā)布者,創(chuàng)建數(shù)據(jù),給數(shù)據(jù)命名,并將數(shù)據(jù)分發(fā)訂閱者;訂閱者,注冊主題,在主題數(shù)據(jù)有變化時接收數(shù)據(jù)。任意一個節(jié)點可以成為發(fā)布者、訂閱者或兩者皆是。DDS工作流程如圖7所示。我們對DDS的API進行了封裝:初始化、注冊主題、讀取、寫入。
(1)初始化DDS:創(chuàng)建參與者。用于創(chuàng)建一個可以利用數(shù)據(jù)收發(fā)的客戶端。
(2)注冊主題得到句柄:不同節(jié)點由于功能不同可定義不同主題,例如儀器控制節(jié)點主題為與儀器相關(guān)的頻譜數(shù)據(jù),信號源數(shù)據(jù)等。
圖7 DDS中間件工作流程
(3)枚舉主題:將測試的項目的主題枚舉出來。應(yīng)用于SUT的主題包括:自檢、查詢等。應(yīng)用于儀器的主題為與儀器通信的指令。主題寫入XML文件中,說明主題的ID,類型。
(4)讀總線上相應(yīng)主題數(shù)據(jù):該接口是接收總線上訂閱數(shù)據(jù)。不同主題的數(shù)據(jù)需要不同的處理程序?qū)?yīng)。
(5)寫主題數(shù)據(jù)到總線:該接口發(fā)送不同主題內(nèi)容,包括發(fā)送的域名。
(6)注冊發(fā)送實例:該接口將數(shù)據(jù)發(fā)送到訂閱端,依據(jù)在XML文件中的主題定義通過回調(diào)函數(shù)依次注冊,循環(huán)從隊列中讀取發(fā)送消息。
(7)訂閱接收:該接口用于處理接收的數(shù)據(jù),并將數(shù)據(jù)傳送給本地程序模塊。對不同的數(shù)據(jù)類型或消息需要不同處理函數(shù)對應(yīng)。
傳統(tǒng)ATE為傳統(tǒng)的C/S機構(gòu),各功能軟件布置在一個計算機上。這樣不能擴展,所有測試工作,數(shù)據(jù)處理依靠中心計算機。無法適用于大型測試系統(tǒng)。
圖9 測試系統(tǒng)網(wǎng)絡(luò)構(gòu)成
DDS引入“全局數(shù)據(jù)空間”概念。滿足多種用戶需求,系統(tǒng)解耦合。如圖9所示,不僅單平臺的裝備可以通信,多個平臺的裝備之間也可以通信。一個連接失敗可以換用另一個,大大降低了網(wǎng)絡(luò)延遲。
圖10 測試系統(tǒng)網(wǎng)絡(luò)構(gòu)成
測試技術(shù)的發(fā)展日新月異,設(shè)備集成化程度越來越高,人們對測試設(shè)備的要求也日益提高。本文將DDS數(shù)據(jù)分發(fā)服務(wù)應(yīng)用于測試系統(tǒng)中,實現(xiàn)了分布測試系統(tǒng)中各個節(jié)點之間高效、高可靠的數(shù)據(jù)交互,使測試系統(tǒng)網(wǎng)絡(luò)化。