日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

車載基礎軟件——AUTOSAR CP關鍵技術分析

 車載診斷技術 2023-02-07 發(fā)布于上海

車載基礎軟件——AUTOSAR CP關鍵技術分析

我是穿拖鞋的漢子,魔都中堅持長期主義的一個屌絲工程師!

今天是2023年2月6日,上海還在下著雨,雖說是春雨貴如油,但是潮濕的氛圍還是讓心中有了潮濕的心情!

老規(guī)矩,分享一段喜歡的文字,避免成為高知識低文化的工科男:

自己要馬不停蹄的姿態(tài)去迎接未來,帶著對遠方的期待前行,不顧驕陽灼燒,不懼風雨癲狂?;蛟S自己會錯過今天的日落,但是自己可以早起去追逐下一個黎明!

Return to today's topic!

在做功能實現(xiàn)AUTOSAR Solution方案中(CP),有著許多關鍵技術應用到日常工作中,也解決了車載軟件的一些痛點問題。如本文分享的關鍵技術:

-> 基礎軟件多核分配

-> 軟件集群技術

一、基礎軟件多核分配

基礎軟件多核分配是發(fā)揮多核系統(tǒng)并行計算、負載均衡、快速響應優(yōu)勢的關鍵技術(這其中原因歸結(jié)于車規(guī)級芯片性能越發(fā)強大)。沒有基礎軟件的多核分配,就算應用軟件做了多核分配,多核系統(tǒng)的優(yōu)勢將受到核間通信效率的制約,甚至系統(tǒng)整體性能還不如單核。實現(xiàn)基礎軟件多核分配的主要技術手段有兩種:

主衛(wèi)星方式(Master/Satellites);

通信協(xié)議棧分割(Com-Stack Split)。

1、主衛(wèi)星方式。

如下圖主衛(wèi)星方式的基礎軟件分割所示,該方式可適用于 Dem、FiM、WdgM、Com、NvM、XCP、EcuM 等基礎軟件組件。當這些組件提供的服務需要被多個核使用時可以考慮主衛(wèi)星方式,即衛(wèi)星給其所在核的其他模塊提供服務接口并將收到的服務請求通過主衛(wèi)星通信傳遞給主星,主星協(xié)調(diào)、過濾和接收各衛(wèi)星的服務請求并進行處理,最后將處理結(jié)果通過主衛(wèi)星通信反饋給衛(wèi)星。由于主衛(wèi)星之間的工作分配 AUTOSAR CP 并未標準化,所以用戶可自定義。一種極端情況是主星具備全部功能,衛(wèi)星僅為同核其他模塊提供服務接口并將服務請求轉(zhuǎn)發(fā)到主星上處理;另一種極端情況是衛(wèi)星和主星一樣具備全部功能并不需要主星處理服務請求,它只需要與主星保持必要信息的同步。

由于衛(wèi)星提供的接口可以被該核的其他模塊直接調(diào)用并通過高效的主衛(wèi)星通信與主星交互,從而避免了低效的 Client/Server 通信,大大提高了多核系統(tǒng)中基礎軟件的服務效率。另外由于主衛(wèi)星可并行處理服務請求,因此 CPU 負載可以被有效平衡、基礎軟件的服務速度也得到提高。

2、通信協(xié)議棧分割方式。

該方式通過一個增強型的 PduR 引入 FIFO 隊列(無需自旋鎖)或 Buffer(需要配合自旋鎖)這樣的數(shù)據(jù)結(jié)構(gòu)對跨核 PDU 進行路由,可將不同類型的總線協(xié)議棧分配到不同的核,如將 CAN 協(xié)議棧和以太網(wǎng)協(xié)議棧分配到不同的核。通過這樣的協(xié)議棧分割可達到 CPU 負載均衡及提升多核系統(tǒng)實時性的目的。

二、軟件集群技術

軟件集群(Software Cluster)在 R20-11 版本中被首次提出,是 AUTOSAR CP 在軟件架構(gòu)方面的一次創(chuàng)新,其本質(zhì)是利用二進制接口技術實現(xiàn)更為靈活的軟件集成與更新。

軟件集群技術示例所示,通過軟件集群技術 AUTOSAR CP 軟件架構(gòu)被分割成了兩個獨立的軟件集群,分別為應用軟件集群(Applicative Software Cluster)和主軟件集群(Host SoftwareCluster)兩部分。其中應用軟件集群可以單獨編譯,其搭載一組關聯(lián)度較高的 SWC;主軟件集群也可以單獨編譯,其除了可以搭載 SWC 之外還必須搭載基礎軟件(包含 OS 和 MCAL)。

一個控制器中可以存在多個高度解耦的應用軟件集群,但是只能且必須存在一個主軟件集群,分別將應用軟件集群和主軟件集群燒寫至目標板后即可形成完整的、可執(zhí)行的程序。這樣的軟件架構(gòu)創(chuàng)新使得軟件的開發(fā)與集成變得更加靈活,尤其是當需要更新軟件功能時,無需更新全部軟件,只要更新特定的軟件集群即可。

如下圖軟件集群技術示例中的藍框所示,各個軟件集群就像是控制器上的一塊塊拼圖,而這些拼圖之間是通過軟件集群連接塊(Software Cluster Connection)拼接起來的。軟件集群連接塊由三部分組成,分別是二進制清單(Binary Manifest),跨軟件集群通信(Cross Cluster Communication),代理模塊(Proxy Modules)。

這其中最關鍵的是二進制清單,它在編譯階段產(chǎn)生且 AUTOSAR CP 規(guī)定了其標準格式,它為各個軟件集群編譯后文件(Binary Objects)之間提供了定義良好的接口,從而能將其連接在一起形成完整的可執(zhí)行文件。

下圖軟件集群的連接展示了二進制清單連接兩個軟件簇的例子,其中軟件集群 A 運行時需要一個資源(Require Resource,指軟件集群運行時所需要的一切,或是 S/R接口,或是 NV 塊),而這個資源正好可以由軟件集群 B 提供(Provide Resource)。軟件集群 A/B 的二進制清單中都分別存儲了這個資源的基本信息包括:資源屬性(Require/Provide)、資源類型(S/R、NV 塊等)、資源 ID、句柄一覽表(Handle,即用于訪問該資源的信息如數(shù)據(jù)指針、函數(shù)指針、數(shù)據(jù)等)等。對于軟件集群 A 來說,因為在其單獨編譯階段沒有相應的 Provide Resource,所以其二進制清單的句柄一覽表被默認值填寫且是可修改的。

如下圖黃色框所示。對于軟件集群 B 來說,因為其具備固定的Provide Resource,所以其二進制清單的句柄一覽表在編譯時已確定且是不可修改的,如下圖綠色框所示。如果在燒寫時進行軟件集群連接,那么目標板內(nèi)的軟件集群連接器軟件(On-board Software Cluster Connector)負責在燒寫的同時,將軟件集群 B 中資源的句柄拷貝至軟件集群 A 中資源的句柄,從而完成兩個軟件集群的連接。

跨軟件集群通信用于支撐 VFB 通信。而代理模塊分為高代理模塊(High Proxy Modules)和低代理模塊(Low Proxy Modules)兩部分,其中高代理模塊位于應用軟件集群代替原先的基礎軟件模塊提供符合 AUTOSAR 標準的接口,低代理模塊位于主軟件集群負責實現(xiàn)真正的基礎軟件模塊功能,二者之間通過二進制清單連接

擱筆分享完畢。

愿你我相信時間的力量,

做一個長期主義者!

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多