那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在AUTOSAR系統(tǒng)中如何將BSW模塊分配到不同的分區(qū)和內(nèi)核呢?

冬至子 ? 來源:汽車電子與軟件 ? 作者:踐行者 ? 2023-11-16 17:49 ? 次閱讀

本文主要討論在 AUTOSAR 系統(tǒng)中如何將 BSW 模塊分配到不同的分區(qū)(Partition)和內(nèi)核。主要解決了以下問題:

  • 如何修改 BSW 模塊以支持多核并行執(zhí)行
  • 如何配置將 BSW 模塊分配到不同分區(qū)
  • MCAL(微控制器抽象層)模塊的多核支持方式
  • 通信棧(Com-Stack)的分配方案
  • 加密服務(wù)(Crypto-Stack)的分配方案
  • 在安全關(guān)鍵系統(tǒng)中進行 BSW 分配的方式

相比單核系統(tǒng),多核 BSW 分配需要解決的主要問題是:

  • 并行執(zhí)行帶來的數(shù)據(jù)一致性問題
  • 跨分區(qū)調(diào)用的內(nèi)存訪問權(quán)限問題
  • 如何分配核心的硬件資源訪問權(quán)
  • 啟動/關(guān)閉時對安全性的影響
  • 由分區(qū)引入的新的錯誤場景

AUTOSAR 提供了一系列機制來解決這些問題,支持高效、安全的 BSW 多核分配。

BSW 在多核系統(tǒng)中的分配

支持的分配場景

AUTOSAR 支持將 BSW 功能相關(guān)的模塊分配到不同的分區(qū),這既可以提升性能,也可以增強安全性。每種功能集群包含一組相關(guān)的 BSW 模塊,可以包含通信、存儲、IO、看門狗等等。同一類型的功能集群可以存在于多個分區(qū)中。

為支持分區(qū)分配,BSW 模塊實體分為主模塊和從模塊,可以分配到不同分區(qū)中,主模塊與從模塊通過非標(biāo)準(zhǔn)化的 AUTOSAR 接口進行跨分區(qū)通信。

AUTOSAR 支持下列分配場景:

將 BSW 功能集群分配到一個分區(qū),提高性能

將 BSW 功能集群的子集分配到多個分區(qū),提高并發(fā)性

可以將主從模塊實體分配到多個分區(qū)

性能優(yōu)化場景

通過將 BSW 模塊分配到多個分區(qū)和內(nèi)核,可以提升系統(tǒng)性能,減少資源占用。主要的性能優(yōu)化場景包括:

將通信相關(guān)的模塊集群分配到一個內(nèi)核,將 I/O 相關(guān)的模塊集群分配到另一個內(nèi)核。

如果硬件資源只能被一個內(nèi)核訪問,則將對應(yīng)的 BSW 用戶、服務(wù)和驅(qū)動都部署在該內(nèi)核上可以提高性能。

實現(xiàn)多個通信集群之間的信號網(wǎng)關(guān)功能,需要在不同內(nèi)核上同步不同的通信模塊。

技術(shù)實現(xiàn)概覽

AUTOSAR 定義了一些新概念,并擴展了部分模塊,來支持多核BSW分配:

BSW 功能集群:一組功能相關(guān)的 BSW 模塊,包含通信、存儲、IO、看門狗等模塊組。

分區(qū)間通信:使用調(diào)度器(SchM)提供的函數(shù)實現(xiàn)跨分區(qū)調(diào)用。

服務(wù)執(zhí)行定位:通過事件到任務(wù)的映射來確定服務(wù)執(zhí)行的分區(qū)。

主從模塊:將模塊拆分為主模塊和從模塊,分配到不同分區(qū)并通過非標(biāo)準(zhǔn)化接口通信,如下圖所示:

image.png

要點是,模塊之間的接口保持不變,分區(qū)分配引起的變化主要內(nèi)藏在模塊內(nèi)部。

BSW 模塊的并行執(zhí)行

為支持多核并行執(zhí)行,BSW 模塊需要實現(xiàn)以下機制:

基于核 ID 進行執(zhí)行代碼,實現(xiàn)定制的核相關(guān)行為。

