基于CPU和FPGA的卫星导航信号模拟器及控制方法转让专利

申请号 : CN201610266845.4

文献号 : CN105974439B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 路辉徐鑫

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

摘要 :

本发明公开了一种基于CPU和FPGA的卫星导航信号模拟器及控制方法,卫星导航模拟器包括初始化配置、参数计算、数据通信和信号生成四部分,初始化配置部分完成初始化参数的配置;参数计算部分根据配置的初始化参数完成系统的建模和关键参数的计算;数据通信部分在完成数据在软硬件间的传输后,将关键参数送至信号生成部分,同时进行中断响应的处理;信号生成部分分别从载波、扩频码和电文生成导航信号的各组成部分,在调制之后即得到各颗可见卫星的数字中频信号,最后通过数模转换完成导航模拟中频信号的生成。本发明具有如下优点:便携、便于升级和价格低廉;良好的升级和扩展空间,系统升级速度快;具备多频多模功能,适用范围广。

权利要求 :

1.一种基于CPU和FPGA的卫星导航信号模拟器的控制方法,其特征在于,包括以下步骤:S1:对信号频点、仿真时间、用户运动模型、电离层和对流层参数进行初始化配置;

S2:根据配置后的卫星参数进行卫星星座的模拟和卫星状态的判断,步骤S2进一步包括:S201:对信号频点信息进行系统信息的配置,其中信号频点信息包括调制方式、扩频码速率及码长、载波频率、电文速率、扩频子码的速率及码长和子载波的速率信息中的至少一种;

S202:根据初始化的信号频点,从相应的星历文件和历书文件中读取星历和历书数据,并保证从仿真开始到结束的一段时间之内数据有效;以及S203:根据仿真时间和读取的星历数据,为每颗卫星筛选出有效的星历数据,根据所述星历数据得到仿真时刻卫星的三维坐标;

S3:根据配置后的用户运动模型实时更新用户载体的三维坐标并生成用户载体的运动轨迹;

S4:根据卫星和用户的位置进行可见性判断,根据信号发射时的卫星位置和信号到达时的用户位置计算传输时间,根据预设的规则生成电文,步骤S4进一步包括:S401:根据卫星和用户的位置,同时计算仿真时刻和预设时间间隔以后卫星相对用户的仰角,如果所述仿真时刻和预设时间间隔后的时刻计算的仰角都在阈值范围之内,则认为所述卫星一直可见,否则认为所述卫星不可见;

S402:设定传输时间初始值,利用所述用户的位置坐标和仿真时间作为已知数据,迭代得到趋近于真实的导航信号传输时间参数,在得到所述传输时间参数之后,根据所述卫星与所述用户之间的相对速度和相对加速度对计算NCO参数;

S403:分别利用Klobuchar模型和Hopfield模型来计算电离层延迟和对流层延迟,并叠加到所述传输时间参数和所述NCO参数上;

S404:根据接口控制文件中的规定,产生对应信号的电文比特流数据,要对所述星历数据进行转换、编码和校验;以及S405:对所述卫星的状态进行判断,如果所述卫星的状态为第一次可见或一直可见,则对应的数据将进行更新,否则清空通道的数据,其中,所述卫星的状态的第一次可见为所述卫星可见且所述卫星前一时刻不占据任何通道;

S5:对步骤S4后的数据进行整合和下发,同时响应来自硬件的中断控制信号进行及时的更新和计算;

S6:硬件部分接收、解析并存储软件部分传输的数据,同时产生中断信号控制数据的更新;

S7:在每个通道内产生对应的可见卫星的信号;

S8:将生成的通道信号进行合成处理,得到两路包含所有可见卫星信号的数字中频信号并送入数字模拟转换器中;以及S9:接收所述两路数字中频信号,并进行数模转换,得到两路模拟的导航卫星信号。

2.根据权利要求1所述的基于CPU和FPGA的卫星导航信号模拟器的控制方法,其特征在于,所述用户运动模型包括简单运动载体、车辆运动载体和飞机运动载体。

3.根据权利要求1所述的基于CPU和FPGA的卫星导航信号模拟器的控制方法,步骤S5进一步包括:S501:将通道中的数据根据软硬件之间的通信协议进行装帧,并根据数据类型以相应的更新频率调用硬件设备的驱动程序进行数据的下发控制;以及S502:采用中断响应与处理机制对底层硬件的中断控制信号进行响应,并控制步骤S2、S3和S4进行数据的更新和下发。

4.根据权利要求1所述的基于CPU和FPGA的卫星导航信号模拟器的控制方法,步骤S6进一步包括:S601:通过PCIE接口和DMA内存读取机制进行数据的接收,以内存指针的形式进行控制,得到软件部分下发的数据;

S602:根据软硬件之间的通信协议对数据进行解析,并根据数据的类型进行相应处理;

以及

S603:间隔固定时间产生中断控制信号,在所述中断信号的控制下,将会按间隔时间进行实时的更新。

5.根据权利要求1所述的基于CPU和FPGA的卫星导航信号模拟器的控制方法,步骤S7进一步包括:S701:根据接收的载波初始相位和载波NCO参数,利用直接数字式频率合成器进行载波相位的控制,输出16比特的载波信号;

S702:根据接收的扩频码的初始相位和所述扩频码NCO参数,利用所述直接数字式频率合成器进行扩频码相位的控制,最终输出1比特的扩频码信号;

S703:利用接收的电文数据,实时地更新1比特的电文信号;以及S704:接收载波、扩频码、扩频子码、子载波和电文信号,对所述扩频码、所述扩频子码、所述子载波和所述电文进行同或,根据结果决定是否对载波进行反相,最终得到16bit的通道信号。

说明书 :

基于CPU和FPGA的卫星导航信号模拟器及控制方法

技术领域

[0001] 本发明涉及无线通信领域,具体涉及一种基于CPU和FPGA的卫星导航信号模拟器及控制方法。

背景技术

