全球导航卫星系统中资源的调度方法和装置与流程

文档序号:18897573发布日期:2019-10-18 21:29阅读:295来源:国知局
全球导航卫星系统中资源的调度方法和装置与流程
本申请涉及信息处理领域,尤指一种全球导航卫星系统中资源的调度方法和装置。
背景技术
:全球导航卫星系统(globalnavigationsatellitesystem,gnss)是一个具有多颗卫星的人造卫星系统,它可以向地面接收机发射包含时空信息的信号。接收机可使用这些信息来实现定位。目前,主要的gnss系统包括欧盟的galileo系统,美国的gps系统,俄罗斯的glonss系统以及中国的北斗系统。不同的系统会发射不同的信号类型。图1为相关技术中gnss接收机的结构示意图。如图1所示,gnss接收机中捕获引擎的任务是检测是否存在来自某个gnss卫星的信号。在gnss接收机中,信号的捕获时是基带信号处理的第一个步骤,后面还有信号跟踪,bit同步以及pvt的计算。为了节省硬件计算成本和功耗,并减小存储大小,一个灵活的能适应不同配置以及能有效利用硬件的有限计算能力和存储的调度方法是至关重要的。技术实现要素:为了解决上述技术问题,本申请提供了一种全球导航卫星系统中资源的调度方法和装置,能够节省硬件成本。为了达到本申请目的,本申请提供了一种全球导航卫星系统gnss中资源的调度方法,包括:为gnss系统中每个卫星分配并行的多普勒单元;控制所述每个卫星利用所述并行的多普勒单元执行搜索任务。在一个示例性实施例中,所述控制所述每个卫星利用所述并行的多普勒单元执行搜索任务,包括:获取每个卫星的相干积分时间的长度;控制所述每个卫星在各自的相干积分时间内利用所述并行的多普勒单元执行搜索任务。在一个示例性实施例中,所述每个卫星分配的并行的多普勒单元的个数是根据硬件能力确定的。在一个示例性实施例中,在对多个gnss系统进行并行捕获时,每个gnss系统所分配的并行多普勒单元的个数满足如下条件:ua*na+ub*nb+uc*nc+…+um*nm≤n;其中,ua、ub、uc...um表示每个gnss系统中一个多普勒单元所消耗的计算能力单元的个数,na、nb、nc...nm表示每个gnss系统所分配的并行的多普勒单元的个数,n表示计算能力单元的总数;sa*na+sb*nb+sc*nc...+sm*nm≤s其中,sa、sb、sc...sm表示每个gnss系统中一个多普勒单元所消耗的存储器大小,na、nb、nc...nm表示每个gnss系统所分配的并行的多普勒单元的个数,s表示存储器的总大小;na+nb+nc+…+nm≤m其中,na、nb、nc...nm表示每个gnss系统所分配的并行的多普勒单元的个数,m表示最大支持的并行多普勒单元个数。在一个示例性实施例中,所述控制所述每个卫星利用所述并行的多普勒单元执行搜索任务,包括:获取所述每个卫星在处于工作状态时对应的硬件工作时间单位;为所述每个卫星配置在硬件工作时间单位内的多普勒单元的搜索规则;控制所述每个卫星按照各自对应的多普勒单元的搜索规则利用所述并行的多普勒单元执行搜索。在一个示例性实施例中,每个多普勒单元使用的采样数据是该多普勒单元开始搜索时,时间上最近的相干积分长度的数据。在一个示例性实施例中,并行的至少两个多普勒单元在时间长度等于相干积分长度的时间内完成搜索,并在此时间内,每个多普勒单元逐个完成对应的搜索任务。在一个示例性实施例中,所述方法还包括:在执行搜索任务前,对每个卫星对应的并行的多普勒单元的个数进行管理。在一个示例性实施例中,所述对每个卫星对应的并行的多普勒单元进行管理,包括:以相干积分时间的长度为周期,获取每个卫星对应的并行的多普勒单元的个数;判断每个卫星对应的多普勒单元的数量是否发生变化,得到判断结果;如果判断结果为发生变化,则在硬件的工作时间单位内,将获取到的多普勒单元的个数与计划调度的多普勒单元的个数进行比较;在获取到的多普勒单元的个数小于计划调度的多普勒单元的个数时,为所述卫星增加新的多普勒的个数。为了达到本申请目的,本申请提供了一种全球导航卫星系统gnss中资源的调度装置,包括处理器和存储器,其中存储器存储有计算机程序,处理器调用所述存储器中的计算机程序以实现上文任一所述的方法。本申请实施例提供的技术方案,为gnss系统中每个卫星分配并行的多普勒单元,并控制所述每个卫星利用所述并行的多普勒单元执行搜索任务,实现利用并行的多普勒单元执行搜索任务的目的,充分利用硬件资源的目的,有效控制硬件开发成本。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。图1为相关技术中gnss接收机的结构示意图;图2为本申请实施例提供的gnss系统中资源的调度方法的流程图;图3为本申请实施例提供的调度器的工作流程图;图4为本申请实施例提供微调度的工作示意图;图5为本申请提供的不同相干积分长度的微调度方法示意图;图6为本申请提供的不同系统共存微调度方法的示意图;图7为本申请提供的动态调度的方法的示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图2为本申请实施例提供的gnss系统中资源的调度方法的流程图。图2所示方法,包括:步骤201、为gnss系统中每个卫星分配并行的多普勒单元;在一个示例性实施例中,为了有效地利用硬件资源,多普勒搜索范围可以进一步划分为许多基本单元,称为多普勒搜索单元。因此,每个卫星的搜索任务都有其对应的多普勒搜索单元的个数。多普勒单元个数表示在一个搜索任务中所需要的多普勒单元的个数;而并行多普勒单元个数表示可以并行搜索的多普勒单元个数。步骤202、控制所述每个卫星利用所述并行的多普勒单元执行搜索任务。为每个卫星分配一个搜索通道,因此每个搜索通道都支持多个并行多普勒单元。每个通道中的并行多普勒单元个数是可以灵活配置的。其中,来自所有通道的并行多普勒单元的总数受硬件资源的限制。在一个示例性实施例中,所述控制所述每个卫星利用所述并行的多普勒单元执行搜索任务,包括:获取每个卫星的相干积分时间的长度;控制所述每个卫星在各自的相干积分时间内利用所述并行的多普勒单元执行搜索任务。在本示例性实施例中,从相干积分长度的时间级别上分配并行多普勒单元,其中,所分配的并行多普勒单元可以在相干积分长度的时间内完成。比如,分配了8个并行多普勒单元,其相干积分长度是9ms,表示在9ms内,硬件能完成8个多普勒单元的搜索。调度器支持多种相干积分长度。在一个示例性实施例中,所述每个卫星分配的并行的多普勒单元的个数是根据硬件能力确定的。在一个示例性实施例中,在对多个gnss系统进行并行捕获时,每个gnss系统所分配的并行多普勒单元的个数满足如下条件:ua*na+ub*nb+uc*nc+…+um*nm≤n:其中,ua、ub、uc...um表示每个gnss系统中一个多普勒单元所消耗的计算能力单元的个数,na、nb、nc...nm表示每个gnss系统所分配的并行的多普勒单元的个数,n表示计算能力单元的总数;sa*na+sb*nb+sc*nc...+sm*nm≤s其中,sa、sb、sc...sm表示每个gnss系统中一个多普勒单元所消耗的存储器大小,na、nb、nc...nm表示每个gnss系统所分配的并行的多普勒单元的个数,s表示存储器的总大小;na+nb+nc+…+nm≤m其中,na、nb、nc...nm表示每个gnss系统所分配的并行的多普勒单元的个数,m表示最大支持的并行多普勒单元个数。在一个示例性实施例中,所述控制所述每个卫星利用所述并行的多普勒单元执行搜索任务,包括:获取所述每个卫星在处于工作状态时对应的硬件工作时间单位;为所述每个卫星配置在硬件工作时间单位内的多普勒单元的搜索规则;控制所述每个卫星按照各自对应的多普勒单元的搜索规则利用所述并行的多普勒单元执行搜索。在本示例性实施例中,在分配了并行多普勒单元之后,在硬件工作时间的级别上进一步调度计算任务,其中工作时间的级别可以为每毫秒,完成宏调度器分配的任务。微调度器相当于建立了一个硬件计算任务先后顺序的规则,然后硬件会根据此规则知道它当前应该做什么任务,并执行计算任务。在一个示例性实施例中,每个多普勒单元使用的采样数据是该多普勒单元开始搜索时,时间上最近的相干积分长度的数据。在本示例性实施例中,使用不同多普勒单元可以使用不同采样数据的机制,这是因为多普勒单元是基本搜索单元并且彼此独立。每个多普勒单元使用的采样数据是该多普勒单元开始搜索时,时间上最近的相干积分长度的数据。在一个示例性实施例中,并行的至少两个多普勒单元在时间长度等于相干积分长度的时间内完成搜索,并在此时间内,每个多普勒单元逐个完成对应的搜索任务。在一个示例性实施例中,所述方法还包括:在执行搜索任务前,对每个卫星对应的并行的多普勒单元的个数进行管理。在本示例性实施例中,在卫星执行搜索任务之前,对该卫星对应的并行的搜索的多普勒单元的个数进行管理,达到有效维护多普勒单元的个数,保证搜索任务顺利进行的目的。在一个示例性实施例中,所述对每个卫星对应的并行的多普勒单元进行管理,包括:以相干积分时间的长度为周期,获取每个卫星对应的并行的多普勒单元的个数;判断每个卫星对应的多普勒单元的数量是否发生变化,得到判断结果;如果判断结果为发生变化,则在硬件的工作时间单位内,将获取到的多普勒单元的个数与计划调度的多普勒单元的个数进行比较;在获取到的多普勒单元的个数小于计划调度的多普勒单元的个数时,为所述卫星增加新的多普勒的个数。在本示例性实施例中,通过将卫星所需使用的多普勒单元的个数与卫星实际使用的个数进行比较,可以确定卫星当前可用的搜索单元是否能够支持当前的搜索任务,并根据确定结果,动态调整卫星的多普勒单元的个数,实现资源的充分利用,降低硬件开发成本。下面对本申请提供的方法作进一步说明:本申请实施例提出一个结合宏观调度和微观调度的多层调度器。宏调度器用于在相干积分时间长度的时间级别上执行调度任务,以有效地利用计算能力。微调度器设计用于在硬件工作时间的微观时间级别上执行调度任务,以减少输入数据缓存(aisb)大小,并支持多种相干积分长度。利用动态调度方案来支持动态配置。图3为本申请实施例提供的调度器的工作流程图。如图3所示,捕获任务包括要搜索的卫星列表、多普勒频率搜索范围和码相位搜索范围。为了获取信号,执行二维搜索,包括时间维度的码相位和频率维度的多普勒频偏。捕获引擎使用并行捕获策略实现并行搜索多颗卫星的目的。在搜索任务中,不同的卫星可能具有不同的多普勒搜索范围。为了有效地利用硬件资源,多普勒搜索范围可以进一步划分为许多基本单元,称为多普勒搜索单元。因此,每个卫星的搜索任务都有其对应的多普勒搜索单元的个数。多普勒单元个数表示在一个搜索任务中所需要的多普勒单元的个数;而并行多普勒单元个数表示可以并行搜索的多普勒单元个数。在宏调度器处,为每个卫星分配一个搜索通道,因此每个搜索通道都支持多个并行多普勒单元。每个通道中的并行多普勒单元个数是可以灵活配置的。其中,来自所有通道的并行多普勒单元的总数受硬件资源的限制。宏调度器为每颗卫星所对应的通道分配并行的多普勒单元个数,其中多普勒单元的个数是根据硬件资源来确定的,例如计算能力,存储器大小和寄存器数量等。宏调度器从相干积分长度的时间级别上分配并行多普勒单元,其中,所分配的并行多普勒单元可以在相干积分长度的时间内完成。比如,分配了8个并行多普勒单元,其相干积分长度是9ms,表示在9ms内,硬件能完成8个多普勒单元的搜索。调度器支持多种相干积分长度。在宏调度器分配了并行多普勒单元之后,微调度器在硬件工作时间的级别上进一步调度计算任务,其中工作时间的级别可以为每毫秒,完成宏调度器分配的任务。微调度器相当于建立了一个硬件计算任务先后顺序的规则,然后硬件会根据此规则知道它当前应该做什么任务,并执行计算任务。在本申请中,定义计算能力单元(cu)为每次匹配滤波器消耗的计算成本,例如可以定义为gpsl1c/a一毫秒相干积分并生成2046个码相位的相关结果的计算成本。下面对宏调度器进行说明,包括:宏调度器是基于相干积分的时间长度进行管理的。在配置计算任务时,在相干积分时间长度内配置的总计算任务不超过硬件计算能力;其中,硬件计算能力定义为每毫秒可以支持n个cu,其中n表示硬件计算能力在每毫秒可以支持的cu的总数。下面举例说明对于不同的单个gnss系统,宏调度能分配的并行多普勒搜索单元的个数。对于gpsl1c/a信号,匹配滤波器可以一次计算1ms的相干结果,所以并行多普勒单元个数是n;对于glog1信号,匹配滤波器可以一次计算2ms的相干结果,又因为glog1的码长是gpsl1c/a码长的一半,对于glog1信号,匹配滤波器的计算消耗是0.5cu。所以,对于glog1信号,并行多普勒单元个数是4n。对于bdb1i信号,匹配滤波器可以一次计算0.5ms的相干结果,又因为bdb1i的码长是gpsl1c/a码长的一倍,对于bdb1i信号,匹配滤波器的计算消耗是4cu。所以,对于bdb1i信号,并行多普勒单元个数是n/4。对于gale1信号,码长和码周期是gpsl1c/a码长的4倍,完成一个码周期的相干积分,计算消耗是16cu,也就是每毫秒4cu。并行多普勒单元个数是n/4。在对多个gnss系统进行并行捕获时,关键的一步是确定每个系统能分配多少个并行多普勒单元。以3个gnss系统为例,gnss系统a,b,c,每个系统的一个多普勒单元分别消耗ua,ub和uc个cu。然后,分配给每个系统的并行多普勒单元个数na,nb和nc必须满足以下约束条件,包括:ua*na+ub*nb+uc*nc≤n除了硬件计算能力之外,并行多普勒单元的数量也需要以总存储器大小为限制条件。假设总存储器大小为s。gnss系统a,b,c对应的一个多普勒单元所消耗的存储器大小分别为sa,sb,和sc。其约束条件是sa*na+sb*nb+sc*nc≤s第三个约束条件是总的并行多普勒单元个数。假设最大支持的并行多普勒单元个数是m。约束条件是na+nb+nc≤m其中,具体的约束条件是根据实际捕获引擎的硬件确定的。下面对微调度器进行说明,包括:微调度器是基于硬件工作时间级别上的调度。以9ms相干积分长度的gpsl1c/a信号为例,微调度器是调度分配在每毫秒上的计算任务。在宏调度器分配了9ms的时间长度里并行多普勒单元的数量后,硬件仍然无法确定在每毫秒中该搜索哪些多普勒单元。在这种情况下,微调度器将分配在每毫秒搜索哪些多普勒单元,这样能为硬件提供计算和搜索规则。微调度器使用不同多普勒单元可以使用不同采样数据的机制,这是因为多普勒单元是基本搜索单元并且彼此独立。每个多普勒单元使用的采样数据是该多普勒单元开始搜索时,时间上最近的相干积分长度的数据。根据硬件计算能力,采用并行方式使用多普勒单元,多普勒单元可以在等于相干积分长度的时间内完成搜索,并在此时间内,每个多普勒单元逐个完成对应的搜索。用以下示例来说明微调度器的工作方式,包括:参照cu的定义,gpsl1c/a信号的一个多普勒搜索单元消耗1个cu;bdb1i的一个多普勒单元消耗4个cu。图4为本申请实施例提供微调度的工作示意图。如图4所示,配置gpsl1c/a信号11msaisb长度,相干积分为9ms,并行多普勒单元的个数为22;其中图4所示的双箭头线表示所使用的采样数据范围。虚线表示第一次9ms相干积分;实线表示第二次9ms相干积分;其中,调度的逻辑流程如下:当10ms数据准备就绪时,在11ms时,ae执行计算。由于计算能力是并行22cu/ms。ae搜索前2个多普勒单元,使用的是1-9ms数据,消耗2*9=18个cu。剩下的计算能力可完成第3个多普勒单元的部分相干积分,即4ms相干积分,使用为1-4ms数据。当11ms的样本准备就绪时,由于aisb是循环缓存,在aisb中的索引1对应12ms。ae将首先用5-9ms数据完成剩余的第3个多普勒搜索单元的计算,计算成本为5cu。然后,完成完整的第4个单元花费9cu,以及第5个单元的部分消耗8cu。…在19ms时,ae将完成对第一个9ms相干积分的所有的22个多普勒单元的搜索。在20ms时,ae开始计算第二个9ms相干积分。第一个多普勒单元所使用的数据是10-18ms,和第一个9ms相干积分中使用的1-9ms样本是连续的。这保证了在同一多普勒单元中用于不同9ms相干积分的数据是连续的。当配置两个捕获通道时,假设一个是2ms相干积分,另一个是9ms相干积分,2ms相干积分所配置的多普勒单元个数是4,9ms相干积分所配置的多普勒单元个数是18。图5为本申请提供的不同相干积分长度的微调度方法示意图。图5所示的gpsl1c/a信号11msaisb长度,2ms和9ms相干积分,22并行多普勒单元(双箭头线表示所使用的采样数据范围。虚线表示9ms相干积分;实线表示2ms相干积分)图5所示的调度方法的流程如下:当3ms样本准备就绪时,在4ms时,ae执行计算。ae搜索配置的所有4个2ms相干积分的多普勒单元,使用1-2ms数据,消耗4*2=8cu。完成第1个2ms相干积分。当5ms样本准备好时,在6ms时,ae搜索配置的所有4个2ms相干积分的多普勒单元,使用3-4ms数据,消耗4*2=8个cu。完成第2个2ms相干积分。当7ms样本准备好时,在8ms时,ae搜索配置的所有4个2ms相干积分的多普勒单元,使用5-6ms数据,消耗4*2=8个cu。完成第3个2ms相干积分。当9ms样本准备就绪时,在10ms时,ae搜索配置的所有4个2ms相干积分的多普勒单元,使用7-8ms样本,消耗4*2=8个cu。完成第4个2ms相干积分。当10ms样本准备就绪时,在11ms时,ae首先搜索2个完整的9ms相干积分的多普勒单元,使用1-9ms数据,消耗2*9=18个cu。当11ms样本准备就绪时,在12ms时,ae首先搜索2ms相干积分的前2个多普勒单元,使用9-10ms数据,消耗2*2=4个cu。然后搜索9ms相干积分的第3和第4个多普勒单元,使用2-10ms数据,消耗为2*9=18cu。当12ms样本准备好时,在13ms时,ae首先搜索2ms相干积分的后2个多普勒单元,使用10-11ms数据,花费2*2=4个cu,完成第5个2ms相干积分。然后搜索第5和第6个9ms相干积分的多普勒单元,使用3-11ms数据,消耗2*9=18cu。...在10+(22*9/18=11)=21ms时,ae将完成18个9ms相干积分的多普勒单元搜索,也就是完成了第1个9ms相干积分。并搜索了4个2ms相干积分的多普勒单元。在22ms时,ae将开始计算第2个9ms相干积分的18个多普勒单元。并完成第10个2ms相干积分的4个多普勒单元。如果第一个捕获通道被配置为相干积分数*非相干积分数为2*10,此时完成了第一个捕获通道的捕获任务。其中,当循环缓存aisb没有填满时,并行计算能力22cu/ms可能无法被充分利用,如上例中12ms之前的情况。aisb填满后,22cus/ms计算能力将得到充分利用。图6为本申请提供的不同系统共存微调度方法的示意图。如图6时,gpsl1c/a,glog1和bdsb1i一起捕获时的调度方法,双箭头线表示所使用的采样数据范围,实线表示gps的采样数据范围,由横线组成的虚线表示glo由点组成的虚线表示bds的采样数据范围。图6示意了多个gnss系统,比如。它们分别配置为:·gps:9ms相干积分,非相干积分长度是10,并行多普勒单元是16·glo:2ms相干积分,非相干积分长度是10,并行多普勒单元是8·bds:1ms相干积分,非相干积分长度是30,并行多普勒单元是1如图6所示,其逻辑流程是·在3ms时,当2ms数据准备就绪时,ae会对bds的1个多普勒单元进行搜索。ae完成1个多普勒单元搜索,使用第1ms数据,花费1*4=4个cu。完成第1次bds相干积分。·在4ms时,ae首先使用第2ms数据搜索完成1个bds多普勒单元,花费1*4=4个cu。并完成第2次bds相干积分。然后,ae使用1-2ms数据搜索前4个glo多普勒单元,花费4*0.5=2个cu。·在5ms时,ae首先使用第3ms数据搜索1个bds多普勒单元,花费1*4=4个cu。完成第3次bds相干积分。然后,ae用2-3ms数据搜索后4个glo多普勒单元,花费4*0.5=2个cu。完成第一次glo相干积分。·在6ms时,ae首先使用第4ms数据搜索1个bds多普勒单元,花费1*4=4个cu。完成第4次bds相干积分。然后,ae用3-4ms数据搜索前4个glo多普勒单元,花费4*0.5=2个cu。·在7ms时,ae首先使用第5ms数据搜索1个bds多普勒单元,花费1*4=4个cu。完成第5次bds相干积分。然后,ae用4-5ms数据搜索后4个glo多普勒单元,花费4*0.5=2个cu。完成第2次glo相干积分。·在8ms时,ae首先使用第6ms数据搜索1个整个bds步骤,花费1*4=4个cu,并完成第6次bds相干积分。然后,ae用5-6ms数据搜索前4个glo多普勒单元,花费4*0.5=2个cu。·在9ms时,ae首先使用第7ms数据搜索1个bds多普勒单元,花费1*4=4个cu。完成第7次bds相干积分。然后,ae用6-7ms样本搜索后4个glo多普勒单元,花费4*0.5=2个cu。完成第3次glo非相干积分。·在10ms时,ae首先使用第8ms数据搜索1个bds多普勒单元,花费1*4=4个cu。完成第8次bds相干积分。然后,ae用7-8ms数据搜索前4个glo多普勒单元,花费4*0.5=2个cu。最后,ae用1-9ms数据搜索第一个gps多普勒单元,花费1*9=9个cu,以及使用1-7ms数据部分完成第二个gps多普勒单元,花费1*7=7个cu。·在11ms时,ae首先使用第9ms数据搜索1个bds多普勒单元,花费1*4=4个cu。完成第9次bds相干积分。然后,ae用8-9ms数据搜索后4个glo多普勒单元,花费4*0.5=2个cu。最后,ae用8-9ms样本搜索剩余的第2个gps多普勒单元,花费1*2=2个cu,完整的第3个gps多普勒单元,使用2-10ms数据,花费1*9=9个cu,以及部分第4个gps多普勒单元,使用2-6ms数据,花费为1*5=5cu。·...下面对调度器的实现方法进行说明:在描述了ae调度器的基本原理后,下面对基于硬件资源的约束实现调度的方法进行说明,并提供可参考的伪代码。为了节约硬件缓存大小,所有多普勒单元会共享一个积分结果存储器。在这种情况下,比如配置一个9ms相干积分的多普勒单元的同时,也配置了其他类型的相干积分或者其他系统的多普勒单元,则必须一次完成9ms相干积分计算,避免存储中间结果。否则,需要用额外的存储来保存中间结果来避免其他类型的相干积分或其他系统的积分结果覆盖中间结果,这增加了存储大小。为避免增加存储大小,下面对调度器的具体实现进行说明:宏调度实现对于宏调度器,假设配置了诸如a,b,c和d的4个gnss系统。每个系统的并行多普勒单元个数是s_a,s_b,s_c,s_d;每个系统的相干积分长度为l_a,l_b,l_b,l_d;每个系统的一个多普勒单元的计算消耗是t_a,t_b,t_c和t_d;每个系统的一个多普勒单元所需的积分结果存储器大小为n_a,n_b,n_c和n_d。假设一毫秒内硬件的计算能力是cap,存储器大小是buf。在配置并行步骤编号时,宏调度器需要遵循以下规则:1ms内的总计算消耗不应大于硬件计算能力,即s_a*(t_a/l_a)+s_b*(t_b/l_b)+s_c*(t_c/l_c)+s_d*(t_d/l_d)<=cap。并行的多普勒单元所需的总存储器大小不超过buf,即s_a*n_a+s_b*n_b+s_c*n_c+s_d*n_d<=buf。并行多普勒单元总和不超过max限制,即s_a+s_b+s_c+s_d<=max。微调度实现微调度器是在硬件的工作时间单元(例如每毫秒)中分配计算任务。宏调度器在相干积分时间内配置的并行多普勒单元个数是整数。为了不超过硬件计算能力,这些并行多普勒单元的搜索必须在相干积分时间之间平均完成,这意味着在每毫秒中,要完成的多普勒单元个数是并行多普勒单元个数除以相干积分时间。这个值不一定是整数,表示非完整的一个多普勒单元需要在一毫秒内搜索,也就是,比如9ms的相干积分只能完成部分长度的相干积分计算。在考虑并行多普勒单元个数小于相干积分时间长度时,平均一毫秒计算部分多普勒单元,整数部分的情况可直接叠加在小数情况上。下面会具体分析。为了不增加用于存储相干积分中间结果的存储器,在每毫秒搜索的完整多普勒单元个数。表1至表3给出了以gpsl1c/a信号为例,不同相干积分长度对应的在每毫秒里的多普勒单元调度个数。表1从表1可以看出,对于9ms相干积分,多普勒单元个数是1,调度100000000,意味着在周期性的每9ms内,只在第一毫秒处搜索该多普勒单元。多普勒单元个数周期性的每5ms里每毫秒的调度个数110000211000311100411110511111表2多普勒单元个数周期性的每2ms里每毫秒的调度个数110211表3以gpsl1c/a9ms相干积分的一个多普勒单元为例,此时硬件还有其他系统或其他相干积分类型的计算任何,当根据硬件计算能力只能配置一个并行9ms相干积分的多普勒单元时,意味着硬件剩余的计算能力只能在每一毫秒内计算1/9的9ms相干积分。但是需要完成整个多普勒单元,则将消耗一毫秒加上额外的延迟时间,延迟时间即8/9的9ms相干积分的计算所消耗的时间。这种情况下,为避免其他gnss系统的aisb溢出,在设计其他系统aisb长度时,需要考虑上产生的额外延迟时间。该多普勒单元只在每9ms里的第一毫秒搜索,在第一毫秒之后,在接下来的8ms内不存在任何计算任务。因此节省了总共8*1/9个9ms相干积分的计算时间,这恰好补偿了之前在第一毫秒产生的延迟时间。因此,在每个相干积分时间周期结束时,总的延迟时间归零。动态调度实现动态调度是指当并行多普勒单元个数发生变化时的调度策略。多普勒单元个数变化发生在以下场景,比如,有新的捕获通道配入导致并行多普勒单元个数增多,或者有些之前配入的捕获通道完成捕获任务导师并行多普勒单元个数减少。可以使用以下伪代码描述动态调度的实现。在初始化时,配置了多个相干积分长度是l的捕获通道,所有捕获通道的并行多普勒单元个数之和是n。每个捕获通道的非相干积分长度可不一样。定义一个长度为l的数组,显示在每毫秒中分配的多普勒单元个数。在某些具有短的相干积分长度的捕获通道完成捕获任务后,会从数组中释放它们多对应的多普勒单元。当配置了新的捕获通道时,会分配新的捕获通道里的多普勒单元在哪一毫秒计算,同时也要保证原有的多普勒单元还是保持在原来分配的毫秒里计算,这样保证每个多普勒单元里所使用的数据都是连续的。例如,开始调度是schedulearray=[332222222]。当有一个捕获通道完成捕获任务后,属于该通道的多普勒搜索单元会从这个数组中释放。假设有两个多普勒单元,分别分配在第3和第4毫秒。释放后,数组变成[331122222]。当有新的捕获通道被配入时,变量stepnum等于原有的并行多普勒单元个数加上新通道里的多普勒单元个数。根据上面初始调度的逻辑,生成一个新的调度数组newschedulearray[cohlen]。图7为本申请提供的动态调度的方法的示意图。图7所示的逻辑是为了保证原有的多普勒单元还在原来的调度位置上,并最终生成对于新加入多普勒单元的调度,即schedulearrayfornewstep[cohlen]。由上可以看出,在宏观和微观角度内提出了一种高效灵活的捕获引擎调度器,它有效地利用了硬件计算能力并减小了存储大小。该调度器设计适应于不同的相干积分长度和gnss信号类型,并有效地支持动态配置。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1