400-821-6015
行(xíng)業(yè)資訊
您當前的(de)位置:首頁 » 行(xíng)業(yè)資訊 » 行(xíng)業(yè)資♠ ™訊
內(nèi)部資訊行(xíng)業(yè)資訊

AUTOSAR 架構下(xià)軟件(jiàn)功能(néng)安全研究>©與應用(yòng)

發布日(rì)期:2024-04-16

【摘 要(yào)】 CP AUTOSAR作(zuò ≈)為(wèi)整個(gè)汽車(chē)行(xíng)業(yè)一(yī)種标準化(huà)的 ↔(de)開(kāi)放(fàng)式架構,随著(zhe)汽車(chē)行(xíngφπ )業(yè)的(de)發展,在車(chē)載'≈↕軟件(jiàn)開(kāi)發中運用(yòng)得(de)越來(lái)越廣泛,同時(shí‌≈≈)汽車(chē)作(zuò)為(wèi)人(rén)們出行(xí☆¥ng)的(de)重要(yào)交通(tōng)工(g→₽ōng)具,汽車(chē)的(de)安全性也(yě) '越來(lái)越重要(yào)。為(wèi)了(le)開(kāi)發滿足ISO 26262ε↕¥∑的(de)車(chē)載軟件(jiàn),文(wén)章(zhāng)分‌₽€•(fēn)析ISO 26262對(duì)軟件(jiàn)安全的(d÷∞£e)要(yào)求,并結合CP AUTOSAR開(k&βāi)發規範以及CP AUTOSAR的(de)功能(néng)安全機(jī÷♦π♥)制(zhì),對(duì)CP AUTOSAR的(de)功能(nén ←g)安全機(jī)制(zhì)進行(xíng)深入研究,同時(shí)&↔₹β基于ISO 26262的(de)軟件(j&δ∞iàn)安全要(yào)求提出基于AUTOSAR架構βδ進行(xíng)軟件(jiàn)安全機(jī)制(zhì)的(de)應用(yòng)方案,對α'"&(duì)當前車(chē)載軟件(jiàn)功能(nén£​g)安全的(de)實施具有(yǒu)重大(dà)意義。

      目前基于CP A∞∏>✔UTOSAR架構開(kāi)發汽車(chē)σ•÷λ電(diàn)子(zǐ)軟件(jiàn)是(¥α&​shì)主流的(de)主機(jī)廠(chǎng)λγ 和(hé)汽車(chē)電(diàn)子(zǐ)控制(zhì)器(qì)供應商最常見(jiànπ♦)的(de)一(yī)種開(kāi)發方式。由于汽 π↓車(chē)電(diàn)子(zǐ)控制(zhì)器(qì)開(₽$♥kāi)發難度大(dà),在開(kāi)發的(de)過程中必須遵↔§ ✘循一(yī)定的(de)開(kāi)發和(hé)測試流程,目前汽車(chē♥→​)行(xíng)業(yè)最重要(yào)的(de)開(kāi)發流程是(shì)‍♠ASPICE和(hé)ISO 26262[7]。ASPICE側重于開(kāi)發功能(nén÷→¥g)安全相(xiàng)關性不(bù)大(dà)的(d✘ →£e)汽車(chē)電(diàn)子(zǐ)控制(zhì)器(qì),而ISO 26262←₩>作(zuò)為(wèi)标準的(de)汽車(chē)電(diàn)子(zǐ)控制(z≥≈ hì)器(qì)安全開(kāi)發标準,對(duì)于車(chē)載電(d↓≤​ iàn)子(zǐ)控制(zhì)器(qì)的(de)安全開(kāi)發流程做(zu$☆✔ò)了(le)嚴格的(de)定義。ISO 26262從(cóng)£Ωφ系統設計(jì)、軟硬件(jiàn)設計(jì)、測試、項目≠λ管理(lǐ)等方面提供了(le)嚴格的(de)流程和(‍ ∏←hé)開(kāi)發标準。在ISO 26↓∞↕₩262中,和(hé)軟件(jiàn)開(kāi)發密切相(xiàng)關的(de≤βπ)主要(yào)有(yǒu)3大(dà)角度,>§分(fēn)别是(shì)軟件(jiàn)開(kāi)發和(hé↕≠£Ω)測試流程、軟件(jiàn)安全分(fēn)析以及接 ₩≤口免于幹擾的(de)要(yào)求,軟件(♦→∑×jiàn)安全機(jī)制(zhì)的(de)實施基于接口免于幹擾的(de)要(yào)求設計¶Ωσ(jì)和(hé)實現(xiàn)[6]

      針對(duì)CP AUTOSAR架構下(Ω§> xià)的(de)軟件(jiàn)功能(néng)安全的(de)開(kāi)發必須要(yào)明(↓σ'míng)确ISO 26262 內(nèi)對(duì)軟件(jiàn)功 γπ¥能(néng)安全的(de)要(yào)求,基于ISO 26262¶€的(de)要(yào)求,将CP AUTOSAR提供的(de)安全機(jī)制(zhì)應用(yò★§£ng)到(dào)汽車(chē)電(diàn)子(✔‌→zǐ)控制(zhì)器(qì)軟件(jiàn)開&←♦(kāi)發中[5]。在CP AUTOSAR的(de)軟件(jiàn∞→)安全機(jī)制(zhì)中,主要(yà≥♥o)提供了(le)內(nèi)存保護(Memory Protection)、時(s☆£≈£hí)間(jiān)保護(WdgM and OS Timing Protec§εtion)、數(shù)據一(yī)緻性(E2E算(&↕"≥suàn)法)等安全機(jī)制(zhì)來(lái)實現(xiàn)I ♠¶SO 26262對(duì)接口免于幹擾的(de)要(yào)求。最終基于AUTOδ₽♣SAR的(de)安全機(jī)制(zhì)得(de)出應→α用(yòng)結論,用(yòng)于安全機(jī)制(zhì)在項目中的(de)實施[8]

      本文(w≠≤≤én)以ISO 26262中對(duì)軟件(jiàn)開(kāi)發的(de)安全要≥£(yào)求為(wèi)基礎,通(tōng)過識别和(hé)選擇CP AUTOSAR內(nλ±₹≠èi)提供的(de)安全機(jī)制(zhì'α),并且對(duì)安全機(jī)制(zhì)進行(xíng)應用(yòng)研究和(hé)測試,σ♦"從(cóng)而針對(duì)CP AUTOSAR∞"←÷下(xià)的(de)軟件(jiàn)功能(néng)安全開(kāβ∑φ>i)發提供一(yī)套完整的(de)方案。整體(tǐ)設計(jì)架構如(>∑rú)圖1所示。

圖片

圖1 整體(tǐ)設計(jì)架構圖

1 CP AUTOSAR介紹

      汽車(chē)電(diàn)子(zǐ)開(kāi)♥♦∑σ發不(bù)像其他(tā)産品的(de)開(kāi)發,有(yǒu)著(zhe)自(zì)己一↑ ≈(yī)套嚴格的(de)規範和(hé)流程,在汽車(chē)行(xíng)業(yè)主↓±€要(yào)是(shì)V模型,它定義了(le)汽車(chē)電(dià ♠n)子(zǐ)産品開(kāi)發一(yī)套從(cóng)需求到(dào)軟硬件(jiàn)&"✔設計(jì)開(kāi)發再到(dào)最終測試交付的(de)完整體(t≈♦<ǐ)系。AUTOSAR(Automotive O•<pen System Architecture ♣,汽車(chē)開(kāi)放(fàng)系統架構)是(shì)主流汽車(chē)OEM、供應商、↕✔芯片企業(yè)等制(zhì)定的(de)一(yī)套軟硬件(jiàn)可(kě)以分 λ≠(fēn)離(lí)複用(yòng)、應用(yòng)算(su↕≠àn)法與底層驅動分(fēn)離(lí)、下(xià)層的≠★×π(de)芯片企業(yè)與上(shàng)層OEM或者ECU供應商基于同樣的(de)規範,獨立<₹并行(xíng)開(kāi)發的(de)軟件(jiàn)開(kā→©÷i)發體(tǐ)系。AUTOSAR 标準嚴格遵循了(le)V 模型的(de)≤¶軟件(jiàn)開(kāi)發流程,在AUTO​♣ SAR标準中定義了(le)從(cóng)₩σ'軟件(jiàn)需求(通(tōng)用(yò¥$ng)全面的(de)需求)到(dào)架構設計(jì)的(de)完整體(‍α®↔tǐ)系,根據AUTOSAR規範就(jiù)可(kě)以開(kāiφ♣)發滿足這(zhè)些(xiē)規範的(de)代碼程序。在AUTOSAR架構中主要(yào‍•)分(fēn)為(wèi)3層架構,分(fēn)别是(shì)APP(•¶Ω♦Application Layer,應用(yòng) 層)、RTE(Ru'λ ✘nning Environment,運行(xíng)環境)、BSW(Basic Soft©>♠ware,基礎軟件(jiàn)層)。整個(gè)AUTOS‍'AR架構分(fēn)層如(rú)圖2所示。

圖片

圖2 AUTOSAR架構分(fēn)層圖

      APP層主要(yào)是(shì)實現(xiàn)φα特定ECU功能(néng)的(de)邏輯算(suàn)法,這(zhè)一(yī)層也(yě‌®♦γ)是(shì)CP AUTOSAR架構裡(lǐ)定義的(de)各個"★☆ (gè)OEM和(hé)供應商在實現(xiàn)上(shàn↕γ≈≠g)存在競争的(de)一(yī)層。一(yī)般在A" λ&PP層會(huì)設計(jì)出ECU中各個(gè)軟件(jiàn)單♦®元模塊的(de)上(shàng)層應用(yòng)架‍♠<構,而這(zhè)部分(fēn)架構并不(bù)是(sh©ε↕ ì)一(yī)個(gè)統一(yī)的(de)C≤<§P AUTOSAR架構,OEM和(hé)β≥供應商可(kě)以根據自(zì)己的(de)應用(yòng)層↕₽♦邏輯去(qù)設計(jì)自(zì)己上(shàng)層應用(yòng)需要(yào)的(de)S↑♦‍WC數(shù)目、各個(gè)SWC模塊之間(jiān)的(de)數(sγ¥↔≈hù)據流和(hé)控制(zhì)流。在CP AUTOSAR架構中,各個(g•'>∏è)APP的(de)調度、數(shù)據交互等通(tōng)過RTE實現(xiàn)。

      RTE提供基礎的(de)通(tōng)信服務,"÷支持SWC之間(jiān)和(hé)SWC到(dào)BSW的(de)通↓♦(tōng)信(包括ECU內(nèi)部的(de)程序調用(y÷β↔òng)、ECU外(wài)部的(de)總線通(tōng)信等情況)。RTE同時(shí)實♠<↓©現(xiàn)對(duì)APP層SWC的(d©×₽e)函數(shù)調度。RTE使應用(yò≥≤>♥ng)層的(de)軟件(jiàn)架構完全脫離(lí)于具體(tǐ)的(de)λ∏✔單個(gè)ECU和(hé)BSW。

      BSW層是(shì)整個(gè)CP AUTOSAR'×€的(de)核心,內(nèi)部按架構上(shàng)的($‍de)分(fēn)層主要(yào)分(fēn)為(wèi)微(wēi)控制(→γ<§zhì)器(qì)抽象、複雜(zá)驅動層、ECU抽象層、服務層≠≠βπ4大(dà)部分(fēn)。各部分(fēn)的(de)作(zuò)用(yòngβ↓™)如(rú)下(xià)。

      1)微(wēi)控制(♣☆'♦zhì)器(qì)抽象層(Microcontroller Abstraction ≈∑Layer)是(shì)在BSW的(de)最底層,包含了(le)訪問(wèn)•✘™§微(wēi)控制(zhì)器(qì)的(de)驅動。微(wēi)★λ&σ控制(zhì)器(qì)抽象層使上(shàng)層軟$®¶件(jiàn)與微(wēi)控制(zhì)器(qì)相(xi®£àng)分(fēn)離(lí),以便應用(yòng)的(de)移植。

      2)複雜(λ≠$zá)驅動(Complex Drivers)可(kě)以實現(xiàn)應用(y→>&↓òng)層通(tōng)過RTE直接訪問(wèn)硬件(jiàn),也(yě)可(kě)以β‌利用(yòng)複雜(zá)驅動封裝已有(yǒu)的(de)非分(fēn)層的(de)軟件≈&✔γ(jiàn),以便向CP AUTOSAR軟件(jiàn)架構←→₽→逐步實施。

      3)ECU抽象層(ECU Abstractionβ₩  Layer)封裝了(le)微(wēi)控制(zhì)器(qì)層以及外(wài)圍設備的σ©↓(de)驅動,将微(wēi)控制(zhì)器(qì)內(nèi)外(wài)設的(de)☆‌γ♦訪問(wèn)進行(xíng)統一(yī),使上 ∏σ(shàng)層軟件(jiàn)應用(yòng)與ECU硬λ©≈>件(jiàn)相(xiàng)剝離(lí)。

      4)服務層(ServiΩ★ce Layer)位于BSW的(de)最上(εα‌​shàng)面,将各種基礎軟件(jiàn)功能(néng)以服務的(de)形式§÷δ封裝起來(lái),供應用(yòng)層‍♠×←調用(yòng)。服務層包括RTOS、通(tōng)信與網絡管理(lǐ)、內(nèi)存管<§理(lǐ)、診斷服務、狀态管理(lǐ)、程序監控等服務。


