加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 一.自動(dòng)駕駛需要怎樣的通信中間件?
    • 二.常見的通信中間件
    • 三.SOME/IP?& DDS
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

自動(dòng)駕駛中間件之二:通信中間件,DDS與SOMEIP 誰(shuí)主沉???

09/20 15:49
4.5萬(wàn)
閱讀需 31 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本文是自動(dòng)駕駛中間件科普系列第二篇,上一篇為? 自動(dòng)駕駛中間件之一:AUTOSAR正在被“邊緣化”?

隨著傳感器的數(shù)量越來(lái)越多,數(shù)據(jù)來(lái)源越來(lái)越多、規(guī)模也會(huì)越來(lái)越大,那這些多源異構(gòu)數(shù)據(jù)如何在芯片之間、在各任務(wù)進(jìn)程之間高效、穩(wěn)定地傳遞,確?!霸谡_的時(shí)間,傳遞正確的數(shù)據(jù),并確保數(shù)據(jù)抵達(dá)正確的地點(diǎn)”呢?

會(huì)有哪些信息在模塊之間共享?如何將這些信息發(fā)送編碼到消息中?如何將消息從一個(gè)模塊傳遞到另一個(gè)模塊?如何在接收到消息后解碼?各個(gè)模塊間的通信分別花了多長(zhǎng)時(shí)間?

OTA的時(shí)候,進(jìn)程如何不被打斷?

這些問題,都需要通過(guò)“通信中間件”來(lái)解決。在自動(dòng)駕駛領(lǐng)域,中間件的功能涉及到通信、模塊升級(jí)、任務(wù)調(diào)度、執(zhí)行管理,但其最主要的功能還是通信。當(dāng)前市場(chǎng)上,無(wú)論是Cyber RT還是 ROS,基本上90%的功能就是通信,狹義上說(shuō)它們就是通信中間件(又被稱為“消息中間件”)。

那么,好的通信中間件應(yīng)當(dāng)具備哪些特征?通信中間件可分為哪些類型?常見的SOME/IP和DDS的優(yōu)劣勢(shì)各是什么?市場(chǎng)格局將會(huì)如何演變?接下來(lái),我們將對(duì)這些內(nèi)容做個(gè)簡(jiǎn)單的梳理。

一.自動(dòng)駕駛需要怎樣的通信中間件?

傳統(tǒng)的網(wǎng)絡(luò)通信中,在TCP協(xié)議下,信息發(fā)出后,接收方需要發(fā)出一個(gè)信號(hào),告訴發(fā)送方“我收到了” ,如果沒收到這個(gè)信號(hào),那下一條信息就不能發(fā)出;在UDP傳輸方式下,不管接收方有沒有收到,發(fā)送方都會(huì)一直發(fā)。

以往,在沒有用通信中間件的時(shí)候,為了開發(fā)上層應(yīng)用,開發(fā)者們需要自己去定義數(shù)據(jù)的格式、定義數(shù)據(jù)的發(fā)送方和接收方;但有了SOME/IP和DDS這種“以服務(wù)/數(shù)據(jù)為中心”的發(fā)布和訂閱模式,開發(fā)者們只需明確我需要什么樣的數(shù)據(jù)、數(shù)據(jù)傳到哪兒,而無(wú)需知道數(shù)據(jù)是由誰(shuí)發(fā)出的、怎樣發(fā)出的。

以數(shù)據(jù)為中心,是相對(duì)于傳統(tǒng)的“以消息為中心”而言的,其本質(zhì)區(qū)別在于通信中間件知道它存儲(chǔ)了什么數(shù)據(jù)、并能控制如何共享這些數(shù)據(jù)。

對(duì)傳統(tǒng)的以消息為中心的中間件,程序員必須為發(fā)送消息編寫代碼,而對(duì)以數(shù)據(jù)為中心的中間件,程序員只需為如何及何時(shí)共享數(shù)據(jù)編寫代碼,然后就可以直接共享數(shù)據(jù)值。

通信中間件包括點(diǎn)到點(diǎn)、消息隊(duì)列和發(fā)布/訂閱三種工作模式,SOME/IP和DDS都采用了發(fā)布/訂閱模式。

