《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于CPLD和DS1020的多道數(shù)字延遲脈沖發(fā)生器
基于CPLD和DS1020的多道數(shù)字延遲脈沖發(fā)生器
2015年電子技術(shù)應(yīng)用第1期
鐘長(zhǎng)勝,王軼尊,高 輝
中國(guó)科學(xué)技術(shù)大學(xué) 國(guó)家同步輻射實(shí)驗(yàn)室,安徽 合肥230029
摘要: 討論了一種可用于飛行時(shí)間質(zhì)譜儀(TOF)的小型多通道時(shí)序系統(tǒng),研制一種新型高精度的可編程數(shù)字延遲/脈沖發(fā)生器。采用單片機(jī)(MCU)作為微控制器,通過(guò)可編程邏輯器件(CPLD)和可編程數(shù)字延遲線(DS1020)產(chǎn)生所需脈沖,介紹了高速數(shù)字系統(tǒng)中的定時(shí)誤差問(wèn)題。該裝置可同時(shí)輸出7路脈沖,延遲分辨率最低可達(dá)0.15 ns,脈沖寬度分辨率為10 ns,可以采用外同步觸發(fā)方式完成多臺(tái)設(shè)備級(jí)聯(lián)控制。
中圖分類號(hào): TN782
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)01-0057-03
A high-precision programmable digital pulse generator based on CPLD and DS1020
Zhong Changsheng,Wang Yizun,Gao Hui
National Synchrotron Radiation Laboratory,University of Science and Technology of China,Hefei 230029,China
Abstract: This article discussed a small multichannel timing system, and developed a new high-precision programmable digital delay/pulse generator. The desired pulse was generated through a complex programmable logic device(CPLD) and programmable digital line(DS1020), using a MCU(ATmega8) as the main micro-controller, and the timing errors was discussed. With the resolution of delay being 0.15 ns and resolution of pulse being 10 ns, this machine could generate 7 pulse outputs and could be configured to work in cascade mode by external triggering.
Key words : programmable logic device;programmable delay line;pulse generator

  

0 引言

  在現(xiàn)代的科學(xué)實(shí)驗(yàn)、雷達(dá)、通信、測(cè)試與控制系統(tǒng)中,往往需要高精度的多路數(shù)字脈沖信號(hào)[1]作為測(cè)試或者時(shí)序控制信號(hào)。目前科研領(lǐng)域使用的數(shù)字可編程數(shù)字延遲脈沖發(fā)生器有DG535、BNC Model555以及DEL PDG-2510等進(jìn)口儀器,其中應(yīng)用最多的是DG535。DG535作為一種多用途脈沖發(fā)生器,精度高達(dá)5 ps,延遲范圍達(dá)到0~999.999 999 999 995 s,可輸出TTL、ECL、NIM和VAR 4種電平且幅度與極性可調(diào),但是DG535僅有4路延遲輸出(脈寬固定),如要同時(shí)調(diào)節(jié)脈寬,只能輸出兩路脈沖,適合于需要通道數(shù)目不多的實(shí)驗(yàn)領(lǐng)域,且價(jià)格高。綜合考慮,本文采取單片機(jī)+可編程邏輯器件的方案,設(shè)計(jì)一套多路可編程數(shù)字延遲脈沖發(fā)生器系統(tǒng)。該系統(tǒng)可同時(shí)輸出7路脈沖,通過(guò)串口與上位機(jī)連接后,可以實(shí)現(xiàn)輸出脈沖的延遲和寬度以及頻率的實(shí)時(shí)調(diào)節(jié),且能夠多臺(tái)設(shè)備級(jí)聯(lián)使用,必要時(shí)還可以脫機(jī)工作。

1 系統(tǒng)設(shè)計(jì)方案


