背景技術:
實施例涉及容錯控制系統。
提供安全功能的系統通常利用冗余控制器通過關閉經歷故障或失效的功能來確保安全。如果檢測到故障,那么控制器關閉或控制器失效沉默,其中控制器不產生信號并且輔控制器重新配置為主控制器。
某些系統嘗試利用故障可用系統來實施控制系統,其中額外的控制器用來確保繼續安全操作可以持續一定時間,比如雙重雙工控制器或三重模塊化冗余方法。在雙重雙工方法中,如果第一控制器失效且失效沉默,那么將激活第二控制器且全部致動器將切換至依賴于來自第二控制器的請求。不同于其中一個控制器中的故障會存在于副本控制器中的軟件故障,硬件故障(例如,電源故障、短路接地故障等)通常是獨立的,并且輔控制器很有可能不會有主控制器發生的相同硬件故障并且此后可以正確地運行。在某些操作中,在系統需要瞬間接管主控制器責任或控制器必須運行持續一定持續時間直至另一個控制器可重新配置為接管主控制器責任的情況下,維持該控制器的功能性是至關重要的。因此,系統利用多個控制器作為備份控制器。某些至關重要的功能可能需要復制三個或三個以上的控制器以使該系統在相同驅動/操作/點火循環中容忍一個以上的失效。鑒于在相同驅動循環中可能需要容忍一個以上的控制器失效,將雙重雙工模式朝處理一個以上故障擴展可能不具成本效益。因此,如果必須容忍兩個控制器失效,那么使用傳統的雙重雙工設計將需要四個控制器。回顧一下控制器包括兩個處理器或兩個核心,其中功能在相應的控制器上獨立且同時執行。可替代地,該控制系統可包括一個處理器和一個獨立的監控模塊。從而,每個控制器均將具有由每個控制器內的每個處理器或核心執行的相同功能。因此,如果使用雙重雙工設計且必須容忍兩個控制器失效,那么必須使用三個控制器且將同時并單獨執行六次相同功能,這造成系統資源的昂貴且低效消耗。
對于三重模塊化冗余方法,所有控制器執行相同功能,但是此模式并不能充分擴展。用于確定處理多個失效的單元的數量的公式是2n+1,其中n是失效數量。因此,為了處理兩個故障,需要五個單元。
技術實現要素:
實施例的優點是減少控制器上的處理負荷,使得可釋放處理資源用于其它操作且可降低一個或多個控制器的總體處理負擔。通過將一個控制器指定為主控制器、一個控制器在熱備用中且另一個控制器在冷備用中,僅需要兩個控制器來同時執行某個功能。本文所述的控制系統和技術將控制器維持在主狀態模式中且將控制器維持在熱備用狀態模式中使得如果主控制器故障,那么控制器總是存在于相同或類似于主控制器的狀態中并且可瞬間恢復失效的主控制器的操作。因此,處于冷備用狀態模式中的備份控制器將不會直接從冷備用狀態模式切換至主狀態。
實施例設想一種用于容錯控制器準備就緒的方法。在無故障操作條件下操作時由第一處理器執行各功能。該第一控制器以主狀態模式操作。該主控制器通過通信網絡輸出控制信號以執行控制動作。第二控制器在正常操作條件下以熱備用狀態模式操作。第二控制器通過執行各功能鏡像復制第一控制器以作為冗余控制器操作。至少一個備份控制器在正常操作條件下以冷備用狀態模式操作。如果第一控制器中發生故障,則在正常操作條件下操作的第二控制器從熱備用狀態模式重新配置為主備用狀態模式。響應于第二控制器從熱備用狀態重新配置為主狀態模式,在正常操作條件下操作的所述至少一個備份控制器從冷備用狀態模式重新配置為熱備用狀態模式。
一種容錯控制系統包括以主狀態模式操作的第一控制器。第一控制器執行各功能并在無故障操作條件下操作時控制裝置特征。第二控制器以熱備用狀態模式操作。第二控制器通過用作執行冗余功能的備份控制器來鏡像復制該第一控制器。第三控制器以冷備用狀態模式操作。第三控制器以不執行功能的備用模式操作。如果第一控制器中發生故障,則第二控制器在正常操作條件下操作時從熱備用狀態模式重新配置為主備用狀態模式。如果第二控制器從熱備用狀態模式重新配置為主備用狀態模式或者如果第二控制器在以熱備用狀態模式操作時發生故障,則第三控制器在正常操作條件下操作時從冷備用狀態模式重新配置為熱備用狀態模式。
一種容錯控制系統包括以主狀態模式操作的第一控制器。第一控制器在無故障操作條件下操作時控制裝置特征。第二控制器以熱備用狀態模式操作。第二控制器通過用作執行冗余功能的備份控制器來鏡像復制該第一控制器。多個備份控制器以冷備用狀態模式操作。所述多個備份控制器中的每一個備份控制器具有優先級次序。所述多個備份控制器在以冷備用模式操作時不執行功能。如果第一控制器發生故障,則第二控制器在正常操作條件下操作時從熱備用狀態模式重新配置為主備用狀態模式。如果第二控制器從熱備用狀態模式重新配置為主備用狀態模式或者如果第二控制器在以熱備用狀態模式操作時發生故障,則所述多個備份控制器中具有最高優先級的操作備份控制器從冷備用狀態模式重新配置為熱備用狀態模式。
附圖說明
圖1是示例性集成控制系統的架構框圖。
圖2是以無故障狀態操作的控制器的初始配置。
圖3示出了失效主控制器的實例和備份控制器的重新配置。
圖4示出了失效備份控制器的實例和下一個備份控制器的重新配置。
圖5示出了另一個備份控制器失效的實例和備份控制器的重新配置。
圖6示出了示例性的三個控制器控制系統的全面切換流程圖。
圖7示出了用于集中式方法的主控制器和備份主控制器的示例性重新配置。
圖8示出了用于集中式方法的主控制器和備份主控制器的示例性重新配置。
具體實施方式
以下詳細描述意味著說明性以理解實施例的主題并且不旨在限制主題的實施例或這些實施例的應用和用途。詞“示例性”的任何使用均旨在被解譯為“用作實例、范例或說明”。本文陳述的實施方案是示例性的并且并不意味著被解釋為相比其它實施方案更優選或更有利。本文的描述并不意味著受限于前述發明背景、附圖簡述、發明內容或具體實施方式中呈現的任何明確或隱含的理論。
技術及工藝在本文可以就功能和/或邏輯塊部件來描述,并且可以參考可以由各種計算部件或裝置執行的操作、處理任務和功能的符號來描述。這些操作、任務和功能有時候被稱為是計算機執行的、計算機化的、軟件實施的或計算機實施的。應當明白的是,圖中所示的各個塊部件可以由配置為執行指定功能的任何數量的硬件、軟件和/或固件部件來實現。例如,系統或部件的實施例可以采用各種集成電路部件(例如,存儲器元件、數字信號處理元件、邏輯元件、查找表等,其可以在一個或多個微處理器或其它控制裝置的控制下執行多種功能)。
當在軟件中實施時,本文所述的系統的各個元件本質上是執行各項任務的代碼段或計算機可執行指令。在某些實施例中,程序或代碼段被存儲在包括可存儲或傳送信息的任何介質的有形處理器可讀介質中。非暫時性且處理器可讀介質的實例包括電子電路、微控制器、專用集成電路(asic)、半導體存儲器裝置、rom、閃速存儲器、可擦除rom(erom)、軟磁盤、cd-rom、光盤、硬盤等。
本文所述的系統和方法論可用來識別執行控制系統中的軟件功能的控制器中的故障。雖然方法和方法論在下文關于車輛應用中使用的控制器而描述,但是本領域一般技術人員應明白,汽車應用僅僅是例示性的且本文公開的概念也可以應用于任何其它合適的通信系統,諸如(例如)通用工業自動化應用、制造和組裝應用以及游戲。
如本文所述的術語“車輛”可被廣泛地解釋為不但包括乘用車,而且包括任何其它車輛,其包括(但不限于)軌道系統、飛機、越野運動車輛、機器人車輛、機動車、卡車、運動型多用途車(suv)、露營車(rv)、軍用車、飛行器、農用車以及建筑車輛。
圖1中示出示例性集成控制系統的架構框圖。這樣的控制系統將通常利用兩個或兩個以上控制器使得如果主控制器發生硬件錯誤,那么可輕易啟用至少一個備份控制器以控制該控制系統的特征或對錯誤中的特征的受限功能性提供控制。
在圖1中,該控制系統包括第一控制器12、第二控制器14和第三控制器15。如本文所述的示例性系統是基于車輛的,但是如早期所述,該架構可應用于非車輛系統。第一控制器12指定為主控制器并且包括利用第一核心16和第二核心18用于執行主控制的雙核處理器。第二控制器14是備份控制器,其包括利用第一核心19和第二核心20如同第一處理器12來執行冗余功能的雙核處理器。第三控制器15也是備份控制器,其包括利用第一核心21和第二核心22如同第一處理器12來執行冗余功能的雙核處理器。可替代地,每個相應控制器可以利用兩個處理器而不是雙核處理器或具有獨立安全監控器/檢查器的單個處理器。應當理解的是,示例性架構是示例性的且本文所述的技術的使用不限于控制器利用雙重處理方法來實施失效沉默的系統。為了本文的說明性目的,第一控制器12、第二控制器14和第三控制器15是具有相同硬件和相同軟件的相似控制器。然而,該架構中的某些裝置可以利用不同裝置(諸如不同電源)使得如果控制器由于電源而發生錯誤,那么這不影響另一個控制器。第一控制器12指定為主有效控制器并且接收輸入信號,且基于輸入信號執行功能并且在處于操作且無故障狀態中時通過通信網絡24向其它裝置輸出控制信號。第一控制器12在無故障操作條件(本文稱為正常操作條件)下操作并且將產生控制信號且傳輸控制信號用于控制車輛裝置的特征。
用作備份控制器的第二控制器14和第三控制器15接收數據并且執行功能,但當第一控制器12在正常操作條件下操作時控制系統上的裝置并不使用輸出控制信號。
第一控制器12、第二控制器14和第三控制器15經由通信網絡24進行通信。應當理解的是,通信網絡可以包括(但不限于)通信區域網(can)、can-fd、flexray、與以太網的交換網絡、無線通信或使用網關的多個網絡。要求是控制器和傳感器/致動器中的每一個可彼此通信。第一控制器12、第二控制器14和第三控制器16利用通信網絡24來接收和傳輸傳感器26與致動器28之間的數據。
傳感器26感測狀態條件并且向控制器傳輸輸入信號。當第一控制器12從傳感器26接收到輸入信號時,主控制器12的每個核心16和18同時利用輸入數據執行軟件功能。第一控制器12基于所執行的功能向致動器28輸出控制信號。致動器28包括用于致動車輛系統的特征的裝置。通常,特征是至關重要的或車輛用來維持車輛的至少某個安全操作所必需的特征。這樣的控制裝置可以包括(但不限于)制動控制和轉向控制。在故障操作條件下,啟用關鍵裝置的功能性(雖然有所限制)以允許駕駛員安全地操作車輛直至車輛可駕駛至用于檢查或允許車輛達到安全或最低風險條件的位置。
第一控制器12包括比較模塊30,第二控制器14包括比較模塊32,且第三控制器15包括比較模塊34。每個相應的比較模塊執行相應控制器內的相應核心的輸出結果之間的比較操作。該比較操作確定來自相應控制器內的每個核心所執行的功能的結果是否相同或類似,因為每個核心利用相同的輸入數據執行相同功能。應當理解的是,盡管控制器的相同/確切執行將是最佳的,但是控制器的執行并不需要是確切的或同時的。狀態是否確切地匹配且是否相同取決于系統中的同步量(例如,同步時間的全局概念以及全部控制器對“當前”時間具有相同理解,且主備用和熱備用同時且以相同輸入執行功能)。然而,應當理解的是,該系統無法總是在主備用狀態與熱備用狀態之間以確切相同的狀態完全同步,且此技術將應用于包括具有類似但并非相似/確切狀態的不完全同步的系統。如果核心無錯誤地操作,那么結果應該相同。如果結果不同,那么該相應控制器中可存在錯誤。因此,每個比較模塊需要由相應控制器內的每個核心對所執行的功能結果進行兩次輸入比較用于確定它們的相應控制器中是否發生錯誤。結果在通信網絡24上傳輸至其它裝置諸如通信網絡24上的其它控制器和致動器。這兩個控制器可包括失效沉默解碼器/判斷器模塊用于監控其它控制器中的錯誤條件以在出現故障時重新配置控制器。
在第一控制器12基于輸入數據正在執行功能期間,第二控制器14和第三控制器15鏡像復制第一控制器12,并且基于相同的數據同時執行相同的功能。這稱為冗余。第二控制器14和第三控制器15以與第一控制器12相同的狀態通過執行功能來鏡像復制第一控制器12。這將在第一控制器12中發生錯誤的情況下執行,然后第二控制器14和第三控制器15必須準備好立即接管第一控制器12的操作。為了即時接管第一控制器12的操作,第二控制器14或第三控制器15必須與主控制器12處于相同的狀態。也就是說,兩個備份控制器中的任一個必須如第一控制器12一樣同時地實現并執行相同的功能,以容許第一控制器12中的控制器故障。因此,相關的是,控制器中的一個執行冗余的關鍵軟件,以便識別何時第一控制器12中發生了錯誤,并且在主控制器故障(即,失效沉默)時即時地接管控制操作。這要求備份控制器在相同的狀態下操作,使得在將備份控制器重新配置為主控制器時不存在時延。如果相應的備份控制器在發生故障時未在與主控制器相同的狀態下操作,則會發生時延。這種事件下要求備份控制器確定主控制器正在哪個狀態下操作,然后開始執行功能以趕上檢測到錯誤時主控制器處于的位置。在關鍵操作(例如,自主駕駛操作)中是不期望這種延遲的,并且如果主控制器在備份控制器可以達到速度并接管操作之前不能維持功能,則會導致操作不安全。
為了一致性的目的,如下圖2至圖5將使用如圖1中所示的類似的元件編號。如圖2中所示,當控制系統正在正常操作條件下操作時,第一控制器12在主狀態模式(p)中操作,第二控制器14在熱備用狀態模式(hs)下操作,并且第三控制器15在冷備用狀態模式(cs)下操作。在不主動鏡像復制第一控制器12的意義上,同時在冷備用狀態模式(cs)中操作的第三控制器15并不是冗余的。相反地,第三控制器15可以一直處于休眠直到被需要,或者如果需要的話,可以在其他控制器正在正常操作條件下操作的同時被另一系統分配給其他用途。因此,節省或重新分配系統資源以更有效地使用第三控制器15。因此,第一控制器12從傳感器26接收輸入信號,并且主動地執行功能并且經由通信網絡24向控制系統中的致動器28和其他設備提供控制信號,同時第二控制器14在鏡像復制第一控制器12的冗余模式中操作。如果第一控制器12或第二控制器14有故障,則第三控制器15將被重新配置為另一狀態模式,如下面將討論的。
圖3示出了在原本專用作主控制器的第一控制器12中發生錯誤時的示例性條件。如果錯誤條件被確定為關鍵的,則第一控制器12將優選地進入第一控制器12不發送通信的失效沉默條件。一旦第二控制器14檢測到第一控制器12已經發生故障并且處于失效沉默模式時,第二控制器14將重新配置為主控制器。由于第二控制器14處于熱備用狀態模式(hs),所以第二控制器14在第一控制器12發生錯誤時與第一控制器12正在操作的相同/相似的狀態下操作。因此,第二控制器14可以重新配置為即時接管執行主控制器的功能。致動器28和通信網絡24上的其他設備將把第二控制器14識別為主控制器,以從其接收控制信號。第一控制器12進入失效沉默模式,并且將不再與致動器28和其他設備通信。
再次參考圖3,響應于第一控制器12發生故障并進入失效沉默模式并且第二控制器14重新配置為主控制器,第三控制器15從冷備用狀態模式(cs)重新配置為熱備用狀態模式(hs)。第三控制器15然后將確定現在用作主控制器的第二控制器14正在操作的狀態,并且將開始鏡像復制第二控制器14以執行功能。第三控制器15通過與第二控制器14冗余地并同時地執行功能而成為專用控制器。因此,第三控制器15成為對于第二控制器14的主動備份控制器15。此后,如果第二控制器14發生故障,如圖4中所示,第二控制器14將失效沉默,并且一旦檢測到第二控制器14中的故障時第三控制器將重新配置為主控制器(p)。因此,第一控制器12和第二控制器14將基本上退出控制系統,并且第三控制器15將即時接管先前由第二控制器14維持的操作和控制。
圖5是當前在熱備用狀態模式(hs)中操作的第二控制器14中發生錯誤時的示例。在圖5中,第一控制器12和第三控制器15正在正常操作條件下操作,并且在第二控制器14中檢測到錯誤。第二控制器14進入失效沉默模式。如果第一控制器12發生故障,同時第三控制器15當前處于冷備用狀態模式(cs),則在將第三控制器15從冷備用狀態模式(cs)重新配置為主狀態模式(p)時將發生延遲。也就是說,由于第三控制器15沒有鏡像復制第一控制器12,所以第三控制器15必須確定在故障發生時第一控制器12正在操作的狀態。因此,當第一控制器12中發生故障時,需要一段時間來重新配置第三控制器15以設置參數并進入與第一控制器12相同的狀態。為了確保如果這種情況發生時重新配置第三控制器15不會產生時延,一旦在第二控制器14中檢測到錯誤,則將第三控制器15重新配置為熱備用狀態模式(hs)。可能需要一些時間來將第三控制器15重新配置為該相應的狀態模式,然而這種重新配置是在第一控制器12正在正常操作條件下用作主控制器時執行的。在第三控制器15成功重新配置為熱備用狀態模式(hs)之后,第三控制器15將通過冗余地并同時執行與第一控制器12相同的功能來鏡像復制第一控制器12。
圖6示出了當使用三個控制器時提供用于重新配置每個控制器的狀態的組合和序列的綜合切換流程圖。
在框40中,所有相應的控制器正在正常操作條件下操作,其中第一控制器12處于主狀態模式(p),第二控制器14處于熱備用狀態模式(hs),并且第三控制器15處于冷備用狀態模式(cs)。
在框41中,第一控制器12發生故障,并且第一控制器12進入失效沉默模式。第二控制器14檢測第一控制器12的故障,并且響應于檢測到故障而重新配置為主狀態模式(p)。由于第二控制器14正在鏡像復制第一控制器12,所以重新配置是即時的或具有最小的時延。另外,第三控制器15從冷備用狀態模式(cs)重新配置為熱備用狀態模式(hs),其中第三控制器15鏡像復制第二控制器14。
在框42中,在如框41中所示的重新配置之后,在第二控制器14中檢測到錯誤,并且第二控制器14進入失效沉默模式。第三控制器15檢測第二控制器14的故障,并且響應于檢測到故障而從熱備用狀態模式(hs)重新配置為主狀態模式(p)。由于第三控制器15正在鏡像復制第二控制器14,所以重新配置是即時的或具有最小的時延。在三個控制器中的兩個發生故障后,沒有備份控制器可用。
在框43中,在如框41中所示的重新配置之后,在第三控制器15中檢測到錯誤,并且第三控制器15進入失效沉默模式。第一控制器12和第三控制器15都進入失效沉默模式。已經在主狀態模式(p)中操作的第二控制器14繼續用作主控制器。在三個控制器中的兩個發生故障后,沒有備份控制器可用。
再次參考框40,在第二控制器14中檢測到錯誤,并且流程圖進行到框44。框44表示響應于在每個控制器在正常操作條件下操作之后第二控制器15發生故障而進行的重新配置。第二控制器14發生故障并進入失效沉默模式。由于其中存在正常操作條件,第一控制器12繼續作為主控制器操作。第三控制器15檢測第二控制器14的故障,并且從冷備用狀態模式(cs)重新配置為熱備用狀態模式(hs)。在重新配置之后,第三控制器15鏡像復制第一控制器12。
在框45中,在如框44中所示的重新配置之后,在第一控制器12中檢測到錯誤,并且第一控制器12進入失效沉默模式。第三控制器15檢測第一控制器12的故障,并且響應于檢測到故障而從熱備用狀態模式(hs)重新配置為主狀態模式(p)。重新配置是即時的,因為第三控制器15正在鏡像復制第一控制器14。在三個控制器中的兩個發生故障后,沒有備份控制器可用。
在框46中,在如框44中所示的重新配置之后,在第三控制器15中檢測到錯誤,并且第三控制器15進入失效沉默模式。第二控制器14和第三控制器15現在都處于失效沉默模式。已經在主狀態模式(p)中操作的第一控制器12繼續用作主控制器。在三個控制器中的兩個發生故障后,沒有備份控制器可用。
再次參考框40,在第三控制器15中檢測到錯誤,并且流程圖進行到框47。框47表示響應于在每個控制器在正常操作條件下操作之后第三控制器15發生故障而進行的重新配置。第三控制器14發生故障并進入失效沉默模式。由于其中存在正常操作條件,第一控制器12繼續作為主控制器操作。由于其中存在正常操作條件,第二控制器14繼續在熱備用狀態模式(hs)中操作。
在框48中,在如框47中所示的重新配置之后,在第一控制器12中檢測到錯誤,并且第一控制器12進入失效沉默模式。第二控制器14檢測第一控制器12的故障,并響應于檢測到故障而從熱備用狀態模式(hs)重新配置為主狀態模式(p)。重新配置是即時的,因為第二控制器14正在鏡像復制第一控制器12。在三個控制器中的兩個發生故障后,沒有備份控制器可用。
在框49中,在如框47中所示的重新配置之后,在第二控制器14中檢測到錯誤,并且第二控制器14進入失效沉默模式。第二控制器14和第三控制器15都處于失效沉默模式。已經在主狀態模式(p)中操作的第一控制器12繼續用作主控制器。在三個控制器中的兩個發生故障后,沒有備份控制器可用。
應當理解,可以使用任何數量的備份控制器,并且所需方法是具有單個主控制器、在熱備用狀態模式(hs)中操作的單個備份控制器,以及在冷備用狀態模式(cs)中操作的一個或多個備份控制器,其中在冷備用狀態模式(cs)中操作的那些輔控制器處于休眠或者可以用于其他處理資源,直到有錯誤發生并且由一個或多個控制器重新配置。在控制器有故障后完成重新配置,使得剩余的可操作控制器中的一個在主狀態模式中操作,并且剩余的可操作控制器中的另一個在熱備用模式中操作。也就是說,只有熱備用的控制器可以成為主控制器,并且只有冷備用的控制器可以重新配置為熱備用的控制器。
本文描述了實現重新配置的兩種替代方法。第一種方法是分散式方法,第二種方法是集中式方法。在分散式方法中,每個控制器實現邏輯來檢測系統中任何其他控制器的故障,并且如果必要的話,重新配置為主狀態或熱備用狀態。在集中式方法中,主控制器檢測系統中所有其他控制器的故障,并且確定哪個控制器應當重新配置為主狀態,哪個控制器應當重新配置為熱備用狀態。當做出該確定時,主控制器通知相應的控制器重新配置并且將它們的操作狀態分別改變為主狀態和熱備用狀態。進一步地,在該集中式方法中,備份主控制器監控主控制器的健康狀況,并且如果主控制器發生故障,則備份主控制器將成為主控制器并且分配系統中的另一控制器成為備份主控制器。主控制器將其狀態通信給備份主控制器以保持一致性。
以下描述了為實現選擇用于重新配置的相應主控制器和/或備份控制器的分散式方法的邏輯。也就是說,如果使用三個或多個控制器,則每個控制器需要確定從冷備用狀態模式(cs)到熱備用狀態模式(hs),以及從熱備用狀態模式(hs)到主狀態模式(p)的相應順序變化時自身的順序。
用于以下描述的符號如下。給定功能a的軟件部件,a被分配給表示為controllers_a的一組控制器,控制器的數量表示為n_controllers_a,并且取決于功能a的故障容限要求(即,能夠處理n_controllers_a-1個故障)。還給定controllers_a和{1,...,n_controllers_a}之間的一對一映射,并表示為order_a。例如,order_a(controllerx)=1意味著在正常的無故障操作期間在controllerx上執行a。在另一個示例中,order_a(controllerx)=3意味著a是第二個備份,并且只有在兩個控制器故障后才成為主控制器。給定控制器controllerx(即,屬于控制器組controllers_a)上的a的模式表示為mode(a,controllerx),并且是集合{primary,hot,cold}中的值。此外,屬于controllers_a中的每個控制器controllerx具有檢測controllers_a中所有其他控制器的故障的能力。雖然本示例將控制器描述為發生故障而失效沉默,但是本文描述的技術可用于其中控制器不會失效沉默的系統,而且該系統中控制器能夠通過其他機制檢測故障來檢測控制器故障。還應當理解,該技術可以擴展到多于一個功能。例如,如果添加了另一個功能(例如,功能b),則將值分配給變量controllers_b、n_controllers_b和order_b。因此,可以通過僅為所添加的每個功能x提供controllers_x、n_controllers_xi和order_x的提供值來支持任意數量的功能。根據下面對分散式方法和集中式方法的描述,需要將由控制器維護的功能a的狀態變量復制給每個新功能x。每個功能x的這種狀態變量的值得注意的示例是mode(x,controllerx)、num_controller_failures_x、num_higherprio_controller_failures_x、operational_controllers_x,以及operationalorder_x。
最初,當每個控制器(例如,ecu)正在正常操作條件下操作時,在每個控制器controllerx中設置以下初始參數:
如果order_a(controllerx)=1,則mode(a,controllerx)=primary
如果order_a(controllerx)=2,則mode(a,controllerx)=hot
如果order_a(controllerx)>2,則mode(a,controllerx)=cold
計數器num_controller_failures_a初始化為0
計數器num_higherprio_controller_failures_a初始化為0。
給每個控制器分配預定的優先級號(按照order_a的順序給出),其被用于確定相應的控制器是否應當改變它們的狀態模式。例如,優先級號等于1的控制器分配為主控制器。優先級號等于2的控制器為處于熱備用狀態模式的備份控制器。優先級號大于2的所有其他號碼的控制器為以冷備用狀態模式工作的備份控制器。另外,總控制器故障的計數器設置為0。每個控制器維護跟蹤有故障的控制器的優先級次序故障計數器,該故障控制器具有大于當前跟蹤的控制器的優先級。該優先級計數器也設置為零。要記得,每個控制器維護了對控制器故障總數的自身計數和對具有比其自身更高的優先級的控制器故障的計數。因此,所有控制器維護的對總故障的數量的計數應該是相同的;然而,對具有大于監控控制器的優先級號的故障控制器的計數將不同。
下面的邏輯序列描述了一種分散式方法,其中用于確定控制器應何時重新自我配置的每一個邏輯功能由每個控制器(用controllerx表示)本地執行,這是由于每個控制器都能察覺控制系統中的所有控制器故障。一旦檢測到具有分配優先級的一組控制器(用集合controllers_a-{controllerx}表示)中相應控制器出現故障,運用以下邏輯(故障控制器用controller_failed表示):
(a)遞增num_controller_failures_a;
(b)如果對于故障控制器controller_failed,order_a(controller_failed)<order_a(controllerx),則遞增num_higherprio_controller_failures;
(c)如果order_a(controllerx)-num_higherprio_controller_failures_a=1,則將mode(a,controllerx)設為primary;
(d)如果order_a(ecux)-num_higherprio_controller_failures_a=2,則將mode(a,controllerx)設為hot;
(e)將num_controller_failures報告給應用層。
在步驟(a)中,一旦檢測到故障,則總計數遞增。此外,還識別出故障控制器。
在步驟(b)中,如果故障控制器具有比確定計數的監控控制器優先級號小的優先級號(回想一下所有控制器將執行這些步驟中的每一個并維持自己的計數),則監控控制器遞增更高優先級故障計數。也就是說,比另一優先級號小的優先級號表示其具有更高優先級(即,在成為主要或熱備用方面其具有優先性)。更高優先級故障計數有助于識別在正常操作條件下仍起作用的、比監控控制器具有更高優先級(即較先的優先順序)的控制器的數量。這允許監控控制器確定其是否應當重新配置為熱備用狀態模式(hs)或主狀態模式(p)。
在步驟(c)中,如果監控控制器的優先級號與當前控制器所維持的更高優先級故障計數之間的差值等于1,則當前控制器重新配置為主狀態模式(p)。
如果計數不等于1,則在步驟(d)中檢查差值是否等于2。如果計數等于2,則監控控制器重新配置為熱備用狀態模式(hs)。如果差值大于2,則監控控制器保持處于冷備用狀態模式(cs)。
在步驟(e)中,將控制器故障的通知報告給應用層。此外,通知可為產生的報告的形式,或用戶(例如駕駛者)可通過警報(視覺、聽覺、觸覺)獲得故障警告,可向監控控制系統中出現故障的第三方提供遠程處理訊息,寫入寄存器值以制作可用于軟件應用程序關于故障的信息,或通過通信網路將訊息傳送給其他控制器。糾錯系統響應控制器故障通知取決于應用程序。
下文表示執行用于確定重新配置控制器的相繼順序的邏輯的集中式方法。該集中式方法采用以下附加的標記和假定:
(1)從(基數為n_master_controllers的)一組控制器master_controllers到{1,…,n_master_controllers}的一對一映射order_master_controllers(逆映射表示為order_master_ecus’);
(2)每一主控制器controller_m聯合controllers_a及master_controllers能夠檢測出任何控制器的故障(controller_m本身除外)。
(3)當前主控制器表示為current_master_controller;
(4)當前備份主控制器表示為current_backup_master_controller。
該方法如下:變量current_master_controller與current_backup_master_controller分別識別在系統操作的任何時間點的主控制器與當前備份主控制器。一開始當不存在故障時,current_master_controller為由order_master_controllers’(1)指定的控制器(即順序中的第一位)。current_master_controller針對集合controllers_a中的每一控制器controllerx進行以下初始化(當不存在故障時):
如果order_a(controllerx)=1,則mode(a,controllerx)=primary
如果order_a(controllerx)=2,則mode(a,controllerx)=hot
如果order_a(controllerx)>2,則mode(a,controllerx)=cold。
此外,當系統中不存在故障時,對主控制器設定以下初始化參數:
計數器num_controller_failures_a初始化為0;
集合failedcontrollers_a為空集;
預置num_master_controller_failures=0;
預置current_backup_master_controller=order_master_controllers’(2)。
一旦檢測到集合controllers_a-{current_master_controller}中的控制器出現故障(由controller_failed表示),current_master_controller執行如下的重新配置子程序(rs):
遞增num_controller_failures_a;
分配orderfailed=order_a(controller_failed);
operational_controllers_a=controllers_a-{controller_failed};
定義從operational_controllers_a至{1.…,n_operational_controllers_a}的一對一映射operationalorder_a,其中n_operational_controllers_a是operational_controllers_a的基數,且對于operational_controllers_a中指定的控制器controllerx,根據以下來定義:
如果order_a(controllerx)<orderfailed,則operationalorder_a(controllerx)=order(controllerx);
如果order_a(controllerx)>orderfailed,則operationalorder_a(controllerx)=order(controllerx-1);
如果mode(a,controller_failed)=primary,則
分配mode(a,operationalorder_a’(1))=primary;
分配mode(a,operationalorder_a’(2))=hot;
如果mode(a,controller_failed)=hot,則
分配mode(a,operationalorder_a’(2))=hot;分配controllers_a=operationalcontrollers_a,以及分配order_a=operationalorder_a;
將num_controller_failures報告給應用層;
向current_backup_master_controller通信以下狀態:mode、controllers_a、order_a、num_controller_failures、num_master_controller_failures。
重新配置子程序按如下運作。遞增計數器以跟蹤在系統操作期間已故障的控制器號。此計數器僅考慮托管功能a的那些控制器。隨后,基于給定的靜態優先順序,記錄故障控制器的順序。接著,通過考慮剩余可操作的控制器(即控制器故障后剩余的順序)構造新的優先順序。如果故障控制器以主狀態模式操作,則由當前主控制器使用所述新構造的順序來確定哪一個控制應在主狀態模式下以及哪一個控制器應在熱備用模式下。另一方面,如果故障控制器以熱備用模式操作,則主控制器僅需要檢查新構造的順序以確定該控制器是否應當進入熱備用模式。在這些確定以后,當前主控制器將把故障控制器號報告給應用層,接著將狀態變量通信給當前備份主控制器。最后的通信是必需的,這使得如果當前主控制器故障,當前備份主控制器能正確接管主控制器的角色。在下述段落中描述了這些故障模式和處理。
以上表示正常操作條件,其定義為:主控制器操作無故障并監控執行功能a的其他控制器故障,以及在控制器出現故障的情形下切換其執行模式時通知其他控制器。
為檢測主控制器和備份主控制器故障,附加程序確保在當前主控制器出現故障的情形下,當前備份控主控接管控制,并且確保如果相應主控制器出現故障,至少總有一個備份主控制器準備接管。
通過current_master_controller執行以下邏輯以監控備份主控制器并在備份主控制器中重新分配責任。一旦檢測到集合master_controllers-{current_master_controller}中某一控制器發生故障,采用以下邏輯:
(a1)遞增計數器num_master_controller_failures;
(a2)如果故障控制器為current_backup_master_controller,則
分配current_backup_master_controller為有序集合{order_master_controllers’(num_master_controller_failures+2),order_master_controllers’(num_master_controller_failures+3),…,order_master_controllers’(n_master_controllers)}中的第一可操作(即未發生故障)的控制器。
將以下狀態通信給current_backup_master_controller:mode、
controllers_a、order_a、num_controller_failures、num_master_controller_failures。
在步驟(a1)中,響應于當前主控制器檢測到備份控制器出現故障,在由當前主控制器維護的計數器內遞增主控制器故障的總數量。
在步驟(a2)中,由當前主控制器確定關于在當前備份主控制器(current_backup_master_controller)中是否出現故障。如果是,則當前主控制器將備份主控制器的責任分配給在備份主控制器中具有第二高優先級的下一個控制器。該控制器現在為current_backup_master_controller。
在步驟(a3)中,當前主控制器通知新的當前備份主控制器總故障的計數值(num_master_controller_failures),因為新的當前備份主控制器同樣必須在主控制器故障的情形下維護計數器。同樣還通信所有其他狀態變量。
除當前主控制器監控所有備份主控制器的故障外,當前備份主控制器還必須監控當前主控制器的故障。下文提供檢測當前主控制器(current_master_controller)的故障、接著選擇新的主控制器和備份主控制器的程序。一旦檢測到current_master_controller出現故障,當前備份主控制器即采用以下程序。
(b1)用controller_failed=current_master_controller表示故障控制器,并切換角色成為新的當前主控制器。
(b2)遞增計數器num_master_controller_failures;
(b3)分配current_backup_master_controller為有序集合中的第一可操作控制器;
order_master_controllers’(num_master_controller_failures+2);
order_master_controllers’(num_master_controller_failures+3);order_master_controllers’(n_master_controllers);
(b4)執行重新配置子程序(rs)。
在步驟(b1)中,檢測到當前主控制器檢測出故障,當前備份主控制器成為新的主控制器。在步驟(b2)中,響應于檢測出故障的主控制器,遞增num_master_controller_failures的計數器。這維護了發生故障的主控制器和備份主控制器數量的計數。在步驟(b3)中,分配指定優先順序中下一可操作(即未發生故障)的備份主控制器接管當前備份主控制器的角色。在步驟(b4)中,執行重新配置子程序以確保故障控制器在主、熱或冷備用模式下托管功能a的情形下進行適當的重新配置,以及確保新的備份主控制器接收主控制器的當前狀態。
圖7示出了用于集中式方法的主控制器和備份主控制器的示例性重新配置。如圖7中所示,在第一時間間隔內,第一控制器分配為主控制器,用m表示。第二控制器指定為備份主控制器,用bm表示。
在第二時間間隔,當前備份主控制器bm出現故障。響應于此故障,主控制器m將備份主控制器的角色分配給有序集合中的下一可操作控制器。第三控制器現在指定為新的當前備份主控制器bm。
在第三時間間隔,充當主控制器m的第一控制器出現故障。響應于此主控制器故障,充當當前備份主控制器bm的第三控制器重新配置以充當新的主控制器p。此外,備份控制器的有序集合中下一可操作控制器分配為當前備份主控制器bm。對于可用于系統中的許多備份主控制器這會一直繼續。
圖8示出了用于集中式方法的主控制器和備份主控制器的另一示例性重新配置。在圖8中,在第一時間間隔,第一控制器分配為主控制器,用m表示。第二控制器指定為備份主控制器,用bm表示。
在第二時間間隔,充當主控制器m的第一控制器出現故障。響應于此主控制器故障,充當當前備份主控制器bm的第二控制器重新配置以充當新的主控制器m。此外,備份主控制器的有序集合中下一可操作控制器(即此實例中的第三控制器)分配為當前備份主控制器bm。
在第三時間間隔,充當當前主控制器bm的第三控制器出現故障。響應于此故障,備份主控制器的有序集合中下一可操作控制器(即第四控制器)重新配置為當前備份主控制器bm。對于可用于系統中的許多備份主控制器這會一直繼續。盡管已經詳細介紹了本發明的特定實施例,本發明領域的技術人員應當知道由附加權利要求限定的、用于實現本發明的各種可選的設計和實施例。