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

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

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

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

jf_EksNQtU6 ? 來(lái)源:車(chē)載嵌入式軟件開(kāi)發(fā) ? 2023-12-05 18:18 ? 次閱讀

什么是DDS

數(shù)據(jù)分發(fā)服務(wù)(DDS)[1]是一個(gè)來(lái)自對(duì)象管理組(OMG)的中間件協(xié)議和API標(biāo)準(zhǔn)。它將系統(tǒng)的組件集成在一起,提供低延遲的數(shù)據(jù)連接,極高的可靠性,和可擴(kuò)展的架構(gòu)。

DDS中間件是一個(gè)軟件層,它將應(yīng)用程序從操作系統(tǒng),網(wǎng)絡(luò)傳輸,和低級(jí)數(shù)據(jù)格式的細(xì)節(jié)中抽象出來(lái)。底層的細(xì)節(jié),例如數(shù)據(jù)線格式,發(fā)現(xiàn),連接,可靠性,協(xié)議,傳輸選擇,QoS,安全等,都由中間件管理。

DDS提供了QoS控制的數(shù)據(jù)共享。應(yīng)用程序通過(guò)發(fā)布和訂閱主題(topic)來(lái)進(jìn)行通信,主題由它們的主題名和類型來(lái)標(biāo)識(shí)。訂閱者可以通過(guò)時(shí)間和內(nèi)容過(guò)濾器來(lái)獲取主題上發(fā)布的數(shù)據(jù)的一個(gè)子集。不同的DDS域彼此完全獨(dú)立。DDS域之間沒(méi)有數(shù)據(jù)共享。

DDS以數(shù)據(jù)為中心,這個(gè)特點(diǎn)保證了所有的消息都包含了應(yīng)用程序需要理解數(shù)據(jù)的上下文信息。DDS知道它存儲(chǔ)了什么數(shù)據(jù),并控制了如何共享這些數(shù)據(jù)。使用傳統(tǒng)的基于消息的中間件的程序員必須編寫(xiě)發(fā)送消息的代碼。使用數(shù)據(jù)中心化的中間件的程序員編寫(xiě)指定如何和何時(shí)共享數(shù)據(jù)的代碼,然后直接共享數(shù)據(jù)值。而不是在應(yīng)用程序(用戶)代碼中管理所有這些復(fù)雜性,DDS直接為用戶實(shí)現(xiàn)了受控的,管理的,安全的數(shù)據(jù)共享。

全局?jǐn)?shù)據(jù)空間

DDS依賴于一個(gè)與平臺(tái)無(wú)關(guān)的數(shù)據(jù)模型。這個(gè)模型定義了全局?jǐn)?shù)據(jù)空間,并指定了發(fā)布者和訂閱者如何引用這個(gè)空間的一部分。數(shù)據(jù)模型可以簡(jiǎn)單到一組沒(méi)有關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu),每個(gè)數(shù)據(jù)結(jié)構(gòu)由一個(gè)主題和一個(gè)類型來(lái)標(biāo)識(shí)。

主題提供了一個(gè)唯一標(biāo)識(shí)全局?jǐn)?shù)據(jù)空間中某些數(shù)據(jù)項(xiàng)的標(biāo)識(shí)符。類型提供了結(jié)構(gòu)信息,告訴中間件如何操作數(shù)據(jù)。使用類型化接口意味著需要一個(gè)生成工具,將類型描述轉(zhuǎn)換為適當(dāng)?shù)慕涌诤蛯?shí)現(xiàn),填補(bǔ)類型化接口和通用中間件之間的差距。

以下定義可能有助于更好地理解DDS。

實(shí)體Entity:DDS的基本對(duì)象,幾乎所有其他對(duì)象都是它的特化。

發(fā)布者Publisher:這個(gè)對(duì)象負(fù)責(zé)數(shù)據(jù)分發(fā)。它可以發(fā)布不同數(shù)據(jù)類型的數(shù)據(jù)。

數(shù)據(jù)寫(xiě)入DataWriter:應(yīng)用程序必須使用數(shù)據(jù)寫(xiě)入器來(lái)向發(fā)布者通知給定類型的數(shù)據(jù)對(duì)象的存在和值。當(dāng)數(shù)據(jù)對(duì)象的值通過(guò)適當(dāng)?shù)臄?shù)據(jù)寫(xiě)入器傳遞給發(fā)布者時(shí),發(fā)布者有責(zé)任執(zhí)行分發(fā)(發(fā)布者將根據(jù)自己的QoS或附加到相應(yīng)數(shù)據(jù)寫(xiě)入器的QoS來(lái)執(zhí)行此操作)。

