專利名稱:具有用于對分區(qū)進(jìn)行管理的實(shí)時(shí)核的電子控制單元的制作方法
具有用于對分區(qū)進(jìn)行管理的實(shí)時(shí)核的電子控制單元本發(fā)明涉及具有實(shí)時(shí)核的電子控制単元,該實(shí)時(shí)核對分區(qū)進(jìn)行管理。本發(fā)明特別旨在用于航空應(yīng)用。在這樣的應(yīng)用中,被稱為全權(quán)數(shù)字引擎控制器(FADEC)的控制單元被已知包括有結(jié)合了用于執(zhí)行計(jì)算機(jī)應(yīng)用程序任務(wù)的軟件操作系統(tǒng)的微控制器。這些應(yīng)用程序可以完全地或部分地同時(shí)地執(zhí)行。操作系統(tǒng)結(jié)合了實(shí)時(shí)核,即用于管理應(yīng)用程序的執(zhí)行并用于確保數(shù)據(jù)被在兩個(gè)應(yīng)用程序之間以及在應(yīng)用程序和硬件之間被路由的實(shí)時(shí)操作系統(tǒng) (RTOS)。提供了分區(qū),分區(qū)被分配給每ー應(yīng)用程序,以便避免應(yīng)用程序在被執(zhí)行時(shí)彼此干擾。在航空領(lǐng)域,這樣的分區(qū)是由ARINC 653標(biāo)準(zhǔn)管制的,該標(biāo)準(zhǔn)提供了空間-劃分分區(qū), 從而保證了應(yīng)用程序不能在對應(yīng)于另ー應(yīng)用程序的分區(qū)的存儲(chǔ)器區(qū)域進(jìn)行寫入,并提供了時(shí)間-劃分分區(qū),保證了將ー些執(zhí)行時(shí)間分配到每ー個(gè)應(yīng)用程序。這種分區(qū)使得能夠存有來自不同的供應(yīng)商和/或具有不同關(guān)鍵程度的應(yīng)用程序。與ARINC 653標(biāo)準(zhǔn)相兼容的實(shí)時(shí)核仍然是麻煩的,它們具有分區(qū)純粹在軟件中執(zhí)行的缺點(diǎn),以致于在實(shí)時(shí)核的控制以外執(zhí)行的應(yīng)用程序的呈現(xiàn)是效率是低下的。此外,在多任務(wù)核中,當(dāng)核調(diào)度器指示從第一任務(wù)切換到第二任務(wù)時(shí),第一任務(wù)的上下文(即,用于微控制器執(zhí)行所需的、并且特別記錄在微控制器的存儲(chǔ)寄存器中的全部狀態(tài)值)需要被備份,而第二任務(wù)的上下文需要被找到并被恢復(fù)。如此,上下文的改變是相對耗時(shí)的,特別是由于微控制器具有越來越多數(shù)量的用于備份的寄存器。由于同樣的理由, 分區(qū)的改變是冗長的。這就構(gòu)成了與ARINC 653標(biāo)準(zhǔn)兼容的多任務(wù)處理核的額外的缺點(diǎn)。本發(fā)明的目標(biāo)是提供控制單元,該控制単元提供強(qiáng)的空間劃分分區(qū)和時(shí)間劃分分區(qū)。為此,本發(fā)明提供了電子控制単元,其中包括微控制器,該微控制器帶有包含軟件操作系統(tǒng)的代碼的只讀存儲(chǔ)器(ROM),并帶有包含與任務(wù)相關(guān)聯(lián)的變量數(shù)據(jù)的隨機(jī)存取存儲(chǔ)器(RAM),該軟件操縱系統(tǒng)結(jié)合有用于執(zhí)行計(jì)算機(jī)任務(wù)的實(shí)時(shí)核。ROM和RAM具有對應(yīng)于分區(qū)的區(qū)域,其中ー個(gè)區(qū)域被分配給實(shí)時(shí)核,而其他的分區(qū)中的每ー個(gè)分區(qū)都被分配給多個(gè)任務(wù)中的至少ー個(gè)。ROM和RAM與地址總線相關(guān)聯(lián),該地址總線在物理上被編程為首先阻止每ー個(gè)分區(qū)在RAM的另ー個(gè)區(qū)域中進(jìn)行寫入,并且其次阻止每ー個(gè)分區(qū)執(zhí)行ROM的區(qū)域中的另ー個(gè)區(qū)域,而實(shí)時(shí)核與用于將執(zhí)行時(shí)間分配到每ー個(gè)分區(qū)的計(jì)時(shí)器相關(guān)聯(lián)。如此,地址總線在物理上被以這樣的方式變成,以使得在任何ー個(gè)分區(qū)中執(zhí)行的任務(wù)都沒有在除了被分配給其的分區(qū)之外的分區(qū)中進(jìn)行寫入數(shù)據(jù)或執(zhí)行代碼的硬件裝置。 在不涉及實(shí)時(shí)核且不經(jīng)由對地址總線的編程的情況下,數(shù)據(jù)交換無法在分區(qū)之間進(jìn)行。如此,實(shí)時(shí)核確保了在當(dāng)前正在被執(zhí)行的分區(qū)之外的分區(qū)中的數(shù)據(jù)的完整性。實(shí)時(shí)核還確保了可以通過將執(zhí)行時(shí)間窗ロ分配到每ー個(gè)任務(wù)來執(zhí)行每ー個(gè)任務(wù)。因此,可以同時(shí)執(zhí)行多個(gè)任務(wù),而最小化由于它們的執(zhí)行所造成的相互干擾的任何風(fēng)險(xiǎn)。優(yōu)選情況下,實(shí)時(shí)核被配置為使得分區(qū)將在循環(huán)的執(zhí)行周期中執(zhí)行,更優(yōu)選地,執(zhí)行周期可包括ー給定分區(qū)達(dá)若干次。這樣的周期管理起來簡單。
還優(yōu)選地,執(zhí)行周期包括時(shí)間預(yù)留間隔。時(shí)間預(yù)留允許一個(gè)或多個(gè)任務(wù)被以簡單的方式添加,而不需要完全重新組織執(zhí)行周期。根據(jù)本發(fā)明的第一特別有利的特征,分配給實(shí)時(shí)核的分區(qū)包含存儲(chǔ)器頁面,每ー 個(gè)存儲(chǔ)器頁面都被分配給一任務(wù),以便包含每ー個(gè)任務(wù)的寄存器,實(shí)時(shí)核被配置為管理任務(wù)指針,任務(wù)指針用于包含將被執(zhí)行的任務(wù)的頁面的地址。這通過免除了將當(dāng)前任務(wù)的寄存器備份在預(yù)定義的固定地址區(qū)域中的必要性以及恢復(fù)將要被執(zhí)行的任務(wù)的寄存器的必要性而使得寄存器改變的加速成為可能。這產(chǎn)生了相對快速的上下文改變,其具有不依賴于寄存器數(shù)量的時(shí)長。這也通過要求對任務(wù)指針的適當(dāng)控制以便訪問寄存器,而使得對寄存器的分區(qū)成為可能。根據(jù)本發(fā)明的第二特別有利的特征,被分配給實(shí)時(shí)核的分區(qū)包含準(zhǔn)備要被執(zhí)行的且由分區(qū)來組織的任務(wù)列表,實(shí)時(shí)核被配置為管理分區(qū)指針,該分區(qū)指針用于訪問準(zhǔn)備好的任務(wù)的列表,優(yōu)選地,準(zhǔn)備好的任務(wù)的列表是以鏈接首部的形式,鏈接首部包含準(zhǔn)備要被執(zhí)行的第一和最后ー個(gè)任務(wù)的上下文地址。這可使得分區(qū)改變只通過更新分區(qū)指針來快速地執(zhí)行。在閱讀了下面的對特定的非限制性本發(fā)明的實(shí)施例之后,本發(fā)明的其他特征以及優(yōu)點(diǎn)將變得顯而易見。參考各個(gè)附圖,其中
圖1是ROM和RAM的空間劃分分區(qū)的示意圖;·圖2是根據(jù)本發(fā)明的控制單元的示意圖,特別示出了 RAM分區(qū)是如何組織的;以及·圖3是分區(qū)的排序的示意圖。此處在用于控制一個(gè)或多個(gè)飛機(jī)發(fā)動(dòng)機(jī)的航空應(yīng)用中描述了本發(fā)明。在此示例中,控制單元是FADEC類型,它符合ARINC 653標(biāo)準(zhǔn)。參考附圖,根據(jù)本發(fā)明的控制單元是片上系統(tǒng)(SOC)類型的微電路,包括用于微控制器以及其外圍設(shè)備的程序指令??刂茊卧梢缘刃У匾袁F(xiàn)場可編程門陣列(FPGA)的形式來實(shí)現(xiàn)。作為示例,微控制器可以以VHDL語言來編寫,可以是可重復(fù)編程的。(其中, VHDL代表超高速集成電路硬件描述語言)。如此,控制單元包括具有ROM 2和RAM 3的微控制器1??刂茊卧€包括未示出的特定裝置,用干與在每ー個(gè)發(fā)動(dòng)機(jī)上安置的傳感器以及與航空器的駕駛艙中安置的控制儀器建立連接。ROM 2具有對應(yīng)于諸個(gè)分區(qū)(P0到P3)的區(qū)域,其中ー個(gè)分區(qū)被分配給軟件操作系統(tǒng)的代碼,而其他分區(qū)中的每ー個(gè)都被分配給包括任務(wù)的應(yīng)用程序代碼或計(jì)算機(jī)程序。ROM 2與地址總線相關(guān)聯(lián),該地址總線在物理上被編程,以便每ー個(gè)分區(qū)都能夠在ROM中的與該分區(qū)相對應(yīng)的區(qū)域之外的存儲(chǔ)器區(qū)域中執(zhí)行代碼。軟件操作系統(tǒng)結(jié)合了實(shí)時(shí)核,該實(shí)時(shí)核具有調(diào)度任務(wù)的功能,并且確保了預(yù)定時(shí)間約束兼容于執(zhí)行任務(wù)。如此,分區(qū)PO對應(yīng)于實(shí)時(shí)核代碼,而其他分區(qū)(在這里是分區(qū)Pl到P; )分別對應(yīng)于ー個(gè)或多個(gè)任務(wù)(在這里是任務(wù)Tl到T6)的代碼。RAM 3具有對應(yīng)于分區(qū)PO到P3的諸個(gè)區(qū)域,其中ー個(gè)分區(qū)被分配給實(shí)時(shí)核,而其他分區(qū)中的每ー個(gè)都分配給至少ー個(gè)任務(wù),而RAM與地址總線相關(guān)聯(lián),該地址總線在物理上被編程,以便每ー個(gè)分區(qū)不能向RAM中的與該分區(qū)相對應(yīng)的區(qū)域之外的區(qū)域進(jìn)行寫入。 如此,分區(qū)PO被分配給數(shù)據(jù)以及實(shí)時(shí)核的其他變量,而分區(qū)中的其他分區(qū)(在這里是分區(qū) Pl到P; )被分別分配給ー個(gè)或多個(gè)任務(wù)(在這里是任務(wù)Tl到T6)的數(shù)據(jù)。如此,這提供了空間劃分分區(qū),該分區(qū)是通過由存儲(chǔ)器控制器所管理的虛擬尋址機(jī)制的方式來實(shí)現(xiàn)的,該存儲(chǔ)器控制器被結(jié)合入微控制器中并且管理地址總線和數(shù)據(jù)總線 (照常規(guī)虛擬尋址來推論,被編程的地址對應(yīng)于虛擬地址,而實(shí)際地址對應(yīng)于物理地址;參見圖1)。提供了緩沖器(也稱為MPC 55M類型的微控制器中的轉(zhuǎn)換后備緩沖器(TLB),用于對翻譯地址進(jìn)行編程,該翻譯地址使得從被編程的地址到實(shí)際地址成為可能。如此,微控制器管理四個(gè)緩沖器,該四個(gè)緩沖器用于可以在任何給定瞬間執(zhí)行的兩個(gè)分區(qū)·代碼的緩沖器,以及用于被分配給實(shí)時(shí)核的分區(qū)PO的數(shù)據(jù)的緩沖器;以及·代碼的緩沖器,以及用于被分配給在所述瞬間活動(dòng)的任務(wù)的分區(qū)PX的數(shù)據(jù)的緩沖器。對代碼以及數(shù)據(jù)的所有訪問都通過緩沖器來進(jìn)行當(dāng)緩沖器被擦除時(shí),對物理地址的訪問是不可能的。如此,通過只使用四個(gè)緩沖器,只有兩個(gè)期望的分區(qū)是可訪問的(實(shí)時(shí)核以及所選的應(yīng)用程序任務(wù))。其他分區(qū)是不可訪問的。此外,還可以給予超級用戶和用戶到緩沖器的許可,以便防止分配給實(shí)時(shí)核的分區(qū)PO(超級用戶模式)被在用戶模式下執(zhí)行的應(yīng)用程序分區(qū)進(jìn)行不期望的訪問。實(shí)時(shí)核還被配置為實(shí)現(xiàn)定時(shí),以便將執(zhí)行時(shí)間分配給分區(qū)Pl到P3中的每ー個(gè)。該定時(shí)被組織為由微控制器的時(shí)鐘中斷所計(jì)時(shí)的基礎(chǔ)周期的倍數(shù),由中斷所激活的任務(wù)調(diào)用了實(shí)時(shí)核的時(shí)間管理例程,以便實(shí)時(shí)核接過對每ー個(gè)中斷上的控制,以便判斷是否應(yīng)該暫停當(dāng)前分區(qū)的執(zhí)行。在此示例中,實(shí)時(shí)核被特別配置為控制在循環(huán)的執(zhí)行周期內(nèi)的分區(qū)的執(zhí)行,并由此控制任務(wù)的執(zhí)行。執(zhí)行周期包括時(shí)間預(yù)留間隔R,時(shí)間預(yù)留間隔R允許通過從時(shí)間預(yù)留中取出新分區(qū)的執(zhí)行時(shí)間而加入新分區(qū)。被分配給實(shí)時(shí)核的分區(qū)PO包含存儲(chǔ)器頁面(PMl到PM6),每ー個(gè)存儲(chǔ)器頁面都被分配給相應(yīng)的任務(wù)(Tl到T6),以便包含每ー個(gè)任務(wù)的寄存器,實(shí)時(shí)核被配置為管理任務(wù)指針(PT),任務(wù)指針(PT)用于包含當(dāng)前正在被執(zhí)行的任務(wù)頁面的地址。分配給實(shí)時(shí)核的分區(qū)PO包含準(zhǔn)備要被執(zhí)行的且由分區(qū)所組織的任務(wù)列表(LTP1 到LTP3),實(shí)時(shí)核被配置為管理分區(qū)指針(PP)以便訪問準(zhǔn)備好的任務(wù)的列表(LTP1到 LTP3)。準(zhǔn)備好的任務(wù)的每一個(gè)列表(LTP1到LTP;3)是以鏈接首部的形式,鏈接首部包含準(zhǔn)備要被執(zhí)行的任務(wù)中的第一個(gè)和最后一個(gè)任務(wù)的上下文地址。實(shí)時(shí)核保持準(zhǔn)備好的任務(wù)的最新的列表,作為用于觸發(fā)所述任務(wù)的事件發(fā)生(諸如函數(shù)調(diào)用或中斷)的函數(shù)。另外, 實(shí)時(shí)核考慮可以被分配給每ー個(gè)任務(wù)的優(yōu)先級,以便對準(zhǔn)備好的任務(wù)的列表進(jìn)行排序。當(dāng)啟動(dòng)對每ー個(gè)分區(qū)的準(zhǔn)備好的任務(wù)的執(zhí)行吋,實(shí)時(shí)核觸發(fā)超時(shí),并在超時(shí)結(jié)束吋,它暫停所述分區(qū)的執(zhí)行,以便啟動(dòng)對接下來的分區(qū)的準(zhǔn)備好的任務(wù)的執(zhí)行。分區(qū)改變是通過更新分區(qū)指針來執(zhí)行的。執(zhí)行新任務(wù)之前的上下文的改變是通過加載任務(wù)指針PT來執(zhí)行,該任務(wù)指針PT 帶有包含將要被執(zhí)行的任務(wù)的寄存器的存儲(chǔ)器頁面的地址。上文所描述的控制単元的結(jié)構(gòu)允許以特別有效的方式實(shí)現(xiàn)本發(fā)明的上下文改變模式,因?yàn)槠溆绕涫沟脤ξ⒖刂破鞯某绦蛑噶钜约巴鈬O(shè)備的修改成為可能。上下文(任務(wù)或分區(qū))的改變是快速的且恒定時(shí)長的。其時(shí)長首先獨(dú)立于微控制器的內(nèi)部寄存器數(shù)量,其次獨(dú)立于要被管理的準(zhǔn)備好的任務(wù)的數(shù)量或分區(qū)的數(shù)量。如此,本發(fā)明可以使得微控制器實(shí)時(shí)地執(zhí)行多任務(wù)處理操作,而同時(shí)仍然符合 ARINC 653標(biāo)準(zhǔn),并限制控制單元的成本。以常規(guī)方式,被分配給實(shí)時(shí)核的分區(qū)PO包含用于管理實(shí)時(shí)核的資源(時(shí)間延遲、 隊(duì)列……)的其他鏈接列表。自然,本發(fā)明不僅限于所描述的各實(shí)施例,而且還涵蓋如權(quán)利要求書所定義的本發(fā)明的范圍內(nèi)的任何變形。具體而言,分區(qū)可以是相同的或不同的大小。執(zhí)行周期可包括任何給定分區(qū)達(dá)一次或多次??梢灶A(yù)見到用于免于備份和隨后的寄存器恢復(fù)的各種方法·修改寄存器訪問指令,以便以索引模式訪問它們(其中索引由任務(wù)指針來提供),而不是以直接模式訪問它們;·當(dāng)寄存器區(qū)域的地址是可配置吋,借助于任務(wù)指針,授權(quán)(不僅在啟動(dòng)時(shí)的)動(dòng)態(tài)重新配置(不修改指令);以及·創(chuàng)建專用于寄存器的地址總線,其中,可以使用任務(wù)指針來動(dòng)態(tài)地配置地址區(qū)域。電子單元可以是不同于所描述結(jié)構(gòu)的結(jié)構(gòu)。例如,ROM 2可以等效地是電可擦可編程只讀存儲(chǔ)器(EEPROM)類型或非易失性存儲(chǔ)器(NVM)類型。
權(quán)利要求
1.ー種電子控制単元,包括微控制器,所述微控制器具有ROM和RAM,所述ROM包含軟件操作系統(tǒng)的代碼,所述軟件操作系統(tǒng)結(jié)合有用于執(zhí)行計(jì)算機(jī)任務(wù)的實(shí)時(shí)核,所述RAM 包含涉及所述實(shí)時(shí)核和所述任務(wù)的變量數(shù)據(jù),所述RAM和ROM包括與多個(gè)分區(qū)相對應(yīng)的區(qū)域,其中ー個(gè)分區(qū)被分配給所述實(shí)時(shí)核,而其他分區(qū)中的每ー個(gè)分區(qū)都被分配給所述任務(wù)中的至少ー個(gè),所述ROM和所述RAM與地址總線相關(guān)聯(lián),所述地址總線在物理上被編程,以首先防止每ー個(gè)分區(qū)在所述RAM的所述區(qū)域中的另ー個(gè)區(qū)域中進(jìn)行寫入,其次防止執(zhí)行所述ROM的所述區(qū)域中的另ー個(gè)區(qū)域,所述實(shí)時(shí)核與用于將執(zhí)行時(shí)間分配到每ー個(gè)分區(qū)的計(jì)時(shí)器相關(guān)聯(lián)。
2.根據(jù)權(quán)利要求1所述的單元,其中,所述實(shí)時(shí)核被配置為使得所述分區(qū)在循環(huán)的執(zhí)行周期內(nèi)被執(zhí)行。
3.根據(jù)權(quán)利要求2所述的單元,其特征在干,所述執(zhí)行周期包括ー給定分區(qū)達(dá)若干次。
4.根據(jù)權(quán)利要求2所述的單元,其特征在干,所述執(zhí)行周期包括時(shí)間預(yù)留間隔。
5.根據(jù)權(quán)利要求1所述的單元,分配給所述實(shí)時(shí)核的所述分區(qū)包含存儲(chǔ)器頁面,每ー 個(gè)存儲(chǔ)器頁面都被分配給任務(wù),以便包含每ー個(gè)任務(wù)的寄存器,所述實(shí)時(shí)核被配置為管理任務(wù)指針,所述任務(wù)指針用于包含將被執(zhí)行的任務(wù)的頁面的地址。
6.根據(jù)權(quán)利要求1所述的單元,其特征在干,被分配給所述實(shí)時(shí)核的分區(qū)包含準(zhǔn)備要被執(zhí)行的且由分區(qū)所組織的任務(wù)列表,而所述實(shí)時(shí)核被配置為管理分區(qū)指針,所述分區(qū)指針用于訪問準(zhǔn)備好的任務(wù)的列表。
7.根據(jù)權(quán)利要求6所述的單元,其特征在干,所述準(zhǔn)備好的任務(wù)的列表是以鏈接首部的形式,所述鏈接首部包含準(zhǔn)備要被執(zhí)行的任務(wù)中的所述第一個(gè)和最后一個(gè)任務(wù)的上下文地址。
8.根據(jù)權(quán)利要求1所述的單元,其特征在干,所述控制単元是微控制器,所述微控制器包括用于微控制器以及這樣的微處理器的外圍設(shè)備的的一組指令。
9.根據(jù)權(quán)利要求1所述的單元,其特征在干,所述微控制器是可編程邏輯陣列。
全文摘要
本發(fā)明涉及一種電子控制單元,包括微控制器,該微控制器帶有與變量數(shù)據(jù)相對應(yīng)的動(dòng)態(tài)存儲(chǔ)器,以及與軟件操作系統(tǒng)的代碼相對應(yīng)的只讀存儲(chǔ)器,所述軟件操作系統(tǒng)具有用于執(zhí)行計(jì)算機(jī)任務(wù)的實(shí)時(shí)核,動(dòng)態(tài)存儲(chǔ)器和只讀存儲(chǔ)器包括被分配給多個(gè)分區(qū)的區(qū)域,其中一個(gè)分區(qū)被分配給實(shí)時(shí)核,而其他分區(qū)中的每一個(gè)分區(qū)都被分配到任務(wù)中的至少一個(gè),所述控制單元在物理上與被編程地址相組合,以使得每一個(gè)分區(qū)無法在動(dòng)態(tài)存儲(chǔ)器的另一個(gè)區(qū)域中進(jìn)行寫入,并且也無法執(zhí)行只讀存儲(chǔ)器的另一個(gè)區(qū)域。實(shí)時(shí)核與用于將執(zhí)行時(shí)間分配到每一個(gè)分區(qū)的計(jì)時(shí)器相對應(yīng)。
文檔編號G06F9/50GK102597956SQ201080048156
公開日2012年7月18日 申請日期2010年10月19日 優(yōu)先權(quán)日2009年10月22日
發(fā)明者G·雷諾特 申請人:薩甘安全防護(hù)公司