日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號(hào)
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

AUTOSAR中的功能安全措施

2021-12-21 23:56:23·  來源:汽車電子與軟件  作者:KimChan  
 
簡介本文主要分三大塊:功能安全機(jī)制;功能安全措施;硬件診斷。一般來說,只有在理解了功能安全機(jī)制以及了解AUTOSAR對(duì)于功能安全有哪些必要信息是需要知道的,
簡介
本文主要分三大塊:功能安全機(jī)制;功能安全措施;硬件診斷。一般來說,只有在理解了功能安全機(jī)制以及了解AUTOSAR對(duì)于功能安全有哪些必要信息是需要知道的,否則對(duì)于開發(fā)人員來說,很難在一個(gè)項(xiàng)目中能夠高效地實(shí)現(xiàn)功能安全完備地系統(tǒng)。本文內(nèi)容非常適合和功能安全工作相關(guān)的開發(fā)者閱讀,同時(shí),作為AUTOSAR的一些概念知識(shí),也非常適合其他AUTOSAR工程相關(guān)人員進(jìn)行閱讀,為之后的具體配置打下基礎(chǔ)。
功能安全機(jī)制
現(xiàn)代ECU包含高度模塊化的嵌入式軟件,可以組合非功能安全,和功能安全的SWC,它們分別擁有不同的ASIL安全等級(jí)。
根據(jù)ISO26262,如果嵌入式軟件包含不同ASIL等級(jí)的SWC,要么整個(gè)軟件工程都需要基于最高安全等級(jí)的要求進(jìn)行開發(fā),要么需要保證擁有更高安全等級(jí)的SWC的操作不會(huì)受到其他SWC的干擾,也即需要做到FFI(Freedom from interference)的設(shè)計(jì)。
ISO26262標(biāo)準(zhǔn)也提供故障示例,這些故障/錯(cuò)誤會(huì)導(dǎo)致SWC之間產(chǎn)生干涉/干擾:
  • 內(nèi)存 Memory
  • 時(shí)間 Timing
  • 執(zhí)行 Execution
  • 信息交換 Exchange of Information
內(nèi)存分區(qū) Memory Partitioning
基于更低安全等級(jí)要求開發(fā)的SWC,可能會(huì)出現(xiàn)錯(cuò)誤地訪問到更高安全等級(jí)SWC的內(nèi)存區(qū)域,產(chǎn)生干擾。為此,SWC需要運(yùn)行在不同的內(nèi)存區(qū)域,或者不同的內(nèi)存分區(qū),來防止類似的內(nèi)存訪問違例。
在AUTOSAR中,我們需要借助于OS和RTE模塊的功能來實(shí)現(xiàn)。
故障模式
根據(jù)ISO26262,以下內(nèi)存相關(guān)的故障影響被視為SWC之間產(chǎn)生干擾的原因:
  • 內(nèi)容損壞
  • 讀寫區(qū)域?qū)儆诹硪粋€(gè)SWC
  • 數(shù)據(jù)不一致
  • 棧溢出或棧下溢
