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

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

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

映射DDS和AUTOSAR類型系統(tǒng)實(shí)現(xiàn)

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

對(duì)于使用AUTOSAR制造車輛的公司來說,已經(jīng)出現(xiàn)了兩個(gè)不同的平臺(tái) - AUTOSAR Classic和AUTOSAR Adaptive 這兩個(gè)AUTOSAR平臺(tái)之間互操作性的基礎(chǔ)標(biāo)準(zhǔn)。使 AUTOSAR 自適應(yīng)應(yīng)用程序能夠與現(xiàn)有和未來的 DDS系統(tǒng)進(jìn)行互操作。

什么是dds?

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

DDS實(shí)現(xiàn)的數(shù)據(jù)共享可以理解成一個(gè)抽象的“全局?jǐn)?shù)據(jù)空間”,任何應(yīng)用程序,不論開發(fā)語言,或者運(yùn)行的操作系統(tǒng)類型,都可以通過相同的方式訪問這個(gè)“全局?jǐn)?shù)據(jù)空間”,就好像訪問本地的存儲(chǔ)空間一樣。當(dāng)然“全局?jǐn)?shù)據(jù)空間”僅僅是一個(gè)抽象的概念,在實(shí)現(xiàn)時(shí)仍然是分別存儲(chǔ)在每個(gè)應(yīng)用程序的本地空間當(dāng)中。

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

類似于SOME/IP-SD,DDS提供了對(duì)數(shù)據(jù)發(fā)布者和訂閱者的動(dòng)態(tài)發(fā)現(xiàn)機(jī)制,這意味著用戶不必去配置通信節(jié)點(diǎn)的地址或其他屬性信息,因?yàn)樗麄冊(cè)谶\(yùn)行的過程中會(huì)自動(dòng)發(fā)現(xiàn)對(duì)方,并自動(dòng)完成相關(guān)配置,即實(shí)現(xiàn)了“即插即用“。)

關(guān)于RTIDDS詳細(xì)的的介紹,請(qǐng)到最后一節(jié)查看。

什么是中間件?

中間件是位于操作系統(tǒng)和用戶應(yīng)用程序之間的軟件層,它將操作系統(tǒng)提供的資源進(jìn)行抽象和封裝,為應(yīng)用程序提供各種各樣的高級(jí)的服務(wù)和功能,比如通信或數(shù)據(jù)共享。中間件的存在簡化了應(yīng)用程序開發(fā)者的工作,這使他們能夠?qū)⒆⒁饬Ψ旁趹?yīng)用程序本身上,而不必在不同應(yīng)用程序之間或不同系統(tǒng)之間的數(shù)據(jù)傳輸上花太多精力)

什么是 DDS 網(wǎng)絡(luò)綁定?

在 AUTOSAR 自適應(yīng)平臺(tái)中,通信管理功能集群提供面向服務(wù)的通信建模和基礎(chǔ)設(shè)施。應(yīng)用程序構(gòu)建在中間件之上,應(yīng)用程序級(jí) API 與協(xié)議無關(guān),中間件在 API 和實(shí)際的底層通信技術(shù)之間進(jìn)行代理。AUTOSAR 中代理或者此類映射稱為“網(wǎng)絡(luò)綁定”,下面是三個(gè)標(biāo)準(zhǔn)化的通信協(xié)議:

DDS

SOME/IP

基于信號(hào)的通信

由于 AUTOSAR 自適應(yīng)平臺(tái)的各種設(shè)計(jì)方面,為 AUTOSAR 設(shè)計(jì)和實(shí)現(xiàn)網(wǎng)絡(luò)綁定組件通常是一項(xiàng)復(fù)雜的任務(wù):面向應(yīng)用程序的 API 和網(wǎng)絡(luò)綁定組件之間不存在標(biāo)準(zhǔn)化的 API 層,因此要求特定網(wǎng)絡(luò)綁定的實(shí)現(xiàn)者以各自不同的方式來集成AUTOSAR 有自己的數(shù)據(jù)類型系統(tǒng),必須通過網(wǎng)絡(luò)綁定與每個(gè)底層通信技術(shù)(即 DDS 自己的可擴(kuò)展類型)的類型系統(tǒng)和功能進(jìn)行協(xié)調(diào))AUTOSAR還規(guī)定了非常具體的對(duì)象生命周期和內(nèi)存管理協(xié)議,這些協(xié)議必須與網(wǎng)絡(luò)綁定封裝的底層框架相匹配。

