色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

SOME/IP-SD有何作用

智能汽車電子與軟件 ? 來源:智能汽車電子與軟件 ? 作者:智能汽車電子與軟 ? 2022-10-24 11:00 ? 次閱讀

前言

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

你知道什么是SOME/IP SD嗎?

SOME/IP-SD有何作用呢?

SOME/IP-SD 包含哪些內容呢?

SOME/IP-TP 為什么會存在?

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

正文

總體介紹

車載以太網協議??偣部蓜澐譃槲鍖樱謩e為物理層,數據鏈路層,網絡層,傳輸層,應用層,其中今天所要介紹的內容SOME/IP就是一種應用層協議。 SOME/IP協議內容按照AUTOSAR中的描述,我們可以更進一步的拆分為三類子協議:應用層的SOME/IP標準協議,SOME/IP-SD協議以及TP層的SOME/IP-TP協議,這三部分內容相輔相成,完整詳細的闡述了SOME/IP協議的全部內容,是研究SOME/IP協議的必經之路。 通過上篇《一網打盡車載以太網之SOME/IP(上)》我們全面講解了SOME/IP標準協議的全部內容,想必大家已經對SOME/IP有了一個較為基礎的了解,接下來本文將著重講解剩余的兩部分協議內容:SOME/IP-SD協議以及TP層的SOME/IP-TP協議。 有關SOME/IP序列化內容限于篇幅有限,請聽下回分解,敬請關注!

SOME/IP-SD 主體功能

SD(Service Discovery)顧名思義為服務發現,具備發現服務的基本功能,這是從節點作為Client來考慮的,需要找到網絡上對應的服務;對應地,網絡中必然存在至少提供該服務的節點,該節點可被稱Server,因此這樣的供需場景就是SD協議工作的場景。 在這種供需場景中我們看到了提供服務,訂閱服務的過程,該過程如果用專業術語來講可稱為Subcribe/Publish模型,該模型涉及到Client與Server兩方,交互過程如之前文章所描述如下圖1所示: a11e9e24-5282-11ed-a3b6-dac502259ad0.png 圖1 SOME/IP-SD 交互過程 由上圖可知,Subribe/Publish的過程主要經歷以下四個階段:

對于需要服務的Client而言,通過FindService方式來發現當前網絡中存在的服務;

如果Server存在服務就會通過Offer Service方式來廣播通知自身存在的服務;

Client根據已發現的服務中通過Subcribe EventGroup的方式來訂閱相關事件,同時在Server段發現Client的訂閱滿足條件則會回復正確的肯定響應;

當Client訂閱成功后,Server端便會按照服務的基本屬性來事件型或者周期性提供Client端相關的服務;

總而言之,SOME/IP-SD就是用于定位服務,檢查服務可用性以及部署與發布服務句柄的一種應用層協議,該協議只能運行在UDP之上,服務發現報文格式與SOME/IP標準協議一致,且Message ID固定為0xFFFF8100,其中Service ID是0xFFFF,Method ID為0x8100。

SOME/IP-SD協議解析

SOME/IP-SD協議頭 首先,依照慣例我們先來看下SOME/IP-SD的報文格式如下圖2所示: a148274e-5282-11ed-a3b6-dac502259ad0.png 圖2 SOME/IP-SD Message Format 一般而言,如果沒有特別要求,在SD報文格式中的內容均按照大端方式傳輸。 由于SOME/IP-SD報文實際上也只是SOME/IP報文的一種,只不過是在SOME/IP標準協議的基礎上擴展了Entry,Option等字段,其中Entry用于同步服務實例的狀態以及發布/訂閱關系的管理,Options則用于傳輸Entry的附加信息。 接下來,我們將針對上述的協議中各種字段為大家一一解釋如下表1: a16e9afa-5282-11ed-a3b6-dac502259ad0.png 表1 SOME/IP-SD 協議內字段解釋 ? Entry Array 如上表1中所述,Entry Array按照SD的定義可分為以下兩種:

Service Type:用于FindService,OfferService,StopOfferService這幾種場景;

EventGroup Type:用于 SubscribeEventgroup, StopSubscribeEventgroup,SubscribeEventgroupAck,SubscribeEventgroupNack這幾類場景。