001.jpg

  多通道數(shù)字可編程脈沖發(fā)生器典型輸出信號(hào)模式如圖1所示。T0是基準(zhǔn)門控信號(hào),其他通道CHn(n為1~6)輸出由T0信號(hào)的上升沿觸發(fā)。系統(tǒng)主要由單片機(jī)、可編程邏輯器件、可編程延遲線和脈沖驅(qū)動(dòng)電路組成。

  1.1 可編程邏輯器件

  目前主流的可編程邏輯器件主要是復(fù)雜可編程邏輯器件(CPLD)和現(xiàn)場(chǎng)可編程門陣列(FPGA)。FPGA的內(nèi)部資源多為觸發(fā)器,適合大規(guī)模的時(shí)序電路;而CPLD內(nèi)部寄存器資源豐富,適合組合邏輯多的應(yīng)用。CPLD內(nèi)部邏輯塊互聯(lián)是集總式的,其特點(diǎn)是等延時(shí),設(shè)計(jì)完成的電路延時(shí)固定,且可預(yù)測(cè)。FPGA內(nèi)部互聯(lián)為分布式,延時(shí)和布局有關(guān)。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時(shí)丟失,每次上電后需從器件外部將編程數(shù)據(jù)重新寫入SRAM,電路也重新布局從而導(dǎo)致延遲不固定,無(wú)法預(yù)測(cè)。

  本系統(tǒng)最終采用Altera公司的MAXⅡ系列CPLD-EPM1270T144C3N[2]作為數(shù)字定時(shí)器,其包含1 270個(gè)邏輯單元(LE),典型等價(jià)宏單元數(shù)目為980,速度等級(jí)為3級(jí),支持高達(dá)300 MHz的內(nèi)部時(shí)鐘頻率,其I/O口擺率和驅(qū)動(dòng)能力均可編程,并且可以配置為施密特觸發(fā)器從而提高信號(hào)完整性,使用非常方便。時(shí)鐘源選用100 MHz的外部有源晶振以減小時(shí)鐘抖動(dòng)從而改善時(shí)序品質(zhì)。

  可編程邏輯器件的編程語(yǔ)言采用VerilogHDL[3],它是一種基本語(yǔ)法與C語(yǔ)言非常類似的硬件描述語(yǔ)言。設(shè)計(jì)和仿真平臺(tái)分別選擇QuartusⅡ和ModelSim-Altera。前者是Altera公司開(kāi)發(fā)的PLD設(shè)計(jì)軟件,后者則是Mentor Graphics公司專為Altera開(kāi)發(fā)的仿真工具,可以與QuartusⅡ下的工程文件無(wú)縫對(duì)接,極大提升仿真效率。

  1.2 可編程延遲線

  高精度的延遲調(diào)節(jié)通常采用可編程延遲線IC,本系統(tǒng)采用的是Maxim公司的DS1020-15[4]??删幊萄舆t線是一種數(shù)字模擬混合電路,它對(duì)于輸入脈沖的延時(shí)作用由其內(nèi)部的數(shù)字寄存器和斜坡產(chǎn)生器決定。DS1020延遲產(chǎn)生結(jié)構(gòu)如圖2所示。

002.jpg

003.jpg

  DS1020是一款8位可編程延時(shí)電路,共有256級(jí)延時(shí),步進(jìn)調(diào)節(jié)為0.15 ns,它可以通過(guò)3線串行或并行模式來(lái)編程。DS1020工作時(shí)序如圖3所示。圖3中的輸入是待延遲的脈沖信號(hào),參考電壓Vref是其8比特的輸入寄存器(8-bit input register)經(jīng)過(guò)DAC后的電壓值。當(dāng)輸入端出現(xiàn)上升沿時(shí),上方的斜坡發(fā)生器開(kāi)始工作,輸出由低至高逐漸上升的電壓;當(dāng)此電壓值跨越參考電壓Vref后,上方的比較器輸出產(chǎn)生由低至高的翻轉(zhuǎn),使鎖存器輸出高電平。輸入信號(hào)的下降沿到達(dá)之后,下方的斜坡產(chǎn)生器開(kāi)始工作,待其輸出電壓跨越Vref后,下方的比較器輸出低電平翻轉(zhuǎn),復(fù)位鎖存器輸出低電平。

  分析DS1020延遲電路工作原理可知,如果脈沖高電平寬度小于所設(shè)的延遲時(shí)間值tD,則上升沿斜坡產(chǎn)生器輸出電壓沒(méi)有足夠時(shí)間充電至Vref,致使延遲失效;另外輸入脈沖高電平寬度必須大于所設(shè)延遲時(shí)間。

  1.3 系統(tǒng)硬件構(gòu)成

  本系統(tǒng)硬件主要由ATmega8A[5]、EPM1270T144C3N、DS1020、ADM3251E和鍵盤等模塊構(gòu)成,如圖4所示。