使用主從模塊設(shè)計模式,主模塊負責(zé)協(xié)調(diào)從模塊。

使用 SchM 提供的跨分區(qū)函數(shù)實現(xiàn)模塊間通信。

在無內(nèi)存保護的系統(tǒng)中,允許直接跨分區(qū)調(diào)用,但需要用互斥區(qū)保護共享數(shù)據(jù)。

每個分區(qū)使用本地的驅(qū)動訪問硬件資源

BSW 分區(qū)配置

為管理分區(qū)中的 BSW 模塊,需要進行如下配置:

為每個 BSW 分區(qū)配置一個 OsApplication。

在 EcuC 中配置分區(qū)以及模塊到分區(qū)的映射。

為每個 BSW 分區(qū)單獨配置 BswM。

每個內(nèi)核一個 EcuM 實例。

跨分區(qū)調(diào)用處理

當(dāng) BSW 模塊分配到不同分區(qū)后,最重要的問題是如何處理跨分區(qū)調(diào)用。主要的處理手段包括:

使用激活 Task 或設(shè)置 Event 的方式,轉(zhuǎn)至被調(diào)用分區(qū)執(zhí)行實際調(diào)用。

調(diào)用方使用 CallTrustedFunction 進入被調(diào)用分區(qū)。

若被調(diào)用函數(shù)不訪問本地數(shù)據(jù),則可直接調(diào)用。

參數(shù)在分區(qū)間傳遞需要使用復(fù)制或特殊硬件機制來保證無干擾。

啟動、關(guān)閉和睡眠/喚醒處理

在啟動階段,內(nèi)存保護是未啟用的,此時需要注意避免重要數(shù)據(jù)被覆蓋。

在關(guān)閉階段,內(nèi)存保護已經(jīng)啟用,可以檢測問題。

睡眠和喚醒處理也需要考慮安全需求。

錯誤處理

引入分區(qū)后,一些新的錯誤場景需要檢測和處理:

分區(qū)內(nèi)代碼引發(fā)的內(nèi)存錯誤。

分區(qū)內(nèi)代碼執(zhí)行超時引起的定時錯誤。

嘗試訪問沒有權(quán)限的硬件資源。

可以配置分區(qū)延遲上報的時間,避免過早引發(fā)系統(tǒng)重啟。

MCAL及協(xié)議棧分配

MCAL 模塊的多核支持

AUTOSAR 定義了 5 種多核支持類型,用于指明 MCAL 模塊的多核處理方式:

Type I:MCAL 模塊僅在單核上可用,不可全局使用,如 FLS、FEE 模塊

Type II:MCAL 模塊可按核執(zhí)行,作用于獨立的硬件元素,如 CAN、FlexRay等

Type III:可作用于全局可用的硬件元素,如 Dio Driver

Type IV:可在任何核上使用模塊的接口,但僅通過一個核來訪問映射元素,如 ADC、PWM、ICU 和 OCU

Type V:可在任何核上使用模塊的接口,通過相應(yīng)的核單獨訪問可映射元素

不同類型采用不同的資源分離策略,例如硬件級分離或軟件級互斥保護。

各類 MCAL 模塊可以分配為上述 5 種類型中的一種,以指明其多核支持方式。配合多核類型,開發(fā)者需要定義可映射的硬件元素,以及元素到內(nèi)核的映射關(guān)系,作為多核支持的基礎(chǔ)。

通信協(xié)議棧分配

通信棧(Com-Stack)可以分配到不同的分區(qū)中,以提高負載分配效率。分配方式包括:

根據(jù)網(wǎng)絡(luò)類型,將 I-PDU 分配到不同的 MainFunction 中。

PduR 負責(zé)處理不同網(wǎng)絡(luò)之間的分區(qū)通信。

狀態(tài)、模式和網(wǎng)絡(luò)管理由 ComM和Nm 集中處理。

加密服務(wù)分配

加密服務(wù)棧(Crypto-Stack)也可以分配到不同分區(qū)中,每個分區(qū)部署一個 MainFunction。Csm 模塊與 SecOC 模塊需要分配到同一分區(qū),避免分區(qū)切換開銷。

