











摘要:本文首先概述了智能駕駛操作系統和功能安全標準,然后介紹了智能駕駛操作系統架構,對其進行功能安全分析,并基于上述分析對智能駕駛操作系統功能安全開發進行了認證實踐活動。
關鍵詞:操作系統 智能駕駛 功能安全 認證實踐
一、概述
(一)智能駕駛操作系統概述
汽車行業正在經歷一場翻天覆地的變革,從機械化到電子化、電動化,再到自動化、智能化,以及未來的云計算化、車路云協同化,智能車時代已經拉開序幕,智能車操作系統作為智能車時代的靈魂和核心備受關注。按照應用場景的不同,智能車的操作系統可以分為安全車控操作系統、智能駕駛操作系統和車載操作系統3類[1]。隨著智能駕駛技術快速發展,智能駕駛操作系統已成為行業競爭焦點,但技術和市場尚不成熟,是關鍵突破口;智能駕駛操作系統主要面向智能駕駛領域,支持高算力異構系統級芯片(System On Chip,SOC),包含車規級操作系統內核,兼容自適應汽車開放系統架構(Automotive Open System Architecture,AUTOSAR)等國際主流中間件,具備多傳感器數據的接入和大數據吞吐能力,同時滿足自動駕駛所需的功能安全要求[2]。本文著重分析智能駕駛操作系統的功能安全,并開展相關的認證實踐活動。
(二)功能安全概述
目前智能車遵循的功能安全國際標準為ISO 26262-2018《Road vehicles — Functional safety》和國內標準為GB/T 34590-2022《道路車輛 功能安全》,國內標準是基于國際標準的翻譯修訂而來,以下為ISO 26262-2018[3]標準構成和主要內容,如表1 所示。
在應用 ISO 26262 規范自動駕駛軟件產品的相關研發活動時,主要涉及的是標準的第 2 章、第6 章、第 8 章和第9章的內容或要求的活動。由于ISO 26262-2018《Road vehicles -Functional safety》標準的局限性,沒有對既存的軟件組件(如Linux開源軟件組件)的標準符合性提出可行的技術要求和方法指導,ISO/PAS 8926標準提出了一整套對開源軟件標準符合性的指導,國際標準化組織在ISO 26262 第三版的修訂版中將吸收ISO/PAS 8926標準的內容作為補充。
(三)功能安全的重要性
智能車走進千家萬戶和融入我們的日常生活,車輛是否擁有足夠的安全性是人們關注的焦點。前方突然出現行人或車輛,它是否能迅速識別并在安全距離內實現制動或減速慢行;在高速行駛過程中,它是否會出現突發的非預期的剎車制動;在自主泊車過程中,它是否能精確計算位置,而不與其他車輛發生碰撞剮蹭。在智能車時代,一個元器件的失效,一段不經意的代碼,一套不完善的防護機制,都將對人們的生命安全造成巨大威脅[4]。在出現電子系統故障情況下,智能車合理的功能安全機制和安全策略能識別安全風險并控制車輛進入安全狀態,最大限度減少甚至避免人員傷亡,功能安全就成了最基本的安全保障,智能車功能安全的重要性不言而喻。同時智能車安全體系的內涵和外延也在不斷發生變化,功能安全、預期功能安全和信息安全構成了智能車特別是智能駕駛體系的安全要素。功能安全地融入是智能駕駛汽車發展的客觀要求,功能安全在智能駕駛系統的全生命周期中起著指引、規范、控制的作用。明確的功能安全要求、技術方案和規范的功能安全開發流程可以降低甚至避免來自系統失效和隨機硬件失效的風險。
二、智能駕駛操作系統功能安全分析
(一)智能駕駛操作系統架構
智能駕駛操作系統按架構自下而上均可分為系統軟件和功能軟件。其中,系統軟件按架構自下而上可以分為虛擬化管理(如Hypervisor)、操作系統內核(如Linux)和中間件;功能軟件可以分為自動駕駛通用框架模型(環境模型、規劃模型、控制模型)和功能軟件通用框架(數據抽象、數據流框架、基礎服務)以及應用軟件接口(SOA/API)等[1],如圖1所示為智能駕駛操作系統架構。
(二)智能駕駛操作系統功能安全分析
由于智能駕駛操作系統作為軟件組件使用SEooC(Safety Element out of Content,脫離上下文的安全要素)的開發方式較合適,從智能汽車操作系統的特性定義入手,進行假設分析,并進一步分解安全需求,這種方式更加聚焦共性基礎軟件的功能安全細節要求,同時結合自上而下的方式對智能駕駛操作系統進行從HARA到FSR到TSR的逐層分析和需求導出,如下表2-表3提出了對智駕操作系統的安全目標、功能安全需求和軟件安全需求,智駕操作系統的設計需遵循此要求。
以上的功能安全需求定義了實現安全的智駕操作系統的基本的功能安全要求,同時需結合安全的軟件架構進行落地實施。
E-GAS安全監控架構是汽車行業廣為人知的系統架構,如圖2為汽車動力域采用的E-GAS 3級監控概念,監控層1為功能實現層,實現的是發動機控制基礎的功能,如扭矩控制和部件監控;監控層2功能監控層,監控功能層的軟件運行,如監控扭矩的計算和車輛加速度,如果發生功能故障,將觸發系統故障反應;監控層3為控制監控層,此監控層模塊需獨立于上述的功能監控層,通過問答監控程序測試程序是否在正確地運行[5]。
將功能安全的需求和技術措施結合汽車行業的E-GAS 3層監控的概念應用到智能駕駛操作系統的架構設計中,可以提出如圖3所示的典型的監控架構,用以保證智能駕駛操作系統的整體安全性,其中:L1(level 1層 功能監控層),該層對OS的內核態和用戶態的故障檢測和診斷;L2(level 2層 功能安全島監控層),該層是功能安全島,負責整個SOC的關鍵狀態監測;L3(level 3層 外部監控層),該層運行在第三方的MCU上,支持重啟等措施來恢復SOC的嚴重故障。
為了滿足和實現上述的功能安全需求和落地上述典型操作系統監控架構,開發滿足功能安全流程和技術要求的智能駕駛操作系統的系統軟件和功能軟件,選擇安全可靠的開發工具是必不可少的。從整車系統角度分析的智能駕駛域的功能安全最高等級要求需達到ASILD的要求,智能駕駛操作系統作為智能駕駛域控的技術底座,也需按照最高功能安全等級ASILD進行開發。
三、智能駕駛操作系統功能安全認證實踐
由前述章節的分析可知,判斷智能駕駛操作系統是否滿足功能安全ISO 26262標準的要求,需確保操作系統系統軟件和功能軟件安全相關的核心組件符合功能安全流程和技術要求。基于此要求,進行了如下實踐活動:
系統軟件:對安全強相關的軟件組件C庫、IPC、AUTOSAR AP等系統軟件組件按照ISO2626功能安全標準流程開發并進行功能安全最高等級ASILD的認證,并通過第三方審核機構審核和評估;對Linux內核的核心模塊按照ISO2626標準以ASILB為目標的功能安全流程開發,同時對系統調用進行安全缺陷分析、增加安全機制以實現安全加強。
功能軟件:確定性調度和診斷模塊等功能軟件組件按照ISO2626功能安全標準流程開發并進行功能安全最高等級ASILD的認證,并通過第三方審核機構審核和評估;開發工具:對安全相關關鍵工具鏈編譯器進行功能安全最高置信度 TCL3的工具鑒定并通過第三方審核機構審核和評估;
本章將選取Linux內核安全加強、C庫軟件組件功能安全認證兩個案例逐一論述為了滿足智能駕駛操作系統功能安全技術和流程的要求所做的實踐活動。
(一)Linux內核安全加強
智能汽車操作系統底層采用Linux內核,并且內部含有第三方的庫函數(如C庫)和一些開源代碼(如中間件vsomeip、cyclonedds、iceoryx),從傳統功能安全的角度,這些都是標準要求所不能接受的,Linux內核作為智能駕駛操作系統的核心內容需具備足夠的安全機制以確保滿足功能安全ISO 26262標準技術要求,但受限于Linux作為開源的宏內核,代碼結構極其復雜,流程層面還不具備功能安全認證的條件,ELISA組織(Linux基金會發起,致力于將開源的Linux內核滿足ASILB開發要求,并應用于關鍵安全系統的組織)提出了借助ISO 26262 Part8-12和Part6的混合方法論,同時結合標準ISO/PAS 8926進行內核的缺陷分析,以確保有足夠的安全機制保證內核安全和穩定地運行。
以內核系統調用ioctl()為例,如圖4和表5所示,分別展示了基于ISO 26262 Part8-12和Part6的混合方式的方法論的流程和基于ISO8926進行的ioctl()安全需求設計及ioctl()架構設計示意圖。
通過專門的接口調用分析軟件分析可以統計出,Linux內核被安全相關的上層應用調用的系統調用有134個。首先根據項目實際應用和專門的分析工具,將其分為三類:禁止使用、非安全相關、安全相關。如果Linux內核系統調用被定義為禁止使用或者非安全相關,則在安全使用手冊中明確寫出此類接口被禁止使用,或為非安全接口。對于安全相關系統調用,利用特別定制的Linux內核復雜度分析軟件進行調用樹展開及復雜度分析,并按照ISO/PAS 8926標準的要求將其復雜度由低到高劃分為C1、C2、C3三個等級。
對于低復雜度(復雜度為C1、C2)的部分按照ISO26262 Part8-12的要求,將其作為黑盒進行需求分析后加入相應的安全機制并進行必要的需求驗證測試,以驗證功能是否達預期和安全機制的有效性。
對于高復雜度(復雜度為C3)的部分,除了按照ISO26262 Part8-12的要求,將其作為黑盒進行需求分析后加入相應的安全機制并進行必要的需求驗證測試以外,還需按照ISO 8926標準的要求,以白盒的方式進行架構設計分析并據此進行安全分析(采用FEMA方法),依次進行功能級FEMA分析和函數級FEMA分析,分析出功能層級和函數層級可能的失效模式和失效影響,最終提出可行的安全機制和安全需求并進行相應的機制驗證。通過對安全應用相關的Linux內核系統調用的黑盒和白盒的分析,得到必要的安全機制并實施,極大地提升內核的安全性和可靠性,為實現安全Linux內核打下堅實基礎。
(二)C庫軟件組件功能安全產品認證
C庫即C運行庫,是智能駕駛操作系統最底層的接口,其功能安全的實現必須依賴安全的C庫。智能駕駛操作系統中的系統軟件和功能軟件都依賴C庫函數才能正常運行和實現相應的功能,C庫函數大約有幾千個之多,并且還隨著版本的更新而增加。在實際車型項目中,根據智能駕駛系統軟件和功能軟件對C庫的依賴情況,使用專用工具掃描獲取高頻的C庫函數有456個,核心的有108個,選取了其中安全相關的且核心的108個函數作為C庫的認證范圍。
在對C庫產品進行功能安全認證時,首先對該軟件組件的使用假設場景(Assumption of Use,AoU)進行定義,AoU中對外部的依賴項進行明確要求和定義。基于此提出高層級的功能安全需求,功能安全目標(Safety Goal,SG),根據對C庫的分析,提出以下功能安全目標(表6)。
根據功能安全目標的要求對C庫的架構進行分析,形成功能安全概念和技術安全概念,并編寫功能安全需求(FSR)(見表7)和技術安全需求(TSR)(見表8)。
基于以上的安全需求,按照ISO26262功能安全標準的要求依次進行軟件需求開發、架構設計、單元設計、詳細測試、集成測試、功能測試等文檔編寫和代碼實現及測試,對C庫軟件組件進行功能安全產品認證,通過第三方審核機構TUV萊茵的審核評估,最終獲得軟件功能安全產品ASILD認證證書。
四、結束語
智能駕駛操作系統作為智能車時代的核心,其功能安全的重要性不言而喻。本文通過對智能駕駛操作系統架構并對其進行功能安全分析,同時運用可行的方法論對智能駕駛操作系統的核心軟件組件進行了功能安全技術開發和認證實踐活動,通過ISO26262功能安全標準的指導減少甚至避免了智能駕駛操作系統核心軟件組件的系統性失效的發生,從而確保了智能駕駛操作系統整體的安全性。
作者單位:王圭 孟超 吳鵬 零束科技有限公司
參考文獻
[1]全國汽車標準化技術委員會智能網聯汽車分技術委員會.車控操作系統總體技術要求研究報告[R/OL].全國汽車標準化委員會, 2022.
[2] 周時瑩,梁貴友,王德平,等.智能網聯汽車操作系統發展趨勢及國產化生態建設[J].汽車技術, 2023(11): 1-7.
[3] ISO 26262:2018. Road Vehicles Functional Safety [S].
[4] https://zhuanlan.zhihu.com/p/560674605.
[5] EGAS Workgroup.Standardized E-Gas Monitoring Concept for Gasoline and Diesel Engine Control Units[S]Version 6.0.Frankfurt,Germany.