摘 要:針對X光安檢機系統(tǒng)控制信號傳輸中采用傳統(tǒng)串行通信方式所存在的問題,提出一種利用數(shù)字鎖相環(huán)技術(shù)實現(xiàn)串行數(shù)據(jù)時鐘提取的硬件解決方案。該設計基于FPGA進行開發(fā),并針對安檢機中串行控制數(shù)據(jù)傳輸?shù)臄?shù)字鎖相環(huán)進行研究,設計了適用于FPGA的串行時鐘提取系統(tǒng),最終采用Verilog語言實現(xiàn)。該設計經(jīng)過安檢機系統(tǒng)的硬件平臺實際測試,最終經(jīng)過Signal Tap Ⅱ讀取實時數(shù)據(jù)進行驗證,可以論證該方案的時鐘捕捉周期短,捕捉精度也滿足安檢機系統(tǒng)要求,從而實現(xiàn)了安檢機系統(tǒng)數(shù)字控制信號的單線路傳輸,有效地提高傳輸?shù)目煽啃浴?/p>
關(guān)鍵詞:安檢設備; FPGA; 數(shù)字鎖相環(huán); 時鐘提取
中圖分類號:TN919 文獻標識碼:A
文章編號:1004-373X(2010)09-0112-04
Design and Implementation of the Control Signal Clock Recovery
Based on X-Ray Security Inspection Equipment
HAN Bo-tao, TAO Cheng
(School of Electronic and information Engineering, Beijing Jiaotong University, Beijing 100044, China)
Abstract:
A hardware solution of achieving serial data clock recovery by using phase locked loop is proposed, aiming at the existed problems of adopting traditional serial communication in the control signal transmission of X-ray security inspection system. The design is developed based on FPGA, the digital phase locked loopof serial control data transmission in the secu-rity inspection equipment(SIE) is researched, a serial clock recovery system for FPGA is designed, and the designs is realized by Verilog. The design is tested by the hardware system of SIE, and finally verified by the real-time data read from the Signal Tap II. The capture period of the clock recovery is short enough, and the capture precision also satisfy the system requirements, so the single line transmission of digital control signal in SIE system is realized, and the reliability of this system is effectively improved.
Keywords: security inspection equipment; FPGA; DPLL; clock recovery
收稿日期:2009-12-25
0 引 言
在安檢機系統(tǒng)中,安檢機的主設備與控制臺的雙向通信具有非對稱性,由主設備X射線端采樣得到的大量數(shù)據(jù)通過高速通道傳送至PC控制臺進行處理。然而由控制臺傳送給安檢機的控制信號,因數(shù)據(jù)量較小,僅需低速通道進行傳輸即可[1],并且在安檢主設備端對于高速數(shù)據(jù)的處理是基于FPGA平臺實現(xiàn)的,若同時采用單片F(xiàn)PGA對接收控制信號進行處理,一方面可減少硬件電路的設計負擔,另一方面也降低了設備成本。但與此同時,若該系統(tǒng)采用傳統(tǒng)串行通信方式[1],則在處理高速數(shù)據(jù)的FPGA電路單元中引入低速時鐘線,不僅容易受到電路板上高頻信號的影響,而且由于控制臺距離CT機距離較長,不利于時鐘信號的傳輸。因此,對于安檢機控制信號的傳輸一般采用單路串行低速通信方式。對于這種傳輸方式,在FPGA上采用一種高效的數(shù)字時鐘提取技術(shù)就十分必要。
1 數(shù)字時鐘提取環(huán)路基本原理
數(shù)字鎖相環(huán)能讓本地產(chǎn)生的時鐘信號自動跟蹤輸入信號相位,從而實現(xiàn)一個閉環(huán)自動控制系統(tǒng)。數(shù)字鎖相環(huán)的基本結(jié)構(gòu)是由數(shù)字鑒相器(DPD)、數(shù)字環(huán)路濾波器(DLF)、數(shù)字可控振蕩器(DCO)和本地時鐘源(LC)組成的一個反饋環(huán)路[2-3],其具體原理框圖如圖1所示。
圖1 數(shù)字時鐘提取環(huán)路原理圖
基于數(shù)字鎖相環(huán)的數(shù)據(jù)時鐘提取系統(tǒng)工作原理如下:本地產(chǎn)生一個高頻率的時鐘,數(shù)字鑒相器通過輸入信號與估算時鐘進行鑒相比較,輸出鑒相信息。之后由數(shù)字環(huán)路濾波器根據(jù)鑒相信息對相位誤差進行平滑運算,輸出數(shù)控振蕩器控制信號,通過對本地估算時鐘的相位調(diào)整,最終跟蹤到輸入數(shù)據(jù)的位同步時鐘[2]。
2 各模塊功能及實現(xiàn)原理
2.1 數(shù)字鑒相器
數(shù)字鑒相器用于獲取輸入信號與本地估算時鐘的相位比較信息,常用異或門實現(xiàn)。在數(shù)字鑒相器中,首先將輸入信號的正向過零脈沖與本地估算信號的正向過零脈沖進行比較,從中得到一個表明相位提前或延后誤差的脈沖輸出,其寬度反映超前(滯后)相位的多少[4]。當本地估算信號超前于輸入信號時,其輸出為超前脈沖,反之,則為滯后脈沖。綜合考慮到安檢系統(tǒng)中的控制信號屬于數(shù)字信號,并且由于FPGA的資源主要用于完成采集數(shù)據(jù)的處理,應盡量減少對FPGA資源的使用。本文的方案采用了超前/滯后數(shù)字鑒相器[5]。
超前/滯后數(shù)字鑒相器硬件實現(xiàn)有兩種方式,分為積分型結(jié)構(gòu)與微分型結(jié)構(gòu)。積分型結(jié)構(gòu)的硬件實現(xiàn)比較復雜,但具有良好的抗干擾性能;微分型結(jié)構(gòu)則具有相反特性。為了優(yōu)化系統(tǒng)性能,選擇使用微分型結(jié)構(gòu)。盡管微分型結(jié)構(gòu)的抗干擾能力較弱,但是結(jié)合安檢機系統(tǒng)的實際環(huán)境,該結(jié)構(gòu)可以滿足系統(tǒng)需要。圖2為微分型超前/滯后數(shù)字鑒相器的結(jié)構(gòu)原理圖,圖3為其時序圖[5]。
圖2 數(shù)字鑒相器結(jié)構(gòu)圖
圖3 數(shù)字鑒相器工作時序圖
通過時序圖可以看到,輸入數(shù)據(jù)datain在本地估算時鐘的邊沿(包含上升沿和下降沿)觸發(fā)下,依次存入寄存器a,b,c中。在時鐘下降沿的觸發(fā)下,通過對a,c信號進行異或運算,生成error信號,作為誤差跳變絕對值輸出。通過對b,c信號進行異或運算,生成sign信號,作為超前/滯后標志位輸出。具體仿真結(jié)果如圖4所示。
從圖4可以發(fā)現(xiàn),對于error信號,若前一位數(shù)據(jù)存在跳變,則輸出高電平,否則輸出低電平。對于sign信號,當估算時鐘超前時,輸出高電平,滯后時,輸出低電平。該模塊輸出的兩路信號將作為環(huán)路濾波器的輸入信號,對下級結(jié)構(gòu)進行控制。
圖4 數(shù)字鑒相器時序仿真圖
2.2 數(shù)字環(huán)路濾波器
數(shù)字環(huán)路濾波器在鎖相環(huán)路系統(tǒng)中主要起兩種作用:其一,輸出超前調(diào)整信號及滯后調(diào)整信號,以控制數(shù)控振蕩器模塊,對估計時鐘進行相位調(diào)整;其二,有數(shù)字濾波作用,對噪聲信號及高頻干擾信號起到較好的抑制作用。數(shù)字環(huán)路濾波器內(nèi)部擁有容量為2N的計數(shù)器,能夠有效消除隨機出現(xiàn)的具有正態(tài)分布特性的噪聲信號。容量2N值越大,對噪聲抑制效果越好,但同時2N值越大,跟蹤速度越慢,實時捕捉能力下降[6]。所以設計時,2N值的選取要綜合考慮安檢系統(tǒng)的實際參數(shù)要求。出于減少占用FPGA系統(tǒng)資源的考慮,該系統(tǒng)采用隨即徘徊濾波器作為實現(xiàn)方案。該濾波器原理框圖如圖5所示。
圖5 數(shù)字環(huán)路濾波器結(jié)構(gòu)原理圖
在實現(xiàn)方案中,環(huán)路濾波器通過加減計數(shù)邏輯單元實現(xiàn)。通過讀取鑒相單元輸出的兩路使能信號對計數(shù)器進行代數(shù)累加或累減操作,當達到記數(shù)的邊界值0或2N時在輸出端送出insert(插入時鐘周期)或deduct(扣除時鐘周期),與此同時,計數(shù)器內(nèi)部寄存器值從2N自動恢復到N,重新開始[7]。
該模塊如圖6所示,其中clk1是記數(shù)時鐘,由數(shù)控振蕩器模塊內(nèi)部分頻得到;clr是啟動清零控制端;en接前端模塊的error信號,該引腳是對記數(shù)功能的使能,即在輸入數(shù)據(jù)(Data_in)有跳變時,才能判斷相位誤差;up_down是加減記數(shù)輸入,與上級模塊的sign使能信號相連,當sign=1時,做累加操作,當sign=0時,做累減操作,直到代數(shù)累加/累減運算到0或2N時,再對累加/累減計數(shù)器進行恢復。
在安檢機控制信號中,考慮到隨機噪聲引起的相位誤差輸出長時間地保持在同一極性,誤差很小,在該模塊中會被有效抵消,而不會傳到后級模塊,從而可達到抑制噪聲的目的。與此同時,根據(jù)安檢機系統(tǒng)參數(shù)的要求,取N=512,當處于累加計算時,計算上限為1 023;當處于累減計算時,計算下限是0。
圖6 數(shù)字環(huán)路濾波器模塊圖
2.3 數(shù)控振蕩器
數(shù)控振蕩器的主要功能是根據(jù)前級環(huán)路濾波器模塊輸出的insert 和deduct控制信號[8],生成本地估算時鐘clk_e,該時鐘即為數(shù)字鎖相環(huán)(DPLL)最終提取到的數(shù)據(jù)時鐘。此外,在本設計中,數(shù)控振蕩器整合了本地時鐘模塊的功能,同時產(chǎn)生了用于整個系統(tǒng)的各路時鐘信號,從而使系統(tǒng)各個模塊能夠協(xié)調(diào)工作,保證了系統(tǒng)運行的穩(wěn)定性和可靠性。數(shù)控振蕩器模塊分為兩個基本模塊,即catch和div模塊。具體結(jié)構(gòu)圖如圖7所示。
圖7 數(shù)控振蕩器設計結(jié)構(gòu)圖
catch模塊的功能如下:
在本系統(tǒng)中,F(xiàn)PGA上用于驅(qū)動高速采樣數(shù)據(jù)發(fā)送的主時鐘為64 MHz,因此本設計中的全局時鐘Gclk頻率為64 MHz,這樣可以有效節(jié)約FPGA上的硬件PLL資源,提高了硬件使用效率[9]。
在catch模塊內(nèi)部,首先對全局時鐘Gclk進行4分頻,由于Gclk的設計頻率為64 MHz,實現(xiàn)4分頻后達到16 MHz。之后,catch模塊根據(jù)前端環(huán)路濾波器的輸出信號insert和reduct,在分頻后的16 MHz時鐘推動下,若insert信號出現(xiàn)高脈沖,自動在4分頻后的時鐘上補充一個Gclk時鐘周期的延時,該操作僅對insert信號的高脈沖上升沿有效;相類似,若reduct信號出現(xiàn)高脈沖,自動在4分頻后的時鐘上扣除一個Gclk時鐘周期[9]。
div模塊的功能如下:
該模塊為catch單元的后級,其主要功能是根據(jù)catch給出的Gclk_out信號進行N分頻。在本系統(tǒng)中,需要恢復頻率為4 MHz的數(shù)據(jù)時鐘,因此這里第一個分頻系數(shù)N=4,輸出為16/4=4 MHz的時鐘信號(clk_e),第二個分頻時鐘為數(shù)字環(huán)路濾波器的記數(shù)時鐘,該信號是經(jīng)過2分頻(頻率為8 MHz)后的時鐘信號,用于進行DLF濾波。與此同時,也可以加速該時鐘,這樣可以縮短捕捉時間,并且擴展其捕捉帶寬。
該數(shù)控振蕩器的加扣時鐘和分頻的綜合仿真時序圖如圖8所示。
圖8 數(shù)控振蕩器仿真時序圖
從該時序圖可以看到,在insert與reduct信號的控制下,模塊內(nèi)部進行加/減時鐘操作,最終在輸出時鐘信號中得到延時或者扣除節(jié)拍的捕捉效果。
3 本系統(tǒng)整體時序仿真結(jié)果
結(jié)合安檢機控制信號的實際傳輸情況,確定設計要求,對整體系統(tǒng)進行時序仿真。其中,選定Gclk頻率為64 MHz,數(shù)據(jù)速率為4 Mb/s,并設定初始狀態(tài)中,估計時鐘和數(shù)據(jù)的相位差為103.775 ns,顯示結(jié)果為相位滯后。根據(jù)數(shù)字鎖相環(huán)的基本原理,必須進行扣脈沖的操作后才能最終提取到同步時鐘。鑒于該系統(tǒng)需要的捕獲精度較高,因此捕獲時間較長,并且由于整個仿真界面有限,只能觀察到時鐘提取過程[10],具體如圖9所示。
圖9 整體系統(tǒng)仿真時序圖
由圖9可以看出,從箭頭處開始,出現(xiàn)了扣脈沖和加脈沖循環(huán)出現(xiàn)的情況,對于該情況分析如下:
由于初始設定的估計時鐘相位滯后為103.775 ns,從圖9仿真結(jié)果可以看出,在經(jīng)歷了7次扣脈運算后,由于每次扣脈沖的時間是1/(64×106)=15.225 ns,那么7個扣脈沖的時間就是15.225 ns×7=106.575 ns。在7個時鐘扣除以后,相位又超前了106.575-103.775=2.8 ns,因此后續(xù)的操作必須加脈沖,從而實現(xiàn)相位捕捉。因為每加一個脈沖是15.225 ns,之后會再次出現(xiàn)相位滯后,又進行扣脈沖操作。如此循環(huán),直到最終接近極限,提取到穩(wěn)定的時鐘信號。
4 FPGA硬件測試
鑒于該系統(tǒng)應用于安檢機控制信號傳輸系統(tǒng)中,故將該設計通過FPGA硬件平臺進行了驗證。該驗證平臺基于Altera公司Cyclone系列的EP1C12Q240C8型號的FPGA芯片。鑒于實際系統(tǒng)中FPGA的本地系統(tǒng)時鐘為32.768 MHz,故測試輸入數(shù)據(jù)(datain)的速率為4.096 MHz。基于FPGA開發(fā)軟件Quartus實現(xiàn)的測試系統(tǒng)整體結(jié)構(gòu)圖如圖10所示。
圖10 整體系統(tǒng)設計結(jié)構(gòu)圖
Signal Tap Ⅱ邏輯分析器是Quartus軟件中集成的一個內(nèi)部邏輯分析軟件,使用它可以觀察設計的內(nèi)部信號變化,為FPGA設計的調(diào)試、開發(fā)帶來極大的方便,實用性很高。以下各圖為Quartus軟件中Signal Tap Ⅱ?qū)崟r觀察到的數(shù)據(jù)[11]。
相位調(diào)整驗證如圖11所示。由圖11可以發(fā)現(xiàn),開始時鐘的相位滯后于數(shù)據(jù)相位。因此經(jīng)過調(diào)整,通過數(shù)字環(huán)路濾波器輸出的reduct信號控制數(shù)控振蕩器模塊進行扣時鐘操作,最終使本地估算時鐘與數(shù)據(jù)時鐘同步,正確地調(diào)整了相位。
圖11 相位調(diào)整實時顯示圖
當該系統(tǒng)捕獲到數(shù)據(jù)時鐘后,就會穩(wěn)定輸出與數(shù)據(jù)信號同相的時鐘信號,穩(wěn)定狀態(tài)截圖如圖12所示。
圖12 穩(wěn)定提取時鐘后實時顯示圖
利用FPGA開發(fā)平臺所具有的Signal Tap Ⅱ功能,成功地在硬件平臺上驗證了該系統(tǒng)的可行性與穩(wěn)定性。
5 結(jié) 語
目前,鑒于國際國內(nèi)形勢的發(fā)展,
安檢機系統(tǒng)得到了越來越廣泛的應用,安檢機中通信系統(tǒng)的發(fā)展也逐漸趨向高速化、高效化。對于采樣數(shù)據(jù)量的增大,就要求有一條高速傳輸通道,同時,控制臺低速控制信號的傳輸也要求有高效鏈路的構(gòu)建。本文設計了一個高效時鐘提取方案,并在FPGA上完成了驗證。實驗結(jié)果表明,基于鎖相環(huán)的實現(xiàn)方案不僅提高了時鐘提取的精度,而且平衡了捕捉時間,為安檢機系統(tǒng)低速控制信令的傳輸提供了基本的技術(shù)支持,并且使控制信號的傳輸僅需要一條數(shù)據(jù)線就可以完全實現(xiàn),保證了安檢機控制信號鏈路傳輸?shù)母咝裕档土嗽O備成本,加快了開發(fā)速度,提高了整體系統(tǒng)的運行效率。
參考文獻
[1]奚學良.安全檢查設備控制系統(tǒng)的研究與實現(xiàn)[D].北京:北京交通大學,2007.
[2]黃智偉.鎖相環(huán)與頻率合成器電路設計[M].西安:西安電子科技大學出版社,2008.
[3]Floyd M Gardner.鎖相環(huán)技術(shù)[M].北京:人民郵電出版社,2007.
[4]張文,姚福安,侯磊.基于FPGA實現(xiàn)的一種新型數(shù)字鎖相環(huán)[J].現(xiàn)代電子技術(shù),2007,30(4):183-185.
[5]CHUNG Ching-che, LEE Chen-yi. An all-digital phase-locked loop for high-speed clock generation[J]. IEEE Journal of Sold-state Circuits,2003(2): 347-351.
[6]蒲曉婷.全數(shù)字鎖相環(huán)的設計及分析[J].現(xiàn)代電子技術(shù),2008,31(5):173-175.
[7]劉嵐,黃秋元,陳適.FPGA應用技術(shù)基礎教程[M].北京:電子工業(yè)出版社,2009.
[8]陳良灝,韓嘯.數(shù)字鎖相環(huán)位同步器及其FPGA設計[J].微處理機,2007(5):2-6.
[9]劉昌華,管庶安.數(shù)字邏輯原理與FPGA設計[M].北京:北京航空航天大學出版社,2009.
[10]杜慧敏.基于Verilog的FPGA設計基礎[M].西安:西安電子科技大學出版社,2002.
[11]喬廬峰.VerilogHDL數(shù)字系統(tǒng)設計與驗證[M].北京:電子工業(yè)出版社,2009.