訂閱者Subscriber:訂閱者負(fù)責(zé)接收發(fā)布的數(shù)據(jù),并根據(jù)訂閱者的QoS使其可用于接收應(yīng)用程序。它可以接收和分發(fā)不同指定類型的數(shù)據(jù)。

數(shù)據(jù)讀取DataReader:訂閱者使用數(shù)據(jù)讀取器來(lái)向應(yīng)用程序提供特定類型的接收數(shù)據(jù)。

域Domain:域是一個(gè)分布式的概念,它連接了所有能夠相互通信的應(yīng)用程序。它代表了一個(gè)通信平面:只有附加到同一域的發(fā)布者和訂閱者才能相互作用。

服務(wù)質(zhì)量(QoS):QoS(服務(wù)質(zhì)量)是一個(gè)通用的概念,用于指定一個(gè)實(shí)體的行為。QoS由單個(gè)QoS策略(QosPolicy類型的對(duì)象)組成。影響不同實(shí)體的一個(gè)或多個(gè)QoS策略的特定值可以分組在QoS配置文件中。

主題Topic:一個(gè)主題對(duì)應(yīng)于一個(gè)單一的數(shù)據(jù)類型。主題對(duì)象在概念上位于發(fā)布和訂閱之間。發(fā)布必須以一種訂閱可以明確引用的方式被知曉。主題的目的就是滿足這個(gè)需求:它將一個(gè)名字(在域中唯一)、一個(gè)數(shù)據(jù)類型和與數(shù)據(jù)本身相關(guān)的QoS關(guān)聯(lián)起來(lái)。除了主題QoS之外,與該主題相關(guān)的數(shù)據(jù)寫(xiě)入器的QoS和與數(shù)據(jù)寫(xiě)入器相關(guān)的發(fā)布者的QoS控制了發(fā)布者端的行為,而相應(yīng)的主題、數(shù)據(jù)讀取器和訂閱者QoS控制了訂閱者端的行為。

c526c9b2-9355-11ee-939d-92fbcf53809c.jpg

DDS是一個(gè)以數(shù)據(jù)為中心的發(fā)布訂閱協(xié)議,這個(gè)協(xié)議定義了應(yīng)用程序發(fā)布和訂閱數(shù)據(jù)對(duì)象的值的功能。它允許:

發(fā)布應(yīng)用程序標(biāo)識(shí)它們打算發(fā)布的數(shù)據(jù)對(duì)象,然后提供這些對(duì)象的值(它們使用一些在某些域參與者中定義的發(fā)布者/數(shù)據(jù)寫(xiě)入器)。

訂閱應(yīng)用程序標(biāo)識(shí)它們感興趣的數(shù)據(jù)對(duì)象,然后訪問(wèn)它們的數(shù)據(jù)值(它們使用一些在與它們想要接收數(shù)據(jù)的各個(gè)主題的發(fā)布者相同的域參與者中定義的訂閱者/數(shù)據(jù)讀取器)。

應(yīng)用程序定義主題,將類型信息附加到主題,創(chuàng)建發(fā)布者和訂閱者實(shí)體,將QoS策略附加到所有這些實(shí)體,總之,使所有這些實(shí)體運(yùn)行。

CP中的DDS模塊

c53d3d46-9355-11ee-939d-92fbcf53809c.jpg

DDS模塊實(shí)現(xiàn)實(shí)體管理,QoS等接口邏輯,還有DDSI-RTPS標(biāo)準(zhǔn)層,它是一個(gè)具備以下功能的協(xié)議棧:

序列化

反序列化

數(shù)據(jù)過(guò)濾

數(shù)據(jù)記錄

數(shù)據(jù)持久化

數(shù)據(jù)重傳

信息安全

E2E保護(hù)

從傳輸路徑的角度來(lái)看,DDS模塊只提供了一個(gè)基于PDU的接口,用于傳入(例如,上層PDU)和傳出(例如,下層PDU)的PDU。

基本上,在發(fā)送端,Dds數(shù)據(jù)是在應(yīng)用層創(chuàng)建的,并直接傳遞給RTE(作為未序列化的數(shù)據(jù)),然后轉(zhuǎn)發(fā)給LdCom,PduR,然后作為一個(gè)PDU轉(zhuǎn)發(fā)給Dds模塊,沒(méi)有經(jīng)過(guò)任何修改或轉(zhuǎn)換(在接收端也是如此)。RTE,LdCom和PduR(作為上層)只是簡(jiǎn)單地充當(dāng)透?jìng)髂K。序列化是在Dds BSW內(nèi)部執(zhí)行的,對(duì)AUTOSAR堆棧完全不透明。Dds BSW應(yīng)該知道復(fù)制數(shù)據(jù)的確切數(shù)據(jù)類型。

