為什么ISO26262這樣的國際標(biāo)準(zhǔn)里會頻頻提到基于模型設(shè)計?
原因非常簡單——基于模型設(shè)計在汽車行業(yè)已經(jīng)被廣泛應(yīng)用了。作為國際標(biāo)準(zhǔn),ISO26262的目的之一應(yīng)該是通過標(biāo)準(zhǔn)的方式規(guī)范行業(yè)開發(fā)行為,所以制定標(biāo)準(zhǔn)的基礎(chǔ)就是這種開發(fā)行為在行業(yè)的廣泛應(yīng)用。這在民航領(lǐng)域的DO-178也可以得到印證,早在1992年發(fā)布的DO-178B,標(biāo)準(zhǔn)里沒有任何關(guān)于基于模型設(shè)計的討論——因為那個年代沒有公司使用基于模型設(shè)計開發(fā)民航軟件,而到2011年發(fā)布DO-178C的時候,同時發(fā)布了附件DO-331專門討論基于模型的設(shè)計在民航軟件開發(fā)中的應(yīng)用,因為在2011年,基于模型設(shè)計已經(jīng)在民航領(lǐng)域廣泛應(yīng)用了。
基于模型設(shè)計的討論在ISO26262-6里面,跟第一版一樣,除了標(biāo)準(zhǔn)正文的各種條款里提到基于模型設(shè)計模式下應(yīng)該如何要求之外,還專門有附錄B討論基于模型設(shè)計。本篇主要介紹附錄B的一些變化。
線下交流
ISO 26262研討會
主要介紹MathWorks工具鏈對于ISO26262和SOTIF的支持情況,涵蓋滿足ISO26262要求的模型驗證和代碼驗證、符合ISO26262軟件開發(fā)過程中的工具審核問題,以及針對無人駕駛應(yīng)用的場景建模仿真等方向。掃描二維碼注冊>>
跟第一版不同的是,第一版的附錄B基本上只提到了基于模型設(shè)計如何如何的好,而第二版除了保留了這些優(yōu)勢的陳述之外,還提到了在這種開發(fā)模式下的注意事項。主要優(yōu)勢如標(biāo)準(zhǔn)所言,基于模型設(shè)計將“軟件生命周期的各個階段實現(xiàn)了更強(qiáng)的聚合(Strongercoalescence),并且認(rèn)為:
“Thispotentialbenefitsofthisapproach(e.g.continuity,informationsharingacrossthesoftwarelifecycle,consistency)areappealing.”
同時跟了一句:
“butthisapproachmayalsointroduceissuescausingsystematicfaults(SeeB.3).”
于是就有了B.3,下面我們就對照B.3著重看一下可能有哪些風(fēng)險以及如何應(yīng)對。
一. 文本性描述
標(biāo)準(zhǔn)對單一的建模語言可能不足以充分描述需求、架構(gòu)以及單元設(shè)計有所顧慮。確實如此,如果你認(rèn)為既然選擇了基于模型設(shè)計,所有的需求、設(shè)計都使用圖形化描述,完全沒有文字說明的話,那的確是有問題的。標(biāo)準(zhǔn)要求在圖形化描述不足以完整描述需求、設(shè)計的時候,增加文字性描述。
這部分內(nèi)容不僅僅在附錄里有體現(xiàn),在標(biāo)準(zhǔn)正文里也有改變,Table2中的1a,就是新增的內(nèi)容,并且針對不同的ASIL等級,都給出了++的要求。

從本人的開發(fā)經(jīng)驗,以及這些年接觸到的客戶來看,沒遇到有用戶僅依賴于模型而不使用文字描述的案例,標(biāo)準(zhǔn)里對這部分內(nèi)容的增加,或許是制定標(biāo)準(zhǔn)的人或者做標(biāo)準(zhǔn)認(rèn)證的人遇到了這種情況。
其實Simulink模塊有很幾種方式可以增加文字性的描述,比如簡單的文字注釋,或者正式的需求文檔,如下圖:

實現(xiàn)這部分要求,難度不大。
二. 背靠背(back-to-back)測試

