胡輝,楊國藝,朱紹文
(1.華東交通大學信息工程學院,江西南昌330013;2.哈爾濱工業大學電氣工程及自動化學院,黑龍江哈爾濱150006)
基于DSP和FPGA的多通道GPS中頻信號源設計與實現
胡輝1,楊國藝1,朱紹文2
(1.華東交通大學信息工程學院,江西南昌330013;2.哈爾濱工業大學電氣工程及自動化學院,黑龍江哈爾濱150006)
衛星導航信號源是衛星導航接收機研制過程中的重要測試設備。采用軟件無線電技術,實現了一種基于DSP+FPGA的多通道GPS中頻信號源。基于GPS中頻信號數學模型,給出了系統整體設計方案。采用模塊化設計,詳細闡述了DSP與FPGA的數據交互邏輯、總線接口模塊、載波NCO模塊、碼模塊和導航電文緩沖模塊等系統關鍵部分的實現及重要參數設置的依據,并給出ModelSim-Altera 6.4a下各模塊的仿真結果。實測結果表明,信號源生成中頻信號波形、頻譜符合GPS信號體制規范,且能夠被軟件接收機正確捕獲、跟蹤。該信號源具有良好的實時性和可擴展性,成本可控,可有效應用于實驗室環境下接收機的性能測試。
GPS信號源;多通道;數字信號處理器;現場可編程門陣列
衛星導航信號源是衛星導航研究領域的重要設備,利用它可以在實驗室環境下對衛星導航接收機的捕獲、跟蹤性能進行有效的測試與評估,尤其是對于高動態等復雜場景,可大大減少接收機設備的研制成本[1]。
目前國內外研制的衛星導航信號源主要有3種類型:軟件信號源、采集回放式信號源和硬件信號源。軟件信號源[2]主要基于Matlab/Simulink、Visual C++等軟件開發平臺實現,信號參數計算和調制生成均由軟件完成。該方式生成信號精度較高,易于實現,成本較低,但使用時需提前生成信號,不能實時應用,且占用大量存儲空間。采集回放式信號源[3-4]使用時首先采集實際導航信號并存儲,然后在需要時回放已存信號。該方式能夠產生真實環境的導航信號,硬件結構相對簡單,開發復雜度低,但是只能產生已采集的信號,靈活性較差。硬件信號源[5-6]一般由上位機軟件和專用信號產生板卡構成,信號參數計算由上位機軟件完成,信號調制生成則由硬件板卡實現。該類信號源多采用VXI、CPCI或PXI等高速總線架構,精度高,能夠實時工作,但技術復雜,實現難度大。目前硬件信號源多由國外進口,核心技術被國外壟斷,且功能嚴格受限,價格昂貴,一般高校實驗室或科研院所難以承受。因此,研制具有自主知識產權的硬件信號源具有重要意義。
本文采用軟件無線電技術,實現了一種基于DSP+FPGA的多通道GPS中頻信號源。結合DSP計算性能強大和FPGA善于并行處理的特點,將主要信號參數的計算放在DSP中完成,FPGA則進行多路數字中頻信號的調制與生成,精度高,實時性好,成本可控;充分利用器件的可編程特性,減少外圍芯片數量,降低硬件設計復雜度;采用模塊化設計,使系統易于維護和升級。理論分析與測試表明,該中頻信號源達到偽距變化率誤差±0.01m/s、偽距誤差±0.01m的系統設計指標,生成信號波形、頻譜符合GPS信號體制規范,能夠用于接收機捕獲、跟蹤測試。
GPS系統從本質上講,是一個基于碼分多址(CDMA)的無線擴頻通信系統[7]。對于GPS L1頻點C/A碼信號,第i顆衛星在t時刻(GPS系統時)所發射的信號si(t)可表示成:

其中Ps為衛星信號發射功率;Di(t)為第i顆衛星調制的導航電文,速率為50 b/s;Ci(t)為第i顆衛星發射的偽隨機碼,速率為1.023 Mc/s;fL1為GPS L1信號載波頻率,為1 575.42 MHz;φ0為L1載波的初相位。
多顆衛星的信號經過一段時間的傳播后到達接收機射頻前端,經過多級下變頻和帶通濾波后的合成中頻信號[8]可表示為

本設計采用數字化信號生成方法,將式(2)數字化可得:

