基于FPGA的卫星导航信号模拟方法和模拟系统转让专利

申请号 : CN201510341287.9

文献号 : CN104898135B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 路辉欧国标崔吉慧

申请人 : 北京航空航天大学

摘要 :

本发明公开了一种基于FPGA的卫星导航信号模拟方法和模拟系统。模拟方法包括:对输入的系统参数和通道参数进行接收和存储,并间隔发出中断信号控制外部输入数据的更新;控制相位产生电文、伪码、子码、载波和子载波并调制输出数字中频信号。本发明具有如下优点:基于FPGA搭建,可模拟实时、高精度、高动态的卫星导航信号;各个功能模块之间相互独立,易于维护和系统升级;频点信息和参数来自外部输入,调制工程依据频点和参数信息对调制工程进行配置,可实现特定频点的信号调制;调制工程兼容BDS、GPS、GLONASS和GALILEO卫导系统的各个频点,满足新型信号体制对模拟器提出的新要求。

权利要求 :

1.一种基于FPGA的卫星导航信号模拟方法,其特征在于,包括以下步骤:

1)对输入的系统参数和通道参数进行接收和存储,并间隔发出中断信号控制外部输入数据的更新;以及

2)控制相位产生电文、伪码、子码、载波和子载波,调制并输出数字中频信号;

在步骤2)中,进一步包括:接收电文速率参数、伪码NCO参数、载波NCO参数、子码长度参数、子码速率参数和伪码周期脉冲,根据所述伪码周期脉冲和所述电文速率参数的控制下逐比特输出电文,根据所述伪码NCO参数通过伪码DDS控制生成伪码相位,由所述伪码相位控制读取所述伪码;对所述伪码周期脉冲进行计数,在子码速率和子码长度参数的控制下输出子码相位,根据所述子码相位控制读取所述子码;根据所述载波NCO参数通过载波DDS控制生成载波相位,由所述载波相位控制读取所述载波的采样幅值得到所述载波;接收所述伪码DDS的输出相位控制字,并根据调制系数,控制子载波相位的跳变逐比特输出子载波;

其中,在步骤2)中,所述中频信号的调制过程为:接收所述电文、所述伪码、所述子码、所述载波和所述子载波,对导频路信号和数据路信号进行中频调制,其中,输入伪码更新跳变时通过寄存器设置延迟实现电文、子码、子载波随所述伪码在满足需要跳变条件下同时跳变。

2.根据权利要求1所述的基于FPGA的卫星导航信号模拟方法,其特征在于,在步骤1)中,还包括输入的第一外部参数,所述第一外部参数的高位为输入的第一有效数据,低位用于所述第一有效数据的类型判定,所述第一有效数据包括通道状态参数、系统初始化参数、初始化数据下发完成标志、NCO参数更新标志和新可见星标志。

3.根据权利要求2所述的基于FPGA的卫星导航信号模拟方法,其特征在于,在步骤1)中,还包括输入的第二外部参数,所述第二外部参数的高位为输入的第二有效数据,低位用于第二有效数据的类型判定,所述第二有效数据包括通道初始化参数、NCO参数和电文。

4.根据权利要求1所述的基于FPGA的卫星导航信号模拟方法,其特征在于,在步骤1)中,所述中断信号控制外部输入数据的更新过程为:在模拟器初始化完毕信号开始调制时,开始计时;

如果满足更新周期条件,则向外部设备发出中断并复位计数,中断用于控制外部设备为模拟器输入最新的NCO参数和最新的电文;

如果不满足更新周期条件,则继续计时。

5.根据权利要求1所述的基于FPGA的卫星导航信号模拟方法,其特征在于,在步骤2)中,还包括:中频调制后的所述数据路信号经过第一乘法器控制数据路相对于导频路的功率,得到数据路信号;

中频调制后的所述导频路信号经过第二乘法器控制导频路相对于数据路的功率,得到导频路信号。

6.根据权利要求5所述的基于FPGA的卫星导航信号模拟方法,其特征在于,在步骤2)中,还包括:接收幅度控制字和加法器输出的信号,采用第三乘法器控制通道所调制卫星信号相对其他卫星信号的幅值并输出,以此模拟接收机接收到的功率不一致的各卫星导航信号。

7.根据权利要求1-6任一所述的基于FPGA的卫星导航信号模拟方法,其特征在于,步骤

2)中,还包括对所有通道信号进行合并,得到最终模拟的数字中频卫星导航信号。

