摘 要: 時鐘同步是網絡通信系統中保證數據正確和有效傳輸的前提,廣泛應用于傳統電話網絡、IP網絡、光網絡和無線傳輸網絡等。針對目前網絡時鐘同步控制的復雜性,在分析網絡結構、時鐘控制和彈性緩沖區原理的基礎上,提出一種基于FPGA、CPU和DDS技術的網絡自同步時鐘控制方法。通過軟硬件相結合的處理方式,以最小開銷實現網絡時鐘快速同步。然后對其原理進行了分析,給出實現的硬件框圖、FPGA信號流程和CPU設計流程,并在設備和網絡中進行了驗證,驗證結果表明該方法是正確、可行和有效的。
關鍵詞: 時鐘同步; 彈性緩沖; FPGA; DDS
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2013)18?0080?04
0 概 述
時鐘同步就是使多個不同設備或系統的時鐘保持在相同的頻率范圍內,時鐘同步的目的就是盡量消除設備之間的時鐘偏差,保證數據的可靠傳輸[1]。在通信系統里,時鐘同步是系統穩定工作的保證,因此如何保證系統時鐘同步是網絡設計必須考慮的內容,常用的時鐘同步方式有準同步、主從同步、授時同步方式等。
傳統的通信系統對時鐘同步的要求很高。準同步就是兩個完全獨立的時鐘系統,要實現時鐘同步對時鐘精度要求很高,優點是技術實現非常簡單,缺點是時鐘源價格很高,增加成本。主從同步就是通過時鐘鎖相原理,將系統的從時鐘調節成與主時鐘頻率相同,最后整個系統都穩定在主時鐘頻率點上,優點是時鐘可以動態調整,缺點是系統需要配置主從關系,而且只能一個作主多個作從。授時同步與主從同步類似,只是應用范圍和網絡環境更廣泛,例如目前主流的GPS和IEEE 1588就是典型授時同步,優點是同步精度高、收斂速度快,缺點是技術復雜、成本高。由于傳統的時鐘同步處理需要確定中心的主時鐘,在機動的軍用通信網絡里不是很實用,因為軍用網絡拓撲頻繁變化,無法確定中心時鐘。因此,下面提出一種不需要中心時鐘的時鐘自同步控制方法,基于直接數字頻率合成器(Direct Digital Synthesizer,DDS)技術,通過CPU和現場可編程門陣列(Field Programmable Gate Array,FPGA)進行控制,能快速實現網絡時鐘同步收斂。
1 時鐘自同步原理
1.1 時鐘控制原理
在某些規模較小的網絡系統里,設備之間采用時鐘自同步方式進行組網。自同步方式不需要高精度時鐘源,它是通過比較輸入時鐘與本地時鐘的頻率差,由CPU綜合各端口的情況,經過運算,送出控制字,去調整本地時鐘源。在系統正常運行過程中,各設備時鐘源始終處于動態調整過程,調整步長越來越小,最后全網的時鐘穩定在一個頻率點附近,從而將滑動幅度和滑動時間間隔控制在要求的范圍內,達到網絡時鐘同步的目的。圖1是時鐘自同步網絡的一種設備互連拓撲結構。
自同步組網對時鐘的參數要求是:時鐘精度≤20 PPM,頻率控制范圍為±50 PPM,自同步方式下時鐘平均收斂時間≤1 min。
1.2 彈性緩沖原理
自同步組網技術通過時鐘控制技術和數據緩沖控制機制實現的。為保證設備采用自同步組網后無滑碼,在設備的接口處設計了滑動窗口的數據彈性緩沖器,來吸收讀寫時鐘的頻率和相位偏差,只要讀寫時鐘在緩沖區控制的范圍內滑動,就不會發生數據丟失(下溢)或重讀(丄溢),即不會產生滑碼現象[2]。圖2是滑動窗口的數據緩沖示意圖。
在圖2中,Wp為緩沖區的寫時鐘(線路輸入時鐘);Rp為緩沖區的讀時鐘(本地時鐘);緩沖區長度為n比特,復位時Wp和Rp拉開距離為[n2]b(即固定緩沖延時);收時鐘和本地發時鐘的頻率偏差只要控制在±[n2] Hz范圍內,使Wp和Rp首尾不相等,就不會發生滑碼(如n=256時,時鐘滑動范圍為±128 Hz)。
考慮到網絡節點和拓撲變化,以及鏈路傳輸信道延時和時鐘恢復抖動的影響,滑動緩沖區長度n的值不能太小,太小會因為時鐘控制區域太窄造成緩沖區頻繁溢出而發生滑碼;n值太大會增加緩沖時延影響傳輸性能,不同速率可采用不同的緩沖區長度。(如n=256時,當接口速率為2 048 Kb/s時緩沖時延為62.5 μs)。
若緩沖區長度n=256,當中繼接口速率為2 048 Kb/s時,監視設備輸出的2 048 kHz時鐘滑動范圍應該為128個時鐘周期[2562=128]。時鐘頻率為2 048 kHz,偏差為50 PPM的時鐘周期為102(2.048×50)。由于128>102,緩沖區深度完全滿足時鐘偏差的指標要求。
2 時鐘控制方案
2.1 原理框圖
圖3是同步時鐘控制的硬件原理框圖,該方案采用“FPGA+CPU+DDS+Buffer”的硬件結構實現了時鐘控制和數據緩沖的處理。其中FPGA,CPU和DDS完成時鐘控制,Buffer完成數據緩沖。
圖3中每個模塊之間的工作流程如下:
FPGA使用本地晶振時鐘(CLK_OSC)對鏈路輸入時鐘(CLK_IN[i],i=0~n)和設備輸出時鐘(CLK_OUT)進行計數,計數結果定時匯報至CPU。
CPU定時從FPGA獲取輸入時鐘和輸出時鐘計數值,根據計數值計算平均值,將平均值作為參考,將時鐘控制字寫入DDS用于調整DDS時鐘輸出。
DDS根據控制字和晶振參考時鐘,進行頻率合成,輸出調整后的時鐘到FPGA、Buffer和外部鏈路。
每路時鐘和數據對應一個Buffer,輸入時鐘(CLK_IN[i],i=0~n)作為入數據(Di)寫入時鐘(Wp),輸出時鐘(CLK_OUT)作為出數據(Do)讀出時鐘(Rp)。
2.2 時鐘調整
圖4中的5個節點時鐘頻率分別是fa~fe,中心頻率分別是fs.a~fs.e,各節點的中心頻率是與其相鄰的所有節點時鐘與本節點時鐘的平均值。
頻率調整步長為中心頻率與節點頻率的差值再與緩沖區深度的半值(128)取模。如果步長為正值,則需要增加節點時鐘頻率(稱為正調整);如果步長為負值,則需要減少節點時鐘頻率(稱為負調整)。
每個節點時鐘計算的節點數量、中心頻率和調整步長如表1所示。
從圖4和表1中可以看出,每個節點的網絡拓撲和相鄰互連的節點數量不完全一樣,因此中心頻率和調整步長也不完全相同,由于每個節點的時鐘頻率都在動態調整,因此中心頻率和步長也在動態變化,總的變化趨勢是節點頻率越來越接近中心頻率,步長越來越小,最后整個網絡各節點時鐘都基本相同,處于平衡狀態。
3 時鐘控制實現
3.1 輸入時鐘的采用
在圖5中,鎖相倍頻器對外部的群路輸入時鐘Clk_In進行倍頻處理[4],將不同頻率的時鐘統一鎖定到8.192 MHz頻率上,然后由計數器對鎖相后的時鐘進行計數。由本地時鐘Clk_Osc通過定時器產生100 ms定時信號,通過當前計數寄存器對計數器的值進行定時鎖存,當前計數寄存器與上次計數寄存器通過計數加法器進行相減,得到100 ms的定時計數差值,然后對差值進平滑處理后送到總線Q[23:0],通過定時器控制中斷發生器產生的中斷信號通知CPU定時從總線Q[23:0]讀取計數值。
需要說明的是圖5中的計數器滾動計數,計數過程中不清零,計數減法器的值可能為負數,需要通過平滑處理后再送給CPU。由于8.192 MHz時鐘的100 ms計數值為819 200,十六進制為0xC8000,因此選用24位的計數器和總線即可滿足要求。在100 ms定時中斷發生時,CPU需要同時把所有輸入時鐘計數器數據都讀取出來,并記錄。
3.2 輸出時鐘的控制
圖6是 輸出時鐘控制的流程圖,時鐘控制的計算主要由CPU完成,根據當前輸入時鐘的頻率,計算出需要調整的參數,控制DDS輸出需要的頻率時鐘。
在圖6中,整個程序采用中斷方式處理,即由外部產生100 ms的定時中斷請求信號,在100 ms內完成所有的參數判斷、計算和處理。時鐘隔離判決主要是對輸入的時鐘進行偏差判決,對于頻率偏差在50 PPM以外的時鐘進行隔離,不參與時鐘自同步的計算,主要是避免時鐘偏差的繼續擴散。平滑DDS頻率參數主要是根據頻率調整步長進行處理,由于DDS是12位A/D精度的數字頻率合成器芯片,需要將頻率步長轉換為DDS的頻率控制字[5]。其他的功能模塊在前面都有過描述。
4 測試結果與分析
為了驗證網絡時鐘同步的最長收斂時間,需要對圖4中的5個節點的初始時鐘進行最大偏差設置,然后每隔10 s分5個時間點對每個節點進行頻率記錄,如表2所示。
從表2中可以看出,每個節點的時鐘頻率都在朝中心頻率8 192 000 Hz進行調整,在50 s后基本處在8 192 000 Hz上下范圍內進行微調,處于動態平衡狀態。因此,驗證了網絡最惡劣時鐘偏差情況下,可以在1 min內實現時鐘收斂,達到全網時鐘同步。
5 結 語
自同步組網技術非常適用于特殊環境下網絡拓撲頻繁變化的情況,具有網絡拓撲變化的適應能力,由于不需要中心時鐘,當網內某個節點的定時系統發生失效(關機、停振,不受控或頻率漂移額定值過大等)或與之相連的任何方向鏈路發生故障時,不影響其他節點和其他方向鏈路正常工作。
自同步組網技術還具有時鐘故障診斷和隔離能力,在本設備的時鐘控制有故障的情況下,能夠診斷出來,并通知其他相鄰節點設備進行時鐘隔離,并且本設備自動切換到主從時鐘方式下工作。
本文提出了一種基于FPGA,CPU和DDS技術實現網絡自同步的時鐘控制方法,采用軟硬件結合的方式,極大簡化時鐘處理過程,快速實現網絡時鐘收斂。該方案已應用到綜合數字交換機中,并且已形成產品化,經過和多個設備之間構建不同網絡拓撲的互聯測試,網絡系統時鐘同步穩定,數據傳輸可靠,證明該方法是切實可行的。本文只討論了有線鏈路傳輸的處理情況,若要處理無線鏈路或混合鏈路,只需要根據鏈路傳輸延時情況對時鐘調整周期進行調整即可。
參考文獻
[1] 謝希仁.計算機網絡[M].北京:電子工業出版社,2008.
[2] 陳建亞.現代交換原理[M].北京:人民郵電出版社,2006.
[3] Xilinx Corp. VertexTM?E FPGA family data sheet [EB/OL]. [2010?06?10]. http://www.xilinx.com.
[4] 黃志偉.鎖相環與頻率合成器電路設計[M].西安:西安電子科技大學出版社,2008.
[5] 王亮亮.基于DDS和PLL技術的高分辨率可變頻綜器設計[D]. 長沙:國防科學技術大學,2011.
[6] 尚守衛,胡健,龔代圣.基于工業網絡的分布式時鐘同步算法研究[J].現代電子技術,2012,35(23):55?58.
[7] 項春萍.基于DDS的高速定時同步方法[J].現代電子技術,2012,35(9):68?69.