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

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

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

車載以太網(wǎng)的SOME/IP-SD協(xié)議了解與認識

電子工程師 ? 來源:ADAS與ECU之吾見 ? 作者:奮斗的農(nóng)民工 ? 2022-08-10 10:53 ? 次閱讀

前言

首先,請問大家?guī)讉€小小問題,你清楚:

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

SOME/IP-SD報文是如何發(fā)送與接收的呢?

SOME/IP-SD 存在哪幾種Entry Type呢?

SOME/IP-SD內(nèi)部狀態(tài)機轉(zhuǎn)換又是如何?

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

正文

通過之前的文章我們了解到了SOME/IP協(xié)議的基本組成與SOME/IP的具體工作過程,同時也提到了SOME/IP-SD在SOME/IP協(xié)議中所扮演的重要角色:發(fā)現(xiàn)服務與訂閱服務。鑒于SOME/IP-SD的重要性,本文將著重講解下SOME/IP-SD的幾類Entry Type的具體定義說明,SD報文的發(fā)送與接收流程,SD的狀態(tài)機解析,讓大家對SOME/IP-SD協(xié)議有個更為清晰的了解與認識。

SD Entry Type總結(jié)

Service Entries 通用需求

Service Entry使用的Type ID為0x00,0x01,使用的Entry報文格式為Format Type 1,其中Service Entries包含F(xiàn)indService,OfferService,StopOfferService三種。

如下圖1所示展示了Serve Entries的通用需求,該需求是針對接下來要講述的FindService,OfferService,StopOfferService的共性需求。

圖1 Service Entries共性

Find Service Entry設置

如下圖2所示為FindService Entry的各個Filed配置注意事項:

圖2 FindService Entry 配置

OfferService Entry設置

如下圖3所示為OfferService Entry的各個Filed配置注意事項:

圖3 OfferService Entry 配置

StopOfferService設置

為了通知Offer Service,必須使用StopOfferService Entry 必須使用,如下圖4為StopOfferService配置:

圖4 StopOfferService Entry 配置

EventGroup Entries通用需求

EventGroup Entries 目前僅用到Type ID為0x06, 0x07,使用的EventGroup Entry為Type 2。同時EventGroup Entries 包含SubscribeEventgroup,StopSubscribeEventgroup,SubscribeEventgroupAck以及SubscribeEventgroupNack四種。

如下圖5所示展示了EventGroup Entries的通用需求,該需求是針對接下來要講述的FindService,OfferService,StopOfferService的共性需求。

圖5 EventGroup Entry通用需求

SubscribeEventgroup設置

如下圖6為SubscribeEventGroup的配置注意事項:

圖6 SubscribeEventGroup配置

StopSubscribeEventgroup設置

如果需要停止訂閱EventGroup,那么就需要調(diào)用StopSubscribeEventGroup的Entry來停止。

如下圖7為StopSubscribeEventGroup的配置注意事項:

圖7 StopSubscribeEventGroup配置

SubscribeEventgroupAck設置

當Client 通過SubcribeEventgroup Entry來訂閱相關事件組時,如果Server確認滿足訂閱條件,那么就會通過SubcribeEventGroupAck來回復正響應,表示成功接受該訂閱,Client此次訂閱成功。

如下圖8為SubcribeEventGroupAck的配置注意事項:

圖8 SubscribeEventGroupAck配置

SubscribeEventgroupNack設置

當處在以下幾種情況下時,Client請求的SubcribeEventGroup將得不到正響應,而是會回復SubcribeEventGroupNack:

Service ID,Instance ID,EventGroup ID的組合未知;

需要的Tcp連接并沒有被客戶端發(fā)起;

Server端的資源使用過度問題;

參考的Option Entries存在錯誤,丟失,或者互相矛盾的點;

如下圖9為SubcribeEventGroupNack的配置注意事項:

圖9 SubscribeEventGroupAck配置

SD Message

了解了上述SD所有Entry Type的設置注意事項,那么也就意味著接下來就要知道如何將這些打包的SD報文發(fā)送出去以及如何接收并解析這些SD報文,接下來我們就來了解下SD Message 的發(fā)送與接收流程。

Tx Path

正如之前的SOME/IP相關文章所述,SD模塊無論是發(fā)送還是接收,都需要與一個十分重要的以太網(wǎng)上層抽象模塊SoAd打交道,自然其發(fā)送與接收報文的過程也就會涉及到兩個模塊間的函數(shù)調(diào)用關系,具體的發(fā)送流程如下:

S1:SD報文已按照SD報文格式組包成功;

