康 晉,曹 旭,姜育生
(1.楊凌職業技術學院,陜西 楊凌 712100;2.陜西西北民航招標咨詢有限公司,陜西西安 710065;3.陜西工商職業學院,陜西西安 710119)
高速數字信號處理和射頻混合單板對于時鐘的要求很高,時鐘的信號精度直接影響到系統的性能。單板的時鐘參考來自于BBU,CPU 與接口FPGA互相配合,通過軟件鎖相環的方式將本地時鐘同步到BBU 的參考時鐘上,獲得一個穩定的10 MHz 參考時鐘。
系統必須以BBU光纖恢復的時鐘作為參考,生成本地的工作時鐘,實現整個網絡的時鐘同步。LMX2306是NS 公司生產的一款單片集成的射頻PLL 芯片,由LMX2306 構成鎖相環,只需結合高穩定度的本地參考振蕩,再外置環路濾波和壓控振蕩器(VCO)及其他的外圍電路即可實現頻率的合成。LMX2306 硬件鎖相環生成光口的發送時鐘61.44 MHz,LMX2306實現鑒相和低通濾波,輸出壓控電壓控制一片VCO,采用時鐘驅動器MC100LVEP 實現鎖相環的反饋[1-2]。
如圖1 所示,本地61.44 MHz 時鐘為SerDes 模塊提供參考時鐘和數據發送時鐘,SerDes 模塊從基帶傳來的光接口數據中恢復出153.6 MHz 并行數據時鐘,與TCXO 的輸出10 MHz 時鐘進行鎖相,得到一個穩定的10 MHz 時鐘,其準確度優于0.05 ppm,并將該10 MHz時鐘作為參考時鐘進行分發。AD9516與此10 MHz時鐘生成中頻電路的工作時鐘122.88 MHz,完成去抖動后分配給AD、DA 芯片,并提供給FPGA 最小系統使用[3-4]。

圖1 系統時鐘
FPGA 器件選用Xilinx 公司生產的Virtex-5 系列中的XC5VLX50T,內置的SerDes 模塊可以實現光口高速串行信號到并行信號的轉換,同時支持CPRI 和OBSAI 協議[6-7]。
如圖2 所示,SERDES 光模塊從BBU 發送過來的光信號中恢復出153.6 MHz 的數據時鐘,單板上的VC-TCXO 器件產生一個10 MHz 的本地時鐘。FPGA 對兩路時鐘分頻到1.6 kHz 后進行鑒相處理,并把鑒相值上傳給CPU,CPU 的軟件鎖相進程通過PID 算法將鑒相差值轉換為控制電壓,通過DAC MAX5541 控制VC-TCXO 進行頻率的校準。當FPGA 鑒相的相位差值小于某特定閾值并且持續穩定一段時間后,則可以認為本地的VC-TCXO 時鐘已經和來自BBU 的光信號時鐘同步[8-9]。

圖2 10 MHz時鐘軟鎖的原理圖
FPGA 首先將這兩路時鐘分別分頻到1.6 kHz,然后用80 MHz 時鐘的上升和下降沿對兩路時鐘的相位差計數。在鎖定狀態之前相位差是不確定的,所以相位差的范圍是0 到一個周期。CPU 從FPGA的寄存器中讀出80 MHz 時鐘的鑒相計數值,當VCTCXO 時鐘超前光口解調時鐘半個周期以內時,CPU認為相位差是正值,相位差為正值時的時鐘相位如圖3 所示。當VC-TCXO 時鐘超前光口解調時鐘大于半個周期時,CPU 將鑒相計數值減去一個整周期的80 MHz 時鐘計數值,得到一個負值的相位差[10-11],相位差為負值時的時鐘相位如圖4 所示。

圖3 相位差為正值時的時鐘相位

圖4 相位差為負值時的時鐘相位
CPU 從FPGA 獲得相位差后,利用一個PID 算法將相位差轉換為要寫入DAC MAX5541 的控制參數,DAC 產生控制電壓,從而調整VC-TCXO 的輸出時鐘頻率。PID 算法的公式如下:

其中,P、I和D分別為控制參數,P為比例系數,I為積分系數,D為差分系數,V_K為控制電壓的壓控斜率,p(n)為當前從FPGA 讀取的鑒相差,p(n-1)和p(n-2)分別為上次和上上次從FPGA 讀取的鑒相差,Δp(n)=p(n)-p(n-1),Δp′(n)=Δp(n)-Δp(n-1)。經過PID算法計算得出的ΔV(n)就是需要寫入DAC 的控制電壓[12-13]。
當CPU判斷從FPGA讀出的鑒相差的絕對值小于某一特定閾值并且持續穩定一分鐘后,則會對10 MHz時鐘鎖定的標志位置位。而一旦鑒相差大于這一閾值,則會進行復位操作。由于外在和內在環境的不穩定,單板的時鐘必須時刻與BBU 時鐘保持鎖定,所以CPU 的鑒相進程在隨單板上電初始化啟動之后,會一直工作下去[14-15]。
1)數據結構:PHASEPAR,用來存儲鑒相進程不同工作模式時的參數。代碼如下:
2)函數功能:初始化LMX2306。代碼如下:

參數:wChannel:通道號
返回值:0 操作成功;非0 操作失敗
3)函數功能:初始化光網絡,該函數首先向控制VCO 的DA 芯片寫入初始值,之后啟動鑒相進程。代碼如下:

軟件鎖相進程的流程圖如圖5 所示。

圖5 軟件鎖相進程的流程圖
整個流程可以看做是一個閉環的反饋系統,PID算法相當于一個數字濾波器。軟鎖進程根據從FPGA 讀出的鑒相差,不斷對本地VC-TCXO 進行校正,從而使本地時鐘與BBU 解調時鐘相耦合,達到鎖相的目的。在剛開始啟動鎖相進程時相位差比較大,采用粗調的超級快捕參數,可以加快本地10 MHz時鐘趨近于BBU 時鐘的步伐;當相位差變小后,由于超級快捕參數的調整幅度較大,本地時鐘不容易穩定下來,所以采用調整更為精細的快捕參數,最終使本地10 MHz 時鐘趨于穩定[16-17]。
RRU 的本地時鐘必須同BBU 的時鐘系統實時同步,對RRU 的性能指標影響很大。根據本地時鐘10 MHz 和從光接口數據中恢復出153.6 MHz 進行FPGA 鑒相,通過PID 算法實現軟件鎖相,獲取穩定的10 MHz 時鐘信號,分發給各功能單元使用。該文分析了時鐘同步的過程、軟件鎖相的原理、算法,給出了接口函數以及軟件流程,該軟件鎖相的方法已經在4G 中廣泛應用,對5G 無線系統仍然有一定的借鑒意義。