8.一种基于FPGA的卫星导航信号模拟系统,其特征在于,包括:

参数接收模块,用于对输入的系统参数和通道参数进行接收和存储,将数据传递至信号调制模块,其中,所述参数接收模块包括:系统参数接收模块,用于接收多个通道的状态参数以及多个所述通道共用的系统参数,其中所述系统参数包括:频点代号、伪码长度、数据子码长度、导频子码长度、数据子码速率、导频子码速率以及余弦子载波标志位;以及通道参数接收模块,用于接收所述通道调制卫星信号的通道参数,所述通道参数包括星号、码相位初始值、伪码NCO参数、载波NCO参数、电文和电文速率;

信号调制模块,根据从所述参数接收模块接收的参数,控制电文、伪码、子码、载波、子载波的生成,根据频点代号选择相应的调制方式,调制并输出数字中频信号,其中,所述信号调制模块包括:电文模块,用于从所述通道参数接收模块接收所述电文,并在电文速率参数的控制下逐比特输出所述电文;

伪码模块,用于在模拟器初始化时根据频点代号产生相应的伪码,在模拟器运行时接收所述各通道输出的伪码相位读取所述伪码并传回所述伪码对应星号所对应的通道;

子码模块,用于在模拟器初始化时根据频点代号产生相应的子码,在模拟器运行时接收所述各通道输出的子码相位读取所述子码并传回所述子码对应星号所对应的通道;

载波模块,用于从所述通道参数接收模块接收所述载波NCO参数,控制载波DDS输出载波相位,以系统时钟频率对正弦波采样,输出量化的载波幅值;

子载波模块,用于从所述系统参数接收模块接收所述余弦子载波标志位和伪码DDS输出的相位控制字,控制产生子载波;

参数选择模块,用于接收所述电文、所述伪码、所述子码、所述子载波和所述载波,根据频点代号选择相应的参数输出;以及中频调制模块,根据接收的所述电文、所述伪码、所述子码、所述载波和所述子载波的数据,根据所述频点代号选择相应的调制方式,完成信号的调制。

9.根据权利要求8所述的基于FPGA的卫星导航信号模拟系统,其特征在于,还包括幅度控制模块,用于接收数据路中频调制模块和导频路中频调制模块的输出信号的和,控制信号的幅值并输出通道数字中频信号。

10.根据权利要求8或9的基于FPGA的卫星导航信号模拟系统,其特征在于,还包括信号合并模块,用于对所有通道数字中频信号进行合并。

说明书 :

基于FPGA的卫星导航信号模拟方法和模拟系统

技术领域

[0001] 本发明涉及基于FPGA的卫星导航信号模拟方法和模拟系统,属于无线通信领域。

背景技术

[0002] 全球卫星导航系统作为一种主要的定位手段成为世界各国发展的重点。目前GPS系统正在开展现代化建设进程、Glonass、Galileo和BDS等系统处于建设和完善阶段。在各
个系统研制的过程中,提升卫星导航系统性能成为各个系统发展和建设的重点,因此新型
信号体制得到了论证和应用。例如Galileo和GPS系统采用了TMBOC、CBOC、AltBOC和TDDM-
BPSK等新型信号调制方法。新型信号体制的带宽更宽,大多包括导频和数据两路信号,调制
方式中增加了方波子载波和子码。新型信号体制的特点以及其对卫星导航系统性能的影响
需要进行理论和实践的验证,同时信号体制的变化对于接收机的研制提出了挑战,针对新
型信号体制的特点研制接收机是必然发展过程。这些工作的开展都离不开卫星导航系统模
拟器的研制。
[0003] 目前卫星导航系统模拟器系统的主要架构包括三种,分别是软件、硬件和软硬件结合。软件架构模拟器产生数字中频信号数据文件,可经回放和上变频产生射频信号,但受
计算机硬件的限制,无法模拟长时间、高采样率的中频信号。硬件架构的模拟器功能则相对
固定,系统升级困难。对于软硬件结合架构的模拟器,软件部分负责计算信号参数和编写导
航电文,硬件部分负责中频信号的调制和上变频等工作。
[0004] 现有技术硬件部分的硬件开发平台主要可分为DSP、ASIC、PLD三大类。
[0005] DSP依靠指令实现数据的处理操作,只能串行处理,在应对高速、大数据流,以及并行运算时,无法满足设计要求。
[0006] AISC指为专门目的而设计的集成电路,缺点在于内部逻辑架构无法改变,重构性低,开发周期长,成本高。
[0007] 其中PLD主要分为FPGA和CPLD两大类。CPLD的逻辑资源较少,主要用于逻辑相对简单、功耗较低的场合。FPGA的逻辑资源较为丰富,适合大规模的数字信号处理。
[0008] 现有技术中,模拟器一般针对某一特定功能进行实现,如高精度或高动态信号的模拟。且现有的模拟器架构多用于实现单一频点的信号模拟,对多模多通道信号的模拟不
够完善,不便于用户设备的测试。