內(nèi)存分區(qū)可以通過限制對(duì)于內(nèi)存以及內(nèi)存對(duì)應(yīng)的硬件的訪問,來達(dá)到內(nèi)存保護(hù)的目標(biāo)。內(nèi)存分區(qū)意味著,各OS Application運(yùn)行在相互保護(hù)(不干涉)的內(nèi)存區(qū)域(分區(qū))。也就是說,在某一個(gè)分區(qū)上運(yùn)行的代碼,無法修改另一個(gè)分區(qū)的內(nèi)存。
此外,內(nèi)存分區(qū)也可以保護(hù)只讀內(nèi)存段(例如代碼執(zhí)行)以及內(nèi)存對(duì)應(yīng)的硬件。
內(nèi)存分區(qū)和用戶/特權(quán)模式可以保證SWC之前互不干擾——即使某一個(gè)SWC出現(xiàn)了內(nèi)存相關(guān)的故障,也不會(huì)對(duì)其他軟件模塊有影響,如果一個(gè)SWC運(yùn)行在用戶模式,那么它對(duì)CPU資源/指令的訪問也是受限制的。
AUTOSAR中的內(nèi)存分區(qū)
AUTOSAR規(guī)范中有這樣的描述:一個(gè)分區(qū)應(yīng)當(dāng)用一個(gè)OS Application實(shí)現(xiàn);SWC被分組到單獨(dú)的用戶模式內(nèi)存分區(qū)中。所以內(nèi)存分區(qū)的功能需要由RTE和OS來完成。
從架構(gòu)上來說,應(yīng)用軟件運(yùn)行在RTE之上,SWC之間相互連接并共同完成功能。
SWC與硬件無關(guān),所以它們可以被集成到任一ECU上,SWC內(nèi)部的變量和函數(shù)調(diào)用,都是封裝起來,對(duì)外界來說是隱藏的,只有外部的RTE調(diào)用會(huì)作為公開接口。
SWC也有運(yùn)行時(shí)需要被調(diào)用的函數(shù),AUTOSAR中,這些函數(shù)關(guān)聯(lián)到Runnable上。Runnable無法自己調(diào)用自己,它們必須被分配到操作系統(tǒng)的可執(zhí)行實(shí)體上,實(shí)際配置當(dāng)中可以通過將Runnable分配到某一OS任務(wù)中。
根據(jù)配置的不同,Runnable會(huì)周期執(zhí)行或者以事件驅(qū)動(dòng)的方式被觸發(fā),Runnable分配到Task的關(guān)系可參考下圖:
OS Application
AUTOSAR OS Application是一系列OS對(duì)象的組合:Task, ISR,調(diào)度表,Counter,Alarm。所屬同一OS Application的對(duì)象,可以互相訪問。
同一OS Application的OS對(duì)象,可能會(huì)屬于不同的SWC,RTE通過實(shí)現(xiàn)一個(gè)OS Application所有成員都能訪問的內(nèi)存區(qū)域,沒有限制的方式,來實(shí)現(xiàn)SWC之間高效的通信。
OS Application有兩類:

1. 授信應(yīng)用(Trusted OS Application): 可以在運(yùn)行在監(jiān)控或者保護(hù)功能關(guān)閉的狀態(tài),它們可以有不受限制的內(nèi)存和OS API訪問權(quán)限。當(dāng)處理器支持時(shí),它們可以運(yùn)行在特權(quán)模式。

2. 非授信應(yīng)用(Non-Trusted OS Application): 無法運(yùn)行在監(jiān)控或者保護(hù)功能關(guān)閉的狀態(tài),它們僅擁有有限的內(nèi)存和OS API的訪問權(quán)限,也無法運(yùn)行在特權(quán)模式。

通信和代碼共享
一個(gè)OS Application可以包含多個(gè)SWC和它們對(duì)應(yīng)的Runnable。Runnable只被允許直接訪問它所在的SWC的變量或者進(jìn)行函數(shù)調(diào)用。
SWC內(nèi)部的函數(shù)調(diào)用和變量不被其他SWC所知,代碼實(shí)現(xiàn)上,它們不會(huì)存在于頭文件中并提供extern的訪問方式。因此,想要直接通過變量或者調(diào)用的方式和其他SWC進(jìn)行通信是不可能的。
上圖中,OS Application 1中的Runnable1 就可以執(zhí)行/使用Runnable 2的內(nèi)容,而在OS Application 2中,Runnable 4是無法執(zhí)行/使用Runnable 5的內(nèi)容。SWC之間的通信應(yīng)當(dāng)通過RTE來完成。
AUTOSAR應(yīng)用的內(nèi)存分區(qū)
AUTOSAR OS規(guī)范中相關(guān)的需求如下表:


