康 晉,曹 旭,姜育生
(1.楊凌職業(yè)技術學院,陜西 楊凌 712100;2.陜西西北民航招標咨詢有限公司,陜西西安 710065;3.陜西工商職業(yè)學院,陜西西安 710119)
高速數(shù)字信號處理和射頻混合單板對于時鐘的要求很高,時鐘的信號精度直接影響到系統(tǒng)的性能。單板的時鐘參考來自于BBU,CPU 與接口FPGA互相配合,通過軟件鎖相環(huán)的方式將本地時鐘同步到BBU 的參考時鐘上,獲得一個穩(wěn)定的10 MHz 參考時鐘。
系統(tǒng)必須以BBU光纖恢復的時鐘作為參考,生成本地的工作時鐘,實現(xiàn)整個網(wǎng)絡的時鐘同步。LMX2306是NS 公司生產(chǎn)的一款單片集成的射頻PLL 芯片,由LMX2306 構成鎖相環(huán),只需結合高穩(wěn)定度的本地參考振蕩,再外置環(huán)路濾波和壓控振蕩器(VCO)及其他的外圍電路即可實現(xiàn)頻率的合成。LMX2306 硬件鎖相環(huán)生成光口的發(fā)送時鐘61.44 MHz,LMX2306實現(xiàn)鑒相和低通濾波,輸出壓控電壓控制一片VCO,采用時鐘驅動器MC100LVEP 實現(xiàn)鎖相環(huán)的反饋[1-2]。
如圖1 所示,本地61.44 MHz 時鐘為SerDes 模塊提供參考時鐘和數(shù)據(jù)發(fā)送時鐘,SerDes 模塊從基帶傳來的光接口數(shù)據(jù)中恢復出153.6 MHz 并行數(shù)據(jù)時鐘,與TCXO 的輸出10 MHz 時鐘進行鎖相,得到一個穩(wěn)定的10 MHz 時鐘,其準確度優(yōu)于0.05 ppm,并將該10 MHz時鐘作為參考時鐘進行分發(fā)。AD9516與此10 MHz時鐘生成中頻電路的工作時鐘122.88 MHz,完成去抖動后分配給AD、DA 芯片,并提供給FPGA 最小系統(tǒng)使用[3-4]。
圖1 系統(tǒng)時鐘
FPGA 器件選用Xilinx 公司生產(chǎn)的Virtex-5 系列中的XC5VLX50T,內置的SerDes 模塊可以實現(xiàn)光口高速串行信號到并行信號的轉換,同時支持CPRI 和OBSAI 協(xié)議[6-7]。
如圖2 所示,SERDES 光模塊從BBU 發(fā)送過來的光信號中恢復出153.6 MHz 的數(shù)據(jù)時鐘,單板上的VC-TCXO 器件產(chǎn)生一個10 MHz 的本地時鐘。FPGA 對兩路時鐘分頻到1.6 kHz 后進行鑒相處理,并把鑒相值上傳給CPU,CPU 的軟件鎖相進程通過PID 算法將鑒相差值轉換為控制電壓,通過DAC MAX5541 控制VC-TCXO 進行頻率的校準。當FPGA 鑒相的相位差值小于某特定閾值并且持續(xù)穩(wěn)定一段時間后,則可以認為本地的VC-TCXO 時鐘已經(jīng)和來自BBU 的光信號時鐘同步[8-9]。
圖2 10 MHz時鐘軟鎖的原理圖
FPGA 首先將這兩路時鐘分別分頻到1.6 kHz,然后用80 MHz 時鐘的上升和下降沿對兩路時鐘的相位差計數(shù)。在鎖定狀態(tài)之前相位差是不確定的,所以相位差的范圍是0 到一個周期。CPU 從FPGA的寄存器中讀出80 MHz 時鐘的鑒相計數(shù)值,當VCTCXO 時鐘超前光口解調時鐘半個周期以內時,CPU認為相位差是正值,相位差為正值時的時鐘相位如圖3 所示。當VC-TCXO 時鐘超前光口解調時鐘大于半個周期時,CPU 將鑒相計數(shù)值減去一個整周期的80 MHz 時鐘計數(shù)值,得到一個負值的相位差[10-11],相位差為負值時的時鐘相位如圖4 所示。
圖3 相位差為正值時的時鐘相位
圖4 相位差為負值時的時鐘相位
CPU 從FPGA 獲得相位差后,利用一個PID 算法將相位差轉換為要寫入DAC MAX5541 的控制參數(shù),DAC 產(chǎn)生控制電壓,從而調整VC-TCXO 的輸出時鐘頻率。PID 算法的公式如下:
其中,P、I和D分別為控制參數(shù),P為比例系數(shù),I為積分系數(shù),D為差分系數(shù),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)。經(jīng)過PID算法計算得出的ΔV(n)就是需要寫入DAC 的控制電壓[12-13]。
當CPU判斷從FPGA讀出的鑒相差的絕對值小于某一特定閾值并且持續(xù)穩(wěn)定一分鐘后,則會對10 MHz時鐘鎖定的標志位置位。而一旦鑒相差大于這一閾值,則會進行復位操作。由于外在和內在環(huán)境的不穩(wěn)定,單板的時鐘必須時刻與BBU 時鐘保持鎖定,所以CPU 的鑒相進程在隨單板上電初始化啟動之后,會一直工作下去[14-15]。
1)數(shù)據(jù)結構:PHASEPAR,用來存儲鑒相進程不同工作模式時的參數(shù)。代碼如下:
2)函數(shù)功能:初始化LMX2306。代碼如下:
參數(shù):wChannel:通道號
返回值:0 操作成功;非0 操作失敗
3)函數(shù)功能:初始化光網(wǎng)絡,該函數(shù)首先向控制VCO 的DA 芯片寫入初始值,之后啟動鑒相進程。代碼如下:
軟件鎖相進程的流程圖如圖5 所示。
圖5 軟件鎖相進程的流程圖
整個流程可以看做是一個閉環(huán)的反饋系統(tǒng),PID算法相當于一個數(shù)字濾波器。軟鎖進程根據(jù)從FPGA 讀出的鑒相差,不斷對本地VC-TCXO 進行校正,從而使本地時鐘與BBU 解調時鐘相耦合,達到鎖相的目的。在剛開始啟動鎖相進程時相位差比較大,采用粗調的超級快捕參數(shù),可以加快本地10 MHz時鐘趨近于BBU 時鐘的步伐;當相位差變小后,由于超級快捕參數(shù)的調整幅度較大,本地時鐘不容易穩(wěn)定下來,所以采用調整更為精細的快捕參數(shù),最終使本地10 MHz 時鐘趨于穩(wěn)定[16-17]。
RRU 的本地時鐘必須同BBU 的時鐘系統(tǒng)實時同步,對RRU 的性能指標影響很大。根據(jù)本地時鐘10 MHz 和從光接口數(shù)據(jù)中恢復出153.6 MHz 進行FPGA 鑒相,通過PID 算法實現(xiàn)軟件鎖相,獲取穩(wěn)定的10 MHz 時鐘信號,分發(fā)給各功能單元使用。該文分析了時鐘同步的過程、軟件鎖相的原理、算法,給出了接口函數(shù)以及軟件流程,該軟件鎖相的方法已經(jīng)在4G 中廣泛應用,對5G 無線系統(tǒng)仍然有一定的借鑒意義。