點(diǎn)到點(diǎn)模式具有很強(qiáng)的時(shí)間和空間耦合性,使得通信靈活性受到很大限制;消息隊(duì)列模式通過(guò)一個(gè)消息隊(duì)列來(lái)傳遞消息,解決了通信雙方時(shí)間和空間松耦合的問題,但不能實(shí)現(xiàn)消息消費(fèi)者通信的異步,并且還存在服務(wù)器瓶頸和單點(diǎn)失效的問題,可靠性得不到保障;發(fā)布/訂閱模型中,發(fā)布者和訂閱者通過(guò)主題相關(guān)聯(lián),雙方不必知道對(duì)方在何處,也不必同時(shí)在線,實(shí)現(xiàn)了通信雙方在時(shí)間、空間和數(shù)據(jù)通信上的多維松耦合。

此外,相比于面向信號(hào)的CAN,DDS和SOME/IP都是面向服務(wù)的通信協(xié)議。兩者的區(qū)別在于:面向信號(hào)的數(shù)據(jù)傳輸,不管網(wǎng)絡(luò)需不需要,它始終會(huì)不斷循環(huán)發(fā)送;而面向服務(wù)的通信方式則不同,僅當(dāng)客戶端請(qǐng)求或服務(wù)器通知特定訂閱者時(shí),才在客戶端-服務(wù)器配置中交換數(shù)據(jù),這就確保了永遠(yuǎn)不會(huì)浪費(fèi)帶寬,并且僅在需要的時(shí)間和地點(diǎn)進(jìn)行數(shù)據(jù)通信/交換。

因此,面向服務(wù)的通信協(xié)議,能夠大大減少網(wǎng)絡(luò)負(fù)載,提高通信效率。

上汽工程師殷瑋在一篇文章中說(shuō),通信中間件的引入整體上可以幫助開發(fā)人員提高工作效率。

SOME/IP和DDS均已被納入AUTOSAR AP的平臺(tái)標(biāo)準(zhǔn)中。

創(chuàng)景信息科技公司在官方微信公眾號(hào)上的一篇文章中說(shuō)道:“撇開商業(yè)利益不談,從工程角度來(lái)看,將AUTOSAR和DDS結(jié)合起來(lái)的最大優(yōu)勢(shì)是功能域和網(wǎng)絡(luò)拓?fù)?/a>不再是對(duì)手,而是車輛中的盟友。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)能夠更好地適應(yīng)車輛的物理約束,而功能域可以在物理車輛的頂部提供了一個(gè)靈活的覆蓋層。”

通信中間件應(yīng)該包括以下幾個(gè)模塊:數(shù)據(jù)類型規(guī)范語(yǔ)言、消息傳遞系統(tǒng)、日志/回放工具和實(shí)時(shí)分析工具。這些模塊應(yīng)具有如下特征:1.數(shù)據(jù)類型規(guī)范語(yǔ)言應(yīng)獨(dú)立于平臺(tái)和具體的編程語(yǔ)言,以消除用戶實(shí)現(xiàn)編組(Marshalling)代碼的需要,同時(shí)保證運(yùn)行時(shí)類型的安全性;2.消息傳遞系統(tǒng)需要在不同的進(jìn)程之間傳輸消息,并提供低延時(shí)的消息傳遞功能,且消除對(duì)中央通信的依賴,從而使混合模擬、記錄和實(shí)時(shí)數(shù)據(jù)源的工作更容易;3.需要提供大量的日志記錄、回放和流量檢查工具,以簡(jiǎn)化常見的開發(fā)和調(diào)試任務(wù)。

衡量一款通信中間件好壞的標(biāo)準(zhǔn)主要有如下幾點(diǎn):1.接口是否方便?接口方便是很多人喜歡用ros的原因。2.是否安全、穩(wěn)定?安全,即通信的過(guò)程中不能出現(xiàn)數(shù)據(jù)丟失的問題;穩(wěn)定,比如,發(fā)布訂閱的進(jìn)程連續(xù)開幾天幾夜也不能宕機(jī)。3.傳輸可支持多少節(jié)點(diǎn)、跨多少內(nèi)核?4.在不同通信場(chǎng)景和通信需求下,是否可以進(jìn)行靈活快速的配置?5.吞吐量、時(shí)延。發(fā)送同樣大小的數(shù)據(jù)包,吞吐量是否更高,延遲是不是比用別的方法更低?

吞吐量,即單位時(shí)間內(nèi)通過(guò)的數(shù)據(jù)量有多少;時(shí)延,即數(shù)據(jù)包傳輸?shù)难舆t性有多少。如果通信速度很慢,感知到的信息要經(jīng)過(guò)200毫秒才能傳遞到執(zhí)行系統(tǒng),那感知做得再好也無(wú)濟(jì)于事。

