DS/FH混合擴頻接收機解擴及同步技術的FPGA實現
DS/FH混合擴頻通信系統中,需要數字下變頻器、相關累加器及碼發生器等完成下變頻、相關解擴等運算。通常采用專用芯片來完成這些功能,導致系統體積增大,不便于小型化。現代的EDA(電子設計自動化)工具已突破了早期僅能進行PCB版圖設計或電路功能模擬、純軟件范圍的局限,以最終實現可靠的硬件系統為目標,配備了系統自動設計的全部工具,如各種常用的硬件描述語言平臺VHDL、Verilog HDL、AHDL等;配置了多種能兼容和混合使用的邏輯描述輸入工具,如硬件描述語言文本輸入法(其中包括布爾方程描述方式、原理圖描述方式、狀態圖描述方式等)以及原理圖輸入法、波形輸入法等;同時還配置了高性能的邏輯綜合、優化和仿真模擬工具。FPGA是在PAL、GAL等邏輯器件的基礎上發展起來的。與PAL、GAL等相比較,FPGA的規模大,更適合于時序、組合等邏輯電路應用場合,它可以替代幾十甚至上百塊通用IC芯片。FPGA具有可編程性和設計方案容易改動等特點,芯片內部硬件連接關系的描述可以存放在下載芯片中,因而在可編程門陣列芯片及外圍電路保持不動的情況下,更換下載芯片,就能實現新的功能。FPGA芯片及其開發系統問世不久,就受到世界范圍內電子工程設計人員的廣泛關注和普遍歡迎[1~5]。本文主要討論一種基于編碼擴頻的DS/FH混合擴頻接收機解擴及同步過程的實現結構,采用ALTERA公司的APEX20K200RC240-1器件及其開發平臺Quartus II實現混合擴頻接收機的核心——解擴及同步模塊。
1 混合擴頻接收機解擴模塊的FPAG設計
解擴模塊是混合擴頻接收機的核心。該模塊實現對接收信號的解擴處理,主要包括數字下變頻器、數控振蕩器(NCO)、碼發生器、相關累加器和偽碼移相電路等,通常各模塊采用專用芯片。利用FPGA將這些功能集成在一塊芯片中,大大縮小了接收機的體積,便于實現系統的小型化和集成化。下面分別介紹該模塊各部分的FPGA實現結構。
1.1 數控振蕩器(NCO)
數控振蕩器是解擴模塊中的重要組成部分,主要用于為碼發生器提供精確的時鐘信號,從而實現對接收信號的捕獲和跟蹤。碼發生器由相位累加器和查找表構成。若使用字長為40位寬的累加器,對于某一頻率控制字A,輸出頻率fout與輸入頻率控制字A的關系為:
其中,fclk為系統時鐘。只要改變控制字A的大小,就可以控制輸出頻率fout。fout變化的最小步長Δf由累加器的數據寬度決定。若數據寬度取40位,則:
???????????????????????????
利用上述原理,可以通過精確分頻得到所需頻率。原理圖如圖1所示。
圖1中頻率控制字A由DSP寫入。考慮到FPGA內部存儲資源限制,取40位相位累加值result[39..0]的高八位作為查找表LUT(look-up table)的輸入,查找表由ROM構成,存儲各相位所對應采樣值。當查找表輸入端為某一相位phase時,則輸出對應采樣值。若輸出數據寬度為6位,輸出信號格式為余弦信號,則LUT輸出為[6]:
若取ROM的并行6位out[5..0]作為輸出,則輸出信號為每周期采樣256點的數字化余弦信號;如果取最高位out[5]作為輸出,則輸出為系統時鐘的分頻信號。
1.2 數字下變頻器
數字下變頻器將A/D采樣得到的中頻信號進行下變頻處理,去除中頻,得到基帶信號。利用本地NCO產生與輸入中頻信號頻率相同的正弦和余弦信號,并與輸入信號進行復乘法運算,然后對運算結果做低通濾波,即可完成對中頻信號的下變頻操作。正交采樣模式下,兩路A/D轉換器提供正交輸入IIN及QIN,數字下變頻器的復乘法器輸出IOUT、QOUT為:
本振信號、復乘法器、低通濾波器均采用數字化設計。數字下變頻器采用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]關系為:
該低通濾波器將相鄰的兩個輸入數據相加后作為輸出,即每兩個輸入數據對應一個輸出數據,輸入數據時鐘節拍為輸出數據時鐘節拍的2倍。
經過低通濾波后的數據經過滑動窗處理,滑動窗對輸入數據進行選擇輸出,用來動態調整相關峰的大小。在捕獲過程中觀察相關峰值時,通過調整滑動窗口,可以獲得不同幅度的相關峰值。選擇控制端由DSP寫控制字來決定,結構如圖3所示。滑動窗控制邏輯關系為:
符號擴展是為了與后面的相關累加器數據寬度保持一致,符號位擴展時需與輸入數據最高位的符號保持一致。
1.3 相關累加器
相關累加器完成本地偽碼與接收信號的相關累加運算,運算得到的結果送入DSP完成偽碼的捕獲和跟蹤。取偽碼長度為256位,采用半碼片滑動,則一個碼周期完成512次累加運算。如采用串行滑動相關捕獲方式,則遍歷所有的碼相位所需要的時間為512個碼周期,即捕獲所需要的最長時間為512個PN碼周期。由于可編程邏輯器件的發展,使得有足夠的硬件資源來完成并行運算。此處采用串/并混合的捕獲方式[6][7],采用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,CLR下降沿有效。鎖存器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碼相位就應該與第二組相關累加器當前通道的PN碼相位保持一致。數據偽碼相位切換的實現是由DSP記憶捕獲通道的相位,然后控制多路選擇開關選擇該相位。
2? 同步模塊的FPGA實現
?
同步模塊由位同步及幀同步電路構成,主要實現對信息數據的檢測和提取,并識別一幀信息數據的幀頭位置,實現跳頻圖案的同步。跳頻圖案的同步采用等待搜索同步法,開始時接收端頻率合成器停留在某一單頻點fi′,等待發射機的頻率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系統設計是正確可行的。
評論
查看更多