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

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

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

3天內不再提示

SOME/IP在實踐中到底應該如何使用

智能汽車電子與軟件 ? 來源:ADAS與ECU之吾見 ? 作者:ADAS與ECU之吾見 ? 2022-10-24 15:29 ? 次閱讀

前言

首先,請問大家幾個小小問題,你清楚:

你知道什么是SOME/IP嗎?

你知道為什么會產生SOME/IP即相關背景嗎?

你知道SOME/IP與SOA又有著哪些千絲萬縷的聯系呢?

SOME/IP在實踐中到底應該如何使用呢?

今天,我們就來一起探索并回答這些問題。為了便于大家理解,以下是本文的主題大綱: 0afa7c2a-51b4-11ed-a3b6-dac502259ad0.png

正文

總體介紹

車載以太網協議棧總共可劃分為五層,分別為物理層,數據鏈路層,網絡層,傳輸層,應用層,其中今天所要介紹的內容SOME/IP就是一種應用層協議。 SOME/IP協議內容按照AUTOSAR中的描述,我們可以更進一步的拆分為三類子協議:應用層的SOME/IP標準協議,SOME/IP-SD協議以及TP層的SOME/IP-TP協議,這三部分內容相輔相成,完整詳細的闡述了SOME/IP協議的全部內容,是研究SOME/IP協議的必經之路。 由于SOME/IP協議內容較多且關聯復雜,為了讓大家對SOME/IP有一個循序漸進的了解過程,限于篇幅本文將主要講解應用層的SOME/IP標準協議,其他協議內容會在下篇繼續給大家分享,敬請大家多多關注!

產生背景與動機

2011年寶馬公司開發設計了一套中間件,該中間件能夠實現以服務為導向的通信方式,該中間件區別于傳統以信號為導向的通信方式,不僅能夠大大減少網絡負載以提高通信雙方的效率,同時引入以太網通信也能夠大大滿足未來車輛不斷增長的通信需求。 面向信號的數據傳輸不管網絡需不需要始終會不斷循環發送,而面向服務的通信方式則不同,只有當網絡中至少存在一個接收方需要這些數據時,發送方才會發送數據,這是一種面向服務通信方式的顯著優點。 寶馬將該面向服務的通信方式叫做SOME/IP(全稱為:Scalable service-Oriented MiddlewarE over IP)。正如其名,可見該協議跟以太網密切相關。 沒錯!SOME/IP就是運行在車載以太網協議棧基礎之上的中間件,或者也可以稱為應用層軟件。 SOME/IP正由于其知名度逐漸被AUTOSAR接納并計劃納入其正式標準,并且在2014年集成進AUTOSAR 4.X中,幾個關鍵發展節點如下:

AUTOSAR 4.0 - 完成寶馬SOME/IP消息的初步集成;

AUTOSAR 4.1 - 支持SOME/IP-SD及其發布/訂閱功能;

AUTOSAR 4.2 - 添加transformer用于序列化以及其他相關優化;

AUTOSAR 4.3 - 修復一些transformer bug同時添加針對大量UDP數據包的SOME/IP-TP協議以及其他SOME/IP-SD的優化工作;

持續優化中。。。。。。

什么是SOME/IP

正如上節所提到SOME/IP的全稱,接下來我們就來通過其全稱一起來了解下SOME/IP到底是個什么東西:

Scalable 該協議設計的初衷之一就是為了實現不同硬件平臺、不同操作系統或嵌入式固件以及不同應用軟件的異構設備之間的可擴展性和互操作性。

service-Oriented 表明它是一種面向服務的基本協議。因此僅當客戶端請求或服務器通知特定訂閱者時,才在客戶端-服務器配置中交換數據 ,這就確保了永遠不會浪費帶寬,并且僅在需要的時間和地點進行數據通信/交換。

MiddlewarE 它也是一種中間件。即其位于應用層,有自己的通用協議層來處理更具體的操作及應用;