車速越高、數(shù)據(jù)量越大的場(chǎng)景,對(duì)中間件的數(shù)據(jù)吞吐能力和時(shí)延的要求就越高。某通信中間件廠商反應(yīng),他們的產(chǎn)品在乘用車市場(chǎng)上賣得特別好,但在商用車市場(chǎng)上反響就不行,一個(gè)原因就是商用車的駕駛場(chǎng)景簡(jiǎn)單,對(duì)中間件數(shù)據(jù)吞吐能力、時(shí)延的要求比較低。

二.常見的通信中間件

根據(jù)源代碼是否開放,通信中間件可簡(jiǎn)單地分為閉源和開源兩種。閉源的通信中間件主要有Vector公司的SOME/IP、RTI公司的DDS等;開源的通信中間件主要有OPEN DDS、FAST DDS、Cyclone DDS等。

下面,我們將對(duì)這幾類通信中間件做個(gè)簡(jiǎn)單的介紹。

01、SOME/IP

SOME/IP的全稱為:Scalable service-Oriented MiddlewarE over IP,是一種面向服務(wù)的傳輸協(xié)議。嚴(yán)格地說(shuō),SOME/IP不是一款特定的產(chǎn)品,而是一種技術(shù)標(biāo)準(zhǔn)。其最早由寶馬在2012-2013年開發(fā),并在2014年集成進(jìn)AUTOSAR 4.2.1中。

當(dāng)前,全球最大的商用SOME/IP產(chǎn)品供應(yīng)商是Vector。?開源版的SOME/IP則是由Genivi協(xié)會(huì)來(lái)維護(hù)的。

02、DDS(Data Distribution Service)

提起DDS,就不得不提OMG組織。OMG是一個(gè)國(guó)際化的、開放的、非盈利的計(jì)算機(jī)行業(yè)標(biāo)準(zhǔn)協(xié)會(huì),很多大家熟悉的標(biāo)準(zhǔn)(如uml),都出自于OMG。DDS也是OMG組織推出的標(biāo)準(zhǔn)之一。

(圖片來(lái)自創(chuàng)景信息科技公司)

DDS的全稱為Data Distribution Service(數(shù)據(jù)分發(fā)服務(wù)),是由OMG發(fā)布的分布式通信規(guī)范,采用發(fā)布/訂閱模型,提供多種QoS服務(wù)質(zhì)量策略,以保障數(shù)據(jù)實(shí)時(shí)、高效、靈活地分發(fā),可滿足各種分布式實(shí)時(shí)通信的應(yīng)用需求。

DDS將分布式網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)定義為“主題”,將數(shù)據(jù)的產(chǎn)生和接收對(duì)象分別定義為“發(fā)布者”和“訂閱者”,從而構(gòu)成數(shù)據(jù)的發(fā)布/訂閱傳輸模型。各個(gè)節(jié)點(diǎn)在邏輯上無(wú)主從關(guān)系,點(diǎn)與點(diǎn)之間都是對(duì)等關(guān)系,通信方式可以是點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多、多對(duì)多等,在QoS的控制下建立連接,自動(dòng)發(fā)現(xiàn)和配置網(wǎng)絡(luò)參數(shù)。

DDS最早應(yīng)用于美國(guó)海軍,用于解決艦船復(fù)雜網(wǎng)絡(luò)環(huán)境中大量軟件升級(jí)的兼容性問題,后來(lái)擴(kuò)展至航空、航天、船舶、國(guó)防、金融、通信、汽車等領(lǐng)域,包括作戰(zhàn)系統(tǒng)、船舶導(dǎo)航和控制系統(tǒng)、船舶防御系統(tǒng)、無(wú)人機(jī)駕駛系統(tǒng)和地面控制系統(tǒng)、裝甲車輛控制系統(tǒng)、仿真和培訓(xùn)系統(tǒng)、雷達(dá)處理和空中交通管理系統(tǒng)、金融系統(tǒng)等。

2018年,DDS首次被引進(jìn)AUTOSAR AP,作為可選擇的通信方式之一。2018年3月,DDS的主要提供者RTI公司宣布,AUTOSAR AP的最新版本(版本18-03)已經(jīng)具有DDS標(biāo)準(zhǔn)的完整網(wǎng)絡(luò)綁定。

ROS 2和Cyber RT的底層都使用了開源的DDS,將DDS作為最重要的通信機(jī)制。與此相對(duì)應(yīng)的是,Xaver、Orin等面向自動(dòng)駕駛的SOC芯片上也都預(yù)留了DDS接口。

AUTOSAR CP的標(biāo)準(zhǔn)規(guī)范中是不支持DDS的,但做一些變通后,也可以在CP上集成DDS。

