仿真系統(tǒng)中基于PCI1721的信號測試設(shè)計
摘要:為提高訓(xùn)練效果,仿真訓(xùn)練系統(tǒng)中需進(jìn)行信號波形測試。在介紹PCI1721板卡基本功能及主要特點的基礎(chǔ)上,介紹了VB編程結(jié)合PCI1 721總線擴展實現(xiàn)信號產(chǎn)生的方法,給出了信號產(chǎn)生軟件實現(xiàn)的基本方法、PCI1721實現(xiàn)多通道輸出的方法以及VRML和VB交互的實現(xiàn)方法,便于以后功能擴展。為保證輸出波形滿足要求,實現(xiàn)脈沖信號、視頻信號、檢波信號等模擬信號的選擇輸出,設(shè)計了整形電路。這樣既可以實現(xiàn)虛擬測試又可以實現(xiàn)真正測試。
關(guān)鍵詞:仿真系統(tǒng):信號測試;總線擴展;整形電路
在電子設(shè)備模擬仿真系統(tǒng)中需要產(chǎn)生關(guān)鍵點的波形,供訓(xùn)練者測試使用,以提高模擬系統(tǒng)的仿真度。通常情況下模擬仿真系統(tǒng)由計算機和仿真機柜組成,如果在仿真機柜內(nèi)部單獨設(shè)計信號產(chǎn)生器,無疑會增加仿真系統(tǒng)研制難度與成本。本文介紹一種采用VB編程結(jié)合PCI1721總線擴展實現(xiàn)波形測試的方法,實現(xiàn)的思路是對虛擬模型設(shè)置傳感器節(jié)點,與VB進(jìn)行交互,通過虛擬模型的傳感器節(jié)點,進(jìn)行波形虛擬測試,通過VB編程控制控制PCI1721輸出.配以整形電路,實現(xiàn)真正的波形測試。
1 PCI1721簡介
PCI1721是一款高性能的PCI模擬量輸出卡,每個模擬量輸出通道都帶有一個12位的雙緩沖器DAC,具有許多強大的獨特功能,比如最大更新速率為10 MHz的波形輸出功能、自動校準(zhǔn)功能和板卡ID等。
1.1 板卡基本功能
板卡的基本功能如下:
1)自動校準(zhǔn)功能
PCI1721通過使用校準(zhǔn)程序可以提供自動校準(zhǔn)功能。PCI1721內(nèi)建的校準(zhǔn)電路對模擬量輸出通道中的增益和偏移誤差進(jìn)行修正,無須調(diào)整外部設(shè)備和用戶設(shè)置。
2)PCI總線數(shù)據(jù)傳輸
PCI1721支持PCI總線DMA功能用于高速數(shù)據(jù)傳輸和無間隔的模擬量輸出。通過設(shè)置PC的內(nèi)存,PCI1721可執(zhí)行總線數(shù)據(jù)傳輸,而不需要CPU的干預(yù),可使CPU去執(zhí)行其它更重要的工作,比如:數(shù)據(jù)分析和圖形操作。這種功能允許用戶全速使用所有I/O功能且不丟失數(shù)據(jù)。
3)系統(tǒng)重啟動后保持輸出值
用戶可以單獨將4個通道的輸出設(shè)為不同的范圍:0~+5 V、0~+10 V、±5 V、±10 V、0~20 mA或4~20 mA,所有范圍都可以通過軟件進(jìn)行選擇。當(dāng)系統(tǒng)熱重啟動(電源不關(guān)閉)時,根據(jù)跳線設(shè)置,PCI1721能夠保持上一次的模擬量輸出設(shè)置或輸出值,或者返回到默認(rèn)配置。這種特有的功能能夠避免在系統(tǒng)意外重啟動過程中的誤操作帶來的危險。
4)板卡ID
PCI1721帶有一個DIP撥碼開關(guān),當(dāng)計算機機箱中安裝了多塊PCI1721板卡時,可使用此開關(guān)來定義每個板卡的ID。當(dāng)用戶使用多塊PCI17 21板卡構(gòu)建自己的系統(tǒng)時ID設(shè)置功能將極為有用。如果板卡的ID設(shè)置正確,用戶就可以很方便地在硬件配置和軟件編程過程中區(qū)分和訪問每塊板卡。
5)卡上FIFO(先入先出)存儲器
PCI1721卡上提供了FIFO(先入先出)存儲器,可存儲1 kb的D/A轉(zhuǎn)換值。
6)可編程定時器/計數(shù)器
PCI1721提供了可編程的定時器和計數(shù)器.用于為D/A變換提供觸發(fā)脈沖。定時器/計數(shù)器芯片為82C54,含有3個16位10 MHz時鐘。其中有一個計數(shù)器作為事件計數(shù)器,用來對輸入通道的事件進(jìn)行計數(shù)。另外兩個計數(shù)器級連在一起,用作脈沖觸發(fā)的32位定時器。
7)波形模擬量輸出
PCI1721提供4路模擬量輸出通道。它們均可產(chǎn)生連續(xù)的波形輸出,對一個模擬量輸出通道可產(chǎn)生每秒10 ms的數(shù)據(jù)輸出,用戶也可以對波形數(shù)據(jù)存儲在卡上的FIFO中,這樣可以產(chǎn)生循環(huán)的波形輸出。PCI1721卡上的FIFO可以存儲2到1 024個波形采樣。
1.2 板卡主要特點
板卡的主要特點如下:
1)10 MHz最大數(shù)字更新速率
2)PCI總線數(shù)據(jù)傳輸
3)自動校準(zhǔn)功能
4)4路模擬量輸出,帶1k FIFO
5)每個模擬量輸出通道帶一個12位DAC
6)內(nèi)部/外部觸發(fā)的實時波形輸出
7)同步輸出功能
8)靈活的輸入類型和范圍設(shè)定
9)系統(tǒng)重啟動后保持輸出設(shè)置和輸出值
10)16路D10和1個10 MHz 16位分辨率計數(shù)器
11)板卡ID
2 軟件設(shè)計
2.1 軟件實現(xiàn)的基本方法
在模擬仿真系統(tǒng)中,對所要實現(xiàn)波形測試的模型(如面板上的測試點),加入接觸傳感器TouchSensor節(jié)點。接觸傳感器的作用是檢測用戶基于指點設(shè)備(主要是鼠標(biāo))的動作,并將其轉(zhuǎn)換為各種事件輸出。在軟件中當(dāng)接觸傳感器檢測到的鼠標(biāo)雙擊動作,則用Script節(jié)點傳送一個字符串到一個腳本文件中。在這個腳本文件中,在注冊表中新建了一個注冊表項,Setipt節(jié)點傳送過來的字符串,寫入該注冊表項,以供VB來讀取。
通過VB來編寫PCI-1721板卡產(chǎn)生波形代碼。在寫波形代碼時,先對所要產(chǎn)生的信號進(jìn)行測試,確定信號的格式與參數(shù)。在編寫程序時,先將PCI1721板卡的驅(qū)動、事件等模塊添加到程序中。在VB主程序中,根據(jù)信號格式,用VB語言畫出所要產(chǎn)生的各種信號。在產(chǎn)生波形時,先將上面提到注冊表項的值讀出,根據(jù)判斷,確定為某個測試點后,輸出該測試點的波形。波形測試孔的觸發(fā)流程如圖1所示。
具體步驟如下:
1)在JavaScript腳本中定義一個判斷函數(shù),即function gzwx_ceshi_panduan(name);
2)通過在測試孔的節(jié)點Transform內(nèi)設(shè)置TouchSensor節(jié)點,觸發(fā)Script節(jié)點,實現(xiàn)VRML和JavaScript腳本的交互,從而調(diào)用的Java Ser ipt腳本內(nèi)的函數(shù),如:
Browser.loadURL (‘JavaScript:parent.bottomFrame.gzwx_ceshi_panduan(\“A機編碼輸出\”)’,‘Target=_self’);
3)JavaScript腳本內(nèi)的函數(shù)通過判斷name,調(diào)用不同的網(wǎng)頁函數(shù),將不同波形的各項數(shù)值寫入注冊表;
4)VB通過不斷的讀取注冊表的值,從而在示波器上得到所需要的波形。
2.2 PCI1721板卡多通道輸出實現(xiàn)
在用VB編寫PCI1721板卡波形產(chǎn)生過程中,考慮到觀察信號時,會用到信號之間的同步關(guān)系,可在PT_FAO Wave FOrm Start的Enabled Channel參數(shù)中設(shè)置值為15.4通道輸出,便于以后的擴展。但是PCI1721板卡并不是簡簡單單的設(shè)置輸出通道參數(shù)后就會把數(shù)據(jù)從4個通道輸出,EnabledChannel參數(shù)只是將四個通道都設(shè)置為可用,從4個通道輸出不同的波形還要求將不同通道的數(shù)據(jù)先按照一定的格式放入一個總的數(shù)組,設(shè)備會按照所給的數(shù)據(jù)從不同的通道輸出。
2.3 VRML和VB的交互實現(xiàn)方法
通常虛擬訓(xùn)練軟件是用3DMAX建立模型,用VRML將各個模型節(jié)點聯(lián)系起來的,VRML沒有與VB交互的外部接口,所以在虛擬訓(xùn)練軟件中的模型操作與VB波形產(chǎn)生程序之間需要一個媒介來傳遞信息。采取的方法是,虛擬訓(xùn)練軟件中的模型接觸傳感器檢測到動作后,就向Script節(jié)點傳遞一個事件,Script接收到此事件就給腳本文件傳遞一個內(nèi)容為該模型名稱的字符串,然后腳本文件將傳遞過來的字符串寫入一個新建的注冊表值,VB則可以通過函數(shù)讀出注冊表中的字符串,針對每個模型名稱的不同,則可以調(diào)用不同的產(chǎn)生波形代碼,從而實現(xiàn)波形的測量。這種實現(xiàn)交互的方法,不僅簡單、方便,而且在程序調(diào)試過程中,方便觀察程序的執(zhí)行情況。
3 整形電路設(shè)計
所要產(chǎn)生的信號既包括模擬信號又包括數(shù)字脈沖,對于模擬信號直接輸出即可,但對于數(shù)字脈沖,由于最高采樣率為10 MHz,導(dǎo)致輸出的脈沖波形前沿上升和下降沿都比較平緩,輸出的波形達(dá)不到要求。為此設(shè)計了整形電路,如圖2所示。
74LS04是一個六路反相器,對PCI1721板卡輸出的脈沖波形進(jìn)行兩次反相,波形由模擬脈沖信號變成數(shù)字脈沖信號,使得PCI1721輸出的脈沖波形上升沿和下降沿變的陡峭,基本上達(dá)到了實際中的要求。AD7502是一個八輸入選擇器,選擇從PCI1721板卡輸出脈沖信號或視頻信號、檢波信號等。從PCI1721板卡一個通道輸出的波形一路經(jīng)過兩個非門后接到選擇器,一路直接接到選擇器,用程序控制PCI1721板卡數(shù)字輸出D0和D1,將D0和D1分別接到選擇器的地址端A0和A1,如果當(dāng)前該通道輸出信號是數(shù)字脈沖,則選擇器選擇輸出經(jīng)過兩個非門后的一路信號;如果輸出的信號是模擬信號,則選擇器選擇輸出直接接到選擇器的一路信號。
4 結(jié)束語
在模擬仿真訓(xùn)練系統(tǒng)中通過編程和擴展PCI板卡來產(chǎn)生信號,既可以滿足訓(xùn)練中的虛擬測試,又可以滿足真正的信號波形測試,大大提高了訓(xùn)練效果。