over IP 它也是一個基于以太網的協議。它使用類似的硬件接口,確保高達 100Mbps 的帶寬。同時數據通過中間件(即應用層)通過網絡電纜使用 TCP/IP 或 UDP 協議進行通信。 當客戶端需要來自服務器的數據時,它可由客戶端使用 TCP 協議進行請求。如果服務器必須將數據傳送給所有活動的訂閱者,則可通過 UDP 協議傳輸。UDP 協議上的數據通信可以是單播、多播或廣播。

如下圖1所示,就十分清晰地展示了SOME/IP在車載以太網協議棧中的位置以及與其他模塊的關系: 0b263928-51b4-11ed-a3b6-dac502259ad0.png 圖1 SOME/IP 與車載以太網協議棧關系 那么在AUTOSAR協議棧中,SOME/IP協議又處于一個什么樣的位置呢?如下圖所示: 0b3a1b28-51b4-11ed-a3b6-dac502259ad0.png 如上圖可知,SOME/IP協議涉及到與RTE,COM,PDUR以及SOAd這些AUTOSAR標準模塊的交互,而用于服務發現的SOME/IP-SD則涉及到BswM,SD以及SoAd模塊的交互。 SOME/IP協議與各個模塊的交互關系會在后續文章講到,提及于此讓大家對SOME/IP協議與AUTOSAR協議棧的關聯有個整體概念,此文中不做過多展開。 SOME/IP 最初是作為另一種 RPC 機制開發的,以確保與 AUTOSAR 設備的兼容性并提供汽車用例所需的最大功能,同時它也是專為ECU間客戶端-服務器序列化而設計的網絡層協議。 目前,該協議可以在多種不同的操作系統上實現,包括AUTOSAR、OSEK 和 GENIVI。它也可以在不運行操作系統的嵌入式固件上實現。 攝像頭、主機、遠程信息處理設備、AUTOSAR 設備,甚至信息娛樂系統等大型設備,都可以使用 SOME/IP 協議有效地交換 ECU 間消息。自Wireshark 3.2SOME/IP 發布以來,SOME/IP 支持就已公開,可以在 Wireshark 上解析SOME/IP數據。 綜上所述,我們便可以總結出SOME/IP作為一種面向服務的通信協議,一種基于車載以太網協議棧基礎上的應用層協議的基本特點有哪些,如下表1所示展現了SOME/IP協議的五大基本特點: 0b5b703e-51b4-11ed-a3b6-dac502259ad0.png ? 表1 SOME/IP協議五大基本特點

SOME/IP與SOA的關系

SOA SOA簡而言之就是一種面向服務的架構(Service-Oriented Architecture), 當然也是一種軟件設計的重要方式,IT研究與顧問咨詢公司 Gartner 在 1996 年提出的,其本身并不是新鮮概念,而且已經在IT互聯網領域風靡了20余年。 按照W3C對它的定義 : “SOA是一種應用程序架構,在這種架構中,所有功能都定義為獨立的服務,這些服務帶有定義明確的可調用接口,能夠以定義好的順序調用這些服務來形成業務流程。 服務:服務是一種比構件粒度更大的信息集合,實際是包含實現了多個關聯業務需求的邏輯組合,并且允許每個服務使用特定的平臺,架構或技術方案; 可調用接口:面向服務的接口不同于構件的接口,他的實現與特定語言無關,與特定的平臺也無關,可十分方便的實現不同異構平臺的交互; 聯系與區別:

首先需要明確的是SOME/IP不是SOA,SOA也不是SOME/IP;

由于SOME/IP本身也是一種面向服務的協議,所以一般認為SOME/IP只不過是一種實現SOA可行的協議選擇;

一般而言,基于消息的通信與RPC(Remote Procedure Call 遠程過程調用)通信都可以實現SOA,而SOME/IP就是一種基于RPC框架的協議;

可以通過SOME/IP用來實現SOA,但SOA的實現卻不一定非得用SOME/IP;

SOME/IP協議解析

接下來就讓小T帶領大家通過解析SOME/IP一起來揭開SOME/IP的神秘面紗!,以便為后續車載以太網的學習打好基礎。

相關標識符與版本說明