004.jpg

  單片機(jī)負(fù)責(zé)系統(tǒng)控制,通過(guò)EPM1270對(duì)輸出脈沖的脈寬和延遲進(jìn)行配置,通過(guò)DS1020對(duì)輸出脈沖延遲進(jìn)行精細(xì)調(diào)節(jié),通過(guò)RS232與上位機(jī)PC通信,也可脫機(jī)后改由鍵盤控制操作。除T0外,本系統(tǒng)共有6路子通道輸出,延遲和脈沖寬度的最小分度均為10 ns,能夠勝任大部分應(yīng)用場(chǎng)合。為了適應(yīng)對(duì)延遲精度有更高要求的場(chǎng)合,增加兩路延遲細(xì)調(diào)環(huán)節(jié)。

2 系統(tǒng)軟件

  2.1 單片機(jī)與CPLD的通信

  單片機(jī)ATmega8A內(nèi)部帶有兩線串行接口TWI模塊,支持高達(dá)400 kHz的數(shù)據(jù)傳輸率,只需稍加配置即可與下游器件CPLD通信。CPLD使用QuartusⅡ軟件的宏模塊工具M(jìn)agaWizrad Plug-In Manager生成虛擬I2C接口,也可手動(dòng)編寫程序模擬I2C接口完成與單片機(jī)的通信[6]。本系統(tǒng)采用手動(dòng)編程以模擬I2C接口通信,通信速率為40 kHz??刂瞥绦蛑饕蝿?wù)是起始信號(hào)、結(jié)束信號(hào)的命令和檢測(cè)、數(shù)據(jù)的接收等。I2C模塊結(jié)構(gòu)如圖5所示。

005.jpg

  CPLD的I2C模塊時(shí)鐘源CLK_I2C為100 MHz,采用3個(gè)寄存器REG1、REG2和REG3來(lái)緩沖從SDA讀入的電平值。當(dāng)時(shí)鐘線SCL為低電平時(shí),3個(gè)寄存器全部變?yōu)楦咦钁B(tài),當(dāng)SCL為高電平時(shí), 數(shù)據(jù)線SDA上的電平值會(huì)依次從REG1傳遞至REG3。起始、結(jié)束信號(hào)甄別模塊內(nèi)部主要是組合邏輯電路,根據(jù)SCL、REG1和REG3的電平鑒別出起始和結(jié)束信號(hào)。采用3個(gè)寄存器以防止干擾信號(hào),即當(dāng)SCL為高電平時(shí)SDA的低電平持續(xù)3個(gè)時(shí)鐘才認(rèn)為起始信號(hào)到來(lái)。數(shù)據(jù)處理模塊在起始信號(hào)和結(jié)束信號(hào)的控制下從數(shù)據(jù)線SDA接收數(shù)據(jù),并從接收到的一連串?dāng)?shù)據(jù)中解析出命令和數(shù)據(jù)送至下級(jí)處理模塊。

  2.2 CPLD脈沖信號(hào)的產(chǎn)生

  本系統(tǒng)有兩種觸發(fā)方式:內(nèi)部觸發(fā)和外部觸發(fā)。外觸發(fā)信號(hào)來(lái)自于外部同步設(shè)備,內(nèi)觸發(fā)信號(hào)則由CPLD內(nèi)部提供。系統(tǒng)脈沖波形發(fā)生結(jié)構(gòu)如圖6所示。

