王 禎,王爾申,代雙亮,戴麗興
(沈陽航空航天大學 電子信息工程學院,遼寧 沈陽 110136)
全球衛星定位系統(GPS)可在全球范圍內,全天候為用戶連續地提供高精度的位置、速度和時間信息。目前,GPS已被應用于軍事、航海、航空、測量、交通、勘測等幾乎一切與位置、速度、時間有關的人類活動中。自從GPS系統建立以來,世界上對于GPS及其應用技術的研究越來越普及。而關于與用戶聯系最為緊密的GPS接收機的研究是其中的研究熱點。在GPS接收機的設計和研究中,為了捕獲和跟蹤GPS信號,首先就要對C/A碼信號進行碼剝離,為此,需要在本地復現與接收機接收的同相位的C/A碼信號。因此,關于GPS信號C/A碼生成的仿真研究就具有一定的意義。GPS衛星信號包括載波信號、測距碼和數據碼。其中的測距碼粗碼即C/A碼(Coarse Acquisition Code)除了作為粗測碼外,還由于其具有碼長短,易于捕獲的特點而作為GPS衛星信號的捕獲碼,因此C/A碼是GPS信號捕獲以及接收機實現的基礎[1]。文獻[2]利用Matlab對C/A碼進行了仿真研究,文獻[3]對C/A碼生成進行了硬件仿真。
文中針對GPS全球衛星導航系統ICD接口文件中C/A碼的編碼方式,在Matlab仿真的基礎上,設計出一種基于FPGA的C/A碼發生器,通過VHDL語言編程實現了測距碼的仿真,其結果表明設計的正確性。
GPS衛星導航定位系統是一種無線電導航定位(Radio Navigational Satellite Service,RNSS)系統,利用高空中的 GPS衛星,向地面發射L波段的載頻無線電測距信號,由地面上用戶接收機實時地連續接收,并計算出接收機天線所在的位置。GPS衛星發射L1和L2兩種波段的載波,系統采用碼分多址(CDMA)技術來區分各顆衛星,每顆衛星都有自己特定的偽隨機噪聲碼(PRN碼)結構。C/A碼時鐘速率為1.023 MHz,碼長為1 023 chip,周期為1 ms。用于快速捕獲導航信號和實時粗略定位。GPS系統的L1信號調制有兩種偽碼,粗捕獲碼(C/A碼)和精密碼(P碼)[4-5]。L1頻率上的GPS信號表達式如下:A:表示P碼的信號幅度;

D(t):表示50 Hz的導航電文數據;
C(t):表示 C/A 碼;
f1:表示載波頻率;
C/A是Gold碼序列,由兩個10位移位寄存器G1和G2產生長度為210-1=1 023位的最大長度偽碼(PN碼)。C/A碼是由G1的直接輸出和G2的延時輸出異或的結果,是長度為1 023的±1序列[6]。其發生器如圖1所示。G2的時間延時取決于選取的兩個點的位置,這兩個點的選取和衛星的ID是一一對應的。

圖1 C/A碼產生器原理設計圖Fig.1 Principle diagram of C/A code generation
如圖1所示C/A碼發生器是由兩個10級反饋移位寄存器組成的,上面的移位寄存器產生m序列G1,下面移位寄存器產生m序列G2。G1和G2碼的特征多項式是:

G2(x)=1+x2+x3+x6+x8+x9+x10C/A 碼是 G1 碼與 G2 碼的模2和的結果,通過在G2寄存器不同位置反饋抽頭,可產生不同的延遲偏置。選擇不同的等價序列G2和G1相異或,可以得到不同結構的C/A碼,C/A碼可表示為:

i是大于等于0的整數。G1和G2的周期為1 023,碼速率均為1.023 MHz,因此,周期都是1 ms。采用不同的可以產生1023種不同結構的乘積碼,再加上G1和G2本身,共有1 025種結構不同的C/A碼。
C/A碼的產生需要G1和G2碼序列,G1和G2的一個周期總數為1 024,而C/A碼截斷一位,因此,在第1 023個碼元之后的下一個脈沖要進行復位操作。采用VHDL編寫各個m碼產生器,編寫的依據是m碼產生原理及其仿真[7]。
G1碼序列是一個10級反饋移位寄存器所產生m序列,根據C/A碼發生器整體需要,還需要在設計G1碼發生器本身上再加上控制信號端。將編寫好的VHDL語言程序在Quartus II環境中進行編譯,并生成相應元件符號。用QuartusII模擬器對該模塊進行時序仿真。

圖2 G1碼時序仿真Fig.2 Timing simulation diagram of G1 code
圖2中,clk端為同步時鐘脈沖:1.023 MHz,en端為使能端,高電平“1”有效;reset端為復位端,高電平“1”有效,在reset下降沿以后開始輸出G1碼序列,每個時鐘上升沿輸出一個碼字, 依次為:“1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,……”
G2碼發生器的設計方法與G1相同,只是多了一個平移選擇器,平移選擇器的不同組合可以產生多種結構不同的m碼,所以,G2的設計要比G1多一個平移選擇器的控制項。本設計通過選擇不同的抽頭得到不同的m序列碼結構。用Quartus II對該模塊進行時序仿真。