全球范圍內(nèi),DDS市場(chǎng)份額最大的供應(yīng)商(80%左右)的是成立于1991年的美國(guó)RTI公司(全稱為Real-Time Innovations)。RTI作為OMG組織董事會(huì)的成員,主導(dǎo)了DDS標(biāo)準(zhǔn)的制定,從2004年開始負(fù)責(zé)主持DDS工作組的工作,目前已經(jīng)成為這個(gè)行業(yè)的領(lǐng)導(dǎo)者,對(duì)DDS標(biāo)準(zhǔn)有足夠的權(quán)威。

RTI開發(fā)的DDS品牌名為Connext,,因此又被稱為Connext DDS。

03、開源DDS:FAST DDS與OPEN DDS

開源DDS,主要是相對(duì)于商用的RTI Connext DDS等而言的,其也是根據(jù)OMG官方標(biāo)準(zhǔn)開發(fā)的,但源代碼開放。

在自動(dòng)駕駛領(lǐng)域比較有影響力的開源DDS是由RTI原核心團(tuán)隊(duì)成員在歐洲創(chuàng)辦的eProsima公司推出的FastDDS。在eProsima將FastDDS的源代碼開放出來(lái)后,用戶可以直接在github上免費(fèi)下載。但FastDDS使用起來(lái)比較麻煩,這個(gè)時(shí)候,用戶就需要通過(guò)向eProsima支付費(fèi)用來(lái)取得支持。

OpenDDS 由位于圣路易斯和鳳凰城的的Object Computing的 ACE/TAO 團(tuán)隊(duì)開發(fā),它和FastDDS具有一定的相似性——兩者都是基于RTPS實(shí)現(xiàn)的,面向數(shù)據(jù)的通信框架,遵循的是同一標(biāo)準(zhǔn)。這類框架的典型特征是去中心化,支持QoS機(jī)制,支持實(shí)時(shí)通信。通常會(huì)綁定如protobuf等序列化工具。

在許多情況下,F(xiàn)astDDS 、OpenDDS可以跟RTI的Connnext DDS互操作/通信。當(dāng)然,具體還得看場(chǎng)景。比如開源DDS 的QoS(服務(wù)策略)有 23個(gè),大家都用這23個(gè)QOS交互,那就能互操作;如果Connext用的是超出這23個(gè)自定義范圍的QoS,那么開源DDS就解析不了。此外,如果用的是OMG沒開源的DDS工具,那也沒法互操作。

國(guó)內(nèi)某中間件廠商負(fù)責(zé)人介紹,出于成本的考量,英偉達(dá)的Xavier自帶的Driver.OS中便采用了FastDDS或OpenDDS這樣的開源DDS。

RTI方面認(rèn)為,開源DDS是其最大的競(jìng)爭(zhēng)對(duì)手。

當(dāng)然了,開源DDS的使用門檻也很高。比如,RTI DDS的服務(wù)策略有50多個(gè),但開源DDS的服務(wù)策略只有23個(gè),完整程度遠(yuǎn)不及前者。此外RTI的DDS已經(jīng)通過(guò)了ASIL-D的認(rèn)證,但開源DDS還沒有。

而據(jù)華玉通軟聯(lián)合創(chuàng)始人畢曉鵬的解釋,基于開源版本DDS研發(fā)的通信中間件存在“穩(wěn)定性不足”的問題。

04、MQTT(開源)

MQTT是由IBM開發(fā)的即時(shí)通訊協(xié)議,其全稱是Message Queuing Telemetry Transport (消息隊(duì)列遙測(cè)傳輸)。

MQTT協(xié)議也采用發(fā)布/訂閱模式,所有的物聯(lián)網(wǎng)終端都通過(guò)TCP連接到云端,云端通過(guò)主題的方式管理各個(gè)設(shè)備關(guān)注的通訊內(nèi)容,負(fù)責(zé)將設(shè)備與設(shè)備之間消息的轉(zhuǎn)發(fā)。

由于延時(shí)控制等方面功能較差、服務(wù)策略也比較少,MQTT不適用于高速項(xiàng)目和大型項(xiàng)目,但可用于低帶寬、不可靠的網(wǎng)絡(luò)場(chǎng)景,提供基于云平臺(tái)的遠(yuǎn)程設(shè)備的數(shù)據(jù)傳輸和監(jiān)控。在自動(dòng)駕駛領(lǐng)域,MQTT比較典型的應(yīng)用場(chǎng)景是V2X。

