譚 強,萬 毅
(蘭州大學 信息科學與工程學院,甘肅 蘭州 730000)
擴頻通信因其很好的保密性、隱蔽性、抗干擾性以及抗多徑效應等優(yōu)勢得到了快速發(fā)展和廣泛應用。因此,許多公司推出了各種型號的擴頻集成電路,典型的有STEL-2000A,該芯片因外圍電路簡單而得到了廣泛應用[1]。
然而,由于該芯片是基于專用集成電路(ASIC)技術,其內部電路和大部分功能已經固化,對不同的場合缺乏靈活性,對以后系統(tǒng)升級也造成很大困難。而現(xiàn)場可編程門陣列(FPGA)內部資源豐富,功能強大,并且可重復編程,現(xiàn)場可修改設計,加之其相應的EDA軟件功能完善,仿真能力好,有豐富的IP核資源,在成本和靈活性等方面都有很大優(yōu)勢,使得利用FPGA進行復雜數(shù)字系統(tǒng)的設計已成為主流[2]。
近幾年來國內外有許多學者利用FPGA對擴頻通信系統(tǒng)中的某一個模塊進行設計,如:數(shù)控振蕩器[3]、PN碼發(fā)生器[4]、匹配濾波器[5]。也有學者嘗試對整個系統(tǒng)進行設計[6],但這些努力大多僅限于軟件上的功能仿真,并且對一些關鍵模塊缺乏清晰的描述。
本文對擴頻芯片關鍵模塊的實現(xiàn)方法進行了闡述,并推導出詳細參數(shù),基于ISE 10.1實現(xiàn)了整個系統(tǒng),最后下載到FPGA芯片中調試成功。
在發(fā)射子系統(tǒng)中,如圖1所示,輸入的串行二進制數(shù)據(jù)序列首先進行串并轉換,分成兩路(I路和Q路)速率減半的序列,由于采用QPSK調制方式,為了避免相位模糊問題,在串并轉換后進行差分編碼,然后將差分編碼器的輸出序列與PN碼生成器輸出的偽隨機序列進行異或運算,完成信號的頻譜擴展,再將擴頻輸出的兩路數(shù)據(jù)分別與數(shù)控振蕩器(Numerically Controlled Oscillator,NCO)的兩路正交載波輸出各自相乘,最后將相乘后的結果相加,這樣就實現(xiàn)了DQPSK調制,輸出的是數(shù)字化的已調信號[7]。
圖1 發(fā)射子系統(tǒng)圖Fig.1 Structure diagram of transmitting subsystem
接收系統(tǒng)要完成數(shù)字中頻信號到基帶信號的轉換、信號的捕獲、同步、解擴、差分解調以及并串轉換等功能,如圖2所示。進入接收系統(tǒng)的是經正交采樣(Quadrature Samping)后的數(shù)字中頻信號,經下變頻器生成基帶信號,再將其輸出送入匹配濾波器。在匹配濾波器中,主要實現(xiàn)信號的同步與解擴。解擴后的數(shù)據(jù)進行差分解調,差分解調過程中的中間結果送入自動頻率控制 (Automatic Frequency Control,AFC)模塊以生成校正信號來自動調整NCO的輸出頻率,最后將解調輸出數(shù)據(jù)經并串轉換便得到原始數(shù)據(jù)序列[7]。
圖2 接收子系統(tǒng)圖Fig.2 Structure diagram of receiving subsystem
NCO采用Xilinx公司提供的直接數(shù)字式頻率合成器(Direct Digital Synthesizer,DDS)IP 核,DDS 的工作原理如圖3所示,在參考時鐘的驅動下,N位加法器對頻率控制字K和N位累加寄存器中的值進行相加,相加后的結果存入累加寄存器中,以累加寄存器中的值為地址將波形存儲器里相應地址的數(shù)據(jù)讀出,即輸出正弦或余弦信號的幅度值[8]。
圖3 NCO原理結構圖Fig.3 Principle diagram of NCO
累加寄存器長度為N,則波形存儲器2N用個樣點來表示正弦波的一個周期,地址每次累加K相當于每隔K個點輸出一次,輸出一個完整的正弦波需要時間則DDS的輸出頻率fout滿足關系式[8]:fout=KfCLK/2N。當K取1時輸出頻率為最大頻率分辨率Δf=fclk/2N。參數(shù)設置主時鐘為100 MHz,Δf=1.0 Hz,可得N=27,由于要求的輸出頻率為 2 MHz,可得:K=2684355。據(jù)此對DDS IP核進行元件例化程序如下:component dds
port(
DATA:IN std_logic_VECTOR(26 downto 0);
WE:IN std_logic;
A:IN std_logic_VECTOR(4 downto 0);
CLK:IN std_logic;
SINE:OUT std_logic_VECTOR(6 downto 0);
COSINE:OUT std_logic_VECTOR(6 downto 0));end component;
下變頻模塊主要是將輸入的數(shù)字中頻信號進行數(shù)字式下變頻,從而產生基帶信號,即待解擴的信號。設輸入信號是經正交采樣后的數(shù)字中頻信號:
式中,I_PN和Q_PN為擴頻后的信號,ω為本地NCO產生的正弦和余弦信號的角頻率。
讓輸入信號與本地NCO產生的正弦與余弦信號進行相乘,即:
這里需要4個乘法器和2個加法器,由于對乘法器的速度要求較高,本系統(tǒng)調用了Virtex-II Pro開發(fā)板上FPGA芯片XC2VP30的硬核乘法器[9]。將Iout和Qout進行低通濾波就得到基帶信號。
對于低通濾波器的實現(xiàn),STEL-2000A使用了積分清洗濾波器(Integrate and Dump Filter,I&D)。本系統(tǒng)采用比較成熟且實現(xiàn)方便的級聯(lián)積分梳狀(CIC)濾波器[10]來實現(xiàn)低通濾波的功能。該濾波器由加法器、反相器和延時器構成,不需要乘法器,這比一般的FIR和IIR節(jié)省很多FPGA資源。實現(xiàn)框圖如圖4所示,fS為采樣頻率。
圖4 CIC濾波器的實現(xiàn)框圖Fig.4 Implementation diagram of CIC filter
系統(tǒng)中CIC濾波器參數(shù)的設置為:M=1,N=4,R=20。為了保證運算不發(fā)生溢出,可以根據(jù)公式:BMAX=Nlog2RM+B-1[10],計算出內部需要的最大信號線寬度。在本系統(tǒng)中輸入信號線寬度B=3,則取BMAX=20。為減少后端匹配濾波器的運算量,取CIC濾波器輸出的高三位近似。
CIC濾波器部分設計程序如下:
sxtx〈=sxt(x,20);--位擴展。
integrater:process(clk)
begin
if(clk'event and clk='1')then
x〈=x_in;
i0〈=i0+conv_integer(sxtx);
i1〈=i1+i0;
i2〈=i2+i1;
i3〈=i3+i2;--第4級積分器輸出
end if;
end process integrater;
comb_clk:process(clk) --實現(xiàn) 20 分頻
end process comb_clk;
comber:process(clk_comb)is
begin
if(clk_comb'event and clk_comb='1')then
i3_delay〈=i3;
C0〈=i3-i3_delay;
......
C3〈=C2-C2_delay;--第4級梳狀濾波輸出
end if;
end process comber;
C_out〈=conv_std_logic_vector(C3,20);
y_out〈=C_out(19 downto 17);--取高 3 位作為最后結果
匹配濾波器實現(xiàn)信號的同步與解擴,CIC濾波器的輸出I_conv、Q_conv分別經過兩組延時器,然后與本地PN碼序列相乘,將所有相乘的結果相加。理論上講下變頻送來的基帶擴頻信號經匹配濾波器后在給定的觀測時刻相關峰值[6]為:Isum=AcosφK(t),Qsum=AsinφK(t),φK(t)為在給定觀測 t時刻第 k個符號的載波相位。
得到相關峰幅值后,與一個預設好的門限值進行比較,當峰值大于門限值時,表示發(fā)送的序列與PN碼寄存器里的偽隨機序列對齊,此時輸出一個定位脈沖sybmol,其實現(xiàn)框圖如圖5所示。
圖5 匹配濾波器的實現(xiàn)框圖Fig.5 Implementation diagram of matched filter
匹配濾波器部分設計程序如下:
process(clk_chip,I,Q,)is
begin
if(clk_chip'event and clk_chip='1')then ext_I(63)〈=Iin;
ext_Q(63)〈=Qin;
for i in 0 to 62 loop
ext_I(i)〈=ext_I(i+1);
ext_Q(i)〈=ext_Q(i+1);
end loop;
for j in 0 to 63 loop
Idat(j)〈=pn(j)*conv_integer(ext_I(j));
Qdat(j)〈=pn(j)*conv_integer(ext_Q(j));
end loop;
Isum〈=Idat(0)+Idat(1)+...+Idat(63);
Qsum〈=Qdat(0)+Qdat(1)+...+Qdat(63);
end if;
當檢測到定位脈沖時(即檢測到相關峰最大幅值),將此時Isum和Qsum的值送入寄存器以供差分解調使用。對于DQPSK的解調,關鍵是判斷第k位和第k-1位符號之間的相位差Δφ,STEL-2000A中引入點積Dot和叉積Cross來判斷Δφ。
信號經匹配濾波器后,基帶信號可為:I(k)=Acosφ(k),Q(k)=Asinφ(k)。 φ(k)為第 k 個符號的載波相位。
令:
定義[7]:
由于本系統(tǒng)采用DQPSK調制方式,所以Δφ的取值有0,π/2,π 和 3π/2 四種,sin(Δφ)和 cos(Δφ)的取值有 0,+1,-1 三種,在進行最佳判決接收時相對較難實現(xiàn)。本系統(tǒng)引入了π/4的固定相移。給出簡單的推導如下:
從式(9)、式(10)可以發(fā)現(xiàn)只需要在延時之前對兩路信號進行簡單的算術組合即可得到π/4的固定相移,差分解調器實現(xiàn)框圖如圖 6所示。輸出的 Dot(k)和 Cross(k)值查表 1,即可得到最后的差分解調結果。
圖6 差分解調實現(xiàn)框圖Fig.6 Implementation diagram of differential demodulation
表1 輸出結果判決表Tab.1 Decision table of output
測試系統(tǒng)為FPGA產生輸入信號“01011001”的周期循環(huán)序列,輸入信號經過發(fā)射模塊后的數(shù)字信號輸出直接進入接收模塊,輸入信號產生模塊、發(fā)射模塊和接收模塊都在同一塊FPGA芯片內。系統(tǒng)的參數(shù)設置為:主時鐘為100 MHz,數(shù)據(jù)最大速率為31.25 Kb/s,工作時鐘為31.25 kHz,PN碼長為64位,速率為1 Mchip/s,NCO的工作時鐘為100 MHz,輸出的數(shù)字正弦和余弦信號頻率為2 MHz。
通過在線分析儀ChipScope Pro[2],可以看到經QPSK調制后待輸出的信號(圖 7,8),其中圖 7的 I和 Q是串并轉換后的信號,此時的輸入信號為 “10110010”,I_chafen和Q_chafen是差分編碼后的信號,I_PN和Q_PN信號是經過擴頻后的信號,tx_out是最后的已調信號。將已調信號繪制成曲線如圖8所示。
圖7 擴頻后的信號Fig.7 Spread spectrum signal
圖8 待發(fā)送的QPSK已調信號Fig.8 QPSK modulated signal to be sent
在接收部分,利用ChipScope Pro可以觀察到下變頻器的輸出信號I_conv和Q_conv,匹配濾波器的輸出信號Isum、和Qsum定位脈沖symbol(圖9),I_de和Q_de為差分解調后的信號,圖中顯示此時的解調結果為“00101011”,相對于輸入信號而言只是有一段時延,從而驗證該系統(tǒng)實現(xiàn)了STEL-2000A的核心功能。
圖9 接收系統(tǒng)中的部分信號Fig.9 Part af signal in receive system
通過對擴頻芯片STEL-2000A的功能研究,詳細分析了其關鍵模塊的基本原理。在此基礎上,利用FPGA實現(xiàn)了整個系統(tǒng)的功能,并對其進行了測試。測試結果表明該系統(tǒng)功能的正確性。另外,由于FPGA的靈活性,系統(tǒng)可以根據(jù)不同場合改變其中的參數(shù),比如改變PN碼的長度、改變CIC濾波器的級數(shù)和抽取系數(shù)、調整匹配濾波器的門限值等以適應其在不同應用場合的需要。
[1] 韋惠民.擴頻通信技術及應用[M].西安:西安電子科技大學出版社,2007.
[2] 田耘,徐文波,胡彬.Xilinx ISE Design Suite 10.X FPGA 開發(fā)指南:邏輯設計篇[M].北京:人民郵電出版社,2008.
[3] Mran H,Sharaf K,Ibrahim M.An all-digital direct digital synthesizer fully implemented on FPGA[J].Design and Test Workshop (IDT),20094th International,2009:1-6.
[4] ZHANG Wei,LI Yong-qian,SONG Wen-miao,et al.FPGA implementation of PN code acquisition Based on software radio[C]//WiCOM'08.4th International Conference on Wireless Communications,Networking and Mobile Computing,2008:1-4.
[5] WANG Yu-xi,SHEN Ye-bing.Optimized FPGA realization of digital matched filter in spread spectrum communication systems[C]//IEEE 8th International Conference on Computer and Information Technology Workshops,2008:173-176.
[6] 陸濤.基于FPGA實現(xiàn)的擴頻通信系統(tǒng)[D].成都:西南交通大學,2003.
[7] Intel Integrated Products.STEL-2000A Data Sheet[EB/OL].(1999-11-15)[2010-04-29].http://www.semiconductorsdevices.com/news/search.php?tWord=STEL-2000A.
[8] Xilinx Inc.DDS V5.0 data sheet[EB/OL].(2005-04-29)[2010-04-29].http://xilinx.com/support.
[9] Xilinx Inc.Multip V10.0 data sheet[EB/OL]. (2007-04-02)[2010-04-29].http://xilinx.com/support.
[10] 蓋鵬翱,趙笛.CIC濾波器的原理及FPGA實現(xiàn)[J].無線通信技術,2005,14(4):52-55.GAI Peng-ao,ZHAO Di.The realization of cascaded integrator comb filter with FPGA[J].Wireless Communication Technology,2005,14 (4):52-55.