全职猎人1999_日韩综合社区_久草播放_黄色a一级一级一级免费看_午夜在线视频一区二区三区_国产日韩精品SUV

400-821-6015
行業資訊
您當前的位置:首頁 ? 行業資訊 ? 行業資訊
內部資訊行業資訊

AUTOSAR中的服務發現模塊(SOME/IP SD)的規范與實例分析

發布日期:2024-12-06

作者 | 不可說

出品 | 汽車電子與軟件


#01 引  入          

      服務發現模塊(Service Discovery Module)的主要任務是在車內通信中管理服務(functional entities)的可用性,這些服務被稱為功能實體,并控制事件消息的發送行為。這一機制確保僅將事件消息發送給需要它們的接收方(即采用發布/訂閱模式)。此處描述的解決方案就被稱為SOME/IP-SD(基于IP的可擴展面向服務中間件 - 服務發現,Scalable service-Oriented MiddlewarE over IP - Service Discovery)。                

      通過服務發現功能,不同的電子控制單元(ECU)可以提供服務實例,并在車輛網絡中查找可用的服務實例。一個ECU可以停止提供之前提供的服務實例,之后對該服務實例的查找將得不到響應。服務實例是由其服務接口定義的服務的單個實現。                

      除了管理服務實例的狀態外,服務發現還能控制發送一種特殊消息,即事件消息。這些事件消息被分組到事件組中,服務發現可以以發布/訂閱的方式開啟或關閉這些事件組,從而開啟或關閉該事件組中事件的發送和接收。           



#02 SOME/IP SD對不同ECU角色的職責  

      ECU的服務發現模塊在處理服務器服務和客戶端服務時扮演著不同的角色,并需要執行相應的操作來確保服務的正確提供和查找。   

      一個ECU需要處理兩種不同類型的服務:
      服務端服務(Server Services):本地ECU向車輛的其他部分提供服務器服務實例(即位于本地的服務實例),并可以被視為該服務實例的服務端。
      客戶端服務(Client Services):本地ECU可能會使用車輛內另一個ECU提供的服務器服務實例,并可以被視為該服務實例的客戶端。

      對于服務端服務,本地ECU的SOME/IP SD模塊(擔任服務器角色)需要執行以下操作:

      - 當服務可用時(即提供服務的軟件組件(SWC)準備就緒,且服務在當前ECU狀態下可用)提供本地服務。

      - 當服務不再可用時,撤回本地服務的提供(停止提供)。

      - 響應其他ECU的查找請求。

      對于客戶端服務,本地ECU的服務發現模塊(擔任客戶端角色)需要執行以下操作:

      - 根據配置監聽提供的服務和查找請求,并將這些信息存儲在易失性存儲器中。

      - 監聽停止提供的服務信息,并根據配置將這些信息存儲在易失性存儲器中。

      - 根據當前ECU及其軟件組件(SWC)的狀態發送查找請求。

      服務發現同樣可用于管理發布/訂閱(Publish/Subscribe)關系。在基于服務發現的發布/訂閱應用場景中,一個ECU(作為具有已消費事件組的發布/訂閱客戶端)對從另一個ECU(作為具有事件處理器的發布/訂閱服務器)接收某些數據(即訂閱)感興趣。          

      雖然訂閱關系在服務發現(SD)消息中明確定義,但發布關系則基于服務實例本身的可用性(即提供服務條目)。基于所提供的服務實例,發布/訂閱客戶端可通過訂閱事件組條目進行訂閱。此時,發布/訂閱服務器將利用此訂閱關系,將發布/訂閱客戶端注冊為對訂閱中指定的某些信息感興趣的方,并在發生某些事件或超時后,開始將這些信息發送給發布/訂閱客戶端。             

      為進行優化,服務發現支持使用多播消息而非每個客戶端的單播消息,將事件消息發送給多個客戶端。但請注意,服務器端和客戶端預先配置的多播之間存在差異:          

      - 如果SdServerService(服務端服務)為每個事件處理器預先配置了多播地址和端口(即所謂“事件處理器多播端點”),則當訂閱了具有不同端點信息的SdClientServices(客戶端服務)達到閾值(SdEventHandler MulticastThreshold,事件處理器多播閾值)時,SdServerService將切換至此多播地址和端口。

      - 如果SdClientService(客戶端服務)使用多播地址和端口(即所謂“已消費事件組多播端點”)進行了訂閱,則SdServerService在訂閱已消費事件組多播端點(多播地址和端口)時,會向其發送事件。