此外,MQTT在低速車領(lǐng)域也同樣適用。它體積極小,并能提供簡(jiǎn)單的QoS保證,非常適合玩具車,掃地車等功能簡(jiǎn)單、硬件資源有限的項(xiàng)目。

MQTT也是開源的通信中間件。

三.SOME/IP?& DDS

現(xiàn)階段,SOME/IP和DDS是自動(dòng)駕駛上用得最多的兩類通信中間件。上文已經(jīng)提到,兩者的共同點(diǎn)主要有:都是面向服務(wù)的通信協(xié)議;都采用了“以數(shù)據(jù)為中心”的發(fā)布和訂閱模式。那么,兩者的主要區(qū)別又有哪些呢?

01、應(yīng)用場(chǎng)景不同

SOME/IP是專為汽車領(lǐng)域而生的,它針對(duì)汽車領(lǐng)域的需求,定義了一套通信標(biāo)準(zhǔn),并且,在汽車領(lǐng)域深耕的時(shí)間比較長(zhǎng);DDS是一個(gè)工業(yè)級(jí)別的強(qiáng)實(shí)時(shí)的通信標(biāo)準(zhǔn),它對(duì)場(chǎng)景的適應(yīng)性比較強(qiáng),但在用于汽車/自動(dòng)駕駛領(lǐng)域時(shí)需要做專門的裁剪。

02、靈活性、可伸縮性不同

相較于SOME/IP,DDS引入了大量的標(biāo)準(zhǔn)內(nèi)置特性,例如基于內(nèi)容和時(shí)間的過(guò)濾、與傳輸無(wú)關(guān)的可靠性、持久性、存活性、延遲/截至?xí)r間監(jiān)視、可擴(kuò)展類型等。當(dāng)AUTOSAR AP與DDS一起構(gòu)建一個(gè)通信框架時(shí),該框架不僅可以與現(xiàn)有ara::com api及應(yīng)用程序兼容,而且在可靠性、性能、靈活性和可伸縮性等方面,都可以提供重要的好處。

03、訂閱方和發(fā)布方是否強(qiáng)耦合

在SOME/IP中,在正常數(shù)據(jù)傳輸前,client需要與server建立網(wǎng)絡(luò)連接并詢問server是否提供所需服務(wù),在這個(gè)層面上,節(jié)點(diǎn)間仍然具有一定耦合性。服務(wù)的訂閱方需要知道server在哪里,服務(wù)的發(fā)布方需要告知server提供哪種服務(wù),例如寫一個(gè)程序,需要用到傳感器數(shù)據(jù),這個(gè)程序要去詢問server是否可以提供傳感器數(shù)據(jù);而在DDS標(biāo)準(zhǔn)下,每個(gè)訂閱方或發(fā)布方只需要在自己的程序里面訂閱或發(fā)布傳感器數(shù)據(jù)就行了,不需要關(guān)心任何連接。可以理解為,在DDS中,服務(wù)訂閱方和發(fā)布方的解耦更加徹底,需要什么數(shù)據(jù),寫一行代碼就行了,不需要再去做綁定。

04、服務(wù)策略不同

較好的QoS(服務(wù)策略)是DDS標(biāo)準(zhǔn)相比于SOME/IP最重要的特征。

SOME/IP只有一個(gè)QoS,即可靠性的定義;而RTI DDS和開源DDS里面分別有50多個(gè)和20多個(gè)QoS,這些QoS基本上能涵蓋絕大多數(shù)可以預(yù)見到的智能駕駛場(chǎng)景。

QoS具體是個(gè)什么東西,它有何用途?華玉通軟聯(lián)合創(chuàng)始人兼技術(shù)副總裁畢曉鵬舉了幾個(gè)例子:

(1)通信中的傳輸優(yōu)先級(jí)、數(shù)據(jù)可靠性、資源限制、時(shí)間過(guò)濾等,都需要在QoS里面設(shè)置。

(2)數(shù)據(jù)傳輸過(guò)程中可能會(huì)出現(xiàn)丟幀現(xiàn)象,也就是說(shuō),不是每一幀都能達(dá)到接收端。針對(duì)這種現(xiàn)象,我們需要考慮場(chǎng)景需求。如果是關(guān)鍵信息(報(bào)警指令),我們需要發(fā)送方重發(fā),如果是非關(guān)鍵信息(高頻傳感數(shù)據(jù)),系統(tǒng)就不必把丟失的部分都找回來(lái),這些都只需配置QoS的reliability就可以了。