上圖就是一種背靠背測試的實現(xiàn)方式,這里的目標(biāo)代碼運行在MCU上,我們稱之為PIL。PIL之外,SIL測試也是一種背靠背測試,前面也有介紹(為什么一定要做SIL測試)。
顯然上述圖中的PIL測試是為了檢查模型生成的代碼在MCU上運行,從行為上講,跟模型是否一致。
如果同樣的測試向量(TestVectors)在兩邊運行的結(jié)果一致,那么我們可以認(rèn)為代碼和模型在行為上一致。注意,需要有個前提,那就是測試數(shù)據(jù)足夠多,可以覆蓋所有軟件結(jié)構(gòu)以及信號范圍,那是最好的。通常,我們在這個時候除了重用功能測試的測試用例之外,還可以通過工具自動生成一些測試用例,以便可以達(dá)到更高的覆蓋要求。SimulinkDesignVerifier提供測試數(shù)據(jù)自動生成功能可以用于這個階段。
代碼和模型之間的背靠背測試,主要是為了防止模型到代碼的轉(zhuǎn)換過程中出現(xiàn)錯誤,標(biāo)準(zhǔn)還提到了其他兩種轉(zhuǎn)化的過程中也可能出錯:
一是從連續(xù)模型往離散模型轉(zhuǎn)換的過程(離散化)中引入錯誤;
二是從浮點模型往定點模型轉(zhuǎn)換過程(定點化)中可能出現(xiàn)的錯誤。
這種擔(dān)心是有必要的,在這兩種轉(zhuǎn)換過程中確實可能引入錯誤,實踐中,建議對離散化、定點化前后的模型做一個背靠背測試。
對于定點化,除了明顯的定點錯誤會導(dǎo)致出錯之外,還可能會隱藏一些測試數(shù)據(jù)或者測試場景覆蓋不到的溢出。所以,定點化之后的模型建議通過SimulinkDesignVerifier檢查一下是否有溢出問題。
另外,標(biāo)準(zhǔn)提到了仿真或者驗證的工具依賴問題,其實從SIL和PIL測試中,算法的運行平臺已經(jīng)是完全不同的了,模型仿真的時候,是Simulink引擎解析模型運行,SIL測試的時候,運行的是生成代碼編譯之后的動態(tài)鏈接庫,PIL更是運行到了目標(biāo)處理器之上。
三. 安全相關(guān)的代碼設(shè)置
代碼的安全相關(guān)設(shè)置,可以通過代碼生成設(shè)置和建模實現(xiàn),比如,標(biāo)準(zhǔn)提到的溢出問題,在生成代碼的設(shè)置里,就有默認(rèn)的優(yōu)化設(shè)置如下:

當(dāng)然,如果你非常關(guān)心代碼效率,并且能夠確保數(shù)據(jù)不會發(fā)生溢出,也可以通過勾選上述選項達(dá)到代碼優(yōu)化的目的,切記,前提是確保數(shù)據(jù)不會發(fā)生溢出!
如何確保?人工確保非常困難,可以通過形式化工具SimulinkDesignVerifier實現(xiàn)。
另外,還有一些對代碼的保護(hù)要求,比如,有安全要求的代碼要放到專屬的Flash區(qū)域。通常,代碼上可以通過在這段代碼前后增加#pragma的方式實現(xiàn),這可以通過自定義存儲類的方式實現(xiàn)。
還有一類要求,比如在運行某段代碼的時候不響應(yīng)中斷:

這可以通過建模實現(xiàn),比如,模型中增加SystemOutputs模塊,設(shè)置相關(guān)參數(shù)得以實現(xiàn)。

如果還有其他的安全要求,也可以跟我們交流。
四. 代碼優(yōu)化問題
針對不同的優(yōu)化目標(biāo),代碼可以做不同的優(yōu)化,比如說,在新能源汽車領(lǐng)域,BMS開發(fā)中可能更關(guān)心代碼的RAM占用,而電機(jī)控制器開發(fā)中更關(guān)心代碼的執(zhí)行速度。對于這兩種情況,顯然優(yōu)化目標(biāo)不同,選擇的優(yōu)化設(shè)置也會有所區(qū)別。