其中Ts為信號采樣間隔。
GPS中頻信號源,是根據式(3)產生包含載體動態特性[9]的GPS中頻信號。
多通道GPS中頻信號源系統的結構框圖如圖1所示。系統由數字中頻信號產生部分和外圍模塊兩大部分構成。數字中頻信號產生部分采用DSP+ FPGA的軟件無線電架構設計方案,其中DSP選用TI公司TMS320C6713B芯片,FPGA選用Altera公司Stratix II系列EP2S60F484I4芯片;外圍模塊主要包括上位機軟件部分和DA轉換模塊AD9777。

圖1 GPS中頻信號源系統結構框圖
信號源中,DSP芯片是數字中頻信號產生部分的核心部件,它完成整個信號源硬件平臺的初始化和控制。DSP同時承擔了信號源大部分的參數計算工作,具體來講,對應到式(3),主要有:可見衛星PRN號i,導航電文Di(nTs),信號傳播總延遲τi和信號多普勒頻移。其中延遲和多普勒參數的計算[10]是信號源實現對偽距和接收機動態模擬的核心。DSP通過計算這兩個參數,并將其轉化為初始碼片計數、碼頻率控制字、碼相位調整字,載波頻率控制字、載波相位調整字,控制FPGA產生所需狀態的信號。
FPGA在DSP的控制下,產生GPS數字中頻信號。對應到式(3),FPGA的功能主要有:各通道偽隨機碼Ci(nTs)、數字中頻載波cos(2πfIFnTs+φ0)的產生;接收DSP發送的導航電文和頻率控制字、相位調整字等控制參數;根據收到的控制參數,通過數字控制振蕩器(numerically controlled oscillator,NCO)實現對碼和載波的頻率及相位的控制,以實現對GPS信號的傳輸延遲及多普勒效應的模擬;實現數據碼的擴頻調制以及載波的BPSK調制;實現多通道信號的合成。
此外,在FPGA內部還設計了串口收發模塊,實現上位機與DSP交互數據的緩存和轉發,以減少系統外圍芯片的數量。
由式(3)可知,GPS數字中頻信號是多顆衛星中頻信號的疊加。信號源首先并行產生各顆可見衛星的中頻信號,再將多個通道的信號疊加輸出。每個信號產生通道在FPGA中實現的方法一樣。總線接口模塊及信號產生通道結構框圖如2所示。

圖2 總線接口模塊及信號產生通道結構框圖
3.1 DSP與FPGA的接口及數據交互
信號源在初始化和運行時,DSP與FPGA之間有頻繁的數據交互,需采用可靠的設計以保證數據傳輸的可靠性和實時性。本設計中,FPGA作為一個片外存儲器外設連接在DSP的外部存儲器接口(external memory interface,EMIF),并通過產生外部中斷控制DSP對FPGA的讀寫操作,二者構成一個基于中斷驅動的實時系統。
如圖2所示,FPGA連接在DSP EMIF的CE2空間,EMIF相應空間配置為“32位異步接口”模式。FPGA內部邏輯產生1ms周期性脈沖,輸出至DSP外部中斷4號引腳,觸發DSP中斷,控制二者的數據交互。
DSP在進入中斷后,將計算完成的實時碼、載波控制字傳輸至FPGA,以控制生成信號的狀態。同時DSP將讀取FPGA導航電文讀空標識狀態,若該值為1,表示需要更新導航電文,DSP將發送新的導航電文至FPGA(以字(30 bit)為單位,每次發送4字)。
除此之外,DSP在每次進入中斷后會讀取碼NCO和載波NCO累加的實時碼相位、載波相位值,用于控制字的校正[11]。同時,在每個中斷周期間,DSP需完成偽距的實時計算,并將其轉換為碼、載波控制字,在中斷服務程序中發送至FPGA。
3.2 總線接口模塊
對于32位異步存儲訪問,EMIF可用外部地址總線為EA[21:2],相應FPGA定義的寄存器地址訪問規則為:將20位地址線分為兩部分,EA[21:18]用于讀寫譯碼,“4'b0001”表示對FPGA進行寫操作,“4'b0010”表示對FPGA進行讀操作;EA[17:2]用于寄存器地址譯碼。寄存器地址由3部分組成:系統段基址+通道段基址+寄存器偏移地址。FPGA中信號產生通道相關寄存器地址定義如表1所示,其中變量i表示通道號,取值范圍為1~12。

