CN101586961A - 用于组合导航处理器的多任务调度方法及组合导航处理器 - Google Patents
用于组合导航处理器的多任务调度方法及组合导航处理器 Download PDFInfo
- Publication number
- CN101586961A CN101586961A CNA2009100438547A CN200910043854A CN101586961A CN 101586961 A CN101586961 A CN 101586961A CN A2009100438547 A CNA2009100438547 A CN A2009100438547A CN 200910043854 A CN200910043854 A CN 200910043854A CN 101586961 A CN101586961 A CN 101586961A
- Authority
- CN
- China
- Prior art keywords
- navigation
- task
- gpio
- pulse
- look
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000005259 measurement Methods 0.000 claims abstract description 30
- 238000001914 filtration Methods 0.000 claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 35
- 239000013078 crystal Substances 0.000 claims description 8
- 238000005538 encapsulation Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000009977 dual effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000007306 turnover Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007500 overflow downdraw method Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
一种用于组合导航处理器的多任务调度方法,其步骤为:(1)设置同步脉冲合成器和中断信号合成器;(2)执行惯性测量单元串行数据接收任务;(3)执行卫星导航数据接收任务;(4)执行双子样捷联惯导计算任务;(5)执行基于卡尔曼滤波方法的组合导航计算任务。该用于组合导航处理器,它包括主控制单元,主控制单元中设有中断管理器、中断信号合成器、同步脉冲合成器、通用输入输出接口单元、串行口0、串行口1以及串行口2。本发明具有结构简单紧凑、原理简单、能够大大提高组合导航处理器的利用率、提高整体效率等优点。
Description
技术领域
本发明主要涉及到惯性导航系统领域,特指一种用于组合导航处理器的多任务调度方法及组合导航处理器。
背景技术
惯性导航系统由于能够提供高速率、高精度的全导航信息(包括位置、速度、姿态、角速率、加速度等),因此组合导航常以惯性导航系统为主导航设备,但单纯的惯性导航系统,其误差随时间积累。以惯性导航系统为主的组合导航系统采用各种信息融合方法,组合其他多种导航设备,以消减各种独立导航设备的不足,抑制惯性导航系统的误差,进一步提高系统的综合性能。工程中使用的主要信息融合方法是Kalman滤波方法。
以某需求为应用背景的典型惯性/卫星组合导航系统为例,如图1,其任务主要有以下5个,①IMU(Inertial Measurement Unit,惯性测量单元)串行数据接收(每5毫秒一帧数据,帧长度为N个字节,波特率为230400bps);②卫星导航数据接收(每100毫秒一帧数据,帧长度为M个字节);③捷联惯导算法根据接收到的一帧或多帧IMU数据进行计算,得到并输出惯性导航结果(采用双子样算法,则每10毫秒进行一次计算)。④捷联惯导计算完成后将计算结果通过串行口输出;⑤Kalman滤波算法根据接收到的卫星导航数据和惯性导航结果进行计算,得到惯性导航结果的误差,并根据该误差,对惯性导航结果进行误差校正(每完成10次双子样捷联惯导计算触发一次Kalman滤波计算)。
目前,同类产品中一般采用单一的功能较为强大的通用型嵌入式处理器来完成上述功能要求。在通用型嵌入式处理器平台上开发上述组合导航软件主要有基于单任务操作系统和基于实时多任务操作系统两种途径。
基于实时多任务操作系统能够很好地解决上述问题,但是需要付费(比如VXWORKS操作系统)或者基于开放源代码的操作系统进行裁剪BSP(板级支持包),开发过程费时。即便如此,操作系统在后台进行任务调度,也需要花费一定的时间开销。
基于单任务的操作系统(比如DOS操作系统)要实现上述诸多任务的调度往往就显得力不从心。由于处理器需要完成的任务较多,导致了处理器任务调度过于繁琐,时序控制复杂。
所以有必要针对组合导航开发一种专用的处理器体系,其目标是在单一处理器上,基于单任务操作系统,完成上述诸多任务的调度。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种结构简单紧凑、原理简单、能够大大提高组合导航处理器的利用率、提高整体效率的用于组合导航处理器的多任务调度方法及组合导航处理器。
为解决上述技术问题,本发明采用以下技术方案。
一种用于组合导航处理器的多任务调度方法,其特征在于步骤为:
(1)、设置同步脉冲合成器和中断信号合成器:同步脉冲合成器根据1PPS脉冲信号,利用自身本地晶振合成200Hz的触发脉冲信号;中断信号合成器根据组合导航处理器中输出的脉冲信息,生成相应的中断脉冲信号,触发组合导航处理器使其进入相应的中断服务程序;
(2)、执行惯性测量单元串行数据接收任务:依据同步脉冲合成器合成的脉冲信号,每个脉冲信号触发一次惯性测量单元进行数据采集,惯性测量单元每次将采集到的数据封装成一个数据包即数据帧通过串行口发送到组合导航处理器,组合导航处理器每收到一个来自惯性测量单元的串行数据即产生一个接收中断给中断信号合成器,中断信号合成器产生一个让中断管理器识别的中断进程,令组合导航处理器进入一个中断进程,该进程为执行惯性测量单元串行数据接收任务的进程;
(3)、执行卫星导航数据接收任务:卫星接收机的导航数据通过串行口发送给组合导航处理器,卫星导航数据接收任务被来自卫星接收机的串行数据触发,当卫星导航数据接收任务完成后组合导航处理器通过设置的GPIO2产生一个正脉冲,表示已经收到了一帧完整的卫星导航串行数据,产生了上述脉冲后将帧计数器重置为0,并且设置相应的信号灯标志2;
(4)、执行双子样捷联惯导计算任务:当连续两次惯性测量单元串行数据接收任务完成后组合导航处理器通过设置的GPIO0产生一个正脉冲,该正脉冲用于触发双子样捷联惯导计算任务,并且设置相应的信号灯标志1,产生了上述脉冲后将帧计数器重置为0;每次双子样捷联惯导计算任务完成后触发一次计算结果串行口输出任务,其周期与双子样捷联惯导计算任务的周期相同;
(5)、执行基于卡尔曼滤波方法的组合导航计算任务:当连续10次双子样捷联惯导计算任务完成后组合导航处理器通过设置的GPIO1产生一个正脉冲;当卫星导航数据接收任务完成后组合导航处理器通过设置的GPIO2产生一个正脉冲;这两个正脉冲通过中断信号合成器对GPIO1或GPIO2进行“逻辑或”,产生一个让中断管理器识别的中断进程,令组合导航处理器进入一个中断进程,该进程用于触发一次卡尔曼滤波计算任务。
一种组合导航处理器,它包括主控制单元,其特征在于:所述主控制单元中设有中断管理器、中断信号合成器、同步脉冲合成器、通用输入输出接口单元、串行口0、串行口1以及串行口2,所述同步脉冲合成器用于根据1PPS脉冲结合自身本地晶振合成200Hz的脉冲信号,中断信号合成器根据通用输入输出接口单元中输出的脉冲信息生成相应的中断脉冲信号后输出至中断管理器中,触发组合导航处理器使其进入相应的中断服务程序;串行口0用于与惯性测量单元相连接收采集到的数据并产生接收中断信号输送至中断管理器,串行口1用于与卫星接收机相连接收采集到的数据并产生接收中断信号输送至中断管理器,串行口2用于与外部设备相连完成输出并产生发送中断给中断管理器。
作为本发明的进一步改进:
所述通用输入输出接口单元包括GPIO0、GPIO1以及GPIO2,所述GPIO0用于在连续两次惯性测量单元串行数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO1用于在连续10次双子样捷联惯导计算任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO2用于在卫星导航数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述中断信号合成器对GPIO0直通输出至中断管理器,中断信号合成器对GPIO1或GPIO2进行“逻辑或”,产生一个组合导航中断信号用于触发一次Kalman滤波计算。
与现有技术相比,本发明的优点就在于:
1)本发明的好处在于提高对处理器的利用率。现有需要基于高主频处理器才能够完成的组合导航功能,只需要一个相对低主频的处理器就能够完成。
2)能够在单任务操作系统中实现多个任务的调度,而不需要多任务操作系统的支持。能够实现这种调度的多个任务必须具有顺序触发的关系,而一个典型的组合导航所包含的上述5个任务只好具有这种关系。
附图说明
图1是现有技术中典型惯性/卫星组合导航系统程序多任务示意图;
图2是本发明的框架结构示意图;
图3是1PPS脉冲的示意图;
图4是合成的200Hz同步脉冲效果图;
图5是现有技术中调度方法在单任务操作系统中应用的示意图;
图6是应用现有技术中调度方法后的效果图;
图7是本发明调度方法在单任务操作系统中应用的示意图;
图8是应用本发明调度方法后的效果图;
图9是本发明组合导航处理器在单任务操作系统中应用实例的示意图。
具体实施方式
以下将结合具体实施例和说明书附图对本发明做进一步详细说明。
如图7所示,本发明一种用于组合导航处理器的多任务调度方法,其步骤为:
(1)、设置同步脉冲合成器和中断信号合成器:同步脉冲合成器根据1PPS脉冲信号,利用自身本地晶振合成200Hz的触发脉冲信号;中断信号合成器根据组合导航处理器中输出的脉冲信息,生成相应的中断脉冲信号,触发组合导航处理器使其进入相应的中断服务程序;
(2)、执行惯性测量单元串行数据接收任务:依据同步脉冲合成器合成的脉冲信号,每个脉冲信号触发一次惯性测量单元进行数据采集,惯性测量单元每次将采集到的数据封装成一个数据包即数据帧通过串行口发送到组合导航处理器,组合导航处理器每收到一个来自惯性测量单元的串行数据即产生一个接收中断给中断信号合成器,中断信号合成器产生一个让中断管理器识别的中断进程,令组合导航处理器进入一个中断进程,该进程为执行惯性测量单元串行数据接收任务的进程;这样IMU串行数据接收任务被来自IMU的串行数据触发。假设组合导航处理器的串行口在每收到一个字节就触发一次中断,其触发周期约为50μs(≈10bit×1s/230400bps。其中10包含了1bit起始位,8bit数据位,1bit停止位)。由于一个完整的数据帧有N个字节,因此为了接收一个完整的数据帧需要进入中断N次。接收一个完整的数据帧的周期为5ms。
(3)、执行卫星导航数据接收任务:卫星接收机的导航数据通过串行口发送给组合导航处理器,卫星导航数据接收任务被来自卫星接收机的串行数据触发,当卫星导航数据接收任务完成后组合导航处理器通过设置的GPIO2产生一个正脉冲,表示已经收到了一帧完整的卫星导航串行数据,产生了上述脉冲后将帧计数器重置为0,并且设置相应的信号灯标志2。由此可见卫星接收机的导航数据(每100毫秒一帧数据,帧长度为M个字节)也是通过串行口发送给组合导航处理器,这样卫星导航数据接收任务②被来自卫星接收机的串行数据触发。基于前面同样的假设,为了接收一个完整的数据帧需要进入中断M次。接收一个完整的数据帧的周期为100ms。
(4)、执行双子样捷联惯导计算任务:当连续两次惯性测量单元串行数据接收任务完成后组合导航处理器通过设置的GPIO0产生一个正脉冲,该正脉冲用于触发双子样捷联惯导计算任务,并且设置相应的信号灯标志1,产生了上述脉冲后将帧计数器重置为0;每次双子样捷联惯导计算任务完成后触发一次计算结果串行口输出任务,其周期与双子样捷联惯导计算任务的周期相同;由此可见,一次双子样捷联惯导计算任务的触发周期为10ms。假设一个结果数据帧包含了P个字节,发送缓冲区每发送一个字节产生一次发送中断用于传送下一个字节,则将进入P次串行口发送中断进程。
(5)、执行基于卡尔曼(Kalman)滤波方法的组合导航计算任务:当连续10次双子样捷联惯导计算任务完成后组合导航处理器通过设置的GPIO1产生一个正脉冲;当卫星导航数据接收任务完成后组合导航处理器通过设置的GPIO2产生一个正脉冲;这两个正脉冲通过中断信号合成器对GPIO1或GPIO2进行“逻辑或”,产生一个让中断管理器识别的中断进程,令组合导航处理器进入一个中断进程,该进程用于触发一次卡尔曼滤波计算任务。由于基于Kalman滤波方法的组合导航计算任务需要两种数据(双子样捷联惯导计算任务的结果,卫星接收机的导航数据)作为计算输入,正好前面的卫星导航数据接收任务能够同步提供此数据,且周期相同。因此基于Kalman滤波方法的组合导航计算任务由“每连续10次双子样捷联惯导计算任务”或“1次卫星导航数据接收任务”完成这个条件来触发。
本发明是一种基于硬件实现组合导航程序多任务调度的方法,即基于外部中断的调度方法。其原理为:外部中断信号是内部的某一个任务(任务A)在结束前通过输出端口产生的一个脉冲信号;产生的脉冲信号通过外部非屏蔽中断输入口触发一个硬件中断。需要由任务A触发才执行的任务B被安排在此中断进程中。这样就实现了任务A通过外部硬件中断触发任务B的效果。按照信息流触发各个中断任务需要每个中断任务输出用于触发下级中断任务的脉冲。基于此原理就形成了各个任务间的调度机制。中断信号合成器就是将各个任务结束前输出的标志本任务结束的脉冲经过一定的逻辑又送回到通用处理器的中断管理器,从而实现环回(Loop back)触发。
图5表示了在单任务操作系统中现有的调度方法如下:IMU串行数据接收任务(任务①)被安排在由串行口接收中断进程中,当进行完连续两帧完整的帧协议解析后,设置一个全局变量形式的标志位(2帧IMU数据准备好标志位),即通知双子样捷联惯导计算任务(任务③)可以开始了。双子样捷联惯导计算任务连续完成10次后,设置一个全局变量形式的标志位(捷联惯导计算完成标志),即通知基于Kalman滤波方法的组合导航计算任务(任务⑤)可以开始了。其特点是双子样捷联惯导计算任务(任务③)以及基于Kalman滤波方法的组合导航计算任务(任务⑤)都被安排在主程序中。图6表示了在单任务操作系统中现有调度方案的效果图。任务①②④的虚线部分表示多次进入中断。任务⑤的前部分虚线表示多次被别的中断进程打断。这种调度会出现一种极端的情况,即在某一个10ms周期(也是双子样捷联惯导计算任务周期)中,同时需要完成一次双子样捷联惯导计算任务(任务③)与基于Kalman滤波方法的组合导航计算任务(任务⑤)。这种极端情况发生的次数为每100ms周期中的第10个10ms周期,而在其它9个10ms周期中并不存在。由于这个问题的存在导致了对CPU利用率的降低。比如在800MHz某型处理器上,一次双子样捷联惯导计算任务需要0.9ms,一次基于Kalman滤波方法的组合导航计算任务需要9ms,那么在最极端的周期中两个任务的时间开销为9.9ms。而其它9个10ms周期中,计算开销仅仅为0.9ms,处理器的利用率仅仅为9%(0.9ms/10ms),这就对处理器造成了极大的浪费。处理器的平均利用率仅仅为9%×0.9+99%×0.1=0.18。也就是说如果存在一种合理的调度方法,则只需要160MHz的处理器即可以完成这两个主要任务。因为在上述800MHz假设情况下,每一个100ms周期中,所有的时间开销为0.9ms×10次+9ms×1次=18ms。如果处理器降低到160MHz的主频,则由18ms变成18ms×(800/160)=90ms<100ms。
为了充分提高处理器的平均利用率,一种合理的调度方法就是各个任务都是被安排在各自的中断进程中,而中断是可以实现嵌套的,这就不存在上述最极端的情况,这也确保了高优先级的任务的按时完成。如图7和图8所示,以160MHz主频的处理器为例,一次双子样捷联惯导计算任务需要0.9ms×(800/160)=4.5ms,满足<10ms周期的要求。对于一个100ms的周期,则剩余100ms-4.5ms/次×10次=55ms。而一次基于Kalman滤波方法的组合导航计算任务需要9ms×(800/160)=45ms<55ms。可以按照本模型运行的前提是双子样捷联惯导计算任务被单独安排在中断进程中,基于Kalman滤波方法的组合导航计算任务则安排在能够被双子样捷联惯导计算任务打断的低级中断或者主程序中。
如图2所示,本发明的一种组合导航处理器,包括主控制单元,该主控制单元为通用嵌入式处理器,它包括外部存储器、晶振以及电源等常规的必要部件,主控制单元中设有支持多于5个中断源的中断管理器、中断信号合成器、同步脉冲合成器、通用输入输出接口单元、串行口0、串行口1以及串行口2,通用输入输出接口单元采用3bit以上的GPIO(GeneralPurpose Input Output),同步脉冲合成器用于根据1PPS脉冲结合自身本地晶振合成200Hz的脉冲信号,中断信号合成器根据通用输入输出接口单元中输出的脉冲信息生成相应的中断脉冲信号后输出至中断管理器中,触发组合导航处理器使其进入相应的中断服务程序;串行口0用于与惯性测量单元相连接收采集到的数据并产生接收中断信号输送至中断管理器,串行口1用于与卫星接收机相连接收采集到的数据并产生接收中断信号输送至中断管理器,串行口2用于与外部设备相连完成输出并产生发送中断给中断管理器。卫星接收机产生的卫星接收机串行数据指卫星接收机导航结果,包括伪距,伪距率,速度,位置,时间等。
通用输入输出接口单元包括GPIO0、GPIO1以及GPIO2,所述GPIO0用于在连续两次惯性测量单元串行数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO1用于在连续10次双子样捷联惯导计算任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO2用于在卫星导航数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述中断信号合成器对GPIO0直通输出至中断管理器,中断信号合成器对GPIO1或GPIO2进行“逻辑或”,产生一个组合导航中断信号用于触发一次Kalman滤波计算。
组合导航全过程的多个任务为了实现事件方式下的同步触发,这就需要本发明中的同步脉冲合成器配合。卫星接收机输出两种信息,分别是导航定位结果数据与秒脉冲(1PPS,onepulse per second)。图3显示了1PPS的脉冲形式。同步脉冲合成器的功能是将1PPS脉冲倍频成200Hz的脉冲,并且生成的200Hz脉冲的上升沿与1PPS脉冲的上升沿基本对齐(在一定误差范围内),效果见图4。卫星接收机的输出数据更新率(每100毫秒一帧数据对应10Hz的更新率)严格与自身产生的1PPS脉冲同步,即每产生一个1PPS脉冲,代表历时1秒,期间卫星接收机的输出数据严格为10帧。同步脉冲合成器生成的200Hz的脉冲用于触发IMU进行采集,IMU根据采集的结果进行处理后通过串行口送出,那么IMU的输出数据更新率也是严格的200帧。同步脉冲合成器使用的效果如下:每一个1PPS周期内,IMU的输出数据为200帧;基于双子样的捷联惯导算法将每两帧IMU数据进行一次惯性导航计算,总共将进行100次计算。正如前述,卫星接收机的输出数据严格为10帧,基于Kalman滤波方法的组合导航计算,其输入是卫星接收机的输出数据与双子样捷联惯导计算任务的结果的次数也为10次。由于组合导航的作用是完成对捷联惯导计算所需要的状态变量进行修正,并不输出最终结果。最终组合导航意义下的结果来自于捷联惯导算法,即更新率与捷联惯导算法的更新率相同,都为100Hz。同步脉冲合成器的作用实际上是实现了两个独立单元(IMU与卫星接收机)的数据采集同步。确切地说,是实现了IMU与卫星接收机的同步。同步脉冲合成器的使用仅仅解决了组合导航处理器进行组合导航计算所必需的外部信息源采集同步问题,如何解决组合导航总任务所包含的诸多任务之间的调度问题,还需要中断信号合成器。
本发明中中断信号合成器的功能是根据主控制单元自身的GPIO输出脉冲信息,基于一定的逻辑,生成相应的中断脉冲信号,用于触发通用处理器,使主控制单元进入相应的中断服务程序。中断是解决多任务在单任务操作系统下的一种调度方法。利用中断信号合成器以及中断调度解决组合导航诸多任务在事件方式下的同步触发原理如下:①IMU串行数据接收任务,②卫星导航数据接收任务,③双子样捷联惯导计算任务,④组合导航数据输出任务,⑤基于Kalman滤波方法的组合导航计算任务等等都在各自的中断进程中实现,且触发顺序按照实现总功能所要求的信息流进行。
结合本发明具体实施例中的结构,对其工作原理做进一步详细说明。
(一)同步脉冲合成器根据1PPS脉冲,利用自身本地晶振(频率在10MHz~100MHz之间),通过一定的逻辑,合成200Hz的脉冲信号。合成的200Hz脉冲信号边沿与1PPS脉冲对齐,且在一个1PPS周期内,刚好产生200个200Hz脉冲。其效果图如图4所示。
(二)合成的200Hz脉冲用于触发IMU惯性测量单元进行惯性数据采集。惯性测量单元实现在200Hz的上升沿对其内部的陀螺以及加速度计传感器的数据进行采集。然后将采集的结果进行打包成为一个数据帧,采用RS232或者RS422进行传送到主控制单元的串行口0。
(三)串行口0在每收到一个字节后产生一个串行口0接收中断,主控制单元的中断管理器在识别到上述中断后,将进入一个中断进程,称之为IMU串行数据接收进程。由于一个完整的IMU串行数据帧长度为N个字节,即进入了N次串行口0接收中断后才能够收到一个完整的IMU串行数据,其周期为5毫秒。设定在第N次串行口0接收中断程序完成帧协议解析后且退出前进行帧计数,那么当收到第二个完整帧后,通过设置GPIO0,使得GPIO0产生一个一定宽度的正脉冲,用于触发双子样的捷联惯导程序。产生了上述脉冲后,将帧计数器重置为0。
(四)双子样的捷联惯导程序被安排在GPIO0产生的中断进程中,其计算周期为10毫秒。在此进程中,由于所需要的输入数据是完整的,因此可以进行一次捷联惯导计算。完成了一次捷联惯导计算后,对捷联惯导计算次数计数。当完成10次捷联惯导计算,通过设置GPIO1,使得GPIO1产生一个一定宽度的正脉冲,用于触发Kalman滤波计算程序;并且设置相应的信号灯标志1。产生了上述脉冲后,将帧计数器重置为0。GPIO1产生的周期为1 00毫秒。
(五)卫星导航串行数据是通过主控制单元的串行口1进行接收的,由于一帧的长度为M个字节,需要经历M次串行口1接收中断后才能够收到一个完整的卫星导航串行数据,其周期为100毫秒。设定在第M次串行口1接收中断程序完成帧协议解析后,通过设置GPIO2,使得GPIO2产生一个一定宽度的正脉冲,表示已经收到了一帧完整的卫星导航串行数据;并且设置相应的信号灯标志2。
(六)中断信号合成器的功能是对GPIO0直通输出,对GPIO1或GPIO2进行“逻辑或”,产生一个组合导航中断信号用于触发一次Kalman滤波计算。此时完成一次Kalman滤波计算所需要的两种数据之一已经准备好。这两种数据是:①捷联惯导计算后将产生载体的姿态信息,位置信息,速度信息等,②卫星接收机的导航数据。进入组合导航中断信号触发的组合导航中断进程后,根据进入的条件如果是信号灯标志1,则进行Kalman滤波的时间更新部分计算;如果是信号灯标志2,则进行Kalman滤波的测量更新部分计算。通过Kalman滤波计算修正后的状态信息将被计算周期为10毫秒的捷联惯导进程利用或者直接用于输出,这取决于用户的算法设计。
(七)整个组合导航的数据输出更新率依然保持在100Hz(对应10毫秒周期),即每次捷联惯导完成后都要进行数据输出。整个组合导航的数据输出通过串行口2完成。第一个输出字节的发送,由步骤(四)一次捷联惯导计算完成后进行。当这个字节发送完成后将产生一个发送完成中断信号,由此中断信号触发任务④,继续发送下一个字节的数据。假设一个完整的输出数据帧为P字节,需要进入P-1次串行口发送中断,因为第一个字节的发送是任务③完成的。
到此为止,5个任务一共需要5个中断。为了保证本发明所期望的结果,这5个中断的优先级从高到低安排为:
实施实例:如图9所示,本发明基于MPC8247通用商用处理器给出了一个实现实例。主控制单元只详细给出了与本发明密切相关的部分的连接关系,其它部分简单的以总线形式进行了描述。中断脉冲合成器给出了实现逻辑图。同步脉冲合成器给出了原理示意图。同步脉冲合成器基于FPGA逻辑实现。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1、一种用于组合导航处理器的多任务调度方法,其特征在于步骤为:
(1)、设置同步脉冲合成器和中断信号合成器:同步脉冲合成器根据1PPS脉冲信号,利用自身本地晶振合成200Hz的触发脉冲信号;中断信号合成器根据组合导航处理器中输出的脉冲信息,生成相应的中断脉冲信号,触发组合导航处理器使其进入相应的中断服务程序;
(2)、执行惯性测量单元串行数据接收任务:依据同步脉冲合成器合成的脉冲信号,每个脉冲信号触发一次惯性测量单元进行数据采集,惯性测量单元每次将采集到的数据封装成一个数据包即数据帧通过串行口发送到组合导航处理器,组合导航处理器每收到一个来自惯性测量单元的串行数据即产生一个接收中断给中断信号合成器,中断信号合成器产生一个让中断管理器识别的中断进程,令组合导航处理器进入一个中断进程,该进程为执行惯性测量单元串行数据接收任务的进程;
(3)、执行卫星导航数据接收任务:卫星接收机的导航数据通过串行口发送给组合导航处理器,卫星导航数据接收任务被来自卫星接收机的串行数据触发,当卫星导航数据接收任务完成后组合导航处理器通过设置的GPIO2产生一个正脉冲,表示已经收到了一帧完整的卫星导航串行数据,产生了上述脉冲后将帧计数器重置为0,并且设置相应的信号灯标志2;
(4)、执行双子样捷联惯导计算任务:当连续两次惯性测量单元串行数据接收任务完成后组合导航处理器通过设置的GPIO0产生一个正脉冲,该正脉冲用于触发双子样捷联惯导计算任务,并且设置相应的信号灯标志1,产生了上述脉冲后将帧计数器重置为0;每次双子样捷联惯导计算任务完成后触发一次计算结果串行口输出任务,其周期与双子样捷联惯导计算任务的周期相同;
(5)、执行基于卡尔曼滤波方法的组合导航计算任务:当连续10次双子样捷联惯导计算任务完成后组合导航处理器通过设置的GPIO1产生一个正脉冲;当卫星导航数据接收任务完成后组合导航处理器通过设置的GPIO2产生一个正脉冲;这两个正脉冲通过中断信号合成器对GPIO1或GPIO2进行“逻辑或”,产生一个让中断管理器识别的中断进程,令组合导航处理器进入一个中断进程,该进程用于触发一次卡尔曼滤波计算任务。
2、一种组合导航处理器,它包括主控制单元,其特征在于:所述主控制单元中设有中断管理器、中断信号合成器、同步脉冲合成器、通用输入输出接口单元、串行口0、串行口1以及串行口2,所述同步脉冲合成器用于根据1PPS脉冲结合自身本地晶振合成200Hz的脉冲信号,中断信号合成器根据通用输入输出接口单元中输出的脉冲信息生成相应的中断脉冲信号后输出至中断管理器中,触发组合导航处理器使其进入相应的中断服务程序;串行口0用于与惯性测量单元相连接收采集到的数据并产生接收中断信号输送至中断管理器,串行口1用于与卫星接收机相连接收采集到的数据并产生接收中断信号输送至中断管理器,串行口2用于与外部设备相连完成输出并产生发送中断给中断管理器。
3、根据权利要求2所述的组合导航处理器,其特征在于:所述通用输入输出接口单元包括GPIO0、GPIO1以及GPIO2,所述GPIO0用于在连续两次惯性测量单元串行数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO1用于在连续10次双子样捷联惯导计算任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO2用于在卫星导航数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述中断信号合成器对GPIO0直通输出至中断管理器,中断信号合成器对GPIO1或GPIO2进行“逻辑或”,产生一个组合导航中断信号用于触发一次Kalman滤波计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100438547A CN101586961B (zh) | 2009-07-06 | 2009-07-06 | 用于组合导航处理器的多任务调度方法及组合导航处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100438547A CN101586961B (zh) | 2009-07-06 | 2009-07-06 | 用于组合导航处理器的多任务调度方法及组合导航处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101586961A true CN101586961A (zh) | 2009-11-25 |
CN101586961B CN101586961B (zh) | 2011-04-06 |
Family
ID=41371307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100438547A Expired - Fee Related CN101586961B (zh) | 2009-07-06 | 2009-07-06 | 用于组合导航处理器的多任务调度方法及组合导航处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101586961B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103163508A (zh) * | 2013-02-01 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 一种用于水下ins和dvl组合导航系统的dvl参数标定方法 |
CN103630913A (zh) * | 2012-08-28 | 2014-03-12 | 安凯(广州)微电子技术有限公司 | 一种卡尔曼滤波调度方法及装置 |
CN104406605A (zh) * | 2014-10-13 | 2015-03-11 | 中国电子科技集团公司第十研究所 | 机载多导航源综合导航仿真系统 |
CN110427823A (zh) * | 2019-06-28 | 2019-11-08 | 北京大学 | 基于视频帧与脉冲阵列信号的联合目标检测方法与装置 |
US10558595B2 (en) | 2017-10-20 | 2020-02-11 | Graphcore Limited | Sending data off-chip |
US10579585B2 (en) | 2017-10-20 | 2020-03-03 | Graphcore Limited | Synchronization in a multi-tile, multi-chip processing arrangement |
TWI687865B (zh) * | 2017-10-20 | 2020-03-11 | 英商葛夫科有限公司 | 用於同步之處理系統與方法及相關電腦可讀儲存器 |
CN112114945A (zh) * | 2020-09-07 | 2020-12-22 | 南京航空航天大学 | 基于多任务实时操作系统的惯性/卫星组合导航任务调度方法 |
US10949266B2 (en) | 2018-07-04 | 2021-03-16 | Graphcore Limited | Synchronization and exchange of data between processors |
US11507416B2 (en) | 2018-11-30 | 2022-11-22 | Graphcore Limited | Gateway pull model |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100498232C (zh) * | 2007-08-06 | 2009-06-10 | 北京航空航天大学 | 一种sdins/gps组合导航系统时间同步及同步数据提取方法 |
-
2009
- 2009-07-06 CN CN2009100438547A patent/CN101586961B/zh not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103630913A (zh) * | 2012-08-28 | 2014-03-12 | 安凯(广州)微电子技术有限公司 | 一种卡尔曼滤波调度方法及装置 |
CN103163508A (zh) * | 2013-02-01 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 一种用于水下ins和dvl组合导航系统的dvl参数标定方法 |
CN104406605A (zh) * | 2014-10-13 | 2015-03-11 | 中国电子科技集团公司第十研究所 | 机载多导航源综合导航仿真系统 |
CN104406605B (zh) * | 2014-10-13 | 2017-06-06 | 中国电子科技集团公司第十研究所 | 机载多导航源综合导航仿真系统 |
US11106510B2 (en) | 2017-10-20 | 2021-08-31 | Graphcore Limited | Synchronization with a host processor |
US10558595B2 (en) | 2017-10-20 | 2020-02-11 | Graphcore Limited | Sending data off-chip |
US10579585B2 (en) | 2017-10-20 | 2020-03-03 | Graphcore Limited | Synchronization in a multi-tile, multi-chip processing arrangement |
TWI687865B (zh) * | 2017-10-20 | 2020-03-11 | 英商葛夫科有限公司 | 用於同步之處理系統與方法及相關電腦可讀儲存器 |
US10817444B2 (en) | 2017-10-20 | 2020-10-27 | Graphcore Limited | Sending data from an arrangement of processor modules |
US11048563B2 (en) | 2017-10-20 | 2021-06-29 | Graphcore Limited | Synchronization with a host processor |
US11023413B2 (en) | 2017-10-20 | 2021-06-01 | Graphcore Limited | Synchronization in a multi-tile, multi-chip processing arrangement |
US10970131B2 (en) | 2018-07-04 | 2021-04-06 | Graphcore Limited | Host proxy on gateway |
US10963315B2 (en) | 2018-07-04 | 2021-03-30 | Graphcore Limited | Synchronization and exchange of data between processors |
US10949266B2 (en) | 2018-07-04 | 2021-03-16 | Graphcore Limited | Synchronization and exchange of data between processors |
US11507416B2 (en) | 2018-11-30 | 2022-11-22 | Graphcore Limited | Gateway pull model |
CN110427823A (zh) * | 2019-06-28 | 2019-11-08 | 北京大学 | 基于视频帧与脉冲阵列信号的联合目标检测方法与装置 |
CN112114945A (zh) * | 2020-09-07 | 2020-12-22 | 南京航空航天大学 | 基于多任务实时操作系统的惯性/卫星组合导航任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101586961B (zh) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101586961B (zh) | 用于组合导航处理器的多任务调度方法及组合导航处理器 | |
US8543263B2 (en) | Distributed avionics | |
Pop et al. | Timing analysis of the FlexRay communication protocol | |
CN103116175B (zh) | 基于dsp和fpga的嵌入式导航信息处理器 | |
US7848359B2 (en) | System and method for executing distributed software | |
US9172589B2 (en) | Method for configuring a distributed avionics control system | |
CN100442016C (zh) | 一种基于双dsp的集成化组合导航计算机 | |
CN104461972B (zh) | 一种数据信号采样的方法和设备 | |
CN102315929B (zh) | 一种地面仿真系统的校时同步控制器 | |
JP2002517035A (ja) | リアルタイムスケジューリングロジックおよび時間確定的アーキテクチャを使用する分散コンピューティング環境 | |
CN103257670A (zh) | 嵌入式系统及其计时方法 | |
CN101222287B (zh) | 同步总线系统的至少一个用户的装置以及总线系统 | |
CN102937819B (zh) | 一种星载计算机时间标签输出系统 | |
CN102662770B (zh) | 分布式虚拟试验系统中的节点同步方法 | |
EP2278454B1 (en) | Method for correct-by-construction development of real-time-systems | |
CN112114945A (zh) | 基于多任务实时操作系统的惯性/卫星组合导航任务调度方法 | |
Kyriakakis et al. | Synchronizing real-time tasks in time-triggered networks | |
CN109697058B (zh) | 一种适用于嵌入式系统的网络建模方法、装置及存储介质 | |
CN116819992A (zh) | 基于STM32下EtherCAT的嵌入式数控系统 | |
CN109634729A (zh) | 一种捷联惯导设备多核dsp并行解算方法 | |
Breaban et al. | Time synchronization for an asynchronous embedded CAN network on a multi-processor system on chip | |
CN106776462B (zh) | 一种具有多处理器的计算机及其操作方法 | |
CN1615602B (zh) | 帧边界辨别器 | |
Kyriakakis et al. | Synchronizing real-time tasks in time-aware networks: Work-in-progress | |
Yokoyama et al. | A real-time operating system with GNSS-based tick synchronization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110406 |