吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

映射DDS和AUTOSAR類型系統實現

jf_EksNQtU6 ? 來源:車端 ? 作者:初光 ? 2022-11-02 10:05 ? 次閱讀

對于使用AUTOSAR制造車輛的公司來說,已經出現了兩個不同的平臺 - AUTOSAR Classic和AUTOSAR Adaptive 這兩個AUTOSAR平臺之間互操作性的基礎標準。使 AUTOSAR 自適應應用程序能夠與現有和未來的 DDS系統進行互操作。

什么是dds?

DDS最重要的特性是以數據為中心,這是與其他很多通信中間件不同的地方。DDS的數據共享以Topic為單元,應用程序能夠通過Topic判斷其所包含的數據類型,而不必依賴其他的上下文信息。同時,DDS能夠按照用戶定義的方式自動地進行存儲、發布或訂閱數據,使應用程序能夠像訪問本地數據一樣去寫入或者讀取數據

DDS實現的數據共享可以理解成一個抽象的“全局數據空間”,任何應用程序,不論開發語言,或者運行的操作系統類型,都可以通過相同的方式訪問這個“全局數據空間”,就好像訪問本地的存儲空間一樣。當然“全局數據空間”僅僅是一個抽象的概念,在實現時仍然是分別存儲在每個應用程序的本地空間當中。

在系統運行時,數據是按需傳輸或存儲的,數據的發布者僅僅發送對方需要的數據,而訂閱者僅接收并存儲本地應用程序當前需要的數據。DDS還提供了非常靈活的QoS(Quality of Service)策略,以滿足用戶對數據共享方式的不同需求,比如可靠性,故障處理等等。針對數據安全性要求比較高的系統,DDS還提供了細顆粒度的數據安全控制,包括應用程序身份認證,權限控制,數據加密等等。

類似于SOME/IP-SD,DDS提供了對數據發布者和訂閱者的動態發現機制,這意味著用戶不必去配置通信節點的地址或其他屬性信息,因為他們在運行的過程中會自動發現對方,并自動完成相關配置,即實現了“即插即用“。)

關于RTIDDS詳細的的介紹,請到最后一節查看。

什么是中間件?

中間件是位于操作系統和用戶應用程序之間的軟件層,它將操作系統提供的資源進行抽象和封裝,為應用程序提供各種各樣的高級的服務和功能,比如通信或數據共享。中間件的存在簡化了應用程序開發者的工作,這使他們能夠將注意力放在應用程序本身上,而不必在不同應用程序之間或不同系統之間的數據傳輸上花太多精力)

什么是 DDS 網絡綁定?

在 AUTOSAR 自適應平臺中,通信管理功能集群提供面向服務的通信建模和基礎設施。應用程序構建在中間件之上,應用程序級 API 與協議無關,中間件在 API 和實際的底層通信技術之間進行代理。AUTOSAR 中代理或者此類映射稱為“網絡綁定”,下面是三個標準化的通信協議:

DDS

SOME/IP

基于信號的通信

由于 AUTOSAR 自適應平臺的各種設計方面,為 AUTOSAR 設計和實現網絡綁定組件通常是一項復雜的任務:面向應用程序的 API 和網絡綁定組件之間不存在標準化的 API 層,因此要求特定網絡綁定的實現者以各自不同的方式來集成AUTOSAR 有自己的數據類型系統,必須通過網絡綁定與每個底層通信技術(即 DDS 自己的可擴展類型)的類型系統和功能進行協調)AUTOSAR還規定了非常具體的對象生命周期和內存管理協議,這些協議必須與網絡綁定封裝的底層框架相匹配。

映射 DDS 和 AUTOSAR 類型系統