圖3 G2碼序列仿真圖Fig.3 Timing simulation diagram of G2 code
如圖3所示,clk端為同步時鐘脈沖1.023 MHz;en端為使能端,高電平“1”有效;reset端為復位端,高電平“1”有效;pio_ca為相位選擇段。仿真以0號平移選擇器為例的,即選擇的抽頭為該10級反饋寄存器的2和6。系統在reset同步下降沿以后開始輸出G2碼序列,每個時鐘上升沿輸出一個碼字,依次為:

在Quartus II環境中,將生成的G1碼和G2碼的發生器生成元件符號,以Schematic File的設計方式將G1和G2碼發生器組合起來,考慮到系統的穩定性,還設計了一個帶時鐘異或運算模塊,用于接收全局時鐘同步。本次仿真以第一顆衛星為例,相位輸入為“0000”。在Quartus II環境下,將總體設計電路圖進行編譯,并進行時序仿真,平移選擇器控制字仍設置為0,仿真圖如圖4所示。

圖4 測距碼碼發生器時序仿真圖Fig.4 Timing simulation diagram of C/A code generation
圖4中,在系統reset同步以后,開始輸出C/A碼序列,每個時鐘上升沿輸出一個比特, 依次為:“1,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0……”。 其中,clk 端為同步時鐘脈沖:1.046 MHz,en 端為使能端:高電平“1”有效,reset端為復位端:高電平“1”有效,pharse為相位選擇輸入,ca端:產生的周期為1 023 bit的C/A碼序列。

圖5 C/A碼生成器simulink仿真模型Fig.5 Simulink simulation model of C/A code generation
為了驗證FPGA仿真的正確性,利用matlab simulink軟件進行建模和仿真。利用延時單元構成兩個10位的移位寄存器,并從移位寄存器輸出端選擇抽頭連接到異或門電路,將其輸出反饋,抽頭和反饋的連接按照GPS衛星PRN編碼規則進行選擇,并把最終輸出結果連接到示波器單元觀察其仿真波形。建立的simulink仿真模型如圖5所示,運行的結果如圖6所示。從仿真的波形圖上可以看出,輸出的GPS第一顆衛星 PRN 碼的 C/A 基碼也依次為:“1,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0……”,前 10 個 C/A 基碼對應的 8進制為1 440,與GPS系統第一顆衛星的C/A碼完全相同。

圖6 Simulink仿真的第一顆衛星的C/A基碼序列波形Fig.6 Simulink simulation result of C/A code for PRN1
結合GPS衛星導航系統f1頻點C/A碼發生器的設計,在研究GPS衛星導航系統ICD接口控制文件中C/A碼生成器原理的基礎上,給出了基于FPGA的碼生成器的設計方案。利用VHDL語言實現了G1碼和G2碼的產生,并設計實現了C/A碼,利用Matlab simulink建模仿真驗證了FPGA設計結果的正確性,該設計可以產生GPS系統衛星號所對應的偽隨機碼,可以根據相位選擇的不同實現不同衛星號的測距碼的產生。采用模塊化的設計方案,其研究結果對研究我國北斗導航接收機的設計具有一定的參考意義。
[1]王惠南.GPS導航原理與應用[M].北京:科學出版社,2006.
[2]王偉權,劉昌孝.用FPGA實現GPS的C/A碼發生器[J].桂林電子科技大學,2006,25(6):347-350.
WANG Wei-quan,LIU Chang-xiao.Implementation of C/A code generator in GPS with FPGA [J].Journal of Guilin University of Electronic Technology,2006,25(6):347-350.
[3]張威,張克,徐熙宗.GPS信號C/A碼生成算法設計及仿真實現[J].通信技術,2008,41(11):216-218.
ZHANG Wei,ZHANG Ke,XU Xi-zong.Simulation analysis of in GPS signal C/A code algorithm design[J].Communications Technology,2008,41(11):216-218.
[4]Kaplan E,Hegarty C.Understanding GPS:principles and applications[M].Second Edition.MA, US:Artech House,Inc,2006:78-126.
[5]Parkinson B W,Spilker Jr J J.Global positioning system:theoryand applications[M].American Institute of Aeronautics and Astronautics,Inc.1996.
[6]楊俊,武奇生.GPS基本原理及Matlab仿真[M].西安:西安電子科技大學出版社,2006.
[7]王爾申,張淑芳,胡青.GPS接收機相關器技術研究及FPGA實現[J].系統仿真學報,2008,20(13):3582-3585
WANG Er-shen,ZHANG Shu-fang,HU Qing.GPS correlator research and FPGA implementation[J].Journal of System Simulation,2008,20(13):3582-3585.