雖然一個(gè)項(xiàng)目當(dāng)中可以有不同ASIL等級(jí)的SWC,但是不同ASIL等級(jí)的SWC不應(yīng)當(dāng)被分配到同一OS Application當(dāng)中,內(nèi)存分區(qū)無法在這種情況下提供FFI的支持。
SWC內(nèi)的內(nèi)存分區(qū)
同樣,有一種情況是SWC內(nèi)部有不同ASIL等級(jí)的Runnable,但是這種情況無法實(shí)現(xiàn),因?yàn)閮?nèi)存分區(qū)是基于OS Application的,SWC只能分配到一個(gè)OS Application中,那么也就只能有一個(gè)內(nèi)存分區(qū),無法為Runnable提供不同的分區(qū)以達(dá)到保護(hù):
如果一定有這樣的需求,OS Application級(jí)別的分區(qū)是不足夠的,需要在Task級(jí)別進(jìn)行內(nèi)存分區(qū)。也即上圖的最右側(cè)部分:
AUTOSAR OS規(guī)范中對(duì)這種場景也有需求定義,但是需要注意的是,這里的描述都是“可以”/“可能”(may),也就是說Task級(jí)別的分區(qū)取決于OS的實(shí)現(xiàn),AUTOSAR本身不做強(qiáng)制要求。


內(nèi)存分區(qū)的實(shí)現(xiàn)
一般來說,BSW模塊運(yùn)行在授信模式/監(jiān)控者模式內(nèi)存分區(qū)當(dāng)中,部分SWC分組并放置到非授信/用戶模式內(nèi)存分區(qū)當(dāng)中。個(gè)別SWC也運(yùn)行在授信/監(jiān)控者模式內(nèi)存分區(qū)當(dāng)中。項(xiàng)目中可以有多個(gè)非授信/用戶分區(qū),每個(gè)分區(qū)都可以包含一個(gè)或多個(gè)SWC。
現(xiàn)代微控制器以專用硬件,也即內(nèi)存保護(hù)單元(MPU),來支持內(nèi)存分區(qū)。
在MPU的支持下,非授信應(yīng)用可以被允許訪問多個(gè)微控制器地址空間的分區(qū)。訪問控制包括讀訪問,寫訪問和執(zhí)行訪問。MPU的配置只允許在監(jiān)控者模式下執(zhí)行。
有的微控制器上,MPU被集成在處理器的核上,也就是說MPU只控制對(duì)應(yīng)核的訪問權(quán)限。例如DMA控制器和其他核,則不受這些MPU的控制。
下方列表展示了內(nèi)存保護(hù)單元配置的相關(guān)場景:
X-需要保護(hù),O-保護(hù)可選
案例1:SWC在同一分區(qū)
SWC可以訪問相互的RAM區(qū)域,因此有可能改變對(duì)方內(nèi)存中的內(nèi)容。
SWC無法訪問外設(shè),因?yàn)樵O(shè)計(jì)上來說SWC本就不知道底層架構(gòu)。如果SWC擁有外設(shè)的直接訪問權(quán)限,就意味著系統(tǒng)很可能是不安全的。
案例2:SWC在不同分區(qū)
SWC無法訪問對(duì)方的RAM區(qū)域,因此也無法改變對(duì)方內(nèi)存中的內(nèi)容。
SWC無法訪問外設(shè),因?yàn)樵O(shè)計(jì)上來說SWC本就不知道底層架構(gòu)。如果SWC擁有外設(shè)的直接訪問權(quán)限,就意味著系統(tǒng)很可能是不安全的。
案例3:MCAL驅(qū)動(dòng)
MCAL組東是讀/寫/初始化等操作的集合,他們必須由其他實(shí)體,例如BSW或者CDD,來調(diào)用執(zhí)行。
MCAL驅(qū)動(dòng)需要外設(shè)空間的讀寫訪問權(quán)限,根據(jù)硬件架構(gòu),可能需要在監(jiān)控者模式運(yùn)行才能有這些權(quán)限。
檢測和反應(yīng)
微控制器硬件必須由OS正確配置,當(dāng)出現(xiàn)不正確的內(nèi)存訪問情況時(shí)能檢測到,或者能預(yù)防這樣的情況。運(yùn)行在非授信/用戶模式內(nèi)存分區(qū)的SWC會(huì)被監(jiān)控。
當(dāng)這種模式下出現(xiàn)非法內(nèi)存訪問或者CPU指令時(shí),錯(cuò)誤操作會(huì)被攔截并由硬件產(chǎn)生exception。OS和RTE通過關(guān)閉分區(qū)或者重啟當(dāng)前分區(qū)所有SWC的方式來處理這種情況。
具體情況視項(xiàng)目而定,可以在OS中配置Protection Hook的具體實(shí)現(xiàn)。如果想了解規(guī)范是如何說明錯(cuò)誤處理的,可以閱讀“Explanation of Error Handling on Application Level”。
限制
1. ISO26262并未要求同ASIL等級(jí)OS Application內(nèi)SWC的FFI。
2. 授信OS Application不受內(nèi)存分區(qū)影響。
3. 內(nèi)存分區(qū)不支持task級(jí)別。
4. 內(nèi)存分區(qū)功能會(huì)影響系統(tǒng)整體運(yùn)行性能。
5. BSW模塊分區(qū)并不做要求。
時(shí)間監(jiān)控 Timing Monitoring
一個(gè)功能安全的系統(tǒng),要求系統(tǒng)中的動(dòng)作能在正確的時(shí)間執(zhí)行。SWC無法自己決定自己的正確運(yùn)行時(shí)間,需要依賴于運(yùn)行時(shí)環(huán)境以及基礎(chǔ)軟件,在集成過程中,要保證SWC的時(shí)間約束。
失效模式
根據(jù)ISO26262,以下時(shí)間或執(zhí)行故障被視為SWC之間的干擾原因:

  • 阻塞運(yùn)行
  • 死鎖
  • 活鎖
  • 不正確的執(zhí)行時(shí)間分配
  • SWC之間的不正確同步