(3)在感知系統(tǒng)有冗余的情況下,一旦一個(gè)傳感器宕機(jī),就需要第二個(gè)傳感器補(bǔ)上來(lái)。針對(duì)這種情況,QoS可以配置一個(gè)ownership,對(duì)兩個(gè)傳感器的數(shù)據(jù)做優(yōu)先級(jí)高低的區(qū)分。配置之后也不需要重新編譯,因?yàn)樗莿?dòng)態(tài)部署的,配置完之后就可以按照最新配置運(yùn)行,去完成不同節(jié)點(diǎn)之間的發(fā)布訂閱。

(4).DDS的解耦模式允許某一主題發(fā)布方在沒有訂閱方的情況下仍然發(fā)布數(shù)據(jù),但后加入的訂閱方也許對(duì)這一主題的歷史記錄感興趣。例如,新節(jié)點(diǎn)上線后需要去監(jiān)控其他節(jié)點(diǎn)的運(yùn)行情況,這些節(jié)點(diǎn)也許每隔較長(zhǎng)一段時(shí)間才發(fā)布一個(gè)信息說(shuō)自己“運(yùn)行正?!?,那么這個(gè)新上線的節(jié)點(diǎn)就需要去了解其他節(jié)點(diǎn)發(fā)布的歷史信息以確定其運(yùn)行狀態(tài),也就是它希望能收到其上線之前其他節(jié)點(diǎn)發(fā)布的歷史數(shù)據(jù)。這種情況,只需要簡(jiǎn)單配置QoS就可以實(shí)現(xiàn),新節(jié)點(diǎn)可以獲知上線之前多長(zhǎng)時(shí)間、多長(zhǎng)節(jié)點(diǎn)的數(shù)據(jù)流,去關(guān)注它的歷史數(shù)據(jù)等等。

(5)負(fù)責(zé)監(jiān)控的新節(jié)點(diǎn)上線后,需要去監(jiān)控其他節(jié)點(diǎn)的運(yùn)行情況。通常,這些節(jié)點(diǎn)每個(gè)小時(shí)發(fā)布一個(gè)信息說(shuō)自己“運(yùn)行正常”,但也有可能這個(gè)“運(yùn)行正?!钡墓?jié)點(diǎn)先發(fā)布了,過(guò)半小時(shí)之后監(jiān)控節(jié)點(diǎn)才發(fā)布,那這時(shí)候,監(jiān)控節(jié)點(diǎn)是否還能收到其上線之前其他節(jié)點(diǎn)發(fā)布的數(shù)據(jù)?這種情況,也是需要通過(guò)QoS去配置的,QoS可以去配置訂閱新節(jié)點(diǎn)上線之前多長(zhǎng)時(shí)間、多長(zhǎng)節(jié)點(diǎn)的數(shù)據(jù)流,去關(guān)注它的歷史數(shù)據(jù)等等。

進(jìn)一步說(shuō),QoS能夠提供實(shí)時(shí)系統(tǒng)所要求的性能、可預(yù)測(cè)性和資源可控性,并且能夠保證發(fā)布/訂閱模型的模塊性、可量測(cè)性和魯棒性等。因此,DDS能夠滿足非常復(fù)雜、非常靈活的數(shù)據(jù)流要求。

相比之下,SOME/IP只解決了發(fā)布訂閱問題,但由于沒有這些QoS,結(jié)果便是,很多本來(lái)可用自動(dòng)配置服務(wù)策略來(lái)實(shí)現(xiàn)的功能,都需要通過(guò)軟件開發(fā)人員寫代碼才能實(shí)現(xiàn),這會(huì)浪費(fèi)大量的時(shí)間。

此外,由于沒有QoS,SOME/IP在數(shù)據(jù)量大的時(shí)候,無(wú)法解決丟包的問題,進(jìn)而造成指令被卡在某個(gè)地方發(fā)不出去,然后,整個(gè)系統(tǒng)就無(wú)法正常運(yùn)作了。

05應(yīng)用場(chǎng)景不同

從應(yīng)用場(chǎng)景的角度來(lái)看,SOME/IP比較偏向于車載網(wǎng)絡(luò),且只能在基于網(wǎng)絡(luò)層為IP類型的網(wǎng)絡(luò)環(huán)境中使用,而DDS在傳輸方式上沒有特別的限制,對(duì)基于非IP類型的網(wǎng)絡(luò),如共享內(nèi)存、跨核通訊、PCI-e等網(wǎng)絡(luò)類型都可以支持。而且,DDS也有完備性的車聯(lián)網(wǎng)解決方案,其獨(dú)有的DDS Security,DDS Web功能可為用戶提供車-云-移動(dòng)端一站式的解決方案。