圖片   



#03 SD流程

      服務發布流程  


圖片


      Down Phase

      服務處于不可用狀態

      

      Initial Wait Phase

      服務準備完成后, 進入該階段, 延遲一定時間后發送服務發布報文

 

      Repetition Phase

      重復發送服務發布報文, 重復次數由配置參數決定, 此階段收到服務發現請求后,通過服務發布報文進行應答

 

      Main Phase

      周期性發送服務發布報文, 周期時間由配置參數決定, 此階段收到服務發現請求后,通過服務發布報文進行應答    


      服務發現流程  


圖片


      Down Phase

      服務未被應用請求

 

      Initial Wait Phase

      應用發起服務請求后進入該階段


      Repetition Phase

      重復發送服務發現報文, 重復次數由配置文件參數REPETITION_MAX決定, 收到服務發布報文后, 停止發送服務發現報文


      Main Phase

      不再重復發送服務發現報文, 每次收到服務發布報文后, 觸發服務訂閱請求報文。              

      服務訂閱流程  


圖片          

  • 服務發現
  • 連接建立
  • 注冊服務
  • 事件通知
              

#04 SOME/IP SD協議規范


圖片
服務發現消息格式
      SOME/IP SD中的Message ID是固定的字段:0xFFFF8100;
      Length占用32bits位,其數值表示從Request ID到報文最尾端的字節數;

      Request ID 由Client ID 和Session ID 組成。雖然Client ID 不用于服務發現,但Session ID 用于檢測車輛中其他服務發現實例的重啟或重啟,以修復服務發現模塊的本地狀態。在初始化 Service Discovery Module 后, ECU 發送的消息的 Session ID應為0x0001。          

      Protocol Version 字段是用來描述當前SOME/IP協議版本,目前是0x01;

      Interface Version 字段是用來描述當前SOME/IP服務的版本;
      Message Type 字段用來區分 SOME/IP 消息的類型, SOME/IP-SD 僅僅使用事件消息,因此固定為0x2;

      Return Code用于表示請求是否已成功處理。這不適用于SOME/IP-SD;因此返回碼被靜態設置為0x00。             

      SOME/IP SD從Message ID到Return Code字段的格式與SOME/IP 協議格式是一致的;后面的字段才是SOME/IP SD獨有的。          

      Flag  

      使用Flags字段啟動SOME/IP-SD標頭。它用于發送全局服務發現信息,其中包括當前上次重新啟動的狀態以及接收單播消息的能力。

      如果服務4端或客戶端通過評估通信方發送的SOME/IP-SD消息的會話ID(Session ID)和重啟標志(Reboot Flag)檢測到重啟,則受影響的通信本地狀態將失效,并應執行以下操作:          

      客戶端檢測到服務端重啟時的處理:

      1)如果客戶端檢測到服務端重啟,并且該客戶端正在使用該服務端的服務,則客戶端應將此次重啟視為接收到“停止提供服務”(StopOffer)消息。

      2)如果為該服務配置了SdClientServiceTcpRef,則活動客戶端應通過調用SoAd_CloseSoCon()函數并設置參數“abort”為TRUE來關閉相應的TCP連接。


      服務器檢測到客戶端重啟時的處理:


      如果服務器檢測到客戶端重啟,并且該客戶端正在使用該服務端的服務,則服務端應將此次重啟視為接收到“停止訂閱事件組”(StopSubscribeEventgroup)消息。          

      Reserved  

      保留的字段,當前沒有實際含義。

      Length of Entries Array  

      該字段值表示下面Entries Array字段的大小,單位為byte。   

      Entries Array  

      該字段大小是浮動的,并且有兩種類型,一種是服務Entries,一種是事件組Entries

      

      服務Services Entries

