Autosar之SomeIP 车载以太网【6】SoAd

SoAd模块在Autosar中起到接口作用,连接使用PDU的通信服务模块与TCP/IP堆栈。本文详细介绍了SoAd的上层模块、套接字连接、PDU头、最佳匹配算法及其在网络通信中的应用。
摘要由CSDN通过智能技术生成

8. SoAd

        BSW配置:ISOLAR Autosar BSW 配置 之 SoAd-CSDN博客

        SoAd模块的主要目的是在使用pdu(例如PDU路由器)的自动共享通信服务模块和基于套接字的TCP/IP堆栈之间创建一个接口。它将把I-PDUid映射到套接字连接,反之亦然。

  • 为了避免进一步的协议开销,这里描述了每个PDU使用单个套接字连接。然而,这种解决方案是非常资源密集型的,特别是当要传输许多小的pdu时。这里描述的一个解决方案是添加一个小的PDU标头,其中包含一个ID和长度信息。这允许通过一个套接字连接传输多个pdu。此外,本规范中还提供了一个资源保护方案。

  • 为同时支持多个通信合作伙伴,每个本地套接字,套接字具有相同连接参数的连接可以分组到套接字连接组。

    • 一个UDP套接字连接组中的所有套接字连接共用一个TcpIp套接字。

    • 注意:TCP套接字连接组的所有套接字连接(soadsockettcplinitiate设置为FALSE)共享一个Tcplp套接字,用于接收连接请求(“Listen-Socket”),但使用由Tcplp模块创建的单独的Tcplp套接字,并在连接建立后通过SoAd_TcpAccepted()提供。

8.1 上层模块

          PDUR给SOAD模块提供PDU路由功能。主要是针对需要大量自定义PDU的信号需求,比如Someip,需要PDUR将someip报文从LDCOM/COM模块与SOAD之间进行路由。

  • PDU Router (PduR) [12]: IF-PDU and TP-PDU API

  • UDP Network Management (UdpNm) [8]: IF-PDU API

        UdpNm主要执行基于UDP报文的网络管理功能,因为UdpNm通过Soad模块的接口进行报文收发。

  • Service Discovery (Sd) [11]: IF-PDU API, Control API (8.3.4)

        Sd通过Soad模块接口进行服务发现报文的收发。Sd在进行服务发现处理之后,会对Soad中的Socket Connection以及Routing Group进行控制。

  • Diagnostics over IP (DoIP) [15]: IF-PDU and TP-PDU API, Control API (8.3.4)

        Doip主要完成的是基于IP的诊断协议栈的诊断报文的处理。Doip会通过Soad的接口收发以太网诊断报文。

8.2 描述

  • SoAd允许通过TCP/IP网络进行基于pdu的通信。I-PDU被映射到由SoAd配置和维护的套接字连接。

  • 为了对多个I-PDU使用套接字连接,可以在每个I-PDU前面选择性地添加一个SoAd PDU头。

  • 指定消息接受策略来定义接受来自远程节点的哪些TCP连接和UDP数据报。

  • 套接字连接可以通过来自上层的请求自动或手动打开。对于套接字连接的断开和恢复,定义了一个策略。

  • SoAd的上层可以使用IF-APITP-API来发送和接收PDU。一般只有DoIp(TCP)选择TP层。其余的都选IF层。

  • 为了有选择地使能或使能PDU从套接字连接或到套接字连接的路由,定义了PDU路由组,由SoAd上层控制。

  • 一个IF-PDU也可以转发到多个套接字连接,或者一个套接字连接收到的消息可以作为不同的IF-PDU转发到SoAd的相同或不同的上层(PDU Fan-out)。

8.3 套接字连接

  • 对于TCP/IP通信的抽象,SoAd定义了套接字连接。本地套接字(即本地地址标识符和本地端口)和远程套接字(即远程IP地址和端口)

  • 每个套接字连接都可以通过一个唯一的标识符(SoConId)进行标识。

  • 为同时支持多个通信合作伙伴,每个本地套接字,套接字具有相同连接参数的连接可以分组到套接字连接组

  • SoAdSocketTcpInitiate:TURE Client/FALSE Server

  • 通知:SoAdSocketSoConModeChgNotification、SoAdSocketSoConModeChgNotifUpperLayerRef、SoAdSocketIpAddrAssignmentChgNotification

8.4 PDU

          PDU标头应包括一个4字节的ID字段,用于唯一标识接收端的PDU和一个4字节长度的字段,指定PDU的数据长度。

  Service ID+Mothed/Event ID == MessageID

8.5 最佳匹配算法

          SoAd应使用以下最佳匹配算法,根据所提供的(特定的)远程地址,选择套接字连接组的套接字连接:

  • 应忽略没有(特定或通配符)远程地址集的套接字连接

  • 其余插座连接的远程地址应与提供的远程地址进行比较,并根据以下订单列表选择最匹配的插座连接(后列项目优先):

    • IP地址和端口匹配

    • IP地址匹配(并为端口设置了通配符)

    • 端口匹配(并为IP地址设置了通配符)

    • 通配符同时用于IP地址和端口

    • 不匹配(即不能选择套接字连接)

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶小破孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值