盡管 AUTOSAR 類型相當常見并且自然映射到 DDS-XTypes(布爾值、數字、字符串、結構、數組、序列等)——并且這種映射已經在通信管理規范中的 DDS 網絡綁定材料中指定——但實際集成需要將 PSM(平臺特定模塊)組合在一起,用于 C 和C++編程語言中的兩種類型系統。我們將選擇AUTOSAR支持的唯一語言綁定,C++(最多C++14)和DDS的C語言PSM。從一個簡單的示例開始,下面是從 DDS-IDL 或 DDS-XML 轉換為 C 后的簡單 Point3D 類型的外觀:

struct Point3D {

     float x;

     float y;

     float z;

};

然后從AUTOSAR的ARXML轉換為C++:

struct Point3D {

     float x;

     float y;

     float z;

};

讓我們進一步改進我們的類型目錄,將 3D 點分組為點云,為了簡單起見,這些點云僅作為固定長度的數組排列。根據 DDS C PSM,有如下定義:

typedef Point3D PointCloud[1024];

但是相同的類型(1024個元素的點數組)將在AUTOSAR Adaptive中生成,如下所示:

typedef ara::Array PointCloud;

它們明顯是相似但不相同的類型。事實上,ara::core::Array<>保留了一些普通固定長度數組類型的語義(例如索引訪問),但也添加了類似 STL 的語義,如 begin() 和 end() 方法,并且不會隱式轉換為 Point3D 指針。對于其他類型的,例如字符串和向量,此差距甚至更大。

在RTI的ara::com中,通過AUTOSAR建模的用戶定義類型(結構體)的實現類型不包含值字段,而是引用內部管理的“后端存儲”的功能兼容包裝器。此類后端存儲可能基于 Adaptive Platform 的 PSM(標準C++數值類型和 ara::core 容器類型)或 DDS 的 PSM 自動生成類型,來自 DDS-IDL 或 DDS-XML。這種方法不僅簡化了與多種不同的通信框架的集成,而且還為共享數據時的高效內存管理和增刪改數據樣本提供了便利。

實現高效的內存管理

由于上一節中描述的數據類型結構的靈活性,數據樣本出現了兩種非獨占內存管理策略:

實現類型實例可以由應用程序直接分配堆棧或堆,這會導致內部類型實現使用 AUTOSAR 的內存中 PSM 類型。當傳遞給底層框架時,這些數據類型必須根據所需的目標數據格式(即,來自DDS-IDL或DDS-XML的DDS自動生成的類型)進行轉換和/或序列化。

在尋求零拷貝傳輸時,應用程序還可以利用事件和字段通知程序提供的標準 Allocate() 方法。在這種情況下,網絡綁定將盡可能要求底層框架“借出”內部分配的數據樣本,該樣本將在應用程序填充和發回時“返回”。后者是一種非常強大的機制,允許在幾種情況下進行與大小無關的恒定時間傳輸:

共享內存傳輸

內存映射網絡接口

進程內通信

除了以高性能的方式映射類型系統和 API 之外,AUTOSAR 的汽車產品重點還帶來了另一個挑戰:功能安全合規性。在任何ISO-26262 ASIL級別中,評估任何DDS實施,都要有SEooC,脫離(SEooC)去評估本身就是一個挑戰,下面是一些對DDS實施和AUTOSAR的一些約束和要求:

C 是 DDS 網絡綁定實現中唯一允許的 DDS 語言 PSM,因此可以輕松適應多種 DDS 實現(占用空間小、安全意識強)

多綁定支持是必須的,因為肯定需要提供多個DDS網絡綁定才能支持上述各種DDS實現。

AUTOSAR 自適應 DDS 網絡綁定規范中更精簡的服務發現和綁定功能方法,使用在大多數 DDS 中間件實現中更容易找到的常見 DDS 功能(主題、實例)

RTI DDS 介紹

c83be808-59d6-11ed-a3b6-dac502259ad0.png

c84e9e94-59d6-11ed-a3b6-dac502259ad0.png

c9618b70-59d6-11ed-a3b6-dac502259ad0.png

c9974d0a-59d6-11ed-a3b6-dac502259ad0.png

c9ac56be-59d6-11ed-a3b6-dac502259ad0.png