時(shí)間保護(hù)和監(jiān)控和以下屬性有關(guān):

  • 監(jiān)控任務(wù)在特定時(shí)間調(diào)度
  • 不超過預(yù)期執(zhí)行時(shí)間
  • 不獨(dú)占OS資源
為了保證功能安全相關(guān)功能滿足時(shí)間約束,應(yīng)當(dāng)能夠檢測并處理某一任務(wù)獨(dú)占CPU(過高的CPU負(fù)載,很多中斷請求)的情況。
AUTOSAR提供下列時(shí)間監(jiān)控機(jī)制:
1. OS提供的時(shí)間保護(hù)機(jī)制
2. Watchdog Manager提供的時(shí)間、邏輯鏈監(jiān)控的功能
操作系統(tǒng)的時(shí)間保護(hù)
根據(jù)AUTOSAR OS規(guī)范,實(shí)時(shí)操作系統(tǒng)在運(yùn)行時(shí)發(fā)生任務(wù)或中斷沒有在預(yù)期時(shí)間內(nèi)執(zhí)行結(jié)束,被視為發(fā)生了時(shí)間故障。
AUTOSAR OS并不提供deadline supervisor來作時(shí)間保護(hù),deadline superviosr不足以正確地識(shí)別出導(dǎo)致了系統(tǒng)的時(shí)間故障的任務(wù)或中斷,因?yàn)閷?shí)際情況下,有可能是被一個(gè)沒有關(guān)聯(lián)的任務(wù)或中斷干擾了執(zhí)行過程。
在例如AUTOSAR OS這樣有固定優(yōu)先級(jí)搶占的操作系統(tǒng),任務(wù)或中斷是否在deadline之前能執(zhí)行完畢,和以下幾個(gè)因素有關(guān):

  • 任務(wù)或中斷的執(zhí)行時(shí)間
  • 因其他低優(yōu)先級(jí)任務(wù)或中斷鎖住了共享的資源,或者是關(guān)閉中斷這期間而產(chǎn)生的阻塞時(shí)間
  • 任務(wù)或中斷的時(shí)間間隔