在商業(yè)落地中,DDS和SOME/IP是直接競(jìng)爭(zhēng)關(guān)系。據(jù)一位RIT方面的代表透露,對(duì)用戶而言,DDS和SOME/IP是“二選一”。但畢曉鵬及東軟睿馳營(yíng)銷總經(jīng)理茅海燕、均聯(lián)智行首席架構(gòu)師汪浩偉等均認(rèn)為,DDS和SOME/IP盡管有很強(qiáng)的競(jìng)爭(zhēng)關(guān)系,但也是可以共存的。

畢曉鵬說(shuō),有的OEM既用了DDS,也用了SOME/IP,只是使用的場(chǎng)景不一樣——有時(shí)候是在一個(gè)核上的進(jìn)程之間進(jìn)行通信,有時(shí)候是核與核之間進(jìn)行通信,有的時(shí)候是域控制器和其他的車載娛樂系統(tǒng)進(jìn)行通信等等?!艾F(xiàn)在確實(shí)并不是非要‘二選一’,針對(duì)有的場(chǎng)景選擇DDS,針對(duì)另一些場(chǎng)景選擇SOME/IP,也是可以的?!?/p>

茅海燕說(shuō),AP AUTOSAR中,CM提供的一些標(biāo)準(zhǔn)框架可同時(shí)兼容DDS和SOME/IP。?“SOME/IP和DDS我們都用過(guò)。總體而言,SOME/IP強(qiáng)調(diào)通信,體量比較??;DDS功能更多,但體量比較大,需要裁剪后才能用于自動(dòng)駕駛?!?/p>

汪浩偉指出,DDS適用于自動(dòng)駕駛域,而SOME/IP則可以延伸到整車域。

Vector產(chǎn)品專家蔡守群說(shuō):“在我們接觸過(guò)的一些項(xiàng)目上,DDS和SOME/IP都有用到?!辈淌厝荷踔琳J(rèn)為,DDS跟SOME/IP不是競(jìng)爭(zhēng)關(guān)系,存在即合理,用戶可以按需選擇。

那么,在實(shí)踐中,誰(shuí)的市場(chǎng)占有率更高?

畢曉鵬說(shuō):“由于SOME/IP本身就是為汽車行業(yè)制定的通信標(biāo)準(zhǔn),因此,SOME/IP在之前的使用率會(huì)稍微高一些,DDS也是近兩年才慢慢被多家的造車新勢(shì)力和OEM所采納。但從趨勢(shì)來(lái)看,未來(lái),DDS的市場(chǎng)占有率是要大于SOME/IP的。”

當(dāng)然,“DDS優(yōu)于SOME/IP”主要是DDS廠商的說(shuō)法,為避免本文觀點(diǎn)被廠商們的立場(chǎng)左右,筆者又帶著這些質(zhì)疑向Vector蔡守群求證。對(duì)此,蔡守群的解答如下——

“現(xiàn)在很多人說(shuō)DDS優(yōu)于SOME/IP,很大程度上是從功能豐富性的角度去考慮的。確實(shí),DDS包含的功能是多于SOME/IP的,但僅僅因?yàn)檫@個(gè)原因就說(shuō)DDS優(yōu)于SOME/IP是不合適的。這就如同拿一部車去跟一個(gè)發(fā)動(dòng)機(jī)進(jìn)行對(duì)比一樣:

SOME/IP是AUTOSAR CP的產(chǎn)物, AUTOSAR的設(shè)計(jì)原則就是將功能模塊化,通過(guò)提高模塊顆粒度的方式來(lái)實(shí)現(xiàn)模塊的高度可復(fù)用性;然后再通過(guò)不斷復(fù)用、不斷測(cè)試的方式來(lái)提高模塊的質(zhì)量,因此,SOME/IP產(chǎn)生之初就沒考慮要不斷增加功能。比如,跟SOME/IP結(jié)合使用的SD就是一個(gè)單獨(dú)的模塊。

相比之下,DDS額外提供的QoS,在AUTOSAR CP中是基于VLAN實(shí)現(xiàn)在以太網(wǎng)控制器驅(qū)動(dòng)中的;數(shù)據(jù)則保存在AUTOSAR中有單獨(dú)的存儲(chǔ)管理模塊;Security在AUTOSAR中也有對(duì)應(yīng)的通信安全和加密管理模塊。

