摘要:研究采用編碼擴頻的DS/FH混合擴頻接收機的核心模塊——同步及解擴部分的FPGA實現結構。將多種專用芯片的功能集成在一片大規模FPGA芯片上,實現了接收機的高度集成化、小型化。偽碼的串并混合捕獲算法及跳頻同步算法等均采用硬件完成,提高了捕獲速度。實驗結果證明該方案是正確可行的。
DS/FH混合擴頻通信系統中,需要數據不變頻器、相關累加器及碼發生器等完成下變頻、相關解擴等運算。通常采用專用芯片來完成這些功能,導致系統體積增大,不便于小型化。現代的EDA(電子設計自動化)工具已突破了早期僅期進行PCB版圖設計或電路功能模擬、純軟件范圍的局限,以最終實現可靠的硬件系統為目標,配置了系統自動設計的全部工具,如各種常用的硬件描述語言平臺VHDL、Verilog HDL、AHDL等;配置了多種能兼容和混合使用的邏輯描述輸入工具,如硬件描述語言文本輸入法(其中包括布爾方程描述方式、原理圖描述方式、狀態圖描述方式等)以及原理圖輸入法、波形輸入法等;同時還配置了高性能的邏輯綜合、優化和仿真模擬工具。FPGA是在PAL、GAL等邏輯器件的基本上發展起來的。與PAL、GAL等相比較,FPGA的規模大,更適合于時序、組合等邏輯電路應用場合,它可以替代幾十甚至上百塊通用IC芯片。FPGA具有可編程性和設計方案容易改動等特點,芯片內部硬件連接關系的描述可以存放在下載芯片中,因而在可編程門陣列芯片及外圍電路保持不動的情況下,更換下載芯片,就能實現新的功能。FPGA芯片及其開發系統問世不久,就受到世界范圍內電子工程設計人員的廣泛關注和普遍歡迎。本文主要討論一種基于編碼擴頻的DS/FH混合擴頻接收機解擴及同步過程的實現結構,采用ALTERA公司的APEX20K200RC240-1器件及其開發平臺Quartus II實現混合擴頻接收機的核心——解擴及同步模塊。
1 混合擴頻接收機解擴模塊的FPGA設計
解擴模塊是混合擴頻接收機的核心。該模塊實現對接收信號的解擴處理,主要包括數字下變頻器、數控制蕩器(NCO)、碼發生器、相關累加器和偽碼移相電路等,通常各模塊采用專用芯片。利用FPGA將這些功能集成在一塊芯片中,大大縮小了接收機的體積,便于實現系統的小型化和集成化。下面分別介紹該模塊各部分的FPGA實現結構。
1.1 數控振蕩器(NCO)
數控振蕩器是解擴模塊中的重要組成部分,主要用于為碼發生器提供精確的時鐘信號,從而實現對接收信號的捕獲和跟蹤。碼發生器由相位累加器和查找表構成。若使用字長為40位寬的累加器,對于某一頻率控制字A,輸出頻率fout與輸入頻率控制字A的關系為:
fout=fclkA/2 40
其中,fclk為系統時鐘。只要改變控制字A的大小,就可以控制輸出頻率fout。Fout變化的最小步長Δf由累加器的數據寬度決定。若數據寬度取40位,則:
Δf=fclk/2 40
利用上述原理,可以通過精確分頻得到所需頻率。原理圖如圖1所示。
圖1中頻率控制字A由DSP寫入。考慮到FPGA內部存儲資源限制,取40位相位累加值result[39..0]的高八位作為查找表LUT(look~up table)的輸入,查找表由ROM構成,存儲各相位所對應采樣值。當查找表輸入端為某一相位phase時,則輸出對應采樣值。若輸出數據寬度為6位,輸出信號格式為余弦信號,則LUT輸出為:
out[5..0]=31×cos(360×(phase+0.5)/256)°+32
若取ROM的并行6位out[5..0]作為輸出,則輸出信號為每周期采樣256點的數字化余弦信號;如果取最高位out[5]作為輸出,則輸出為系統時鐘的分頻信號。
1.2 數字下變頻器
數字下變頻器將A/D采樣得到的中頻信號進行下變頻處理,去除中斷,得到基帶信號。利用本地NCO產生與輸入中頻信號的頻率相同的正弦和余弦信號,并與輸入信號進行復乘法運算,然后對運算結果做低通濾波,即可完成對中頻信號的下變頻操作。正交采樣模式下,兩路A/D轉換器提供正交輸入IIN及QIN,數字下變頻器的復乘法器輸出IOUT、QOUT為:
Iout=IINcos(ωt)-Qinsin(ωt)
Qout=IINsin(ωt)+Qincos(ωt)
本振信號、復乘法器、低通濾波器均采用數字化設計。數字下變頻器采用ALTERA公司的APEX20K200RC240-1器件。該器件典型門數為20萬,有豐富的邏輯單元和RAM單元,開發平臺Quartus II自帶的宏模塊,lpm_mult(乘法器宏模塊)、lpm_rom(ROM宏模塊)、lpm_add_sub(加法器宏模塊)等,給設計帶來了極大的方便。數字下變頻器原理圖如圖2所示。
圖2中的數字表示相應模塊的數據寬度。濾波模塊是1個二階的低通濾波器,濾除混頻后的高頻分量。在一些專用的數字下變頻器件中STEL-2130中,濾波器的階數是可編程的,可以根據需要設置不同的階數,從而得到不同的濾波效果。考慮到FPGA的資源問題,設置濾波器的階數為固定的二階。濾波器輸入x[n]與輸出y[n]關系為:
y[n]=x[n]+x[n-1]
y[n-1]=x[n-2]+x[n-3]
該低通濾波器將相鄰的兩個輸入數據相加后作為輸出,即每兩個輸入數據對應一個輸出數據,輸入數據時鐘節拍為輸出數據時鐘節拍的2倍。
經過低能濾波后的數據經過滑動窗處理,滑動窗對輸入數據進行選擇輸出,用來動態調整相關峰的大小。在捕獲過程中觀察相關峰值時,通過調整滑動窗口,可以獲得不同幅度的相關峰值。選擇控制端口DSP寫控制字來決定,結構如圖3所示。滑動窗控制邏輯關系為:
CASE sel[] IS
WHEN 0=> dataout[]=datain[7..0];
WHEN 1=> dataout[]=datain[8..1];
WHEN..2=> dataout[]=datain[9..2];
WHEN 3=> dataout[]=datain[10..3];
WHEN 4=> dataout[]=datain[11..4];
WHEN 5=> dataout[]=datain[12..5];
WHEN OTHERS => dataout[]=datain[12..5];
符號擴展是為了與后面的相關累加器數據寬度保持一致,符號位擴展時需與輸入數據最高位的符號保持一致。
1.3 相關累加器
相關累加器完成本地偽碼與接收信號的相關累加運算,運算得到的結果送入DSP完成偽碼的捕獲和跟蹤。取偽碼長度為256位,采用半碼片滑動,則一個碼周期完成512次累加運算。如采用串行滑動相關捕獲方式,則遍歷所有的碼相位所需要的時間為512個碼周期,即捕獲所需要的最長時間512個PN碼周期。由于可編程邏輯器件的發展,使得有足夠的硬件資源來完成并行運算。此處采用串/并混合的捕獲方式,采用8路相關累加器,每一路分為超前、當前、滯后3組,每組相差半個碼片的相位,每一路相差64個半碼片的相位。這樣,只需滑動64個半碼片相位就可以遍歷所有的偽碼相位,完成捕獲所需時間縮短為原來的八分之一。數據解調由另外4組相關累加器完成。由于發射端同步偽碼與數據偽碼相位嚴格對齊,所以在接收模塊中,完成同步偽碼捕獲跟蹤后,直接將所獲得的相位信息用于數據解調相關器,即可正確解調數據。
同步偽碼的跟蹤采用超前一滯后延遲鎖相環路(DPLL),每一路相關器包括3組累加器。捕獲跟蹤及數據解調共使用28組相關累加器,每一組相關累加器結構都是完全一樣的,均分為I、Q兩路,分別進行累加運算,完成512次累加運算后由DSP讀取數據。I、Q兩路結構完全相同,其中一路的原理圖如圖4所示。
相關累加器由18位加減法器、鎖存器1和鎖存器2組成,data[7..0]為下變頻后的輸入數據,PN CODE來自碼發生器。作為控制端,低電平完成加運算,高電平完成減運算,DP上升沿進行數據鎖存,下降沿完成一次累加運算。當累加運算完成后,由CLR信號清零并將結果存入鎖存器2,CLKR下降沿有效。鎖存器1輸出OV信號作為溢出標志位,鎖存器2輸出累加結果out[16..0]。輸入與輸出端的最高位為符號位。
1.4 本地碼發生器及碼移相電路
本地碼發生器用于產生本地PN碼,從而與接收信號進行相關運算。由于發送端采用編碼擴頻調制方式,接收信號中既有同步PN碼,還有數據PN碼,與接收信號相對應,本地也應該產生相應的PN碼,用于同步及解調數據。
本地PN碼發生器全部采用FPGA實現,并且設置了可編程寄存器和外部接口,DSP通過接口可預置PN碼長度。1024進制計數器電路用于產生ROM的輸入地址,ROM由FPGA內部RAM資源來實現,采用ALTERA公司APEX20K200器件。該器件內部可編程RAM容量為106496位,完成可以滿足設計需求。本地PN碼采用半碼片滑動方式,ROM內部PN碼也以半碼片方式存儲。如碼長為256,采用半碼片存儲方式后,每一組PN碼需存儲512位數據,相應的ROM有9位地址線驅動輸出。驅動時鐘為PN碼時鐘的2倍。在實際設計時,PN碼發生器內存放了8組PN碼,但只用了五組,一組用于同步,另外四組用于解調數據。ROM輸入地址由1024進制計數器產生,實際上只需用512進制計數器即可得到ROM輸入地址。考慮到可擴展性,這里采用了計數容量最大為1024的可變計數器。由DSP通過DSP-FPGA接口改寫寄存器值,可以很方便地調整PN碼的輸出相位。
偽碼移位電路的主要作用是將碼發生器產生的PN碼進行移位操作,從而得到偽碼的不同相位。捕獲和跟蹤過程共使用了8路24組相關累加器,每一路分為超前、當前、滯后3組,這3組累加器輸入端PN碼相差半個碼片的相位,8路相關累加器中每相鄰兩路相差64個半碼片。碼發生器輸出5組PN碼序列(第0組~第4組),分別對應同步偽碼及4組數據偽碼。5組偽碼均經過512級移位寄存器,經0組PN碼作同步碼,取其0、1、2相位作為第一路的超前、當前、滯后3組相關累加器的輸入;64、65、66相位作為第二路的超前、當前、滯后3組相關累加器的輸入,其余各路依此類推。當完成捕獲后,需要將捕獲所得的同步PN相關切換到數據解調相關累加器中。例如,假設在第二組相關累加器的當前相位就應該與第二組相關累加器當前通道的PN碼相位保持一致。數據偽碼相位切換的實現是由DSP記憶捕獲通道的相位,然后控制多路選擇開關選擇該相位。
2 同步模塊的FPGA實現
同步模塊由位同步及幀同步電路構成,主要實現對信息數據的檢測和提取,并識別一幀信息數據的幀頭位置,實現跳頻圖案的同步。跳頻圖案的同步采用等待搜索同步法,開始時接收端頻率合成器停留在某一單頻點ft',等待發射機的頻率fi,當發射機的頻率跳變為fi時,接收端本地的頻率fi'與發送的頻率fi混頻后,輸出中頻fIF。DSP完成解擴解調運算后,得到的串行數據流送入位同步和幀同步電路,從數據流中提取出特征字,就可以獲得一幀完整的數據,從而確定幀頭位置,即頻率轉換時刻,由于控制接收端頻率合成器與發送端頻率合成器同步跳變,實現跳頻圖案的同步。由于采用編碼擴頻調制方式,發送端每兩位信息比特有一個PN碼周期被編碼為4種PN碼中的一種。所以接收端在每一個PN碼周期,對4組數據相關累加器的累加結果進行最大值比較,然后譯碼成相應的信息數據。信息數據送到同步電路,進行馬克碼匹配相關,提取有效的信息位,并控制跳頻時序完成跳頻同步。同步模塊原理如圖5所示。
在每一個PN碼周期,4組數據解調相關累加器解調出2bit信息數據。2bit信息數據以9.6kHz的速率送到同步電路。同步電路首先將信息數據進行并串轉換,由9.6kHz、2bit的數據流變換為19.2kHz、1bit的數據幀,變換后的數據流再經過串并變換,得到19.2kHz、32bit的并行數據流。根據信號格式,每一幀數據為32bit,相應的13位巴克碼在一幀數據中的位置固定不變,所以提取每幀數據中相應位置上的13位數據比特與本地巴克碼進行相關匹配運算,結果與門限值比較,如果符合門限設置,即有中斷輸出,通知外部設備讀取相應數據。
3 實驗結果
系統技術指標為:信息數據速率4.8kbps,比特率19.2kbps。跳頻速率600hop/s,20個跳頻點,跳頻帶寬68MHz,每跳32bit擴頻碼周期為256,碼速率為4.9152MHz。用TEKTRONIX 2221A數字存儲示波器觀測實驗結果。圖6~9為FPGA各測試點的測試結果。
圖6中第一組波形是256碼長本地接收同步偽碼流,第二組為跳頻幀同步信號,該信號對應的偽碼相位即為解擴、跳頻同步同時的相位。圖7第一組波形為接收數據流,第二組波形為發射數據流,發射數據幀格式為00000000011111001101010000000000,幀同步碼為13位巴克碼1111100110101,8位信息數據為00000000。由圖7可以看出接收端數據與發射端相同,但滯后于發射端,這是由于傳輸時延造成的。圖8第一組波形為接收串行數據,第二組為跳頻幀同步信號,該信號下降沿對應于一幀數據的起始,控制頻率合成器進行頻率轉換。圖9第一組波形為發射跳頻幀信號,第二組為接收幀同步信號,接受幀信號上升沿與發射跳頻幀信號的下降沿對齊,信號寬度大于發射端信號。這是因為控制頻率合成器進行頻率轉換的updata信號需要 定寬度。
解擴及同步是DS/FH混合擴頻接收機正確數據解調的關鍵,采用FPGA設計實現了多片專用芯片的功能,大大縮小了接收機體積,便于系統實現小型化、集成化。捕獲及跳頻同步等算法采用硬件實現,加快了捕獲跟蹤速度。FPGA的可編程性使電路的設計更具靈活性,并使系統具有“軟”接收機的特點。實驗結果表明FPGA系統設計是正確可行的。
評論
查看更多