精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

什么是someip?如何發揮通信中間件的服務化作用呢?

832065824 ? 來源:汽車電子嵌入式 ? 2023-09-12 09:16 ? 次閱讀

1.什么是someip?

2011年,寶馬提出和設計了Someip,SOME/IP全稱Scalable service-Oriented Middleware over IP,即基于IP的可擴展面向服務的中間件。因此,從Someip的名字出發,有三個典型要素:

3e45bf4e-5100-11ee-a25d-92fbcf53809c.png

因此,要了解Someip,首先得理解Someip為什么要具備三個典型要素。

1.1 面向服務

提到面向服務,很多人會聯想到面對對象編程C++python語言,someip的面向服務與python語言中的“類”是一致的,即把方法以及數據抽象出來,供多方使用。

即someip通信的本質是:一個控制器通過服務的方式使用另一個控制器的方法或者數據。

車內溫度值獲取方式為例:

在基于can通信的電器架構中,一個特定的功能就需要一個人特定的信號。比如對于車窗控制功能,就需要一個can信號來表示車窗的上升與下降。當需要控制車窗上升時,對應的can信號的將設置為上升,并且周期發送。

3e7309d6-5100-11ee-a25d-92fbcf53809c.png

基于can信號開啟車窗

在基于Someip通信的電器架構中,一個特定的功能將被抽象成“服務”。這服務中可以有多種不同的方法,比如:車燈控制器服務,喇叭控制服務等。當需要控制車窗上升時,只需要通過將服務中的車窗控制方法設置為上升,并且只需要發送一次即可。

3e9080ce-5100-11ee-a25d-92fbcf53809c.png

基于Someip信號開啟車窗 那基于服務的通信方式有什么優勢呢?

基于服務的通信方式的最大優勢在于可擴展性強,便于更新。舉個例子:

如果在車內有另一個控制器ECU3也需要對車窗升降進行控制,比如語音控制車窗。

1)如果使用Can通信,那么需要增加哪些工作呢?

l整車通信設計:增加Can網段或者Can信號(修改硬件或者修改通信矩陣),提供另一個車窗指令信號給ECU3使用。

lECU2軟件設計:ECU2需要專門為了ECU3設計對應的車窗控制邏輯,因此需要修改軟件。

3eabf2dc-5100-11ee-a25d-92fbcf53809c.png

2)如果使用Someip為基礎的面向服務的通信,需要增加哪些工作呢?

l整車通信設計:只需要在整車通信設計層面,增加ECU3消費ECU2車窗服務。

3ec28e84-5100-11ee-a25d-92fbcf53809c.png

面向服務是將功能抽象成服務,如ECU2將車窗功能抽象成車窗控制服務,車內任意節點需要使用車窗控制服務,只需要給ECU2發送對應的服務someip報文,而ECU2對應的車窗邏輯代碼完全不需要修改。即面向服務的通信與信號完全解耦,擴展性強。 綜上所述,面向服務的通信將原子功能服務化,軟件功能邏輯與信號解耦,具有更強的可擴展性,降低修改需求時的成本。

1.2基于IP之上的協議

3ed51c84-5100-11ee-a25d-92fbcf53809c.png

以太網是一種使用十分廣泛的協議,由標準的七層架構組成,但CP中的以太網其實僅用了5層協議,Someip為第5層協議。

以太網第一層是物理層,既可以理解為硬件層,MCU的軟硬件系統中由Phy芯片完成。Phy芯片能對模擬信號與數字信號進行轉換,接收報文時,將模擬信號轉換成數字信號給MCU芯片處理;發送報文時,將數字信號轉換成模擬信號發送至以太網總線上。

以太網第二層是數據鏈路層。鏈路層即Mac層,規定了數據幀能被網卡接收的條件,最常見的方式是利用利用網卡的MAC 地址,發送方會在欲發送的數據幀的首部加上接收方網卡的MAC 地址信息,接收方只有監聽到屬于自己的MAC 地址信息后,才會去接收并處理該數據。以太網第三層是網絡。每一臺搭載了以太網的ECU都需要定義ip地址,主機的網絡地址該如何定義,以及如何在網絡地址和MAC 地址之間進行映射,即ARP 協議;網絡層實現了數據包在ECU之間的傳遞。