如下圖3所示,首先我們介紹下為Service Entry Array中定義的各個字段內容: a299acc6-5282-11ed-a3b6-dac502259ad0.png 圖3 Service Entry Array定義 對上述Service Entry Array定義的各個Field解釋說明如下表2所示: a2c69e84-5282-11ed-a3b6-dac502259ad0.png 表2 Service Entry Array字段解釋說明 介紹完Service Entry Array,相比之下EventGroup Entry Array又存在哪些差異呢? 如下圖4為EventGroup Entry Array的各個字段內容的定義: a36785e2-5282-11ed-a3b6-dac502259ad0.png 圖4 EventGroup Entry Array定義 相比Service Entry Array,EventGroup Entry少了Minor Version,但是多出了Counter以及EventGroup ID內容,接下來我們將對上述EventGroup Entry Array定義的各個Field解釋說明如下表3所示: a386ca9c-5282-11ed-a3b6-dac502259ad0.png 表3 EventGroup Entry Array字段解釋說明 ? Option Array Option Array作為SOME/IP-SD報文最后的部分,其主要作用就是為了提供在通信的過程中提供下附加信息,如配置信息,IP地址,端口號等。不過其作為SD報文的一部分也存在著自身的字段內容。 AUTOSAR將Option Array主要分為以下三種:

Configuration Options用于配置通信過程的必要的信息

Endpoint Options(IPV4/IPV6):用于傳遞IPV4或者IPV6的Endpoint信息(IP地址+Port號)以及使用的傳輸層協議;

Multicast Options(IPV4/IPV6):用于廣播IPV4或者IPV6的IP地址及Port號,其中傳輸層協議只能使用UDP協議;

Configuration Options 接下來我們來對這三種Option進行一一解讀。首先來看看Configuration Option的字段定義: a4114e74-5282-11ed-a3b6-dac502259ad0.png 圖5 Configuration Option 字段定義 ? 注意:configuration options僅適用于任意Service ID的Service Entry Array以及Service ID為0xFFFE的EventGroup Entry Array。 針對上述字段解釋如下表4所示: a424613a-5282-11ed-a3b6-dac502259ad0.png 表4 Configuration Option Array 字段解釋說明 對于那些非標準的SOME/IP 服務,由于不能夠被Service ID進行標識,此時就需要通過一個key “otherserv”的值來進行標識,這類服務則可通過使用0xFFFE作為Service ID同時附帶otherserv的value的configuration option來完成雙方的通信。 IPV4 Endpoint Option 如下圖6為IPV4 Endpoint Option的字段定義: a464f650-5282-11ed-a3b6-dac502259ad0.png 圖6 IPV4 Endpoint Option字段定義 IPV6 Endpoint Option 如下圖7為IPV6 Endpoint Option的字段定義: a48ac718-5282-11ed-a3b6-dac502259ad0.png 圖7 IPV6 Endpoint Option字段定義 ? IPv4 Multicast Option 如下圖8為IPv4的Multicast Option各字段內容定義: a4ced5f2-5282-11ed-a3b6-dac502259ad0.png 圖8 IPv4 Multicast Option ? IPv6 Multicast Option 如下圖8為IPv6的Multicast Option各字段內容定義: a4e59a8a-5282-11ed-a3b6-dac502259ad0.png 圖9 IPv6 Multicast Option定義 ? IPv4 SD Endpoint Option 如下圖10為IPv4 SD Endpoint Option的字段定義: a52f83de-5282-11ed-a3b6-dac502259ad0.png 圖10 IPv4 SD Endpoint Option定義 ? IPv6 SD Endpoint Option 如下圖11為IPv6 SD Endpoint Option的字段定義: a55c81b8-5282-11ed-a3b6-dac502259ad0.png 圖11 IPv6 SD Endpoint Option定義 由于上述六種IPV4與IPV6字段內容大體結構一致,因此我們將該兩者放在一起來對各字段內容進行解釋說明: a5b07322-5282-11ed-a3b6-dac502259ad0.png 表5 IPv4/IPv6 六類Option字段解釋說明 ?

SD 狀態機

SD狀態機狀態機這部分由于涉及的內容細節較多且較為獨立,同時限于篇幅有限,后期會專門針對SD狀態機,SD報文接收發送等環節給大家單獨分享,敬請期待SOME/IP-SD狀態機專題篇!

SOME/IP-TP主體功能