需要注意的是,在RTE,即使對(duì)于復(fù)合數(shù)據(jù)類型,也不會(huì)進(jìn)行任何轉(zhuǎn)換或序列化:數(shù)據(jù)會(huì)從應(yīng)用層復(fù)制到ISignal(在LdCom緩沖區(qū)中),然后PduR將信息路由到DDS模塊,數(shù)據(jù)到達(dá)Dds時(shí)完全沒(méi)有修改。Dds模塊能夠通過(guò)其映射到PDU的類型來(lái)處理數(shù)據(jù)。下層PDU包含了DDSI-RTPS協(xié)議包,準(zhǔn)備好交付給傳輸層。

c5527fbc-9355-11ee-939d-92fbcf53809c.jpg

傳輸層提供了一組適合于啟用Dds通信的連接。例如,讓我們考慮一個(gè)使用一些發(fā)布者/數(shù)據(jù)寫(xiě)入器在一些域參與者下的簡(jiǎn)單發(fā)布SW-C。如果本地域參與者不支持動(dòng)態(tài)發(fā)現(xiàn),那么對(duì)于每個(gè)數(shù)據(jù)寫(xiě)入器,就有必要靜態(tài)配置適當(dāng)?shù)倪h(yuǎn)程數(shù)據(jù)讀取器可達(dá)性信息。接收端也應(yīng)該發(fā)生類似的情況:本地?cái)?shù)據(jù)讀取器應(yīng)該知道與之相關(guān)的數(shù)據(jù)寫(xiě)入器的可達(dá)性信息。這些信息應(yīng)該用于適當(dāng)?shù)呐渲玫讓觽鬏攨f(xié)議。

c566fb2c-9355-11ee-939d-92fbcf53809c.jpg

QoS管理

Dds BSW可以支持一部分(甚至為空)的QoS策略。沒(méi)有必須實(shí)現(xiàn)的QoS。哪些QoS策略實(shí)際上是支持的,這是由供應(yīng)商決定的。

c57edbf2-9355-11ee-939d-92fbcf53809c.jpg

對(duì)于DDS的TRANSPORT_PRIORITY QoS,由SoAdSocketFramePriority實(shí)現(xiàn),但具體Dds模塊在運(yùn)行時(shí)需要自己選擇發(fā)送PDU送到哪個(gè)優(yōu)先級(jí)的SoAd connection上。

數(shù)據(jù)安全機(jī)制

在AP和CP之間,甚至在CP和非AUTOSAR平臺(tái)之間,建立通信路徑可能會(huì)涉及安全風(fēng)險(xiǎn),因此可能需要使用一些安全機(jī)制。Dds BSW模塊通過(guò)使用DDS安全規(guī)范來(lái)[2]保證一些安全機(jī)制。使用這個(gè)規(guī)范是為了保證與其他DDS系統(tǒng)的互操作性,無(wú)論是與AP(其中已經(jīng)使用了DDS數(shù)據(jù)安全)還是與非AUTOSAR系統(tǒng)。然而,實(shí)現(xiàn)這個(gè)規(guī)范可能會(huì)非常消耗資源,特別是在一個(gè)慢速的微控制器上使用,這些功能需要硬件加速。為了克服這個(gè)問(wèn)題,選擇了一個(gè)DDS數(shù)據(jù)安全功能的子集,它能保證最低的安全級(jí)別。

在這個(gè)階段,實(shí)現(xiàn)DDS數(shù)據(jù)安全的目的是為了保證消息認(rèn)證,數(shù)據(jù)完整性和組認(rèn)證。安全機(jī)制可以在配置時(shí)啟用或禁用。如果啟用,所有的安全參數(shù)必須在預(yù)編譯時(shí)靜態(tài)配置。

c5833e72-9355-11ee-939d-92fbcf53809c.jpg

如果配置了,整個(gè)RTPS消息的消息認(rèn)證碼(MAC)會(huì)被添加。AUTOSAR CSM用于密鑰管理和MAC計(jì)算,要使用的算法是可配置的(從支持的算法中選擇)。