S2:如果是單播,則通過調(diào)用SoAd_SetRemoteAddr設置目標地址;如果是多播,則需要先通過通過調(diào)用函數(shù)SoAd_GetLocalAddr獲得本地地址,然后通過SoAd_SetRemoteAddr函數(shù)設置目標地址;

S3:最后通過調(diào)用SoAd_IfTransmit將SD報文發(fā)送至總線上;

如下圖10為SD Message的發(fā)送時序圖,便于大家對SD的報文發(fā)送的各個環(huán)節(jié)有個直觀的認識與理解。

圖10 SD報文發(fā)送時序圖

Rx Path

同理,對于SD報文的接收也需要經(jīng)歷以下幾個基本環(huán)節(jié)才能夠獲取到數(shù)據(jù)至SD模塊并得到正確處理。

S1:當SoAd模塊接收到來自總線的SD報文時,就會調(diào)用SD模塊的回調(diào)函數(shù)Sd_RxIndication來通知SD模塊來處理數(shù)據(jù);

S2:通過接收到的RxPduId便可以為SD實例對象獲取對應的SoConId;

S3:通過調(diào)用函數(shù)SoAd_GetRemoteAddr并結(jié)合上述的SoConId來獲取遠程Server的地址;

S4:存儲報文與地址信息以便下一步處理;

S5:最后調(diào)用函數(shù)SoAd_ReleaseRemoteAddr()來重置SoConID以便下一次使用,同時接收到的Entry均會按照接收到的順序依次進行處理;

如下圖11為SD Message的接收時序圖,便于大家對SD的報文接收的各個環(huán)節(jié)有個直觀的認識與理解。

圖11 SD報文接收時序圖

對于接收環(huán)節(jié)如果是采用多播模式接收時,那么AUTOSAR規(guī)定為了防止由于各個接收節(jié)點幾乎同時的發(fā)送Response至總線所引起的總線負載突然猛增,因此通過一種延遲機制來防止現(xiàn)象的出現(xiàn):

對于ServerServices,即接收到FindService回復OfferService的時刻可以通過SdServerTimerRequestResponseMinDelay與SdServerTimerRequestResponseMaxDelay參數(shù)來控制;

對于ConsumedEventGroup,即接收到OfferService回復SubcribeEventGroup的時刻可通過SdClientTimerRequestResponseMinDelay與SdClientTimerRequestResponseMaxDelay來控制;

SD狀態(tài)機解析

SD狀態(tài)機可分為兩種:Server端狀態(tài)機與Client狀態(tài)機,每種狀態(tài)機均可以分為兩種狀態(tài):Down State與Available State。其中Available State可再進一步細分為Initial Wait Phase, Repetition Phase, Main Phase。

Server SD狀態(tài)機

首先我們來看下Server端的四種狀態(tài)機的轉(zhuǎn)換過程,如下圖12為Server端的通信階段總體review:

圖12 Server端的通信階段總體Review

如下圖13我總結(jié)了Server端SD各個狀態(tài)機的轉(zhuǎn)換關系以及轉(zhuǎn)換之間的若干條件,其中條件1與條件2為“或”的關系,并不是”與“的關系,每個Phase階段中發(fā)生的行為均體現(xiàn)在Action下面。

圖13 Server SD狀態(tài)機轉(zhuǎn)換圖

Client SD狀態(tài)機

首先我們來看下Client端的四種狀態(tài)機的轉(zhuǎn)換過程,如下圖14為Client端的通信階段總體review:

圖14 Client端的通信階段總體Review

如下圖13我總結(jié)了Client端SD各個狀態(tài)機的轉(zhuǎn)換關系以及轉(zhuǎn)換之間的若干條件,其中條件1,條件2,條件3為“或”的關系,并不是”與“的關系,每個Phase階段中發(fā)生的行為均體現(xiàn)在Action下面。

圖14 Client SD狀態(tài)機轉(zhuǎn)換圖

審核編輯:郭婷


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

    關注

    40

    文章

    5431

    瀏覽量

    171865
  • 狀態(tài)機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27555

原文標題:車載以太網(wǎng)之SOME/IP-SD專題篇

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

