CN101586961B - 用于组合导航处理器的多任务调度方法及组合导航处理器 - Google Patents

用于组合导航处理器的多任务调度方法及组合导航处理器 Download PDF

Info

Publication number
CN101586961B
CN101586961B CN2009100438547A CN200910043854A CN101586961B CN 101586961 B CN101586961 B CN 101586961B CN 2009100438547 A CN2009100438547 A CN 2009100438547A CN 200910043854 A CN200910043854 A CN 200910043854A CN 101586961 B CN101586961 B CN 101586961B
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.)
Active
Application number
CN2009100438547A
Other languages
English (en)
Other versions
CN101586961A (zh
Inventor
罗兵
胡小平
吴美平
李涛
唐康华
逯亮清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN2009100438547A priority Critical patent/CN101586961B/zh
Publication of CN101586961A publication Critical patent/CN101586961A/zh
Application granted granted Critical
Publication of CN101586961B publication Critical patent/CN101586961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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产生的周期为100毫秒。 
(五)卫星导航串行数据是通过主控制单元的串行口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个中断的优先级从高到低安排为: 
Figure G2009100438547D00091
实施实例:如图9所示,本发明基于MPC8247通用商用处理器给出了一个实现实例。主控制单元只详细给出了与本发明密切相关的部分的连接关系,其它部分简单的以总线形式进行了描述。中断脉冲合成器给出了实现逻辑图。同步脉冲合成器给出了原理示意图。同步脉冲合成器基于FPGA逻辑实现。 
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。 

Claims (2)

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用于与外部设备相连完成输出并产生发送中断给中断管理器;所述通用输入输出接口单元包括GPIO0、GPIO1以及GPIO2,所述GPIO0用于在连续两次惯性测量单元串行数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO1用于在连续10次双子样捷联惯导计算任务完成后产生一个正脉冲输出至中断信号合成器,所述GPIO2用于在卫星导航数据接收任务完成后产生一个正脉冲输出至中断信号合成器,所述中断信号合成器对GPIO0直通输出至中断管理器,中断信号合成器对GPIO1或GPIO2进行“逻辑或”,产生一个组合导航中断信号用于触发一次Kalman滤波计算。
CN2009100438547A 2009-07-06 2009-07-06 用于组合导航处理器的多任务调度方法及组合导航处理器 Active CN101586961B (zh)

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 CN101586961A (zh) 2009-11-25
CN101586961B true CN101586961B (zh) 2011-04-06

Family

ID=41371307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100438547A Active CN101586961B (zh) 2009-07-06 2009-07-06 用于组合导航处理器的多任务调度方法及组合导航处理器

Country Status (1)

Country Link
CN (1) CN101586961B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103630913B (zh) * 2012-08-28 2015-10-07 安凯(广州)微电子技术有限公司 一种卡尔曼滤波调度方法及装置
CN103163508B (zh) * 2013-02-01 2014-12-24 中国人民解放军国防科学技术大学 一种用于水下ins和dvl组合导航系统的dvl参数标定方法
CN104406605B (zh) * 2014-10-13 2017-06-06 中国电子科技集团公司第十研究所 机载多导航源综合导航仿真系统
GB2569844B (en) 2017-10-20 2021-01-06 Graphcore Ltd Sending data off-chip
GB2569271B (en) 2017-10-20 2020-05-13 Graphcore Ltd Synchronization with a host processor
GB2569775B (en) 2017-10-20 2020-02-26 Graphcore Ltd Synchronization in a multi-tile, multi-chip processing arrangement
GB2575294B8 (en) 2018-07-04 2022-07-20 Graphcore Ltd Host Proxy On Gateway
GB2579412B (en) 2018-11-30 2020-12-23 Graphcore Ltd Gateway pull model
CN110427823B (zh) * 2019-06-28 2021-12-21 北京大学 基于视频帧与脉冲阵列信号的联合目标检测方法与装置
CN112114945A (zh) * 2020-09-07 2020-12-22 南京航空航天大学 基于多任务实时操作系统的惯性/卫星组合导航任务调度方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105401A (zh) * 2007-08-06 2008-01-16 北京航空航天大学 一种sdins/gps组合导航系统时间同步及同步数据提取方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105401A (zh) * 2007-08-06 2008-01-16 北京航空航天大学 一种sdins/gps组合导航系统时间同步及同步数据提取方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
冯 正 ,韩 焱 ,王黎明.多线程串口通信技术在GPS 导航中的应用.《现代电子技术》.2009,(第5期),28-33.
冯 正,韩 焱,王黎明.多线程串口通信技术在GPS 导航中的应用.《现代电子技术》.2009,(第5期),28-33. *
孙 松.嵌入式系统中GPIO 模拟SPI 总线主/ 从双向.《自动化技术与应用》.2007,第26卷(第10期),38-42. *

Also Published As

Publication number Publication date
CN101586961A (zh) 2009-11-25

Similar Documents

Publication Publication Date Title
CN101586961B (zh) 用于组合导航处理器的多任务调度方法及组合导航处理器
US8543263B2 (en) Distributed avionics
CN103116175B (zh) 基于dsp和fpga的嵌入式导航信息处理器
WO2007147530A1 (en) System and method for executing distributed software
CN103257670B (zh) 嵌入式系统及其计时方法
Pop et al. Analysis and optimization of distributed real-time embedded systems
CN101067656A (zh) 一种位置姿态系统的硬件时间同步方法
CN104461972B (zh) 一种数据信号采样的方法和设备
JP2002517035A (ja) リアルタイムスケジューリングロジックおよび時間確定的アーキテクチャを使用する分散コンピューティング環境
CN101178664A (zh) 实时操作系统中的任务调度方法及系统
CN102070051B (zh) 电梯运行性能实时监测系统
CN101222287B (zh) 同步总线系统的至少一个用户的装置以及总线系统
CN102937819B (zh) 一种星载计算机时间标签输出系统
EP2278454B1 (en) Method for correct-by-construction development of real-time-systems
CN103532786A (zh) 一种服务器同步检测器及同步检测方法和系统
CN112114945A (zh) 基于多任务实时操作系统的惯性/卫星组合导航任务调度方法
Kyriakakis et al. Synchronizing real-time tasks in time-triggered networks
CN102629217B (zh) 多进程多操作系统网络设备及其控制方法
CN109634729A (zh) 一种捷联惯导设备多核dsp并行解算方法
CN102770818B (zh) 用于存档网络数据的方法、系统和设备
CN106598708A (zh) 一种时间触发的嵌入式任务通讯装置与方法
Lall et al. Logical Synchrony and the bittide Mechanism
CN1615602B (zh) 帧边界辨别器
CN102412828A (zh) 基于cpld的光电码盘正交脉冲任意小数分频系统及方法
Delvai et al. Intelligent UART module for real-time applications

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