基于FPGA的通用位同步器設(shè)計方案(二)
2.2.2 定時誤差檢測設(shè)計
定時誤差檢測程序采用獨立于載波相位偏差的GA-TED算法。該算法每個符號周期只需要兩個插值,每個碼元周期輸出一個誤差信號μτ (n) ,即:
其中,y(n) 表示第n 個碼元選通時刻的內(nèi)插值,前后兩個內(nèi)插值的插值代表誤差方向;y(n - 1 2) 表示第 n 個和第n - 1 個碼元的中間時刻內(nèi)插值,代表誤差大小。
FPGA實現(xiàn)時,為避免乘法運算,采用y(n) 和y(n - 1)的符號來代替實際值[8],即采用式(5)計算誤差信息:
根據(jù)式(5)進(jìn)行程序設(shè)計,誤差的正負(fù)方向判斷采用case 語句,當(dāng)y(n) 和y(n - 1) 的符號位分別為“0”和“1”時,y(n - 1 2)的符號位不變;當(dāng)符號位分別為“1”和“0”時,y(n - 1 2) 的符號位取反;當(dāng)符號位為“0”“0”或“1”“1”時,令輸出的μτ (n) = 0.TED程序在1 Ti 的時鐘控制下進(jìn)行運算,最終得到29位誤差數(shù)據(jù),并以1 T 的速率即碼元速率輸出至環(huán)路濾波器電路。
2.2.3 環(huán)路濾波器設(shè)計
本文對Gardner算法中的環(huán)路濾波器進(jìn)行了改進(jìn),根據(jù)通用位同步器的要求,采用二階數(shù)字濾波器,并且開放濾波器參數(shù)(C1,C2 ) 和使能(c_en)端口,當(dāng)碼元速率變化時,通過外部控制器來改變參數(shù),實現(xiàn)濾波器的通用性。濾波器結(jié)構(gòu)如圖5所示。
從圖5可以看到,濾波器的輸出為:
式中:Ko Kd 為環(huán)路增益;ζ 為阻尼系數(shù),取ζ =0.707;T 為采樣時間間隔,即相位調(diào)整間隔;ωn 為無阻尼振蕩頻率。
為減少資源占用,環(huán)路濾波器中的乘法運算均采用移位方式實現(xiàn),處理后的誤差信息送給內(nèi)部控制器。
2.2.4 內(nèi)部控制器設(shè)計
內(nèi)部控制器根據(jù)定時誤差信息,調(diào)整插值頻率1 Ti和誤差間隔μk ,并輸出位同步脈沖BS,它包含NCO(Numerically Controlled Oscillator)和誤差間隔計算兩部分。該程序提供接口(頻率字fw 和使能端fw_en),外部控制器可以通過該接口輸入?yún)?shù)。
本設(shè)計中NCO 采用與文獻(xiàn)[10]類似的DDS(DirectDigital Synthesis)結(jié)構(gòu),其頻率控制字Fw 可由外部控制器設(shè)置,其結(jié)構(gòu)如圖6所示。
評論