為了實(shí)現(xiàn)安全和精確的時(shí)間保護(hù),操作系統(tǒng)需要能在運(yùn)行時(shí)控制這些因素,保證任務(wù)或中斷能夠達(dá)到deadline的要求。AUTOSAR OS提供以下時(shí)間保護(hù)機(jī)制:

  • 執(zhí)行時(shí)間保護(hù)。任務(wù)執(zhí)行時(shí)間上限,或者Cat2類型中斷,它們也被稱作為執(zhí)行計(jì)劃(Execution Budget),由OS監(jiān)控來避免時(shí)間錯(cuò)誤。
  • 鎖時(shí)間保護(hù)。資源、鎖、中斷掛起的時(shí)間上限,它們也被稱作為鎖計(jì)劃(Lock Budget),由OS監(jiān)控。
  • 時(shí)間間隔保護(hù)。兩次任務(wù)被激活或者Cat2類型中斷的時(shí)間間隔,也被稱作為時(shí)間框(Time frame),由OS監(jiān)控。
檢測和反應(yīng)
WdgM模塊根據(jù)每一個(gè)Supervised Entity的本地狀態(tài)和全局監(jiān)控狀態(tài),可以基于配置進(jìn)行對(duì)應(yīng)的恢復(fù)操作。
限制

  • WdgM并不限制Checkpoint的顆粒度,如果一個(gè)SWC只有一個(gè)checkpoint,代表某一runnable是周期執(zhí)行的,那么WdgM只能檢測這個(gè)Runnable是否按照周期在執(zhí)行。相對(duì)的,如果在每一個(gè)執(zhí)行塊和分支都加上了Checkpoint,那么WdgM還可以檢測SWC的執(zhí)行流程。當(dāng)然,更高的顆粒度意味著WdgM的配置和復(fù)雜度也會(huì)相應(yīng)地增加和提升。
  • Deadline Supervision只檢測是否有延時(shí),但是出現(xiàn)根本不調(diào)用End Checkpoint而導(dǎo)致的Timeout,則無法檢測出來。
  • Deadline Supervision不能嵌套使用。—— Start 1, Start 2, End 2, End 1
  • WdgM沒有指定是否可以在一個(gè)Supervised Entity中設(shè)置多個(gè)Alive Supervision checkpoint。不過推薦的做法是只能由一個(gè)Alive Supervision checkpoint。
  • 關(guān)閉或重啟包含Supervised Entity的分區(qū)時(shí),集成代碼應(yīng)當(dāng)調(diào)用WdgM的函數(shù)關(guān)閉(關(guān)閉并重啟開啟)Supervised Entity。
  • Library不能調(diào)用BSW,所以無法被WdgM監(jiān)控,但是可以通過在library調(diào)用的前后設(shè)置checkpoint的方式來作Deadline Supervision.
  • BSW模塊如何用Supervised Entity ID來識(shí)別,并沒有標(biāo)準(zhǔn)化。

邏輯監(jiān)控 Logical Supervision

邏輯監(jiān)控用來檢查軟件的正確執(zhí)行,關(guān)注于控制流錯(cuò)誤。當(dāng)發(fā)生控制流錯(cuò)誤時(shí),會(huì)導(dǎo)致走向非預(yù)期的程序執(zhí)行順序,最終導(dǎo)致數(shù)據(jù)不一致,數(shù)據(jù)損壞或者其他軟件故障。
限制

  • Logical Supervision不支持一個(gè)checkpoint存在于多個(gè)Graph中。
  • WdgM不支持在可以并發(fā)調(diào)用的Supervised Entity進(jìn)行Logical Supervision。
  • 關(guān)閉或重啟包含Supervised Entity的分區(qū)時(shí),集成代碼應(yīng)當(dāng)調(diào)用WdgM的函數(shù)關(guān)閉(關(guān)閉并重啟開啟)Supervised Entity。

