摘? 要: 介紹一種基于ISA總線的可編程數(shù)字信號(hào)發(fā)生器,其特點(diǎn)是:工作時(shí)鐘100MHz,用可編程邏輯器件EPLD作為核心元件,信號(hào)輸出多達(dá)16路,用LabWindows/CVI軟件設(shè)計(jì)的PC機(jī)虛擬儀器面板,界面友好,操作方便。并給出了硬件原理框圖。
關(guān)鍵詞: ISA總線 可編程 數(shù)字信號(hào)發(fā)生器 虛擬儀器
?
在通訊、電子、自動(dòng)控制中,經(jīng)常需要非周期的、能精確定時(shí)的數(shù)字信號(hào),用以產(chǎn)生測(cè)試信號(hào)或模擬控制的時(shí)序。國(guó)內(nèi)現(xiàn)有的可程控信號(hào)發(fā)生器輸出信號(hào)頻率較低(幾kHz~幾MHz)、輸出路數(shù)較少(一般為兩、三路)且結(jié)構(gòu)復(fù)雜、操作不方便,難以滿足現(xiàn)代電子技術(shù)發(fā)展的需要。
為此,我們開(kāi)發(fā)了一種各路輸出的波形可獨(dú)立地任意編輯、最小輸出方波步長(zhǎng)為10ns、信號(hào)輸出多達(dá)16路、每路信號(hào)基長(zhǎng)為256K單元的可編程數(shù)字信號(hào)發(fā)生器。該儀器的核心元件為ALTERA公司的EPLD,以ISA總線插卡插入計(jì)算機(jī),工作時(shí)鐘頻率為100MHz。用LabWindows/CVI軟件設(shè)計(jì)了虛擬儀器面板,界面友好,操作方便。該儀器已在中國(guó)科學(xué)技術(shù)大學(xué)、北京化學(xué)研究所等多家實(shí)驗(yàn)室廣為應(yīng)用,效果很好。
1 系統(tǒng)原理
在PC機(jī)上將編輯好的16路波形數(shù)據(jù)通過(guò)ISA總線寫入高速靜態(tài)RAM。電路首先要對(duì)ISA總線的I/O口地址以及讀寫控制等進(jìn)行譯碼,再驅(qū)動(dòng)一個(gè)18位的地址發(fā)生器(計(jì)數(shù)器)尋址256K×16bit RAM。PC機(jī)將寫入的數(shù)據(jù)讀回比較,若正確則允許觸發(fā)輸出信號(hào)(可以軟件觸發(fā)、外加脈沖觸發(fā)、手動(dòng)按鈕觸發(fā))。 輸出的信號(hào)首先要經(jīng)過(guò)74F574鎖存,再經(jīng)過(guò)74F245驅(qū)動(dòng)輸出,輸出為TTL電平,每路最大驅(qū)動(dòng)電流為64 mA。256K RAM內(nèi)容可單次觸發(fā)輸出完停止,也可循環(huán)多次輸出,并且?guī)в杏|發(fā)指示燈LED。
譯碼、地址發(fā)生器、片選及各種控制邏輯都在一片ALTERA的EPM7128SLC84-7片內(nèi)實(shí)現(xiàn)。這比用分立元件可靠性大為提高,尤其在100MHz 時(shí)鐘頻率下,信號(hào)質(zhì)量明顯改善。EPM7128SLC84-7片內(nèi)可編程邏輯門有2500個(gè),宏單元有128個(gè),可用I/O片腳為68個(gè)。支持在線編程ISP(in-system programmability),不用將芯片拔下重新燒錄,通過(guò)PC機(jī)標(biāo)準(zhǔn)串行口即可將編譯好的邏輯數(shù)據(jù)文件燒錄進(jìn)片內(nèi),方便邏輯調(diào)試。開(kāi)發(fā)工具軟件為Altera's MAX+PLUS II,該軟件是基于WINDOWS,具有邏輯編輯、編譯、功能仿真、時(shí)序仿真、時(shí)序分析等功能。
本系統(tǒng)采用了16片ISSI公司的高速靜態(tài)RAM :IS61C256AH-8(32K×8bit),地址建立時(shí)間(address access)為8ns,數(shù)據(jù)保持時(shí)間(data hold time) 為2ns, 片選建立時(shí)間(CE access time )為8ns。
PC機(jī)I/O口地址可以在電路板上靈活設(shè)置以避免與別的I/O設(shè)備地址沖突,設(shè)置范圍為0320H~033FH。
系統(tǒng)硬件原理示意框圖見(jiàn)圖1。