c9c7f626-59d6-11ed-a3b6-dac502259ad0.png

c9da3688-59d6-11ed-a3b6-dac502259ad0.png

c9f788f0-59d6-11ed-a3b6-dac502259ad0.png

ca14f390-59d6-11ed-a3b6-dac502259ad0.png

ca23de32-59d6-11ed-a3b6-dac502259ad0.png

ca345c3a-59d6-11ed-a3b6-dac502259ad0.png

ca4fd17c-59d6-11ed-a3b6-dac502259ad0.png

ca790718-59d6-11ed-a3b6-dac502259ad0.png

ca978a3a-59d6-11ed-a3b6-dac502259ad0.png

cab0240a-59d6-11ed-a3b6-dac502259ad0.png

cac14424-59d6-11ed-a3b6-dac502259ad0.png

cae37aee-59d6-11ed-a3b6-dac502259ad0.png

cafb063c-59d6-11ed-a3b6-dac502259ad0.png

cb36d96e-59d6-11ed-a3b6-dac502259ad0.png

cb4fcf82-59d6-11ed-a3b6-dac502259ad0.png

cb6bfa36-59d6-11ed-a3b6-dac502259ad0.png

cb7e0d8e-59d6-11ed-a3b6-dac502259ad0.png

cb9b6cd0-59d6-11ed-a3b6-dac502259ad0.png

cbb0ce7c-59d6-11ed-a3b6-dac502259ad0.png

cbc181f4-59d6-11ed-a3b6-dac502259ad0.png

cbd15ea8-59d6-11ed-a3b6-dac502259ad0.png

cbe6e2d2-59d6-11ed-a3b6-dac502259ad0.png

cbfb3688-59d6-11ed-a3b6-dac502259ad0.png

cc0f594c-59d6-11ed-a3b6-dac502259ad0.png





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • DDS
    DDS
    +關注

    關注

    21

    文章

    636

    瀏覽量

    152943
  • AUTOSAR
    +關注

    關注

    10

    文章

    363

    瀏覽量

    21783