為處理新鮮度值,可以采用如下手段:

保留一個跨分區(qū)的新鮮度管理 SWC

每個分區(qū)一個新鮮度 SWC

使用 SecOC 的可配置 C 語言 API

安全關(guān)鍵系統(tǒng)中的 BSW 分配

概述

AUTOSAR 支持通過分區(qū)隔離來構(gòu)建安全關(guān)鍵系統(tǒng)。最高 ASIL 級別的 BSW 模塊被放入專用分區(qū),低 ASIL 級別的模塊放入公共分區(qū),從而最小化軟件開發(fā)的代碼量。

AUTOSAR 安全分配的主要機制包括:

使用多個分區(qū),進行空間隔離。

對執(zhí)行實體進行監(jiān)控,防止阻塞或順序錯誤。

端到端保護,避免通信數(shù)據(jù)被修改。

特定模塊提供額外的安全機制。

跨分區(qū)調(diào)用

分區(qū)調(diào)用需要檢查是否符合 Safety 要求。可以使用 Stub 函數(shù)封裝被調(diào)用的功能,處理分區(qū)切換問題。

具體來說,分區(qū)調(diào)用可以有如下情況:

QM 調(diào)用 ASIL:使用 Stub 函數(shù)進入 ASIL 分區(qū),如下圖所示。

image.png

ASIL 調(diào)用 QM:使用包裝函數(shù)進入QM 分區(qū),如下圖所示。

image.png
ASIL 調(diào)用 ASIL:類似地需要 Stub 函數(shù)或包裝函數(shù)。

參數(shù)傳遞需要使用復(fù)制或特殊硬件機制來保證安全。

啟動/關(guān)閉和睡眠/喚醒

啟動階段需要注意數(shù)據(jù)隔離。

關(guān)閉時可以檢測隔離問題。

睡眠/喚醒處理也需要考慮安全需求。

錯誤處理

分區(qū)調(diào)用可能產(chǎn)生新的錯誤場景,需要檢測內(nèi)存溢出、超時等問題。

可以配置分區(qū)的 Timing 保護,避免過早重啟。

性能考量

分區(qū)隔離會增加調(diào)用開銷。可以通過減少分區(qū)數(shù)量、優(yōu)化模塊映射和 calls 來獲得最佳平衡。

未來的 AUTOSAR 版本

未來 AUTOSAR 可能進行如下改進:

標(biāo)準(zhǔn)化 BSW 功能集群及其接口,如下圖所示。

image.png

支持更高效的分區(qū)間調(diào)用

支持用例分區(qū)提升安全性

等等

注意事項

BSW模塊設(shè)計

對共享數(shù)據(jù)的訪問需要加互斥保護

調(diào)用其他模塊接口前需獲取分區(qū) ID,根據(jù) ID 區(qū)分主從代碼

主模塊負責(zé)協(xié)調(diào)從模塊,可監(jiān)控和過濾請求

主從模塊間使用非標(biāo)準(zhǔn)化接口通信

多核場景下接口需要支持異步調(diào)用

BSW配置

每個 BSW 分區(qū)需配置一個 OS 應(yīng)用程序

需要配置 BSW 模塊到分區(qū)的映射

需要配置每個分區(qū)的 BswM 實例

需要配置核心的 EcuM 實例

需要配置分區(qū)的 BSW 啟動/關(guān)閉順序

跨分區(qū)調(diào)用

使用激活任務(wù)或事件切換調(diào)用上下文

調(diào)用方使用 CallTrustedFunction 進入被調(diào)方分區(qū)

檢查直接調(diào)用是否安全

小心處理參數(shù)傳遞的內(nèi)存訪問權(quán)限

安全系統(tǒng)相關(guān)

啟動階段內(nèi)存保護尚未啟動,需謹(jǐn)慎操作

最小化啟動前執(zhí)行的代碼量

安全相關(guān)機制只在必要分區(qū)上實現(xiàn)

檢查分區(qū)調(diào)用是否被符合 Safety 要求

準(zhǔn)確配置調(diào)用的 Stub 函數(shù)或包裝函數(shù)