用于哈希算法的密鑰是對(duì)稱密鑰,它們?cè)谂c域參與者相關(guān)的實(shí)體之間共享,所以認(rèn)證是在域參與者級(jí)別進(jìn)行的(不是單個(gè)發(fā)布者/訂閱者,不是單個(gè)數(shù)據(jù)寫(xiě)入器/數(shù)據(jù)讀取器)。要使用的對(duì)稱密鑰應(yīng)該由CSM直接管理,它應(yīng)該提供一個(gè)handler給DDS,以便使用它的服務(wù)。為了上述目的,使用了DDS加密插件,它提供了一個(gè)接口來(lái)保護(hù)整個(gè)RTPS消息。在應(yīng)用安全后,結(jié)果RTPS消息如下圖所示。

c59748b8-9355-11ee-939d-92fbcf53809c.jpg

功能安全機(jī)制

根據(jù)ISO 26262,在執(zhí)行不同軟件分區(qū)或ECU中的發(fā)送器和接收器之間的通信鏈路上的一組故障需要被考慮。

端到端保護(hù)的概念假定在運(yùn)行時(shí)應(yīng)保護(hù)與安全相關(guān)的數(shù)據(jù)免受通信鏈路內(nèi)部故障的影響。

DDS規(guī)范具有內(nèi)在的安全機(jī)制(計(jì)數(shù)器、CRC、QoS策略),可用于支持安全論證。

以下是在追求功能安全時(shí)需要解決的可能故障列表,以及DDS提供的支持它們的機(jī)制:

重復(fù)、丟失、插入、不正確的順序、僅由接收器子集接收到的來(lái)自發(fā)送方的信息以及阻塞對(duì)通信通道的訪問(wèn):子消息64位序列號(hào),如DDS Interoperability Wire Protocol, Version 2.2第8節(jié)3.5.4“SequenceNumber”中定義的,以及在第8.3.7“RTPS Submessages”中定義的額外的SequenceNumber類型字段。這些機(jī)制僅對(duì)在接收器端檢測(cè)丟失有用;如果還需要在發(fā)送器端進(jìn)行檢測(cè),則應(yīng)結(jié)合使用DDS QoS。

信息延遲和阻塞對(duì)通信通道的訪問(wèn):LATENCY_BUDGET、DEADLINE和LIFESPAN質(zhì)量服務(wù)策略,分別在Data Distribution Service (DDS), Version 1.4的2.2.3.8“LATENCY_BUDGET”、2.2.3.7“DEADLINE”和2.2.3.16“LIFESPAN”中定義的部分。

信息偽裝或錯(cuò)誤尋址:DDS安全認(rèn)證插件,如DDS Security, Version 1.1 第8.3“Authentication Plugin”節(jié)中定義的。在這個(gè)概念中,只能在DomainParticipant級(jí)別實(shí)現(xiàn)身份驗(yàn)證,因?yàn)閷儆谕籇omainParticipant級(jí)別的所有實(shí)體共享相同的對(duì)稱密鑰。這可以防止屬于DomainParticipant之外的實(shí)體訪問(wèn)DomainParticipant通信,但不能區(qū)分被授權(quán)在DomainParticipant內(nèi)部通信的兩個(gè)不同實(shí)體。

信息損壞、從發(fā)送方發(fā)送到多個(gè)接收器的不對(duì)稱信息(僅對(duì)導(dǎo)致無(wú)效CRC的情況有效):位于HeaderExtension子消息下的rtpsMessageChecksum([RTPS 2.5或更高版本])。在沒(méi)有此功能的情況下,DDS Security, Version 1.1 還提供了內(nèi)置于其消息認(rèn)證協(xié)議中的消息完整性驗(yàn)證。對(duì)于CRC計(jì)算,使用AUTOSAR CRC庫(kù)。

對(duì)這些故障條件錯(cuò)誤的通知:在發(fā)生任何通信錯(cuò)誤或故障(甚至是超時(shí)錯(cuò)誤)時(shí),Dds BSW應(yīng)通知Det模塊。






審核編輯:劉清

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

    關(guān)注

    1

    文章

    136

    瀏覽量

    44714
  • DDS
    DDS
    +關(guān)注

    關(guān)注

    21

    文章

    627

    瀏覽量

    152427
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    344

    瀏覽量

    21415