[0002] GNSS(Global Navigation Satellite System,全球卫星导航系统)是当今世界最主要的定位导航手段之一,包括美国的GPS全球导航系统、俄罗斯的GLONASS系统,欧盟的
Galileo系统、中国的BDS北斗导航系统以及其他一些区域性的导航系统。随着GNSS的迅速
发展和广泛应用,GNSS信号模拟器作为一种可以提供定量评估环境、丰富系统场景以及高
精度信号的模拟信号源,其研究也受到越来越多的重视。
[0003] GNSS信号模拟器是一种精度很高的模拟源,可以模拟在多种运动环境中,载体上的接收机所遇到的多种复杂场景,并提供尽可能接近于真实的仿真测试信号,具有灵活、可
重复、可定制等特点,为GNSS相关的各种研究提供了极大的便利。
[0004] 一方面,模拟器为接收机的研究提供了可定制的信号支持,既可以摆脱接收机测试环境的诸多限制又可以通过模拟卫星尚未播发信号加快接收机的开发与研制;另一方
面,随着更多新的卫星导航信号体制的提出,模拟器可以通过对各类新的信号体制的仿真
实现对信号性能的评估,进而推动系统的建设和发展。同时,支持多频多模信号模拟功能的
GNSS信号模拟器还具有测试不同系统、不同频点信号间兼容性与互操作性的能力。
[0005] 现有的GNSS信号模拟器系统架构包括软件、硬件以及软硬件结合三种形式,其中软件结构主要通过软件仿真数字中频信号并直接送入数字中频接收机,硬件架构主要使用
DSP和FPGA实现数字中频并进行DAC(Digital to Analog Converter,数字模拟转换器)转
换得到模拟信号,软硬结合架构则分为软硬件两部分,其中软件部分计算导航信息和信号
相关参数,硬件部分在软件部分的控制下产生模拟的导航信号。软件架构不能实时产生信
号,且产生高采样率信号时需要消耗较长的时间,硬件架构则存在功能相对固定的问题,而
软硬结合的架构既可以实时、长时间产生信号,又能实现很快的系统升级更新,但是这种架
构的模拟器大多针对特定平台开发,价格相对较为昂贵且一定程度受到相应平台的诸多限
制。

发明内容