以太網第四層是傳輸層。傳輸層主要是實現UDP以及TCP協議功能,在一個ECU內可能存在不同的應用程序,這些程序可能會使用到不同的IP地址,那么傳輸層就能區分數據包是屬于哪個應用程序的,即傳輸層可以實現數據包端到端的傳遞,即ECU1的應用程序至ECU2的應用程序。

SomeipSomeipsd,Doip位于以太第五層應用層:Someip協議,,Someipsd協議,doip協議本質上是規定了對網絡層傳遞的數據的處理,適應了不同的應用場景。在CP中,實際上Soad,SD,Doip,Soemipxf都是在實現應用層功能。

1.3 通信中間件

中間件本來是在互聯網行業十分流行的術語,是基礎軟件一類,位于操作系統,網絡,數據庫之上,應用軟件的下層。作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。在不同的技術之間共享資源并管理計算資源和網絡通信。

3f0193ea-5100-11ee-a25d-92fbcf53809c.png

中間件的核心思想在于“統一標準、分散實現、集中配置”。Someip這套協議具備了中間件的顯著特征,能夠運行于車內不同的操作系統之上,并且能滿足同一套標準協議。

2.SOMEIP服務化通信

在面向服務的Someip通信中,Someip提供了三種接口將幫助使用者將原子功能服務化:

事件Events:事件通知主要提供事件型的接口該事件可以是突發型的事件,也可以是周期性的事件。

方法Methods:遠程過程調用, 主要用于遠程調用方法。

字段Fields:訪問進程數據(Field)。訪問進程通信機制主要是為了實現針對對應用程序的數據獲取與更改

看完上面對于someip接口的解釋,相信很多人還是對這些官方的抽象解釋一臉疑惑,接下來為大家提供接地氣的描述。

2.1 設定不同Someip接口的目的

本質上一個服務抽象的是一個大功能,每個功能會有不同的子功能以及不同的應用場景,所以就需要不同的接口滿足不同場景需求。

以上文中提到的車窗服務為例,如果車窗服務有如下使用需求:

需求1:某ECU需要ECU2周期性提供車窗開度狀態信息。

需求2:某ECU需要ECU2在車窗開度信息有變化時提供車窗開度信息。

需求3:某ECU在有需要時遠程單次獲取車窗開度信息。

需求4:某ECU需要設置當前的車窗開度信息

需求5:某ECU需要直接開關車窗

上面的不同功能需求都可以通過Someip提供的三種接口實現。

需求1:該需求為需要提供周期性事件信息,選Event接口。

需求2:該需求為需要提供突發型事件型的數據,選Event接口。

需求3:有需要時獲取數據,即訪問進程中的內容,選Field接口。

需求4:設置當前的車窗開度信息,也是訪問進程中的內容,選Filed接口。

需求5:直接開關車窗,實現車窗的遠程控制,需要遠程調用開關服務,這是典型的遠程調用,選Method接口。

看到這兒,大家是否對Someip接口有所認識,本質上Method/Event/Filed都是上層的概念,用以體現服務中子功能的特征,根據子功能的特點選擇合適的接口。

比如事件型的子功能選Event,過程訪問(比如車輛運行過程中獲取空調溫度,設置空調溫度)選Filed,遠程調用(比如App遠程直接控制空調開關)選Method。

2.2 Someip服務的通信機制

Method/Event/Filed三個接口只是上層概念,是對于功能層面概念的抽象,在整車架構中實現這幾種概念,還需要通信機制的支撐。

比如:打工仔有很好的針對業務上的建議(Method/Event/Filed),需要獲取領導的資源支持,那么就需要使用PPT進行匯報,PPT就是底層的通信機制。

Someip提供了三種通信方式:

l請求/響應

l請求不響應

l服務發現/訂閱發布

上述三種方式對應著四種真正的通信機制:

lRequest/response

lFire&Forget

lNotification

lGetter/Setter

通信方式描述的是通信機制的特點,通信機制是支撐Someip接口功能實現的底層通信機制。

通信機制有如下圖中的對應關系,下面將介紹各接口中的通信機制。

3f1d338e-5100-11ee-a25d-92fbcf53809c.png

1)Method

Method的特點是遠程調用,根據是否需要服務端發出響應報文可以分為兩類:

1.請求響應,即Request/Response機制