謹(jǐn)慎處理睡眠喚醒的安全需求

檢測由分區(qū)引入的新錯誤場景

平衡分區(qū)數(shù)量和性能

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7651

    瀏覽量

    152114
  • 看門狗
    +關(guān)注

    關(guān)注

    10

    文章

    566

    瀏覽量

    70949
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    363

    瀏覽量

    21780
  • BSW
    BSW
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    3527
  • 調(diào)度器
    +關(guān)注

    關(guān)注

    0

    文章

    98

    瀏覽量

    5298
收藏 人收藏

    評論

    相關(guān)推薦

    Linux內(nèi)核何時如何將寫入的數(shù)據(jù)回寫到磁盤

    write系統(tǒng)調(diào)用寫入數(shù)據(jù)后,文件系統(tǒng)頁緩存寫入數(shù)據(jù)便返回了write系統(tǒng)調(diào)用,并沒有分配
    發(fā)表于 10-18 16:00 ?2589次閱讀
    Linux<b class='flag-5'>內(nèi)核</b>是<b class='flag-5'>在</b>何時<b class='flag-5'>如何將</b>寫入的數(shù)據(jù)回寫到磁盤

    STM32H743如何讓malloc自動分配到外部RAM

    本人試過進入main之前修改啟動文件,增加SDRAM的初始化,并且棧空間指定在內(nèi)部防止初始化錯誤,程序還是死Hardfault_Handler。還有什么辦法可以malloc自動
    發(fā)表于 03-13 07:14

    如何將分區(qū)劃分為可讀分區(qū)

    ,然后USB側(cè)將它們作為單獨的邏輯單元枚舉。定義了Cyfxxsibx分區(qū)(2)。如果我已經(jīng)增加到4,它顯示了4個分區(qū)4個分區(qū)
    發(fā)表于 09-27 14:22

    為什么使用AUTOSAR

    文章目錄一、總概述1 為什么使用AUTOSAR?1.1 AUTOSAR出現(xiàn)之前的行業(yè)現(xiàn)狀1.2 AUTOSAR出現(xiàn)之后可以實現(xiàn)如下目標(biāo)2、AUTOSAR總概述二、各層分別概述1、
    發(fā)表于 12-09 07:50

    AUTOSAR基礎(chǔ)軟件層是由哪些部分組成的

    AUTOSAR基礎(chǔ)軟件層即BSW(Basic Software)層,與應(yīng)用層、運行環(huán)境層共同搭建了AUTOSAR的軟件體系。三個層從上而下,層層遞進,實現(xiàn)了從人機交互到底層硬件的聯(lián)系。AUTO
    發(fā)表于 02-17 08:00

    介紹一種適配RT-Thread內(nèi)核autosar操作系統(tǒng)

    目是基于autosar3.1的開源代碼arctic core,在此基礎(chǔ)上,完成n32g45x上的mcal驅(qū)動,適配RT-Thread內(nèi)核autosar的操作
    發(fā)表于 05-19 15:40

    基于RT-Thread內(nèi)核AUTOSARn32g上的實現(xiàn)方案

    的操作系統(tǒng)。目前已完成mcal的mcu驅(qū)動,autosar的osek操作系統(tǒng)已經(jīng)能在n32g45x上正常調(diào)度,移植rtthread到arctic core,但是適配OSEK/VDX的
    發(fā)表于 07-27 14:30

    AUTOSAR功能安全機制之內(nèi)存分區(qū)與實現(xiàn)

    1、AUTOSAR功能安全機制之內(nèi)存分區(qū)與實現(xiàn)  AUTOSAR架構(gòu),應(yīng)用軟件位于RTE上方,由互連的
    發(fā)表于 09-19 15:55

    如何將IP模塊整合到System Generator for DSP

    了解如何將Vivado HLS設(shè)計作為IP模塊整合到System Generator for DSP。 了解如何將Vivado HLS設(shè)計保存為IP
    的頭像 發(fā)表于 11-20 05:55 ?3285次閱讀

    如何將交換機的接口分配到vlan

    本文檔的主要內(nèi)容詳細介紹的是如何將交換機的接口分配到vlan
    發(fā)表于 11-20 08:00 ?5次下載
    <b class='flag-5'>如何將</b>交換機的接口<b class='flag-5'>分配到</b>vlan<b class='flag-5'>中</b>

    基于AUTOSAR規(guī)范的操作系統(tǒng)知識

    汽車電子控制器目前基本遵循AUTOSAR規(guī)范,而其中操作系統(tǒng)作為BSW的重頭戲,始終讓學(xué)習(xí)AUTOSAR的同學(xué)望而生畏,進而望而卻步。所以
    的頭像 發(fā)表于 02-13 14:03 ?1724次閱讀
    基于<b class='flag-5'>AUTOSAR</b>規(guī)范的操作<b class='flag-5'>系統(tǒng)</b>知識

    通過擴頻調(diào)頻技術(shù)如何將頻譜能量分配到頻譜

    一般而言,遵守電磁標(biāo)準(zhǔn)對于開關(guān)電源愈發(fā)重要,這不僅局限于總光譜能量過大,更多的原因是能量集中基本開關(guān)頻率及其諧波的特定窄帶。為此,第 9 部分提出通過擴頻調(diào)頻 (SSFM) 技術(shù)頻譜能量
    的頭像 發(fā)表于 03-29 09:33 ?2414次閱讀
    通過擴頻調(diào)頻技術(shù)<b class='flag-5'>如何將</b>頻譜能量<b class='flag-5'>分配到</b>頻譜<b class='flag-5'>中</b>

    關(guān)于AUTOSAR-DEM模塊的簡要介紹和幾點思考

    DEM全稱“Diagnostic Event Management”,該模塊作為AUTOSAR架構(gòu)BSW模塊之一,對于ECU軟件開發(fā)也是
    的頭像 發(fā)表于 04-15 17:12 ?3335次閱讀

    一文入門AUTOSAR OS

    Autosar Os Autosar 框架中上至RTE 下至驅(qū)動,中間可以和BSW 基礎(chǔ)模塊進行交互。是整個
    的頭像 發(fā)表于 06-29 10:34 ?4404次閱讀
    一文入門<b class='flag-5'>AUTOSAR</b> OS

    AUTOSAR經(jīng)典平臺介紹

    汽車電子系統(tǒng)的軟件組件、運行時環(huán)境和通信機制,以實現(xiàn)模塊化、可重用和可擴展的系統(tǒng)開發(fā)。 AUTOSAR CP
    的頭像 發(fā)表于 10-27 15:30 ?1454次閱讀
    <b class='flag-5'>AUTOSAR</b>經(jīng)典平臺介紹
    百家乐官网轮盘桌| 百家乐和抽水官网| 大发888大发娱乐场| 百家乐官网视频游戏金币| 百家乐发牌器8副| 中国足球竞猜| 娱乐城百家乐官网的玩法技巧和规则| bet365存| 新花园百家乐官网的玩法技巧和规则| 威尼斯人娱乐平台博彩投注平| 百家乐官网佛牌| 兰桂坊百家乐的玩法技巧和规则| 百家乐官网桌蓝盾在线| 百家乐高手长胜攻略| 利记娱乐| 百家乐官网线上真人游戏| 网上百家乐真坑人| 新加坡百家乐的玩法技巧和规则 | 威尼斯人娱乐棋牌| 缅甸百家乐官网玩假吗| 威尼斯人娱乐会所| 正品百家乐官网游戏| 大发888sut8| 圣淘沙百家乐官网的玩法技巧和规则 | 浦城县| 中华百家乐娱乐城| 豪华百家乐官网桌子厂家 | 第一足球网| 高级百家乐出千工具| 台州市| 网上百家乐大赢家筹码| 代理百家乐官网免费试玩| 好运来百家乐的玩法技巧和规则 | 百家乐官网投注很好| 威尼斯人娱乐下载平台| 澳门百家乐官网赌场娱乐网规则 | 百家乐官网下注的规律| 游艇会百家乐的玩法技巧和规则| 百家乐官网获胜秘决百家乐官网获胜秘诀 | 三公百家乐玩法| 网上百家乐官网|