3.3 載波NCO模塊
載波NCO模塊接收DSP送來的載波頻率控制字FW_CARR_NCO、載波相位調整字PW_CARR_ NCO,實現動態數字中頻載波的產生。載波NCO基于直接數字頻率合成器(direct digital synthesizer,DDS)原理實現,其結構如圖3所示。

圖3 載波NCO結構框圖
如圖所示,載波NCO主要由加法器、32位寄存器和波形查找表ROM構成。其中為節省存儲空間,截取當前相位累加值的高10位作為波形查找表ROM讀地址。波形查找表實現載波相位至幅度的轉換,查找表中載波幅度值量化為12 bit。
由DDS原理可知,當系統時鐘頻率為fclock,累加寄存器位寬為N,頻率控制字為FW_CARR_NCO時,輸出信號頻率fout為:

頻率分辨率Δf為:

同時,為了模擬信號的傳輸延遲引起的載波相位變化,設置了相位調整字PW_CARR_NCO。相位變化量Δφ與相位調整字PW_CARR_NCO的關系為:

由式(5)可知,累加寄存器位寬N與頻率分辨率Δf等系統指標密切相關。根據系統設計指標,偽距變化率誤差為vres=±0.01 m/s,則對于L1載波頻點,要求多普勒模擬精度為:
2、從農業機械維修的經濟方面看,即設備的使用、維修、更新只能以經濟壽命為依據。經濟壽命是指設備還具有一定的生產能力,但由于有形損耗和無形損耗,使設備的使用經濟性下降,如果繼續使用這種設備,將會造成經濟損失。也就是設備運行到一定時間由于費用急劇上升,就必須進行修理,這樣才能在合理費用支出下保證設備的正常運轉。設備每進行一次這樣的循環,費用就較前一次上升一些,運轉周期就短一些。經過數次循環后,就必須考慮更新設備。

因此,載波NCO頻率分辨率需滿足:Δf"Δfd。本設計中,系統時鐘為150 MHz,根據式(5),可得累加寄存器位寬N為:

當輸出中頻載波頻率為4.309 MHz時,根據式(4)計算可得頻率控制字FW_CARR_NCO為0x75AA17E。載波NCO模塊仿真結果(仿真環境為ModelSim-Altera 6.4a,下同)如圖4所示。

圖4 載波NCO仿真結果
3.4 碼模塊
碼模塊由碼NCO和碼產生模塊兩部分構成。與載波NCO類似,碼NCO模塊也是在DSP發送來的碼頻率控制字FW_CODE_NCO和碼相位調整字PW_CODE_NCO的控制下,產生頻率和相位可調的碼時鐘。不同的是碼NCO的輸出作為碼產生模塊的使能時鐘,僅輸出“0”、“1”即可,不需要進行相位截斷,也不需要波形查找表。碼NCO結構如圖5所示。

圖5 碼NCO結構框圖
碼NCO累加寄存器位寬M與系統偽距模擬精度Δρ的關系為:

式中Tcode為C/A碼碼元寬度。
根據系統設計指標,C/A碼偽距誤差為ρres=± 0.01 m,即要求偽距模擬精度:。根據式(9),可得累加寄存器位寬M為:

本設計中,取碼NCO累加寄存器位寬與載波NCO相同,為32 bit,使二者在同一系統時鐘下具有相同的頻率分辨率,且能充分保證偽距模擬精度的要求。
GPS信號中的C/A碼是一種Gold碼,它由兩個10位的線性反饋移位寄存器G1和G2產生的優選m序列對異或相加而成。本設計采用賦初值法[12]實現碼產生模塊,即移位寄存器G1初值均設為10'h3FF,通過給移位寄存器G2賦不同初值,產生不同衛星的碼序列。
碼模塊整體仿真結果如圖6所示,仿真產生2號衛星C/A碼,碼速率設為1.023MHz。PRN_SEL為衛星號控制字,用于設置G2寄存器初值,此處設為0x6F,對應2號衛星;系統時鐘clock為150MHz,帶入式(4)計算可得頻率控制字FW_CODE_NCO為0x1BEF49D;PW_CODE_NCO為碼相位調整字,CODE_DEL_CNT為碼片延遲計數,分別用于調整碼片內相位和碼周期內相位,此處均設為0;fclock為碼時鐘,CA_CODE_OUT為碼序列輸出。

