接上(shàng)文(wén):
AUTOSAR功能(néng)安全機(jī)制✘☆♠(zhì)(一(yī))內(nèi)存分(fēn>'☆↔)區(qū)與實現(xiàn)
AUTOSAR功能(néng)安全機(jī)制(zhì)(二)時(shí)序監♥∞控
2.3邏輯監控
邏輯監控是(shì)一(yī)種用(yòng)于檢查♦&×軟件(jiàn)正确執行(xíng)的(de)技(jì)術(shù),§∏∑側重于控制(zhì)流錯(cuò)誤。
在應用(yòng)程序的(de)無差錯(cuò)執行©↑↑(xíng)期間(jiān),控制(zhì)流錯(cuò)誤會(huì)導緻與有(yǒ✘™λ×u)效(即編碼/編譯)程序序列的(de)背離(lí)。如(rú)果♥±以不(bù)正确的(de)順序處理(lǐ)一¥≈β(yī)個(gè)或多(duō)個(gè)程序指β↔←§令,或者甚至根本不(bù)處理(lǐ),則會₩≈(huì)發生(shēng)不(bù)正确的(de)控制(zhì)流。例如(rú),控制 (zhì)流錯(cuò)誤可(kě)能(néng)導緻數(shù)據不γ&≈(bù)一(yī)緻、數(shù)據損壞 ±±'或其他(tā)軟件(jiàn)故障。
2.3.1故障模式
ελ'根據ISO26262,以下(xià)與時(shí)序和(hé)執行(xíng)相(xiàn'↔±<g)關的(de)故障可(kě)被視(shì)為(wèi) SWC之間★≈→♦(jiān)幹擾的(de)原因:
-
執行(xíng)阻塞
-
死鎖
-
活鎖
-
執行(xíng)時(shí)間(jiān)分(fēn)配不(bù)正确
-
軟件(jiàn)要(yào)素之間(jiān)的(de)同步不(bù)¥♦α≠正确
程序序列的(de≥ )邏輯和(hé)時(shí)間(jiān)♥β符号在汽車(chē)行(xíng)業(y×≈™è)中使用(yòng),例如(rú)在ISO26262中提到(dào),作(zuò)為(wβ≤èi)檢測處理(lǐ)單元(即CPU,微(wēi)控制(zhì)器(qì))故障的(de•→)度量,以及作(zuò)為(wèi)檢測硬件(jiàn)時(shí★&)鐘(zhōng)故障的(de)度量。
程序序列執行(xíng)中的(de)錯(cuò)誤(ש™ 即程序序列執行(xíng)無效)可(kě)能(néng)導緻數(shù) ≈據損壞、進程崩潰或違反故障靜(jìng)默。ISO26262、IEC6150≤✘♥₹8、MISRA要(yào)求/建議(yì)對(duì)程序序列進行(xíng)邏輯↑>₩監控。
2.3.2描述
對(du$★φì)程序執行(xíng)序列的(de)邏輯監控允許在應用(yòng)程序的(d λ♠e)無差錯(cuò)執行(xíng)期間(j∑₩$iān)檢測導緻與有(yǒu)效程序序列背離(lí)的(de)錯(cuò)☆ 誤。如(rú)果以不(bù)正确的(de)順序處理↓β(lǐ)單個(gè)或多(duō)個(gè)程序指令,或者根本沒有(•→yǒu)處理(lǐ),則會(huì)發生(shēng)不(bù)正确的(de≈↕)程序流。
Watchdog Manager監控AUTOSAR ✘↑∞ECU中應用(yòng)軟件(jiàn)的(de)執行(xíng)。監控>φ♠±的(de)邏輯單元稱為(wèi)監控單元。♦₽®在AUTOSAR中,受監控實體(tǐ)和(÷♣∏hé)AUTOSAR構建模塊之間(jiā↔•£n)沒有(yǒu)固定的(de)關系。通(tōng)常,受監控實體(←¶✘tǐ)可(kě)以表示一(yī)個(gè)SWC或一(yī)個(gè)可(♥≠kě)運行(xíng)的(de)SWC、BSW模塊或CDD,具體(tǐ)取決于開(kā♣☆£i)發者的(de)選擇。
與受監控實 ↕體(tǐ)中的(de)邏輯監控相(xiàngδ≈)關的(de)位置定義為(wèi)檢查點。受監控實體(tǐ)的(de)代碼>β<與Watchdog Manager的(de)函數(shù)調用(yòng)交互。這(zhè)些 ×(xiē)調用(yòng)用(yòng)于向Wat₽±chdog Manager報(bào)告已到(dào)達檢查點。
✔±≈↑每個(gè)受監控實體(tǐ)都(dōu)有(yǒu)一(yī)個(gè)或多(d↑®uō)個(gè)檢查點。受監控實體(tǐ)的(de)檢查點和(hé)檢查點之↔"×間(jiān)的(de)過渡形成一(yī)個(gè)圖形。
圖形可(kě)α©以有(yǒu)一(yī)個(gè)或多(duō)個(gè)始檢查點和(hé≥×♠)一(yī)個(gè)或多(duō)個(gè)終檢查點。假設檢查點屬于同一•≈γ(yī)圖形,則從(cóng)任何始檢查點開(kāi)始ε↓ £到(dào)最後一(yī)個(gè)終檢查點結束的(de)任何順序都(dōu)是(shìα®λ)正确的(de)。
受監控實體(tǐ)中的(de)圖形,稱為(wèi®↑ ™)內(nèi)部圖形。來(lái)自(zì)不(bù)同監控實體(tǐ)的(de)檢查★πβ€點可(kě)以通(tōng)過外(wài)部轉€₽≠移連接,從(cóng)而形成外(wài)部圖形。
←★φ圖11顯示了(le)While-Loop的(de)圖形表示形式,它由檢查點和(h&π©é)轉移組成。
圖11:While-Loop的(de)抽象控制(zhì)流圖
在運行(xíng)時$'∑(shí),Watchdog Manager将驗證受監控實體(tǐ)是(sh$¥÷ì)否根據配置的(de)圖形執行(xíng)。這(zhè)稱為φ÷ (wèi)邏輯監控。
此外(wài),<₩•Watchdog Manager可(kě)以驗證圖形中檢查點和(hé)轉移的(de)時✘(shí)間(jiān)。
&> €nbsp;檢查點之間(jiān)的(de)轉移時(shí)間(jiān)可(kě )以通(tōng)過時(shí)限監控進行(x>"íng)驗證,而邏輯監控則驗證檢查點的(de)正确順序。
2.3.3檢測與響應
在設計(∏™"jì)階段,将識别有(yǒu)效的(de)程׶≠序序列并對(duì)其進行(xíng)建模。在運行×(xíng)時(shí),Watchdog Manager使用(yòng)此模型來(l> ↑ái)監控或監控序列的(de)正确執行(xíng)。
Watchdog Manager為(wèi)時(s®™hí)序和(hé)邏輯程序流監控提供了(le)三種機(jī)制(zhì):時(sh∞ í)限監控、活體(tǐ)監控和(hé)邏輯監≈∞€控。
≠™ 監控機(jī)制(zhì)是(shì)靜(jìng)态配置的(de)。對(duì)于受監β♦✔δ控實體(tǐ)的(de)監控,可(kě)以采用(&φ±yòng)多(duō)種監控機(jī)制(zhì)。
根據每個(gè)已啓用(yòng)機(jī)制(zhì)±¶ ★的(de)結果,計(jì)算(suàn)受監控實體(tǐ)的(de±λ≤)狀态(稱為(wèi)“局部狀态”)。當确定每δ♦↑個(gè)受監控實體(tǐ)的(de)狀态時(shí),然後根據每個(gè)局部監±∑"☆控狀态,确定整個(gè)MCU的(de)狀态(稱為(wèi)σ★₩£全局監控狀态)。
根ασ據每個(gè)受監控實體(tǐ)的(de)局部監控狀态和(hé)全局↓™¶監控狀态,Watchdog Manager會(δ<huì)啓動一(yī)系列機(jī)制(zhì),以從(cóng)監控失敗中恢複。¥←這(zhè)些(xiē)範圍從(cóng)受監控實體(tǐ)內(nèi)的(ε≈de)本地(dì)錯(cuò)誤恢複到(dào)ECU的(de)全局重置。
Ω∞"可(kě)以采用(yòng)以下(xià)錯(cuò)誤恢複機(jī¥≈)制(zhì):
-
受監控實體(tǐ)中的(de)錯(cuò)誤處理(lǐ)
如(rú)果受監控實體(tǐ)是(shì)SWC或CDD,則σ✔Watchdog Manager可(kě)以通(tōng)≤∑φ過RTE模式機(jī)制(zhì)通(tōng)知(zhī)< ₽受監控實體(tǐ)監控失敗。然後,受監控實體(tǐ)←可(kě)以采取措施從(cóng)該故障中恢複。
Watchdog Manager可(kě)能(n♣éng)會(huì)在檢測到(dào)監控故障時(shí)向診斷事(shì)件(jiàn)管理(¶÷πlǐ)器(qì)(DEM)注冊一(yī)個(gè)條目。受監控實體(tǐ)可(kě)能(n↓∞¥éng)會(huì)根據該錯(cuò)誤條目執行(xíng)恢複操作(δπzuò)。 -
分(fēn)區(qū)關閉
如(rú)果Watchdog Manager模塊在位于不(b'>ù)受信的(de)分(fēn)區(qū)中的(de)受監控實體(tǐ) ™♦中檢測到(dào)supervision故障,則Wa♥ €tchdog Manager模塊可(kě)以通(tōng)過調用(yòn☆♠•g)BswM來(lái)請(qǐng)求分&γ¶≠(fēn)區(qū)關閉。
-
通(tōng)過硬件(jiàn)看(kàn)門(mén)狗重置
Watchdog Manager向看(kàn)門(mén)狗接口指示看(kàn)門(mén)狗≥≠•≠接口何時(shí)不(bù)再觸發硬件(jiàn)看(kàn)門(mén)狗。在硬件(j ★iàn)看(kàn)門(mén)狗超時(shí)後,硬件(jiàn♣ ↔)看(kàn)門(mén)狗将重置ECU或MCU。這(zhè)導緻ECU和(hé)/或MC¶∑§U硬件(jiàn)的(de)重新初始化(huà)以♣φ✔ 及軟件(jiàn)的(de)完全重新初始化(huà)。
-
立即複位MCU
如(rú)✘>♣果需要(yào)對(duì)監控故障立即做(zuò)出全局響應 ÷,Watchdog Manager可(kě)能(néng)會(huì)直接導緻MC≈₹U複位。這(zhè)将導緻MCU硬件(jiàn)和(hé)±÷整個(gè)軟件(jiàn)的(de)重新初始化(huà)。
注:AUT'¶¥&OSAR文(wén)檔“應用(yòng)程序級錯(cuò)誤處理(lǐ)說(shuō)明(mí←☆♣↕ng)”提供了(le)有(yǒu)關錯(cuò)誤處理(lǐ)的(de)其他∞ π✔(tā)信息。在文(wén)檔中,解釋了∏∑★(le)如(rú)何執行(xíng)錯(cuò)誤處理(lǐ)以及↓σ'可(kě)以從(cóng)何處獲取所需數(shù)據(例如(rú)替代值)。此外(wà↓≤£≠i),本文(wén)檔還(hái)提供了≈>(le)有(yǒu)關如(rú)何在 &nb™ λ₩sp; AU®₩♠§TOSAR中執行(xíng) OS-Applications/分(fē₽"πn)區(qū)終止和(hé)重新啓動的(de)詳細說(shuō)明(míng)→λ↕•(用(yòng)戶手冊)。
2.3.4限制(zhì)
-
對(duì)于邏輯監控,Watchdog Manager不(bù)支持任何重疊的(d±€e)圖形-一(yī)個(gè)檢查點應屬于最多(₽γε✘duō)一(yī)個(gè)圖形。這(zhè)是¥ε(shì)能(néng)夠将收到(dào)的(de)檢查點通(tōng←∞)知(zhī)分(fēn)配給圖形所必需的(de)。
-
Watchdog Manager不(bù)支持¥ ®對(duì)并發執行(xíng)的(de)監控實體(tǐ£ ✔ )進行(xíng)邏輯監控,因為(wèi)它一(yī)次隻$>®跟蹤圖形的(de)一(yī)個(gè)實例。
為(wèi)了(le)關≈≥₽δ閉或重新啓動(作(zuò)為(wèi)錯(cuò)誤響應)包含受監控實體λ÷(tǐ)的(de)分(fēn)區(qū),集成代碼( OS-Applications的(de± §)重新啓動任務)必須通(tōng)過調用(yòng)Watchdog Manager的$₩'€(de)可(kě)用(yòng)功能(n≥ Ωéng)來(lái)停用(yòng)(或停用(yòng)+激活)所有(÷♣>yǒu)受監控實體(tǐ)(或停用(yòng)+激活)所涉及的(de)分(fēn)£§∑區(qū)。
轉自(zì)汽車(chē)電(diàn)子(zǐ)與軟件(jiàn)