接上(shàng)文(wén):AUTOSAR功能(néng)安全機(jī)制(zhì)(一(yī)→≈&)內(nèi)存分(fēn)區(qū)與實現(x¥✘®iàn)
2.2時(shí)序監控
時(shí)序是(shì)嵌入式系統的(de)一(yī)個(gè)重要(≈σ↑✔yào)屬性。安全行(xíng)為(wèi)要(yào)求在正确的(de)時♠ €✘(shí)間(jiān)內(nèi)執行♥ β(xíng)系統操作(zuò)和(hé)響應。
正确的(de)時(shí)間(jiān)可(kě)以用(yòng)一(yī)組★≠必須滿足的(de)時(shí)序約束來(lái)描述。然而,A♥♥UTOSAR SWC本身(shēn)無法确≈₩保正确的(de)時(shí)機(jī)。這(zhè)取 ↔φ∏決于AUTOSAR運行(xíng)時(shβ←í)環境和(hé)基礎軟件(jiàn)的(de)适當支持。在集成過程中,←需要(yào)确保AUTOSAR SWC的(de)時(∏®• shí)序約束。
2.2.1故障模式
根據ISO26262,以下(xià)與時(shí)序和(hé)執行(xíng&±←)相(xiàng)關的(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ù)正确
時(shí)序保護和(hé)監控可(kě)以描述為(wèi)對 λλβ(duì)以下(xià)屬性的(de)監控&$¶:監控任務在指時(shí)序間(jiān)調度,滿足執行(xíng)時(shí)間(ji→ān)預算(suàn),并且不(bù)獨占OS資源。
為(wèi)了(le)保證與安全相(xiàng)©✘關的(de)功能(néng)将遵守其時(shí)序約束,應檢測并處理(lǐ)壟斷C£♣'γPU的(de)任務(例如(rú)CPU負載過重,太多(du×≤∏ō)中斷請(qǐng)求)。
2.2.2描述
AUTOSAR提供以下(xià)時(shí)序監控機(σ↑πjī)制(zhì):
-
使用(yòng) OS的(de)時(shí)序保護機(jī)制(zhì)。σ₹
-
使用(yòng)Watchdog Manager進行(xíng)時(shí)序程序流監<✘€控。
本章(zhāng)将解釋Watchdog ManagΩ§↔er在實現(xiàn)應用(yòng)軟件(jiàn)時(shí)序監控方面的(de)應用(φβ♥γyòng)。
Watchdog Manager還(hái)引入了(le)一(yī)種稱∑≥£為(wèi)邏輯監控的(de)機(jī)制(zhì),該機(jī)制(zhì≥↓™≤)可(kě)以與死線監控結合使用(yòng),以提供高(gāo)診斷覆蓋率。
此外(wài),本章(zhāng)還(hái)将概述AUTOSAR OS的(de)時(shí∏™>)序保護機(jī)制(zhì)。
2.2.2.1受監控實體(tǐ)
Watchdog Manager監控AUTOS ↓≠AR ECU中應用(yòng)程序軟件(jiàn)的(de)執行(xíng&π© )。監控的(de)邏輯單元稱為(wèi)監控實體(tǐ)。在AUTOSAR中,受監控實體(∑tǐ)和(hé)架構構建基塊之間(jiān)沒有(y≈≥↕ǒu)固定的(de)關系。通(tōng)常,受監控實體(tǐ∑ €≠)可(kě)以表示一(yī)個(gè)SWC或SWC的(de)一(yī)個(gè)Runnable、一(yī)個(gè)BSW模塊或CDD,具體(tǐ)↔™α☆取決于開(kāi)發者的(de)選擇。
受監控實體(tǐ)中的(de)重要(yào)節點被定義為(wèi)檢查↑>λ點。受監控實體(tǐ)的(de)代碼與Watchdog Manager的(de)函數(sβ∞★↔hù)調用(yòng)交互。這(zhè)些(xiē)調用(yòng★₹∑)用(yòng)于向Watchdog Manager報(bào)告已到(¥εdào)達檢查點。
2.2.2.2Watchdog Manager
Watchdog Manager是(shì)AUTOSAR架構的(de)基礎軟件(jiàn)模塊。&εWatchdog Manager将看(kàn)門(mén)狗硬件©₽'§(jiàn)的(de)觸發與軟件(jiàn)執行(xín'✔★g)的(de)監控聯系起來(lái)。當檢測到(dào)對(duìΩ£ &)程序執行(xíng)的(de)時(shí)态和(hé)/< ≠Ω或邏輯約束的(de)違反時(shí),将采取許多π£(duō)可(kě)配置的(de)操作(zuò)λ¥$來(lái)從(cóng)此故障中恢複。
Watchdog Manager為(wè ↑™i)時(shí)序程序流監控提供以下(xià)機(jī)制(zhì):
活體(tǐ)監控:定期監控實體(tǐ)對(duì)執行(xíng)頻(♠φpín)率有(yǒu)限制(zhì)。通(tōng)過活體(tǐ)監控©∏≠,Watchdog Manager會(huì)定期檢查受監控實體β↔↓♥(tǐ)的(de)檢查點是(shì)否已達到(dào)給定限制(zhì)★♣。這(zhè)意味著(zhe)Watchdog Manager會(huì)檢查受監控實>體(tǐ)的(de)運行(xíng)頻(pín)率是(shì)否太高(₽α±gāo)或太低(dī)。
活體(tǐ)監控是(shì)使用(yòng)單個(gè)檢查點執行(xíng≠§φ)的(de),沒有(yǒu)切換。受監控實體(tǐ)必須周期性地(dì)調用(÷< yòng)檢查點,以發出其及時(shí)操作(zuò)的(de)信号。OS定期執行(xíng✔'↕↓)Watchdog Manager以驗證檢查≈↕點參數(shù)。
受監控的(de)實體(tǐ)也(yě)可(kě)以通(tōng)過多(d'★∞♥uō)個(gè)活體(tǐ)監控實例進行(✔>§xíng)監控,因此每個(gè)活體(tǐ)監控都(dōu)包含一(yī)個(gè)獨立≈™的(de)檢查點。請(qǐng)參見(jiàn)圖9。

圖9:具有(yǒu)獨立檢查點的(de)實時(shí)監≠"控
死線監控:非周期性或周期性監控實體(tǐ)對(duì)兩個( φgè)檢查點之間(jiān)的(de)時(shí)間(jiān)安排有(yǒu)單獨的(de)限 ♠φ制(zhì)。通(tōng)過死線監控,Watchdog Manager檢查受監控實體(tǐ)☆₽的(de)兩個(gè)檢查點之間(jiān)的(de)轉換時(shí)間(jiān)©₹₽。這(zhè)意味著(zhe)Watchdog Manageφ≠γr會(huì)檢查受監控實體(tǐ)中的(de)某些(¶♠¶xiē)步驟所花(huā)費(fèi)的(de)時( ∑≈φshí)間(jiān)是(shì)否在配置的(de)最小(xiǎo)值和(hé)最大€™™$(dà)值之內(nèi)。請(qǐng)參見(jiàn)圖10。
如(rú)果從(cóng)未到(dào)達第二 λ 個(gè)檢查點,則死線監控将無法檢測到(d♠••ào)此問(wèn)題。出現(xiàn)此問β"Ω±(wèn)題的(de)原因是(shì),在調用(yòng)第二個(gè)檢查點後,Watchdogλ₽© Manager将執行(xíng)時(shí)序檢查。

圖10:死線監控
2.2.2.3 OS的(de)時(shí)序保護
根據AUTOSAR OS規範,當任務或中斷在運行(xíng)時(sh∑<↑í)錯(cuò)過其死線時(shí),就(jiù)會(huì)發生(shēng)實時(>shí)系統中的(de)時(shí)序故障。
AUTOSAR OS不(bù)提供時(shí)序保護的(de)死線監控。死線監控不(≤×bù)足以正确識别導緻AUTOSAR系統中時(shí)序∏ 故障的(de)任務或中斷。違反死線可(kě™↑λ)能(néng)是(shì)由不(bù)相(xiàng)關的(de)任務或幹擾執行(¥λ€xíng)的(de)中斷引起的(de)。請(qǐng)咨詢AUTOSAR OS規範23了(le₩€≈)解更多(duō)詳情。
在固定優先級搶占式 OS(如(rú)AUTOSAR OS)中,任務或中斷是(shì)否滿€$₩足其死線取決于以下(xià)因素:
-
任務/中斷在系統中的(de)執行(xíng)時(shí)間(jiān)。
-
任務/中斷遭受較低(dī)優先級的(de)任務/中斷阻塞共享資源或禁用(yòng)中斷的(d€πe)阻塞時(shí)間(jiān)。
-
系統中任務/中斷的(de)到(dào)達間(jiān)隔速率。
為(wèi)了(le)安全準确地(dì)提供σ✔↓≥時(shí)序保護, OS必須在運行(xíng)時(shí)控制(zhì)↓π§€這(zhè)些(xiē)因素,以确保任務/中斷可(kě)以滿足各♣™¶自(zì)的(de)死線。AUTOSAR OS提供以下(xi&¶×≥à)時(shí)序保護機(jī)制(zhì):
-
執行(xíng)時(shí)間(jiān)保護。任務或2類中斷的(de)執行(xíng)時(→¥δshí)間(jiān)上(shàng)限,即所謂的(de)執行(xíng)預算(suà'£πn),通(tōng)過 OS進行(xíng)監控,以防止時(shí)序錯(cuò)©↔γ誤。
-
鎖定時(shí)間(jiān)保護。OS監控資源阻塞、鎖定和(hé)暫停中斷的(de)上(sh¶β•àng)限,即所謂的(de)鎖定預算(suàn)。
-
到(dào)達時(shí)間(jiān)保護。正在激活的(de)任務或2類中斷到(dào)達之間(σδΩjiān)的(de)下(xià)限,即所謂的(de)時(shí)間(jiān)片,通(tōng)過☆₹ OS進行(xíng)監控,以防止時(shí)序錯(cuò)誤。
注意:執行(xíng)時(shí)間(jiān)實施♥&☆需要(yào)硬件(jiàn)支持,例如(rú)時(s✔£hí)序實施中斷。如(rú)果使用(yòng→γ£<)中斷來(lái)實現(xiàn)時(shí)間(jiān)執行(x☆©αíng),則該中斷的(de)優先級應高(gāo)到(dà'☆↕§o)足以“中斷”受監控的(de)任務或中斷。
2.2.3檢測與響應
Watchdog Manager為(wèi)時(shí)序和(hé)邏輯程序流監控提供了(le♦×±)三種機(jī)制(zhì):死線監控、活體(≥αβtǐ)監控和(hé)邏輯監控。
監控機(jī)制(zhì)是(shì)靜(jìng)态配置的(de)。對(du쥮)于受監控實體(tǐ)的(de)監控,可δ÷γ(kě)以采用(yòng)多(duō)種監控機(jī)制(zh¶σ↔ì)。
根據每個(gè)已啓用(yòng)機(jī)制(zhì)的(d"€λe)結果,計(jì)算(suàn)受監控實體(tǐ)的(de)狀态(稱為(wèi)♣☆局部狀态)。當确定每個(gè)受監控實體(t•→♥ǐ)的(de)狀态時(shí),然後根據每個(gè)局部監控狀态,确✘<±€定整個(gè)MCU的(de)狀态(稱為(wèi)全局監控狀态)。
根據每個(gè)受監控實體(tǐ)的(de)局部監控狀态和(hé)★€₹"全局監控狀态,Watchdog Manager會(hu'φ↑ì)啓動許多(duō)機(jī)制(zhì)來(lái)從(cóng)監控失敗中恢複。♦"↑₩這(zhè)些(xiē)範圍從(cóng)受監€±<控實體(tǐ)內(nèi)的(de)局部錯(cuò)誤恢複到(dào™≈)ECU的(de)全局重置。
Watchdog Manager可(kě)以采用(yòng)以下(xià)™₹€錯(cuò)誤恢複機(jī)制(zhì):
-
受監控實體(tǐ)中的(de)錯(cuò)誤處理(lǐ)
如(rú)果受監控實體(tǐ)是(shì)SWC或CDD,則Watc&₩hdog Manager可(kě)以通(tōng)過RTE模式機(jī)制(z±φ ✘hì)通(tōng)知(zhī)受監控實體(tǐ)有(yǒu)關♥±§≈監控情況。然後,受監控實體(tǐ)可(kě)以采取措施從(cóng)該故障中恢複。
Watchdog Manager可(kě)能(néng)會(huì)↔>在檢測到(dào)監控故障時(shí)向診斷事(shì)件(jiàn)管理(lǐ)器(qì)(D¶ ∑EM)注冊一(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)監控故障,則Watchdog Manager模塊可(kě)以通(tōng)過調用(★yòng)BswM請(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)狗。在硬件(jiàn)看(kàn)門(mén)狗超時(shí)後,硬件★Ω↔(jiàn)看(kàn)門(mén)狗将重置E•∏CU或MCU。這(zhè)導緻ECU和(hé)/或MCU硬件(jiàn)的(de)重•σ₽新初始化(huà)以及軟件(jiàn)的(de)完全重新初始化(huà)。
-
立即複位MCU
如(rú)果需要(yào)對(duì)監控故障立即↑≠€做(zuò)出全局響應,Watchdog Man¶<γ∞ager可(kě)能(néng)會(huì)直接導緻MCU複位。這(zh↓±è)将導緻MCU硬件(jiàn)和(hé)完整軟件(jiàn♠ε)的(de)重新初始化(huà)。通(tōng)常,MCU複位不(bù)會(huì)重新初始化♣εΩ(huà)ECU硬件(jiàn)的(de)其餘分(fēn)區(qū)。
注:AUTOSAR文(wén)檔“應用(yòng)程序級别的(de)錯(cuò)誤說★×£★(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)如(rú)何在AUTOSAR中執行(xíng) OS-Applicati± ons/分(fēn)區(qū)終止和(hé)重新啓動。
2.2.4限制(zhì)
-
檢查點的(de)粒度不(bù)是(shì)由Watchdog Man×✔βager固定的(de)。很(hěn)少(shǎo)有(yǒu)粗制(zhì)的™£•>(de)檢查點會(huì)限制(zhì)Watchdog Mana•←☆ger的(de)檢測能(néng)力。例如(rú),如(rú)果應用(yòng)程序SWCφ隻有(yǒu)一(yī)個(gè)檢查點,指示循環可(kě)ε∑£±運行(xíng)已啓動,則Watchdo§←₹ g Manager隻能(néng)檢測此可(kě)運行(xíng)已重新啓動并消除時(sγ₩γhí)序約束。相(xiàng)反,如(r®±ú)果該SWC在可(kě)運行(xíng)的(de)每個✔✔$ε(gè)塊和(hé)分(fēn)支上(shàng)都(dδ∑®✘ōu)有(yǒu)檢查點,則Watchdog Manager也(yěπ↔)可(kě)能(néng)檢測到(dào)該SWC的(de π€)控制(zhì)流中的(de)故障。檢查點的(de)↔ ♥高(gāo)粒度會(huì)導緻Watchdog Manager的(de)複≥∑φ♥雜(zá)和(hé)大(dà)量配置。
-
死線監控有(yǒu)一(yī)個(gè)弱點:它隻檢測延遲(當報(bào)告結束檢查點時(&✘shí)),但(dàn)它不(bù)檢測超時(shí)(當根本沒有(yǒu)報(↔γbào)告結束檢查點時(shí))。
-
不(bù)支持死線監控(即開(kāi)始1、開(kāi)始2、¥結束2、結束1)的(de)嵌套。
-
每個(gè)受監控實體(tǐ)具有(yǒu)多(duō)個(gèγ±↔☆)檢查點的(de)“活體(tǐ)監控”功能(néng)在“" Watchdog Manager規範”中未一(yī)¥¶₽緻地(dì)指定。目前,建議(yì)每個(gè)監γ§控實體(tǐ)僅支持一(yī)個(gè)活體(t©πεǐ)監控檢查點。
-
為(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)函數(sσ↕hù)來(lái)停用(yòng)(或停用≈$★ (yòng)+激活)受影(yǐng)響分(fēn)區(q ↔ū)的(de)所有(yǒu)受監控實體(tǐ)。這(zhè♣σ)有(yǒu)點複雜(zá),在Watchdog Manag φ er規範文(wén)檔的(de)未來(lái)版本中被認為(wèi)是(shìπ↕♣÷)Watchdog Manager的(de)新加功能(néng∞©)。
-
庫無法調用(yòng)BSW,因此庫不(bù)能(néng)由Watchdog Manage♥'r監控。但(dàn)是(shì),可(kě)以通(tōng)過在模塊的(d"δ£e)代碼中放(fàng)置庫調用(yòng)之前和(hé)之後的(de)檢查↓點來(lái)使用(yòng)死線監控,以監控庫實例運行(xíng)。
-
如(rú)何使用(yòng)受監控實體(tǐ)ID标識BSW模塊尚未标準化(huà)。
引用(yòng)來(lái)源:AUTOSAR document 2021
轉自(zì)汽車(chē)電(diàn)子(zǐ)與軟件(jiàn)