圖片
  • Type為0x00時,表示FindService;為0x01時,表示OfferService和StopOfferService
  • Index 1st options 標明屬于這個Entry的第一個option的起始索引序號,從0開始計算;Index 2st options 標明屬于這個Entry的第二個option的起始索引序號,從0開始計算;#of opt 1表明該entry有幾個第一組option;#of opt 2表明有幾個第二組option。
  • 該類型Service ID字段應攜帶服務的Service ID,根據是服務端還是客戶端,使用參數SdServerServiceID或SdClientServiceID進行靜態配置。
  • Instance ID字段應攜帶服務的Instance ID,根據是服務端還是客戶端,使用參數SdServerSer-viceInstanceID和SdClientServiceInstanceID靜態配置。
  • Major Version字段應包含SdServerServiceMajorVersion或者SdClientServiceMajorVersion,這取決于該條消息是服務端發送的還是客戶端發送的。
  • TTL字段定義了使用參數SdServerTimer TTL和SdClientTimer TTL配置的服務器條目的生存期(秒),但TTL為0的Stop Entries除外。
  • Minor字段應攜帶SdServerServiceMinorVersion或者SdClientServiceMinorVersion,這些都是在服務設計階段就已經規范好的。
          Eventgroups Entries   
圖片
      Service ID、Instance ID、Major Version、TTL與Services Entries中定義是一致的;
      Type為0x06時,表示SubscribeEventgroup和StopSubscribeEventgroup;為0x07時,SubscribeEventgroupAck和SubscribeEventgroupNack;
      Counter用于區分同一訂閱者的相同訂閱事件組。如果不使用,設置為0x0;
      Eventgroup ID字段應包含使用參數SdConsumerEvent GroupID配置的事件組的ID,也是在通信設計階段定義好的事件組ID。          

      Length of Options Array  

      該字段值表示下面Options Array字段的大小,單位為byte。          

      Options Array  

      Options Array也是有多種類型的:
      Configuration Option

圖片

      Type為0x1;

      Configuration Options Array可以配置服務發現消息中條目的其他屬性。可以使用配置選項傳輸0到n個配置項。這些配置項可以包括例如主機或服務的名稱;如:   

圖片          

      IPv4 Endpoint Option

圖片
      Type為0x4;

      該Option傳輸單播IP地址、第四層協議(如UDP或TCP)和端口號;從而獲取與服務通信所需的信息。當接收到提供服務并傳輸IPv4選項的服務發現消息時,接收此消息的ECU可以通過更新Socket連接,動態配置套接字適配器以使用此服務。          

      IPv4 Multicast Option

圖片
      Type為0x14;

      IPv4多播選項由SdServerService或者SdClientService用于通告其配置的事件多播端點;

      - 如果用作服務端的多播端點,則SdServerService會聲明IPv4多播地址、傳輸層協議(ISO/OSI第4層)和端口號,多播事件和多播通知事件將發送到這些端口。

      - 如果它用作客戶端事件組多播端點,則SdClientSer指示IPv4多播地址、傳輸層協議(ISO/OSI第4層)和端口號,SdClient期望在其中接收事件。作為傳輸層協議,只支持UDP。  

      IPv4 SD Endpoint Option
圖片
      Type為0x24;

      IPv4 SD端點選項傳輸發送方SD實現的端點(即IP地址和端口)。這用于在無法使用IP地址和/或端口號的情況下標識SOME/IP-SD實例。          

      Option也支持 IPv6 Endpoint Option、IPv6 Multicast Option、IPv6 SD Endpoint Option,但是在車載通信中,IPv4就足夠了,并且通常會禁用IPv6,因此此處不介紹IPv6相關的Option。          



#05 通信實例分析 

      第一個(offer)  


圖片
      Length of Entries Array為0x10,表示Entry有16 bytes大小。只有一個Entry,type為0x01,也就是歸屬于Services Entries,TTL不為0,表示offer service,即表示服務發布,#opt1值為1,表示有一個option;該服務的服務id為0x12、實例id為0x1,設置的ttl為3,服務主版本為1、次要版本為0。   
      Length of Options Array為0xc,表示Option共計12 bytes大小。該option信息是上面的Entry的信息補充。Length為0x9,Type為0x4,表示這個是IPv4 Endpoint Option;IP地址解析為192.168.60.4,對應原始數據為c0 08 3c 04,也表明了L4層使用的是TCP(0x0006)。
      最后的ox7725則是表示端口號,即30501。          

      第二個(Subscribe)  