?
2 主要特點(diǎn)
2.1 精確定時(shí)
該信號(hào)發(fā)生器由于采用了全數(shù)字結(jié)構(gòu),因而可以實(shí)現(xiàn)精確定時(shí)輸出時(shí)序。工作時(shí)鐘頻率為100MHz,決定了輸出步長(zhǎng)為10ns。由于每路基長(zhǎng)為256K單元,則最大輸出方波間隔為256×1024個(gè)步長(zhǎng),即262144×10ns=2.62144ms。也就是說(shuō),寬度為10ns的不同兩路輸出方波信號(hào)最小間隔為10ns,最大間隔為2.62144ms(見(jiàn)圖2),兩者雖然相差5個(gè)數(shù)量級(jí),但最小間隔的定時(shí)絕對(duì)誤差與最大間隔的定時(shí)絕對(duì)誤差相同,僅取決于時(shí)鐘晶振的晃動(dòng)。本系統(tǒng)時(shí)鐘采用高精度晶振,時(shí)鐘晃動(dòng)僅為十幾ps, 故定時(shí)絕對(duì)誤差僅為十幾ps。

?
2.2 波形任意
各路可以獨(dú)立編輯生成各種周期波和非周期波。步長(zhǎng)是由時(shí)鐘頻率決定的,固定為10ns,但周期波的周期、占空比可調(diào),非周期方波寬度和間隔可調(diào)。都是可以以10ns的整數(shù)倍任意調(diào)制的。圖3示意幾種編輯生成的波形。