端到端保護(hù) End-2-End Protection

在分布式系統(tǒng)當(dāng)中,如果存在一些安全操作依賴于某些數(shù)據(jù),那么發(fā)送端和接收端的對(duì)這些數(shù)據(jù)進(jìn)行的交換過程就會(huì)影響到功能安全。因此需要想辦法保證通信數(shù)據(jù)發(fā)生數(shù)據(jù)不一致等情況的故障不會(huì)影響程序。
故障模式
根據(jù)ISO26262,在不同的軟件分區(qū)和ECU上執(zhí)行的SWC交換數(shù)據(jù)時(shí),以下情況被視為信息交換相關(guān)故障:

  • 信息重復(fù):信息收到不止一次
  • 信息丟失:部分信息丟失
  • 信息延遲:比預(yù)期更久的時(shí)間才收到信息
  • 信息插入:有額外信息被加入到信息當(dāng)中
  • 信息偽裝,或地址錯(cuò)誤:不真實(shí)的數(shù)據(jù)被作為真實(shí)數(shù)據(jù)接收;發(fā)送給了不正確的接收方或者接收了不正確的發(fā)送方的消息
  • 信息序列不正確:信息序列被修改
  • 信息損壞:信息被修改
  • 發(fā)送方發(fā)送到多個(gè)接收方的數(shù)據(jù)不一致
  • 應(yīng)當(dāng)從發(fā)送方收到消息,但接收方并未收到
  • 無法訪問通信通道
E2E保護(hù)假定安全相關(guān)的數(shù)據(jù)交換應(yīng)當(dāng)在運(yùn)行時(shí)被保護(hù)起來,可能的故障原因有隨機(jī)硬件故障(例如CAN收發(fā)器寄存器損壞),干擾(例如EMC干擾),或者是軟件的錯(cuò)誤實(shí)現(xiàn)(例如RTE, IOC,COM)。
從SWC角度來說,通過RTE進(jìn)行數(shù)據(jù)傳輸?shù)男袨榫褪呛唵蔚狞c(diǎn)對(duì)點(diǎn)連接,然而,實(shí)際上通信連接的抽象的具體是由各個(gè)軟件層,通信協(xié)議棧,驅(qū)動(dòng)和底層硬件實(shí)現(xiàn)的?;谶@樣的復(fù)雜度,隨之而來的是故障可能性的提升。
使用E2E機(jī)制是假定安全相關(guān)數(shù)據(jù)需要能在通信過程中保證數(shù)據(jù)不會(huì)受到故障的影響。E2E保護(hù)最重要的部分,是保護(hù)能力和靈活性的標(biāo)準(zhǔn)化。
E2E保護(hù)的架構(gòu)是這樣實(shí)現(xiàn)的:包含應(yīng)用數(shù)據(jù)的數(shù)據(jù)元素,在發(fā)送方會(huì)加上額外擴(kuò)展的控制信息,也即E2E頭部??刂菩畔⒁话惆珻hecksum, Counter和其他選項(xiàng)。擴(kuò)展后的數(shù)據(jù)被提供給RTE做傳輸。
在接收方,會(huì)對(duì)接收到的數(shù)據(jù)中的E2E頭部和應(yīng)用數(shù)據(jù)做檢查,如果檢查通過,控制信息會(huì)被移除,應(yīng)用數(shù)據(jù)會(huì)被提供給對(duì)應(yīng)的SWC。如果有錯(cuò)誤,錯(cuò)誤處理是在接收端進(jìn)行。
E2E Profiles
AUTOSAR指定了一組標(biāo)準(zhǔn)、可配置的E2E profiles,提供不同的保護(hù)機(jī)制實(shí)現(xiàn),定義了對(duì)應(yīng)E2E頭部的格式。
從下列數(shù)據(jù)保護(hù)機(jī)制中挑選不同的組合,即不同的E2E Profile:

  • CRC checksum,由CRC library提供
  • 每次發(fā)送請求時(shí)都會(huì)自加序列Counter,接收方會(huì)檢查是否正確
  • 每次發(fā)送請求時(shí)會(huì)自加Alive Counter,接收方會(huì)檢查是否改變,但不檢查自加值是否正確
  • 通過port發(fā)送數(shù)據(jù)時(shí)會(huì)附上唯一的port ID
  • 超時(shí)檢測:接收方通信超時(shí)和接收方確認(rèn)超時(shí)