[0006] 本发明旨在至少解决上述技术问题之一。
[0007] 为此,本发明的第一个目的在于提出一种基于CPU和FPGA的卫星导航信号模拟器。
[0008] 本发明的第二个目的在于提出一种基于CPU和FPGA的卫星导航信号模拟器的控制方法。
[0009] 为了实现上述目的,本发明的实施例公开了一种基于CPU和FPGA的卫星导航信号模拟器,包括:初始化配置部分,用于对卫星参数、用户参数和信号传输参数进行初始化配
置;参数计算部分,用于根据配置的初始化参数完成导航系统的建模、卫星与用户状态的模
拟和关键参数的计算,其中,所述关键参数包括传输时间参数和NCO参数,所述参数计算部
分包括:传输时间计算模块,用于计算卫星与用户之间的传输时间的计算和相对运动的模
拟,所述传输时间模块进一步用于设定一个传输时间的初始值,然后将发射时刻卫星位置
转换到接收时刻坐标系下,重新计算传输时间后进行判断,如果前后两次计算得到的传输
时间之差大于预设精度则继续迭代,否则停止迭代并得到所述传输时间参数,同时根 据卫
星与用户间的相对运行对NCO参数进行更新;数据通信部分,用于数据的下发与接收、装帧
与解析,同时用于对中断控制信号的响应;信号生成部分,分别从载波、扩频码和电文三个
方面生成导航信号的组成部分,经过调制得到各颗可见卫星的数字中频信号。
[0010] 根据本发明实施例的基于CPU和FPGA的卫星导航信号模拟器,模拟器基于CPU+FPGA开发,并通过PCIE接口完成数据传输,适用于具备PCIE接口的通用PC设备,便携、便于
升级和价格低廉;模拟器各部分基于模块化开发,各模块之间相互独立,在保证接口一致的
情况下,可对各模块内容进行修改而不影响整体运行,具有良好的升级和扩展空间,系统升
级速度快;本模拟器具备多频多模功能,适用范围广,不仅可以用于单频接收机的测试,而
且适用于多频接收机的测试和信号兼容性与互操作性的研究。
[0011] 另外,根据本发明上述实施例的基于CPU和FPGA的卫星导航信号模拟器,还可以具有如下附加的技术特征:
[0012] 进一步地,所述数据通信模块包括:数据接收模块,用于根据设计的内存机制完成数据的接收;数据解析模块,用于接收来自所述数据接收模块的数据,并对所述数据进行解
帧,根据所述数据的数据类型进行处理,其中,对于通道参数数据,使用FIFO并结合数据更
新标志进行数据的保存与读取;以及中断处理模块,用于响应第一中断控制信号和第二中
断控制信号,所述第一中断控制信号用于调用所述参数计算部分完成一次数据的更新并将
更新的数据通过数据下发链路完成数据传输,所述第二中断控制信号用于控制所述参数计
算部分进行预设次数的数据更新,完成数据的补充。
[0013] 进一步地,所述信号生成部分包括:载波生成模块,用于接收载波初始相位和载波NCO参数,利用直接数字式频率合成器进行载波相位的控制,输出预设比特位的载波信号;
扩频码生成模块,用于生成扩频码、扩频子码、子载波以及电文更新信号;以及
[0014] 电文生成模块,用于接收电文、电文速率参数和来自扩频码生成模块的电文更新信号,所述电文生成模块接收并保存一子帧的电文,在所述电文更新信号和电文速率参数
的控制下逐比特输出电文信号。
[0015] 为了实现上述目的,本发明的实施例公开了一种基于CPU和FPGA的卫星导航信号模拟器的控制方法,包括以下步骤:S1:对信号频点、仿真时间、用户运动模型、电离层和对
流层参数进行初始化配置;S2:根据配置后的卫星参数进行卫星星座的模拟和卫星状态的
判断;S3:根据配置后的用户运动模型实时更新用户载体的三维坐标并生成用户载体的运
动轨迹;S4:根据卫星和用户的位置进行可见性判断,根据信号发射时的卫星位置和信号到
达时的用户位置计算传输时间,根据预设的规则生成电文;S5:对步骤S4后的数据进行整合
和下发,同时响应来自硬件的中断控制信号进行及时的更新和计算;S6:硬件部分接收、解
析并存储软件部分传输的数据,同时产生中断信号控制数据的更新;S7:在每个通道内产生
对应的可见卫星的信号;S8:将生成的通道信号进行合成处理,得到两路包含所有可见卫星
信号的数字中频信号并送入数字模拟转换器中;以及S9:接收所述两路数字中频信号,并进
行数模转换,得到两路模拟的导航卫星信号。
[0016] 根据本发明实施例的基于CPU和FPGA的卫星导航信号模拟器的控制方法,模拟器基于CPU+FPGA开发,并通过PCIE接口完成数据传输,适用于具备PCIE接口的通用PC设备,便
携、便于升级和价格低廉;模拟器各部分基于模块化开发,各模块之间相互独立,在保证接
口一致的情况下,可对各模块内容进行修改而不影响整体运行,具有良好的升级和扩展空
间,系统升级速度快;本模拟器具备多频多模功能,适用范围广,不仅可以用于单频接收机
的测试,而且适用于多频接收机的测试和信号兼容性与互操作性的研究。
[0017] 另外,根据本发明上述实施例的基于CPU和FPGA的卫星导航信号模拟器的控制方法,还可以具有如下附加的技术特征:
[0018] 进一步地,步骤S2进一步包括:S201:对信号频点信息进行系统信息的配置,其中信号频点信息包括调制方式、扩频码速率及码长、载波频率、电文速率、扩频子码的速率及
码长和子载波的速率信息中的至少一种;S202:根据初始化的信号频点,从相应的星历文 
件和历书文件中读取星历和历书数据,并保证从仿真开始到结束的一段时间之内数据有
效;以及S203:根据仿真时间和读取的星历数据,为每颗卫星筛选出有效的星历数据,根据
所述星历数据得到仿真时刻卫星的三维坐标。
[0019] 进一步地,所述用户运动模型包括简单运动载体、车辆运动载体和飞机运动载体。
[0020] 进一步地,步骤S4进一步包括:S401:根据卫星和用户的位置,同时计算仿真时刻和预设时间间隔以后卫星相对用户的仰角,如果所述仿真时刻和预设时间间隔后的时刻计
算的仰角都在阈值范围之内,则认为所述卫星一直可见,否则认为所述卫星不可见;S402:
设定传输时间初始值,利用所述用户的位置坐标和仿真时间作为已知数据,迭代得到趋近
于真实的导航信号传输时间参数,在得到所述传输时间参数之后,根据所述卫星与所述用
户之间的相对速度和相对加速度对计算NCO参数;S403:分别利用Klobuchar模型和
Hopfield模型来计算电离层延迟和对流层延迟,并叠加到所述传输时间参数和所述NCO参
数上;S404:根据接口控制文件中的规定,产生对应信号的电文比特流数据,要对所述星历
数据进行转换、编码和校验;以及S405:对所述卫星的状态进行判断,如果所述卫星的状态
为第一次可见或一直可见,则对应的数据将进行更新,否则清空通道的数据,其中,所述卫
星的状态的第一次可见为所述卫星可见且所述卫星前一时刻不占据任何通道。
[0021] 进一步地,步骤S5进一步包括:S501:将通道中的数据根据软硬件之间的通信协议进行装帧,并根据数据类型以相应的更新频率调用硬件设备的驱动程序进行数据的下发控
制;以及S502:采用中断响应与处理机制对底层硬件的中断控制信号进行响应,并控制步骤
S2、S3和S4进行数据的更新和下发。
[0022] 进一步地,步骤S6进一步包括:S601:通过PCIE接口和DMA内存读取机制进行数据的接收,以内存指针的形式进行控制,得到软件部分下发的数据;S602:根据软硬件之间的
通信协议对数据进行解析,并根据数据的类型进行相应处理;以及S603:间隔固定时间产生
中断控制信号,在所述中断信号的控制下,将会按间隔时间进行实时的更新。
[0023] 进一步地,步骤S7进一步包括:S701:根据接收的载波初始相位和载波NCO器参数,利用直接数字式频率合成器进行载波相位的控制,输出16比特的载波信号;S702:根据接收
的扩频码的初始相位和所述扩频码NCO参数,利用所述直接数字式频率合成器进行扩频码
相位的控制,最终输出1比特的扩频码信号;S703:利用接收的电文数据,实时地更新1比特
的电文信号;以及S704:接收载波、扩频码、扩频子码、子载波和电文信号,对所述扩频码、所述扩频子码、所述子载波和所述电文进行同或,根据结果决定是否对载波进行反相,最终得
到16bit的通道信号。
[0024] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0025] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0026] 图1是本发明一个实施例的基于CPU和FPGA的导航卫星信号模拟器的结构示意图;
[0027] 图2是本发明一个实施例的参数产生模块的结构流程图;
[0028] 图3是本发明一个实施例的数据通信模块的结构流程图;
[0029] 图4是本发明一个实施例的信号生成模块的结构流程图;
[0030] 图5是本发明一个实施例的基于CPU和FPGA的导航卫星信号模拟器的控制方法的流程图。

具体实施方式