收藏 人收藏

    評論

    相關推薦

    TOSUN 車載以太網(wǎng)仿真測試解決方案

    TOSUN車載以太網(wǎng)仿真測試解決方案隨著自動駕駛、車聯(lián)網(wǎng)和智能化系統(tǒng)的廣泛應用,車載電子組件和傳感器的數(shù)量與復雜性都在持續(xù)增加,為了滿足這些更為復雜性的需求,車載
    的頭像 發(fā)表于 12-07 01:07 ?457次閱讀
    TOSUN <b class='flag-5'>車載</b><b class='flag-5'>以太網(wǎng)</b>仿真測試解決方案

    ICMPv6協(xié)議介紹#車載以太網(wǎng) #ipv6 #科普

    車載以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年12月04日 11:00:05

    以太網(wǎng)和TCP/IP的關系解析

    在現(xiàn)代計算機網(wǎng)絡中,以太網(wǎng)和TCP/IP協(xié)議棧是構(gòu)建網(wǎng)絡通信的基礎。以太網(wǎng)定義了局域網(wǎng)(LAN)中的數(shù)據(jù)鏈路層和物理層的技術標準,而TCP/
    的頭像 發(fā)表于 11-08 09:21 ?707次閱讀

    以太網(wǎng)協(xié)議的種類和特點

    以太網(wǎng)是一種局域網(wǎng)(Local Area Network, LAN)技術,它定義了一組用于在局域網(wǎng)中傳輸數(shù)據(jù)的規(guī)則和標準。以太網(wǎng)協(xié)議的種類和
    的頭像 發(fā)表于 11-08 09:10 ?1232次閱讀

    車載以太網(wǎng)線束傳輸性能——汽車線束故障定位實際測試結(jié)果分析#車載以太網(wǎng)

    車載以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年08月16日 18:13:19

    車載以太網(wǎng)與傳統(tǒng)以太網(wǎng)的區(qū)別

    車載以太網(wǎng)與傳統(tǒng)以太網(wǎng)在多個方面存在顯著的差異,這些差異主要體現(xiàn)在傳輸速率、實時性、可靠性、物理層標準、應用場景以及技術發(fā)展等方面。
    的頭像 發(fā)表于 07-25 11:12 ?1884次閱讀

    車載以太網(wǎng)的優(yōu)勢和應用

    車載以太網(wǎng)作為一種新興的車載網(wǎng)絡技術,正在逐漸成為汽車行業(yè)中的關鍵技術之一。其優(yōu)勢在于高帶寬、低延遲、高可靠性以及良好的兼容性和拓展性,這些特點使得車載
    的頭像 發(fā)表于 07-25 11:08 ?915次閱讀

    車載以太網(wǎng)性能優(yōu)化方案

    車載以太網(wǎng)開發(fā)過程中,我們最為常見的應用層協(xié)議主要是SOMEIP與DOIP兩大類協(xié)議,其中SOMEIP協(xié)議作為實現(xiàn)SOA架構(gòu)的一種重要實現(xiàn)
    的頭像 發(fā)表于 07-25 10:36 ?752次閱讀
    <b class='flag-5'>車載</b><b class='flag-5'>以太網(wǎng)</b>性能優(yōu)化方案

    CANape&VN5620監(jiān)控記錄以太網(wǎng)數(shù)據(jù)操作演示#車載以太網(wǎng) #CANape

    車載以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年06月11日 15:53:15

    使用VN5620監(jiān)控記錄以太網(wǎng)總線數(shù)據(jù)#車載以太網(wǎng) #CANape

    以太網(wǎng)硬件
    北匯信息POLELINK
    發(fā)布于 :2024年06月09日 16:45:04

    車載以太網(wǎng)硬件接口VN5620設備展示與介紹#車載以太網(wǎng)

    車載以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年05月31日 10:27:03

    車載以太網(wǎng)硬件接口VN5650--基于Network-based模式的配置過程#車載以太網(wǎng) #CANoe

    車載以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年05月15日 17:28:47

    車載以太網(wǎng)接口VN5650使用場景介紹#車載以太網(wǎng)

    以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年05月11日 17:58:05

    車載以太網(wǎng) | TSMaster的DoIP功能操作指南

    車載以太網(wǎng)診斷協(xié)議,DiagnosticsoverInternetProtocol簡稱為DoIP,可以通過以太網(wǎng)協(xié)議進行汽車診斷。DoIP是
    的頭像 發(fā)表于 04-13 08:21 ?1011次閱讀
    <b class='flag-5'>車載</b><b class='flag-5'>以太網(wǎng)</b> | TSMaster的DoIP功能操作指南

    車載以太網(wǎng)靜態(tài)架構(gòu)介紹

    AutoSAR是一種開放的、標準化的汽車電子軟件架構(gòu),旨在提高汽車電子系統(tǒng)的研發(fā)效率和質(zhì)量。車載以太網(wǎng)作為一種高速、可靠的通信技術,已經(jīng)成為現(xiàn)代汽車電子系統(tǒng)的關鍵技術之一。在AutoSAR中,車載
    的頭像 發(fā)表于 01-19 18:00 ?1074次閱讀
    <b class='flag-5'>車載</b><b class='flag-5'>以太網(wǎng)</b>靜態(tài)架構(gòu)介紹