圖6 碼模塊仿真結果
3.5 導航電文緩沖模塊
GPS信號源中,導航電文由DSP計算產生并按電文幀格式組織后發送至FPGA進行擴頻調制。由于DSP向FPGA寫入導航電文是通過EMIF總線以EMIF輸出時鐘ECLKOUT速率(50MHz)進行,為高速并行方式;而FPGA信號調制模塊讀取導航電文進行調制是按比特以導航電文速率(50Hz)進行,為低速串行方式。二者屬于跨時鐘域異步通信,且需進行數據并行至串行傳輸的轉換,因此設計單獨的導航電文緩沖模塊解決上述兩個問題。
解決跨時鐘域數據傳輸可靠性問題的方法主要有[13]單向控制信號檢測、專用握手信號和借助于存儲器。由于FPGA內部提供豐富的存儲器資源,本設計中采用雙時鐘FIFO[14](DCFIFO)作為數據緩存單元,解決這一問題。同時,為完成數據傳輸的并串轉換,采用了帶有同步并行預置數功能的移位寄存器實現這一功能。
此外,為保證導航電文連續、可靠的傳輸,避免電文更新時的等待,實現數據的無縫緩沖與處理,本設計采用兩個DCFIFO構成乒乓結構,通過設計專門的輸入輸出選擇模塊,控制兩個DCFIFO交替地進行讀寫。導航電文緩沖模塊的結構如圖7所示。
導航電文緩沖模塊中,DCFIFO和并串轉換移位寄存器均利用Altera Megafunction宏功能實現。兩個DCFIFO的大小均為30bits×4words,移位寄存器長度同為30bit。仿真開始前,DSP首先向DCFIFO_1寫入4字的電文數據;等檢測到rdempty_ 2&wrfull_1(rdempty_x和wrfull_x分別為DCFIFO_x讀空和寫滿信號,下同)信號變為高電平時開始從DCFIFO_1讀取電文數據至并串轉換器,與此同時,DSP開始向DCFIFO_2寫入新的4字電文數據;等檢測到rdempty_1&wrfull_2信號變為高電平時切換DCFIFO_1和DCFIFO_2的讀寫;以后讀寫在兩個DCFIFO間依次交替進行。導航電文緩沖模塊能夠正確實現數據無縫緩沖和并串轉換的功能。
4.1 中頻信號波形及頻譜
分別將程序通過仿真器下載至DSP和FPGA,并使用在線邏輯分析儀SignalTap II采集信號源產生的中頻信號,觀察其時域波形;并將數據導入到Matlab觀察其頻譜,驗證其是否符合GPS信號體制規范。以產生的GPS 2號衛星中頻信號為例,圖8、9分別顯示了其時域、頻域波形。圖8顯示在某些時刻,載波信號相位反相,符合BPSK信號特性;圖9顯示生成信號的中心頻率約為4.309 MHz,主瓣帶寬約為2 MHz,與GPS C/A碼信號特性一致。

圖7 導航電文緩沖模塊結構框圖

圖8 GPS 2號衛星中頻信號時域波形

圖9 GPS 2號衛星中頻信號幅頻特性曲線
4.2 軟件接收機捕獲及跟蹤測試結果
設置信號源產生GPS 1、2、18及23號衛星的中頻合路信號,并將產生的中頻信號保存為二進制文件,仿照GP2015射頻前端輸出數據格式的要求對中頻信號進行帶通采樣(采樣率5.714 MHz),然后將數據導入到Matlab軟件接收機進行捕獲、跟蹤測試。圖10顯示了軟件接收機捕獲到的各顆衛星,與預期一致。

圖10 GPS接收機捕獲結果
圖11分別顯示了2號衛星的捕獲、跟蹤結果。如圖所示,中頻數據導入Matlab軟件接收機后,可以被正確捕獲、跟蹤并解調導航電文。
結合4.1GPS中頻信號時、頻域分析的結果,可認為所設計的GPS中頻信號源能夠正確產生所需的GPS中頻信號。