006.jpg

  圖6中,主通道模塊負(fù)責(zé)選擇合適的觸發(fā)模式,并且產(chǎn)生內(nèi)觸發(fā)信號(hào)。REG_DELAY是27位的延遲時(shí)間寄存器,REG_WIDTH是27位的脈沖寬度時(shí)間寄存器,計(jì)數(shù)器模塊內(nèi)部是一個(gè)27位計(jì)數(shù)器,如此高位數(shù)的計(jì)數(shù)器占用了CPLD大部分資源,為了節(jié)省資源,采用分時(shí)復(fù)用的方法完成延遲和脈寬時(shí)間的計(jì)數(shù)。具體工作過(guò)程為:使能計(jì)數(shù)器模塊后,觸發(fā)信號(hào)的上升沿跳變會(huì)使Delay_en信號(hào)置位,計(jì)數(shù)器模塊裝入REG_LEDAY中的數(shù)據(jù)并開(kāi)始計(jì)數(shù),子通道輸出低電平。計(jì)數(shù)達(dá)到延遲時(shí)間值后子通道輸出翻轉(zhuǎn)為高電平,Delay_en信號(hào)清零,同時(shí)Width_en信號(hào)置位,計(jì)數(shù)器模塊裝入REG_WIDTH中的數(shù)據(jù)并開(kāi)始計(jì)數(shù)。計(jì)數(shù)達(dá)到脈沖寬度值后輸出翻轉(zhuǎn)為低電平,同時(shí)With_en信號(hào)清零,Delay_en置位以等待下一次觸發(fā),并發(fā)送一路脈沖完成信號(hào)至主通道模塊。子通道輸出的脈沖信號(hào)經(jīng)過(guò)DS1020的精細(xì)延遲調(diào)節(jié)后再由驅(qū)動(dòng)電路增強(qiáng)驅(qū)動(dòng)能力后成為最終輸出。

  2.3 上位機(jī)控制軟件

  脈沖發(fā)生器通過(guò)外觸發(fā)可級(jí)聯(lián)工作,控制多達(dá)十余臺(tái)設(shè)備同步工作,連接各設(shè)備的電纜可達(dá)數(shù)十米,例如一個(gè)基體輔助激光解吸/電離飛行時(shí)間質(zhì)譜儀(TOF)系統(tǒng)中有激光器、脈沖電源等高壓強(qiáng)電裝置,其浪涌幅度可達(dá)上千伏,可能會(huì)損壞由RS232與脈沖發(fā)生器連接的PC,其通信接口采用全隔離RS232通信芯片ADM3251E,可用于各種復(fù)雜而惡劣的電氣環(huán)境。

  上位機(jī)控制臺(tái)采用C語(yǔ)言編寫的基于API的Windows程序,主通道、各個(gè)子通道和延遲細(xì)調(diào)的參數(shù)均可調(diào)整,觸發(fā)方式和計(jì)算機(jī)串口號(hào)均可隨時(shí)切換,每路子通道的參數(shù)可以單獨(dú)裝載也可一鍵裝載,而且各個(gè)子通道配備獨(dú)立開(kāi)關(guān)。該控制臺(tái)還可以把當(dāng)前下位機(jī)的工作狀態(tài)保存起來(lái)至本地或者下位機(jī)存儲(chǔ)區(qū),并且能夠一鍵讀取本地或者下位機(jī)保存的配置文件?!肮ぷ鳡顟B(tài)”顯示區(qū)用來(lái)實(shí)時(shí)顯示下位機(jī)當(dāng)前狀態(tài),分別為:未連接、待機(jī)和工作中。用戶可以通過(guò)“工作”和“停止”按鈕來(lái)啟動(dòng)和關(guān)閉下位機(jī)。

3 系統(tǒng)測(cè)試

  考慮到可能的現(xiàn)場(chǎng)強(qiáng)流設(shè)備干擾,所有7路數(shù)字脈沖經(jīng)由驅(qū)動(dòng)電路輸出,增加箝位和短路保護(hù)。脈沖高度最大5 V,可有效驅(qū)動(dòng)50 ?贅負(fù)載,短路電流達(dá)50 mA。本設(shè)備輸出端從左至右依次為主通道T0、子通道CH1~CH6共7個(gè)輸出通道。其中子通道CH5和通道CH6帶有可編程的延遲細(xì)調(diào),細(xì)調(diào)步長(zhǎng)為0.15 ns,最大為255×0.15=38.25 ns。主通道周期T0:2~134 217 728,步長(zhǎng)精度100 ns。子通道延遲:0~134 217 728,步長(zhǎng)精度10 ns。子通道脈寬:1~134 217 728,步長(zhǎng)精度10 ns。