?
3 技術(shù)難點(diǎn)
本系統(tǒng)的時(shí)鐘頻率是100MHz,鎖存器的鎖存信號(hào)是100MHz, 所有的數(shù)據(jù)線信號(hào)頻率是50MHz,最低位地址線信號(hào)頻率是50MHz。在這種高速電路設(shè)計(jì)中,必須要考慮信號(hào)的反射、串?dāng)_、衰減等因素,這是同普通低速電路不同的。為此,我們采用了以下的措施:
· 為防止信號(hào)串?dāng)_及保證傳輸線阻抗均勻(終端阻抗匹配技術(shù)只對(duì)均勻阻抗有效),采用了四層電路板結(jié)構(gòu),中間兩層是電源層和地層,上下兩層是信號(hào)層。
· 為防止信號(hào)反射,對(duì)高速信號(hào)線(50MHz以上)都采用了阻抗匹配技術(shù)。對(duì)100MHz信號(hào)線還采用了偽同軸電纜技術(shù)。
· 由于本系統(tǒng)是采用了16片RAM,地址線及數(shù)據(jù)線的驅(qū)動(dòng)問(wèn)題就顯得非常突出。為此,將16片RAM分為四組,地址線每組由兩片74F245驅(qū)動(dòng),數(shù)據(jù)線每組由一片74F245驅(qū)動(dòng)。18位地址線的低15位用來(lái)直接尋址RAM,最高3位地址線經(jīng)138譯碼邏輯來(lái)產(chǎn)生片選信號(hào)。
· IS61C256AH-8的地址建立時(shí)間是8ns,數(shù)據(jù)保持時(shí)間是2ns。雖然從原理上講有4ns的時(shí)間范圍可供鎖存數(shù)據(jù),但由于地址驅(qū)動(dòng)芯片74F245的傳輸延遲時(shí)間(propagation time)范圍較大(1.5~6.5ns),雖經(jīng)篩選但實(shí)測(cè)有效鎖存數(shù)據(jù)時(shí)間范圍仍不到2ns。這就要求精確調(diào)整鎖存器74F574的鎖存時(shí)序。當(dāng)然,為確保片選、使能、讀寫正確也要仔細(xì)調(diào)整各時(shí)序。
· 在邏輯設(shè)計(jì)時(shí),為確保第一和最后一個(gè)波形正確而采取了一些特殊措施。因?yàn)锳LTERA EMP7128SLC-7的邏輯門延時(shí)為7.5ns,對(duì)于信號(hào)輸出完即停止方式,為確保第一個(gè)波形正確必須提前一個(gè)周期啟動(dòng)地址發(fā)生器,為確保最后一個(gè)波形正確必須提前一個(gè)周期關(guān)閉地址發(fā)生器。所有時(shí)序調(diào)整主要是在EPLD片內(nèi)完成,用Altera's MAX+PLUS II的時(shí)序仿真來(lái)確定。
4 虛擬儀器軟件實(shí)現(xiàn)
所謂虛擬儀器就是用軟件來(lái)實(shí)現(xiàn)以往通用儀器才能完成的功能?,F(xiàn)在有很多工具軟件可以用來(lái)設(shè)計(jì)虛擬儀器。本系統(tǒng)采用美國(guó)國(guó)家儀器公司提供的LabWindows/CVI工具軟件設(shè)計(jì)。該軟件采用可視化編程,各種常用儀器面板庫(kù)功能強(qiáng)大,還可以直接調(diào)用ANSI C、VISUAL C等標(biāo)準(zhǔn)庫(kù)函數(shù),實(shí)現(xiàn)各種復(fù)雜算法。
本虛擬儀器操作面板主要包括:I/O口地址選擇、波形編輯、波形輸入、觸發(fā)輸出、波形顯示、復(fù)位、退出等。
波形編輯:對(duì)256K個(gè)單元定義波形不可能逐一定義,本軟面板采用解析式來(lái)方便波形編輯??梢詫?duì)單個(gè)通道單獨(dú)編輯,也可以對(duì)16個(gè)通道統(tǒng)一編輯(16個(gè)通道波形相同)。每個(gè)通道的波形定義都以文件保存。波形定義分為規(guī)則波形和不規(guī)則波形兩種。
規(guī)則波形定義:只需指定 起始點(diǎn),終止點(diǎn),高電平個(gè)數(shù)、低電平個(gè)數(shù)??梢詫?56K分為若干段分別定義為不同的規(guī)則波,也可以將256K定義為單一規(guī)則波。
例:ch_def1.dat?????? ;通道1波形定義文件
???? g??????????? ;規(guī)則波形標(biāo)志符
??????????? 1??????????? ;1表示首先是高電平,接著是
??????????????????????????? 低電平;0 則相反
?????? ? 2,100,1,1??? ;表示第2~100范圍,由若干個(gè)1個(gè)高電平(每個(gè)10ns)
???????????????????????? ;和1個(gè)低電平(每個(gè)10ns)組成;
????????????????????????? 即:1H1L1H1L1H1L......
?????? ? 101,2000,1,3??;表示第101~2000范圍,由若干
???????????????????????????個(gè)1個(gè)高電平(每個(gè)10ns)
??????????? ?????? ;和3個(gè)低電平(每個(gè)10ns)組成
??????????????????????????;即:1H3L1H3L1H3L......
????????????? ??????????? ;其余全是低電平。
不規(guī)則波形定義:只需指定 高電平(或低電平),起始點(diǎn),終止點(diǎn)。
????例:ch_def2.dat? ;通道2波形定義文件
???? u?????? ;不規(guī)則波形標(biāo)志符
?????? 1?????? ;1表示是高電平;0 則相反
?????? ? 5, 6????? ;表示第5~6范圍,全是高電平。
?200,202?? ;表示第200~202范圍,全是高電平。
??????????????????? ;其余全是低電平。
波形顯示:可以在計(jì)算機(jī)顯示器上預(yù)覽16個(gè)通道的波形。這樣,可以直觀地檢驗(yàn)用解析式編輯的波形是否滿足要求。
總之,設(shè)計(jì)一個(gè)工作時(shí)鐘100MHz、16路輸出信號(hào)、每路信號(hào)基長(zhǎng)256K單元、波形編輯方便的可編程數(shù)字信號(hào)發(fā)生器還是有一定的技術(shù)難度的。本信號(hào)發(fā)生器的輸出信號(hào)用400MHz示波器觀察,波形正確無(wú)誤。經(jīng)采用終端阻抗匹配技術(shù)后,信號(hào)反射(上沖、下沖)均小于5%。事實(shí)證明,該儀器的軟硬件設(shè)計(jì)是成功的。100MHz可編程數(shù)字信號(hào)發(fā)生器在電子、通訊等各個(gè)領(lǐng)域有著廣泛的應(yīng)用前景,尤其是在需要非周期的、能精確定時(shí)的數(shù)字信號(hào),用以產(chǎn)生測(cè)試信號(hào)或模擬控制的時(shí)序等場(chǎng)合。
?
參考文獻(xiàn)
1 ALTERA.Device Data Book 1998
2 NATIONAL INSTRUMENTS.LabWindows/CVI User?Interface Reference Manual.1996
3 MOTOROLA.FACT DATA.1993
