摘要:在討論了無線同播特點和頻率校準基本原理的基礎上,提出了一種基FPGA的無線同播頻率校準裝置的設計方案,實現了高精度廣播頻率的輸出,給出了詳細設計過程和實際測試結果。
關鍵詞:現場可編程門陣列;無線同播;頻率校準
0 引言
近年來,無線同播系統(tǒng)在民事和警事中的應用日益廣泛,其快速搭建和空中接入等優(yōu)勢在512地震的救災調度中得以充分體現。同播系統(tǒng)工作時,所有發(fā)射站會在同一時刻點以相同頻率向外廣播,由于各站的發(fā)射頻率相對于標準頻率有不同偏差,在功率重疊區(qū)產生頻率疊加,出現同頻干擾。目前,國內外通信廠家的同播發(fā)射機的發(fā)射頻率偏差大都在1ppm(parts per million)以上,不通過校準,無法達到0.05ppm正常通話的最低要求。有線同播系統(tǒng)是利用光纖網絡校準發(fā)射頻率的。無線同播系統(tǒng)目前只能通過兩種方法解決:一是設置中心站,但系統(tǒng)響應速度慢;二是盡量縮小功率重疊區(qū),其建站周期長而且可靠性低。兩種方法都沒有從根本上解決無線同播系統(tǒng)的同頻干擾,發(fā)射頻率的校準已經成為無線同播系統(tǒng)發(fā)展的瓶頸。因此,本文提出一種基于FPGA技術的頻率校準系統(tǒng)的設計方案。
1 系統(tǒng)總體設計
1.1 同頻干擾的產生和解決方法
一個無線同播系統(tǒng)需要架設若干個大功率發(fā)射站點,才能滿足大區(qū)域的通信需求。站點間硬件和工作環(huán)境各有差異,導致各站的頻率偏差不同。例如兩個發(fā)射頻率為350MHz的站點,一個的頻偏為+1ppm,另一個為-1ppm,在功率重疊區(qū)就會產生700Hz的頻率差,形成嘯聲,影響通話質量。從理論上講,要保證同頻覆蓋區(qū)的通話質量,必須使各發(fā)射站的頻偏保持在0.05ppm以下。校準各發(fā)射站頻率的最好方法,是為其提供統(tǒng)一可靠的基準時鐘信號。GPS定位衛(wèi)星信號精度高,沒有時間和地域的限制,可以作為基準時鐘信號同步各站的基準振蕩器,解決同頻干擾的關鍵性問題。
1.2 系統(tǒng)硬件設計
頻率校準系統(tǒng)主要由高精度GPS信號接收器、FPGA芯片、VC-TC2XO(壓控恒溫晶振)、高精度DAC(數模轉換器)等部分組成。VC-TCXO為FPGA提供工作時鐘,也為發(fā)射提供基準頻率。FPGA通過GPS秒脈沖信號計算標準時長,記錄下這段時間內VC-TCXO產生的脈沖總數,與標準的脈沖數進行對比,最后通過DAC對VC-TCXO進行電壓校正。校準后的VC-TCXO頻率通過FPGA內部PLL倍頻,成為發(fā)射頻率?;居布Y構框圖如圖1所示。
FPGA編程比較靈活,可設置任意位的片上寄存器,保證了脈沖計數的精度,適用于高精度的頻率校準。本設計采用Actel公司Fusion系列的AFS600,屬于Flash架構,內部集成了60萬邏輯門。以Flash為基礎的FPGA將配置信息儲存在片上Flash單元中,一旦完成編程,配置數據就會成為FPGA結構的固有部分,在系統(tǒng)上電時無需通過外部SRAM載入配置數據。AFS600可靠性高、功耗低,節(jié)省外部元件,適合開發(fā)手持設備。
本設計采用的GPS接收機是Motorola公司生產的M12M授時型OEM模塊,輸出秒脈沖信號的精度±20ns。壓控恒溫晶振采用華晶達電子公司的VC-TCXO(503212.8M),中心頻率12.8MHz,工作電壓3.3V,溫度穩(wěn)定度±1.0ppm,老化率±1.0ppm/年,控制電壓范圍1.65±1.0v,可調節(jié)頻率范圍1 2.8MHz±300Hz。高精度DAC采用TI公司的。DAC8552,具有16位精度,可串行SPI控制方式,參考電壓為3.3V。
1.3 分級控制方案
基于效率和精度的需要,本設計采用分級控制方案。GPS秒脈沖信號的精度誤差為20ns,折算12.8MHz頻率,最大頻偏為20ppm。若以1秒作為時長比較脈沖數,調整的精度無法達到要求,同頻干擾依然存在。由于秒脈沖信號的精度誤差呈均勻分布,加長檢測的時間可以提高信號精度,從而提高校準精度。但校準效率會下降,發(fā)射準備時間增加。另一方面,DAC的控制方式也影響系統(tǒng)的精度和效率。單次調整幅度大,效率高但精度低,幅度小則需時過長,所以不能以固定的幅度調整。根據VC-TCXO和DAC8552的參數,DAC最小的調整幅度為0.015Hz,DAC數值與VC-TCXO頻率的關系是:
f(b)=12.8MHz+(b-b)×O.015Hz
式中f(b)是當前VC-TCXO頻率,b是FPGA寫入DAC的數值,b’是VC-TCXO輸出12.8MHz時對應的DAC數值。VC-TCXO的電壓可調范圍是1.65±1.0V,折算b的有效范圍為12 909~52 627。
為了平衡精度和效率的需要,系統(tǒng)采用了分級控制的方案。如表1所示,系統(tǒng)控制的邏輯分為五級。等級3的頻偏和調整幅度最小,檢測時間最長。脈沖數上下限用于固定時長內脈沖數的比較,判斷是否需要調級。VC-TCXO的溫度和老化的因素使晶體頻率的上下限改變,所以等級1沒有計數脈沖下限,等級5沒有上限。FPGA根據當前的級別設定檢測時間,再通過收到的脈沖數判斷升級、降級或是調整電壓值。
2 FPGA設計
2.1 FPGA頂層設計
FPGA的設計采用自頂向下的設計方法,用Verilog HDL語言描述,在Actel公司的開發(fā)軟件libero8.0中進行綜合、優(yōu)化、仿真和定時分析。頂層設計由PLL、分級控制、脈沖計數模塊以及電壓控制模塊組成,如圖2所示。
工作過程為:首先,初始化FPGA,電壓控制模塊將DAC8552的電壓輸出值置于中位(1.65V),分級控制模塊的開始分級設定為3,并通過level[2∶0]連線將級別賦給脈沖計數模塊和電壓控制模塊;分級控制模塊收到GPS秒脈沖時,通過auto reset啟動脈沖計數模塊,收到read信號時讀入judge[1∶0],judge[1∶0]的意義如表2所示。如果judge[1∶0]=00,level[2∶0]不為1,level[2∶0]降級;judge[1∶0]=01,level[2∶0]不為5,level[2∶0]升級;judge[1∶0]為10或11,通過step和load引腳調整電壓控制模塊。
2.2 脈沖計時模塊設計
脈沖計時模塊接口信號包括:級別輸入level[2∶0]、開始計數輸入auto_reset、判斷輸出judge[1∶0]、讀指令輸出read,還有輸入時鐘fre_in和復位使能reset,模塊內部設寄存器clk_add[32∶0],用于脈沖計數。模塊的狀態(tài)包括idle、calculate、judgment和readtime,狀態(tài)機如圖3所示。
其具體工作過程為:
(1)狀態(tài)為idle時,read置0,clk add[32∶0]清空,讀入level值。Level是計數判斷的基準,必須在計數前讀入。
(2)當收到auto_reset為高電平,狀態(tài)從idle轉至calculate開始脈沖計數。由于計數的頻率同時是FPGA的工作頻率,所以clk_add[32∶0]只需在calculate狀態(tài)下每個時鐘累加一次。
(3)auto_reset變?yōu)榈蜁r,狀態(tài)轉至judgment,將clk_add[32∶0]與所在級別的上下限對比,將結果通過judge[1∶0]輸出。
(4)狀態(tài)轉至readtime,將read置1,read信號告知分級控制模塊judge[1∶0]信號已經更新,要求讀取,當clk_add [32∶0]等于中心脈沖數,read不置為1,表示無需改變電壓值。
(5)狀態(tài)轉回idle。
2.3 電壓控制模塊設計
電壓控制模塊的接口信號包括:級別輸入level[2∶0]、調整方向輸入step、調整輸入load、就緒輸出ready、DAC接口輸出(sync、SClk和din),還有輸入時fre_in和復位使能reset,模塊內部設寄存器data reg[23∶0]用于生成控制DAC的幀,max_24bits[4∶0]用于記錄當前是控制幀的第幾位輸出。每幀長度為24位,控制字包括:LDB、LDA選擇寫入通道,Buffer Select選擇寫入的寄存器,PDl、PD0選擇輸出阻抗模式,D15~D0為16位的DAC數據。其幀結構如圖4所示。
DAC8552采用SYNC、SCLK和DIN三線接口控制方式,從SYNC變低時開始寫入,SCLK產生寫時鐘,在SCLK下降沿數據被寫入DAC8552,SYNC必須在第24個下降沿后才重新拉高,否則寫入失敗。其時序圖如圖5所示
電壓控制模塊的狀態(tài)機如圖6所示,其工作方式是:
(1)idle狀態(tài)時,ready輸出賦為1,sclk賦為1,sync賦為1,max_24bits賦為24。
(2)當load=1時,狀態(tài)轉至idle,sync賦為0,data reg通過level和step引腳的值產生相應的控制幀。
(3)當load=0時,狀態(tài)轉至sclk_up,sclk賦為1,din賦為data_reg[max_24bits-1]。
(4)狀態(tài)轉至sclk down,sclk賦為0,max_24bits自減1。當max_24bits=0時,狀態(tài)轉至idle;否則狀態(tài)轉至sclk_up。
狀態(tài)sclk_up和sclk_down的循環(huán)是用于產生控制DAC8552的時鐘和數據,din通過max_24bits這個寄存器實現對data_reg從高到低逐位輸出。
3 實驗結果
3.1 軟件仿真
利用Libero 8.0開發(fā)環(huán)境集成的Modelsim軟件對電壓控制模塊設計進行仿真。模擬寫入DAC8552的A、B通道數據為1010 1111 OO10 1011,十進制為44843,折算為電壓值是2.258V。仿真時序圖如圖7所示,滿足DAC8552接口的時序要求。
3.2 板上調試
將程序燒入FPGA運行,并通過頻率計實際測量,測量結果如圖8所示。由于頻率計的精度只達到1Hz,測量的數據會有所偏差??紤]到校準后的頻偏已經接近+0.05ppm(+0.64Hz),證明系統(tǒng)功能已經實現。但系統(tǒng)的效率不夠高,需時過長,算法有待改善。
4 結束語
本設計通過FPGA、高精度DAC、壓控恒溫晶振和GPS信號接收模塊,成功實現了同播系統(tǒng)發(fā)射設備的頻率校準。除了同播系統(tǒng),本設計還可應用于衛(wèi)星信號同步、跳頻通信的相關領域,發(fā)展空間十分廣闊。