007.jpg

  圖7是由數(shù)字熒光示波器DPO5204采集到的主通道TO(圖中C1所示)和子通道(圖中C2所示)的波形圖。圖中顯示系統(tǒng)工作頻率為200 Hz,延遲設(shè)置為零,脈寬設(shè)置為10 ns,上升沿時(shí)間(Rising Time)平均值為3.42 ns。子通道CH1-6相對(duì)于主通道T0的固有延遲時(shí)間,其平均值為710 ps,抖動(dòng)標(biāo)準(zhǔn)差為60 ps。

  數(shù)字延遲脈沖發(fā)生器的重要參數(shù)是各子通道輸出脈沖相對(duì)于TO主通道觸發(fā)脈沖的延遲時(shí)間精度,系統(tǒng)誤差主要來(lái)自:系統(tǒng)PCB布線、時(shí)鐘誤差、器件溫漂、DS1020的誤差等。系統(tǒng)中CPLD輸出的脈沖電平為3.3 V LVTTL電平,通過(guò)電平轉(zhuǎn)換芯片LVC3254后再由驅(qū)動(dòng)器輸出。DS1020的延遲時(shí)間由內(nèi)部的斜坡發(fā)生器產(chǎn)生,對(duì)電源噪聲和高速開(kāi)關(guān)噪聲十分敏感[4],其電源入口處須用1 ?滋F電容濾波,接地引腳與數(shù)字地平面隔開(kāi)。輸出波形失真主要是由阻抗不匹配引起的多次反射造成的“振鈴”噪聲,以及相鄰信號(hào)線的串?dāng)_。CPLD的引腳間距僅10 mil,相鄰傳輸線上的開(kāi)關(guān)動(dòng)作會(huì)產(chǎn)生明顯的串?dāng)_攻擊“噪聲”[7]。

008.jpg

  圖8是該系統(tǒng)用于一個(gè)典型飛行時(shí)間質(zhì)譜儀(TOF)的脈沖時(shí)序圖。

  圖8中CH1~5分別為驅(qū)動(dòng)樣品噴氣閥、激光器、脈沖電源、偏轉(zhuǎn)電極和數(shù)據(jù)采集的控制脈沖。首先CH1打開(kāi)噴氣閥門開(kāi)始噴入樣品氣體,一定時(shí)間(例如200 ?滋s)后氣體到達(dá)指定位置,此時(shí)CH2啟動(dòng)激光器電離氣體并由CH3啟動(dòng)脈沖電源給離子加速,再經(jīng)過(guò)一定時(shí)間(例如300 ?滋s)后由CH4啟動(dòng)偏轉(zhuǎn)電極控制離子軌道,最后離子到達(dá)信號(hào)采集板CH5啟動(dòng)數(shù)據(jù)采集。

4 結(jié)論

  脈沖發(fā)生器是現(xiàn)代測(cè)控領(lǐng)域里不可缺少的設(shè)備,本系統(tǒng)采用MCU+CPLD的方法設(shè)計(jì)出一款數(shù)字可編程延遲脈沖發(fā)生器,實(shí)用可靠。本系統(tǒng)可同步輸出7個(gè)通道脈沖方波(最大5 V), 最小延時(shí)分辨為0.15 ns,重復(fù)觸發(fā)周期最大可達(dá)13 s、脈沖輸出延遲、脈寬調(diào)節(jié)最大可達(dá)1.3 s,并提供4種時(shí)序觸發(fā)方式。

  目前該系統(tǒng)已成功應(yīng)用于中科院北京化學(xué)所、合肥國(guó)家同步輻射實(shí)驗(yàn)室、中科院合肥物質(zhì)科學(xué)研究院等多家高校和研究單位的飛行時(shí)間質(zhì)譜儀(TOF)系統(tǒng),用戶反映良好。

參考文獻(xiàn)

  [1] 高輝,陳文通,王金祥,等.可編程器件在納秒級(jí)多通道數(shù)字延遲/脈沖發(fā)生器中的應(yīng)用[J].分析儀器,2002(3):13-17.

  [2] Altera Corporation.MAXⅡ device handbook[Z].2008.

  [3] Samir Palnitkar.VerilogHDL:A guide to design and syn-thesis[M].北京:電子工業(yè)出版社,2012.

  [4] Maxim Corporation.DS1020 programmable 8-bit Silicon delay line[Z].1998.

  [5] Atmel Corporation.8-bit Atmel Microcontroller with 8 KB in-system Programmable Flash ATmega8A[Z].2013.

  [6] EDA先鋒工作室,王誠(chéng),蔡海寧,吳繼華,等.Altera FPGA/CPLD設(shè)計(jì)基礎(chǔ)篇[M].北京:人民郵電出版社, 2011.

  [7] Eric Bogatin.Signal integrity:Simplified[M].北京:電子工業(yè)出版社,2005.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。