對應(yīng)不同的目標(biāo),會有很多相關(guān)的優(yōu)化選項需要設(shè)置。幸運的是,代碼生成工具提供了上圖的功能,用戶只需設(shè)置目標(biāo),工具會根據(jù)你設(shè)定的目標(biāo)給出相應(yīng)的建議。
五. 組件模型代碼生成問題
到底在單元模型級別還是集成模型級別(包括組件級集成和系統(tǒng)級集成)上做代碼生成這樣的問題,我一直認(rèn)為要慎重,基礎(chǔ)軟件對于應(yīng)用軟件的調(diào)度應(yīng)該是我們要考慮的。對于簡單的調(diào)度,不同任務(wù)之間不存在搶占,不存在中斷,在集成模型上做代碼生成會更加方便,而如果任務(wù)之間可能存在搶占或者中斷,那么就要仔細(xì)評估了,因為,Simulink目前并不能仿真搶占或者中斷行為。
六. 被控對象模型的精度問題
這個問題會出現(xiàn)在MIL和HIL測試中,通過被控對象模型實現(xiàn)模型級閉環(huán)測試。理論上講,精度越高越好,但實踐上,我們可能很難有高精度并且非常完善的模型。這不影響我們利用MIL和HIL測試給我們帶來的便利。如果有理想中的高精度模型,我們完全可以在模型階段把標(biāo)定做完,而事實上,我們沒有那樣的模型,我們也不期望這個階段完成標(biāo)定工作。我們希望可以通過這些模型實現(xiàn)驗證算法,這已經(jīng)給我們帶來很大便利了。
當(dāng)然,也有辦法讓被控對象模型變得精度更高,比如可以通過臺架測試數(shù)據(jù)或者實車數(shù)據(jù)去優(yōu)化模型參數(shù),還可以通過基于模型的標(biāo)定(Model-BasedCalibration)技術(shù)實現(xiàn)部分參數(shù)的標(biāo)定工作。
-
處理器
+關(guān)注
關(guān)注
68文章
20344瀏覽量
255359 -
代碼
+關(guān)注
關(guān)注
30文章
4977瀏覽量
74420
發(fā)布評論請先 登錄
ISO 26262功能安全落地全流程解析
功能安全ISO26262是什么?(一)
SGS授予阿維塔科技ISO 26262汽車功能安全產(chǎn)品證書
深度解析:主流功能安全標(biāo)準(zhǔn)(ISO 26262/IEC 61508)及其軟件合規(guī)全流程
SGS為地平線"智駕安全基座"產(chǎn)品頒發(fā)ISO 26262功能安全證書
海康汽車與森思泰克通過ISO 26262汽車功能安全ASIL D流程認(rèn)證
SGS為江蘇智馭轉(zhuǎn)向PPU平臺產(chǎn)品頒發(fā)ISO 26262功能安全證書
資料] 汽車軟件質(zhì)量躍遷的系統(tǒng)性路徑:基于ISO 26262標(biāo)準(zhǔn)的單元測試體系重構(gòu)與中日實踐深度對比(2026學(xué)術(shù)研究報告)
汽車軟件質(zhì)量躍遷的系統(tǒng)性路徑:基于ISO 26262標(biāo)準(zhǔn)的單元測試體系重構(gòu)與中日實踐深度對比(2026學(xué)術(shù)研究報告)
ISO 18000-6:2013標(biāo)準(zhǔn)正式撤回,新版(2025)支持無源傳感器
蘇州翰霖榮獲DEKRA德凱ISO 26262 ASIL-D認(rèn)證
汽車軟件團(tuán)隊必看:基于靜態(tài)代碼分析工具Perforce QAC的ISO 26262合規(guī)實踐
格見半導(dǎo)體榮獲ISO 26262 ASIL-D功能安全流程認(rèn)證證書
小鵬汽車斬獲兩項國際頂級安全認(rèn)證 ISO 26262功能安全流程認(rèn)證和ISO 21448預(yù)期功能安全(SOTIF)流程認(rèn)證
美芯晟獲得ISO 26262功能安全管理體系A(chǔ)SIL D認(rèn)證證書
關(guān)于新版 ISO 26262-6 之基于模型的設(shè)計的分析和應(yīng)用
評論