圖11 GPS 2號衛星捕獲、跟蹤結果
本文根據GPS中頻信號數學模型,設計并實現一種基于DSP+FPGA架構的多通道GPS中頻信號源。給出信號源整體設計方案,并重點介紹DSP與FPGA的接口及數據交互邏輯設計,總線接口模塊、載波NCO模塊、碼模塊和導航電文緩沖模塊的實現原理和關鍵參數設置的依據,以及各模塊仿真結果。理論分析和測試結果表明,設計的信號源達到偽距變化率誤差±0.01 m/s、偽距誤差±0.01 m的系統設計指標,并能用于軟件接收機捕獲、跟蹤測試。
[1]GHANEM N,BERJASS H.A Method to Simulate Realistic Kinematic Trajectories on GNSS Signal Generators[C]// Proceedings of the ION 2015 Pacific PNT Meeting.Hawaii,2015:872-885.
[2]BISNATH S,DOLGANSKY A,SZETO A.Development of a Software-based Multi-GNSS Observable Simulator[C]// Proceedings of the 23rd International Technical Meeting of The Satellite Division of the Institute of Navigation(ION GNSS 2010).Portland,2010:892-899.
[3]HICKLING S,HADDRELL T.Recording and Replay of GNSSRFSignalsforMultipleConstellationsand FrequencyBands[C]//Proceedingsofthe26th International Technical Meeting of The Satellite Division of the Institute of Navigation(ION GNSS+2013).Nashville,2013:1907-1918.
[4]RICHTER R,WOLF B,MICHLER O.Evaluation of GNSS RF Signal Simulators and Receivers Based on Recorded Multi GNSS Signals in Scenarios of Traffic Telematics[C]//Proceedings of the 26th International Technical Meeting of The Satellite Division of the Institute of Navigation(ION GNSS+2013).Nashville,2013:1881-1889.
[5]MAGIERA J.Design and Implementation of GPS Signal Simulator[C]//Localization and GNSS(ICL-GNSS), 2012 International Conference on IEEE,2012:1-4.
[6]趙楊.GNSS信號仿真平臺中頻信號源硬件平臺設計及實現[J].全球定位系統,2014(2):43-48.
[7]ZHU Z,VAN G F.Implications of C/A code cross correlation on GPS and GBAS[C]//Position,Location and Navigation Symposium-PLANS 2014,2014 IEEE/ ION.IEEE,2014:282-293.
[8]侯博,謝杰,范志良,等.多模衛星信號模擬器設計與實現[J].計算機測量與控制,2012(1):170-172,176.
[9]MA H,LI Y.Research on the Production of the Carrier Moving Trajectory of High Dynamic GPS Signal Simulator[C]//Engineering and Technology(S-CET),2012 Spring Congress on IEEE,2012:1-4.
[10]孫奇材,周柱.一種數字中頻GPS信號生成方法[J].通信技術,2012(6):124-127.
[11]冀臻.GNSS衛星信號模擬器研究與實現[D].太原:中北大學,2011:37-38.
[12]胡輝,方玲,王會芹,等.高動態GPS 12通道半定制相關器芯片研制[J].微電子學與計算機,2014(2):39-45.
[13]吳厚航.深入淺出玩轉FPGA[M].2版.北京:北京航空航天大學出版社,2013:52.
[14]鄭爭兵.雙時鐘FIFO在多通道高速傳輸系統中的應用[J].核電子學與探測技術,2013,33(5):637-640.
(編輯:劉楊)
Design and implementation of GPS IF signal source based on DSP and FPGA
HU Hui1,YANG Guoyi1,ZHU Shaowen2
(1.College of Information Engineering,East China Jiaotong University,Nanchang 330013,China; 2.School of Electrical Engineering and Automation,Harbin Institude of Technology,Harbin 150006,China)
Satellite navigation signal source is an important test equipment for the development of satellite navigation receiver.Using software defined radio technology,a multi-channel GPS intermediate-frequency (IF)signal source was developed based on DSP and FPGA.According to the mathematical model of GPS IF signal,the system overall design scheme is given.Using block-based design,the key parts of the signal source and the bases of settings for significant parameters are fully detailed,including the data exchange logic between DSP and FPGA,bus interface module,carrier NCO module,code module and navigation message buffer module.The simulation results of these modules in ModelSim-Altera 6.4a are also presented.The practical test results show that waveform and spectrum of the IF signal generated by the signal source is in line with GPS signal specification and the IF signal can be acquired and tracked correctly by software receiver.The signal source has good real-time performance and scalability with controllable cost,which is able to be effectively used in the lab for the performance test of the receiver.
GPS signal source;multi-channel;DSP;FPGA
A
1674-5124(2016)11-0100-07
10.11857/j.issn.1674-5124.2016.11.021
2016-05-07;
2016-07-04
江西省自然科學基金(20142BAB207001)江西省教育廳科學技術研究項目(GJJ14369)
胡輝(1970-),男,江西南昌市人,教授,博士,研究方向為衛星導航定位、并行算法與并行處理、機器視覺。