“DDS廠商們認(rèn)為,相比于SOME/IP,DDS除了提供了一個(gè)通信協(xié)議之外,還有其他可用的功能。但實(shí)際上,這些功能無(wú)論在CP還是在AP中,是有其他功能模塊進(jìn)行補(bǔ)充的,可以基于系統(tǒng)需求進(jìn)行選擇部署的,SOME/IP也只是CP/AP中一部分。

“另一方面,DDS豐富的功能必然導(dǎo)致它需要占用更多的資源。在車載MCU領(lǐng)域,資源是一個(gè)非常敏感的話題,要在MCU(包括SoC芯片的實(shí)時(shí)性內(nèi)核)中運(yùn)行DDS,只能人為地進(jìn)行項(xiàng)目級(jí)功能裁剪,很難做到跨項(xiàng)目、跨平臺(tái)的復(fù)用,因而很難做到成熟的產(chǎn)品化;并且,開發(fā)階段的工程化裁剪以及后續(xù)的測(cè)試都會(huì)大幅度增加項(xiàng)目成本。

“當(dāng)然,這也只是我個(gè)人看到的當(dāng)前狀況,不知道商業(yè)版的DDS是否已經(jīng)在考慮進(jìn)行DDS內(nèi)部的功能模塊化、工具可配置化,以彌補(bǔ)這方面的不足。(九章智駕在向RTI代理商創(chuàng)景科技方面求證后得到的反饋是:從我們目前已量產(chǎn)應(yīng)用的項(xiàng)目來(lái)看,有多位客戶在多代含MCU的產(chǎn)品中都部署了DDS,DDS在復(fù)用性方面并未出現(xiàn)“不成熟”的問題。)

“此外,DDS還有一個(gè)問題就是當(dāng)前還無(wú)法完美接入進(jìn)現(xiàn)有的車載電子電氣設(shè)計(jì)、開發(fā)、測(cè)試工具鏈中。雖然說(shuō)我們已經(jīng)著手在設(shè)計(jì)(PREEvision)、測(cè)試(CANoe)中去支持DDS,但這方面的工作也才剛剛開始,雙方的工具都需要不斷測(cè)試磨合,短期內(nèi)是做不到無(wú)縫兼容的。

“從協(xié)議上看,DDS是一套面向數(shù)據(jù)的訪問系統(tǒng),適合多節(jié)點(diǎn)、大數(shù)據(jù)交互的應(yīng)用場(chǎng)景;SOME/IP是一套面向服務(wù)的訪問系統(tǒng),可以很方便地用于RPC(遠(yuǎn)程過(guò)程調(diào)用)以及變更通知。對(duì)于數(shù)據(jù)吞吐量,從有效數(shù)據(jù)的占比來(lái)看,DDS和SOME/IP的性能沒有明顯的差別。

“所以,我一直認(rèn)為DDS和SOME/IP是會(huì)并存于車載通信中的,APP可以基于應(yīng)用場(chǎng)景選擇合適的通信通道。這也是為什么在AUTOSAR AP中是既支持DDS又支持SOME/IP的。

“我們也知道,目前確實(shí)有一些OEM在考慮用DDS充當(dāng)唯一的主干網(wǎng)(中央計(jì)算平臺(tái)+方位域控制器)通信協(xié)議,但是從成熟度、資源占用(主干網(wǎng)上肯定有基于MCU的節(jié)點(diǎn))以及工具鏈的角度來(lái)看,我們認(rèn)為還是有待商榷的?!?/p>

參考資料:

自動(dòng)駕駛通信中間件https://blog.csdn.net/qq_23981335/article/details/106563676

一網(wǎng)打盡車載以太網(wǎng)之SOME/IP(上)https://mp.weixin.qq.com/s/kDDIvnijKo2tn07t20M4Cg

一網(wǎng)打盡車載以太網(wǎng)之SOME/IP(下)https://mp.weixin.qq.com/s/iMi1TVhhUK1xZbuOlSZUZw

中間件 DDS(數(shù)據(jù)分發(fā)服務(wù)-Data Distribution Service)https://zhuanlan.zhihu.com/p/428892842

對(duì)話華玉通軟畢曉鵬:智能駕駛國(guó)產(chǎn)路,有人逢山開路,有人遇水疊橋 | 華玉Wikihttps://mp.weixin.qq.com/s/IVZtiOwUOwqdiIv2_OztyA

一文讀懂自動(dòng)駕駛的“中間件”https://zhuanlan.zhihu.com/p/372712318

RTI DDS介紹 https://blog.csdn.net/liulihuo_gyh/article/details/79704062

相關(guān)推薦

電子產(chǎn)業(yè)圖譜