映射 DDS 和 AUTOSAR 類型系統(tǒng)

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

struct Point3D {

     float x;

     float y;

     float z;

};

然后從AUTOSAR的ARXML轉(zhuǎn)換為C++:

struct Point3D {

     float x;

     float y;

     float z;

};

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

typedef Point3D PointCloud[1024];

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

typedef ara::Array PointCloud;

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

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

實(shí)現(xiàn)高效的內(nèi)存管理

由于上一節(jié)中描述的數(shù)據(jù)類型結(jié)構(gòu)的靈活性,數(shù)據(jù)樣本出現(xiàn)了兩種非獨(dú)占內(nèi)存管理策略:

實(shí)現(xiàn)類型實(shí)例可以由應(yīng)用程序直接分配堆?;蚨眩@會(huì)導(dǎo)致內(nèi)部類型實(shí)現(xiàn)使用 AUTOSAR 的內(nèi)存中 PSM 類型。當(dāng)傳遞給底層框架時(shí),這些數(shù)據(jù)類型必須根據(jù)所需的目標(biāo)數(shù)據(jù)格式(即,來自DDS-IDL或DDS-XML的DDS自動(dòng)生成的類型)進(jìn)行轉(zhuǎn)換和/或序列化。

在尋求零拷貝傳輸時(shí),應(yīng)用程序還可以利用事件和字段通知程序提供的標(biāo)準(zhǔn) Allocate() 方法。在這種情況下,網(wǎng)絡(luò)綁定將盡可能要求底層框架“借出”內(nèi)部分配的數(shù)據(jù)樣本,該樣本將在應(yīng)用程序填充和發(fā)回時(shí)“返回”。后者是一種非常強(qiáng)大的機(jī)制,允許在幾種情況下進(jìn)行與大小無關(guān)的恒定時(shí)間傳輸:

共享內(nèi)存?zhèn)鬏?/p>

內(nèi)存映射網(wǎng)絡(luò)接口

進(jìn)程內(nèi)通信

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

C 是 DDS 網(wǎng)絡(luò)綁定實(shí)現(xiàn)中唯一允許的 DDS 語言 PSM,因此可以輕松適應(yīng)多種 DDS 實(shí)現(xiàn)(占用空間小、安全意識(shí)強(qiáng))

多綁定支持是必須的,因?yàn)榭隙ㄐ枰峁┒鄠€(gè)DDS網(wǎng)絡(luò)綁定才能支持上述各種DDS實(shí)現(xiàn)。

AUTOSAR 自適應(yīng) DDS 網(wǎng)絡(luò)綁定規(guī)范中更精簡的服務(wù)發(fā)現(xiàn)和綁定功能方法,使用在大多數(shù) DDS 中間件實(shí)現(xiàn)中更容易找到的常見 DDS 功能(主題、實(shí)例)

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





審核編輯:劉清

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

    關(guān)注

    21

    文章

    625

    瀏覽量

    152290
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    339

    瀏覽量

    21357

原文標(biāo)題:一文讀懂DDS和AUTOSAR Adaptive的集成