如下圖2所示為SOME/IP協議的Header結構體: 0b752498-51b4-11ed-a3b6-dac502259ad0.png 圖2 SOME/IP協議Header 如上圖中標記的Message ID,Request ID, Protocal Version 以及Interface Version的詳細解釋如下表2所示: 0baf046a-51b4-11ed-a3b6-dac502259ad0.png 表2 相關標識符與版本說明 ? Length Length正如上圖2所示,其涵蓋的范圍是Request ID開始至SOME/IP報文結束。

Message Type

用來識別不同的消息類型,目前存在的類型如下圖3所示,其中TP表示分包的報文,按照AUTOSAR標準(R21-11)定義如下: 0bd8dfba-51b4-11ed-a3b6-dac502259ad0.png 圖3 Message Type表

Return Code

Return Code用來指示Message是否被成功處理了,或針對請求中的錯誤內容進行反饋,如下圖4為AUTOSAR(R21-11)中定義的Return Code類型: 0beb2aee-51b4-11ed-a3b6-dac502259ad0.png 圖4 Return Code定義表 ?

SOME/IP通信機制

認識完了SOME/IP協議標準的詳細定義內容之后,接下來就需要來探討車載ECU需要按照何種規則來實現數據的傳輸,因此熟悉這部分內容將對車載以太網SOME/IP的開發與測試至關重要。

服務發現(Service Discovery)

服務發現的通信機制是通過SOME/IP-SD協議實現的,主要是為了實現在車載以太網中告知客戶端當前服務實例的可用性及訪問方式,可通過Find Service 和Offer Service來實現。 在通過SOME/IP協議傳輸數據之前,我們需要知道當前整個車載網絡到底存在哪些服務,服務的可用性如何,客戶端如果訂閱服務端所提供的服務。 由于SOME/IP-SD協議也是一塊十分重要的內容,在此就不過多展開,僅簡要介紹其基本功能與作用機理,后續會單獨介紹SOME/IP-SD協議的具體內容,敬請關注! 如下圖5所示即為SOME/IP-SD的基本功能,展現了Client與Server之間的交互關系。 0c092d14-51b4-11ed-a3b6-dac502259ad0.png ? 圖5 SOME/IP-SD Client與Server交互關系圖 由上圖可知,SOME/IP 服務發現流程可以分為以下三大基本步驟:

Client通過發送Find Service的報文去尋找車載網絡中可用的服務實例;

Server接收到Client的Find Server后通過UDP發送Offer Service響應;

Client通過發送Subcribe Event Group去訂閱相關Event;

Server檢查是否滿足Client是否滿足訂閱條件,如果滿足回復ACK,如果不滿足,則回復NACK;

Client成功訂閱相關事件后,Server會按照事件本身屬性來實現對已訂閱該事件的Client的發布;

遠程進程調用(RPC)

遠程進程調用主要可分為四種通信模式:

Request/Response通信模式,可歸納為Method中的一種;其基本通信模型如下圖6所示: Request-Response模型作為一種最為常見的通信方式,其主要任務就是客戶端發送請求信息,服務端接收到請求,進行相關處理之后進行相應的響應。

0c2369cc-51b4-11ed-a3b6-dac502259ad0.png ? 圖6 Request-Response通信模型

Fire&Forget通信模式,可歸納為Method中的一種; 該通信模型的主要任務就是客戶端向服務端發送請求,服務端無需進行任何響應,有點類似診斷服務中的抑制正響應。 0c2fafc0-51b4-11ed-a3b6-dac502259ad0.png

圖7 Fire&Forget通信模型

Notification Event通信模式; 該通信模式主要描述了發布 /訂閱消息內容,主要任務就是為了實現客戶端向服務端訂閱相關的事件組,當服務端的事件組發生或者值發生變化時,就需要向已訂閱該事件組的客戶端發布更新的內容。

0c4afe06-51b4-11ed-a3b6-dac502259ad0.png ? 圖8 Notification event通信模型 ?

