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