2 ISO 26262對(duì)軟件(jiàn)安全的(de)要(yào)求‌απβ

      ISO 26262是λ☆↑♥(shì)從(cóng)電(diàn)子(zǐ)、電(diàn)氣及可α★(kě)編程器(qì)件(jiàn)功能(néng)安全基本标準IEC 61508×¥∞↔派生(shēng)出來(lái)的(de),主∑← ≈要(yào)定位在汽車(chē)行(xíng)業(yè)中特定的(de)電(diàn)β"π氣器(qì)件(jiàn)、電(diàn)子(zǐ)設£♥備、可(kě)編程電(diàn)子(zǐ)器(qì)件(jiàn)等專門(mén)用(yòng)±'Ω于汽車(chē)領域的(de)部件(jiàn),旨在提↑♣☆∞高(gāo)汽車(chē)電(diàn)子(zǐ)、≤₹∏電(diàn)氣産品功能(néng)安全的(de)國(guó)際标準。在汽車(chē)♦σ≠™電(diàn)子(zǐ)軟件(jiàn)功能(nén✘™¶g)安全開(kāi)發過程中,主要(yào)關注I¶‌&SO 26262的(de)Part6的(de)要(yào)求ε¶&‍[4]。針對(duì)整個(gè)ISO 26262-6對(duì)軟•←↔件(jiàn)開(kāi)發的(de)要(yào)求,在圖1中已經展示,即軟件( ®jiàn)開(kāi)發測試流程、接口免于幹擾以及安全分(f&​"ēn)析。軟件(jiàn)和(hé)測試流程的(de)要(yào)求需要σ₽♣(yào)流程管理(lǐ)進行(xíng)控制(z'∑>λhì),安全分(fēn)析主要(yào)借助一(yī)些(xiē)專業(yè✔←γ)工(gōng)具進行(xíng)分(fēn)析,而≤‍∑對(duì)于接口免于幹擾的(de)設計(jì)在ISO 26262≤∞中提出了(le)明(míng)确的(de)要(yào)求,而這(zhè)些(xiē)接✘"φ口免于幹擾的(de)設計(jì)需要(yào)>♣在軟件(jiàn)開(kāi)發中提供相(xiàng)關的(de)安全機(jī)制(zh♣γ>ì)來(lái)實現(xiàn)。根據ISO ¥ε§π26262的(de)接口免于幹擾的(de)₩↑要(yào)求,主要(yào)從(cóng)Timing a✘≈nd Execution、Memory、Exchange of Information這(zhè)" ‌3個(gè)方面進行(xíng)分(fēn)析[12]

2.1 Timing and Execution

     ☆↑←← ISO 26262中對(duì)時(shíλ≈)間(jiān)和(hé)執行(xíng)時(shí)序相(xiàng€ β)關的(de)要(yào)求做(zuò)了(le≈↑  )明(míng)确的(de)定義,主要(yào)從(cóng)圖3 列出的(de ↓"÷)5 個(gè)方面進行(xíng)設計(jì)和(hé)評估。Timing和(hé↓Ω)Execution的(de)分(fēn)析主要(yào)是(shì)防止執行(xíng)©$<的(de)函數(shù)被阻塞的(de)時(shí)×∞間(jiān)過長(cháng);防止函數(shù)執行(∑→£xíng)超過一(yī)定的(de)時(sh​€>í)間(jiān);防止函數(shù)調度過快(kuài);防止執行(xí∑£←ng)時(shí)間(jiān)分(fēn)配不(bù)正α♥确;元素接口等元素不(bù)同步。

圖片

圖3 Timing and Execution分♠™(fēn)析內(nèi)容

2.2 Memory

      ISO 26262中對(duì)Memory相(x★↕iàng)關要(yào)求做(zuò)了(le)明(míng)确的(de)定義,主要(yào)從"'✔(cóng)圖4列出的(de)5個(gè)方面進行(xíng)設計(jì)和(hé)評©Ω估。Memory的(de)分(fēn)析主要(yào)是(shì)防止數( ₽•shù)據在內(nèi)存中破壞;保證數(s‍•≈hù)據訪問(wèn)的(de)一(yī)緻性;防止內(nèi)存棧空(kōng)間(jiān)的≈ (de)上(shàng)溢出和(hé)下(xià)溢出;防止數(shù)據讀(dú)寫內(nè&≥×i)存地(dì)址越界。

圖片

圖4 Memory分(fēn)析內(nèi)容

2.3 Exchange of Informatio£↓®n

      ISO 2626≠σ 2中對(duì)Exchange of Information相(xiàng)關的(de)要(₽™♠★yào)求做(zuò)了(le)明(míng)确的(de)定義,主要(yào)從(c¶₩óng)圖5列出的(de)5個(gè)方面進行(xíng)設計(jì)和(hé)☆↔×¥評估。Exchange of Informati✔​↔™on的(de)分(fēn)析主要(yào)是(sh♦φεì)防止數(shù)據錯(cuò)誤;防止數•π(shù)據重複操作(zuò);防止數(shù)據丢失;防止數(shù)據中插入其ε®↓λ他(tā)數(shù)據;防止數(shù)據僞造或者數(shù)據地(dì)址篡改;防©ε₩止數(shù)據操作(zuò)序列出錯(cuò);防止數(shù)據一(yī)發多(du≥↔ō)收出錯(cuò);發送的(de)數(shù)據被部分(fēn)↓α¶π接收;數(shù)據操作(zuò)被阻塞。

圖片

圖5 Exchange of Information分(fēn)析內(nλ↔"èi)容


3 CP AUTOSAR安全機(jī)制(z↔<hì)

      CP AUTOSAR中根據ISO"§∞λ 26262的(de)安全相(xiàng)關需求(Timing and  ε≠Execution、Memory、Exchange of✘σ Information),提出了(le)對(duì)應的ε₽€(de)安全機(jī)制(zhì),即通®™ €(tōng)過時(shí)間(jiān)保護(WdgM and OS Timing Protect↓₹♣©ion)、內(nèi)存保護(Memory Protectio↕≥→‌n)、數(shù)據一(yī)緻性(E2E算(suàn)法)等安全™λ←σ機(jī)制(zhì)來(lái)實現(x≈εiàn)[12]

3.1 Timing and Execution的(de)安全↕♣機(jī)制(zhì)

      針對(duì)功能(néng)安全對(duì)Ti☆ πφming and Execution 的(de)安全機(jī)制(zhì),AUTσ₩★×OSAR 中主要(yào)依靠2 個(gè)主要(yα®ào)的(de)功能(néng)來(lái)保證,分(fēn  ₩)别是(shì)AURTOSAR的(de)WdgM協議(♥σyì)棧以及OS的(de)Timing ProtecΩα∏tion。每個(gè)被監控的(de)函數(shù)稱之為(wèi)一(yī)個(gè)S✔'↔↕E(Supervisor Entity)。在WdgM整個(gè"‌)協議(yì)棧中,主要(yào)提供了(l♦↔¥>e)3種監控手段,具體(tǐ)的(de)監控作(zuò)用(yòng)內©∏<↕(nèi)容如(rú)下(xià)。

      1)Alive Supervisor監控←Ω:周期函數(shù)在特定的(de)時(shí)間(jiān)內(nèi)調用(yòng)不(b←£Ωù)能(néng)頻(pín)率過快(kuài∞ )或者過慢(màn)。SE的(de)WdgM_Checkpoint Rea→<ched每調用(yòng)一(yī)次,對(duì)應的(de)Checkpoin≈★t的(de)Alive Counter就(jiù‍₩→)會(huì)加1,主函數(shù)在定義的(de)監控周期內(nèi)會(huì)去≥δ®(qù)檢測Alive Counter的(de)數(shù)目。隻有(y §ǒu)Alive Counter在該周期內(nèi)屬于定義的(de)次數(shù)範圍才認σ±為(wèi)該SE處于正常的(de)模式,如(rú)果Alive Counter小(xi☆ ↕ǎo)于定義的(de)調度次數(shù)最小(xiǎo)值則認為(wèi)所監控的(™÷de)SE 執行(xíng)太慢(màn),相(xiàng)反Al'Ωive Counter大(dà)于定義的(de)調度次數(shù)最大(dà)值,則認為(w∑∑èi)SE執行(xíng)得(de)太快(kuài)。

      2)Deadli$←♣ne Supervisor監控:監控2個(gè)函數(shù)調用(yòng)間(jiān♦↕)隔的(de)時(shí)間(jiān)限制(zhì)。Dead₽ line Supervision主要(yào)用(yòng)于監控非周期‍$運行(xíng)的(de)SE,主要(yà♠☆≥‍o)定義了(le)某個(gè)事(shì)件(jiàn)發生(shēn  g)後,在特定的(de)時(shí)間(jiān)窗(chuāng)內(nèi)↓♣去(qù)執行(xíng)相(xiàng)應SE的(de)Checkpoint​δ£,一(yī)般認為(wèi)在事(shì)件(≈©jiàn)發生(shēng)後在定義的(de)'β®>最短(duǎn)時(shí)間(jiān)和(hé✘∑∏™)最長(cháng)時(shí)間(jiān)內(nèi)去(qù)執行(↕λ•xíng)相(xiàng)應的(de)Checkpoint,認為(wèi)程序屬于正常的γ↑(de)執行(xíng),如(rú)果在事(shì)件(jiàn<±₹φ)發生(shēng)後執行(xíng)相(xiàng)關SE的(de)Checkpoint時(shσ¶™∑í)間(jiān)小(xiǎo)于最小(xiǎo)的(de)時(shí)間(jiān),或者 ×∑₩大(dà)于最大(dà)的(de)時(shí)間(jiā±λn)去(qù)執行(xíng)SE的(de)Checkpoint都(dōu)認為σ>(wèi)是(shì)錯(cuò)誤的(de)。

      3)Logic Supervis•$★δor監控:監控程序按照(zhào)設計(jì)的(de)調用(yò♠>‍βng)邏輯進行(xíng)調用(yòng)。主要(y♣"ào)用(yòng)于監控程序是(shì)否按照(zhào)正确∑↕λ的(de)邏輯轉換條件(jiàn)去(qù)執行(xíng)。對(→₽<duì)于每一(yī)個(gè)Logical Supervision都(dōu)↑>有(yǒu)一(yī)個(gè)調用(yòng)關系圖來(lái)表示SE中各個(gè)Chec€✔₽kpoint點在控制(zhì)流上(shàng)的(de)轉換關系。

整個(gè)WdgM功能(néng)安全監控機(jī)制(zhì)如(rú)圖 π±§6所示。

圖片

圖6 WdgM功能(néng)安全監控機(jī)制(zhì)

      在WdgM中,"φ÷γ每一(yī)個(gè)SE都(dōu)有(yǒu)一(y​£•ī)個(gè)自(zì)己的(de)Local∑✘✘ Status來(lái)表示自(zì)己"✘SE的(de)Alive/Deadline/₩¥ε™Logic Supervision的(de)狀态,同時(shí) δ WdgM還(hái)有(yǒu)一(yī)個(gè)全局的(de)Global☆€ Status來(lái)表示整個(gè)監控功能(néng)的(de)狀态[3]。在WdgM初始化(huà)完成後,每個(gè)SE的(de)各個(gè)子(zǐ)功能(n✘ε€¥éng)監控的(de)Local Status以及Global Status 的(de)狀态都(d$ '♥ōu)是(shì)OK 的(de)狀态。每個(gè)SE的•'₹$(de)Local Status以及Global Status都(dōu)包β"含了(le)OK、DEACTIVATED、FAILED、EXPIRED狀态。在每個(gè)SE的(de)功能(néng)進行(xíng)監控的(de)時(≈®≥shí)候,會(huì)根據監控結果在MainFunction中設置對(duì)應的(de)L ¶☆¶ocal Status。其中Alive Supervision有(yǒ™εu)單獨的(de)狀态設置,而Deadline和(hé)L↓÷★ogic Supervision共用(yòng)一(yī)個☆♦"(gè)Local Status。在使用(yòng)時(shí),可(k→α×​ě)以根據每個(gè)SE 的(de)3 個(gè)監控設計(jì)的(de)條件(ji∑<♣àn)在MainFunction中設置對(duì)應的(de)狀态,同時(shí)Main§₹≈σFunction根據定義的(de)所有(yǒu)SE的(de)狀态輸出對(duì)應的(→↔★de)Global Status,如(rú)果最終的(‌✔"de)Global Status出現(xiàn)錯(cuò)誤,User可♥•×(kě)以認為(wèi)系統的(de)時(shí)間(jiān)或者函♦§數(shù)的(de)調度功能(néng)已α↔€經導緻程序出現(xiàn)了(le)Error®π÷,那(nà)麽可(kě)以去(qù)觸發相(xiàng)應的(de)錯('₽≤cuò)誤處理(lǐ)以及故障反應。

      除了(le)WdgM對(du₩↑≥ì)程序的(de)執行(xíng)以及邏輯進∏  行(xíng)時(shí)序的(de)監控之外(wài),在Task執行(xíng)的(de)時(Ω≤¥shí)候,可(kě)以通(tōng)過OS的(de)Timing Protection ₽功能(néng)實現(xiàn)對(duì)函數(shùγ‍)調度以及Task被Block的(de)時(shí)間(jiān)監控。§γ相(xiàng)比于WdgM的(de)監控,OS Timing Protection的(d∑≤e)函數(shù)監控更側重于非功能(n₽☆™éng)安全的(de)任務Task調度以及被Block時(shí)間(jiān←&§)監控。OS Timing Protectio®§♦n功能(néng)安全監控機(jī)制(zhì)如(r™βú)圖7所示。

圖片

圖7 OS Timing Protection功能(néng)安全監控機(jī)制(zhì ↑ε®)

      圖7中綠(lǜ)€∑​色的(de)是(shì)低(dī)優先級的(de)Task,紅(hóng)色♠™±∏的(de)是(shì)高(gāo)優先級的(de)Tσ↑ask。在實時(shí)搶占的(de)系統中,低(dī)優先級的&‍(de)Task可(kě)以被高(gāo)優先級€✘÷的(de)Task搶占。OS Timing Protection主要(yào)考慮 ↕>低(dī)優先級的(de)Task在被高(gāo)優先¶<σ<級的(de)Task搶占的(de)情況下(xià)執∏φφ₽行(xíng)時(shí)間(jiān)不(bù)σ↕★≥能(néng)超過圖中LOW Deadline定義的(de)時(shí∏©)間(jiān);保證被中斷或者高(gāo)優先級Task Block 的(♠₽♦de)時(shí)間(jiān)不(bù)能(néng)太長(cháφ↔₩&ng);保證LOW Inter-Arive Time的(de)時(shí)間(jiān)不(b↓± £ù)能(néng)調度太快(kuài)。在OS Timing Protection中,β∞¶當達到(dào)上(shàng)述定義的(de)錯(cuò)誤時( ÷'εshí),可(kě)以選擇相(xiàng)應的(de)安全反應(Reset操作(zuò)β≠、結束函數(shù)調用(yòng)等)來(lái)保證程序的(d¶↓e)正常運行(xíng)。

3.2 Memory Protection安全機(jī)制(zhγσì)

      在AUT₩‍♦OSAR中為(wèi)了(le)保證數(shù)據β•訪問(wèn)過程中不(bù)能(néng)相(xiàng)互篡改,減少(shǎoΩ≥÷")低(dī)功能(néng)安全等級或者QM的(d≥₽e)數(shù)據影(yǐng)響到(dào→↕)功能(néng)安全的(de)數(shù)據,需要(yào)增加內(β≠εnèi)存隔離(lí)和(hé)內(nèi)存δ↔★σ保護。在AUTOSAR提供了(le)基于Application級别的(de)功能(néng)安全內¥♠(nèi)存保護機(jī)制(zhì),通(tōng)過将不(bù≈©✔&)同的(de)軟件(jiàn)組件(jiàn)分(fēn)配到(dào)不(bù→↕←)同的(de)Application中實現(xiàn)內(nèi)存訪問(wèn)的(de)≈€隔離(lí)和(hé)內(nèi)存保護。Memory Protection功能(∑δ✔σnéng)安全監控機(jī)制(zhì)如(rú)圖8所≠← ♣示。

圖片

圖8 Memory Protection功能(néng)安全監控機(jī)制(zhì)

      根據功能(néng)安全的(de)目标,"Ω 将模塊劃分(fēn)為(wèi)QM、AS∏♠γIL-B、ASIL-D。對(duì)于每個(gè)等級的(de)模塊組件(jiàΩ©π•n)按照(zhào)功能(néng)安全等級進行(x​€•™íng)劃分(fēn)。需要(yào)在內(nèi)存中定義QM÷®、ASIL-B、ASIL-D的(de)3個(gè)<≠等級的(de)RAM和(hé)ROM空(kōng)間(jiān),并按照(zh∑↔ào)圖8的(de)模塊将模塊內(nèi)的(de)變量和(hé)代碼分(fēn)别映射到(d≥<ào)QM、ASIL-B、ASIL-D的(de)3個(gè)等級的(de)RAM和(hé)ROMπ™ε空(kōng)間(jiān),同時(shí)結合圖8中灰色的(de)圖框[硬件(jiàn>♥)MPU(Memory Protection Un$₹÷↕it)功能(néng)]實現(xiàn)對(duì)內(nèi)存的(de)保護[10]。一(yī)旦出現(xiàn)低(dī)ASIL等級、QM函數(shù)或π₹變量操作(zuò)到(dào)高(gāo)功能$∑×'(néng)安全等級的(de),将會(huì)觸發硬件(jiàn)MPU保護措施,并根據實際應用(yòng)進行(xíng←↑)錯(cuò)誤處理(lǐ)。基于硬件(jiàn)σ≥"£MPU保護的(de)實現(xiàn)邏輯如(rú)圖9所示。

圖片

圖9 基于硬件(jiàn)MPU保護的(de)實現§<€(xiàn)邏輯

      如£ε(rú)圖9所示,內(nèi)存保護機(jī)制(zhì)是(shì)基于OS進行(xíng)™γ管理(lǐ)的(de),因此在實現(xiàn)內(nèi)存保護機(jī)制(∑≈∑$zhì)中必須依賴于OS的(de)運行(xíng)。在集成OS操作(zuò)系統中程ελ♥序運行(xíng)在初始化(huà)階段會(huì)根據 ↕✔​需要(yào)将內(nèi)存保護的(de)地(dì)址設置成默認值,或者将芯片全÷→部內(nèi)存設置為(wèi)都(dōu)可(kě)以訪問(wèn)[9]。在OS 使用(yòng)的(de)嵌入式軟件(jiàn)中會(huì)存在多(duō)個Ω¥✔​(gè)Application,每個(gè)Application含✔÷有(yǒu)多(duō)個(gè)Task,OS在運行(xíng)的(de)時(shí)候可♣ <(kě)以通(tōng)過調度切換Application和(hé)TΩγask的(de)執行(xíng),因此OS執行(xíng)過程中會(huì)實時>">(shí)對(duì)Application和(hé)Task進行(xíng)判斷。當檢測到≠≤ (dào)正在運行(xíng)的(de)Ap™αφγplication或者Task存在內(nèi)存保護機(jī)制(zh♣✘•​ì)後根據設計(jì)中定義好(hǎo)的(de)地(dì)址範圍操作πε(zuò)MPU硬件(jiàn)的(de)RAM和(hé)ROM地(dì)址,↑   将該Application或者Task訪問(wèn)的(de)範圍寫入到(d‍↓λ☆ào)MPU的(de)寄存器(qì),一(yī)旦程序接下(xià)來(lái)運行(x¥ε♥íng)的(de)地(dì)址超過了(le)πεφ®定義的(de)範圍,MPU硬件(jiàn)單元便會(huì)觸發硬件(λ'♣jiàn)錯(cuò)誤,軟件(jiàn)集成者便可(kě)以捕獲該錯(σ♠ cuò)誤,并設計(jì)錯(cuò)誤回調函數(shùπΩ)進行(xíng)錯(cuò)誤處理(lǐ)。

3.3 Exchange of Information安全機(jī)制(zhì)

      針對(duì)功能(néng)安全提出的(de)對​₽(duì)數(shù)據傳輸和(hé)交互過程中出←★≤≥現(xiàn)的(de)要(yào)求,在AUTOSAR中提供了±$(le)E2E(End to End)相σ←(xiàng)關的(de)算(suàn)法來(±™↓$lái)保證數(shù)據在ECU與ECU之間(jiān)或者ECU內(nèi)部之間(jiΩ↔≤ ān)的(de)數(shù)據傳輸的(de)一(yī)緻性[2],圖10展示了(le)E2E保證數(shù)據傳輸一(yī)緻性的(de)原理(l☆γǐ)。

圖片

圖10 Exchange of Information功能(né∑✘✔∑ng)安全監控機(jī)制(zhì)

      AUT₩↑OSAR E2E Lib 提供了(le)多(duō)種₽ 數(shù)據一(yī)緻性保護的(de)算(suàn)法,主要(yào)包括以下(∑δ₩xià)幾個(gè)方面[11]。CRC Lib:通(tōng)過填充CRC算(suàn)法♠₹實現(xiàn);Sequence Counter inc≠∏¥₩remented:發送方增加,接收方Check 是(s₩↔∞hì)否增加;Alive Counter:發送方增加,接收方Check變化(huà),不(∞ ¶bù)Check增加;Data ID:每個(gè)IPDU Group表明(míng ± )特定的(de)安全元素,特定的(de)ECU信息,Data ID 也(yě)會(hu•¶≤ì)用(yòng)于CRC 計(jì)算(suàn);Timeout Detection∏≠♣≠:接收方檢測數(shù)據通(tōng)信超時(shí↓≥>)。

      圖10中3種AUTOSAR提供的(de)數(shù)據一<≤ ↕(yī)緻性實現(xiàn)的(de)方案采用(yòng)了(le)E2E Protection •λWrap(每一(yī)個(gè)需要(yào)保護的(de)數(shù)據都(dōu)✔≈§≈會(huì)使用(yòng)一(yī)個(gè)單獨的(de)E2E接口函數(₽σshù),同時(shí)保護數(shù)據的(de)傳♠≤©"輸必須基于結構體(tǐ)進行(xíng))[1]。其中,路(lù)徑①代表在同一(yī)個(gè)ECU≈ ₩♥中同一(yī)個(gè)OS Application對(duì)發εφ♦送和(hé)接收的(de)數(shù)據進行(xíng)保護,主要(♣¶δyào)采用(yòng)E2E中的(de)CR→×¥C算(suàn)法實現(xiàn)。路(lù)徑②代表數(shù)據在同一(yī)個¥® &(gè)ECU不(bù)同的(de)OS ≈±§λApplication進行(xíng)數(shù)據傳遞,同時(shí)需要(yào)增加額外£‌∞≤(wài)的(de)機(jī)制(zhì)來(lái)解決跨OS Application的(d↓γe)數(shù)據交互,即圖10中的(de)IOC模塊,通(tōng)過增加IOC模塊來♠$(lái)保證不(bù)同Application數(sh ₽₽×ù)據傳輸的(de)一(yī)緻性。一(yī)般隻采用(yòng)∞<§®CTC算(suàn)法實現(xiàn)。路(lù)₽↓‍₩徑③實現(xiàn)了(le)在不(bù)用(yòng)的(de)ECU之間(jiān)數←>λ÷(shù)據一(yī)緻性的(de)保護機(jī)制(zhì),通(tōα₽ng)常這(zhè)種保護機(jī)制(zhì)一(yī)般需要(yào)借助E♥<CU之間(jiān)的(de)通(tōng)信總線β‍↑'實現(xiàn),常見(jiàn)的(d€•£¥e)通(tōng)信總線包括了(le)CAN、L€♣→IN、Ethernet等。

4 結論

      上(shàng)文(w α én)針對(duì)功能(néng)安全要(yào)求以及對(duì)AUTOSAR提供的(de)Ω‍γ>安全機(jī)制(zhì)分(fēn)析,>®♠将功能(néng)安全的(de)要(yào)求和(hé)™<安全機(jī)制(zhì)進行(xíng)了(le¶£±)一(yī)一(yī)對(duì)應。針對(duì)軟件(jiàn)功能(nén$™πg)安全中的(de)時(shí)間(jiān)和(hé)時(shí)序的(de)保護α∑∑∑可(kě)以使用(yòng)AUTOSAR架構中的(de)WdgM協議(yì)棧,集成WdgM≠$的(de)Alive監控、Deadline監控以及Logic監控實現(xiàn)對(duì)程γ♠序的(de)時(shí)間(jiān)監控,集成OS的(φ‌de)時(shí)間(jiān)保護機(j"β≈ī)制(zhì)可(kě)以實現(xiàn)對(duì)Task級别的(de)時(shí)間(ji&‌ān)保護,避免調度時(shí)間(jiān)出錯(cuò)導緻功能(néng)安全目标的(∞≥de)違背;針對(duì)軟件(jiàn)功能(néng)安全要≠♦​£(yào)求的(de)內(nèi)存保護,可(kě)以結合AUTOSAR架構中的(de)OS提供∞<©的(de)內(nèi)存保護機(jī)制(zhì)設置Application訪問(w®♥↔ èn)的(de)內(nèi)存區(qū)間(φ§jiān),結合MPU硬件(jiàn)模塊實現(xiànδ>‌)對(duì)內(nèi)存的(de)訪問(wèn)權限隔離(lí),達到(dào∑​)內(nèi)存保護的(de)目的(de☆λ≈≠);針對(duì)軟件(jiàn)功能(néng)安全<δ✘σ要(yào)求的(de)數(shù)據交互的(de)保護,主要(yà♥♣↔o)借助于AUTOSAR提供的(de)E2E算(suàn)法實現(xiàn)ECU內(n襩i)部數(shù)據交互以及ECU與ECU之間(jiān)數(shù)據交互的(de)保α₩§®護。

      本文(wén)通(tōng)過研究ISO 26262 ↑→☆‍的(de)軟件(jiàn)安全要(yào)求,結合AUTOSAR提供的(de)安全機(jī)制(zσ<hì),從(cóng)時(shí)間(jiān)、內(nèi)存和(hé)數₽​"(shù)據交互3個(gè)方面提出了(le)軟件(jiàn)安全機(jī$λ¶λ)制(zhì)的(de)實現(xiàn)方案✔" ,對(duì)當前車(chē)載軟件(jiàn)功♦ 能(néng)安全的(de)實施具有(yǒu)重大(dà)意義£≥♦。


參考文(wén)獻:

[1]陳燦,楊興達,方菱.基于決策表的(de)AUTOS ÷σ§AR操作(zuò)系統一(yī)緻性測試研究[J].計(jì)算(suàn)機ε☆(jī)工(gōng)程與科(kē)學,2023,45(4):622-629.

[2]宋俊飛(fēi),翟成超,範慧,等.基于AUTOSAR跨ECU平台的(de)Eδ'£2E保護機(jī)制(zhì)的(de)實現(xiàn)[J].汽車(chē)電(diàn)器(✘£ε∑qì),2023(3):25-28.

[3]李思健,石春,吳剛,等.基于AUTOSA¶←↑​R的(de)控制(zhì)流檢測模塊的(de)設​<×↔計(jì)與實現(xiàn)[J].儀表技(jì)術(shù),↕♣☆2022(4):1-6,60.

[4]辛強,朱衛兵(bīng),胡璟.基于ISO 26262的(de)新能(‌£néng)源汽車(chē)電(diàn)子(zǐ)電(diàn)器(÷€♦qì)部件(jiàn)功能(néng)安全開(kāi)發簡介[J®↕¥].汽車(chē)零部件(jiàn),2021(6):63-65.

[5]李争鵬.基于ISO 26262的(de)驅動電α↓(diàn)機(jī)系統功能(néng)安全概念設計(jì)及測試[J♥↑].汽車(chē)實用(yòng)技(jìβ☆©)術(shù),2022,47(23):160-164.

[6]彭斐.ISO 26262保證汽車(chē)功能(néng)安全的(de)新思路(♥♣lù)[J].汽車(chē)與配件(jiàn),2015(37‍₩):30-33.

[7]劉佳熙,于世濤,郭輝.符合ISO 26262要(y§$​ào)求的(de)汽車(chē)起停系統功能(néng)安全開(kāi)發[J].§€上(shàng)海(hǎi)汽車(chē), ÷♦$2014(4):59-62.

[8]ISO 26262—2018,Road vehicles——Functional safe↓ πty[S].

[9]葛紋材,朱元,王恩東(dōng),等.基于AUTOSAR标準的(de)軟件↔ •(jiàn)內(nèi)存保護機(jī)制(zhì)實現(xiàn)[J].‌ 信息通(tōng)信,2020(11):5-7.

[10]謝(xiè)淩雲.基于ISO 26262混合ASIL系統設計(jì)應用(yòn₩©₽g)研究[J].傳動技(jì)術(shù),2021,35(4):32-38.

[11]白(bái)志(zhì)浩,張麗(lì),吳肇蘇,等.基于ISO 2626δ₩₹φ2的(de)EV用(yòng)動力電(diàn$ ↔)池系統功能(néng)安全設計(jì)[J].電(diàn)源技(jì)÷→¶術(shù),2021(5):626-629.

[12]還(hái)宏生(shēng).汽車(chē)設計(jì)中的(ε↑"≤de)安全要(yào)求及ISO 26262标準[J].汽車(chē)零部件(j>✔iàn),2012(10):41-43.

[13]方曉穎.基于AUTOSAR标準的(de)E2E保護[J]∏ .汽車(chē)與駕駛維修(維修版),2020(3):81-83.


轉自(zì)智能(néng)汽車(chē)設計(jì)

北京德智尚車聯科技有限公司版權所有(yǒu) 京ICP證000000号   技(jì)術(shù)支持:網站(zhàn)建設