发明名称 一种GNSS模拟器中的导航电文结构可配置方法
摘要 本发明提供了一种GNSS模拟器中的导航电文结构可配置方法,将电文参数的结构信息,包括电文主帧的总长度、电文参数名称、参数起始位置和长度,保存在文件/数据库中,首先电文结构预配置,然后,用户根据需要更改电文结构,可改变任意电文参数的位置和长度,在更改完成后,模拟器对用户配置后的电文格式进行正确性校验并存储,最后通过GNSS模拟器读取电文结构信息进行仿真,生成与仿真时刻对应的电文比特流。本发明方法解决了常规GNSS模拟器中对于特定的导航系统以及模式特定的卫星模拟信号电文帧结构固定的问题,支持用户对电文参数在电文帧结构中位置及长度的便捷修改,有效支持基于GNSS模拟器的导航电文设计研究。
申请公布号 CN102629281B 申请公布日期 2013.09.18
申请号 CN201210107417.9 申请日期 2012.04.12
申请人 北京航空航天大学 发明人 赵昀;黄智刚;寇艳红;王陆潇;李锐
分类号 G06F17/30(2006.01)I;G01S19/23(2010.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 周长琪
主权项 一种GNSS模拟器中的导航电文结构可配置方法,其特征在于,包括如下步骤:步骤一:电文结构预配置,具体是:预配置电文结构中各电文参数的结构信息,将其作为GNSS模拟器的初始默认电文结构,保存在文件/数据库中;所述的电文参数的结构信息包括电文主帧的总长度、电文参数名称、参数起始位置和长度;所述的初始默认电文结构通过电文格式正确性校验,并能直接被GNSS模拟器调用;步骤二:判断用户是否选择更改电文结构,若否,执行步骤三,若是,通过GNSS模拟器的电文结构配置界面更改电文结构,然后执行步骤三;更改电文结构包括改变任意电文参数的位置和长度,其中位置的改变包含两类:将一个电文参数插入到另一个电文参数之前,将两个电文参数的位置进行交换;更改完成后,GNSS模拟器对更改后的电文结构的格式进行正确性校验,将通过校验的电文结构写入文件/数据库中;步骤三:电文结构使用,GNSS模拟器启动仿真运行时,读取文件/数据库中的电文结构信息,获取电文参数数据,并对电文参数数据进行正确性校验,判断具体参数数据取值的有效性,若校验不正确,给出错误反馈信息,暂停GNSS模拟器运行;若校验正确,则GNSS模拟器生成与仿真时刻对应的导航电文比特流;所述的步骤二具体包括如下步骤:步骤2.1:更改电文结构,确定受到更改影响的电文参数的新起始位置,分为三种情况:位置插入、位置交换和长度改变;(a)位置插入:在电文参数j的当前位置之前插入电文参数i,如果电文参数i为已有的电文参数,则电文参数i的新起始位置position_i_new为:position_i_new=position_j‑length_i‑mi其中,position_j表示电文参数j的起始位置,length_i表示电文参数i的比特长度,mi为分组校验码长度的倍数,根据position_j‑length_i的值来确定:判断position_j‑length_i的值是否跨越分组校验码区,若否,mi取0,电文参数i的新起始位置保持在电文参数j所在字;若是,且跨越ri个分组校验码区,则mi取(ri*分组校验码长度),电文参数i的新起始位置缩减至电文参数j所在字之前的第ri个字;电文参数i的原起始位置至新起始位置之间的全部电文参数的起始位置发生改变,设n表示受更改影响的任意电文参数,则电文参数n的新的起始位置position_n_new为:position_n_new=position_n_org‑length_i‑mni其中,position_n_org表示电文参数n的原起始位置,mni为分组校验码长度的倍数,mni的取值根据position_n_org‑length_i的值来确定:判断position_n_org‑length_i的值是否跨越分 组校验码区,若否,mni取0,电文参数n的新起始位置保持在原所在字;若是,确定跨越分组校验码区的个数rni,mni取(rni*分组校验码长度),电文参数n的新起始位置缩减至原所在字之前的第rni个字;如果电文参数i为新的参数,则它的新起始位置为:position_i_new=position_j;而电文参数i新起始位置之后的全部参数的起始位置发生改变,设n表示受更改影响的任意电文参数,则电文参数n的新的起始位置position_n_new为:position_n_new=position_n_org+length_i+m2ni其中,m2ni为分组校验码长度的倍数,m2ni的取值根据position_n_org+length_i的值来确定:判断position_n_org+length_i的值是否跨越分组校验码区,若否,m2ni取0,参数n的新起始位置保持在原所在字;若是,确定跨越的分组校验码区的个数rni,m2ni取(rni*分组校验码长度),电文参数n的新起始位置溢出到原所在字之后的第rni个字;(b)电文参数i和j交换位置,交换位置后,电文参数i和j新的起始位置position_i_new和position_j_new分别为:position_i_new=position_j_org+length_j‑length_i±mijposition_j_new=position_i_org其中,i表示交换中原位置在先的电文参数,j表示交换中原位置在后的电文参数,position_j_org表示电文参数j的原起始位置,length_j表示参数j的比特长度,mij为分组校验码长度的倍数,mij的取值根据position_j_org+length_j‑length_i的值来确定:判断position_j_org+length_j‑length_i的值是否跨越分组校验码区,若否,mij取0,电文参数i的新起始位置保持在参数j原所在字;若是,确定所跨越分组校验码区的个数rij,mij取(rij*分组校验码长度),若length_j≤length_i,取‑mij,电文参数i的新起始位置缩减到电文参数j原所在字之前的rij个字,若length_j>length_i,取+mij,电文参数i的新起始位置溢出到电文参数j原所在字之后的rij个字;两个交换参数之间的全部电文参数的起始位置也发生相应改变,设n表示受更改影响的任意电文参数,则电文参数n的新的起始位置position_n_new为:position_n_new=position_n_org+length_j‑length_i±mnij其中,分组校验码长度的倍数mnij的值根据position_n_org+length_j‑length_i的值来确定:判断position_n_org+length_j‑length_i的值是否跨越分组校验码区,若否,mnij取0,电文参数n的新起始位置保持在原起始位置所在字;若是,确定所跨越的分组校验码区个数rnij,mnij取(rnij*分组校验码长度),若length_j≤length_i,取‑mnij,电文参数n的新起始位置缩减到原所在字之前的rnij个字,若length_j>length_i,取+mnij,电文参数n的新起始位置溢出到原所在字之后的rnij个字;(c)对于长度改变,将电文参数i的长度进行改变,则被修改的电文参数i之后的各电文参数的新的起始位置发生改变,设n表示受更改影响的任意电文参数,则电文参数n的新的起始位置position_n_new为:position_n_new=position_n_org‑length_i_org+length_i_new±min其中,length_i_org表示电文参数i的原比特长度,length_i_new表示电文参数i新的比特长度,分组校验码长度的倍数min的取值根据position_n_org‑length_i_org+length_i_new的值来确定:判断position_n_org‑length_i_org+length_i_new的值是否跨越分组校验码区,若否,min取0,电文参数n的新起始位置保持原所在字;若是,确定跨越分组校验码区个数rin,min取(rin*校验码长度);若length_i_org≥length_i_new,取‑min,则电文参数n的新起始位置缩减到原所在字之前的rin个字;如果length_i_org<length_i_new,取+min,电文参数n的新起始位置溢出到原所在字之后的rin个字;步骤2.2:对修改完成后的电文结构进行正确性校验,并显示校验结果;所述的电文结构的正确性校验是判断更改后的电文结构是否保持预配置所定义的电文主帧的总长度;步骤2.3:将通过校验的电文结构信息写入相应的文件/数据库中。
地址 100191 北京市海淀区学院路37号