AUTOSAR 架構(gòu)下軟件功能安全研究與應用_第1頁
AUTOSAR 架構(gòu)下軟件功能安全研究與應用_第2頁
AUTOSAR 架構(gòu)下軟件功能安全研究與應用_第3頁
AUTOSAR 架構(gòu)下軟件功能安全研究與應用_第4頁
AUTOSAR 架構(gòu)下軟件功能安全研究與應用_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

目前基于CPAUTOSAR架構(gòu)開發(fā)汽車電子軟件是主流的主機廠和汽車電子控制器供應商最常見的一種開發(fā)方式。由于汽車電子控制器開發(fā)難度大,在開發(fā)的過程中必須遵循一定的開發(fā)和測試流程,目前汽車行業(yè)最重要的開發(fā)流程是ASPICE和ISO26262。ASPICE側(cè)重于開發(fā)功能安全相關(guān)性不大的汽車電子控制器,而ISO26262作為標準的汽車電子控制器安全開發(fā)標準,對于車載電子控制器的安全開發(fā)流程做了嚴格的定義。ISO26262從系統(tǒng)設(shè)計、軟硬件設(shè)計、測試、項目管理等方面提供了嚴格的流程和開發(fā)標準。在ISO26262中,和軟件開發(fā)密切相關(guān)的主要有3大角度,分別是軟件開發(fā)和測試流程、軟件安全分析以及接口免于干擾的要求,軟件安全機制的實施基于接口免于干擾的要求設(shè)計和實現(xiàn)。針對CPAUTOSAR架構(gòu)下的軟件功能安全的開發(fā)必須要明確ISO26262內(nèi)對軟件功能安全的要求,基于ISO26262的要求,將CPAUTOSAR提供的安全機制應用到汽車電子控制器軟件開發(fā)中。在CPAUTOSAR的軟件安全機制中,主要提供了內(nèi)存保護(MemoryProtection)、時間保護(WdgMandOSTimingProtection)、數(shù)據(jù)一致性(E2E算法)等安全機制來實現(xiàn)ISO26262對接口免于干擾的要求。最終基于AUTOSAR的安全機制得出應用結(jié)論,用于安全機制在項目中的實施。本文以ISO26262中對軟件開發(fā)的安全要求為基礎(chǔ),通過識別和選擇CPAUTOSAR內(nèi)提供的安全機制,并且對安全機制進行應用研究和測試,從而針對CPAUTOSAR下的軟件功能安全開發(fā)提供一套完整的方案。整體設(shè)計架構(gòu)如圖1所示。圖1整體設(shè)計架構(gòu)圖1CPAUTOSAR介紹汽車電子開發(fā)不像其他產(chǎn)品的開發(fā),有著自己一套嚴格的規(guī)范和流程,在汽車行業(yè)主要是V模型,它定義了汽車電子產(chǎn)品開發(fā)一套從需求到軟硬件設(shè)計開發(fā)再到最終測試交付的完整體系。AUTOSAR(AutomotiveOpenSystemArchitecture,汽車開放系統(tǒng)架構(gòu))是主流汽車OEM、供應商、芯片企業(yè)等制定的一套軟硬件可以分離復用、應用算法與底層驅(qū)動分離、下層的芯片企業(yè)與上層OEM或者ECU供應商基于同樣的規(guī)范,獨立并行開發(fā)的軟件開發(fā)體系。AUTOSAR標準嚴格遵循了V模型的軟件開發(fā)流程,在AUTOSAR標準中定義了從軟件需求(通用全面的需求)到架構(gòu)設(shè)計的完整體系,根據(jù)AUTOSAR規(guī)范就可以開發(fā)滿足這些規(guī)范的代碼程序。在AUTOSAR架構(gòu)中主要分為3層架構(gòu),分別是APP(ApplicationLayer,應用層)、RTE(RunningEnvironment,運行環(huán)境)、BSW(BasicSoftware,基礎(chǔ)軟件層)。整個AUTOSAR架構(gòu)分層如圖2所示。圖2AUTOSAR架構(gòu)分層圖APP層主要是實現(xiàn)特定ECU功能的邏輯算法,這一層也是CPAUTOSAR架構(gòu)里定義的各個OEM和供應商在實現(xiàn)上存在競爭的一層。一般在APP層會設(shè)計出ECU中各個軟件單元模塊的上層應用架構(gòu),而這部分架構(gòu)并不是一個統(tǒng)一的CPAUTOSAR架構(gòu),OEM和供應商可以根據(jù)自己的應用層邏輯去設(shè)計自己上層應用需要的SWC數(shù)目、各個SWC模塊之間的數(shù)據(jù)流和控制流。在CPAUTOSAR架構(gòu)中,各個APP的調(diào)度、數(shù)據(jù)交互等通過RTE實現(xiàn)。RTE提供基礎(chǔ)的通信服務,支持SWC之間和SWC到BSW的通信(包括ECU內(nèi)部的程序調(diào)用、ECU外部的總線通信等情況)。RTE同時實現(xiàn)對APP層SWC的函數(shù)調(diào)度。RTE使應用層的軟件架構(gòu)完全脫離于具體的單個ECU和BSW。BSW層是整個CPAUTOSAR的核心,內(nèi)部按架構(gòu)上的分層主要分為微控制器抽象、復雜驅(qū)動層、ECU抽象層、服務層4大部分。各部分的作用如下。1)微控制器抽象層(MicrocontrollerAbstractionLayer)是在BSW的最底層,包含了訪問微控制器的驅(qū)動。微控制器抽象層使上層軟件與微控制器相分離,以便應用的移植。2)復雜驅(qū)動(ComplexDrivers)可以實現(xiàn)應用層通過RTE直接訪問硬件,也可以利用復雜驅(qū)動封裝已有的非分層的軟件,以便向CPAUTOSAR軟件架構(gòu)逐步實施。3)ECU抽象層(ECUAbstractionLayer)封裝了微控制器層以及外圍設(shè)備的驅(qū)動,將微控制器內(nèi)外設(shè)的訪問進行統(tǒng)一,使上層軟件應用與ECU硬件相剝離。4)服務層(ServiceLayer)位于BSW的最上面,將各種基礎(chǔ)軟件功能以服務的形式封裝起來,供應用層調(diào)用。服務層包括RTOS、通信與網(wǎng)絡管理、內(nèi)存管理、診斷服務、狀態(tài)管理、程序監(jiān)控等服務。2ISO26262對軟件安全的要求ISO26262是從電子、電氣及可編程器件功能安全基本標準IEC61508派生出來的,主要定位在汽車行業(yè)中特定的電氣器件、電子設(shè)備、可編程電子器件等專門用于汽車領(lǐng)域的部件,旨在提高汽車電子、電氣產(chǎn)品功能安全的國際標準。在汽車電子軟件功能安全開發(fā)過程中,主要關(guān)注ISO26262的Part6的要求。針對整個ISO26262-6對軟件開發(fā)的要求,在圖1中已經(jīng)展示,即軟件開發(fā)測試流程、接口免于干擾以及安全分析。軟件和測試流程的要求需要流程管理進行控制,安全分析主要借助一些專業(yè)工具進行分析,而對于接口免于干擾的設(shè)計在ISO26262中提出了明確的要求,而這些接口免于干擾的設(shè)計需要在軟件開發(fā)中提供相關(guān)的安全機制來實現(xiàn)。根據(jù)ISO26262的接口免于干擾的要求,主要從TimingandExecution、Memory、ExchangeofInformation這3個方面進行分析。2.1TimingandExecutionISO26262中對時間和執(zhí)行時序相關(guān)的要求做了明確的定義,主要從圖3列出的5個方面進行設(shè)計和評估。Timing和Execution的分析主要是防止執(zhí)行的函數(shù)被阻塞的時間過長;防止函數(shù)執(zhí)行超過一定的時間;防止函數(shù)調(diào)度過快;防止執(zhí)行時間分配不正確;元素接口等元素不同步。圖3TimingandExecution分析內(nèi)容2.2MemoryISO26262中對Memory相關(guān)要求做了明確的定義,主要從圖4列出的5個方面進行設(shè)計和評估。Memory的分析主要是防止數(shù)據(jù)在內(nèi)存中破壞;保證數(shù)據(jù)訪問的一致性;防止內(nèi)存??臻g的上溢出和下溢出;防止數(shù)據(jù)讀寫內(nèi)存地址越界。圖4Memory分析內(nèi)容2.3ExchangeofInformationISO26262中對ExchangeofInformation相關(guān)的要求做了明確的定義,主要從圖5列出的5個方面進行設(shè)計和評估。ExchangeofInformation的分析主要是防止數(shù)據(jù)錯誤;防止數(shù)據(jù)重復操作;防止數(shù)據(jù)丟失;防止數(shù)據(jù)中插入其他數(shù)據(jù);防止數(shù)據(jù)偽造或者數(shù)據(jù)地址篡改;防止數(shù)據(jù)操作序列出錯;防止數(shù)據(jù)一發(fā)多收出錯;發(fā)送的數(shù)據(jù)被部分接收;數(shù)據(jù)操作被阻塞。圖5ExchangeofInformation分析內(nèi)容3CPAUTOSAR安全機制CPAUTOSAR中根據(jù)ISO26262的安全相關(guān)需求(TimingandExecution、Memory、ExchangeofInformation),提出了對應的安全機制,即通過時間保護(WdgMandOSTimingProtection)、內(nèi)存保護(MemoryProtection)、數(shù)據(jù)一致性(E2E算法)等安全機制來實現(xiàn)。3.1TimingandExecution的安全機制針對功能安全對TimingandExecution的安全機制,AUTOSAR中主要依靠2個主要的功能來保證,分別是AURTOSAR的WdgM協(xié)議棧以及OS的TimingProtection。每個被監(jiān)控的函數(shù)稱之為一個SE(SupervisorEntity)。在WdgM整個協(xié)議棧中,主要提供了3種監(jiān)控手段,具體的監(jiān)控作用內(nèi)容如下。1)AliveSupervisor監(jiān)控:周期函數(shù)在特定的時間內(nèi)調(diào)用不能頻率過快或者過慢。SE的WdgM_CheckpointReached每調(diào)用一次,對應的Checkpoint的AliveCounter就會加1,主函數(shù)在定義的監(jiān)控周期內(nèi)會去檢測AliveCounter的數(shù)目。只有AliveCounter在該周期內(nèi)屬于定義的次數(shù)范圍才認為該SE處于正常的模式,如果AliveCounter小于定義的調(diào)度次數(shù)最小值則認為所監(jiān)控的SE執(zhí)行太慢,相反AliveCounter大于定義的調(diào)度次數(shù)最大值,則認為SE執(zhí)行得太快。2)DeadlineSupervisor監(jiān)控:監(jiān)控2個函數(shù)調(diào)用間隔的時間限制。DeadlineSupervision主要用于監(jiān)控非周期運行的SE,主要定義了某個事件發(fā)生后,在特定的時間窗內(nèi)去執(zhí)行相應SE的Checkpoint,一般認為在事件發(fā)生后在定義的最短時間和最長時間內(nèi)去執(zhí)行相應的Checkpoint,認為程序?qū)儆谡5膱?zhí)行,如果在事件發(fā)生后執(zhí)行相關(guān)SE的Checkpoint時間小于最小的時間,或者大于最大的時間去執(zhí)行SE的Checkpoint都認為是錯誤的。3)LogicSupervisor監(jiān)控:監(jiān)控程序按照設(shè)計的調(diào)用邏輯進行調(diào)用。主要用于監(jiān)控程序是否按照正確的邏輯轉(zhuǎn)換條件去執(zhí)行。對于每一個LogicalSupervision都有一個調(diào)用關(guān)系圖來表示SE中各個Checkpoint點在控制流上的轉(zhuǎn)換關(guān)系。整個WdgM功能安全監(jiān)控機制如圖6所示。圖6WdgM功能安全監(jiān)控機制在WdgM中,每一個SE都有一個自己的LocalStatus來表示自己SE的Alive/Deadline/LogicSupervision的狀態(tài),同時WdgM還有一個全局的GlobalStatus來表示整個監(jiān)控功能的狀態(tài)。在WdgM初始化完成后,每個SE的各個子功能監(jiān)控的LocalStatus以及GlobalStatus的狀態(tài)都是OK的狀態(tài)。每個SE的LocalStatus以及GlobalStatus都包含了OK、DEACTIVATED、FAILED、EXPIRED狀態(tài)。在每個SE的功能進行監(jiān)控的時候,會根據(jù)監(jiān)控結(jié)果在MainFunction中設(shè)置對應的LocalStatus。其中AliveSupervision有單獨的狀態(tài)設(shè)置,而Deadline和LogicSupervision共用一個LocalStatus。在使用時,可以根據(jù)每個SE的3個監(jiān)控設(shè)計的條件在MainFunction中設(shè)置對應的狀態(tài),同時MainFunction根據(jù)定義的所有SE的狀態(tài)輸出對應的GlobalStatus,如果最終的GlobalStatus出現(xiàn)錯誤,User可以認為系統(tǒng)的時間或者函數(shù)的調(diào)度功能已經(jīng)導致程序出現(xiàn)了Error,那么可以去觸發(fā)相應的錯誤處理以及故障反應。除了WdgM對程序的執(zhí)行以及邏輯進行時序的監(jiān)控之外,在Task執(zhí)行的時候,可以通過OS的TimingProtection功能實現(xiàn)對函數(shù)調(diào)度以及Task被Block的時間監(jiān)控。相比于WdgM的監(jiān)控,OSTimingProtection的函數(shù)監(jiān)控更側(cè)重于非功能安全的任務Task調(diào)度以及被Block時間監(jiān)控。OSTimingProtection功能安全監(jiān)控機制如圖7所示。圖7OSTimingProtection功能安全監(jiān)控機制圖7中綠色的是低優(yōu)先級的Task,紅色的是高優(yōu)先級的Task。在實時搶占的系統(tǒng)中,低優(yōu)先級的Task可以被高優(yōu)先級的Task搶占。OSTimingProtection主要考慮低優(yōu)先級的Task在被高優(yōu)先級的Task搶占的情況下執(zhí)行時間不能超過圖中LOWDeadline定義的時間;保證被中斷或者高優(yōu)先級TaskBlock的時間不能太長;保證LOWInter-AriveTime的時間不能調(diào)度太快。在OSTimingProtection中,當達到上述定義的錯誤時,可以選擇相應的安全反應(Reset操作、結(jié)束函數(shù)調(diào)用等)來保證程序的正常運行。3.2MemoryProtection安全機制在AUTOSAR中為了保證數(shù)據(jù)訪問過程中不能相互篡改,減少低功能安全等級或者QM的數(shù)據(jù)影響到功能安全的數(shù)據(jù),需要增加內(nèi)存隔離和內(nèi)存保護。在AUTOSAR提供了基于Application級別的功能安全內(nèi)存保護機制,通過將不同的軟件組件分配到不同的Application中實現(xiàn)內(nèi)存訪問的隔離和內(nèi)存保護。MemoryProtection功能安全監(jiān)控機制如圖8所示。圖8MemoryProtection功能安全監(jiān)控機制根據(jù)功能安全的目標,將模塊劃分為QM、ASIL-B、ASIL-D。對于每個等級的模塊組件按照功能安全等級進行劃分。需要在內(nèi)存中定義QM、ASIL-B、ASIL-D的3個等級的RAM和ROM空間,并按照圖8的模塊將模塊內(nèi)的變量和代碼分別映射到QM、ASIL-B、ASIL-D的3個等級的RAM和ROM空間,同時結(jié)合圖8中灰色的圖框[硬件MPU(MemoryProtectionUnit)功能]實現(xiàn)對內(nèi)存的保護。一旦出現(xiàn)低ASIL等級、QM函數(shù)或變量操作到高功能安全等級的,將會觸發(fā)硬件MPU保護措施,并根據(jù)實際應用進行錯誤處理。基于硬件MPU保護的實現(xiàn)邏輯如圖9所示。圖9基于硬件MPU保護的實現(xiàn)邏輯如圖9所示,內(nèi)存保護機制是基于OS進行管理的,因此在實現(xiàn)內(nèi)存保護機制中必須依賴于OS的運行。在集成OS操作系統(tǒng)中程序運行在初始化階段會根據(jù)需要將內(nèi)存保護的地址設(shè)置成默認值,或者將芯片全部內(nèi)存設(shè)置為都可以訪問。在OS使用的嵌入式軟件中會存在多個Application,每個Application含有多個Task,OS在運行的時候可以通過調(diào)度切換Application和Task的執(zhí)行,因此OS執(zhí)行過程中會實時對Application和Task進行判斷。當檢測到正在運行的Application或者Task存在內(nèi)存保護機制后根據(jù)設(shè)計中定義好的地址范圍操作MPU硬件的RAM和ROM地址,將該Application或者Task訪問的范圍寫入到MPU的寄存器,一旦程序接下來運行的地址超過了定義的范圍,MPU硬件單元便會觸發(fā)硬件錯誤,軟件集成者便可以捕獲該錯誤,并設(shè)計錯誤回調(diào)函數(shù)進行錯誤處理。3.3ExchangeofInformation安全機制針對功能安全提出的對數(shù)據(jù)傳輸和交互過程中出現(xiàn)的要求,在AUTOSAR中提供了E2E(EndtoEnd)相關(guān)的算法來保證數(shù)據(jù)在ECU與ECU之間或者ECU內(nèi)部之間的數(shù)據(jù)傳輸?shù)囊恢滦?,圖10展示了E2E保證數(shù)據(jù)傳輸一致性的原理。圖10ExchangeofInformation功能安全監(jiān)控機制AUTOSARE2ELib提供了多種數(shù)據(jù)一致性保護的算法,主要包括以下幾個方面。CRCLib:通過填充CRC算法實現(xiàn);SequenceCounterincremented:發(fā)送方增加,接收方Check是否增加;AliveCounter:發(fā)送方增加,接收方Check變化,不Check增加;DataID:每個IPDUGroup表明特定的安全元素,特定的ECU信息,DataID也會用于CRC

計算;TimeoutDetection:接收方檢測數(shù)據(jù)通信超時。圖10中3種AUTOSAR提供的數(shù)據(jù)一致性實現(xiàn)的方案采用了E2EProtectionWrap(每一個需要保護的數(shù)據(jù)都會使用一個單獨的E2E接口函數(shù),同時保護數(shù)據(jù)的傳輸必須基于結(jié)構(gòu)體進行)。其

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論