引言
20世紀60年代末期,Hewlett-Packard設計出了所謂的HP-IB(Hewlett-Packard Interface Bus)作為獨立儀器與計算機之間的溝通通道。由于其高速的數據傳輸率(對當時而言),很快便廣為大家所接受,因此后來IEEE便將此接口更名為GPIB (General Purpose Interface Bus)。然而為了應付更為復雜的測試環境與挑戰,GPIB便顯得捉襟見肘。1987年VXI協會成立,并制訂了所謂instrument-on-a- card的標準,也就是VXI (VMEbus eXtensions for Instrumentation)。VXI以其模塊化而且堅固的架構,的確為量測與自動化產業帶來不少的好處。
近十年來,隨著個人計 算機的劇烈革命與普及,以PCI Bus為架構的儀器模塊大為發展。因此1998年PXI System Alliance(PXISA)成立,讓PXI(PCI eXtensions for Instrumentation)成為一個開放的標準架構。PXI的平臺不僅具有類似VXI的開放架構與堅固的機構外型,更由于其設計了一連串適合儀器開 發所用的同步信號,而使得PXI更適合作為量測與測試、控制自動化的平臺。
1 PXI簡介
簡單來說,PXI是以PCI(Peripheral Component Interconnect)及CompactPCI為基礎再加上一些PXI特有的信號組合而成的一個架構。PXI繼承了PCI的電氣信號,使得PXI擁有 如PCI bus的極高傳輸數據的能力,因此能夠有高達132Mbyte/s到528Mbyte/s的傳輸性能,在軟件上是完全兼容的。另一方面,PXI采用和 CompactPCI一樣的機械外型結構,因此也能同樣享有高密度、堅固外殼及高性能連接器的特性。PXI與CompactPCI相互關系如圖1所示。
1.1 PXI系統內部結構
一個PXI系統由幾項組件所組成,包含了一個機 箱、一個PXI背板(backplane)、系統控制器(System controller module)以及數個外設模塊(Peripheral modules)。在此以一個高度為3U的八槽PXI系統為例,如圖二所示。系統控制器,也就是CPU模塊,位于機箱的左邊第一槽,其左方預留了三個擴充 槽位給系統控制器使用,以便插入因功能復雜而體積較大的系統卡。由第二槽開始至第八槽稱為外設槽,可以讓用戶依照本身的需求而插上不同的儀器模塊。其中第 二槽又可稱為星形觸發控制器槽(Star Trigger Controller Slot)。
1.2 PXI特有信號
背板上的P1接插件上有32-bit PCI信號,P2接插件上則有64-bit PCI信號以及PXI特殊信號。那么PXI特有的信號又是什么呢?PXI的信號包含了以下幾種,其完整的架構如圖3所示
1.2.1 10MHz參考時鐘(10MHz reference clock)
PXI規格定義了一個低歪斜(low skew)的10MHz參考時鐘。此參考時鐘位于背板上,并且分布至每一個外設槽(peripheral slot),其特色是由時鐘源(Clock source)開始至每一槽的布線長度都是等長的,因此每一外設槽所接受的clock都是同一相位的,這對多個儀器模塊的同步來說是一個很方便的時鐘來 源。基本的10MHz參考時鐘架構如圖4所示。
1.2.2 局部總線(Local Bus)
在每一個外設槽上,PXI定 義了局部總線以及連接其相鄰的左方及右方外設槽,左方或右方局部總線各有13條,這個總線除了可以傳送數字信號外,也允許傳送模擬信號。比如說3號外設槽 上有左方局部總線,可以與2號外設槽上的右方局部總線連接,而3號外設槽上的右方局部總線,則與4號外設槽上的左方總線連接。而外設槽3號上的左方局部總 線與右方局部總線在背板上是不互相連接的,除非插在3號外設槽的儀器模塊將這兩方信號連接起來。局部總線架構如圖5所示。
1.2.3 星形觸發(Star Trigger)
設槽2號的左方局部總線 在PXI的定義下,作為另一種特殊的信號,叫做星形觸發。這13條星形觸發線被依序分別連接到另外的13個外設槽(如果背板支持到另外13個外設槽的 話),且彼此的走線長度都是等長的。也就是說,若在2號外設槽上同一時間在這13條星形觸發在線送出觸發信號,那么其它儀器模塊都會在同一時間收到觸發信 號(因為每一條觸發信號的延遲時間都相同)。也因為這一項特殊的觸發功能只有在外設槽2號上才有,因此定義了外設槽2號叫做星形觸發控制器槽(Star Trigger Controller Slot)。請看圖6的星形觸發架構說明。
1.2.4 觸發總線(Trigger Bus)
觸發總線共有8條線,在背板上從系統槽(Slot 1)連接到其余的外設槽,為所有插在PXI背板上的儀器模塊提供了一個共享的溝通管道。這個8-bit寬度的總線可以讓多個儀器模塊之間傳送時鐘信號、觸發信號以及特訂的傳送協議。
2 基于PXI總線的測控系統的硬件子系統
PXI總線在測控系統中應用具有很大的優勢,這很明顯,然而單獨一個PXI機箱和幾塊PXI模塊,是很難滿足各種各樣的測控需求的。無論是工業還是軍 工,過程信號是千變萬化,僅有的幾個PXI模塊(雖說有上千種,但仍然不能達到一種模塊測一種信號,而且,也不需要一個模塊測一種信號)要滿足不同的需 要,就要對過程中的信號進行有效的轉換,或提供執行機構可以認識的信號。
2.1 硬件子系統的一般組成
一般情況下,工業信號是不能直接進入PXI模塊進行測量的,因為有些信號不能直接測出,必須間接測量計算得出,或者是出于對儀器的保護,必須進行調理, 然后測量。PXI模塊的控制信號已不能直接驅動執行機構,必須對控制信號進行調理。一般情況下,一個完整的硬件子系統通常包括輸入信號調理、輸出信號調 理、PXI測控模塊、PC機,如圖7所示:
常用PXI總線測控系統硬件子系統模型中,PXI測控模塊是核心,其主要參數決定了測控系統的穩定性、可靠性、準確性。常用的通用測控模塊, PXI生產廠商已經投入應用。我們只要根據測控的目的或要求,選用性價比最高的即可。輸入信號調理和輸出信號調理必須由集成商自行研制。無疑研制這些調理 也必須符合PXI相應的規范。現以航天測控公司開發的引信通用測試平臺為例,簡述PXI總線的測控系統的軟硬件子系統。
2.2 某通用引信測試平臺硬件子系統
“某通用引信測試系統”是采用PXI總線技術組建的引信通用測試系統,按照測試流程規定的步驟,自動完成引信中的電阻、電壓、電流、電容、時間等參數的測試,并對測試參數作相應的處理。
引信測試中通常電阻、電壓、電流、電容、時間等參數,在測試方法的設計中我們仍采用電子測量領域中有效的測量方法,即:
1)采用數字多用表作為電阻、電壓、電流等基本參數的測量工具。為配合數字多用表的測量,并實現被測信號選擇過程的自動化,引入了繼電器采樣開關,對多路測量信號采樣后,單路輸出至數字多用表測試端口進行測量。
2)考慮到測試平臺的通用性,我們采用了繼電器輸出控制作為系統與被測對象的可靈活設置的連接端口。針對不同型號的引信,通過軟件設置繼電器輸出控制開關 的端口連接關系,完成通道之間的轉換與重組,并與繼電器采樣開關連接,是不同型號的引信在測試方法上達成一致。
3)對時間參數的測量采用通用計數器進行,對長時間計時可利用軟件查詢計數器溢出的次數,計算出時間總量即可。這種方式不僅可確保瞬間時段的測量精度,還能滿足長時間測量的要求并確保測量精度。
4)對電容參數的測量,為簡化設計、降低研制成本,在滿足測量精度的前提下,我們將采用間接法(即通過測量RC時間常數推算電容的方法)測量電容。
硬件子系統主要分為如下幾部分:PXI組合和供電控制及轉接組合部分。PXI 組合主要由上位計算機、PXI模塊和PXI總線組成,這是硬件子系統的核心。供電控制及轉接組合部分主要由系統機箱、信號輸入輸出轉接和引信供電電源部分 組成,這是硬件子系統的輸入調理和輸出調理。其中PXI部分主要完成信號的測試控制,供電控制與轉接組合部分主要實現引信電源輸出、信號輸入輸出等功能。 見圖8:
PXI測控組合是測試平臺的核心部分,其主要工功能是:組合PXI模塊,在計算機的控制下,完成對引信各種參數的測試后,由PXI總線將測試數據傳送到計算機,再由計算機進行后續的數據處理。其中,
1)PXI8330是連接計算機與PXI各個功能模塊的通信橋,它是PXI系統中使用外部控制器的理想接口,也可以把多個主機箱連到一個接口上,因而具有很強的靈活性和很高的數據吞吐率。PXI8330模塊安插在PXI機箱的最左邊的插槽。
2)PXI4070為6位半數字多用表可對電壓、電流、電阻等基本電參數進行高精度的測量。
3)PXI-6115為多功能數據采集模塊,對電容充放電過程進行檢測、外部模擬量進行測試和計數器計時等。
4)AMC4600為24路繼電器通用開關模塊,3塊AMC4600可為系統提供72路繼電器開關通道。用于為數字量多用表、通用計數器、數據采集模塊提供測量輸入通道,同時也可對電阻、電壓、電流、電容、時間的測量進行隔離。
5)AMC4502為32路數字I/O模塊,具有發送I/O數據和進行控制的功能。每個通道可以用作輸入通道也可用作輸出通道,且通道采用光電隔離。
6)AMC4306為16通道記時器模塊。可同時對16路1微秒到420秒的時間間隔進行測量
2.3 時間信號的測量
PXI總線數字過程存儲器AMC4306可用于對時間信號的測量。當模塊進入準備就緒狀態后可對十六個輸入通道上的信號進行連續采樣,根據觸發方式不 同,在相應的條件下觸發計時器開始計時。該模塊能自動記錄16通道端口的變化過程。AMC4306進行記時的時候,時間起時信號進入通道X,時間終止信號 進入通道Y。通道X的信號發生變化時,記時器記下此時通道X的狀態變化相對于觸發點的時間;通道Y的信號發生變化時,同樣記時器也把該通道狀態變化相對于 觸發點的時間記錄下來。通道Y和通道X兩者的時間差即為被測試時間。當然AMC4306記時器模塊的一個通道也可以進行時間測量,不論何時只要通道的信號 的狀態發生改變,AMC4306就會把信號變化的時間點記錄下來,這樣通過狀態變化差也就把時間記錄下來。時間測試見圖9、圖10:
一個被測時間量分為時間起始信號和時間終止信號,它是一個電平信號。要經過電平轉換方可變成計數器可測試的電平信號,故在時間量和測試模塊之間又加入了電平轉換處理。
2.4電容測試
鑒于目前市場上沒有PXI總線控制的電容測量模塊,為簡化設計,考慮采用間接法測量電容,即用一個恒定電壓源通過RC回路對被測電容充電,當電容兩端的 電壓達到某一固定值時,通過電壓比較器輸出狀態特征,用計數器測量出 RC時間常數,由軟件推算電容值,測量誤差可由軟件進行補償。
對如圖11所示的簡單的RC充電回路而言,電容兩端的電壓是逐漸變化的,隨著充電時間的增加,電容上的電壓按指數規律逐漸增大,電路中的電流逐漸減少,當Uc=E時,電流為0,其電壓、電流變化曲線如圖12所示:
通常將RC的乘積稱為時間常數,即τ=RC(秒)。根據RC充電電路曲線和電容充電時間與電壓的關系;t》5τ時,整個充電過程結束。
2.5 電壓、電流和電阻的測量
此次選用的6位半數字多用表模塊PXI4070模塊可對電壓、電壓和電阻等基本參量進行高精度測量。其主要技術指標為:直流電壓:300V,精確度± 0.019‰;交流電壓:300V,準確度:±0.7‰;直流電流:3A;電阻:100MΩ。上述測試范圍和精度都完全可以滿足測試要求。
3 基于PXI總線測控系統的軟件子系統
如果說硬件子系統是測控系統的基礎,那么軟件子系統就是測控系統的靈魂。硬件子系統為滿足不同的實際需求,可能有很大差別。然而,軟件子系統,如果設計 一個很好的框架,在改動很少甚至不用改動的情況就能滿足不同的需求。硬件設計完畢,調試成功后很少再出現問題。硬件子系統存在的某些缺陷,有時只能有軟件 子系統來彌補。
3.1 軟件子系統的一般組成
軟件子系統的設計,必 須考慮軟件系統的穩定性和可擴充性。設計一個軟件系統,如果只針對某一具體的項目,完成后的軟件穩定性很差,移植到其他項目很難,就是移植過去,花費的時 間不如重新編寫。所以為了適應不同的需求,應將各種測控系統的共性抽象出來,設計一個可重用的框架。通常,一個比較合理的測控系統框架包含三個部分:系統 級組態、項目級組態、測控執行,如圖13所示。
3.2 系統級組態設計
系統級組態一般是對硬件子系統的配置進行組態,并將組 態的結果保存到數據庫中,這些組態包括系統組態、單元組態、對特定模塊的組態、其他可重用信息的配置等。這些信息保存到系統數據庫中。數據庫的實現方法不 外乎兩種,其一,自定義的數據格式,以二進制或文本方式保存起來,其二,用現成的通用的數據庫如Access,SQL Server等保存起來。自定義格式保密性強,但隨機訪問較麻煩,而通用的數據庫,保密性差一些,但查詢很方便。相比較而言,對于組態結果主要是查詢,所 以選擇通用數據庫是比較明智的。
在系統級組態中,涉及到對硬件子系統的配置,通常是指一個完整的測控系統中包括哪些PXI模塊,這些 模塊的資源號、和資源字符串是最重要的,我們可以在表格中人工輸入,然后保存起來,這是一個常規的做法,最巧妙的辦法是調用VISA庫中的函數,讓計算機 自動搜索PXI模塊。對于單元組態,我們可以將測控系統分成多個回路,對每一回路來說,無論閉環還是開環,均有某一個或多個的模塊的通道組成。我們單元組 態的目的就是將這些回路的組合信息保存起來,給他取一個比較友好的名字,對操作人員來說,友好的名字應該比單純的通道編號容易記住。
3.3 項目級組態設計
我們設計一個測控系統,其目的要用于實際的項目,項目的不同可能要使用的PXI模塊有所差別,最愚蠢的辦法是針對特定的項目開發特定的軟件。系統級組態 中,我們已經具有了測控系統中所包含的硬件信息,這些信息是可變的,但獲取這些信息的程序未變。如果設計良好項目級組態框架,我們同樣可以實現類似功能。 基于選擇系統級數據庫類型的同一原因,我們選擇通用的數據庫保存項目級組態結果。
對于某一項目,由于其繼承于系統級組態結果,所以它 擁有全部的單元組態信息。然而,特定的項目可能包含多種不同的工況,并不是每一工況都需要所有的PXI模塊參與。我們針對不同的工況,挑選必需的回路,就 是我們使用項目級組態的方法和目的。這些回路在某一工況中使用,通常不是并行使用的,可能和順序有很大關系,這就是要規定測試流程。總之,通俗的講,項目 級組態就是選擇測控回路和規定回路的動作序列。
3.4 測試執行
我們使用項目級組態,保證測控系統滿足不同目的的需要。有了這些信息,再編制通用的執行程序就易如反掌。當數據量較大時,保存到通用數據庫中與保存為自定 義格式的文件相比,保存速度是瓶頸。測試或控制過程中的所有數據都應保存起來,大量的數據,在計算機內存中緩存后,一次性寫入到自定義文件內,效率更高, 所以對實時數據來說,應以自定義格式的文件保存。
3.5 某通用引信測試平臺軟件子系統
通用引信測試平臺軟件在Windows 2000/XP操作系統下,使用C++平臺開發和運行。由于本測試平臺的測試對象涉及多種被測引信,每種被測引信的測試方法、測試項目、測試結果的處理等 都不同,并且隨著對被測對象測試經驗的積累在測試系統實際使用中測試流程可能需要改變。使用傳統的順序流程編程方法很難實現這樣一種多變復雜的系統。因 此,本測試平臺的應用軟件采用框架式結構設計,即采用數據驅動的方法,使測試人員通過管理測試過程中的一些配置數據,不必修改測試程序,就可完成測試任 務。
該集成開發環境可以根據測試系統的特點,建立描述測試系統的數據庫,并采用圖形化的人機交互的輸入方法實現測試流程的輸入。通過 取出數據庫中的測試流程,就可以實現測試程序的自動執行,完成測試任務。這種方法不僅可以提高測試程序的輸入效率,而且使測試人員可以脫離繁瑣的編程工 作,集中精力研究測試對象和測試流程。
某通用引信測試系統軟件根據實際測試的需要,劃分為:數據管理、測試任務設置和執行測試三大功能,其中數據管理又劃分為流程數據管理和結果數據管理兩大部分。各部分功能如下:
1)流程數據管理:完成對通用測試配置數據庫的維護功能,采用樹型結構管理測試卡、測試項目、測試點的信息。具體要求能夠直觀地增加、刪除、修改任意節點,移動拷貝任意節點。
2)測試任務管理:能夠進行任務配置,確定一次測試所做的測試內容,執行順序等。根據系統需要,從已有的測試流程中,選擇或組合測試項目,形成一個測試任務。
3)測試程序:選擇要執行的測試任務,根據測試流程,執行測試項目。
4)結果數據管理:完成對測試結果的查詢、輸出功能,包括查詢、預覽結果報表、刪除、打印
5)測試數據庫:從功能上可將測試數據庫分為三種:
a. 測試流程數據庫:記錄所有與測試流程有關的數據信息,包括流程描述的文字、結構和數據信息,使用儀器的配置信息,流程控制信息等。它是測試平臺的最基本的數據庫。
b. 測試任務數據庫:記錄每一個測試任務中所包含的所有測試項目并建立與測試流程數據庫有關的有機聯系。
c. 測試結果數據庫:記錄測試執行過程中所有的測試結果數據,供存檔、數據處理及報表生成使用。
4 結論
通過對基于PXI便攜式測控系統的研究,首要明確的是確定系統的結構,對系統進行分析。PXI總線技術,作為前沿的技術,其應用是廣泛的,而且也可以做得很小,如果與現代軟件工程、面向對象編程等技術有機結合,可以設計出很好得通用的測控系統來。
評論