1 引言
2018年12月,備受汽車電子行業(yè)關(guān)注的ISO26262《道路車輛功能安全標(biāo)準(zhǔn)》第二版發(fā)布,適用范圍從乘用車擴(kuò)展到所有車型,包括商用車和摩托車,該標(biāo)準(zhǔn)對商用車汽車電子器件提出更為詳盡的功能安全要求。在功能安全相對領(lǐng)先的歐美國家,主流OEM和Tier1普遍對ISO26262標(biāo)準(zhǔn)有要求,已成為事實(shí)強(qiáng)制標(biāo)準(zhǔn)。
我從2016年接觸ISO26262標(biāo)準(zhǔn)以來,對PART 6“軟件部分”進(jìn)行了反復(fù)研讀,但始終無法找到其與車載嵌入式軟件設(shè)計(jì)之間的聯(lián)系,在很長一段時間內(nèi)都不知道如何開發(fā)出滿足功能安全的車載ECU軟件;即使在2020年,我所在的電控團(tuán)隊(duì)順利拿到了ISO26262 ASIL D流程認(rèn)證,但我對功能安全的認(rèn)知也僅僅停留在“編寫一系列文檔”的水平。
從2022年4月到2023年12月,我有幸全程參與了一個完整的車載電控模塊功能安全項(xiàng)目 - 基于公司的某款純電車輛,開發(fā)出滿足功能安全ASIL C/D等級的VCU(整車控制器)產(chǎn)品。在這篇文章里,我將結(jié)合自己在項(xiàng)目中的實(shí)踐,對部分開發(fā)過程進(jìn)行梳理,希望能給像我一樣對ISO26262標(biāo)準(zhǔn)實(shí)現(xiàn)有困惑的同行提供些許參考。
2 基本概念
ISO26262標(biāo)準(zhǔn)的術(shù)語在PART 1中按照音序順序進(jìn)行了詳細(xì)描述,表2-1只列出了本文需要用到的基本概念。
表2-1: VCU功能安全項(xiàng)目術(shù)語
?
序號 | 術(shù)語/縮寫 | 全稱 | 備注 |
1 | BD | 行為設(shè)計(jì)(Behavior Design) | ? |
2 | FIT | 失效率(Failures In Time) | ? |
3 | FSC | 功能安全概念(Functional Safety Concept) | ? |
4 | FSR | 功能安全需求(Function Safety Requirement) | ? |
5 | FHTI | 故障處理時間間隔(Fault Handling Time Interval) | ? |
6 | FTA | 故障樹分析(Fault Tree Analysis) | ? |
7 | FTTI | 故障容錯時間間隔(Fault Tolerant Time Interval) | ? |
8 | HARA | 危害分析與風(fēng)險評估(Hazard Analysis and Risk Assessment) | ? |
9 | HAZOP | 危害和可操作性分析(HAZard and OPerability analysis) | ? |
10 | HSI | 硬件軟件接口(Hardware Software Interface) | ? |
11 | MF | 功能故障描述(Malfunction) | ? |
12 | SM | 安全機(jī)制(Safety Machanism) | ? |
13 | TSC | 技術(shù)安全概念(Technical Safety Concept) | ? |
14 | TSR | 技術(shù)安全需求(Technical Safety Requirement) | ? |
?
3 功能安全概念開發(fā)
VCU功能安全項(xiàng)目只進(jìn)行了概念(ISO26262 PART3)、系統(tǒng)(ISO26262 PART4)、硬件(ISO26262 PART5)和軟件(ISO26262 PART6)階段的開發(fā),本章整理概念階段的工作內(nèi)容,系統(tǒng)和軟件的工作將分別在第4章和第5章整理。
功能安全概念階段應(yīng)輸出相關(guān)項(xiàng)定義、危害分析和風(fēng)險評估、功能安全概念等工作產(chǎn)品。
3.1 相關(guān)項(xiàng)定義
相關(guān)項(xiàng)指實(shí)現(xiàn)整車層面功能或部分功能的系統(tǒng)或系統(tǒng)組合;相關(guān)項(xiàng)定義指在整車層面對相關(guān)項(xiàng)進(jìn)行定義和描述,包括功能及其與駕駛員、環(huán)境和其他相關(guān)項(xiàng)的依賴性和交互。
概念階段的開發(fā)是從相關(guān)項(xiàng)定義(Item Definition)開始的,相關(guān)項(xiàng)定義是對系統(tǒng)的描述,此系統(tǒng)也是標(biāo)準(zhǔn)中“安全”要求應(yīng)用的對象。
項(xiàng)目定義的目的是定義和描述相關(guān)項(xiàng),以及對其他相關(guān)項(xiàng)和環(huán)境的依賴和相互作用。因此,需要描述功能和非功能需求、邊界、接口和其他系統(tǒng)相互作用的假設(shè)。
相關(guān)項(xiàng)定義為危害分析和風(fēng)險評估(HARA)提供輸入參數(shù),在HARA中通過對E/E系統(tǒng)功能故障的定義和分析,識別整車級別的潛在危害。
對于相關(guān)項(xiàng)(Item)的邊界,相關(guān)項(xiàng)與其他相關(guān)項(xiàng)或環(huán)境的相互作用,相關(guān)項(xiàng)內(nèi)部的元素以及涉及到元素的功能分配,需要在相關(guān)項(xiàng)文檔進(jìn)行描述。
表3-1列出相關(guān)項(xiàng)定義的主要內(nèi)容。
表3-1: 相關(guān)項(xiàng)定義主要內(nèi)容
?
序號 | 內(nèi)容 | 描述 |
1 | 車輛環(huán)境描述 | 用于描述車輛的配置、性能、使用環(huán)境、投放市場、相似功能,作為HARA分析和后續(xù)其他階段的必要輸入信息 |
2 | 法規(guī)要求 | 列出相關(guān)項(xiàng)需要滿足相關(guān)法律法規(guī)的要求,用于指導(dǎo)系統(tǒng)設(shè)計(jì) |
3 | 相關(guān)項(xiàng)描述 | 描述VCU的工作原理和執(zhí)行器特性 |
4 | 運(yùn)行模式 | 描述車輛運(yùn)行模式及切換條件 |
5 | 功能行為設(shè)計(jì)描述 | 識別和描述相關(guān)項(xiàng)在整車級別的所有功能行為;識別整車級別功能與駕駛員和車輛的交互以及車輛的預(yù)期行為。包含蠕行控制、車輛加速控制、定速巡航控制、車輛滑行能量回收、車輛制動能量回收、坡起輔助控制、限速控制、切換駕駛模式、制動優(yōu)先、響應(yīng)外部請求、駕駛員離車或插槍時自動回P、擋位控制N擋進(jìn)入、擋位控制D擋進(jìn)入、擋位控制R擋進(jìn)入、擋位顯示、續(xù)航里程計(jì)算、遠(yuǎn)程鎖車控制(限速)、行駛高壓上電控制、行駛高壓下電控制、交流充電高壓上電控制、交流充電高壓下電控制、直流充電高壓上電控制、直流充電高壓下電控制、主動放電使能控制、DC/DC使能控制、空調(diào)制冷控制、空調(diào)制熱控制、驅(qū)動電機(jī)及高壓附件冷卻控制、動力電池冷卻控制、動力電池加熱控制、制動真空泵控制 |
6 | 整車級功能描述及架構(gòu)設(shè)計(jì) | 整車級功能:蠕行控制、車輛加速控制、定速巡航控制、車輛滑行能量回收、車輛制動能量回收、制動優(yōu)先、坡起輔助控制、限速控制、擋位控制、切換駕駛模式、續(xù)駛里程計(jì)算、行駛高壓上下電控制、充電高壓上下電控制、主動放電使能控制、DC/DC使能控制、空調(diào)熱管理使能控制、動力電機(jī)及高壓附件熱管理控制、動力電池?zé)峁芾砜刂啤⒅苿诱婵毡每刂?;架?gòu)設(shè)計(jì):車輛扭矩管理、擋位控制、切換駕駛模式、續(xù)駛里程計(jì)算、高壓上下電控制、主動放電使能控制、DC/DC使能控制、熱管理控制、制動真空泵控制 |
7 | 系統(tǒng)架構(gòu) | 根據(jù)功能架構(gòu)匯總得到整車級系統(tǒng)架構(gòu),包含整體架構(gòu)、元素接口(VCU與外部相關(guān)項(xiàng)進(jìn)行信息交互的接口定義,即不同相關(guān)項(xiàng)之間進(jìn)行信息交互所使用接口的描述)、功能分配(分配到架構(gòu)各個元素的功能,即實(shí)現(xiàn)整車級功能的每個組成元素的需求) |
8 | 質(zhì)量/性能/可用性需求 | 描述功能的質(zhì)量、性能和可用性需求 |
9 | 操作和環(huán)境約束 | 描述相關(guān)項(xiàng)的應(yīng)用環(huán)境和操作的約束 |
10 | 功能相關(guān)性 | 描述相關(guān)項(xiàng)對外部相關(guān)項(xiàng)的要求及來自外部相關(guān)項(xiàng)的要求 |
11 | 運(yùn)行情景 | 列出系統(tǒng)常見使用情景,用于指導(dǎo)HARA和系統(tǒng)設(shè)計(jì),如鄉(xiāng)村公路車輛直線行駛、城市道路車輛直線行駛、高速公路直線行駛、濕滑路面行駛、停車場等 |
12 | 失效后果及影響 | 描述相關(guān)項(xiàng)已知的潛在危害,用于指導(dǎo)HARA和系統(tǒng)設(shè)計(jì) |
?
3.2 HARA分析
危害分析、風(fēng)險評估和ASIL等級的評定用于確定相關(guān)項(xiàng)的安全目標(biāo)。為此,根據(jù)相關(guān)項(xiàng)的潛在危害事件,對相關(guān)性進(jìn)行評估。通過對危害事件進(jìn)行系統(tǒng)性的評估確定安全目標(biāo)及分配給他們的ASIL等級。ASIL等級的確定需要考慮嚴(yán)重度、暴露概率和可控性。
HARA分析的輸出物是《危害分析和風(fēng)險評估報告》。
3.2.1 危害分析
表3-2為危害分析示例。
表3-2: 危害分析示例
?
危害分析 | ||||||
功能編號Function ID |
功能 Function |
HAZOP① | checked |
功能故障描述 Malfunction |
失效的影響 Effect of failure |
功能故障編號 |
VF-004 | 車輛滑行能量回收功能 | No | X | 滑行能量回收功能無法提供制動(負(fù))扭矩 | 電機(jī)滑行制動力矩非預(yù)期消失,剎車距離增加 | MF001 |
No | X | 滑行能量回收功能無法進(jìn)入 | 失效表現(xiàn)與MF001相同,不重復(fù)討論 | MF002 | ||
No | X | 滑行能量回收功能無法退出 | 失效表現(xiàn)與MF008相同,不重復(fù)討論 | MF003 | ||
Less | X | 滑行能量回收功能提供制動(負(fù))扭矩過小 | 電機(jī)滑行制動力矩過小,剎車距離增加 | MF004 | ||
More | X | 滑行能量回收功能提供制動(負(fù))扭矩過大(≤0.6m/s2) | 電機(jī)滑行制動力矩過大,滑行減速度過大 | MF005 | ||
More | X | 滑行能量回收功能提供制動(負(fù))扭矩過大(>0.6m/s2) |
1.電機(jī)滑行制動力矩過大,滑行減速度過大 2.車輛橫向運(yùn)動失控 |
MF006 | ||
Part of | X | ? | ? | ? | ||
As Well As | X | ? | ? | ? | ||
Reverse | X | 滑行能量回收功能提供扭矩反向(扭矩為正) | 車輛非預(yù)期加速行駛 | MF007 | ||
Unintended | X | 滑行能量回收功能提供非預(yù)期制動(負(fù))扭矩 |
1.車輛無法加速行駛,車輛減速 2.車輛橫向運(yùn)動失控 |
MF008 | ||
Unintended | X | 滑行能量回收功能非預(yù)期進(jìn)入 | 失效表現(xiàn)與MF008相同,不重復(fù)討論 | MF009 | ||
Unintended | X | 滑行能量回收功能非預(yù)期退出 | 失效表現(xiàn)與MF001相同,不重復(fù)討論 | MF010 | ||
Early | X | NA | NA | ? | ||
Later | X | NA | NA | ? | ||
Before | X | NA | NA | ? | ||
After | X | NA | NA | ? | ||
Stuck | X | NA | NA | ? | ||
Misuse | X | NA | NA | ? | ||
From Experience | X | NA | NA | ? |
?
①如表3-3和圖3-1所列
表3-3: 危害分析引導(dǎo)字說明
?
Guideword | 含義 |
No | 功能突然丟失 |
Less | 功能輸出少于預(yù)期 |
More | 功能輸出大于預(yù)期 |
Part of | 預(yù)期執(zhí)行A+B功能時,實(shí)際只執(zhí)行了A功能 |
As Well As | 預(yù)期執(zhí)行A功能時,同時非預(yù)期的執(zhí)行了B功能 |
Reverse | 與預(yù)期功能的邏輯相反 |
Unintended | 非預(yù)期的功能輸出 |
Early | 功能輸出比預(yù)期的時間早 |
Later | 功能輸出比預(yù)期的時間晚 |
Before | 功能輸出相對于順序或序列提前 |
After | 功能輸出相對于順序或序列延后 |
Stuck | 功能卡滯 |
Misuse | 無意誤用A功能 |
From Experience | 以上guideword以外的失效 |
?
圖3-1: 危害分析引導(dǎo)字圖示
3.2.2 風(fēng)險評估
對不含內(nèi)部安全機(jī)制的相關(guān)項(xiàng)進(jìn)行評估,表3-4為風(fēng)險評估示例。
表3-4: 風(fēng)險評估示例
?
序號 | 評估項(xiàng) | 內(nèi)容 |
1 | ID | HE013 |
2 | Function | [VF-004] 滑行能量回收扭矩控制 |
3 | Malfunctioning Behavior | [MF006] 滑行能量回收功能提供制動扭矩過大(>0.6m/s2) |
4 | Hazard | [H004]車輛橫向運(yùn)動失控 |
5 | Location | NA |
6 | Road Conditions |
F 冰雪路面-E2 ISO26262 |
7 | Environment | NA |
8 | Item Usage |
F 直線行駛-E4 Experience |
9 | Traffic and People |
F 通暢(正常車距)-E4 VDA702 |
10 | Potential Effect | 車輛制動力過大,車輛偏離車道并與其他車輛、行人或物體發(fā)生碰撞的可能性 |
11 | Assumptions and Coments | NA |
12 | Exposure | E2 |
13 | Exposure Comment | 車輛在冰雪路面準(zhǔn)備滑行 |
14 | Severity | S3 |
15 | Severity Comment | 車輛失去道路抓地力,前輪抱死時車無法轉(zhuǎn)向,后輪抱死時車會側(cè)滑,導(dǎo)致車輛偏離車道并與其他車輛、行人或物體發(fā)生碰撞,對應(yīng)S3 |
16 | Controllability | C3 |
17 | Controllability Comment | 車輛失去抓地力,駕駛員無法重新控制車輛,沒有可控性 |
18 | ASIL | ASIL B |
19 | Safety Goal | [SG001]避免滑行能量回收功能輸出的制動(負(fù))扭矩過大(?a減速度>0.6m/s2)導(dǎo)致車輛失穩(wěn)(ASIL B) |
?
3.2.3 計(jì)算過程
確定每個危害事件的嚴(yán)重度等級、暴露概率等級和可控性等級,并根據(jù)這三者確定其ASIL等級。本步對所有不含內(nèi)部安全機(jī)制的相關(guān)項(xiàng)進(jìn)行風(fēng)險評估。
表3-5、表3-6、表3-7和表3-8分別列出與ASIL等級確定的知識點(diǎn)。
表3-5: 嚴(yán)重度等級
?
等級 | S0 | S1 | S2 | S3 |
描述 | 無傷害 | 輕度和中度傷害 | 嚴(yán)重的和危及生命的傷害(有存活的可能) |
危及生命的傷害(存活不確定) 致命的傷害 |
?
表3-6: 關(guān)于運(yùn)行場景的暴露概率等級
?
等級 | E0 | E1 | E2 | E3 | E4 |
描述 | 不可能 | 非常低的概率 | 低概率 | 中等概率 | 高概率 |
?
表3-7: 可控性等級
?
等級 | C0 | C1 | C2 | C3 |
描述 | 可控 | 簡單可控 | 一般可控 | 難以控制或不可控 |
?
表3-8: ASIL等級確定
?
嚴(yán)重度等級 | 暴露概率等級 | 可控性等級 | ||
C1 | C2 | C3 | ||
S1 | E1 | QM | QM | QM |
E2 | QM | QM | QM | |
E3 | QM | QM | A | |
E4 | QM | A | B | |
S2 | E1 | QM | QM | QM |
E2 | QM | QM | A | |
E3 | QM | A | B | |
E4 | A | B | C | |
S3 | E1 | QM | QM | A |
E2 | QM | A | B | |
E3 | A | B | C | |
E4 | B | C | D |
?
3.2.4 安全目標(biāo)
應(yīng)為具有ASIL等級的每個危害事件確定一個安全目標(biāo),該ASIL等級從危害分析和風(fēng)險評估中得出。如果所確定的安全目標(biāo)是類似的,可將其合并為一個安全目標(biāo)。
表3-9為安全目標(biāo)示例。
表3-9: 安全目標(biāo)示例
?
編號 ID |
安全目標(biāo) Safety Goal |
ASIL等級 ASIL |
安全狀態(tài) Safe State |
故障容錯時間間隔 FTTI |
故障處理時間間隔 FHTI |
SG001 | 避免滑行能量回收功能輸出的制動(負(fù))扭矩過大(?a減速度>0.6m/s2)導(dǎo)致車輛失穩(wěn) | ASIL B | 關(guān)閉滑行能量回收功能,并報警提醒駕駛員 | 300ms | 300ms |
SG002 | 避免滑行能量回收功能提供的扭矩反向(提供正扭矩)導(dǎo)致車輛非預(yù)期加速 | ASIL A | 關(guān)閉滑行能量回收功能,并報警提醒駕駛員 | 2130ms | 200ms |
?
3.3 功能安全概念
為了滿足安全目標(biāo),功能安全概念包括安全措施(含安全機(jī)制),這些安全措施將在相關(guān)項(xiàng)的架構(gòu)要素中實(shí)現(xiàn),并在功能安全要求中規(guī)定。?
功能安全概念包含以下內(nèi)容。
3.3.1 安全分析
針對每個安全目標(biāo),對系統(tǒng)的初始架構(gòu)進(jìn)行安全分析,找出影響安全目標(biāo)的子系統(tǒng)故障,作為后續(xù)導(dǎo)出功能安全需求的依據(jù)。安全分析工具可以是FTA或FMEA,圖3-2為采用FTA方法的示例。
圖3-2: FTA安全分析示例
3.3.2 功能安全需求
根據(jù)安全分析的結(jié)果,針對每個安全目標(biāo)導(dǎo)出相應(yīng)的功能安全需求。表3-10為功能安全需求的編寫示例。
表3-10: 功能安全需求示例
?
序號 | 需求項(xiàng) | 內(nèi)容 |
1 | ID | FSR062 |
2 | Name | 滑行能量回收控制 |
3 | Description | VCU應(yīng)正確計(jì)算滑行能量回收目標(biāo)扭矩 |
4 | Kind | FUNCTIONAL |
5 | ASIL | B |
6 | Time constraint | 周期:TBDms |
7 | Related Goals |
VF004_SG001(ASIL B) VF004_SG002(ASIL A) |
8 | Event |
[E69] [滑行能量回收控制] [MF026] 滑行能量回收計(jì)算目標(biāo)扭矩(絕對值)過大 [E73] [滑行能量回收控制] [MF027] 滑行能量回收計(jì)算目標(biāo)扭矩反向(為正扭矩) |
9 | Allocations | VCU(ASIL C) |
10 | Status | PROPOSED |
11 | 接收準(zhǔn)則 | Test |
?
3.3.3 外部系統(tǒng)功能安全需求
外部系統(tǒng)功能安全需求分為“相關(guān)項(xiàng)對外部系統(tǒng)的功能安全需求”和“外部系統(tǒng)對相關(guān)項(xiàng)的功能安全需求”,表3-11和表3-12分別為這兩者的示例。
表3-11: 相關(guān)項(xiàng)對外部系統(tǒng)的功能安全需求示例
?
編號 ID |
名稱 Name |
描述 Description |
時間約束 TimeConstraint |
1 | BMS | BMS的熱管理系統(tǒng)應(yīng)能提供過溫保護(hù)的安全機(jī)制,防止熱失控帶來的危害,安全等級達(dá)到ASIL C等級 | 5000ms |
2 | 維修操作手冊 | 維修手冊應(yīng)詳細(xì)說明交流充電關(guān)聯(lián)系統(tǒng)的維修流程,必須完全斷開充電高壓回路后方可進(jìn)行維修作業(yè) | NA |
3 | MCU | MCU應(yīng)正確接收VCU發(fā)送的蠕行目標(biāo)扭矩,安全等級達(dá)到ASIL B等級 | 周期:TBDms |
?
表3-12: 外部系統(tǒng)對相關(guān)項(xiàng)的功能安全需求示例
?
編號 ID |
名稱 Name |
描述 Description |
時間約束 TimeConstraint |
1 | TBD(繼承ID文檔) | VCU上高壓的狀態(tài)信號、車速信號的功能安全等級為ASIL A | NA |
2 | ADU | VCU應(yīng)對ADU發(fā)送的扭矩請求信號進(jìn)行E2E診斷,安全等級達(dá)到ASIL B(D)等級 | NA |
3 | ADU | VCU應(yīng)響應(yīng)ADU發(fā)送的扭矩請求信號,安全等級達(dá)到ASIL B(D)等級。 | TBD |
?
3.3.4 報警和降級
當(dāng)系統(tǒng)診斷到相應(yīng)的故障后,應(yīng)該立刻進(jìn)入到安全狀態(tài),如不能直接進(jìn)入安全狀態(tài),則需要進(jìn)入緊急操作模式,或降級模式,再進(jìn)入安全狀態(tài),同時也要規(guī)定緊急操作模式的時間長度。另外,當(dāng)故障出現(xiàn)后,駕駛員需要作何反應(yīng),有何行為要求也需要描述。
表3-13為報警和降級的編寫示例。
表3-13: 報警和降級示例
?
整車級功能 | 編號 | 安全目標(biāo) | 失效模式 | 過渡到安全狀態(tài) | 緊急措施/降級 | 緊急措施時間間隔 | 恢復(fù)到正常狀態(tài) | 駕駛員動作 | 報警 |
VF001 | SG001 | 避免蠕行控制輸出的驅(qū)動扭矩過大,導(dǎo)致追尾前車 | [MF033]蠕行扭矩計(jì)算過大 | 禁止蠕行控制 | / | / | 下一點(diǎn)火周期故障消除 | / | / |
蠕行扭矩信號通信故障,導(dǎo)致輸出蠕行扭矩過大 | 故障消除 |
?
3.3.5 功能安全需求匯總和分配
對所有安全目標(biāo)導(dǎo)出的功能安全需求進(jìn)行匯總和ASIL等級的合并,確定相關(guān)項(xiàng)的功能安全需求,同時將功能安全需求分配到系統(tǒng)架構(gòu)中去。
表3-14為功能安全需求匯總和分配示例。
表3-14: 功能安全需求匯總和分配示例
?
序號 | 需求項(xiàng) | 內(nèi)容 |
1 | ID | FSR062 |
2 | Name | 滑行能量回收控制 |
3 | Description | VCU應(yīng)正確計(jì)算滑行能量回收目標(biāo)扭矩 |
4 | Kind | FUNCTIONAL |
5 | ASIL | B |
6 | Time constraint | 周期:TBDms |
7 | Related Goals |
VF004_SG001(ASIL B) VF004_SG002(ASIL A) |
8 | Event |
?[E69] [滑行能量回收控制] [MF026] 滑行能量回收計(jì)算目標(biāo)扭矩(絕對值)過大 [E73] [滑行能量回收控制] [MF027] 滑行能量回收計(jì)算目標(biāo)扭矩反向(為正扭矩) |
9 | Allocations | ?VCU |
10 | Status | PROPOSED |
11 | 接收準(zhǔn)則 | Test |
?
3.3.6 功能安全架構(gòu)
根據(jù)所提出的FSR,更新系統(tǒng)架構(gòu),并將功能安全需求分配到架構(gòu)的模塊上去,從而使得系統(tǒng)的架構(gòu)滿足功能安全需求。
4 功能安全系統(tǒng)開發(fā)
功能安全系統(tǒng)階段的工作包括技術(shù)安全需求、技術(shù)安全概念、系統(tǒng)架構(gòu)設(shè)計(jì)規(guī)范和軟硬件接口規(guī)范等。
4.1 技術(shù)安全需求
技術(shù)安全需求應(yīng)定義系統(tǒng)對影響安全需求實(shí)現(xiàn)的激勵的響應(yīng)。這包括在各種相關(guān)運(yùn)行模式和所定義的系統(tǒng)狀態(tài)下,激勵與失效的組合。
表4-1為技術(shù)安全需求示例。
表4-1: 技術(shù)安全需求示例
?
序號 | 需求項(xiàng) | 內(nèi)容 |
1 | ID | TSR30 |
2 | Name | 制動踏板比較監(jiān)控,故障確認(rèn) |
3 | Description | 當(dāng)制動踏板1與制動踏板2采集到的有效結(jié)果不一致,并持續(xù)60ms時,故障確認(rèn) |
4 | ASIL | C |
5 | Contributes To | FSR038-042,F(xiàn)SR084:制動開關(guān)非預(yù)期未踩下;FSR044-047巡航無法退出 |
6 | Allocations | MicroController-L2 |
7 | Type | ASW |
8 | Operation Mode | 行駛模式 |
9 | Time Constraint | 60ms |
?
4.2 軟硬件接口規(guī)范
軟硬件接口規(guī)范包含以下內(nèi)容。
4.2.1 操作模式
操作模式包括操作模式轉(zhuǎn)換圖(Operating Modes Transfer Diagram)、操作模式描述(Operating Modes Description)和操作模式轉(zhuǎn)換條件(Operating Modes Transfer Condition)等。圖4-1、表4-2和表4-3分別為三者的示例。
圖4-1: 操作模式轉(zhuǎn)換圖示例
表4-2: 操作模式示例
?
Mode | Description | Use in the project |
Run Mode | 至少有一個主CPU沒有請求睡眠模式或待機(jī)模式,并且處于運(yùn)行模式。所有外圍模塊都處于活躍狀態(tài) | Y |
Sleep Mode | CPU代碼執(zhí)行暫停,進(jìn)入CPU空閑狀態(tài)。如果在相應(yīng)的CLCx.EDIS位中進(jìn)行了配置,則外圍設(shè)備將進(jìn)入睡眠狀態(tài)。端口保持各自先前的狀態(tài) | N |
Standby?Mode | 構(gòu)成備用RAM和喚醒單元的備用域保持活動供電。芯片其余部分的電源完全關(guān)閉 | N |
?
表4-3: 操作模式轉(zhuǎn)換條件示例
?
當(dāng)前模式 | 下一時刻模式 | 轉(zhuǎn)換條件(OR) |
CPU Run Mode | CPU Idle Mode | 當(dāng)CPU沒有活動任務(wù)要執(zhí)行時,通過設(shè)置寄存器位PMCSRx.REQSLP = 01B發(fā)出SW空閑請求 |
在另一個CPU發(fā)出的軟件空閑請求(PMCSRy.REQSLP = 01B) | ||
在SMU空閑請求下,如果檢測到CPU故障,則會觸發(fā)安全警報,該警報在SMU中配置為將CPU設(shè)定為空閑狀態(tài) | ||
CPU Idle Mode | CPU Run Mode | 當(dāng)CPU發(fā)生中斷時 |
當(dāng)發(fā)生Trap(如NMI Trap事件)時 | ||
當(dāng)CPU看門狗或安全看門狗定時器溢出事件觸發(fā)SMU警報進(jìn)而導(dǎo)致CPU中斷時 | ||
CPU看門狗計(jì)數(shù)器發(fā)生MSB位換行時 | ||
當(dāng)應(yīng)用程序復(fù)位、系統(tǒng)復(fù)位或任何更高級別的復(fù)位發(fā)生時 |
?
4.2.2 配置參數(shù)
列出IC相關(guān)配置參數(shù)(如:MCU、通信、存儲器、I/O)。例如:AURIX TC275的描述內(nèi)容包括MCAL、SafeTlib、MCU-SM。
4.2.3 獨(dú)立性要求
軟件進(jìn)行相關(guān)失效分析(Dependent Failure Analysis)后識別到支持軟件獨(dú)立性要求的硬件特性。
表4-4為AURIX-TC275的描述內(nèi)容(部分)。
表4-4: AURIX-TC275獨(dú)立性要求描述
?
Dependent Failure Initiator | Hardware features | Safety mechanisms |
Clock |
For safety reasons clock monitors are available.Each of these clocks is monitored by its own counter. As reference clock the back-up clock is used as diverse clock source. |
SM1[HW].VADC:CLKMON SM1[HW].GTM:CLKMON SM1[HW].STM:CLKMON SM1[HW].SPB:CLKMON SM1[HW].SRI:CLKMON SM1[HW].SystemPLL:CLKMON |
SRAM | The SRAM monitoring is based on error detection and correction codes. |
SM1[HW].SRAM:ECC SM1[HW].SRAM:EDC SM1[HW].SRAM:ADDRMON SM1[HW].SRAM.ECC:LOCKSTEP |
?
4.2.4 相互免干擾
軟件進(jìn)行相關(guān)失效分析(Dependent Failure Analysis)后識別到支持軟件相互免干擾要求的硬件特性。
表4-5為AURIX-TC275的描述內(nèi)容(部分)。
表4-5: AURIX-TC275相互免干擾描述
?
Dependent Failure Initiator | Hardware features | Safety mechanisms |
Timing and execution |
Enable the application to verify?that the static timing properties of the safety related tasks are met during run-time. Provides internal watchdogs. There is one internal watchdog per CPU, plus one Safety watchdog. |
SM1[HW].WDT |
SM1[HW].SWDT | ||
SM1[HW].CPU:TPS | ||
Memory |
Supported by the Memory Protection?Unit (MPU) of the TriCore CPU. Each shared memory implements a region accessprotection mechanism. |
SM1[HW].CPU.DATA:MPU |
SM1[HW].CPU.CODE:MPU | ||
SM1[HW].CPU.BUS:MPU | ||
Resource |
The modules connected on the SPB implements a register access protection. With this safety mechanism all the configuration registers can?only be written by selected masters. Write accesses from forbidden masters?are blocked and cause a bus error. |
SM1[HW]. |
SM1[HW].CPU:SV | ||
SM1[HW].CPU:USER1 | ||
SM1[HW].CPU:USER0 |
?
4.2.5 輸入輸出
描述ECU級別的硬件信號與MCU的端口/引腳和軟件輸入/輸出變量之間的關(guān)系,表4-6為其示例。
表4-6: AURIX-TC275軟硬件接口輸入輸出示例
?
序號 | 層 | 描述項(xiàng) | 內(nèi)容 |
1 | 追溯信息 | Relevant TSRs | TSR267 |
2 | Relevant HSRs | FT_FUN_022 | |
3 | Relevant SSRs | SSR_xxx | |
4 | 概念層 | Signal Name | DIL_8(HW);HVILFlg |
5 | Signal ASIL | QM | |
6 | Signal Description | 高壓互鎖信號 | |
7 | Signal Direction | in | |
8 | Remark | 低有效開關(guān) | |
9 | 物理層 | Physical Signal property | Boolean[Open, Close] |
10 | Input Signal Property of ECU |
Close:Input voltage = INT_PULLUP Open:Input voltage = GND 輸入電壓范圍:0~36V 濾波時間常數(shù):1ms 1:Vin>3.4 0:Vin<2.3 |
|
11 | ECU pin | pin47 | |
12 | Processing Module | 高壓互鎖信號采樣處理 | |
13 | Processing Module Description | 內(nèi)部上拉,濾波時間常數(shù)80ms | |
14 | Property of Processing Module | 內(nèi)部上拉,濾波時間常數(shù)80ms | |
15 | MCU pin | pin77 | |
16 |
MCU Peripheral/module number/ Channel number |
P33.7 | |
17 | Input Signal Property of MCU | NA | |
18 | Config of MCU Peripheral Module | Port、Dio | |
19 | Remark | NA | |
20 | 數(shù)據(jù)層 | Data Register Name and Address | MCAL P33.7 |
21 | Data Type | NA | |
22 | Data Range | NA | |
23 | Trigger Event and time constraint | NA | |
24 | Remark | NA | |
25 | 表達(dá)層 | Variable name | NA |
26 | Variable type | NA | |
27 | Default value | NA | |
28 | Variable range | NA | |
29 | Update period | 10ms | |
30 | Remark | NA |
?
4.2.6 中斷
描述系統(tǒng)所有中斷分配情況,包括中斷源、中斷頻率、中斷服務(wù)程序的職責(zé),以及其他相關(guān)的信息等,表4-7為其示例。
表4-7: AURIX-TC275軟硬件接口中斷示例
?
序號 | 描述項(xiàng) | 內(nèi)容 |
1 | Module | GPT_Atom0_Ch0 |
2 | No | 10 |
3 | ISR | GTMATOM0SR0_ISR |
4 | Description | GPT中斷,用于生成OS時鐘 |
5 | ASIL | ASIL D |
6 | CAT Configuration | 二類中斷 |
7 | Priority Number | 10 |
8 | ISR frequency?(nominal) | 100Hz |
9 | ISR frequency?(worst-case) | 100Hz |
?
4.2.7 內(nèi)存分配
描述系統(tǒng)所有用到的RAM空間、FLASH空間、EEPROM空間的分配方案,表4-8為其示例。
表4-8: AURIX-TC275軟硬件接口內(nèi)存分配示例
?
序號 | 描述項(xiàng) | 內(nèi)容 |
1 | Start Address / 起始地址 | 0xA0028000 |
2 | Size / 存儲空間 | 64K |
3 | Type / 存儲類型 | PFlash |
4 | Access / 訪問方式 | Read Only / Programming |
5 | ASIL | ASIL D |
6 | MPU | Y |
7 | ECC/EDC | N |
8 | Usage in Project / 項(xiàng)目中的用途 | 標(biāo)定區(qū) |
9 | SW Independent Requirement / 軟件對獨(dú)立性的要求 | Y |
?
4.2.8 訪問機(jī)制
描述硬件設(shè)備間的訪問機(jī)制(Serial,parallel,slave,master/slave),表4-9為其示例。
表4-9: 軟硬件接口訪問機(jī)制示例
?
MCU | Other hardware devices | Access mechanism |
MCU | SBC(FS8510) |
通訊類型:SPI 通信屬性:MCU為master,SBC為slave |
MCU | Low-Side(TLE8110) |
通信類型:SPI 通信屬性:MCU為master,TLE8110為slave |
?
4.2.9 硬件診斷
描述硬件的診斷特性和響應(yīng)的安全機(jī)制及軟件的實(shí)現(xiàn),表4-10為其示例。
表4-10: 軟硬件接口硬件診斷示例
?
Diagnostic features | Safety mechanisms | Configuration OF SW |
L9945過溫故障 | ssr_xxx | 通過軟件啟用:寄存器讀取 |
FS8510過溫故障 | ssr_xxx | 通過軟件啟用:寄存器讀取 |
?
4.2.10 時間約束
描述系統(tǒng)安全機(jī)制中硬件與軟件所用時間,表4-11為其示例。
表4-11: 軟硬件接口硬件診斷示例
?
Sequence No / 順序號 | HW Side?/ 硬件 | SW Side?/ 軟件 | Time Consume(ms)?/?所用時間 | Total Reaction time(ms) / 總共反應(yīng)時間 |
1 | Sample Switch signal and converter it to digital value | SW calucate the switch state and Signal Valid check | 80 | 80 |
?
4.3 技術(shù)安全概念
技術(shù)安全概念的目的是從功能安全概念中導(dǎo)出技術(shù)安全需求,設(shè)計(jì)技術(shù)安全概念,并且將技術(shù)安全需求分配到相關(guān)項(xiàng)的初始架構(gòu)中。
4.3.1 系統(tǒng)功能描述
系統(tǒng)功能如表4-12所列,文檔中需要對每項(xiàng)功能進(jìn)行詳細(xì)描述。
表4-12: 系統(tǒng)功能描述示例
?
功能ID | 功能名稱 | 功能描述 | 和其他Item/Element的依賴關(guān)系(信號接收對象) |
F001 | 蠕行控制 | 根據(jù)當(dāng)前擋位狀態(tài)、車速計(jì)算蠕行需求扭矩,使車輛在水平路面能維持穩(wěn)定車速在5km/h附近。 | MCU |
F002 | 車輛加速控制 | 結(jié)合擋位信息、駕駛模式、車速與油門踏板深度信息,計(jì)算當(dāng)前駕駛員需求扭矩。 | MCU |
F011 | 擋位控制 | 根據(jù)從擋位操縱器采集到的R/N/D擋信號有效性及制動開關(guān)、充電槍插槍信號、主駕車門開關(guān)信號、車速等信息判斷是否進(jìn)行擋位切換以及是否發(fā)送駐車請求信號 | MCU、EPB |
F044 | 充電高壓上下電控制 | 當(dāng)插入充電槍給車輛進(jìn)行充電,車輛滿足充電要求時,VCU控制整車高壓上下電,將高壓連接指令發(fā)給BMS,由BMS閉合高壓繼電器 | BMS、OBC |
?
4.3.2 系統(tǒng)初始架構(gòu)設(shè)計(jì)
設(shè)計(jì)VCU整體初始系統(tǒng)架構(gòu)并按照表4-13、表4-14和表4-15分別進(jìn)行功能、外部接口和內(nèi)部接口描述。
表4-13: VCU初始架構(gòu)功能描述示例
?
模塊名稱 Element Name |
功能ID Function ID |
功能描述 Function Description |
EMC處理電路 | F195 | 低壓電源輸入EMC處理 |
電源管理 | F136 | 休眠、喚醒功能 |
F100 | 內(nèi)部功能模塊供電 | |
F135 | 外部傳感器、功能模塊供電 | |
直流充電口喚醒信號處理 | F178 | 直流充電口喚醒信號處理 |
?
表4-14: VCU外部接口描述示例
?
邏輯接口 | 接口類型 | 方向 | Connector Name |
低壓電池電壓輸入 | Power(6-28V) | Input(LV Battery→VCU) | 接插件1 |
KL15 ON信號 | 高有效輸入 | Input(啟動開關(guān)→VCU) | 接插件1 |
Start信號 | 高有效輸入 | Input(啟動開關(guān)→VCU) | 接插件1 |
N檔請求信號 | 數(shù)字信號(低有效) | Input(擋位控制器→VCU) | 接插件1 |
?
表4-15: VCU內(nèi)部接口描述示例
?
邏輯接口 | 接口類型 | 方向 |
Torque request信號輸入 | CAN(0-5V) | CAN Transceiver→MCU |
Operating Mode信號輸入 | CAN(0-5V) | CAN Transceiver→MCU |
Crash Signal信號輸入(VCU) | CAN(0-5V) | CAN Transceiver→MCU |
KL15喚醒信號 | 數(shù)字信號 | KL15喚醒信號處理→275 |
?
4.3.3 基于系統(tǒng)初始架構(gòu)的安全分析
安全分析首先需要設(shè)計(jì)功能失效列表;再依次進(jìn)行外部非電氣接口失效矩陣分析、約束性需求失效矩陣分析、配置功能失效矩陣分析和共享資源安全完整性分析;最后分別對系統(tǒng)失效頂事件進(jìn)行安全分析。
(1)功能安全目標(biāo)
表4-16為功能安全目標(biāo)的設(shè)計(jì)示例。
表4-16: 功能安全目標(biāo)設(shè)計(jì)示例
?
序號 | 描述項(xiàng) | 內(nèi)容 |
1 | 整車級功能 | VF002車輛加速控制 |
2 | 編號 | SG001 |
3 | 安全目標(biāo) | 避免驅(qū)動控制提供驅(qū)動扭矩過大,導(dǎo)致車輛碰撞或車輪打滑 |
4 | ASIL | ASIL B |
5 | 安全狀態(tài) | 切斷扭矩輸出 |
6 | 單點(diǎn)故障 | ≥?90 % |
7 | 潛在故障 | ≥?60 % |
8 | 失效率 | 100Fit |
9 | FTTI | 300ms |
10 | FHTI | 300ms |
?
(2)功能失效列表
根據(jù)功能安全目標(biāo)提煉出功能失效列表,這是進(jìn)行安全分析的基礎(chǔ),如表4-17所列。
表4-17: 功能失效列表示例
?
序號 | VCU系統(tǒng)失效頂事件 | SG追溯 |
1 | 驅(qū)動扭矩正過大/非預(yù)期輸出正扭矩 | VF001-SG001、VF002-SG001、VF002-SG003、VF003-SG002 |
2 | 制動優(yōu)先功能無法激活 | VF006-SG001 |
?
(3)頂事件安全分析
使用與圖4-2類似的FTA進(jìn)行安全分析,輸出表4-18所示的單點(diǎn)故障和潛伏故障列表。
圖4-2: FTA安全分析示例
表4-18: 單點(diǎn)故障和潛伏故障列表示例
?
IDs of Events | Events of Cut Set | SM Design | 2nd level SM Design |
E205 | ?? [E205] [為VCU軟件算法提供硬件平臺] [MF068] 為軟件提供的硬件平臺故障 |
SM_SPF_003 SM_SPF_004 SM_SPF_006 |
SM_LF_001 SM_LF_003 |
E230 | ?? [E230] [內(nèi)部功能模塊供電] [MF081] MCU控制器供電過壓 | SM_SPF_001 | SM_LF_002 |
?
4.3.4 安全機(jī)制設(shè)計(jì)
分別設(shè)計(jì)單點(diǎn)故障和潛伏故障的安全機(jī)制,參見表4-19和表4-20。
表4-19: 單點(diǎn)故障安全機(jī)制設(shè)計(jì)示例
?
SM ID | SM_SPF_001 |
SM Name | Microcontroller 供電電壓監(jiān)控 |
Fault detection / tolerance method | SBC監(jiān)測到Microcontroller 供電電壓(3.3V)低于2.97V(10%)并持續(xù)40us,確認(rèn)其欠壓故障;檢測到Microcontroller 供電電壓高于3.63V(10%)并持續(xù)45us,確認(rèn)其過壓故障 |
FDTI | 40us |
Fault handling |
(1)供電電壓出現(xiàn)欠壓故障,向L1層發(fā)送故障信息,寄存器VMON3報告欠壓故障(須手動清除);FS0B引腳拉低通知Microcontroller芯片,同時停止CAN通訊(此時MCU可以正常工作) (2)供電電壓出現(xiàn)過壓故障,向L1層發(fā)送故障信息,寄存器VMON3報告過壓故障(須手動清除);為了保護(hù)芯片,Microcontroller供電電壓監(jiān)控模塊需要關(guān)斷電壓輸出,同時停止CAN通訊(此時MCU可以正常工作) |
Fault warning (related to LF) |
ICU檢測到VCU CAN通信停止,在200ms內(nèi)點(diǎn)亮紅燈閃爍+蜂鳴 |
FRTI | TBD |
Fault Recover | 下個點(diǎn)火循環(huán) |
Degraded Mode | Degraded 4 |
SPF Diagnostic Coverage | 99% |
LF Diagnostic Coverage | 99% |
Remark | ? |
?
表4-20: 潛伏故障安全機(jī)制設(shè)計(jì)示例
?
SM ID | SM_LF_001 |
SM Name | Microcontroller潛伏故障監(jiān)控 |
Fault detection / tolerance method | Microcontroller應(yīng)采用針對單點(diǎn)故障或雙點(diǎn)故障的二級安全機(jī)制 |
FDTI | 上電初始化完成 |
Fault handling | Microcontroller進(jìn)入不可恢復(fù)的故障模式 |
Fault warning | Microcontroller在200ms內(nèi)將故障指示紅燈常亮警告信息發(fā)送給IC。IC紅燈常亮并用文字或故障碼提示駕駛員。 |
FRTI | 上電初始化完成 |
Fault Recover | Microcontroller重啟且自檢無故障后恢復(fù) |
SPF Diagnostic Coverage | N.A |
LF Diagnostic Coverage | 90% |
Remark | ? |
?
4.3.5 其他
技術(shù)安全概念還應(yīng)包含下列內(nèi)容:系統(tǒng)降級策略;非功能相關(guān)的技術(shù)安全需求(試驗(yàn)需求、機(jī)械結(jié)構(gòu)安裝需求、硬件指標(biāo)需求、共存需求、獨(dú)立性需求等);生產(chǎn)、運(yùn)行、服務(wù)和報廢需求規(guī)范;最終輸出系統(tǒng)安全整體架構(gòu)。
5 功能安全軟件開發(fā)
VCU功能安全軟件階段設(shè)計(jì)按照V流程的步驟進(jìn)行,包括軟件需求分析、軟件架構(gòu)設(shè)計(jì)、軟件單元設(shè)計(jì)、軟件單元測試、軟件集成等步驟,軟件集成測試和嵌入式軟件測試分別由HIL和實(shí)車測試工程師負(fù)責(zé)。
5.1 軟件安全需求
本階段定義或細(xì)化由技術(shù)安全概念和系統(tǒng)架構(gòu)設(shè)計(jì)規(guī)范導(dǎo)出的軟件安全需求,并描述軟件實(shí)現(xiàn)所需的安全相關(guān)功能和特性。
5.1.1 需求列表
表5-1為軟件需求列表的示例。
表5-1: 軟件需求列表示例
?
編號 | 功能項(xiàng) | ASIL等級 | 備注 |
1 | 加速踏板傳感器信號范圍診斷 | ASIL B | X.X節(jié) |
2 | 加速踏板傳感器信號比較監(jiān)控 | ASIL D | X.X節(jié) |
3 | 加速踏板傳感器信號合理性校驗(yàn) | ASIL D | X.X節(jié) |
4 | 制動踏板傳感器信號診斷 | ASIL D | X.X節(jié) |
5 | E2E保護(hù) | ASIL D | X.X節(jié) |
?
5.1.2 模式轉(zhuǎn)換
主要用于描述當(dāng)前系統(tǒng)不同行為模式(例如上電模式、下電模式、運(yùn)行模式、故障模式等)及各個行為模式的功能,模式之間的切換條件等。
5.1.3 功能描述
對軟件功能進(jìn)行詳細(xì)描述,表5-2為功能描述示例。
表5-2: 軟件安全需求功能描述示例
?
SSR_ID | VCU_SSR104 |
Corresponding TSR ID | TSR166 |
ASIL Class | ASIL B |
Function Description |
[VCU_ECU_SW]應(yīng)該根據(jù)上一時刻擋位信號、當(dāng)前擋位信號、車速信號、扭矩信號和制動踏板信號等判斷擋位是否跳轉(zhuǎn),判斷邏輯如下: 車輛靜止時(車速小于0.5km/h)需同時滿足以下條件: 1)?上一時刻擋位信號為N擋,當(dāng)前擋位信號為D擋; 2)?擋位故障標(biāo)志位=0; 3)?KL15信號=ON; 4)?制動踏板信號=1; 5)?充電線未連接(A+信號以及OBC_CC信號); 車輛非靜止時(車速大于0.5km/h)需同時滿足以下條件: 1)?上一時刻擋位信號為N擋,當(dāng)前擋位信號為D擋; 2)?擋位信號故障標(biāo)志位=0; 3)?KL15信號=ON; 4)?扭矩絕對值<6 Nm; 5)?充電線未連接; 當(dāng)以上條件滿足時,輸出N擋轉(zhuǎn)D擋允許標(biāo)志位=1 |
Operation Mode | ? |
Status | PROPOSED |
Verification Method | Software test & Review |
Comments | 0:OFF,2:ON,3:START |
?
5.1.4 設(shè)計(jì)約束
設(shè)計(jì)約束包括功能啟動時間、負(fù)載率、內(nèi)存空間使用率、空間分配、共存需求和獨(dú)立性需求等,表5-3為其設(shè)計(jì)示例。
表5-3: 軟件安全需求設(shè)計(jì)約束示例
?
SSR_ID | VCU_SSR183 |
ASIL Class | QM |
Function Description |
[VCU_ECU_SW]應(yīng)滿足如下負(fù)載率的要求: CPU使用率:<80%; 中斷負(fù)載率:<50%。 |
Status | PROPOSED |
Verification Method |
Software test & Review or Review 使用測試工具評(如RVS)估出CPU使用率和中斷負(fù)載率是否滿足要求。 |
Comments | ? |
?
5.2 軟件架構(gòu)設(shè)計(jì)
軟件架構(gòu)設(shè)計(jì)以層次結(jié)構(gòu)的形式表示軟件架構(gòu)要素以及他們的交互方式。描述了靜態(tài)方面,如軟件組件之間的接口;動態(tài)方面,如進(jìn)程序列和時序行為。
軟件架構(gòu)設(shè)計(jì)既要滿足軟件安全要求,又要滿足其他軟件要求。因此,在該子階段中,與安全相關(guān)和非安全相關(guān)的軟件要求在同一個開發(fā)過程中處理。
5.2.1 軟件架構(gòu)總體描述以及分層視圖
本項(xiàng)目的軟件架構(gòu)基于AUTOSAR架構(gòu)開發(fā),應(yīng)用層開發(fā)方式為基于模型設(shè)計(jì)(MBD),底層購買自第三方(ETAS AUTOSAR)。
VCU軟件架構(gòu)如圖5-1所示。
圖5-1: VCU軟件架構(gòu)圖
5.2.2 軟件組件設(shè)計(jì)
分別描述軟件架構(gòu)中各組件的組件描述、組件圖和接口描述等,表5-4、圖5-2、表5-5和表5-6分別為對應(yīng)的示例。
表5-4: 組件概覽示例
?
Component ID | VCU_031 | |
分層 Layer |
App layer | |
組件職責(zé) Responsibility |
1.將模擬量采樣結(jié)果傳遞給應(yīng)用層 2.將開關(guān)量采樣結(jié)果傳遞給應(yīng)用層 |
|
對應(yīng)需求文檔章節(jié) Matching Requirement |
ALL | |
實(shí)現(xiàn)方式 Source |
Coding | |
ASIL等級 ASIL Class |
ASIL_D | |
資源消耗 Resource Consumption |
Flash | N.A |
RAM | N.A | |
EEPROM | N.A | |
CPU | N.A |
?
圖5-2: 軟件組件圖示例
表5-5: 軟件組件數(shù)據(jù)接口描述示例
?
名稱Name | 描述Description |
hld_Mw_AccPdl2Vcc | 參考附錄[數(shù)據(jù)字典] |
hld_Mw_AccPdl1 | 參考附錄[數(shù)據(jù)字典] |
hld_Mw_AccPdl1Vcc | 參考附錄[數(shù)據(jù)字典] |
?
表5-6: 軟件組件函數(shù)接口描述示例
?
Function Prototype 函數(shù)原型 |
|
void RE_AccPdl2Vcc_func (uint16 *hld_Mw_AccPdl2Vcc) | |
Parameter Specification 參數(shù)說明 |
|
hld_Mw_AccPdl2Vcc | 加速踏板2電源電壓信號指針 |
Return Value 返回值 |
|
Void | None |
Functional Description 功能描述 |
|
該API函數(shù)的主要功能是:將加速踏板2電源電壓信號傳遞給應(yīng)用層 |
?
5.2.3 動態(tài)行為
動態(tài)行為常見的描述方式有以下三種:時序圖(Sequence Diagram)、活動圖(Activity Diagram)和交互縱覽圖(Interaction Overview Diagram)。動態(tài)行為描述的對象基于系統(tǒng)級功能列表,對其功能進(jìn)行描述。
圖5-3為動態(tài)行為圖示例。
圖5-3: 動態(tài)行為圖示例
5.2.4 任務(wù)調(diào)度和任務(wù)分配
描述系統(tǒng)所有任務(wù)的調(diào)度策略及任務(wù)劃分,搶占屬性,調(diào)度周期和優(yōu)先級等。任務(wù)劃分時,需考慮便于實(shí)現(xiàn)不同ASIL等級之間的免干擾性。
5.2.5 資源預(yù)估
計(jì)算CPU在不同調(diào)度周期(如:1ms、5ms、10ms、100ms、1s)的使用率以及軟件系統(tǒng)所用到RAM空間、FLASH空間、EEPROM空間的分配方案。
5.2.6 資源沖突和控制流監(jiān)控
所有存儲在同一個字節(jié)中的全局標(biāo)志應(yīng)視為共享資源,對于有共享資源沖突的使用需要保護(hù)。
控制流監(jiān)控有三種類型:活躍性監(jiān)控(Alive Supervision)、最后期限監(jiān)控(Deadline Supervision)和邏輯監(jiān)控(Logic Supervision)。
本步制定在資源沖突和控制流監(jiān)控時的安全機(jī)制。
5.3 軟件單元設(shè)計(jì)和實(shí)現(xiàn)
軟件單元設(shè)計(jì)和實(shí)現(xiàn)的目的是按照軟件架構(gòu)設(shè)計(jì)、設(shè)計(jì)準(zhǔn)則和所分配的支持軟件單元實(shí)施和驗(yàn)證的軟件要求,進(jìn)行軟件單元設(shè)計(jì);并實(shí)現(xiàn)所定義的軟件單元。
5.3.1 軟件功能簡述
描述軟件單元實(shí)現(xiàn)的功能。
5.3.2 組件源碼文件
羅列程序文件名稱及其實(shí)現(xiàn)的功能,表5-7為組件源碼文件示例。
表5-7: 組件源碼文件示例
?
No.編號 | Filename文件名稱 | Description描述 |
1 | AccPedal_Mon.c |
該組件功能的實(shí)現(xiàn).c文件,包含該組件運(yùn)行時所有函數(shù)的定義 The implementation of the component's function. c file, containing definitions of all the functions that the component runs on |
2 | AccPedal_Mon.h |
該組件功能的實(shí)現(xiàn).h文件,包含該組件所有變量、函數(shù)的聲明 H file containing the declaration of all variables and functions of the component |
3 | Vcu_ADC.h |
該組件功能的實(shí)現(xiàn)包含的.h文件,包含ADC轉(zhuǎn)換組件所有變量、函數(shù)的聲明 The implementation of the component's functionality includes an. H file that contains declarations of all variables and functions of the ADC conversion component |
...... | …… | ...... |
?
5.3.3 靜態(tài)框圖
可以通過約定的方式展示組件靜態(tài)框圖,包括組件內(nèi)單元的結(jié)構(gòu)關(guān)系及單元之間的接口,且保持整個組件設(shè)計(jì)與架構(gòu)中組件定義保持一致。圖5-4為靜態(tài)框圖示例。
圖5-4: 軟件單元靜態(tài)框圖示例
5.3.4 單元接口
描述單元間輸入、輸出信息,或使用表格的形式展示,也可單獨(dú)管理接口信息,參見數(shù)據(jù)字典。表5-8為軟件單元接口示例。
表5-8: 軟件單元接口示例
?
序號 No. |
Interfaces | DataType | InitValue | Dim | Units | Min | Max | Resolution | Description | Ex/Inter |
1 | AccPosVoltage | Unit16 | 0 | 1 | V | 0.7 | 4.5 | 0.01 |
加速踏板信號 Accelerator pedal signal |
In/Ex |
2 | ReAccPosVoltage | Unit16 | 0 | 1 | V | 0.35 | 2.25 | 0.01 |
冗余加速踏板信號 Redundant accelerator pedal signals |
In/Ex |
?
5.3.5 動態(tài)行為
基于SWC在架構(gòu)設(shè)計(jì)中的動態(tài)行為及要求實(shí)現(xiàn)的軟件功能需求及非功能需求,描述組件內(nèi)單元之間的動態(tài)行為;動態(tài)行為描述可以采用時序圖、狀態(tài)機(jī)等形式進(jìn)行。圖5-5為軟件單元動態(tài)行為示例。
圖5-5: 軟件單元動態(tài)行為示例
5.3.6 變量定義
描述本組件或某單元內(nèi)部的局部變量、標(biāo)定量、常量、宏、復(fù)合數(shù)據(jù)等;也可單獨(dú)管理接口信息,參見數(shù)據(jù)字典。表5-9為變量定義示例。
表5-9: 軟件單元變量定義示例
?
Name 數(shù)據(jù)定義 |
Type 數(shù)據(jù)類型 |
InitValue 初始值 |
Description 數(shù)據(jù)項(xiàng)描述 |
Local_count_1 | Static Uint8 | 0 |
加速踏板位置故障恢復(fù)計(jì)數(shù) Accelerator pedal position fault recovery count |
Loca2_count_2 | Static Uint8 | 0 |
冗余加速踏板位置故障恢復(fù)計(jì)數(shù) Redundant accelerator pedal position fault recovery count |
True | Macro | 1 |
故障位真 Fault bit true |
?
5.3.7 配置項(xiàng)設(shè)計(jì)
描述可在線配置和離線配置的配置項(xiàng),離線指修改參數(shù)后再次編譯,在線是通過診斷服務(wù)的方式進(jìn)行配置項(xiàng)修改。表5-10為配置項(xiàng)設(shè)計(jì)示例。
表5-10: 軟件單元配置項(xiàng)設(shè)計(jì)示例
?
No |
Name 名稱 |
Description 描述 |
類型 |
Range 范圍 |
Definition定義 | 配置方式 | ASIL |
1 | 驅(qū)動防滑與穩(wěn)定協(xié)調(diào)控制功能 | 通過配置來使能/禁能該功能 | Boolean | 0-1 |
1:使能功能; 0:禁能功能 |
離線 | ASIL B |
?
5.3.8 函數(shù)單元設(shè)計(jì)
對軟件單元所含各函數(shù)的函數(shù)原型、輸入輸出參數(shù)、返回值、功能描述、設(shè)計(jì)思路、實(shí)現(xiàn)方法等逐一說明。
5.4 軟件單元驗(yàn)證
本步提供證據(jù)證明軟件單元設(shè)計(jì)滿足分配的軟件要求且適合于實(shí)施,驗(yàn)證安全分析得出的安全措施得到適當(dāng)實(shí)施,提供證據(jù)證明所實(shí)現(xiàn)的軟件單元符合單元設(shè)計(jì),并滿足根據(jù)所需的ASIL等級分配的軟件要求。
5.4.1 軟件驗(yàn)證計(jì)劃和策略
表5-11、表5-12、表5-13和表5-14分別為軟件驗(yàn)證計(jì)劃(Software Verification Plan)、軟件單元測試范圍(Software Unit Test Scope)、測試工具列表及環(huán)境(Test Tool List and Environment)和軟件單元驗(yàn)證策略(SW Unit Test)的示例。
表5-11: 軟件驗(yàn)證計(jì)劃示例
?
一級任務(wù) Level 1 task |
二級任務(wù) (具體工作安排) Level 2 task (Specific work schedule) |
工作產(chǎn)品輸出 Work product output |
是否裁剪 Whether to crop |
完成情況 | 是否評審 |
備注 Remarks |
文檔審核 Document Auditing |
軟件需求審核 Software requirements review |
AXXXXX_BBB_軟件需求評審檢查單 AXXXXX_BBB_Software Requirements Review Checklist |
? | ? | ? | ? |
軟件方案審核 Software Scheme Auditing |
AXXXXX_BBB_軟件架構(gòu)評審檢查單 AXXXXX_BBB_Software Architecture Review Checklist |
? | ? | ? | ? | |
...... | ? | ? | ? | ? | ? | ? |
?
表5-12: 軟件單元測試范圍示例
?
測試模塊名稱 Test module name |
軟件單元名稱 Software Unit Name |
是否裁剪(可復(fù)用) Whether to clip (reusable) |
復(fù)用說明 Whether to clip (reusable) |
是否需要 測試環(huán)境 Is it necessary testing environment |
測試環(huán)境說明 Test environment description |
備注 Remarks |
ADC Driver模塊 | Initial_ADC | ? | xxx項(xiàng)目的xxx.c的xxx版本 | N | ? | ? |
?
表5-13: 測試工具列表及環(huán)境示例
?
測試工具名稱 Test Tool Name |
型號(規(guī)格) Model (Specification) |
供應(yīng)商 Supplier |
工具資質(zhì) Tool Qualification |
備注 Remarks |
Polyspace | R2014b | MathWorks | ? | 代碼靜態(tài)驗(yàn)證/語義分析 |
...... | ? | ? | ? | ? |
測試階段 Test Phase |
測試環(huán)境 Test Environment |
? | ? | 備注Remarks |
單元/模型靜態(tài)驗(yàn)證 Unit/Integration Model Static Validation |
MIL | ? | ? |
模型靜態(tài)驗(yàn)證/規(guī)則檢查 Model static validation/rule checking |
...... | ? | ? | ? | ? |
?
表5-14: 軟件單元驗(yàn)證策略示例
?
Test Case ID | Verification Method | Test Case Name | Test Case Description | Criteria |
Verification Environment |
Verification Resource |
SW_UT_0xx | Walk-through | ? | ? | Pass | ? | ? |
...... | ? | ? | ? | ? | ? | ? |
?
5.4.2 軟件單元測試用例和報告
表5-15為軟件單元測試用例和報告的示例。
表5-15: 軟件單元測試用例和報告示例
?
用例唯一標(biāo)識符 Use Case Unique Identifier |
類型 Type |
用例名稱 Use Case Name |
級別 Level |
測試步驟 Testing step |
期望結(jié)果 Expected results |
實(shí)際結(jié)果及其他說明 Actual results and other explanations |
實(shí)際結(jié)果及其他說明 Actual results and other explanations |
A10000-001-001 | 用例Case | 接口+邊界測試Interface + boundary testing | 高 |
t=0ms,設(shè)置sigIn=1; t=0-100ms,保持sigIn=1; t=110ms,保持sigIn=2 |
t=0ms,設(shè)置sigOut=100; t=0-100ms,保持sigOut=100; t=110ms,保持sigOut=200 |
? | ? |
...... | ? | ? | ? | ? | ? | ? | ? |
?
5.4.3 軟件模型和代碼靜態(tài)驗(yàn)證報告
表5-16和表5-17分別為軟件模型和代碼靜態(tài)驗(yàn)證報告的示例。
表5-16: 軟件模型靜態(tài)驗(yàn)證報告示例
?
Simulink建模規(guī)范(版本:V2.0) 章節(jié)-3 |
規(guī)范內(nèi)容 Specification Content |
NA 復(fù)雜性度量 Complexity Metrics |
ISO26262:2018 | 檢查方法 | 是否符合 |
違反規(guī)范模型內(nèi)容描述 Description of the content of the breach model |
說明 |
HR_cmply_1 | 圈復(fù)雜度度量Cyclomatic complexity measure | NA | [ISO 26262, Table1,1a] | MI | Pass | ? | ? |
...... | ? | ? | ? | ? | ? | ? | ? |
?
表5-17: 軟件代碼靜態(tài)驗(yàn)證報告示例
?
C語言編程規(guī)范(版本:C1) 章節(jié) |
規(guī)范內(nèi)容Specification content |
MISRA 2012 |
ISO26262:2018 | 檢查方法 | 是否符合 |
違反規(guī)范代碼內(nèi)容描述 Description of the content of the code violation |
說明Description |
3.1.11 |
在可互換的情況下,應(yīng)優(yōu)先使用函數(shù)而非宏函數(shù)。 In the case of interchangeability, functions should be preferred over macrofunctions. |
[Dir 4.9] [A] | [ISO 26262, Tablex,2h] | QAC | ? | ? | ? |
...... | ? | ? | ? | ? | ? | ? | ? |
?
5.5 軟件集成和驗(yàn)證
本步定義集成步驟并集成軟件要素,直至嵌入式軟件完全集成;驗(yàn)證是確保軟件架構(gòu)層面的安全分析得出的已定義的安全措施得到適當(dāng)實(shí)施。
5.5.1 軟件集成
軟件集成的方法應(yīng)定義和描述將各個軟件單元分層集成到軟件組件中的步驟,直到整個嵌入式軟件全部被集成。
對于AUTOSAR工具鏈方式設(shè)計(jì)的車載嵌入式軟件而言,軟件集成主要包括基礎(chǔ)軟件模塊間的集成以及基礎(chǔ)軟件與應(yīng)用層軟件的集成。
5.5.2 集成測試范圍
表5-18為軟件集成測試范圍示例。
表5-18: 軟件集成測試范圍示例
?
軟件需求 Software Requirements |
集成模塊名稱 Integration module name |
集成類型 Integration type |
測試內(nèi)容 Test Content |
是否需要 測試環(huán)境 Is it necessary testing environment |
測試環(huán)境說明 Test environment description |
備注 Remarks |
填寫軟件需求ID Fill in the software requirement ID |
集成Integration: ADC、PWM、OVP、DIO,OS |
部分軟件單元集成 |
軟件集成測試 軟件需求測試 Software Integration Testing Software requirements testing |
? | ? | ? |
?
5.5.3 集成測試報告
與軟件單元測試報告格式相同。
6 功能安全基礎(chǔ)軟件核心工作梳理
下面列出VCU功能安全項(xiàng)目基礎(chǔ)軟件的主要工作。
6.1 概念階段
功能安全概念階段基礎(chǔ)軟件工程師工作較少,主要是檢查、學(xué)習(xí)相關(guān)項(xiàng)定義和功能安全概念開發(fā),輔助繪制功能安全架構(gòu)等。
6.2 系統(tǒng)階段
功能安全系統(tǒng)階段基礎(chǔ)軟件的工作如表6-1所列。
表6-1: 系統(tǒng)階段基礎(chǔ)軟件工作
?
序號 | 工作項(xiàng) | 工作內(nèi)容 |
1 | 系統(tǒng)架構(gòu)圖 | 協(xié)助系統(tǒng)工程師繪制VCU初始架構(gòu)圖和安全架構(gòu)圖,重點(diǎn)梳理架構(gòu)圖的外層(輸入輸出)部分 |
2 | 軟硬件接口 | 基礎(chǔ)軟件核心工作之一,概念層和物理層可由硬件或基礎(chǔ)軟件工程師編寫;數(shù)據(jù)層和表達(dá)層通常由基礎(chǔ)軟件工程師編寫 |
3 | 技術(shù)安全需求 | 編寫底層相關(guān)的技術(shù)安全需求,包含看門狗、主控芯片安全機(jī)制、電源芯片安全機(jī)制、外圍芯片故障診斷、總線通信故障、程序流監(jiān)控、程序刷寫故障等 |
4 | 技術(shù)安全概念 | 編寫底層相關(guān)模塊的安全機(jī)制,如供電電壓監(jiān)控、單點(diǎn)故障監(jiān)控、外部看門狗監(jiān)控、通信安全完整性等 |
?
6.3 軟件階段
功能安全軟件階段基礎(chǔ)軟件的工作如表6-2所列。
表6-2: 軟件階段基礎(chǔ)軟件工作
?
序號 | 工作項(xiàng) | 工作內(nèi)容 |
1 | 軟件安全需求 | 編寫軟件安全需求規(guī)格說明書中下列模塊的功能描述:E2E保護(hù)、SBC供電過壓欠壓檢測、軟件程序刷寫、外部看門狗、內(nèi)部看門狗、故障碼轉(zhuǎn)換與存儲、SBC芯片需求、MCU芯片需求等;設(shè)計(jì)約束中的負(fù)載率、空間分配、內(nèi)存空間使用率等 |
2 | 軟件架構(gòu)設(shè)計(jì) | 編寫軟件架構(gòu)總體描述以及分層視圖;完成底層模塊組件設(shè)計(jì);設(shè)計(jì)任務(wù)調(diào)度與任務(wù)分配;中斷資源分配;CPU使用率和存儲空間預(yù)估;控制流監(jiān)控;不同ASIL等級軟件模塊分區(qū)設(shè)計(jì) |
3 | 軟件單元設(shè)計(jì)和實(shí)現(xiàn) | 功能安全基礎(chǔ)軟件設(shè)計(jì)核心部分。含BSW模塊(Wdg、WdgM、E2E)設(shè)計(jì)和實(shí)現(xiàn);OS任務(wù)設(shè)計(jì)與實(shí)現(xiàn)(設(shè)計(jì)原則是不同ASIL等級的軟件模塊須存在于不同核或同核的不同APPLICATION中);電源芯片安全機(jī)制實(shí)現(xiàn);主控芯片安全機(jī)制實(shí)現(xiàn);故障信號上傳等 |
4 | 軟件單元驗(yàn)證 | 編寫底層模塊軟件單元驗(yàn)證策略;編寫測試用例和報告;軟件模塊實(shí)操測試等 |
5 | 軟件集成和驗(yàn)證 | 基礎(chǔ)軟件模塊集成;基礎(chǔ)軟件與應(yīng)用層軟件(L1和L2層的所有模塊)集成;編程軟件集成驗(yàn)證策略、編寫軟硬件集成測試測試用例中底層模塊相關(guān)的部分,含軟件刷寫、硬件單點(diǎn)故障監(jiān)控、外部看門狗監(jiān)控、程序流監(jiān)控、微處理器潛伏故障、電源監(jiān)控潛伏故障、SPI通信故障、CAN通信故障等 |
?
7 項(xiàng)目總結(jié)
以上列出了新能源VCU功能安全項(xiàng)目的開發(fā)過程,下面簡要做個總結(jié)。
7.1 標(biāo)準(zhǔn)與項(xiàng)目
功能安全規(guī)范只是一份指導(dǎo)性文檔,學(xué)會滿足功能安全的汽車電子設(shè)計(jì)方法離不開具體項(xiàng)目的工程實(shí)踐,這個過程可以在專業(yè)咨詢公司的指導(dǎo)下進(jìn)行。
7.2 文檔與程序工程
功能安全設(shè)計(jì)不僅僅是編寫文檔,而是借助文檔制定安全目標(biāo)、設(shè)計(jì)安全機(jī)制、再通過軟硬件設(shè)計(jì)滿足車輛安全性需求。最終輸出的程序需要在經(jīng)過HIL、實(shí)車測試驗(yàn)證后滿足量產(chǎn)要求。
7.3 能力要求
從功能安全項(xiàng)目基礎(chǔ)軟件部分的工作看,Wdg模塊開發(fā)需要具備MCAL設(shè)計(jì)能力;WdgM和E2E模塊開發(fā)需要具備BSW設(shè)計(jì)能力;軟件集成需要RTE設(shè)計(jì)能力;不同ASIL等級的任務(wù)分配需要OS設(shè)計(jì)能力;主控芯片和電源芯片安全機(jī)制實(shí)現(xiàn)需要手冊研讀和手工編程的能力......應(yīng)用層軟件與硬件工程師的工作也與之類似。因此,開發(fā)出一款滿足ISO26262的車載ECU需要相關(guān)工程師具備全面的設(shè)計(jì)能力和文檔能力。
功能安全不是一門單獨(dú)的技術(shù),而是軟硬件設(shè)計(jì)的拓展和升華。
7.4 功能安全認(rèn)證
最后聊一下車輛功能安全工程師考試。具備高含金量的功能安全證書考試具有較高的難度和巨大的題量(據(jù)說沒有中國考生能做完題),并且考察的內(nèi)容涉及到標(biāo)準(zhǔn)的各個章節(jié)(含術(shù)語、概念、系統(tǒng)、硬件、軟件、生產(chǎn)等)。做項(xiàng)目肯定有分工,但如果想考證的話,標(biāo)準(zhǔn)各部分的重點(diǎn)知識要盡量多的掌握。
審核編輯:黃飛
?
評論
查看更多