APP下载

GPS C/A码发生器的仿真研究与FPGA设计

2013-09-26王尔申代双亮戴丽兴

电子设计工程 2013年24期
关键词:选择器高电平寄存器

王 祯,王尔申,代双亮,戴丽兴

(沈阳航空航天大学 电子信息工程学院,辽宁 沈阳 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语言编程实现了测距码的仿真,其结果表明设计的正确性。

1 基本原理

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码。

2 C/A码发生器的实现方法

C/A码的产生需要G1和G2码序列,G1和G2的一个周期总数为1 024,而C/A码截断一位,因此,在第1 023个码元之后的下一个脉冲要进行复位操作。采用VHDL编写各个m码产生器,编写的依据是m码产生原理及其仿真[7]。

2.1 G1码发生器设计

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,……”

2.2 G2码发生器的设计

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码序列,每个时钟上升沿输出一个码字,依次为:

2.3 C/A 码发生器的FPGA设计

在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

3 结 论

结合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.

猜你喜欢

选择器高电平寄存器
一种基于FPGA的PWM防错输出控制电路
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
74151在数据选择和组合逻辑电路中的灵活应用
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
DIV+CSS网页布局初探
深入理解CSS3结构伪类选择器
四选一数据选择器74LS153级联方法分析与研究
浅谈物理电路与数字电路
PDM 1kW中波广播发射机保护电路分析