我們知道CAN-TP是用來對當總線CAN數據過大時,就需要對CAN整包數據進行分割拆包進行發送,這個時候發送方的TP層就起作用,同理對于接收方而言,也需要將分割的數據包進行組包完成整包數據的重組還原。 因此,舉一反三,我們便可以知道SOME/IP-TP模塊的主體功能就是為了實現對應用層發送數據過大時進行的必要拆包與組包的工作,進而完成大量數據包的發送與接收。 SOME/IP作為一種應用層協議,既可以運行在TCP之上,也可以運行在UDP之上,由于TCP協議本身支持發送大量數據同時還支持流控等特點因此無需用到SOME/IP-TP,該協議僅針對運行在UDP協議基礎上的SOME/IP協議。 該模塊作為AUTOSAR中定義的標準模塊,在AUTOSAR中與各個模塊的交互關系又是如何的呢? 如下圖12所示,則較為清晰的表明了SOME/IP-TP在CP AUTOSAR的具體位置以及與其他模塊的交互關系: a5c2d53a-5282-11ed-a3b6-dac502259ad0.png 圖12 SOME/IP-TP在AUTOSAR的位置及交互關系 從圖中可以直接看出SOME/IP-TP直接與PDUR層進行交互,當上層應用模塊發送大量數據時,會通過PDUR發送數據給到SOME/IP-TP模塊進行拆包,拆分的包將按照協議格式再通PPDUR模塊依次發送。 對于接收方而言,則是接收來自PDUR的報文,通過SOME/IP-TP模塊進行組包,組包后的結果給到PDUR,然后由PDUR再傳輸至上層應用模塊。

SOME/IP-TP協議解析

了解了SOME/IP-TP的主體功能以及大概的工作過程,接下來我們一起解析下SOME/IP-TP協議。 SOME/IP-TP作為SOME/IP報文的一種,因此前面的SOME/IP Header則保持一致,只是SOME/IP-TP存在自身的協議頭,讓我們一起來學習一下。 SOME/IP-TP協議頭 如下圖13為SOME/IP-TP層的協議頭字段內容: a5e9053e-5282-11ed-a3b6-dac502259ad0.png 圖13 SOME/IP-TP 協議頭字段內容 針對上圖中每個字段內容地詳細解釋請參考上篇鏈接《一網打盡車載以太網之SOME/IP(上)》 其中Message Type更為細節地定義如下圖14所示: a60017ce-5282-11ed-a3b6-dac502259ad0.png 圖14 Message Type 字段內容 ?

當且僅當TP-Flag==1時,OffsetField,Reserved Field以及More Segement Flag才會存在;

當TP-Flag == 1時,表示當前SOME/IP報文為被分割的報文,即Segement報文;

其中Offset Field表示當前已發送或者接收的數據量,其基本單位為16Byte,如該值等于92,表示截至目前為止已發送了92X16=1472字節長度的Payload。同時該長度并不包含SOME/IP header的長度。 其中Reserved Field為未來預留,目前默認為0即可; 其中More Segments Flag用來表示是否還有Segement報文,當其值為1時表示還有剩余的Segement,當其值為0時則表示沒有剩余的Segement,當前Segement就是最后一條。 Tx Path 對于發送一個基于UDP完整的SOME/IP報文而言,報文的發送需要經歷以下幾個模塊:

應用層調用Rte_Send函數來實現數據SOME/IP序列化;

通過LdCom模塊間接調用SomeIpTp_Transmit來開啟發送;

通過循環調用SOME/IP-TP的主函數來遍歷發送每一個Segement;

同時發送出去的報文也會回復Txconfirmation中斷最終傳遞至RteLdCom模塊;

具體發送流程中的函數調用關系如下圖15所示: a640aff0-5282-11ed-a3b6-dac502259ad0.png 圖15 Tx Path函數調用關系圖 ? Rx Path 針對被分割的segment,接收方需要通過下列幾個步驟進行接收:

通過SoAd模塊來獲取來自總線的SOME/IP數據;

PDUR模塊接收到來自SoAd模塊的數據后會觸發SomeIpTp_Rxindicaion表明存在segement數據,準備開啟接收;

SOME/IP-TP模塊通過調用PDUR_SomeIpTpStartOfReception開啟接收第一個Segement;

剩余的Segment則可以通過不斷觸發PDUR_SomeIpTpCopyRxData來接收,最終傳送至RTE層;

當最后一個segment被接收到后,則通過調用函數PduR_SomeIpRxIndication來完成最終的接收并使得RTE反序列化給到應用層讀?。?/p>

具體接收流程的函數調用關系如下圖16所示: a6736efe-5282-11ed-a3b6-dac502259ad0.png 圖16 Rx Path函數調用關系圖??

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

    關注

    14

    文章

    7594

    瀏覽量

    89083
  • 數據鏈
    +關注

    關注

    2

    文章

    39

    瀏覽量

    15807
  • 車載以太網
    +關注

    關注

    18

    文章

    226

    瀏覽量

    23052

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

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