发明内容

[0009] 本发明旨在至少解决上述技术问题之一。
[0010] 为此,本发明的第一个目的在于提出一种基于FPGA的卫星导航信号模拟方法。该方法适用于模拟高精度或高动态卫星导航信号。同时兼容BDS、GPS、GLONASS和GALILEO系统
的各个频点,可通过模拟器的软件部分对硬件部分进行控制,选择模拟产生相应频点的数
字中频卫星导航信号,方便测试,有效缩短用户设备的开发时间,并满足新型信号体制对模
拟器提出的新要求。
[0011] 本发明的第二个目的在于提出一种基于FPGA的卫星导航信号模拟系统。该系统适用于模拟高精度或高动态卫星导航信号。同时兼容BDS、GPS、GLONASS和GALILEO系统的各个
频点,可通过模拟器的软件部分对硬件部分进行控制,选择模拟产生相应频点的数字中频
卫星导航信号,方便测试,有效缩短用户设备的开发时间,并满足新型信号体制对模拟器提
出的新要求。
[0012] 为了实现上述目的,本发明的第一方面的实施例公开了一种基于FPGA的卫星导航信号模拟方法,包括以下步骤1)对输入的系统参数和通道参数进行接收和存储,并间隔发
出中断信号控制外部输入数据的更新;2)控制相位产生电文、伪码、子码、载波和子载波并
调制输出数字中频信号;在步骤2)中,进一步包括:接收电文速率参数、伪码NCO参数、载波
NCO参数、子码长度参数、子码速率参数和伪码周期脉冲,根据所述伪码周期脉冲和所述电
文速率参数的控制下逐比特输出电文,根据所述伪码NCO参数通过伪码DDS控制生成伪码相
位,由所述伪码相位控制读取所述伪码;对所述伪码周期脉冲进行计数,在子码速率和子码
长度参数的控制下输出子码相位,根据所述子码相位控制读取所述子码;根据所述载波NCO
参数通过载波DDS控制生成载波相位,由所述载波相位控制读取所述载波的采样幅值得到
所述载波;接收所述伪码DDS的输出相位控制字,并根据调制系数,控制子载波相位的跳变
逐比特输出子载波。
[0013] 根据本发明实施例的基于FPGA的卫星导航信号模拟方法,软件用于模拟缓慢变化的误差,能够完成对这些模拟模型的计算;硬件完成信号的调制,保证信号能实时产生,采
用这种架构的模拟器可以进行长时间的信号测试;使用软件部分下发的参数对FPGA的各模
块进行配置可以灵活改变FPGA的功能,而不用频繁修改FPGA程序;基于FPGA搭建,频点信息
和参数来自外部输入,调制工程通过频点信息和参数对调制工程进行配置,可实现特定频
点的信号调制,兼容BDS、GPS、GLONASS和GALILEO卫星导航系统的各个频点,方便测试,缩短
用户设备的开发时间;各个功能模块之间相对独立,具有良好的兼容性、可扩展性,易于维
护且有利于系统升级。
[0014] 另外,根据本发明上述实施例的基于FPGA的卫星导航信号模拟方法,还可以具有如下附加的技术特征:
[0015] 进一步地,在步骤1)中,还包括输入的外部参数,所述外部参数的高位为输入的第一有效数据,低位用于所述第一有效数据的类型判定,所述第一有效数据包括通道状态参
数、系统初始化参数,初始化数据下发完成标志、NCO参数更新标志和新可见星标志。
[0016] 进一步地,在步骤1)中,根据输入的所述外部参数,所述外部参数的高位为输入的第二有效数据,低位用于第二有效数据的类型判定,所述第二有效数据包括通道初始化参
数、NCO参数和电文。
[0017] 进一步地,在步骤1)中,所述中断信号控制外部输入数据的更新过程为:在模拟器初始化完毕信号开始调制时,中断开始计时;如果满足更新周期条件,则向外部设备发出中
断并复位计数,中断用于控制外部设备为模拟器输入最新的NCO参数和最新的电文;如果不
满足更新周期条件,则继续计时。
[0018] 进一步地,在步骤2)中,所述中频信号的调制过程为:接收所述电文、所述伪码、所述子码、所述载波和所述子载波,根据频点代号选择相应的调制方式,对所述导频路信号和
所述数据路信号进行中频调制,其中,输入伪码更新跳变时通过寄存器设置延迟实现电文、
子码、子载波随所述伪码在满足需要跳变条件下同时跳变。
[0019] 进一步地,在步骤2)中,还包括:中频调制后的所述数据路信号经过第一乘法器控制数据路相对于导频路的功率,得到数据路信号;中频调制后的所述导频路信号经过第二
乘法器控制导频路相对于数据路的功率,得到导频路信号。
[0020] 进一步地,在步骤2)中,还包括:接收幅度控制字和加法器输出信号幅值,采用第三乘法器控制通道所调制卫星信号相对其他卫星信号的幅值并输出,以此模拟接收机接收
到的功率不一致的各卫星导航信号。
[0021] 进一步地,步骤2)中,还包括对所有通道信号进行合并,得到最终数字中频卫星导航信号。
[0022] 为了实现上述目的,本发明的第二方面的实施例公开了一种基于FPGA的卫星导航信号模拟系统,包括:参数接收模块,用于对输入的系统参数和通道参数进行接收和存储,
将数据传递至信号调制模块;信号调制模块,根据从所述参数接收模块接收的参数,控制电
文、伪码、子码、载波、子载波的生成,调制并输出数字中频信号。
[0023] 根据本发明实施例的基于FPGA的卫星导航信号模拟系统,软件用于模拟缓慢变化的误差,能够完成对这些模拟模型的计算;硬件完成信号的调制,保证信号能实时产生,采
用这种架构的模拟器可以进行长时间的信号测试;使用软件部分下发的参数对FPGA的各模
块进行配置可以灵活改变FPGA的功能,而不用频繁修改FPGA程序;基于FPGA搭建,频点信息
和参数来自外部输入,调制工程通过频点信息和参数对调制工程进行配置,可实现特定频
点的信号调制,兼容BDS、GPS、GLONASS和GALILEO卫星导航系统的各个频点,方便测试,缩短
用户设备的开发时间,各个功能模块之间相对独立,具有良好的兼容性、可扩展性,易于维
护且有利于系统升级。
[0024] 另外,根据本发明上述实施例的基于FPGA的卫星导航信号模拟系统,还可以具有如下附加的技术特征:
[0025] 进一步地,所述参数接收模块包括:系统参数接收模块,用于接收多个通道状态参数以及多个所述通道共用的系统参数,其中所述系统参数包括:频点代号、伪码长度、数据
子码长度、导频子码长度、数据子码速率、导频子码速率以及余弦子载波标志位;以及通道
参数接收模块,用于接收所述通道调制卫星信号的通道参数,所述通道参数包括星号、码相
位初始值、伪码NCO参数、载波NCO参数、电文和电文速率。
[0026] 进一步地,所述信号调制模块包括:电文模块,用于从所述通道参数接收模块接收所述电文,并在电文速率参数的控制下逐比特输出所述电文;伪码模块,用于在模拟器初始
化时根据频点代号产生相应的伪码,在模拟器运行时接收所述各通道输出的伪码相位读取
所述伪码并传回所述伪码对应星号所对应的通道;子码模块,用于在模拟器初始化时根据
频点代号产生相应的子码,在模拟器运行时接收所述各通道输出的子码相位读取所述子码
并传回所述子码对应星号所对应的通道;载波模块,用于从所述通道参数接收模块接收所
述载波NCO参数,控制载波DDS输出载波相位,以系统时钟频率对正弦波采样,输出量化的载
波幅值;子载波模块,用于从所述系统参数接收模块接收所述余弦子载波标志位和伪码DDS
输出的相位控制字,控制产生子载波;参数选择模块,用于接收所述电文、所述伪码、所述子
码、所述子载波和所述载波,根据频点代号选择相应的参数输出;以及中频调制模块,根据
接收的所述电文、所述伪码、所述子码、所述载波和所述子载波的数据,根据所述频点代号
选择相应的调制方式,完成信号的调制。
[0027] 进一步地,还包括幅度控制模块,用于接收所述数据路中频调制模块和所述导频路中频调制模块的输出信号的和,控制信号的幅值并输出通道数字中频信号。
[0028] 进一步地,还包括信号合并模块,用于对所有通道信号进行合并,得到最终数字中频卫星导航信号。
[0029] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0030] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0031] 图1是本发明基于FPGA的数字中频卫星导航信号模拟器的结构示意图;
[0032] 图2是本发明输入数据存储和更新的流程图;
[0033] 图3是本发明信号调制流程图。