簡而言之,Client端(某個ECU)有需求的時候,向Server端(某個ECU)發送Request請求Someip報文,Server接收報文后處理該請求,并向Client端發送響應Someip報文,響應Someip報文中將攜帶請求處理結果。

3f48e524-5100-11ee-a25d-92fbcf53809c.png

2.請求不響應,即Fire/Forget機制

Fire/Forget機制相對于Request/Response機制,區別在于前者不需要Server端發送響應報文,而后者需要。

3f64ee5e-5100-11ee-a25d-92fbcf53809c.png

2)Event

Event服務接口支持的通信機制是Notification,有如下特性:

l由Server向Client發送報文

l可周期性發送或者根據事件狀態(值改變或者特定條件滿足)發送通知類消息

l在Server端發送報文之前,需要Client端先對服務進行訂閱。

3f807a7a-5100-11ee-a25d-92fbcf53809c.png

3)Field

Field訪問進程通信支持了三種通信機制,Notification,Getter,Setter三種。

1.Notification

Filed支持Notification時,具有如下特性:

1)由Server端主動發送報文

2)在Server端提供的服務整個生命周期中,即在服務上線后的任意時刻,Server端可以Filed數據報文發送給Client端。Filed強調的是全生命周期的數據,Event強調的是變化的事件。

3)在Server端發送報文之前,需要Client端先對服務進行訂閱。

3fa6f8da-5100-11ee-a25d-92fbcf53809c.png

2.Getter

Client主動從Server端獲取field數據。

3fc69938-5100-11ee-a25d-92fbcf53809c.png

3.Setter

Client主動設置Server端的Field數據。

3fe60822-5100-11ee-a25d-92fbcf53809c.png

3.Someip的軟件實現

在AUTOSAR架構中,Someip服務化通信的實現需要依賴于底層以太協議棧與應用層的共同完成。

如上文所描述,服務接口的抽象由應用層完成,即Event,Filed,Method的抽象,具體的通信機制由以太棧支持。

即以太協議棧與Rte將完成數據的序列化與反序列化,報文的組裝與分解以及notify,RR,Getter/Setter等通信機制。

應用層SWC將完成Event與Method或者Filed特性的實現。

3.1 Method請求代碼實現

下圖為Method接口請求/響應中請求的代碼實現方式。

Request/Response中Request即是典型的請求。

實際上,Method接口中請求在AUTOSAR架構中體現為函數調用。Client向Server端通過Method接口請求車窗開啟,本質上就是,Client端向Server端請求調用對應的車窗控制函數,只不過函數調用請求需要通過Someip報文從Client端發送至Server端實現。

如下圖,Client端Rte_Call_OpenTheWindowMethod(State)執行后,Someip報文將此請求傳輸至Server端,Re_OpenTheWindowMethod被調用。

注意:Request/Response中Response的實現方式與Request一致,不同點在于變為Server端請求調用Client端中的函數。

4007e244-5100-11ee-a25d-92fbcf53809c.png

3.2 Event主動發送代碼實現

下圖為Event服務接口在代碼中的實現方式。

在AUTOSAR架構中,Event實現的即為ECU間的數據傳輸。

Server端使用Rte_Write_WindowStateEvent(State)接口,通過Someip報文將State數據傳送給Client端,Client端通過Rte_read_WindowStateEvent(State)獲取數據。

注意:Fire/Forget.Field之notifation的實現機制與Event一致。

40214090-5100-11ee-a25d-92fbcf53809c.png

總結

本文對Someip的來源本質,Someip的服務化通信,以及Someip服務化通信在AUTOSAR中代碼實現方式做了詳細的介紹,如果需要深入了解Someip,還需要對Someip的報文格式,SomeipSD的機制以及AUTOSAR的以太棧模塊進行學習。






審核編輯:劉清

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

    關注

    112

    文章

    16204

    瀏覽量

    177420
  • 以太網
    +關注

    關注

    40

    文章

    5377

    瀏覽量

    171122
  • CAN通信
    +關注

    關注

    5

    文章

    93

    瀏覽量

    17810
  • C++語言
    +關注

    關注

    0

    文章

    147

    瀏覽量

    6971
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84456

原文標題:通信中間件Someip服務化通信

