樊多盛,施韶華,李孝輝
?
基于CPLD的高精度可調(diào)脈沖信號發(fā)生器研制
樊多盛1,2,3,施韶華1,2,李孝輝1,2
(1. 中國科學院國家授時中心,西安 710600;2. 中國科學院時間頻率基準重點實驗室,西安 710600;3. 中國科學院大學,北京 100049)
為滿足精密時間間隔測量設備的測試需要,研制了一種時間間隔可調(diào)的高精度脈沖信號發(fā)生器。利用計算機串口控制的方式,結(jié)合復雜可編程邏輯器件(CPLD)集成度高、可靠性好及工作速度快的優(yōu)點,采用Altera公司的設計軟件Quartus II進行設計仿真及實現(xiàn)。仿真與實測實驗表明,該脈沖信號發(fā)生器不僅可以產(chǎn)生單路可調(diào)脈沖信號,而且能產(chǎn)生多路可調(diào)脈沖信號,產(chǎn)生的單路秒脈沖信號的1s取樣Allan方差為1.84×10-11;產(chǎn)生的時間間隔為100 ns的多路脈沖信號的1s取樣Allan方差為2.36×10-11,2路信號之間的時間間隔數(shù)據(jù)系列的峰-峰值為101ps,可以滿足多通道時間間隔測量設備測試要求的穩(wěn)定度與準確度。
脈沖信號發(fā)生器;復雜可編程邏輯器件(CPLD);時間間隔
在評估測試多通道時間間隔測量設備時,需要一個穩(wěn)定性好準確度高的時間間隔可調(diào)的脈沖信號發(fā)生器[1-3]。然而,目前市場上大部分脈沖信號發(fā)生器的穩(wěn)定度與準確度及通道數(shù)量不滿足產(chǎn)生測試信號的要求。
本文研制的高精度可調(diào)脈沖信號發(fā)生器,是在外部提供參考信號(如常見的5,10,100 MHz等)的條件下,使用可編程邏輯器件CPLD實現(xiàn)的多路可調(diào)脈沖信號發(fā)生器,可為多通道時間間隔測量設備提供測試信號。
脈沖信號發(fā)生器是基于預置累加計數(shù)器而產(chǎn)生的。在預置計數(shù)器中,當測量結(jié)果超出某個數(shù)值(基數(shù))時,預置計數(shù)器將輸出一個電壓信號。首先給計數(shù)器設置一個基數(shù),當外部周期性參考信號到來時,該計數(shù)器便開始累加計數(shù),當計數(shù)值超出預置的基數(shù)時,便輸出一個脈沖信號。通過外部實時發(fā)送數(shù)據(jù)改變計數(shù)器的基數(shù),即可實現(xiàn)頻率可調(diào)的單路脈沖信號。對于多路脈沖信號,是給計數(shù)器設置多個基數(shù),用同一個計數(shù)變量對參考信號進行累加計數(shù),當計數(shù)變量超出其中一個基數(shù)時,便輸出一個脈沖信號,從而產(chǎn)生多路脈沖信號。當然,計數(shù)變量有限制范圍,超過最大限制范圍,便開始下一次計數(shù)。同理,改變其特定的基數(shù),可實現(xiàn)多路脈沖之間的時間間隔的實時可調(diào)性[4-6]。脈沖信號發(fā)生器脈沖輸出示意圖見圖1。
圖1 脈沖信號發(fā)生器波形圖
當外部輸入10 MHz的參考方波信號,對其上升沿進行計數(shù),當計數(shù)到9 999 999時,CPLD輸出一個脈沖信號,以此實現(xiàn)秒脈沖信號。通過計算機RS232接口向CPLD發(fā)送數(shù)據(jù),使計數(shù)基數(shù)為999 999,從而調(diào)節(jié)脈沖信號的頻率,實現(xiàn)百毫秒脈沖信號。其他單路脈沖信號,以此類推[7-9]。
對于多路脈沖信號,在同樣外部參考情況下,若設置其中一個基數(shù)為9 999 999,另外一個基數(shù)為9 999 998,便可產(chǎn)生時間間隔為100 ns的兩路脈沖信號;若改變基數(shù)9 999 998為9 999 996,兩路脈沖信號的時間間隔可實時變成300 ns??傊?,通過計算機串口改變計數(shù)基數(shù),可實時調(diào)整多路脈沖信號之間的時間間隔[10-11]。
可調(diào)脈沖信號發(fā)生器的核心器件是CPLD,包括接收器與計數(shù)器的設計。計算機通過RS232接口連接至CPLD,實時發(fā)送一定格式的數(shù)據(jù),實現(xiàn)對其輸出單路脈沖信號頻率及多路脈沖信號之間時間間隔的有效調(diào)節(jié)控制,通過外部選擇按鈕選擇單路脈沖輸出還是多路脈沖輸出。50MHz晶振為CPLD的異步串口接收提供參考信號。在輸入?yún)⒖夹盘柕臈l件下,通過計算機實時控制,CPLD輸出單路可調(diào)脈沖信號或多路可調(diào)脈沖信號。輸入?yún)⒖夹盘?,作為對CPLD的激勵信號,可以是10,20,100 MHz等。輸出的單路脈沖信號是指常見的秒脈沖、毫秒脈沖、微秒脈沖等。多路可調(diào)脈沖信號,在CPLD的I/O口允許條件下,可以根據(jù)測試信號要求,同時輸出任意路脈沖信號,其時間間隔的范圍受限于外部參考信號與給計數(shù)器設置的最大基數(shù)。該系統(tǒng)結(jié)構(gòu)見圖2。
圖2 系統(tǒng)結(jié)構(gòu)圖
該系統(tǒng)能實現(xiàn)單路脈沖信號輸出或同時輸出8路脈沖信號,脈沖路數(shù)根據(jù)測試要求進行選擇。脈沖最小時間間隔是外參考輸入信號的一個周期,脈沖最大時間間隔取決于計數(shù)器,脈沖信號的穩(wěn)定性與準確度主要取決于參考信號的性能。
硬件電路設計,主要是實現(xiàn)CPLD的外圍電路,包括串口接收處理與控制電路和電源電路等。
在硬件電路設計中,選用的CPLD是Altera公司MAX‖系列EPM240T1005C,該芯片具有低功耗、高速度以及高速I/O計數(shù)等性能,是業(yè)界普遍使用、性能穩(wěn)定、低功耗且性價比高的一款可編程邏輯器件[12-13]。
脈沖信號發(fā)生器輸出信號的時間間隔是通過計算機來控制的,可以采用串行接口、PS/2、USB或無線通信接口等實現(xiàn)計算機與CPLD之間的通信,本設計中采用常見的串行接口[4]。串行通信接口采用RS-232C標準,為單向不平衡傳輸方式,以負邏輯規(guī)定邏輯電平,即邏輯1表示為信號電平-5~-15 V,邏輯0表示為信號電平+5~+15 V,最大傳送距離15 m,最大傳送速率20 kbit/s。平時線路保持為1,傳送數(shù)據(jù)開始時,先送起始位(0),然后傳8(或7,6,5)個數(shù)據(jù)位(0,1),接著可傳1位奇偶校驗位,最后為1~2個停止位(1),由此可見,傳送一個ASCII字符(7位),加上同步信號最少需9位數(shù)據(jù)位。
串行通信,一般采用專用芯片來協(xié)調(diào)處理串行數(shù)據(jù)的發(fā)送接收,稱為通用異步發(fā)送/接收器(UART),以節(jié)省CPU的時間,提高程序運行效率。該系統(tǒng)中采用MAX232芯片來處理串行通信[14]。
在系統(tǒng)板上,MAX232工作時需5V電源,而EPM240T1005C工作時需要3.3 V電源。在外部提供5 V電源的前提下,采用REG1117M3電源轉(zhuǎn)化芯片將輸入5 V轉(zhuǎn)為3.3 V,從而實現(xiàn)整個系統(tǒng)的供電。高穩(wěn)定的精密電源對系統(tǒng)的穩(wěn)定度和準確度有極大的影響,故系統(tǒng)電源需特殊處理與保護,即對CPLD的供電電源須進行電容濾波。若將芯片MAX232換為MAX3232芯片,電源供電電壓就統(tǒng)一為3.3 V,因而使設計更加簡潔。系統(tǒng)硬件電路圖見圖3。
圖3 系統(tǒng)硬件電路圖
在圖3中,為便于表示,將EPM240T1005C(CPLD)分為U1A,U1B及U1C3個部分,其中U1A為芯片的輸入輸出端口,U1B為芯片的下載端口,U1C為芯片的電壓部分。CPLD的IO76端口(RXD為連接標識)通過MAX232芯片與外控計算機連接;CPLD的IO64端口(INC為連接標識)為外部參考信號輸入端;CPLD的IO1端口及IO77~IO88端口為脈沖信號輸出端;CPLD的IO20端口(CZ0為連接標識)為外部選擇端口;50 MHz晶振X1通過CLK0連接到CPLD的IO20端,外部5 V電源通過REG1117轉(zhuǎn)換為3.3 V電源,為CPLD提供電壓。其硬件電路實現(xiàn)圖見圖4。
圖4 硬件電路實現(xiàn)圖
軟件設計的任務是基于計算機開發(fā)軟件平臺在CPLD上實現(xiàn)計數(shù)器與串口接收器等。
CPLD是超大規(guī)??删幊踢壿嬈骷瑢崿F(xiàn)編程常用的硬件電路描述語言有VHDL與Verilog HDL,本設計采用VHDL語言。VHDL語言是美國IEEE標準協(xié)會于1987年公布的通用工業(yè)標準硬件描述語言,1995年,我國將VHDL作為EDA硬件描述語言的國家標準,用語言的方式而非圖形等方式描述硬件電路[15]。
VHDL主要用于描述數(shù)字電路系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格十分類似于一般的計算機高級語言。使用該語言,端口設計方便,易實現(xiàn)設計思路,不僅可以采用自頂向下設計流程,也可以采用自下向上的設計方案。
軟件設計中的關(guān)鍵部分是計數(shù)器,計數(shù)器的設計思路直接決定了脈沖信號的穩(wěn)定度與精度。經(jīng)過多次實驗設計與仿真,發(fā)現(xiàn)采用十進制整數(shù)計數(shù)或直接調(diào)用庫函數(shù)計數(shù)器等,誤差都比較大,最后決定采用32位的位累加計數(shù)器,誤差非常小、穩(wěn)定可靠、設計思路簡潔且能實現(xiàn)設計目標。具體軟件設計流程見圖5。
注:rst表示單路脈沖信號還是多路脈沖信號,m表示基數(shù)(初始化設置),m1表示另外一個基數(shù)(串口接收數(shù)據(jù)),st 表示用于設定單路時脈沖信號的頻率(通過串口獲得數(shù)據(jù)),tmp表示計數(shù)變量,c,c1表示輸出的2路脈沖信號。
文中的專用接收器是在CPLD上編程實現(xiàn)的。CPLD上的接收器接收來自計算機的數(shù)據(jù),需要外部提供參考時鐘信號。在本系統(tǒng)中,串口軟件發(fā)送數(shù)據(jù)的發(fā)送速率選取為9 600 bit/s,因此在設計串口接收器時,為便于分頻,選用50 MHz的晶振作為參考信號。
在CPLD串口接收器(UART)設計方面,其接收數(shù)據(jù)格式的轉(zhuǎn)化是指 CPLD與計算機之間交互的數(shù)據(jù)格式轉(zhuǎn)化。計算機串口軟件發(fā)送數(shù)據(jù)格式是按字節(jié)的方式,且對于多位數(shù)據(jù),先發(fā)低位再發(fā)高位。而CPLD接收數(shù)據(jù)時,是按照位的方式接收,且接收的數(shù)據(jù)是按照從低位到高位存儲。因此,CPLD接收的計算機串口數(shù)據(jù)需要轉(zhuǎn)化后才可使用。又計算機串口軟件發(fā)送一個字節(jié),僅能發(fā)送一位十進制數(shù),而這個字節(jié)高四位與該數(shù)無關(guān),但該高四位在CPLD中需占用邏輯單元,造成資源浪費。因此,計算機串口軟件采用十六進制的方式發(fā)送數(shù)據(jù)。所需發(fā)送的十進制數(shù)據(jù)在發(fā)送前需要轉(zhuǎn)化為十六進制格式。根據(jù)計數(shù)器的設計,CPLD只能接收8位十六進制數(shù)據(jù),字長為4字節(jié)的32位二進制數(shù),數(shù)值的范圍為0~4 294 967 295。因此,為了準確控制脈沖信號相位,計算機串口軟件每次必須發(fā)送8位十六進制數(shù)據(jù)。圖6是CPLD數(shù)據(jù)格式轉(zhuǎn)化示意圖。
圖6 CPLD數(shù)據(jù)格式轉(zhuǎn)化示意圖
仿真實驗是在Quartus II 9.0軟件平臺上進行的,該設計平臺在實現(xiàn)軟件設計的同時還提供了豐富的其他功能,如仿真、時序分析與逼近、功耗分析及調(diào)試等,這極大地縮短了設計周期,提高了開發(fā)效率,而且該功能仿真與實際電路實現(xiàn)功能相比誤差較小。此外利用該平臺還可實現(xiàn)JTAG下載等。本文選取的仿真實驗是指功能仿真實驗。設置參考信號為100 MHz,基數(shù)為9時,其單路輸出為百納秒脈沖信號,仿真圖見圖7。在同樣的外部輸入?yún)⒖夹盘栂?,設置一個基數(shù)為9,另外一個基數(shù)為7,即多路脈沖信號之間的時間間隔為70 ns,其多路脈沖信號仿真實驗圖見圖8。
在仿真實驗中,表示參考信號,與1表示輸出脈沖信號。由圖7、圖8可以看到,輸出脈沖信號的寬度為輸入信號的一個周期,輸入信號上升沿與輸出信號上升沿是同步的,沒有毛刺與相位差,這說明了本設計中選取位累加計數(shù)器的方案是正確的。
圖7 單路脈沖信號仿真圖
圖8 多路脈沖信號仿真圖
在系統(tǒng)單路測試實驗中,首先將中國科學院國家授時中心UTC(NTSC)主鐘的10MHz信號作為HROG10(相位微調(diào)儀)的外部參考信號,由HROG10輸出高穩(wěn)定度的10 MHz信號,將HROG10輸出的10MHz信號提供給基于CPLD的高精度可調(diào)脈沖信號發(fā)生器,由該脈沖信號發(fā)生器產(chǎn)生單路脈沖信號,最后,使用時間間隔計數(shù)器SR620測量HROG10輸出1PPS與該脈沖信號發(fā)生器產(chǎn)生的秒脈沖的時間間隔,對該可調(diào)脈沖信號發(fā)生器產(chǎn)生單路脈沖信號的穩(wěn)定性和準確度進行評價。單路脈沖信號測試框圖見圖9。曾于2012年11月1日00:00到04:00每秒取一個數(shù)據(jù),共采樣14 000個數(shù)據(jù),由取樣數(shù)據(jù)計算得到該可調(diào)脈沖信號發(fā)生器產(chǎn)生秒脈沖信號的1 s取樣Allan方差為1.84×10-11,見圖10。
圖9 單路脈沖信號測試框圖
圖10 Allan方差
在系統(tǒng)多路測試實驗中,將國家授時中心UTC(NTSC)主鐘的10 MHz信號作為HROG10(相位微調(diào)儀)的外部參考信號,由HROG10輸出高穩(wěn)定度的10 MHz信號,將HROG10輸出的10 MHz信號提供給基于CPLD的高精度可調(diào)脈沖信號發(fā)生器,由該脈沖信號發(fā)生器產(chǎn)生多路脈沖信號,最后,使用時間間隔計數(shù)器SR620測量該脈沖信號發(fā)生器產(chǎn)生的2路脈沖信號的時間間隔,對該可調(diào)脈沖信號發(fā)生器產(chǎn)生的多路脈沖信號的穩(wěn)定度和準確度進行評價。多路脈沖信號測試原理框圖見圖11。
圖11 多路脈沖信號測試框圖
取2路脈沖信號的時間間隔分別為10 s,1 s,100 ms,10 ms,1 ms,100μs,10μs,1μs,500 ns,200 ns和100 ns,進行測量。測量所得各個時間間隔相對偏差(2路信號之間的時間間隔與標準值之差)的均值、2路信號之間的時間間隔數(shù)據(jù)系列的峰-峰值和1 s取樣的Allan方差值見表1。以2路脈沖信號的時間間隔為1 s,100 ms,1μs及200 ns的情況為例繪制相對時間偏差圖和Allan方差圖,分別示于圖12至圖15和圖16至圖19。
表1 測量結(jié)果
圖13 時間間隔為100 ms的相對時間偏差
圖14 時間間隔為1 ns的相對時間偏差
圖15 時間間隔為200 ns的相對時間偏差
圖16 時間間隔為1 s的Allan方差
圖17 時間間隔為100 ms的Allan方差
圖18 時間間隔為1 μs的Allan方差
圖19 時間間隔為200 ns的Allan方差
在測量中,信號電纜時延差為5.59963 ns,另外有BNC接頭時間差、硬件電路走線時間差及隨機誤差等,故從表1看出,該可調(diào)脈沖信號發(fā)生器產(chǎn)生脈沖的時間間隔是準確的,最小時間間隔取決于外部參考信號,最大時間間隔取決于硬件計數(shù)器的最大基數(shù)。表1及圖12至圖15、圖16至圖19表明,該可調(diào)信號發(fā)生器產(chǎn)生的脈沖信號是穩(wěn)定可靠的。
本文研制的基于CPLD的高精度可調(diào)脈沖信號發(fā)生器充分利用了CPLD數(shù)字器件及VHDL語言的優(yōu)點,設計清晰簡潔,控制靈巧方便。它可以為多通道時間間隔測量設備提供單路可調(diào)的測試脈沖信號或多路可調(diào)的測試脈沖信號,在評估測試多通道時間間隔測量設備試驗中得到了具體應用。通過實驗測試證明,該可調(diào)脈沖信號發(fā)生器準確性好、穩(wěn)定度高、性價比高、應用前景廣闊。若使用精密專業(yè)供電電源,該可調(diào)脈沖信號發(fā)生器的性能會更加穩(wěn)定。另外,若將計算機控制改進為微系統(tǒng)(單片機或FPGA等)控制,可調(diào)脈沖信號發(fā)生器便可微型化,方便測試使用。
[1] 李孝輝, 楊旭海, 劉婭, 等. 時間頻率信號的精密測量[M]. 北京: 科學出版社, 2010.
[2] 施韶華, 李孝輝, 張慧君. 基于TDC-GPX的多通道時間間隔測量系統(tǒng)設計[J]. 儀器儀表學報, 2009, 30(S10): 252-256.
[3] 辜新宇, 郭際, 施韶華, 等. 多通道精密時間間隔測量系統(tǒng)的研制[J]. 電子測量與儀器學報, 2013, 27(1): 69-75.
[4] 張正, 董紹武, 張敏. 一種基于FPGA的多種波形發(fā)生器的設計[J]. 時間頻率學報, 2008, 32(2): 133-136.
[5] 陳建, 白永林, 程光華, 等. 基于MCU和CPLD的嵌入式可調(diào)脈沖信號發(fā)生器設計[J]. 電子器件, 2007, 30(4): 1249-1251.
[6] 張良, 秦玲, 劉承俊, 等. 多通道可調(diào)脈寬脈沖發(fā)生器設計[J]. 電子技術(shù)應用, 2007(5): 29-31.
[7] 王沖, 霍正軍, 羊天德, 等. 基于CPLD的雷達脈沖發(fā)生器的設計[J]. 計算機工程與設計, 2007, 28(13): 3172-3181.
[8] 杜繼業(yè), 董靜然, 宋顧周. 一種脈寬可調(diào)的高壓脈沖發(fā)生器的研究與設計[J]. 核電子學與探測技術(shù), 2010, 30(8): 1046-1049.
[9] 王奎龍. 基于LabVIEW的多路時序控制脈沖發(fā)生器設計[J]. 現(xiàn)代電子技術(shù), 2009, 307(20): 181-195.
[10] 謝東東, 吳俠義, 禹衛(wèi)東. 一種多通道星載SAR通道間一致性精確測量方法[J]. 電子測量與儀器學報, 2012, 26(5): 379-384.
[11] 田芳寧, 孫國強. 脈沖信號發(fā)生器自動測試系統(tǒng)設計[J]. 國外電子測量技術(shù), 2011, 30(3): 44-45.
[12] 曾繁泰, 陳美金. VHDL程序設計[M]. 北京: 清華大學出版社, 2001.
[13] 潘松, 黃繼業(yè). EDA技術(shù)實用教程[M]. 北京: 科學出版社, 2005.
[14] 郭俊香, 曹領(lǐng). RS-232C接口及其使用[J]. 儀器儀表用戶, 2007(1): 27-28.
[15] 劉玉欽, 吳國強. 運用VHDL實現(xiàn)數(shù)字信號處理[J]. 電子測量與儀器學報, 2008, (S2): 145-148.
Development of an adjustable high-precision pulse signal generator based on CPLD
FAN Duo-sheng1,2,3, SHI Shao-hua1,2, LI Xiao-hui1,2
(1. National Time Service Center, Chinese Academy of Sciences, Xi′an 710600, China; 2. Key Laboratory of Time and Frequency Primary Standards, National Time Service Center, Chinese Academy of Sciences, Xi′an 710600, China; 3. University of Chinese Academy of Sciences, Beijing 100049, China)
To meet the test requirement of the precise time interval measurement equipments, we designed a phase-adjustable high-precision pulse signal generator. In the design, simulation and hardware-implementation, the computer serial port control mode was adopted, the complex programmable logic device (CPLD), which has the advantages of high level of integration/good reliability/fast operating speed, was utilized, and the Altera's Quartus II software was adopted. The result of simulation and experiment shows that the pulse signal generator can not only generate a single adjustable pulse signal, but also generate the multi-channel adjustable pulse signals. The Allan(=1s) for the single 1PPS signal is 1.84×10-11, the Allan variance(=1s) for the multi-channel pulse signals with a time interval of 100 ns is 2.36×10-11, and the peak-peak value of the time interval data series for two channels of signal is 101ps. This pulse signal generator can meet the needs of the multi-channel time interval measurement equipment in stability and accuracy.
pulse signal generator; CPLD(complex programmable logic device); time interval
TN782
A
1674-0637(2014)01-0025-09
2013-04-22
國家自然科學基金資助項目(61001076);國家重大科研儀器設備研制專項資助項目(61127901)
樊多盛,男,碩士研究生,主要從事高精度時間頻率測量與控制研究。