具体实施方式

[0034] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0035] 在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对
本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0036] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本
发明中的具体含义。
[0037] 参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施
例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的
实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0038] 以下结合附图描述根据本发明实施例的。
[0039] 图1是本发明基于FPGA的数字中频卫星导航信号模拟器的结构示意图。请参考图1,本实施例是结合L1C频点进行详细说明,本领域技术人员应该理解,实施例仅用于解释本
发明,并不用于限制本发明的保护范围,对于其它频点,可以参照本发明实施例进行,在此
不再赘述。
[0040] 本发明包括一种基于FPGA的卫星导航信号模拟系统,包括系统参数接收模块1、通道参数模块2、中断模块3、伪码模块4、子码模块5、通道模块6、电文模块7、相位控制模块8、子码相位模块9、载波模块10、子载波模块11、参数选择模块12、中频调制模块13和幅度控制
模块14。各个模块的输入输出端口如下表所示。
[0041] 表1 系统参数接收模块
[0042]
[0043] 表2 通道参数接收模块
[0044]
[0045] 表3 中断模块
[0046]
[0047]
[0048] 表4 伪码模块
[0049]
[0050] 表5 子码模块
[0051]
[0052] 表6 通道模块
[0053]
[0054] 表7 电文模块
[0055]
[0056] 表8 相位控制模块
[0057]
[0058] 表9 子码相位模块
[0059]
[0060] 表10 载波模块
[0061]
[0062]
[0063] 表11 子载波模块
[0064]
[0065] 表12 参数选择模块
[0066]
[0067] 表13 中频调制模块
[0068]
[0069]
[0070] 表14 幅度控制模块
[0071]
[0072] 这里对一些端口参数做出说明。
[0073] 数据输入参数:数据输入参数位宽128比特,低16位提供通道编号和FIFO分类信息,用于判断并控制外部输入数据正确地写入对应的FIFO或赋值给特定的参数,高112位为
传输的有效数据。
[0074] 通道状态参数:通道状态参数位宽2比特,可分为四种状态。包括通道调制的卫星为新可见、通道调制的卫星为之前就已可见,通道调制的卫星由可见转为不可见,通道没有
调制卫星。当通道为第一种状态时,需要根据新可见星信息对通道重新初始化;当通道为第
二种状态时,保持通道现有状态;当通道为第三种状态时,需要将对应通道进行复位操作;
当通道为第四种状态时,需要将对应通道进行复位操作。
[0075] 通道编号参数:模拟器的各个通道均由同一个通道模块例化而来。通道编号参数在通道外声明并输入通道。以L1C为例,通道编号参数值为从1至16。各个通道输入不同的通
道编号,参于数据输入参数低16位的判断。
[0076] NCO参数:NCO参数的位宽由系统时钟频率、伪码速率、光速、模拟精度和模拟范围决定。为适用于各个频点的高精度、高动态的模拟信号要求,取系统时钟频率为256M、伪码
速率取1.023M(保证模拟器各频点的兼容性)、光速3×108m/s、模拟速度精度1mm/s、加速度
的精度5mm/s2,加加速度的精度5mm/s3、模拟最大加速度50g、最大加加速度500m/s3,则计算
选择伪码初始相位控制字为48比特,伪码频率控制字48比特,伪码一次频率控制字24比特,
伪码二次频率控制字28比特,载波初始相位控制字36比特,载波频率控制字36比特,载波一
次频率控制字26比特,载波二次频率控制字28比特。
[0077] 调制信号:调制信号与载波参数位宽相同,为16比特量化。调制信号经加法器或乘法器导致位宽变宽,均取高16位,保证模拟器输出的数字中频信号可用于后续DAC模块。
[0078] 参数位宽:一些参数的位宽比实际模拟频点所需的宽度要宽,是为兼容各个频点,取各个频点中所需位宽的最大值。
[0079] 图2是本发明输入数据存储和更新的流程图,请参考图2。
[0080] 第一步:输入数据的更新和存储
[0081] 模拟器输入数据的存储和更新,包括系统参数接收、通道参数接收和中断控制,在系统时钟的统一控制下执行相应的功能。
[0082] 1.1:系统参数接收
[0083] 该步骤主要完成对系统参数的接收和存储。系统参数具体内容如表1所示。
[0084] 该步骤接收的输入参数为i_BusData_in,其为外部数据输入,该参数的高位为输入的第一有效数据,低位用于第一有效数据的类型判定。其中,第一有效数据包括:通道状
态参数、系统初始化数据、初始化数据下发完成标志、NCO参数更新标志和新可见星标志。
[0085] 具体以L1C为例,在模拟器初始化阶段,外部输入传输系统参数时,低16位有三个值:1、2、3。若为1则该参数为通道状态参数,接收并存入FIFO。每有卫星状态发生变化,外部设备便输出更新的通道状态参数;若为2则该参数为模拟频点的系统初始化数据,从低位至
高位分别为码长、子码长、子码速率、余弦子载波标志位和频点代号;若为3则该参数为系统
初始化数据下发完成标志,在初始化数据下发结束后有效。未采用FIFO存储的数据在系统
参数接收模块中分别设置相应的参数完成对数据的接收。
[0086] 在模拟器初始化完毕,进入运行阶段时,当NCO参数需要更新或出现新可见星时,外部设备在模拟器中断的控制下为模拟器传输通道NCO参数更新标志或新可见星标志。NCO
参数更新标志用于控制相位控制模块和载波模块的NCO参数的更新,新可见星标志用于控
制重新初始化各个通道。此时输入参数i_BusData_in低16位的值为1,高位任取两位用于传
输NCO参数更新标志和新可见星标志。
[0087] 1.2:通道参数接收
[0088] 该步骤完成对通道参数的接收和存储。
[0089] 该步骤接收的输入参数为i_BusData_in,其为外部数据输入,该参数的高位为输入的第二有效数据,低位用于第二有效数据的类型判定。其中,第二有效数据包括:通道初
始化参数、NCO参数和电文。
[0090] 具体以L1C为例,在系统的初始化阶段和运行阶段,依据输入参数i_BusData_in低位的值将三类数据存入特定通道参数接收模块中的三个不同FIFO。第一类数据为通道初始
化参数,包括星号、电文速率、伪码初始相位、伪码DDS初始相位控制字和载波DDS初始相位
控制字,此类数据在模拟器初始化和有新可见星时下发并接收;第二类为NCO参数,包括伪
码频率控制字、伪码一次频率控制字、伪码二次频率控制字、载波频率控制字、载波一次频
率控制字、载波二次频率控制字和通道信号幅度控制字,此类数据每隔固定时间间隔下发
并接收;第三类为电文,电文一次下发一子帧,调制完毕后更新电文。电文来自外部设备输
入,不同于FPGA实时产生的伪码、子码、载波和子载波。
[0091] 1.3:中断控制
[0092] 该步骤每隔固定时间发出中断信号,控制外部输入数据的更新。
[0093] 在模拟器初始化完毕,信号开始调制时,中断模块开始计时。如果时间满足更新周期条件,中断模块则向外部设备发出中断并复位计数,中断用于控制外部设备为模拟器输
入最新的NCO参数和最新的电文,保证模拟信号的准确度。如果时间不满足更新周期条件,
则继续计时。
[0094] 以L1C为例,计时固定时间间隔为20ms,在系统时钟为256M的情况下,每计数5119999(256M*20ms-1)便发出中断并复位计数。
[0095] 图3是本发明信号调制流程图,请参考图3。
[0096] 第二步:信号的调制
[0097] 在模拟器初始化完毕,调制部分接收来自系统参数接收模块1和通道参数接收模块2的数据开始信号的调制。
[0098] 2.1:相位控制
[0099] 相位控制功能主要由相位控制模块完成。相位控制模块接收来自通道参数接收模块的伪码NCO参数,通过伪码DDS控制伪码相位的产生。
[0100] 模块对伪码DDS输出相位控制字进行判断,最高位每溢出一次伪码相位加一;每经过一个伪码周期相位控制模块便发出一个伪码周期脉冲,子码相位模块和电文模块接收此
脉冲控制子码和电文的更新。子载波模块接收相位控制模块输出的伪码DDS输出相位控制
字,用于控制子载波的产生。
[0101] 2.2:载波产生
[0102] 载波由载波模块产生,载波模块接收来自通道参数接收模块的载波NCO参数,通过载波DDS控制载波相位的产生。
[0103] 模块采用IP核形式存储正弦波的幅值查找表,幅值16bit量化。查找表地址为截取载波DDS输出相位控制字的高位,以L1C为例,截取载波DDS输出控制字的高14位,模拟的伪
距精度即可达到亚毫米级。正弦波从相位0处开始读取,余弦波从相位π/2处开始读取。模块
产生的正余弦波满足对导频路和数据路载波相位有不同要求的频点信号的调制。
[0104] 2.3:电文产生
[0105] 电文由电文模块产生,电文模块接收来自通道参数接收模块的电文、电文速率参数和来自相位控制模块的伪码周期脉冲。
[0106] 电文长度为一子帧,在脉冲和电文速率参数的控制下逐比特输出。
[0107] 以L1C为例,电文每比特宽10ms,伪码周期10ms,则在伪码周期脉冲有效时更新1比特电文。同时设置电文比特计数参数,电文每更新1比特,计数加一,计数达到299(一子帧
300bit)时,发出电文子帧更新脉冲将通道参数接收模块的FIFO3读使能信号置1,以此更新
电文模块的输入电文。
[0108] 2.4:子码相位产生
[0109] 子码相位由子码相位模块产生,子码相位模块接收来自通道参数模块的子码长度参数、子码速率参数和相位控制模块输出的伪码周期脉冲。对伪码周期脉冲进行计数,在子
码速率和子码长度参数的控制下输出子码相位。
[0110] L1C频点无子码,故不需例化子码相位产生模块。
[0111] 2.5:伪码读取
[0112] 伪码模块输入码相位参数X,读取相应相位的伪码值。伪码在模拟器初始化时产生,采用IP核的形式存储,IP核输入伪码相位,输出相应伪码值。
[0113] 其中参数X的产生原理如下:
[0114] 各通道模块均输出该通道所调制卫星的星号和伪码相位,用于产生包含所有通道伪码相位的参数X并输入至伪码模块。参数X不为某个模块的输入或输出,为中间参数。产生
方法:以L1C的伪码读取为例,模拟器包含16个通道,最大星号假设为32比特,伪码相位参数
位宽14。则设置参数X位宽为448(32×14),根据卫星号将相应伪码相位由低位至高位赋值
给参数X,未调制卫星的伪码相位值默认为0。
[0115] 伪码模块输入包含所有通道伪码相位的参数X,根据卫星号从参数X中获得相应的伪码相位值,读取相应卫星号的伪码,再根据星号由低位至高位将读取的32颗星的伪码值
赋值给输出的数据伪码和导频伪码参数,再根据星号将相应的伪码值传回通道模块。
[0116] 以L1C为例,设置32个IP核分别存储32颗星的伪码,分别输入相应星号的伪码相位,则输出相应伪码值。
[0117] 2.6:子码读取
[0118] 子码模块输入子码相位参数Y,读取相应相位的子码值。子码在模拟器初始化时产生,采用IP核的形式存储,IP核输入子码相位,输出相应子码值。
[0119] 其中参数Y的产生原理如下:
[0120] 各通道模块均输出该通道所调制卫星的星号和导频子码相位,用于产生包含所有通道子码相位的参数Y并输入至子码模块。参数Y不为某个模块的输入或输出,为中间参数。
产生方法:模拟器包含16个通道,最大星号假设为32,子码相位参数位宽假设为11比特。则
设置参数Y位宽为352(32×11),根据卫星号将相应子码相位由低位至高位赋值给参数Y,未
调制卫星的伪码相位默认为0。
[0121] 子码模块输入包含所有通道子码相位的参数Y,根据卫星号从参数Y中获得相应的子码相位值,读取相应卫星号的子码,再根据卫星号由低位至高位将读取的32颗星的子码
值赋值给输出的导频子码参数,再根据卫星号将子码值传回通道模块。
[0122] 一般数据子码比较短且各个通道相同,则只需在通道内对数据子码相位进行判断,为中频调制模块的数据子码输入赋相应的数据子码值即可。
[0123] L1C频点无子码,故不需例化子码模块。
[0124] 2.7:子载波产生
[0125] 子载波由子载波模块产生,模块接收相位控制模块的伪码DDS的输出相位控制字,乘以BOC调制方式的调制系数,则高两位在伪码的一个码片时间内会按00、01、10、11循环变
化,以此变化和BOC调制系数控制子载波相位的跳变并逐比特输出子载波,包括BOC(1,1)子
载波、BOC(6,1)子载波和BOC(15,10)子载波。
[0126] 以L1C频点,调制方式为TMBOC(6,1,4/33)为例,子载波包括BOC(1,1)子载波、BOC(6,1)子载波,通道模块需例化两个子载波模块,输入不同的调制系数,分别产生BOC(1,1)
子载波和BOC(6,1)子载波,并对伪码相位进行判断,将相应的子载波值输入中频调制模块。
[0127] 2.8:参数选择
[0128] 参数选择由参数选择模块实现。步骤2.1-2.7产生的电文、数据伪码、导频伪码、数据子码、导频子码、BOC(1,1)子载波、BOC(6,1)子载波、BOC(15,10)子载波、正弦载波和余弦
载波输入至参数选择模块。参数选择模块根据频点代号和数据子码相位产生相应的数据子
码,并输出相应的电文、伪码、子码、子载波和载波。
[0129] 以L1C频点为例,输入参数经选择,为数据路输出电文、数据路伪码、BOC(1,1)子载波、余弦载波,为导频路输出导频路伪码、BOC(1,1)与BOC(6,1)时分的子载波、余弦载波。
[0130] 2.9:数据路中频调制
[0131] 数据路中频调制模块接收电文、伪码、子码、载波和子载波,根据频点代号选择相应的调制方式,包括BPSK、BOC、TMBOC、CBOC、QPSK、ALTBOC和TD-ALTBOC(其中ALTBOC和TD-
ALTBOC可采用QPSK和BPSK实现),完成数据路信号的调制。
[0132] 输入数据需要对齐,即在输入伪码更新跳变时,电文、子码、子载波也同时更新跳变,可通过在各参数传输过程中设置寄存器实现。
[0133] 以L1C频点为例,输入无子载波,模块判断频点代号,根据BOC(1,1)调制方法先将电文、伪码、子码同或得到一个值,通过判断此值为1或0对载波采取保持当前相位或者反相
操作,然后输出载波幅值。
[0134] 2.10:导频路中频调制
[0135] 数据路中频调制模块接收伪码、子码、载波和子载波,根据频点代号选择相应的调制方式,包括BPSK、BOC、TMBOC、CBOC、QPSK、ALTBOC和TD-ALTBOC(其中ALTBOC和TD-ALTBOC可采用QPSK和BPSK实现),完成导频路信号的调制。
[0136] 输入数据需要对齐,即在输入伪码更新跳变时,子码、子载波也同时更新跳变,可通过在各参数传输过程中设置寄存器实现。
[0137] 以L1C频点为例,输入无子载波,模块判断频点代号,根据TMBOC(6,1,4/33)调制方法先将伪码、子码同或得到一个值,通过判断此值为1或0对载波采取保持当前相位或者反
相操作,然后输出载波幅值。
[0138] 2.11:数据路相对幅值控制
[0139] 根据数据路中频调制模块输出的调制信号经过第一乘法器,控制数据路相对于导频路的功率,得到数据路信号。
[0140] 2.12:导频路相对幅值控制
[0141] 由导频路中频调制模块输出的调制信号经过第二乘法器,控制导频路相对于数据路的功率,得到导频路信号。
[0142] 数据路信号和导频路信号经加法器相加取高16位作为幅度控制模块的输入。
[0143] 2.13:通道信号幅度控制
[0144] 幅度控制模块接收来自通道参数接收模块的幅度控制字和2.12中的加法器的输出信号幅值,采用第三乘法器实现控制各颗卫星的相对幅值并输出,模拟实际中接收机接
收到的功率不一致的各卫星导航信号。
[0145] 2.14:通道信号合并
[0146] 以L1C为例,模拟器设置16通道,每个通道模块调制一路可见星的导航信号,其中未调制可见星的通道模块输出信号幅值默认为零。采用加法器实现各通道调制信号
signal_1、signal_2、…、signal_k、…signal_16的和,取高16位得到最终数字中频导航模
拟信号。
[0147] 另外,本发明实施例的基于FPGA的卫星导航信号模拟方法和系统的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
[0148] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何
的一个或多个实施例或示例中以合适的方式结合。
[0149] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本
发明的范围由权利要求及其等同限定。