圖片
      Length of Entries Array為0x10,表示Entry有16 bytes大小。只有一個Entry,type為0x06,也就是歸屬于Eventgroups Entries,TTL不為0,表示Subscribe Eventgroup,即表示服務事件組的訂閱,#opt1值為1,表示有一個option;該服務的服務id為0xd、實例id為0x1,設置的ttl為16777215,即0xffffff,表示訂閱一直有效,不過一般應該避免這樣設置。服務主版本為1、訂閱的服務實例ID為1。
      Length of Options Array為0xc,表示Option共計12 bytes大小。該option信息是上面的Entry的信息補充。Length為0x9,Type為0x4,表示這個是IPv4 Endpoint Option;IP地址解析為192.168.60.1,對應原始數據為c0 08 3c 01,也表明了L4層使用的是TCP(0x0006)。   
      最后的0x771b則是表示端口號,即30491。
上海創程車聯網絡科技有限公司版權所有 滬ICP備11045498號-1   技術支持:網站建設
主站蜘蛛池模板: 国产色婷婷精品免费视频|#NAME?|亚洲综合欧美|综合亚洲精品|黑猫=aV第一福利网站|日韩欧美中文字幕一区二区三区 | 久久国产精品精品|#NAME?|色免费观看|日韩乱码人妻无码中文视频|亚洲天堂777|天堂成人 | 日日噜噜夜夜狠狠扒开双腿|欧美人成在线观看|美丽的姑娘免费观看在线播放|欧美性猛交xxxx乱大交密桃|亚洲精品国产字幕久久麻豆|日本裸交xx╳╳137大胆 | 日韩大片免费观看|成年免费在线视频|精品美女一区二区|不卡在线一区二区|波多野结衣绝顶大高潮|成人精品久久日伦片大全免费 | 亚洲精品自拍偷拍视频|jk校花呻吟迎合娇躯白嫩|国产一级免费看视频欧美激情|国产精品香港三级国产=av|99热最新在线|亚洲国产色播=aV在线 | 视频麻豆|91嫩草在线免费观看|久久国产午夜|黑人与日本少妇J=aP=aNESE|免费大片黄在线观看|91色一区二区三区 | 亚洲精品=a级九色|99在线啪|欧美中文视频|亚洲精品国产一区二区色欲影院|精品久久久久久亚洲精品|性欧美free德国极品 | 国产人妖在线|国产午夜福利在线播放|亚洲国产成人精品久久久国产成人|高柳の肉嫁动漫在线播放|日韩久久精品一区二区三区|精品偷自拍另类在线观看 | 青青青在线视频国产|亚洲精华国产精华液|伊人网综|国产免费久久精品久久久|一本丁香综合久久久久不卡网站|国产毛片精品国产一区二区三区 | 91精品一区二区三区在线|情侣偷拍在线一区|天堂网在线.www天堂|成人=a毛片免费全部播放|日本国产一区二区|美女被日在线观看 | j=ap=anese熟睡侵犯|无码精品日韩中文字幕|国产黄色在线看|欧美高清g=ayxxx|日韩每日更新|777777影院 | 91看片网页版|郎在远方免费观看|色偷偷噜噜噜亚洲男人|国产成人免费在线观看不卡|欧美国产日韩=a在线观看|韩国在线观看=av | 亚洲国产精品v=a在线观看麻豆|成人羞羞无遮挡免费网站|久久人人看|久久综合网=av|一区二区三区久久|精品视频在线视频 | 色综合区|日本免费三片免费观看东热|99re免费精品视频|97在线观看免费观看|超碰超在线|色36cccwww在线播放 | 天天看片导航|又粗又猛又黄又爽无遮挡|人妻无码专区一区二区三区|国产l精品国产亚洲区久久|少妇被又大又粗猛烈进出视频|国产精品夜色一区二区三区 | 12一14幻女bbwxxxx在线播放|自拍偷拍第5页|成人小视频免费看|在线看黄色片|亚洲精品国产品国语在线观看|欧美中文字幕在线视频 | 五月天色中色|蜜桃精品视频在线|日本特级=aⅴ一级毛片|二区三区4区5区6区人妻|成人毛片软件|#NAME? | 国产精拍|日日爱爱|少妇裸体淫交免费看片|色婷婷五月综合欧美图片|免费国产成人高清在线观看不卡|男人天堂导航 | 午夜dj福利|免费看黄在线观看|天堂=a在线|亚洲中文字幕人成影院|亚洲精品久久久久77777|天天躁夜夜踩很很踩2022 | HD性丰满白嫩白嫩少妇=aV|免费成人黄色大片|久久精品中文字幕|久久无码国产专区精品|欧美=a∨|91精品一久久香蕉国产线看观看软件 | 好男人日本社区www|国产精品乱码一区二三区小蝌蚪|欧亚精品一区|国产欧美在线免费观看|我爱草逼网|乱码专区一卡二卡国色天香 | 国产香蕉在线观看|亚洲=aV无码乱码国产精品久久|最新中文字幕=av无码专区不卡|日韩午夜大片|精品视频久久久久久|性少妇MDMS丰满HDFILM | 99久久.com|久久大香香蕉国产拍国|俺去俺来也在线WWW色官网|#NAME?|伊人88|亚洲成人v | 亚洲综合自拍|国产一区二区三区久久|亚洲男人第一=aV网站|精品黄网|成年免费视频|欧美三个奶波霸 | 国产内谢|成人=av高清|91在线成人影院|国产性猛交xxxx免费看|一级做=a爰片久久毛片苍井优|麻豆视频在线 | 国产最新网站|亚洲美女一区|亚洲V欧美V国产V在线观看|国产精品乱码久久久久久1区2区|大地影视资源在线观看|国产精品扒开腿做爽爽爽日本无码 | 日本黄色一区|人成免费网站|中文字幕第八页|亚洲欧美变态另类综合|日日草天天干|亚洲福利中文字幕在线网址 | yell视频在线观看免费|www.三级影片.com|午夜啪啪片|色爱亚洲|顶级欧美熟妇高潮xxxxx|紧缚调教一区二区三区视频 | 日本三级精品视频|国产人妻人伦精品无码|国产毛片久久久久久|奇米网首页|亚洲精品久久久打桩机小说|欧美一区二区三区成人 | 一级做=a免费视频|这里只有精品一区二区国产|国产熟女乱子视频正在播放|日韩h在线观看|日韩精品免费视频|麻豆成人影院 | 99热久只有|九一免费视频|中日韩无砖码一线二线|日韩免费成人=av|国产在线中文字幕|国产=aV麻豆M=aG剧集 | 亚洲v=a欧美v=a国产v=a黑人|蜜臀=av午夜一区二区三区gif|69人人|国产精品免费大片|亚洲日产=av中文字幕|国产精品香蕉成人网在线观看 | 国产欧美一区二区三区在线|朋友的丰满人妻中文字幕|中文字幕乱伦视频|日韩黄色三级|台湾综合色|伊人影院久久 国产麻豆另类=aV|极品久久久久|桃花色综合影院|国产夜恋视频在线观看|美女=av免费在线观看|久久久国产一区二区三区四区 | 999精品视频一区二区三区|内射一区二区精品视频在线观看|成人无码区免费=a∨|狠狠操五月天|久久亚洲一区二区三区成人国产|日韩欧无码一区二区三区免费不卡 | 国产色婷婷精品免费视频|#NAME?|亚洲综合欧美|综合亚洲精品|黑猫=aV第一福利网站|日韩欧美中文字幕一区二区三区 | 超碰人人草人人干|精品国产伦一区二区三区观看方式|无码中文字幕人妻在线一区二区三区|隔壁老王国产在线精品|在线欧美精品一区二区三区|91在线视频九色 | 无码免费婬=aV片在线观看|免费黄色小视频在线观看|eeuss鲁丝片=aV无码|国产精品videossexohd|亚洲欧美成人一区二区在线|久久www免费人成网站 | 影音先锋99|成年女人免费大片视频|天天色草|特黄=a=a级毛片免费视频播放|3级片免费|在线观看中文字幕视频 | 九九爱精品|无码精品=a∨在线观看|岛国视频在线|3D动漫精品啪啪一区二区免费|妺妺窝人体色WWW聚色窝|99色视频在线 | 爱情到此为止在线观看|精品热99|老熟女多次高潮露脸视频|91国偷自产一区二区三区老熟女|美女久久久久久久久|高潮VPSWINDOWS国产乱 | 天堂中文在线看|亚洲国产精品国自产拍=aV|好看的欧美熟妇www在线|久久国产亚洲欧美久久|四虎精品成人免费视频|曰本久久久 搡女人真爽免费视频网站波兰美女|蜜臀99|多男一女一级淫片免费播放口|日本精品不卡|特级毛片=a级毛片免费观看R|免费成人精品视频 |