專利名稱:用于組合導(dǎo)航處理器的多任務(wù)調(diào)度方法及組合導(dǎo)航處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及到慣性導(dǎo)航系統(tǒng)領(lǐng)域,特指一種用于組合導(dǎo)航處理器的多任務(wù)調(diào)度方法 及組合導(dǎo)航處理器。
背景技術(shù):
慣性導(dǎo)航系統(tǒng)由于能夠提供高速率、高精度的全導(dǎo)航信息(包括位置、速度、姿態(tài)、角 速率、加速度等),因此組合導(dǎo)航常以慣性導(dǎo)航系統(tǒng)為主導(dǎo)航設(shè)備,但單純的慣性導(dǎo)航系統(tǒng), 其誤差隨時間積累。以慣性導(dǎo)航系統(tǒng)為主的組合導(dǎo)航系統(tǒng)采用各種信息融合方法,組合其他 多種導(dǎo)航設(shè)各,以消減各種獨(dú)立導(dǎo)航設(shè)備的不足,抑制慣性導(dǎo)航系統(tǒng)的誤差,進(jìn)一歩提高系 統(tǒng)的綜合性能。工程中使用的主要信息融合方法是Kalman濾波方法。
以某需求為應(yīng)用背景的典型慣性/衛(wèi)星組合導(dǎo)航系統(tǒng)為例,如圖1,其任務(wù)主要有以下5 個,①IMU (Inertial Measurement Unit,慣性測量單元)串行數(shù)據(jù)接收(每5毫秒一幀數(shù)據(jù), 幀長度為N個字節(jié),波特率為230400bps);②衛(wèi)星導(dǎo)航數(shù)據(jù)接收(每100毫秒一幀數(shù)據(jù),幀 長度為M個字節(jié));③捷聯(lián)慣導(dǎo)算法根據(jù)接收到的一幀或多幀IMU數(shù)據(jù)進(jìn)行計算,得到并輸 出慣性導(dǎo)航結(jié)果(采用雙子樣算法,則每10毫秒進(jìn)行一次計算)。④捷聯(lián)慣導(dǎo)計算完成后將 計算結(jié)果通過串行口輸出;⑤Kalman濾波算法根據(jù)接收到的衛(wèi)星導(dǎo)f[數(shù)據(jù)和慣性導(dǎo)航結(jié)果進(jìn) 行計算,得到慣性導(dǎo)航結(jié)果的誤差,并根據(jù)該誤差,對慣性導(dǎo)航結(jié)果進(jìn)行誤差校正(每完成 10次雙子樣捷聯(lián)慣導(dǎo)計算觸發(fā)一次Kalman濾波計算)。
目前,同類產(chǎn)品中一般采用單一的功能較為強(qiáng)大的通用型嵌入式處理器來完成上述功能 要求。在通用型嵌入式處理器平臺上開發(fā)上述組合導(dǎo)航軟件主要有基于單任務(wù)操作系統(tǒng)和基 于實(shí)時多任務(wù)操作系統(tǒng)兩種途徑。
基于實(shí)時多任務(wù)操作系統(tǒng)能夠很好地解決上述問題,但是需要付費(fèi)(比如VXWORKS操 作系統(tǒng))或者基于開放源代碼的操作系統(tǒng)進(jìn)行裁剪BSP (板級支持包),開發(fā)過程費(fèi)時。即便 .如此,操作系統(tǒng)在后臺進(jìn)行任務(wù)調(diào)度,也需要花費(fèi)一定的時間開銷。
基于單任務(wù)的操作系統(tǒng)(比如DOS操作系統(tǒng))要實(shí)現(xiàn)上述諸多任務(wù)的調(diào)度往往就顯得力 不從心。由于處理器需要完成的任務(wù)較多,導(dǎo)致了處理器任務(wù)調(diào)度過于繁瑣,時序控制復(fù)雜。
所以有必要針對組合導(dǎo)航開發(fā)一種專用的處理器體系,其目標(biāo)是在單一處理器上,基于 單任務(wù)操作系統(tǒng),完成上述諸多任務(wù)的調(diào)度
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就在于針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種結(jié)構(gòu) 簡單緊湊、原理簡單、能夠大大提高組合導(dǎo)航處理器的利用率、提高整體效率的用于組合導(dǎo) 航處理器的多任務(wù)調(diào)度方法及組合導(dǎo)航處理器。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案。 一種用于組合導(dǎo)航處理器的多任務(wù)調(diào)度方法,其特征在于步驟為
'(1)、設(shè)覽同步脈沖合成器和中斷信號合成器同歩脈沖合成器根據(jù)1PPS脈沖信號, 利用自身本地晶振合成200HZ的觸發(fā)脈沖信號;中斷信號合成器根據(jù)組合導(dǎo)航處理器中輸出 的脈沖信息,生成相應(yīng)的中斷脈沖信號,觸發(fā)組合導(dǎo)航處理器使其進(jìn)入相應(yīng)的中斷服務(wù)程序;
(2) 、執(zhí)行慣性測量單元串行數(shù)據(jù)接收任務(wù)依據(jù)同步脈沖合成器合成的脈沖信號,每 個脈沖信號觸發(fā)一次慣性測量單元進(jìn)行數(shù)據(jù)采集,慣性測量單元每次將采集到的數(shù)據(jù)封裝成 一個數(shù)據(jù)包即數(shù)據(jù)幀通過串行口發(fā)送到組合導(dǎo)航處理器,組合導(dǎo)航處理器每收到一個來自慣 性測量單元的串行數(shù)據(jù)即產(chǎn)生一個接收中斷給中斷信號合成器,中斷信號合成器產(chǎn)生一個讓 中斷管理器識別的中斷進(jìn)程,令組合導(dǎo)航處理器進(jìn)入一個中斷進(jìn)程,該進(jìn)程為執(zhí)行慣性測量 單元串行數(shù)據(jù)接收任務(wù)的進(jìn)程;
(3) 、執(zhí)行衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)衛(wèi)星接收機(jī)的導(dǎo)航數(shù)據(jù)通過串行口發(fā)送給組合導(dǎo)航 處理器,衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)被來自衛(wèi)星接收機(jī)的串行數(shù)據(jù)觸發(fā),當(dāng)衛(wèi)星導(dǎo)航數(shù)據(jù)接收任 務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPI02產(chǎn)生一個正脈沖,表示已經(jīng)收到了一幀完整的衛(wèi) 星導(dǎo)航串行數(shù)據(jù),產(chǎn)生了上述脈沖后將幀計數(shù)器重置為0,并且設(shè)置相應(yīng)的信號燈標(biāo)志2;
(4) 、執(zhí)行雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)當(dāng)連續(xù)兩次慣性測量單元串行數(shù)據(jù)接收任務(wù)完成
后組合導(dǎo)航處理器通過設(shè)置的GPIOo產(chǎn)生一個正脈沖,該正脈沖用于觸發(fā)雙子樣捷聯(lián)慣導(dǎo)計
算任務(wù),并且設(shè)置相應(yīng)的信號燈標(biāo)志l,產(chǎn)生了上述脈沖后將幀計數(shù)器重置為0;每次雙子樣 捷聯(lián)慣導(dǎo)計算任務(wù)完成后觸發(fā)一次計算結(jié)果串行口輸出任務(wù),其周期與雙子樣捷聯(lián)慣導(dǎo)計算 任務(wù)的周期相同;
(5) 、執(zhí)行基于卡爾曼濾波方法的組合導(dǎo)航計算任務(wù)當(dāng)連續(xù)10次雙子樣捷聯(lián)慣導(dǎo)計算 任務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPIO,產(chǎn)生一個正脈沖;當(dāng)衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)完 成后組合導(dǎo)航處理器通過設(shè)置的GPI02產(chǎn)生一個正脈沖;這兩個正脈沖通過中斷信號合成器 對GPIO,或GPI02進(jìn)行"邏輯或",產(chǎn)生一個讓中斷管理器識別的中斷進(jìn)程,令組合導(dǎo)航處 理器進(jìn)入一個中斷進(jìn)程,該進(jìn)程用于觸發(fā)一次卡爾曼濾波計算任務(wù)。
一種組合導(dǎo)航處理器,它包括主控制單元,其特征在于所述主控制單元中設(shè)有中斷
管理器、中斷信號合成器、同步脈沖合成器、通用輸入輸出接口單元、串行口0、串行口 1
5以及串行口 2,所述同步脈沖合成器用于根據(jù)1PPS脈沖結(jié)合自身本地晶振合成200Hz的脈沖 信號,中斷信號合成器根據(jù)通用輸入輸出接口單元中輸出的脈沖信息生成相應(yīng)的中斷脈沖信 號后輸出至中斷管理器中,觸發(fā)組合導(dǎo)航處理器使其進(jìn)入相應(yīng)的中斷服務(wù)程序;串行口0用 于與慣性測ill單元相連接收采染到的數(shù)據(jù)并產(chǎn)生接收中斷信號輸送至中斷管理器,串行口 1 用于與衛(wèi)呈接收機(jī)相連接收采集到的數(shù)據(jù)并產(chǎn)生接收中斷信號輸送至中斷管理器,串行口 2 用于與外部設(shè)備相連完成輸出并產(chǎn)生發(fā)送中斷給中斷管理器。 作為本發(fā)明的進(jìn)一步改進(jìn)
所述迎用輸入輸出接口單元包括GPIOn 、 GPI0,以及GPK^,所述GPIO。用于在連續(xù)兩次慣 性測量單元串行數(shù)據(jù)接收任務(wù)完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述GPIO,用于 在連續(xù)10次雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述 GPIOa用于在衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)完成后產(chǎn),生一個正脈沖輸出至中斷信號合成器,所述中斷 信號合成器對GPIOo直通輸出至中斷管理器,中斷信號合成器對GPIO,或GPI02進(jìn)行"邏輯或", 產(chǎn)生一個組合導(dǎo)航中斷信號用千觸發(fā)一次Kalman濾波計算。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)就在于
1) 本發(fā)明的好處在于提高對處理器的利用率。現(xiàn)有需要基于高主頻處理器才能夠完成的 組合導(dǎo)航功能,只需要一個相對低主頻的處理器就能夠完成。
2) 能夠在單任務(wù)操作系統(tǒng)中實(shí)現(xiàn)多個任務(wù)的調(diào)度,而不需要多任務(wù)操作系統(tǒng)的支持。能 夠?qū)崿F(xiàn)這種調(diào)度的多個任務(wù)必須具有順序觸發(fā)的關(guān)系,而一個典型的組合導(dǎo)航所包含的上述 5個任務(wù)只好具有這種關(guān)系。
圖1是現(xiàn)有技術(shù)中典型慣性/衛(wèi)星組合導(dǎo)航系統(tǒng)程序多任務(wù)示意圖2是本發(fā)明的框架結(jié)構(gòu)示意圖3是1PPS脈沖的示意圖4是合成的200Hz同步脈沖效果圖5是現(xiàn)有技術(shù)中調(diào)度方法在單任務(wù)操作系統(tǒng)中應(yīng)用的示意圖 圖6是應(yīng)用現(xiàn)有技術(shù)中調(diào)度方法后的效果圖; 圖7是本發(fā)明調(diào)度方法在單任務(wù)操作系統(tǒng)中應(yīng)用的示意圖; 圖8是應(yīng)用本發(fā)明調(diào)度方法后的效果圖9是本發(fā)明組合導(dǎo)航處理器在單任務(wù)操作系統(tǒng)中應(yīng)用實(shí)例的示意圖。
具體實(shí)施方式
以下將結(jié)合具體實(shí)施例和說明書附圖對本發(fā)明做進(jìn)一步詳細(xì)說明。 如圖7所示,本發(fā)明一種用于組合導(dǎo)航處理器的多任務(wù)調(diào)度方法,其歩驟為-
(1) 、設(shè)置同步脈沖合成器和中斷信號合成器同歩脈沖合成器根據(jù)1PPS脈沖信號, 利用fi身本地品振合成200Hz的觸發(fā)脈沖信號;屮斷信號合成器根據(jù)組合導(dǎo)航處現(xiàn)器中輸出 的脈沖信息,生成相應(yīng)的中斷脈沖信號,觸發(fā)組合導(dǎo)航處理器使其進(jìn)入相應(yīng)的中斷服務(wù)程序;
(2) 、執(zhí)行慣性測量單元串行數(shù)據(jù)接收任務(wù)依據(jù)同步脈沖合成器合成的脈沖信號,每 個脈沖信號觸發(fā)一次慣性測量單元進(jìn)行數(shù)據(jù)采集,慣性測量單元每次將采集到的數(shù)據(jù)封裝成 一個數(shù)據(jù)包即數(shù)據(jù)幀通過串行口發(fā)送到組合導(dǎo)航處理器,組合導(dǎo)航處理器每收到一個來自慣 性測量單元的串行數(shù)據(jù)即產(chǎn)生一個接收中斷給中斷信號合成器,中斷信號合成器產(chǎn)生一個讓 中斷管理器識別的中斷進(jìn)程,令組合導(dǎo)航處理器進(jìn)入一個中斷進(jìn)程,該進(jìn)程為執(zhí)行慣性測量 單元串行數(shù)據(jù)接收任務(wù)的進(jìn)程;這樣IMU串行數(shù)據(jù)接收任務(wù)被來自IMU的串行數(shù)據(jù)觸發(fā)。 假設(shè)組合導(dǎo)航處理器的串行口在每收到一個字節(jié)就觸發(fā)一次中斷,其觸發(fā)周期約為50ns (" 10bitxls/230400bps。其中10包含了 lbit起始位,8bit數(shù)據(jù)位,lbit停止位)。由于--個完整 的數(shù)據(jù)幀有N個字節(jié),因此為了接收一個完整的數(shù)掂幀需要進(jìn)入中斷N次。接收一個完整的 數(shù)據(jù)幀的周期為5ms。
(3) 、執(zhí)行衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)衛(wèi)星接收機(jī)的導(dǎo)航數(shù)據(jù)通過串行口發(fā)送給組合導(dǎo)航 處理器,衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)被來自衛(wèi)星接收機(jī)的串行數(shù)據(jù)觸發(fā),當(dāng)衛(wèi)星導(dǎo)航數(shù)據(jù)接收任 務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPI02產(chǎn)生一個正脈沖,表示已經(jīng)收到了一幀完整的衛(wèi) 星導(dǎo)航串行數(shù)據(jù),產(chǎn)生了上述脈沖后將幀計數(shù)器重置為O,并且設(shè)置相應(yīng)的信號燈標(biāo)志2。由 此可見衛(wèi)星接收機(jī)的導(dǎo)航數(shù)據(jù)(每100毫秒一幀數(shù)據(jù),幀長度為M個字節(jié))也是通過串行口 發(fā)送給組合導(dǎo)航處理器,這樣衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)②被來自衛(wèi)星接收機(jī)的串行數(shù)據(jù)觸發(fā)。 基于前面同樣的假設(shè),為了接收一個完整的數(shù)據(jù)幀需要進(jìn)入中斷M次。接收一個完整的數(shù)據(jù) 幀的周期為00ms。
(4) 、執(zhí)行雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)當(dāng)連續(xù)兩次慣性測量單元串行數(shù)據(jù)接收任務(wù)完成 后組合導(dǎo)航處理器通過設(shè)置的GPIOo產(chǎn)生一個正脈沖,該正脈沖用于觸發(fā)雙子樣捷聯(lián)慣導(dǎo)計 算任務(wù),并且設(shè)置相應(yīng)的信號燈標(biāo)志l,產(chǎn)生了上述脈沖后將幀計數(shù)器重置為0;每次雙子樣 捷^慣導(dǎo)計算任務(wù)完成后觸發(fā)一次計算結(jié)果串行口輸出任務(wù),其周期與雙子樣捷聯(lián)慣導(dǎo)計算 任務(wù)的周期相同;由此可見, 一次雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)的觸發(fā)周期為10ms。假設(shè)一個結(jié) 果數(shù)據(jù)幀包含了 P個字節(jié),發(fā)送緩沖區(qū)每發(fā)送一個字節(jié)產(chǎn)生一次發(fā)送中斷用于傳送下一個字 節(jié),則將進(jìn)入P次串行口發(fā)送中斷進(jìn)程。
7(5)、執(zhí)行基于卡爾曼(Kalnmn)濾波方法的組合導(dǎo)航計算任務(wù)當(dāng)連續(xù)10次雙子樣 捷聯(lián)慣導(dǎo)計算任務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPIO,產(chǎn)生一個正脈沖;當(dāng)衛(wèi)呈導(dǎo)航數(shù) 據(jù)接收任務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPI02產(chǎn)生一個正脈沖;這兩個正脈沖通過中 斷信號合成器對GPIO,或GP102進(jìn)行"邏輯或",產(chǎn)生一個讓中斷管理器識別的中斷進(jìn)程, 令組合導(dǎo)航處理器進(jìn)入一個中斷進(jìn)程,該進(jìn)程用于觸發(fā)一次卡爾曼濾波計算任務(wù)。由于基于 Kalman濾波方法的組合導(dǎo)航計算任務(wù)需要兩種數(shù)據(jù)(雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)的結(jié)果,衛(wèi)星 接收機(jī)的導(dǎo)航數(shù)據(jù))作為計算輸入,正好前面的衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)能夠同步提供此數(shù)據(jù), 且周期相同。因此基于Kalman濾波方法的組合導(dǎo)航計算任務(wù)由"每連續(xù)10次雙子樣捷聯(lián)慣 導(dǎo)計算任務(wù)"或"1次衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)"完成這個條件來觸發(fā)。
本發(fā)明是一種基于硬件實(shí)現(xiàn)組合導(dǎo)航程序多任務(wù)調(diào)度的方法,即基于外部中斷的調(diào)度方 法。其原現(xiàn)為外部中斷信號是內(nèi)部的某一個任務(wù)(任務(wù)A)在結(jié)束前通過輸出端口產(chǎn)生的 一個脈沖信號;產(chǎn)生的脈沖信號通過外部非屏蔽中斷輸入口觸發(fā)一個硬件中斷。需耍由任務(wù) A觸發(fā)才執(zhí)行的任務(wù)B被安排在此中斷進(jìn)程中。這樣就實(shí)現(xiàn)了任秀A通過外部硬件中斷觸發(fā) 任務(wù)B的效果。按照信息流觸發(fā)各個中斷任務(wù)需要?dú)皞€中斷任務(wù)輸出用于觸發(fā)下級中斷任務(wù) 的脈沖?;诖嗽砭托纬闪烁鱾€任務(wù)間的調(diào)度機(jī)制。中斷信號合成器就是將各個任務(wù)結(jié)束 前輸出的標(biāo)志本任務(wù)結(jié)束的脈沖經(jīng)過一定的邏輯又送回到通用處理器的中斷管理器,從而實(shí) 現(xiàn)環(huán)回(Loop back)觸發(fā)。.
圖5表示了在單任務(wù)操作系統(tǒng)中現(xiàn)有的調(diào)度方法如下IMU串行數(shù)據(jù)接收任務(wù)(任務(wù)①) 被安排在由串行口接收中斷進(jìn)程中,當(dāng)進(jìn)行完連續(xù)兩幀完整的幀協(xié)議解析后,設(shè)置一個全局 變量形式的標(biāo)志位(2幀IMU數(shù)據(jù)準(zhǔn)備好標(biāo)志位),即通知雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)(任務(wù)③) 可以開始了。雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)連續(xù)完成IO次后,設(shè)置一個全局變量形式的標(biāo)志位(捷 聯(lián)慣導(dǎo)計箅完成標(biāo)志),即通知基于Kalman濾波方法的組合導(dǎo)航計算任務(wù)(任務(wù) )可以開 始了。其特點(diǎn)是雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)(任務(wù)③)以及基于Kalman濾波方法的組合導(dǎo)航 計算任務(wù)(任務(wù)⑤)都被安排在主程序中。圖6表示了在單任務(wù)操作系統(tǒng)中現(xiàn)有調(diào)度方案的 效果圖。任務(wù)①②④的虛線部分表示多次進(jìn)入中斷。任務(wù)⑤的前部分虛線表示多次被別的中 斷進(jìn)程打斷。這種調(diào)度會出現(xiàn)一種極端的情況,即在某一個10ms周期(也是雙子樣捷聯(lián)慣 導(dǎo)計算任務(wù)周期)中,同時需要完成一次雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)G壬務(wù)③)與基于Kalraan 濾波方法的組合導(dǎo)航計算任務(wù)(任務(wù) )。這種極端情況發(fā)生的次數(shù)為每100ms周期中的第 10個lOms周期,而在其它9個IOms周期中并不存在。由于這個問題的存在導(dǎo)致了對CPU 利用率的降低。比如在800MHz某型處理器上, 一次雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)需要0.9ms,一次基于Kalman濾波方法的組合導(dǎo)航計算任務(wù)需要9ms,那么在最極端的周期中兩個任務(wù)的 時間開銷為9.9ms。而其它9個10ms周期中,計算開銷僅僅為0.9ms,處理器的利用率僅僅 為9% (0.9ms/10ms),這就對處理器造成了極大的浪費(fèi)。處理器的平均利用率僅僅為 9%x0.9+99%xOJ=0.18。也就是說如果存在一種合理的調(diào)度方法,則只需要160MHz的處理 器即可以完成這兩個主要任務(wù)。因?yàn)樵谏鲜?00MHz假設(shè)情況下,毎一個100ms周期中,所 有的時問開銷為0.9msxl0次+9msxl次-18ms。如果處理器降低到160MHz的主頻,則由18ms 變成18msx (800/160) -90ms<100ms。
為了充分提高處理器的平均利用率, 一種合理的調(diào)度方法就是各個任務(wù)都是被安排在各 自的中斷進(jìn)程中,而中斷是可以實(shí)現(xiàn)嵌套的,這就不存在上述最極端的情況,這也確保了高 優(yōu)先級的任務(wù)的按時完成。如圖7和圖8所示,以160MHz主頻的處理器為例, 一次雙子樣 捷聯(lián)慣導(dǎo)計算任務(wù)需要0.9msx (800/160) =4.5ms,'滿足〈10ms周期的要求。對于一個100ms 的周期,則剩余100ms-4.5ms/次x10次-55ms。而一次基于Kalman濾波方法的組合導(dǎo)航計算 任務(wù)需要9msx (800/160) =45ms<55ms??梢园凑毡灸P瓦\(yùn)行的前提是雙子樣捷聯(lián)慣導(dǎo)計算 任務(wù)被單獨(dú)安排在中斷進(jìn)程中,基于Kalman濾波方法的組合導(dǎo)航計算任務(wù)則安排在能夠被 雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)打斷的低級中斷或者主程序中。
如圖2所示,本發(fā)明的一種組合導(dǎo)航處理器,包括主控制單元,該主控制單元為通用嵌 入式處理器,它包括外部存儲器、晶振以及電源等常規(guī)的必要部件,主控制單元中設(shè)有支持 多于5個中斷源的中斷管理器、中斷信號合成器、同步脈沖合成器、通用輸入輸出接口單元、 串行口 0、串行口 1以及串行口 2,通用輸入輸出接口單元采用3bit以上的GPIO (General Pmpose I叩ut Output),同步脈沖合成器用于根據(jù)1PPS脈沖結(jié)合自身本地晶振合成200Hz的 脈沖信號,中斷信號合成器根據(jù)通用輸入輸出接口單元中輸出的脈沖信息生成相應(yīng)的中斷脈 沖信號后輸出至中斷管理器中,觸發(fā)組合導(dǎo)航處理器使其進(jìn)入相應(yīng)的中斷服務(wù)程序;串行口 0用于與慣性測量單元相連接收采集到的數(shù)據(jù)并產(chǎn)生接收中斷信號輸送至中斷管理器,串行 口1用于與衛(wèi)星接收機(jī)相連接收釆集到的數(shù)據(jù)并產(chǎn)生接收中斷信號輸送至中斷管理器,串行 口 2用于與外部設(shè)備相連完成輸出并產(chǎn)生發(fā)送中斷給中斷管理器。衛(wèi)星接收機(jī)產(chǎn)生的衛(wèi)星接 收機(jī)串行數(shù)據(jù)指衛(wèi)星接收機(jī)導(dǎo)航結(jié)果,包括偽距,偽距率,速度,位置,時間等。
通用輸入輸出接口單元包括GPIOo 、 GPIC^以及GPI02,所述GPIOo用于在連續(xù)兩次慣 性測量單元串行數(shù)據(jù)接收任務(wù)完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述GPIO,用 于在連續(xù)10次雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述 GPI02用于在衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述中
9斷信號合成器對GPIOo直通輸出至中斷管理器,中斷信號合成器對GPIO!或GPI02進(jìn)行"邏 輯或",產(chǎn)生一個組合導(dǎo)航中斷信號用于觸發(fā)一次Kalman濾波計算。
組合導(dǎo)航全過程的多個任務(wù)為了實(shí)現(xiàn)事件方式下的同步觸發(fā),這就需要本發(fā)明中的同步 脈沖合成器配合。衛(wèi)呈接收機(jī)輸出兩種信息,分別是導(dǎo)航定位結(jié)果數(shù)據(jù)與秒脈沖(1PPS, one pulse per second)。圖3顯示了 1PPS的脈沖形式。同歩脈沖合成器的功能是將PPS脈沖倍頻 成200Hz的脈沖,并且生成的200Hz脈沖的上升沿與1PPS脈沖的上升沿基本對齊(在一定 誤差范圍內(nèi)),效果見圖4。衛(wèi)星接收機(jī)的輸出數(shù)據(jù)更新率(每100毫秒一幀數(shù)據(jù)對應(yīng)10Hz 的更新率)嚴(yán)格與自身產(chǎn)生的1PPS脈沖同歩,即毎產(chǎn)生一個IPPS脈沖,代表歷時1秒,期 間衛(wèi)星接收機(jī)的輸出數(shù)據(jù)嚴(yán)格為10幀。同步脈沖合成器生成的200Hz的脈沖用于觸發(fā)MU 進(jìn)行采集,IMU根據(jù)采集的結(jié)果進(jìn)行處理后通過串行口送出,那么IMU的輸出數(shù)據(jù)更新率也 是嚴(yán)格的200幀。同步脈沖合成器使用的效果如下每一個1PPS周期內(nèi),IMU的輸出數(shù)據(jù) 為200幀;基于雙子樣的捷聯(lián)慣導(dǎo)算法將每兩幀IMU數(shù)據(jù)進(jìn)行一次慣性導(dǎo)航計算,總共將進(jìn) 行100次計算。正如前述,衛(wèi)星接收機(jī)的輸出數(shù)據(jù)嚴(yán)格為10'1'貞,基于Kaman濾波方法的組 合導(dǎo)航計算,其輸入是衛(wèi)星接收機(jī)的輸出數(shù)據(jù)與雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)的結(jié)果的次數(shù)也為 10次。山于組合導(dǎo)航的作用是完成對捷聯(lián)慣導(dǎo)計算所需要的狀態(tài)變量進(jìn)行修正,并不輸出最 終結(jié)果。最終組合導(dǎo)航意義下的結(jié)果來自于錠聯(lián)慣導(dǎo)箅法,即更新率與捷聯(lián)慣導(dǎo)算法的更新 率相同,都為100Hz。同歩脈沖合成器的作用實(shí)際上是實(shí)現(xiàn)了兩個獨(dú)立單元(IMU與衛(wèi)星接 收機(jī))的數(shù)據(jù)釆集同步。確切地說,是實(shí)現(xiàn)了IMU與衛(wèi)星接收機(jī)的同步。同步脈沖合成器的 使用僅僅解決了組合導(dǎo)航處理器進(jìn)行組合導(dǎo)航計算所必需的外部信息源采集同步問題,如何 解決組合導(dǎo)航總?cè)蝿?wù)所包含的諸多任務(wù)之間的調(diào)度問題,還需要中斷信號合成器。
本發(fā)明中中斷信號合成器的功能是根據(jù)主控制單元自身的GPIO輸出脈沖信息,基于一 定的邏輯,生成相應(yīng)的中斷脈沖信號,用于觸發(fā)通用處理器,使主控制單元進(jìn)入相應(yīng)的中斷 服務(wù)程序。中斷是解決多任務(wù)在單任務(wù)操作系統(tǒng)下的一種調(diào)度方法。利用中斷信號合成器以 及中斷調(diào)度解決組合導(dǎo)航諸多任務(wù)在事件方式下的同歩觸發(fā)原理如下①IMU串行數(shù)據(jù)接收 任務(wù),②衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù),③雙子樣捷聯(lián)慣導(dǎo)計算任務(wù),④組合導(dǎo)航數(shù)據(jù)輸出任務(wù), 基于Kalman濾波方法的組合導(dǎo)航計算任務(wù)等等都在各自的中斷進(jìn)程中實(shí)現(xiàn),且觸發(fā)順序 按照實(shí)現(xiàn)總功能所要求的信息流進(jìn)行。
結(jié)合本發(fā)明具體實(shí)施例中的結(jié)構(gòu),對其工作原現(xiàn)做進(jìn)一歩詳細(xì)說明。 .(—)同歩脈沖合成器根據(jù)1PPS脈沖,利用自身本地晶振(頻率在10MHz 100MHz之 間),通過一定的邏輯,合成200Hz的脈沖信號。合成的200Hz脈沖信號邊沿與1PPS脈沖對齊,且在一個1PPS周期內(nèi),剛好產(chǎn)生200個200Hz脈沖。其效果圖如圖4所示。
(二) 合成的200Hz脈沖用于觸發(fā)1MU慣性測量單元進(jìn)行慣性數(shù)據(jù)采集。慣性測量單元 實(shí)現(xiàn)在200Hz的上升沿對其內(nèi)部的陀螺以及加速度計傳感器的數(shù)據(jù)進(jìn)行采集。然后將采集的 結(jié)果進(jìn)行打包成為一個數(shù)據(jù)幀,采用RS232或者RS422進(jìn)行傳送到主控制單元的串行口 0。
(三) 串行口O在每收到一個字節(jié)后產(chǎn)生一個串行口0接收中斷,主控制單元的中斷管 理器在識別到上述中斷后,將進(jìn)入一個中斷進(jìn)程,稱之為IMU串行數(shù)據(jù)接收進(jìn)程。由于一個 完整的IMU串行數(shù)據(jù)幀長度為N個字節(jié),即進(jìn)入了 N次串行口 0接收中斷后才能夠收到一 個完整的IMU串行數(shù)據(jù),其周期為5毫秒。設(shè)定在第N次串行口 O接收中斷程序完成幀協(xié) 議解析后且退出前進(jìn)行幀計數(shù),那么當(dāng)收到第二個完整幀后,通過設(shè)置GPIOo,使得GPIO0 產(chǎn)生一個一定寬度的正脈沖,用于觸發(fā)雙子樣的捷聘慣導(dǎo)程序。產(chǎn)生了上述脈沖后,將幀計
數(shù)器重置為0。
(四) 雙子樣的捷聯(lián)慣導(dǎo)程序被安排在GPIOo產(chǎn)生的中斷進(jìn)程中,其計算周期為10毫秒。 在此進(jìn)程中,由于所需要的輸入數(shù)據(jù)是完整的,因此可以進(jìn)行一次捷聯(lián)慣導(dǎo)計算。完成了一 次捷聯(lián)慣導(dǎo)計算后,對捷聯(lián)慣導(dǎo)計算次數(shù)計數(shù)。當(dāng)完成10次捷聯(lián)慣導(dǎo)計算,通過設(shè)置GPIO,, 使得GP10,產(chǎn)生一個一定寬度的正脈沖,用于觸發(fā)Kalman濾波計算程序;并且設(shè)置相應(yīng)的 信號燈標(biāo)志l。產(chǎn)生了上述脈沖后,將幀計數(shù)器重置為O。 GPIO,產(chǎn)生的周期為IOO毫秒。
(五) 衛(wèi)星導(dǎo)航串行數(shù)據(jù)是通過主控制單元的串行口 1進(jìn)行接收的,山于一幀的長度為 M個字節(jié),需要經(jīng)歷M次串行口 l接收中斷后才能夠收到一個完整的衛(wèi)星導(dǎo)航串行數(shù)據(jù),其 周期為100毫秒。設(shè)定在第M次串行口 1接收中斷程序完成幀協(xié)議解析后,通過設(shè)置GPI02, 使得GPK)2產(chǎn)生一個一定寬度的正脈沖,表示已經(jīng)收到了一幀完整的衛(wèi)星導(dǎo)航串行數(shù)據(jù);并 且設(shè)置相應(yīng)的信號燈標(biāo)志2。
(六) 中斷信號合成器的功能是對GPIOo直通輸出,對GPIO,或GPI02進(jìn)行"邏輯或", 產(chǎn)生一個組合導(dǎo)航中斷信號用于觸發(fā)一次Kalman濾波計算。此時完成一次Kalman濾波計算 所需要的兩種數(shù)據(jù)之一已經(jīng)準(zhǔn)備好。這兩種數(shù)據(jù)是①'捷聯(lián)慣導(dǎo)計算后將產(chǎn)生載體的姿態(tài)信 息,位置信息,速度信息等,②衛(wèi)星接收機(jī)的導(dǎo)航數(shù)據(jù)。進(jìn)入組合導(dǎo)航中斷信號觸發(fā)的組合 導(dǎo)航中斷進(jìn)程后,根據(jù)進(jìn)入的條件如果是信號燈標(biāo)志l,則進(jìn)行Kalman濾波的時間更新部分 計算;如果是信號燈標(biāo)志2,則進(jìn)行Kalman濾波的測量更新部分計算。通過Kalman濾波計 算修正后的狀態(tài)信息將被計算周期為IO毫秒的捷聯(lián)慣導(dǎo)進(jìn)程利用或者直接用于輸出,這取決 于用戶的算法設(shè)計。
(七) 整個組合導(dǎo)航的數(shù)據(jù)輸出更新率依然保持在100Hz (對應(yīng)IO毫秒周期),即每次捷聯(lián)慣導(dǎo)完成后都要進(jìn)行數(shù)據(jù)輸出。整個組合導(dǎo)航的數(shù)據(jù)輸出通過串行口 2完成。第一個輸 出字節(jié)的發(fā)送,由步驟(四) 一次捷聯(lián)慣導(dǎo)計算完成后進(jìn)行。當(dāng)這個字節(jié)發(fā)送完成后將產(chǎn)生 一個發(fā)送完成中斷信號,由此中斷信號觸發(fā)任務(wù)④,繼續(xù)發(fā)送下一個字節(jié)的數(shù)據(jù)。假設(shè)一個 完整的輸出數(shù)據(jù)幀為P字節(jié),需耍進(jìn)入P-1次串行口發(fā)送中斷,因?yàn)榈谝粋€字節(jié)的發(fā)送是任 務(wù)③完成的。
到此為止,5個任務(wù)一共需要5個中斷。為了保證本發(fā)明所期望的結(jié)果,這5個中斷的 優(yōu)先級從高到低安排為
中斷源任務(wù)優(yōu)先級任務(wù)編號
串行口 o接收中斷IMCJ串行數(shù)據(jù)接收任務(wù)高'①
串行口l接收中斷衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)②
串行口2發(fā)送中斷組合導(dǎo)航數(shù)據(jù)輸出任務(wù)
GPIOo上升沿中斷雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)③
組合導(dǎo)航中斷信號基于Kalman濾波方法的組合導(dǎo)航計算任務(wù)低
實(shí)施實(shí)例如圖9所示,本發(fā)明基于MPC8247通用商用處理器給出了一個實(shí)現(xiàn)實(shí)例。主 控制單元只詳細(xì)給出了與本發(fā)明密切相關(guān)的部分的連接關(guān)系,其它部分簡單的以總線形式進(jìn)
行了描述。中斷脈沖合成器給出了實(shí)現(xiàn)邏輯圖。同歩脈沖合成器給出了原理示意圖。同步脈 沖合成器基于FPGA邏輯實(shí)現(xiàn)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡 屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通 技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本 發(fā)明的保護(hù)范圍。
1權(quán)利要求
1、一種用于組合導(dǎo)航處理器的多任務(wù)調(diào)度方法,其特征在于步驟為(1)、設(shè)置同步脈沖合成器和中斷信號合成器同步脈沖合成器根據(jù)1PPS脈沖信號,利用自身本地晶振合成200Hz的觸發(fā)脈沖信號;中斷信號合成器根據(jù)組合導(dǎo)航處理器中輸出的脈沖信息,生成相應(yīng)的中斷脈沖信號,觸發(fā)組合導(dǎo)航處理器使其進(jìn)入相應(yīng)的中斷服務(wù)程序;(2)、執(zhí)行慣性測量單元串行數(shù)據(jù)接收任務(wù)依據(jù)同步脈沖合成器合成的脈沖信號,每個脈沖信號觸發(fā)一次慣性測量單元進(jìn)行數(shù)據(jù)采集,慣性測量單元每次將采集到的數(shù)據(jù)封裝成一個數(shù)據(jù)包即數(shù)據(jù)幀通過串行口發(fā)送到組合導(dǎo)航處理器,組合導(dǎo)航處理器每收到一個來自慣性測量單元的串行數(shù)據(jù)即產(chǎn)生一個接收中斷給中斷信號合成器,中斷信號合成器產(chǎn)生一個讓中斷管理器識別的中斷進(jìn)程,令組合導(dǎo)航處理器進(jìn)入一個中斷進(jìn)程,該進(jìn)程為執(zhí)行慣性測量單元串行數(shù)據(jù)接收任務(wù)的進(jìn)程;(3)、執(zhí)行衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)衛(wèi)星接收機(jī)的導(dǎo)航數(shù)據(jù)通過串行口發(fā)送給組合導(dǎo)航處理器,衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)被來自衛(wèi)星接收機(jī)的串行數(shù)據(jù)觸發(fā),當(dāng)衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPIO2產(chǎn)生一個正脈沖,表示已經(jīng)收到了一幀完整的衛(wèi)星導(dǎo)航串行數(shù)據(jù),產(chǎn)生了上述脈沖后將幀計數(shù)器重置為0,并且設(shè)置相應(yīng)的信號燈標(biāo)志2;(4)、執(zhí)行雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)當(dāng)連續(xù)兩次慣性測量單元串行數(shù)據(jù)接收任務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPIO0產(chǎn)生一個正脈沖,該正脈沖用于觸發(fā)雙子樣捷聯(lián)慣導(dǎo)計算任務(wù),并且設(shè)置相應(yīng)的信號燈標(biāo)志1,產(chǎn)生了上述脈沖后將幀計數(shù)器重置為0;每次雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)完成后觸發(fā)一次計算結(jié)果串行口輸出任務(wù),其周期與雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)的周期相同;(5)、執(zhí)行基于卡爾曼濾波方法的組合導(dǎo)航計算任務(wù)當(dāng)連續(xù)10次雙子樣捷聯(lián)慣導(dǎo)計算任務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPIO1產(chǎn)生一個正脈沖;當(dāng)衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù)完成后組合導(dǎo)航處理器通過設(shè)置的GPIO2產(chǎn)生一個正脈沖;這兩個正脈沖通過中斷信號合成器對GPIO1或GPIO2進(jìn)行“邏輯或”,產(chǎn)生一個讓中斷管理器識別的中斷進(jìn)程,令組合導(dǎo)航處理器進(jìn)入一個中斷進(jìn)程,該進(jìn)程用于觸發(fā)一次卡爾曼濾波計算任務(wù)。
2、 一種組合導(dǎo)航處理器,它包括主控制單元,其特征在于所述主控制單元中設(shè)有中斷管理器、中斷信號合成器、同步脈沖合成器、通用輸入輸出接口單元、串行口 0、串行口 1 以及串行口 2,所述同步脈沖合成器用于根據(jù)1PPS脈沖結(jié)合自身本地晶振合成200Hz的脈沖 信號,中斷信號合成器根據(jù)通用輸入輸出接口單元中輸出的脈沖信息生成相應(yīng)的中斷脈沖信 號后輸出至中斷管理器中,觸發(fā)組合導(dǎo)航處理器使其進(jìn)入相應(yīng)的中斷服務(wù)程序;串行口0用 于與慣性測量單元相連接收采集到的數(shù)據(jù)并產(chǎn)生接收中斷信號輸送至中斷管理器,串行口 I用于與衛(wèi)呈接收機(jī)相連接收采集到的數(shù)據(jù)并產(chǎn)生接收中斷信號輸送至中斷管理器,串行口 2 用于與外部設(shè)備相連完成輸出并產(chǎn)生發(fā)送中斷給中斷管理器。
3、根據(jù)權(quán)利要求2所述的組合導(dǎo)航處理器,其特征在于所述通用輸入輸出接口單元包 括GP10n 、 GPIO,以及GPI02,所述GPOo用于在連續(xù)兩次慣性測量單元串行數(shù)據(jù)接收任務(wù) 完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述GPIO,用于在連續(xù)10次雙子樣捷聯(lián)慣導(dǎo) 計算任務(wù)完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述GPI02用于在衛(wèi)星導(dǎo)航數(shù)據(jù)接 收任務(wù)完成后產(chǎn)生一個正脈沖輸出至中斷信號合成器,所述中斷信號合成器對GPIOo直通輸 出至中斷管理器,中斷信號合成器對GPIO,或GPICb進(jìn)行"邏輯或",產(chǎn)生一個組合導(dǎo)航中 斷信號用于觸發(fā)一次Kalman濾波計算。
全文摘要
一種用于組合導(dǎo)航處理器的多任務(wù)調(diào)度方法,其步驟為(1)設(shè)置同步脈沖合成器和中斷信號合成器;(2)執(zhí)行慣性測量單元串行數(shù)據(jù)接收任務(wù);(3)執(zhí)行衛(wèi)星導(dǎo)航數(shù)據(jù)接收任務(wù);(4)執(zhí)行雙子樣捷聯(lián)慣導(dǎo)計算任務(wù);(5)執(zhí)行基于卡爾曼濾波方法的組合導(dǎo)航計算任務(wù)。該用于組合導(dǎo)航處理器,它包括主控制單元,主控制單元中設(shè)有中斷管理器、中斷信號合成器、同步脈沖合成器、通用輸入輸出接口單元、串行口0、串行口1以及串行口2。本發(fā)明具有結(jié)構(gòu)簡單緊湊、原理簡單、能夠大大提高組合導(dǎo)航處理器的利用率、提高整體效率等優(yōu)點(diǎn)。
文檔編號G01C21/20GK101586961SQ20091004385
公開日2009年11月25日 申請日期2009年7月6日 優(yōu)先權(quán)日2009年7月6日
發(fā)明者吳美平, 唐康華, 濤 李, 兵 羅, 胡小平, 逯亮清 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)