[0031] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描 述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0032] 在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对
本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0033] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本
发明中的具体含义。
[0034] 参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施
例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的
实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0035] 以下结合附图描述根据本发明实施例的基于CPU和FPGA的卫星导航信号模拟器。
[0036] 请参考图1,一种基于CPU和FPGA的卫星导航信号模拟器,包括初始化配置部分、参数计算部分、数据通信部分和信号生成部分。
[0037] 其中,初始化配置部分1是模拟器的入口,通过可视化界面来进行初始化参数的配置。主要包括三个方面的参数:(1)与卫星有关的参数,包括GNSS系统及频点、仿真时间以及
信号的中频;(2)与用户有关的参数,包括用户载体的运动模型及初始状态参数(位置、速
度、加速度);(3)与信号传输有关的参数,包括电离层模型选择,对流层模型选择。在初始化
配置完成之后,模拟器就已经获取了信号产生的基本信息,参数计算部分将会根据这些初
始化参数完成关键参数的计算。
[0038] 参数计算部分2接收初始化配置部分1获得的初始化参数,然后根据这些参数完成包括在轨卫星的状态计算、用户载体运动状态的计算及更新、导航卫星可见性判断、导航信
号传输时间的计算、电离层和对流层状态的模拟、扩频码初始相位及NCO(numerically 
controlled oscillator,数字控制振荡器)参数的计算、载波初始相位及NCO参数的计算以
及通道参数的产生等任务。将计算或更新的关键参数通过数据通信部分传输到信号生成模
块,最终由信号生成模块产生实际信号。
[0039] 参数计算部分2的实现主要涉及数据结构和功能模块两个方面的内容。
[0040] 数据结构方面,为每个频点设计一个全局变量(即SimGlobal),如表1所示,该全局变量包括了信号仿真所需的全部数据:系统信息、全局仿真时间、星历数据、用户状态数据、
卫星状态数据以及通道数据等。全局变量是参数计算部分的数据中枢,参数计算部分通过
该变量在各模块之间进行数据传递。
[0041] 表1 全局数据SimGlobal
[0042]
[0043] 功能模块方面,参数计算部分包括系统初始化模块2、星历读取模块3、卫星状态模块4、用户状态模块5、卫星可见性判断模块6、传输时间计算模块7、电离层延迟模块8、对流
层延迟模块9、电文数据模块10和通道数据模块11。
[0044] 各模块通过全局变量完成数据传递,但功能各自独立。如图2所示,参数计算部分接收来自初始化配置部分传递的三方面参数。其中,与卫星有关的参数被传递给系统初始
化模块,与用户有关的参数被传递给用户状态模块,而与信号传输有关的参数传递被给电
离层延迟模块和对流层延迟模块。系统初始化模块根据参数对系统频点进行配置,星历读
取模块据此读取相应的星历,卫星状态模块根据当前的系统时间配置合理的星历,用户状
态模块则根据动态模型设置用户的位置坐标,然后根据用户的位置以及星历数据进行可见
性判断,在电离层延迟模块和对流层延模块计算延迟之后,进入传输时间计算模块计算传
输时间,电文生成模块根据系统时间生成电文比特流,最后,在通道数据模块完成数据的整
合并传输到数据通信部分。此后,在模拟器的运行过程中,会以一定的时间间隔重复调用各
模块,完成卫星状态与用户状态的实时更新以及相对运动的模拟。
[0045] 系统初始化模块2,根据参数配置模块选定的GNSS系统频点,来初始化该频点的系统信息。
[0046] 表2 系统信息SatFormats
[0047]
[0048] 如表2所示,对于每一个频点信号,需要初始化的系统信息包括调制方式、扩频码速率及长度、载波频率、电文速率等数据。除此之外,如果该频点信号包括扩频子码,还需要
设置子码的类型、速率和长度;如果该频点信号包含子载波,需要设置子载波的类型、频率;
对于不同类型的电文,则需要配置一个电文子帧所包含的电文比特数。同时,系统初始化模
块还会对导航卫星类型进行配置,GPS系统采用的导航卫星是MEO(Medium Earth Orbit,中
地球轨道)卫星,而BDS除了采用27颗MEO卫星外,还包括5颗GEO(Geostationary Earth 
Orbit,地球同步轨道卫星)卫星和3颗IGSO(Inclined Geosynchronous Satellite Orbit,
倾斜地球同步轨道)卫星。不同轨道卫星的特点主要反映在卫星位置的计算上,IGSO卫星和
MEO卫星在卫星位置、速度和加速度的计算方法上基本一致,而GEO卫星位置、速度和加速度
的计算方法则不同。
[0049] 星历读取模块3,卫星在运行过程中,会不断的播发导航电文,而电文里包含着星历数据和历书数据。用户接收机正是利用接收到的星历数据和历书数据来获取多普勒轨道
参数、钟差修正参数、电离层修正参数等多种数据的。星历读取模块根据系统频点从相应的
星历文件和历书文件中读取星历数据和历书数据,并且保证仿真开始到结束这一时间段内
星历和历书数据是有效的,其中星历的数据结构如表3所示。
[0050] 表3 星历数据EphData
[0051]
[0052]
[0053] 卫星状态模块4,在读取星历数据模块中获取到所有的卫星星历数据之后,因为星历文件中可能存在多条数据对应同一颗卫星的情况,所以需要为每颗卫星筛选出有效的星
历数据,所依据的准则是距离当前仿真时间最近。卫星状态数据如表4所示。
[0054] 表4 卫星状态数据SatData
[0055]
[0056] 此外,GNSS系统的地面控制站每隔一段时间就会向卫星注入一套新的星历数据,因此卫星的星历数据也要随着仿真时间的推移进行定时的更新。一般来说,一套星历在以
Toe(Time of Reference Ephemeris,星历参考时刻)为中心的前后2小时内是有效的。当星
历数据无效时,就需要为每颗卫星配置新的星历。即在该模块第一次运行之后,每过2小时
就再调用该模块一次,为处于星历失效状态的卫星配置新的星历数据。
[0057] 用户状态模块5,主要功能是根据参数配置模块设置的用户载体的类型及状态模型,实时更新用户载体的状态,生成用户载体的运动轨迹。本发明中主要模拟三类用户载体
的运动状态,包括简单运动载体、车辆运动载体和飞机运动载体。用户状态数据如表5所示。
[0058] 表5 用户状态数据PVA
[0059]
[0060]
[0061] 简单运动载体是指以匀速直线运动、匀加速直线运动、匀速圆周运动等方式运动的载体。处于这种运动模式的用户载体,在仿真时间内的任意时刻的状态(位置、速度和加
速度)都可以由初始设定参数根据物理学上的运动学公式计算出来。但是它无法模拟变加
速、变向等无法用数学公式来描述的运动形式。
[0062] 以匀加速直线运动为例,假设初始时刻用户载体在地心地固直角坐标系中的位置,建立以此位置为坐标原点的东北天坐标系,根据初始方位角、初始速度和加速度,在东
北天坐标系中计算用户载体在间隔时刻之后的东北天坐标系位置,然后进行坐标转换,转
换到地心地固坐标系中的位置即可完成用户状态的更新。
[0063] 除简单载体运动之外,其余的载体运动,如车辆载体、飞机载体都可以采用分解法来模拟。按照时间的先后顺序对运动过程进行分解,得到每段时间内的基本运动形式,进而
分段模拟。以车辆载体为例,其基本运动包括:直线运动、停止运动和转弯运动。
[0064] 飞机运动载体的模拟中,有三个基本假设:假设飞机是刚体,且在飞行过程中质量保持不变;忽略地面的曲率和自转,将地面看作平面以及假设地面坐标为惯性坐标系。在这
三个假设条件下,可以飞机运动载体的运动分解为三个基本运动——直线运动、爬升(俯
冲)运动和转弯运动,然后对这三个基本运动进行处理。
[0065] 卫星可见性判断模块6,主要的功能是判断各颗卫星对于当前用户的位置是否处于可见状态。首先,需要根据卫星星历提供的参数计算卫星的位置;然后计算卫星在以用户
的位置为原点建立东北天坐标系中的位置,根据此位置可以计算得到卫星相对用户的仰角
和方位角;最后,将仰角与设置的阈值进行比较,如果仰角在阈值范围内,则认为卫星在当
前时刻对于用户是可见的。
[0066] 对于模拟器来讲,是否生成某颗卫星的信号取决于该卫星对于用户是否可见。如果可见,就应该生成该卫星的信号,否则不生成。所以,简单地判断某时刻卫星的可见性,对
于模拟器来讲是不够的,而需要考虑间隔时间之内卫星的可见性。本发明在模拟器的设计
中考虑了某颗卫星在一段时间的可见性,如果卫星在开始时刻和间隔时间之后的时刻均可
见,则认为卫星一直可见;如果在两个时刻中的任意一个时刻不可见,则认为这段时间内卫
星不可见。如果卫星在间隔时间之内可见,则会在下一间隔时刻生成该卫星信号,但这只是
影响了信号的生成时间,并不影响信号的其他特性。
[0067] 传输时间计算模块7,完成卫星与用户之间的传输时间的计算和相对运动的模拟,传输时间计算模块是参数计算部分的核心。本发明采用迭代的方式计算传输时间,首先设
定一个传输时间的初始值,然后将发射时刻卫星位置转换到接收时刻坐标系下,重新计算
传输时间后进行判断,如果前后两次计算得到的传输时间之差大于预设精度则继续迭代,
否则停止迭代并得到传输时间参数。完成传输时间的计算之后,利用发射时刻的卫星与用
户之间的相对位置,对卫星与用户的相对速度和相对加速度进行求解,进而模拟卫星与用
户之间的相对运动。
[0068] 电离层延迟模块8,主要根据电离层的模型来计算电离层对导航卫星的延迟误差,输入数据为用户的位置、当前系统时间、可见卫星的位置,采用Klobuchar模型计算得到卫
星信号到达用户接收机的电离层延迟。
[0069] 对流层延迟模块9,主要根据对流层模型来计算对流层对导航卫星信号传输的延迟误差。与电离层延迟模块相似,该模块的输入为用户接收机的位置、仿真时间和可见卫星
的位置。对流层模块采用Hopfield模型来计算得对流层延迟。
[0070] 电文数据生成模块10,主要是根据不同频点信号的接口控制文件中的规定,将卫星星历数据进行格式转换,并进行编码、校验等操作,最终生成电文比特流。
[0071] 每次调用都会生成当前时刻所在子帧的电文数据。卫星的星历参数首先需要参考指定的比例因子进行放大,然后才能编入指定的电文位置。以B1I信号中电文的生成为例,
每个电文主帧包括5个子帧,每个子帧包含10个字,每个字包括30比特的电文。其中,每个字
由导航电文数据及校验码两部分组成,每个子帧第1个字的前15比特不进行纠错编码,后11
比特信息采用BCH(15,11,1)方式进行纠错,信息位共有26比特;其它9个字均采用BCH(15,
11,1)加交织方式纠错编码,信息位共有22比特。
[0072] 通道数据模块11,将信号生成所需要的数据整合到统一的数据结构当中,然后将这些数据传递给数据通信部分。每个通道结构体中包含了一颗卫星的所有与信号生成相关
的所有数据,包括:卫星的PRN号、电文数据、传输时间、接收时间、扩频码长度和速率、载波频率、中频频率、多普勒频移、扩频码NCO参数(相位、频率、频率变化率)、载波NCO参数(相
位、频率、频率变化率)等。如果该频点的信号包含子码或者子载波,则还要包含子码的长度
和速率或者子载波的速率和类型。通道数据如表6所示。
[0073] 表6 通道数据ChanData
[0074]
[0075] 对于任意一颗卫星,所设计的通道应该能实现如下的功能:
[0076] 卫星对于用户是不可见的:若该卫星前一时刻不占据任何通道,则将该卫星的状态定义为“不可见”,通道数据全部置0;若该卫星前一时刻占据某通道,则该卫星的状态为
“不再可见”,并应清空该通道的数据,并将通道的状态设置为“空闲”。
[0077] 卫星对于用户是可见的:若该卫星前一时刻不占据任何通道,则该卫星的状态为“第一次可见”,需要从处于空闲状态的通道中选择通道号最小的通道来装载该卫星的数
据,并将通道状态设置为“占用”;若该卫星前一时刻已经占据某通道,则该卫星的状态为
“一直可见”,并且不改变卫星所处的通道号以及通道状态。
[0078] 数据通信部分完成数据的下发与接收和中断的响应与处理,是CPU和FPGA之间通信的枢纽,在模拟器的运行中起着十分关键的作用,主要包括数据下发模块12、数据接收模
块14、数据解析模块15以及中断控制模块13。如图3所示,数据在参数计算部分完成计算后,
进入数据下发模块进行装帧和下发,在数据接收模块通过PCIE和内存读取机制将数据接收
并读取,然后数据解析模块根据通信协议将数据进行解析,得到系统和通道两种类型的参
数并将参数传输到信号生成模块;在来自信号生成模块的中断信号的控制下,中断控制模
块调控参数计算部分完成数据的实时更新。
[0079] 表7为数据下发模块12与数据解析模块15之间的通信协议,数据传输以帧为单位,每帧128比特数据,其中,低16比特为桢头部分,共有0、1、2、3这四种不同的桢头,对应不同的数据类型。桢头为0的帧传输的是与通道号对应的信号生成的关键参数,包括三类参数:
通道初始化参数,NCO参数和电文数据。桢头为1的帧传输的是数据更新标志,表示已经进行
了通道数据的更新。桢头为2的桢传输的是系统频点的初始化信息,包括码长和码速率等信
息。桢头为3的桢为系统启动标志,在该桢的控制下,模拟器开始生成信号。
[0080] 表7 数据传输通信协议
[0081]
[0082]
[0083] 数据下发模块12在将下发的参数根据通信协议进行装帧的同时,还需要管理数据的下发过程,其中系统初始化数据和系统启动标志只下发一次;通道更新数据的更新频率
会因为参数类型的不同而不同,通道初始化参数只有出现新的通道时下发,NCO参数每个更
新间隔都需要下发,而电文则需要根据不同频点电文速率以不同的频率下发;每当有通道
更新参数下发时,都需要同步下发数据更新标志。最后,数据下发模块需要调用驱动程序通
知数据接收模块进行数据的接收。
[0084] 数据接收模块14,通过PCIE接口和DMA(Directional Memory Access,直接内存读取)内存机制完成数据的接收,本发明设计了一种内存操作方案,通过内存指针控制数据的
接收过程。在系统开始阶段,内存指针停留在头地址处,数据下发模块在将数据写入内存之
后会下发内存读取信号,在这个信号的控制下,内存指针以每次128比特的速度进行读取,
直到其移动到内存空间的尾部,到达尾部后,指针将一直停留在尾部,等待下次内存读取信
号到来。最后,数据接收模块得到装帧好的128比特数据,速率为25Msps。
[0085] 数据解析模块15,接收来自数据接收模块的数据,对数据进行解帧,然后根据不同的数据类型进行不同的处理。对于系统参数数据,直接使用寄存器存储,使其在模拟器运行
期间一直保持原值不变。对于通道参数数据,则需要使用FIFO(First Input First Outpu,
先入先出队列)存储技术,并结合数据更新标志进行数据的保存与读取。除了桢头之外,对
通道更新数据的处理还包括通道号和数据类型的解帧,并将不同通道和不同类型的数据分
别保存在不同的FIFO中。每个通道都分配了三个FIFO用以保存不同类型的数据,其中第一
个FIFO保存通道初始化参数,参数包括星号、电文速率、扩频码初始相位、扩频码初始相位
控制字和载波初始相位控制字;第二个FIFO保存的是NCO参数,参数包括扩频码频率控制
字、扩频码一次频率控制字、扩频码二次频率控制字、载波频率控制字、载波一次频率控制
字、载波二次频率控制字和通道信号幅度控制字;第三个FIFO保存的则是电文数据。对于通
道更新标志,本发明也使用FIFO进行存储,并在第一中断控制信号的控制下进行读取,每次
响应会从FIFO中读出两条数据,如果在对着两条的数据的解析中发现了更新标志,将会控
制通道更新数据的FIFO进行数据的读取,同时此FIFO还会对其内保存的数据量进行监测,
如果监测到内部的数据量少于阈值量,将会产生一个FIFO数据空信号,并将此信号传递给
中断控制模块。
[0086] 表8 数据解析模块
[0087]
[0088]
[0089] 如表8所示,由数据解析模块15获取的参数会包括系统参数和通道参数两种类型,这些参数将会传递给信号生成模块中完成信号的生成和调制。
[0090] 中断控制模块13,在系统初始化阶段,参数计算部分将会计算100组的参数,并将这100组数据保存在数据解析模块中,然后进入运行阶段。在运行阶段,为了保证信号的实
时性,需要响应来自硬件的中断信号,并在中断信号的控制下进行数据的更新。为此,本发
明设计了一种中断相应与处理机制,实现了数据的实时更新与传输。在中断响应机制中,设
计了两个不同级别的中断控制信号,其中来自信号生成模块的中断控制信号为第一终端控
制信号,其级别较低,在这个信号的控制下,中断控制模块将会调用参数计算部分的各模块
完成一次数据的更新并将更新的数据通过数据下发链路保存在数据解析模块的FIFO中;而
来自数据解析模块的FIFO数据空信号为第二终端控制信号,其级别较高,如果检测到此信
号,中断控制模块将会控制参数计算部分进行50次的数据更新,及时地完成数据的补充。
[0091] 信号生成部分,接收来自数据通信部分传递过来的参数,根据参数生成数字中频信号,并控制DA芯片进行数模转换。信号生成部分包括信号生成单元16、通道模块19、载波
生成模块20、扩频码生成模块21、电文生成模块22、中频调制模块23、芯片管理模块17和中
断产生模块18。如图4所示,信号生成单元16包含两个信号生成单元,分别接受不同的参数。
利用FPGA的并行处理能力,同步地生成两个不同频点不同系统的导航信号;每个信号生成
单元包含12个通道模块,每个通道模块对应当前系统时间的一颗可见卫星状态,12个通道
模块的输出将在信号生成单元完成合成;每个通道模块包含载波生成模块、扩频码生成模
块、电文生成模块和中频调制模块四个模块,载波生成模块20在载波初始码相位和载波NCO
参数的控制下输出载波信号,扩频码生成模块21在码初始相位和码NCO参数的控制下输出
扩频码码片的同时,根据不同信号体制分情况输出子码码片或子载波码片,电文生成模块
22逐比特地输出下发的电文,中频调制模块24则最终将信号的各部分进行调制;芯片管理
模块17通过对芯片内部寄存器的操作实现对DA芯片的控制;中断产生模块18则在时钟的计
数下产生第一中断控制信号,并将其送入数据通信部分控制参数的更新。两个信号生成单
元产生的信号在进行合路后送入DAC芯片中完成数模转换,得到模拟中频信号。
[0092] 信号生成单元16,输入输出接口如表9所示。信号生成单元16接收来自数据通信部分解析完成的数据,包括系统参数和通道参数两部分,内部包含12个与可见卫星状态相关
的通道模块。在信号生成单元中,因为通道参数是与通道模块直接相关,所以需要进行通道
编号的配置并将不同通道的数据进行区分并传输到不同的通道模块中。在通道模块完成 
信号的调制后,信号生成单元将进行通道信号的合成,首先采用加法器实现各通道调制信
号的累加,然后使用除法器得到最终导航数字中频信号(如果通道内数据无效,即当前可见
卫星数小于12,无效通道的输出将保持为0)。
[0093] 表9 信号生成单元
[0094]
[0095] 通道模块19,输入输出接口如表10所示,在通道模块中完成对一颗可见卫星信号的生成工作,包括载波生成模块20、扩频码生成模块21、电文生成模块22和中频调制模块24
四个子模块。其中,载波生成模块20根据相位控制字产生16比特载波信号;扩频码生成模块
21根据扩频码相位控制字生成1比特扩频码信号,如果信号包括子码或子载波,扩频码生成
模块还会生成子码或子载波信号;电文生成模块22根据接收的电文数据生成当前时刻的1
比特电文信号;最后,在中频调制模块24中将载波、扩频码和电文进行调制,得到该通道的
16比特的数字信号。此外,通道模块19还需要根据参数i_CH_status进行通道状态的控制,
与通道数据模块相对应,分为第一次可见、一直可见和不可见三种不同的情况,不同情况的
通道状态将采取不同的处理方式。第一次可见状态将会对系统参数进行处理,一直可见状
态则只需根据参数更新信号进行通道信号的更新,而不可见状态则需要将输出的通道信号
置为0。
[0096] 表10 通道模块
[0097]
[0098]
[0099] 载波生成模块20,输入输出接口如表11所示。载波生成模块20接收载波初始相位和载波NCO参数,利用DDS进行载波相位的控制,最后输出16比特的载波信号。模块内使用
ROM(Read Only Memory image,只读存储器镜像)存储16比特量化的载波幅值查找表,将
DDS输出的相位控制字进行截取作为查找表的地址,根据此地址的变化得到对应的载波信
号,以B1I为例,截取DDS输出控制字的高14位后可得到亚毫米级别的伪距测量精度。载波生
成模块输出正弦载波和余弦载波两路载波信号。可以满足对导频路和数据路有不同要求的
频点信号的调制,其中正弦波从0地址处开始读取,二余弦波从π/2所对应的地址处开始进
行读取。
[0100] 表11 载波生成模块
[0101]
[0102]
[0103] 扩频码生成模块21,输入输出接口如表12所示。扩频码生成模块一方面完成扩频码的生成,另一方面产生电文更新信号控制电文生成模块的电文更新。扩频码的生成主要
通过DDS控制扩频码的相位来实现,在系统的初始化阶段,将会根据频点代号及卫星星号产
生对应卫星的扩频码值并以RAM(Random Access Memory,随机存取存储器)的形式存储,输
入相应的扩频码相位就会得到对应的扩频码信号,开始时刻在输入信号i_Code_Count_ini
的控制下得到当前时刻对应的码片,此后DDS输出相位的最高位每溢出一位,对应扩频码相
位增加一位,对应的扩频码信号将会得到更新。每经过一个扩频码周期,会产生一个扩频码
周期脉冲,电文生成模块接收此脉冲信号控制电文的更新。
[0104] 表12 扩频码生成模块
[0105]
[0106] 如果所选频点包含扩频子码,则需要进行子码的生成。与扩频码的生成相似,子码首先需要产生相应的子码值并保存在相应RAM中,然后根据输入的子码相位,产生相应的子
码值。通过对伪码周期脉冲进行计数,利用扩频码与子码的对应关系,即可在子码速率和子
码长度参数的控制下得到子码的相位值。
[0107] 如果所选频点包含子载波,则需要进行子载波的生成。首先通过将DDS的输出相位控制字乘以BOC调制方式的调制系数,使其最高的两位在伪码的一个码片时间内按00、01、
10、11循环变化,然后根据这种变化和BOC(Binary Offset Carrier,二进制偏置载波调制)
调制系数来控制子载波相位的跳变,最后实现子载波信号的逐比特输出。
[0108] 对于B1I信号而言,其包含子码但是不包含子载波,则输出的子载波将会持续无效状态以避免对中频调制模块的干扰。
[0109] 电文生成模块22,输入输出接口如13表所示,电文模块接收电文、电文速率参数和来自扩频码生成模块的电文更新信号。接收并保存一子帧的电文,然后在电文更新信号和
电文速率参数的控制下逐比特输出电文信号。
[0110] 表13 电文生成模块
[0111]
[0112] 中频调制模块23,输入输出接口如表14所示,其接收载波、扩频码、子码、子载波和电文,完成数据路信号的调制和信号幅度的控制。对于数据通道,中频调制模块23首先需要
将电文、扩频码、子码和子载波进行同或操作,然后根据此值判断载波信号是否进行反相,
如果此值为1则载波信号保持当前相位,如果此值为0则需要对载波信号进行反相操作;而
对于导频通道而言,区别在于导频通道不包含电文,所以只需要对扩频码、子码和子载波进
行同或操作即可。两路信号分别通过一个乘法器实现对信号幅度的控制,在相加后取高16
位作为中频调制模块的输出信号。
[0113] 表14 中频调制模块
[0114]
[0115] 芯片管理模块17,输入输出接口如表15所示。芯片管理模块通过对DAC芯片中寄存器的读写实现对DAC芯片的控制和管理,包括DAC芯片输入信号的格式和内部滤波器的使用
情况等。
[0116] 表15 芯片管理模块
[0117]
[0118] 中断产生模块18,输入输出接口如表16所示。中断控制模块以固定的间隔时间产生第一中断控制信号,并控制整个模拟器的更新。初始化完毕后,在中断计数开始标志的控
制下,中断产生模块18开始计数,在满足更新周期的条件时,产生第一中断控制信号并控 
制模拟器的更新,然后计数重新开始并重复此过程。因为中断产生模块18使用硬件实现中
断,可以实现较为准确的中断控制,保证了模拟器信号的实时性和连续性。
[0119] 表16 中断产生模块
[0120]
[0121] 以B1I为例,中断产生的时间间隔选择为20ms,在系统时钟为250M的情况下,当计数达到4999999(250*20ms-1)时产生中断信号并使计数复位。
[0122] 以下结合附图描述根据本发明实施例的基于CPU和FPGA的卫星导航信号模拟器的控制方法。
[0123] 请参考图5,一种基于CPU和FPGA的卫星导航信号模拟器的控制方法,包括以下步骤:
[0124] S1:参数配置根据用户的选择进行初始化参数的配置,包括模拟器所仿真的信号频点、仿真时间、用户运动模型以及电离层、对流层参数等。
[0125] S2:根据初始化参数中与卫星有关的参数,进行卫星星座的模拟和卫星状态的判断。步骤S2进一步包括以下步骤:
[0126] S201:系统初始化模块根据信号频点信息,进行系统信息的配置。需要进行初始化的系统信息包括调制方式、扩频码速率及码长、载波频率、电文速率、扩频子码的速率和码
长、子载波的速率等信息。
[0127] S202:星历读取模块根据初始化的信号频点,从相应的星历文件和历书文件中读取星历和历书数据,并保证从仿真开始到结束的一段时间之内数据有效。
[0128] S203:卫星状态模块根据仿真时间和读取的星历数据,为每颗卫星筛选出有效的星历数据,依据准则为距离当前仿真时间最近原则。得到星历数据之后,可以根据此星历得
到仿真时刻卫星的三维坐标。
[0129] S3:用户状态模块根据用户选择的用户运动模型实时更新用户载体的三维坐标并生成用户载体的运动轨迹,其中运动模型包括简单运动载体、车辆运动载体和飞机运动载
体三类。
[0130] S4:关键参数的计算涉及到模拟器核心,包括可见性判断、传输时间计算和电文数据的生成等部分,具体步骤如下。
[0131] S401:卫星可见性判断模块根据卫星和用户的位置,同时计算仿真时刻和一段时间间隔以后卫星相对用户的仰角,如果两个时刻计算的仰角都在阈值范围之内,则认为卫
星一直可见,否则认为该颗卫星不可见。
[0132] S402:传输时间计算模块采用迭代的方法,首先设定传输时间初始值,然后利用用户的位置坐标和仿真时间作为已知数据,逐渐趋近于真实的导航信号传输时间。在得到传
输时间参数之后,根据卫星与用户之间的相对速度和相对加速度对NCO参数进行计算。
[0133] S403:根据用户的选择,在电离层延迟模块和对流层延迟模块,分别利用Klobuchar模型和Hopfield模型来计算电离层延迟和对流层延迟,并叠加到传输时间和NCO
参数上。
[0134] S404:在电文数据模块中,根据接口控制文件中的规定,产生对应信号的电文比特流数据,除了要对星历数据进行转换之外,还包括编码和校验等操作。
[0135] S405:通道数据模块首先进行通道状态的判断,如果卫星的状态为“第一次可见”或“一直可见”,则对应的数据将进行更新,否则清空通道的数据。
[0136] S5:数据在计算完成后需要进行整合和下发,同时响应来自硬件的中断信号进行及时 的更新和计算,具体步骤入下:
[0137] S501:数据下发模块中,将通道中的数据根据软硬件之间的通信协议进行装帧,并依据不同数据的类型以不同的更新频率调用硬件设备的驱动程序进行数据的下发控制。
[0138] S502:中断控制模块为了保证产生信号的实时性,需要利用本发明的中断响应与处理机制对底层硬件的中断信号进行响应,并控制S2、S3和S4步进行数据的更新和下发。
[0139] S6:首先需要对软件部分传输的数据进行接收,然后进行解析并存储。同时,还需要产生中断信号控制数据的更新过程。具体步骤如下。
[0140] S601:数据接收模块通过PCIE接口和DMA内存读取机制进行数据的接收,以内存指针的形式进行控制,最终得到软件部分下发的数据。
[0141] S602:数据解析模块根据软硬件之间的通信协议对数据进行解析,并对不同类型的数据进行不同的处理。对于需要实时更新的数据,利用FIFO存储技术进行存储。同时,对
FIFO中的数据量进行监测,如果监测到数据量小于阈值,产生FIFO数据空信号,控制软件部
分进行数据更新。
[0142] S603:终端产生模块以固定的时间间隔产生中断控制信号,在中断信号的控制下,系统将会按此间隔进行实时的更新。
[0143] S7:在每个通道内产生一颗卫星的信号,包括载波生成、扩频码生成、电文生成和中频信号的调制,具体步骤如下:
[0144] S701:载波生成模块根据接收的载波初始相位和载波NCO参数,利用DDS进行载波相位的控制,最终输出16比特的载波信号。
[0145] S702:扩频码生成模块根据接收的扩频码的初始相位和扩频码NCO参数,利用DDS进行扩频码相位的控制,最终输出1bit的扩频码信号,如果信号包含扩频子码或子载波,还
需要产生相应的扩频子码和子载波信号。
[0146] S703:电文生成模块利用接收的电文数据,实时地更新1比特的电文信号。
[0147] S704:中频调制模块接收载波、扩频码、扩频子码、子载波和电文信号,首先对扩频码、扩频子码、子载波和电文进行同或,然后根据结果决定是否对载波进行反相,最终得到
16bit的通道信号。
[0148] S8:将生成的通道信号进行合成处理,得到两路包含所有可见卫星信号的数字中频信号并送入DAC芯片中。
[0149] S9:接收两路数字中频信号,并进行数模转换,最终得到两路模拟的导航卫星信号。
[0150] 另外,本发明实施例的基于CPU和FPGA的卫星导航信号模拟器及控制方法的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
[0151] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何
的一个或多个实施例或示例中以合适的方式结合。
[0152] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本
发明的范围由权利要求及其等同限定。