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