文章出處:【微信號(hào):談思實(shí)驗(yàn)室,微信公眾號(hào):談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是DDS?初識(shí)CP AUTOSAR平臺(tái)下的DDS規(guī)范

    數(shù)據(jù)分發(fā)服務(wù)(DDS)[1]是一個(gè)來自對(duì)象管理組(OMG)的中間件協(xié)議和API標(biāo)準(zhǔn)。它將系統(tǒng)的組件集成在一起,提供低延遲的數(shù)據(jù)連接,極高的可靠性,和可擴(kuò)展的架構(gòu)。
    的頭像 發(fā)表于 12-05 18:18 ?2672次閱讀
    什么是<b class='flag-5'>DDS</b>?初識(shí)CP <b class='flag-5'>AUTOSAR</b>平臺(tái)下的<b class='flag-5'>DDS</b>規(guī)范

    Autosar軟件開發(fā)技術(shù)概述

    系統(tǒng)的編碼與診斷),到系統(tǒng)定制(如個(gè)性化定制功能,可設(shè)定特殊條件的服務(wù)定制功能)?,F(xiàn)在,應(yīng)用于全新7系的BMW Standard Core軟件系統(tǒng)通過AUTOSAR架構(gòu)
    發(fā)表于 12-26 10:34

    【設(shè)計(jì)技巧】基于AUTOSAR的電機(jī)驅(qū)動(dòng)系統(tǒng)報(bào)告

    軟件存在潛在的風(fēng)險(xiǎn)。AUTOSAR 是以軟件分層和模塊劃分的方式實(shí)現(xiàn)軟硬件分離的汽車開放式架構(gòu)標(biāo)準(zhǔn),將系統(tǒng)軟件架構(gòu)劃分為應(yīng)用軟件層(APP)、基礎(chǔ)軟件層(BSW)和實(shí)時(shí)運(yùn)行環(huán)境層(RTE)。如下圖所示
    發(fā)表于 07-27 08:00

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

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

    AUTOSAR是什么

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

    為什么使用AUTOSAR

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

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

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

    介紹AUTOSAR支持的四種功能安全機(jī)制

    1、AUTOSAR的四種功能安全機(jī)制雖然AUTOSAR不是一個(gè)完整的安全解決方案,但它提供了一些安全機(jī)制用于支持安全關(guān)鍵系統(tǒng)的開發(fā)。本文用于介紹AUTOSAR支持的四種功能安全機(jī)制:內(nèi)
    發(fā)表于 06-10 17:33

    基于RT-Thread內(nèi)核的AUTOSAR在n32g上的實(shí)現(xiàn)方案

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

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

    1、AUTOSAR功能安全機(jī)制之內(nèi)存分區(qū)與實(shí)現(xiàn)  在AUTOSAR架構(gòu)中,應(yīng)用軟件位于RTE上方,由互連的AUTOSAR SWC組成,這些組件以原子方式封裝了應(yīng)用軟件功能的各個(gè)組成部分
    發(fā)表于 09-19 15:55

    基于FPGA的DDS信號(hào)源設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的DDS信號(hào)源設(shè)計(jì)與實(shí)現(xiàn) 利用DDS和 FPGA 技術(shù)設(shè)計(jì)一種信號(hào)發(fā)生器.介紹了該信號(hào)發(fā)生器的工作原理、 設(shè)計(jì)思路及實(shí)現(xiàn)方法.在 FPGA 器件上
    發(fā)表于 02-11 08:48 ?225次下載

    AUTOSAR 基礎(chǔ)軟件層

    AUTOSAR基礎(chǔ)軟件層即BSW(Basic Software)層,與應(yīng)用層、運(yùn)行環(huán)境層共同搭建了AUTOSAR的軟件體系。三個(gè)層從上而下,層層遞進(jìn),實(shí)現(xiàn)了從人機(jī)交互到底層硬件的聯(lián)系。AUTO
    發(fā)表于 12-22 19:03 ?26次下載
    <b class='flag-5'>AUTOSAR</b> 基礎(chǔ)軟件層

    基于AUTOSAR的汽車故障診斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    基于AUTOSAR的汽車故障診斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 03-28 16:59 ?6次下載

    一文讀懂DDSAUTOSAR Adaptive的集成

    對(duì)于使用AUTOSAR制造車輛的公司來說,已經(jīng)出現(xiàn)了兩個(gè)不同的平臺(tái) - AUTOSAR Classic和AUTOSAR Adaptive 這兩個(gè)AUTOSAR平臺(tái)之間互操作性的基礎(chǔ)標(biāo)準(zhǔn)
    的頭像 發(fā)表于 11-02 10:05 ?2427次閱讀

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

    經(jīng)典平臺(tái)(AUTOSAR CP) AUTOSAR經(jīng)典平臺(tái)(AUTOSAR CP)是AUTOSAR軟件架構(gòu)的一種實(shí)現(xiàn),旨在提供一種標(biāo)準(zhǔn)化的方法
    的頭像 發(fā)表于 10-27 15:30 ?1226次閱讀
    <b class='flag-5'>AUTOSAR</b>經(jīng)典平臺(tái)介紹