遠程進程控制(Field) 訪問進程通信機制主要是為了實現針對對應用程序的數據獲取與更改,主要任務就是實現客戶端通過Getter獲取Server的值,通過Setter設置Server的值。 Field就可理解為一個Service的基本屬性,可包含Getter,Setter,Notifier三種方式。其中Getter就是讀取Field中某個值的方法,Setter就是一種改變Field值的方法,而Notifier則是一種當Field中的值發生變化的觸發事件。 0c6ff2d8-51b4-11ed-a3b6-dac502259ad0.png ? 圖9 Field的通信模型

由上圖可知,在Getter與Setter的方式中我們使用的Request/Response機制。在Getter的請求報文中是一個空的Payload,響應報文中的Payload才是需要獲取的值;使用Setter請求時,請求消息中的Payload則是要設置的值,如果設置成功,那么響應報文中Payload就是設定成功的值。 同時我們也可得出服務實體在SOME/IP協議中是一個十分重要的概念。一個服務實體可以是Field,Events以及Method的任意組合。

SOME/IP錯誤處理機制

在任何通信過程中總是會存在各種各樣的 錯誤,SOME/IP作為一種面向服務的應用協議也不例外,因此AUTOSAR為了更為高效的定位到通訊過程中的問題所在,因此制定了一套檢查SOME/IP協議格式內容的錯誤處理機制。 比如版本信息檢查,服務ID等,其他故障信息可以在Payload中進行詳細定義。目前SOME/IP支持以下兩種錯誤處理機制,這兩種uowu處理機制可以根據配置進行選擇。

消息類型0x80,Response信息,即可以通過Response Message中的Return Code來定位到問題所在;

息類型0x81,顯式的錯誤信息;

如下圖10為SOME/IP處理一般性錯誤的基本流程: 0c7d9ee2-51b4-11ed-a3b6-dac502259ad0.png ? 圖10 SOME/IP錯誤處理流程 ? 如果大家想進一步學習SOME/IP協議棧內容具體如何實現,可以參考由BMW公司主導在GitHub上的開源代碼,在GitHub中搜索"vsomeip"關鍵字便可找到對應的開源代碼學習。 值得注意的是vsomeip是一種基于Linux平臺采用C++語言進行開發的SOME/IP協議棧。

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

    關注

    8

    文章

    6909

    瀏覽量

    88850
  • 硬件接口
    +關注

    關注

    0

    文章

    43

    瀏覽量

    10829
  • 車載以太網
    +關注

    關注

    18

    文章

    218

    瀏覽量

    22949

原文標題:一網打盡車載以太網之SOME/IP(上)