文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是DDS(數據分發服務)?#軟件中間件

    中間件DDS
    北匯信息POLELINK
    發布于 :2023年06月05日 14:50:13

    一種嵌入式系統通信中間件的設計

    基于嵌入式系統的跨平臺實現互通、互連、互操作及通用性的特殊要求,我們根據中間件的設計思想研制開發了一種基于嵌入式技術的各通信設備之間進行網絡互連的通信中間件
    發表于 05-30 09:33 ?35次下載

    支持多服務的消息中間件設計與實現

    為了解決消息中間件中的性能瓶頸問題和實現其可靠性的提高,研究并開發了支持多服務的消息中間件,提供單個節點無法提供的性能和可靠性保障。消息集群設計過程中涉及的主
    發表于 08-06 10:04 ?26次下載

    基于JMS的RFID中間件設計與實現

    介紹了Radio Frequency Identification (RFID) 和物聯網的RFID 中間件技術,設計了RFID 中間件整體框架,在此基礎上設計并實現了一個基于JMS 的商品零售的邊緣中間件
    發表于 10-19 16:16 ?17次下載

    什么是中間件

    什么是中間件 中間件是一種獨立的系統軟件或服務程序,分布式應用軟件
    發表于 12-28 17:54 ?1365次閱讀
    什么是<b class='flag-5'>中間件</b>

    arm技術中間件技術研究

    中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源;中間件位于客戶機/服務器的操作系統之上,管理計算資源和網絡
    發表于 06-18 09:47 ?1675次閱讀

    基于ARM的RFID中間件系統設計

    RFID中間件在RFID讀寫器和應用程序之間起橋梁作用。應用程序端使用中間件所提供一組通用的應用程序接口(API),即能連到RFID讀寫器,采集RFID標簽數據。即使存儲RFID標簽情報的數據庫軟
    發表于 09-16 10:33 ?1002次閱讀

    常見的中間件有哪些?匯總解析

    世界著名的資訊機構Giga Group把中間件分為三大類,共十五種。另一家世界著名的資訊機構IDC同時指出,最近幾年到未來的2002年,增長率最高的中間件將集中在數據存取中間件、消息中間件
    發表于 12-01 08:48 ?5.4w次閱讀

    物聯網軟件系統中的RFID中間件介紹

    RFID中間件是物聯網軟件系統中的關鍵和靈魂,為解決分布異構問題,人們提出了中間件的概念。中間件是位于平臺(硬件和操作系統)和應用之間的通用服務,這些
    發表于 04-15 16:00 ?4602次閱讀
    物聯網軟件系統中的RFID<b class='flag-5'>中間件</b>介紹

    RFID中間件是什么東西

    RFID 中間件是一種面向消息的中間件,信息是以消息的形式,從一個程序傳送到另一個或多個程序。
    發表于 12-02 16:12 ?3434次閱讀

    Go項目中引入中間件的目的和效果如何

    中間件是什么?Go 項目中引入中間件的目的和效果如何?本文詳細介紹了Golang 中間件。 中間件是一種計算機 軟件,可為 操作系統 提供的 軟件應用程序 提供
    的頭像 發表于 08-14 14:24 ?2006次閱讀

    通信中間件接口手冊

    通信中間件接口手冊
    發表于 06-29 11:37 ?2次下載

    汽車軟件通信中間件iceoryx和它的零拷貝技術

    1. iceOryx 是什么?這是一頭漂亮的"冰羚",它是一種用于汽車軟件中的 ICP 通信中間件,由 Eclipse 基金會發布和維護。 通信中間件在汽車軟件開發中占據越來越重要的地位,這是
    發表于 05-15 11:42 ?0次下載
    汽車軟件<b class='flag-5'>通信中間件</b>iceoryx和它的零拷貝技術

    自動駕駛通信中間件

    ,而中間件的任務就是確保網絡 本身對軟件組件是透明的。比如我們所熟知的SOME/IP就是一種典型的中間件技術實現。使用中間件能夠簡化系統的開發,提 高管理和測試效率。 車載網絡通信
    發表于 06-01 11:32 ?0次下載
    自動駕駛<b class='flag-5'>通信中間件</b>

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

    DDS通信中間件——DCPS規范(上)本篇文章繼續和大家分享一下對DDS這套規范的理解。預期本系列文章將包括以下內容陸續更新:1.DDS規范概述2.DCPS規范解讀3.DDS-XTypes與IDL
    的頭像 發表于 09-26 08:08 ?336次閱讀
    DDS<b class='flag-5'>通信中間件</b>——DCPS規范(上)