收藏 人收藏

    評論

    相關推薦

    SOME/IP協議安全攻擊

    隨著汽車行業對于數據通信的需求不斷增加,SOME/IP作為支持汽車以太網進程和設備間通信的一種通信協議應運而生。
    的頭像 發表于 08-08 15:25 ?874次閱讀
    <b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b>協議安全攻擊

    PID是什么意思?PID作用

    PID是什么意思?PID作用?基于直流電機增加編碼器如何去實現閉環PID控制?
    發表于 08-31 06:38

    Vivado設計套件作用

    Vivado設計套件作用?Verilog HDL是什么?STM32按內核架構分為哪些?
    發表于 10-11 07:22

    TCP/IP協議棧功能

    TCP/IP協議棧是什么?TCP/IP協議棧功能?
    發表于 10-14 06:39

    Nmap是什么?主要作用

    什么是服務器端?Nmap是什么?主要作用?DES是什么?
    發表于 10-19 07:07

    主控總線哪些呢?作用

    主系統是由哪些部分構成的?主控總線哪些呢?作用?
    發表于 10-26 07:00

    DCD是什么?DCD作用

    DCD是什么?DCD作用?STM32是如何進入中斷函數的?
    發表于 11-26 08:10

    TCP/IP模型的結構是怎樣的?TCP/IP協議作用

    TCP/IP模型的結構是怎樣的?TCP/IP協議作用
    發表于 12-23 06:10

    TPL是什么?作用

    TPL是什么?作用?TPL相關的源文件哪些呢?
    發表于 03-02 07:18

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

    /IP-SD的重要性,本文將著重講解下SOME/IP-SD的幾類Entry Type的具體定義說明,SD報文的發送與接收流程,SD的狀態機解
    的頭像 發表于 08-10 10:53 ?3062次閱讀

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

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

    SOME/IP-SD作用

    車載以太網協議棧總共可劃分為五層,分別為物理層,數據鏈路層,網絡層,傳輸層,應用層,其中今天所要介紹的內容SOME/IP就是一種應用層協議。
    的頭像 發表于 10-24 10:58 ?1911次閱讀

    SOME/IP協議的基本原理

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

    什么是MPLS?特點?與SD-WAN區別?

    什么是MPLS?特點?與SD-WAN區別? MPLS是多協議標簽交換的縮寫,是一種網絡傳輸協議。它被設計用于提高數據包轉發的速度和效
    的頭像 發表于 12-27 14:09 ?781次閱讀

    some/ip協議是什么

    SOME/IP采用服務器-客戶端的服務通信模式,它提供了一種標準化的、可擴展的、靈活的方式來實現汽車電子控制單元(ECU)之間的通信。 隨著汽車電子系統變得越來越復雜,對實時性、安全性和可擴展性
    的頭像 發表于 02-16 17:19 ?2284次閱讀
    <b class='flag-5'>some</b>/<b class='flag-5'>ip</b>協議是什么
    主站蜘蛛池模板: 国产一区二区青青精品久久| 久久精品九九亚洲精品天堂| 久久久久综合网| 亚洲成人一区二区| 国产精品久人妻精品| 午夜aaaa| 国产精品无码视频一区二区| 日本一卡精品视频免费| 色综合久久88色综合天天提莫| 最近中文字幕在线看免费完整版| 九色PORNY蝌蚪视频首页| 亚洲一日韩欧美中文字幕在线| 精品无码三级在线观看视频| 亚洲中文字幕永久在线| 精品亚洲一区二区在线播放| 中文字幕福利视频在线一区| 女教师公车痴汉在线播放| 波多野结衣二区| 婷婷四房播客五月天| 健身房被教练啪到腿软H | 男人插曲女人身体视频| 99精品视频在线观看| 青柠高清在线观看完整版| 高h肉文np| 亚洲男人天堂2018av| 久久人妻熟女中文字幕AV蜜芽| 97色伦97色伦国产| 日本色呦呦| 簧片在线观看| 99亚洲精品自拍AV成人软件 | 男助理憋尿PLAY灌尿BL出去| 成人在线免费视频播放| 晓雪老师我要进你里面好爽| 久久久久久九九| 成人国产在线看不卡| 亚洲精品一区二区在线看片| 免费看的一级毛片| 国产精品久久免费视频| 在线观看免费视频播放视频| 日本又黄又裸一级大黄裸片| 黄色a三级三级三级免费看|