原文標(biāo)題:初識(shí)CP AUTOSAR平臺(tái)下的DDS規(guī)范

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DDS協(xié)議測(cè)試解決方案之中間件的作用#DDS

    DDS
    北匯信息POLELINK
    發(fā)布于 :2023年05月12日 13:05:42

    時(shí)間同步對(duì)DDS實(shí)時(shí)性能的影響#DDS #TSN #時(shí)間敏感網(wǎng)絡(luò)

    網(wǎng)絡(luò)DDS
    北匯信息POLELINK
    發(fā)布于 :2024年05月30日 10:38:03

    DDS的工作原理是什么?如何去設(shè)計(jì)DDS

    DDS的工作原理是什么?基于DSP Builder和DDS設(shè)計(jì)基于FPGA的DDS設(shè)計(jì)
    發(fā)表于 05-06 06:27

    什么是DDS?DDS的工作原理是什么

    什么是DDS?DDS的工作原理是什么?怎么做出一個(gè)DDS模塊呢?
    發(fā)表于 01-26 06:31

    dds的工作原理

    DDS的基本原理是利用采樣定理,通過(guò)查表法產(chǎn)生波形。DDS的結(jié)構(gòu)有很多種,其基本的電路原理可用圖3 來(lái)表示。
    發(fā)表于 04-03 12:47 ?9065次閱讀
    <b class='flag-5'>dds</b>的工作原理

    DDS,什么是DDS,DDS的結(jié)構(gòu)

    DDS,什么是DDS,DDS的結(jié)構(gòu) DDS概述 直接數(shù)字式頻率綜合器DDS(Direct Digital Synthesizer),
    發(fā)表于 09-03 08:42 ?4511次閱讀
    <b class='flag-5'>DDS</b>,什么是<b class='flag-5'>DDS</b>,<b class='flag-5'>DDS</b>的結(jié)構(gòu)

    DDS是什么意思,DDS結(jié)構(gòu),DDS原理是什么

    DDS是什么意思,DDS結(jié)構(gòu),DDS原理是什么 什么叫DDS 直接數(shù)字式頻率合成器DDS(Direct Digital Synthesi
    發(fā)表于 03-08 16:56 ?4.6w次閱讀

    直接數(shù)字合成(DDS),直接數(shù)字合成(DDS)是什么意思

    直接數(shù)字合成(DDS),直接數(shù)字合成(DDS)是什么意思 直接數(shù)字合成(DDS)的概念 1971年,美國(guó)學(xué)者J.Tierncy,
    發(fā)表于 03-23 11:06 ?2438次閱讀

    ADISim DDS在線設(shè)計(jì)工具

    利用ADISim DDS來(lái)仿真DDS產(chǎn)品的頻譜特性
    的頭像 發(fā)表于 06-03 01:46 ?3866次閱讀
    ADISim <b class='flag-5'>DDS</b>在線設(shè)計(jì)工具

    利用ADISim DDS在線工具仿真DDS產(chǎn)品的頻譜特性

    利用ADISim DDS來(lái)仿真DDS產(chǎn)品的頻譜特性。
    的頭像 發(fā)表于 07-15 06:13 ?4019次閱讀

    CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版

    CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版免費(fèi)下載。
    發(fā)表于 04-06 16:21 ?0次下載

    一文讀懂DDSAUTOSAR Adaptive的集成

    對(duì)于使用AUTOSAR制造車(chē)輛的公司來(lái)說(shuō),已經(jīng)出現(xiàn)了兩個(gè)不同的平臺(tái) - AUTOSAR Classic和AUTOSAR Adaptive 這兩個(gè)AU
    的頭像 發(fā)表于 11-02 10:05 ?2490次閱讀

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

    對(duì)于使用AUTOSAR制造車(chē)輛的公司來(lái)說(shuō),已經(jīng)出現(xiàn)了兩個(gè)不同的平臺(tái) - AUTOSAR Classic和AUTOSAR Adaptive 這兩個(gè)AU
    的頭像 發(fā)表于 11-02 10:05 ?1274次閱讀

    SOME/IP與DDS對(duì)比及DDS測(cè)試策略和方案探討

    本文對(duì)DDS以及基于DDS的SOA系統(tǒng)的測(cè)試策略進(jìn)行探討,并介紹DDS測(cè)試方案。
    的頭像 發(fā)表于 08-04 14:52 ?2033次閱讀
    SOME/IP與<b class='flag-5'>DDS</b>對(duì)比及<b class='flag-5'>DDS</b>測(cè)試策略和方案探討

    DDS通信中間件——DCPS規(guī)范(上)

    DDS通信中間件——DCPS規(guī)范(上)本篇文章繼續(xù)和大家分享一下對(duì)DDS這套規(guī)范的理解。預(yù)期本系列文章將包括以下內(nèi)容陸續(xù)更新:1.DDS
    的頭像 發(fā)表于 09-26 08:08 ?178次閱讀
    <b class='flag-5'>DDS</b>通信中間件——DCPS<b class='flag-5'>規(guī)范</b>(上)