原文標題:一文讀懂DDS和AUTOSAR Adaptive的集成

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是DDS?初識CP AUTOSAR平臺下的DDS規范

    數據分發服務(DDS)[1]是一個來自對象管理組(OMG)的中間件協議和API標準。它將系統的組件集成在一起,提供低延遲的數據連接,極高的可靠性,和可擴展的架構。
    的頭像 發表于 12-05 18:18 ?4123次閱讀
    什么是<b class='flag-5'>DDS</b>?初識CP <b class='flag-5'>AUTOSAR</b>平臺下的<b class='flag-5'>DDS</b>規范

    【設計技巧】基于AUTOSAR的電機驅動系統報告

    軟件存在潛在的風險。AUTOSAR 是以軟件分層和模塊劃分的方式實現軟硬件分離的汽車開放式架構標準,將系統軟件架構劃分為應用軟件層(APP)、基礎軟件層(BSW)和實時運行環境層(RTE)。如下圖所示
    發表于 07-27 08:00

    AUTOSAR的工作原理是什么?為什么需要AUTOSAR

    AUTOSAR的工作原理是什么?為什么需要AUTOSAR?
    發表于 05-17 06:44

    AUTOSAR是什么

    一、AUTOSAR是什么AUTOSAR組織自己的介紹是AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development
    發表于 11-10 07:47

    為什么使用AUTOSAR

    文章目錄一、總概述1 為什么使用AUTOSAR?1.1 AUTOSAR出現之前的行業現狀1.2 AUTOSAR出現之后可以實現如下目標2、AUTOS
    發表于 12-09 07:50

    AUTOSAR基礎軟件層是由哪些部分組成的

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

    介紹AUTOSAR支持的四種功能安全機制

    1、AUTOSAR的四種功能安全機制雖然AUTOSAR不是一個完整的安全解決方案,但它提供了一些安全機制用于支持安全關鍵系統的開發。本文用于介紹AUTOSAR支持的四種功能安全機制:內
    發表于 06-10 17:33

    基于RT-Thread內核的AUTOSAR在n32g上的實現方案

    1、基于RT-Thread內核的AUTOSAR在n32g上的實現隨著小米宣布造車,當下“軟件定義汽車”的趨勢如火如荼,autosar的全稱Automotive Open System
    發表于 07-27 14:30

    AUTOSAR功能安全機制之內存分區與實現

    1、AUTOSAR功能安全機制之內存分區與實現  在AUTOSAR架構中,應用軟件位于RTE上方,由互連的AUTOSAR SWC組成,這些組件以原子方式封裝了應用軟件功能的各個組成部分
    發表于 09-19 15:55

    AUTOSAR 基礎軟件層

    AUTOSAR基礎軟件層即BSW(Basic Software)層,與應用層、運行環境層共同搭建了AUTOSAR的軟件體系。三個層從上而下,層層遞進,實現了從人機交互到底層硬件的聯系。AUTO
    發表于 12-22 19:03 ?26次下載
    <b class='flag-5'>AUTOSAR</b> 基礎軟件層

    基于AUTOSAR的汽車故障診斷系統的設計與實現

    基于AUTOSAR的汽車故障診斷系統的設計與實現
    發表于 03-28 16:59 ?6次下載

    一文讀懂DDSAUTOSAR Adaptive的集成

    對于使用AUTOSAR制造車輛的公司來說,已經出現了兩個不同的平臺 - AUTOSAR Classic和AUTOSAR Adaptive 這兩個AUTOSAR平臺之間互操作性的基礎標準
    的頭像 發表于 11-02 10:05 ?2676次閱讀

    AUTOSAR經典平臺介紹

    經典平臺(AUTOSAR CP) AUTOSAR經典平臺(AUTOSAR CP)是AUTOSAR軟件架構的一種實現,旨在提供一種標準化的方法
    的頭像 發表于 10-27 15:30 ?1455次閱讀
    <b class='flag-5'>AUTOSAR</b>經典平臺介紹

    AUTOSAR通信協議解析 如何實現AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽車開放系統架構,該架構支持汽車電子控制單元(ECU)之間的通信,實現了高度模塊化和可重用性。AUTO
    的頭像 發表于 12-17 14:54 ?1034次閱讀

    AUTOSAR通信對自動駕駛的影響 AUTOSAR通信與嵌入式系統設計

    ,AUTOSAR通信與嵌入式系統設計緊密相連,共同推動著自動駕駛技術的發展。 AUTOSAR通信對自動駕駛的影響 提高通信效率和可靠性 AUTOSAR通信協議棧通過標準化的接口和協議,
    的頭像 發表于 12-17 15:09 ?373次閱讀
    绥棱县| 百家乐必赢| 百家乐官网软件骗人吗| 网上玩百家乐的玩法技巧和规则| 百家乐官网桌子北京| 大发888体育和娱乐| 总格24画的名字好吗| 铜山县| 百家乐黏土筹码| 百佬汇百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城排名| 百家乐官网的规则玩法 | 百家乐官网兑换棋牌| 大发888好么| 同乐城百家乐官网娱乐城| 海安县| 太阳城网上娱乐城| 百家乐算号软件| 澳门百家乐官网备用网址| 顶级赌场真假的微博| 澳门百家乐规则视频| 顶尖娱乐| 威尼斯人娱乐城赌博网| 24山分金吉凶断| 永利高百家乐官网怎样开户| 大发888好么| 东莞百家乐的玩法技巧和规则 | 大发888的示例| 百家乐推二八杠| 伯爵百家乐官网的玩法技巧和规则 | 大宁县| 大发888 casino组件下载| 娱乐城百家乐可以代理吗 | 百家乐水晶筹码| 赌博百家乐官网有技巧吗| 保时捷娱乐城| 威尼斯人娱乐备用6222| 西游记百家乐官网娱乐城| 网上百家乐官网赢钱公式| 平博娱乐| 大发888充值平台|