AUTOSAR標(biāo)準(zhǔn)定義了三種E2E Profile—— Profile 1, Profile 2和 Profile 4,后續(xù)發(fā)布會(huì)更新Profile 5和Profile 6。
應(yīng)當(dāng)只在項(xiàng)目當(dāng)中使用標(biāo)準(zhǔn)E2E Profile,只有在legacy軟件當(dāng)中,由于特殊情況,可以使用非標(biāo)準(zhǔn)E2E Profile配置。
Profile 1描述如下:


雖然Data ID長16bit,可以有很多種ID,但CRC校驗(yàn)值只有8bit,意味著不同的ID有可能計(jì)算出相同的CRC校驗(yàn)值,因此實(shí)際可用的ID數(shù)量是受到限制的。(因此,實(shí)際情況是Data ID限制在255以內(nèi))
E2E Profile 2則在Data ID保護(hù)方面使用了不同的方式。每一對(duì)S/R port都有一列Data ID,當(dāng)前的Counter決定使用哪一個(gè)Data ID。這種方案使得檢測出地址偽裝的情況變?yōu)榭赡埽还材苁褂玫腄ata ID仍被限制為256以內(nèi)。


AUTOSAR最大支持4kB長度的PDU,由于使用了8-bitCRC校驗(yàn)值,Profile 1和Profile 2只支持最大30或42byte PDU長度的ASIL D數(shù)據(jù)傳輸。自4.2.1標(biāo)準(zhǔn)以來,定義了Profile 4來適配大數(shù)據(jù)的傳輸,CRC校驗(yàn)值為32bit長。