文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    學習心得

    編程的學習還是在實踐中進步最快,也只有在實踐中才知道書本上的東西有很多與實際使用相差有多遠,也只有在實際應用才知道自己到底學會了多少,會用了多少;書本只是一個概念讓你知道有這么個東西
    發表于 09-02 21:38

    【社區之星】王培瑞:電子人的成長之路——注重在實踐中學習

    嘉賓介紹:王培瑞 2013年7月畢業于西安工程大學自動化專業!參加工作后一直從事于自動化相關專業!擁有豐富的軟硬件開發測試經驗,注重在實踐中學習,善于應用不同的開發工具完成不同業務需求!曾就職于臺達
    發表于 02-16 11:10

    ADμC812 芯片實踐中幾點注意

    ADμC812 芯片實踐中幾點注意
    發表于 05-16 14:16 ?10次下載

    EDA 技術在教學實踐中的應用2

    EDA 技術在教學實踐中的應用2 摘 要: EDA 在電子技術教學實踐中的應用是現代教育發展的一種趨勢, 本文通過數字式測溫儀這一綜合性設計實例,比較全面地說明
    發表于 12-07 13:50 ?0次下載

    memcached plugin在實踐中的應用

    應用背景介紹 我所在職的Oray是一家提供各種互聯網服務且具有海量用戶的企業,我們也一直在實踐各種新技術新架構;緩存方面,我們從memcached、ttserver、redis等都有較多應用,其中
    發表于 09-27 16:34 ?0次下載
    memcached plugin<b class='flag-5'>在實踐中</b>的應用

    無人機航拍在電視新聞實踐中的應用與影響

    民用航拍無人機技術的成熟,讓無人機航拍在新聞傳播領域的應用成為了可能。航拍無人機作為一種全新的新聞采訪設備,在電視新聞實踐中表現出了一定競爭力,囿于行業管理、技術缺陷和無人機飛手等因素,無人機航拍在電視新聞實踐中發揮的作用是有限的。
    發表于 12-22 08:01 ?4868次閱讀

    剖析智能制造關于“輕與重”的實踐中的誤區

    智能制造無疑是建設制造強國重中之重的核心策略。但還有很多制造企業存在不少關于“輕與重”的認識與實踐中的誤區!
    的頭像 發表于 02-20 10:33 ?3377次閱讀

    光纖涂覆機在科研及工程實踐中詳細應用步驟(圖文)

    光纖涂覆機在科研及工程實踐中詳細應用步驟(圖文)國產光纖涂覆機
    發表于 02-27 14:30 ?722次閱讀

    車載以太網的SOME/IP-SD協議了解與認識

    通過之前的文章我們了解到了SOME/IP協議的基本組成與SOME/IP的具體工作過程,同時也提到了SOME/
    的頭像 發表于 08-10 10:53 ?2947次閱讀

    基于SOME/ IP可擴展面向服務的中間件

    PDU 路由組管理需要管理啟用到禁用的套接字PDU 路由,SOME/IP - 套接字適配器 [SoAD] - AUTOSAR 模型構建塊,可用于通用上層支持SOME/IP
    的頭像 發表于 09-08 17:34 ?1322次閱讀

    數字化改變了什么?WeLink在實踐中給出答案

    數字化改變了什么?WeLink在實踐中給出答案 在這個世界上,唯一保持不變的,就是__變化本身__。 隨著數字化時代的到來,我們會發現,工作方式正在悄然改變: 只要打開手機眨眼的功夫就完成了考勤打卡
    的頭像 發表于 12-02 17:29 ?470次閱讀

    【社區之星】王培瑞:電子人的成長之路——注重在實踐中學習

    嘉賓介紹:王培瑞,2013年7月畢業于西安工程大學自動化專業!參加工作后一直從事于自動化相關專業!擁有豐富的軟硬件開發測試經驗,注重在實踐中學習,善于應用不同的開發工具完成不同業務需求!曾就職于臺達
    的頭像 發表于 02-20 11:02 ?576次閱讀
    【社區之星】王培瑞:電子人的成長之路——注重<b class='flag-5'>在實踐中</b>學習

    虹科干貨 | 帶你全面了解“CAN總線錯誤”(四)——在實踐中生成和記錄CAN錯誤

    節點錯誤狀態,并通過實際的應用測試生成并記錄CAN錯誤。在之前發布的文章,我們介紹了CAN錯誤和錯誤處理的理論基礎,而在本篇文章,我們將在實踐中生成和記錄錯誤。
    的頭像 發表于 06-09 10:21 ?1652次閱讀
    虹科干貨 | 帶你全面了解“CAN總線錯誤”(四)——<b class='flag-5'>在實踐中</b>生成和記錄CAN錯誤

    SOME/IP協議的基本原理

    隨著汽車行業對于數據通信的需求不斷增加,SOME/IP作為支持汽車以太網進程和設備間通信的一種通信協議應運而生。根據研究[1]表明,第一代使用SOME/IP的汽車以太網包含了幾個交換機
    發表于 08-30 10:29 ?1426次閱讀
    <b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b>協議的基本原理

    some/ip協議是什么

    SOME/IP采用服務器-客戶端的服務通信模式,它提供了一種標準化的、可擴展的、靈活的方式來實現汽車電子控制單元(ECU)之間的通信。 隨著汽車電子系統變得越來越復雜,對實時性、安全性和可擴展性
    的頭像 發表于 02-16 17:19 ?2163次閱讀
    <b class='flag-5'>some</b>/<b class='flag-5'>ip</b>協議是什么