Profile 4的頭部結(jié)構(gòu)如上圖。
E2E狀態(tài)機(jī)
接收方根據(jù)設(shè)置的Profile來驗(yàn)證頭部信息和應(yīng)用數(shù)據(jù)是否匹配,決定當(dāng)前周期接收的數(shù)據(jù)是否正確,出現(xiàn)錯(cuò)誤時(shí)提供額外信息。
4.2.1版本規(guī)范以來,引入了狀態(tài)機(jī)的概念,可以幫助決定接收到的應(yīng)用數(shù)據(jù)在更高一級(jí)的細(xì)節(jié)上是否可以接收,也就是說應(yīng)用會(huì)收到此次通信的一個(gè)整體狀態(tài),而不需要去判斷每一個(gè)消息的狀態(tài)值。狀態(tài)機(jī)是可配置的,可以設(shè)定消息丟失或者重復(fù)消息的次數(shù),是否可以故障恢復(fù),通信初始化等待。
E2E Library的集成
E2E Library可以使用E2E Wrapper來完成SWC之間安全相關(guān)數(shù)據(jù)的保護(hù)。
E2E Library也可以通過COM回調(diào)的方式來保護(hù)I-PDU。
當(dāng)然,你也可以將上述兩種方法配合起來使用。
自4.2.1版本規(guī)范以來,你也可以使用RTE Data Transformer來基于RTE級(jí)別完成復(fù)雜數(shù)據(jù)交換的保護(hù)。
E2E Wrapper
為了使用E2E Library完成數(shù)據(jù)保護(hù),E2E Wrapper通過封裝Rte_Write和Rte_Read的方式為SWC提供接口。
在這種方式中,安全相關(guān)SWC會(huì)有自己額外的sub-layer,負(fù)責(zé)復(fù)雜數(shù)據(jù)構(gòu)造到對(duì)應(yīng)的IPDU中。
E2E保護(hù)是一種對(duì)稱式的解決方案,對(duì)于實(shí)際的通信資源,它并不關(guān)心,不同的項(xiàng)目,SWC無需修改邏輯,只需要變更底層配置。使用E2E Wrapper后,即使底層通信軟件協(xié)議棧不是功能安全的,仍可以為SWC雙方提供功能安全的數(shù)據(jù)通信。不過呢,E2E Wrapper不支持SWC的多實(shí)例化。
Transmission Manager
如果在某一個(gè)ECU系統(tǒng)中無法為COM和RTE提供操作完整性,還是傳輸安全數(shù)據(jù)的解決方案。
在發(fā)送方,會(huì)有一個(gè)稱作為Transmission Manager的SWC,它包含E2E Wrapper,Transmission Manager會(huì)收集相關(guān)SWC的安全數(shù)據(jù),使用E2E Wrapper來保護(hù)他們,最后將數(shù)據(jù)提供給RTE。接收方即這個(gè)過程反過來執(zhí)行。
COM E2E回調(diào)
E2E Library可以由COM回調(diào)來進(jìn)行調(diào)用,保護(hù)IPDU,不過這種方式僅限用在提供了COM和RTE操作完整性的系統(tǒng)上。
RTE Data Transformer
這種方案的區(qū)別,可以通過示例圖很直觀的看出:
RTE接收到數(shù)據(jù)以后,基于配置(例如序列號(hào),E2E保護(hù),加密,壓縮)然后進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將最終的結(jié)果數(shù)據(jù)交給COM進(jìn)行處理。RTE Data Transformer的所有配置都在設(shè)計(jì)arxml的時(shí)候完成,實(shí)際代碼全部都是由工具生成出來的,SWC并不需要關(guān)心具體用了哪些保護(hù)機(jī)制。
這種方案需要在RTE的操作完整性被提供的情況下使用。
限制
只是使用E2E Library并不能保證端到端的安全通信,用戶需要說明所選的Profile提供足夠的錯(cuò)誤檢測能力(例如硬件錯(cuò)誤率的評(píng)估,bit error錯(cuò)誤率,網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量,消息的重復(fù)率,網(wǎng)關(guān)的使用)
SWC在RTE之間的通信不僅僅是一個(gè)簡單的點(diǎn)對(duì)對(duì)通信,諸如數(shù)據(jù)轉(zhuǎn)換,過濾,缺少通知,C/S通信參數(shù)順序錯(cuò)誤,傳輸延遲等待也需要被考慮進(jìn)來。
當(dāng)運(yùn)行時(shí)負(fù)載過高時(shí),有可能會(huì)禁止使用E2E保護(hù)。
E2E不保證數(shù)據(jù)的實(shí)時(shí)性。

功能安全措施
AUTOSAR提供了上述很多功能安全機(jī)制,在功能安全軟件開發(fā)階段,AUTOSAR也提供功能安全措施來進(jìn)行支持。








可追溯性

可追溯性是安全相關(guān)系統(tǒng)實(shí)現(xiàn)的前提。AUTOSAR提供從項(xiàng)目目的到AUTOSAR架構(gòu)的軟件規(guī)范的可追溯性。

不由AUTOSAR提供的功能安全措施

AUTOSAR并不會(huì)提供所有可能需要的在應(yīng)用開發(fā)過程中的安全措施,因此安全相關(guān)應(yīng)用的實(shí)現(xiàn)必須保證安全開發(fā)生命周期是充足的。
包括但與限于:

  • AUTOSAR規(guī)范并不定義ISO26262中描述的SEooC
  • AUTOSAR并不定義類似于HARA或HAZOP這種風(fēng)險(xiǎn)分析管理等方法
  • 沒有Safety Case
  • 沒有功能安全審計(jì)
  • 沒有conformance test
  • SWC實(shí)現(xiàn)的AUTOSAR feature追蹤
  • 對(duì)于AUTOSAR規(guī)范的驗(yàn)證
  • 軟件集成測試
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25