【AutoSar CP】SoAd模块

AUTOSAR CP SoAd模块详解:从PDU到Socket的通信桥梁 在车载以太网通信中,AUTOSAR CP协议栈通过分层架构实现不同协议模块的协同。SOME/IP作为服务导向的通信中间件,需要底层Socket接口的支持;而PDU作为AUTOSAR统一的数据封装形式,必须通过Socket适配层才能与TCP/IP协议栈交互。SoAd(Socket Adaptor)正是这一转换的关键模块,它负责将上层PDU映射到具体的UDP/TCP Socket,并处理连接管理、数据收发、多路复用等机制。理解SoAd的工作原理,对于开发车载诊断(DoIP)、网络管理(UdpNm)以及SOME/ 阅读详情

【AutoSar CP】SoAd模块

1. SoAd总体说明

1.1. SoAd在AutoSar CP中的层级关系

在这里插入图片描述

1.2. SoAd的作用

  • 对于TCP/IP协议栈,数据的传输依赖基于ip和端口的Sockt,而对于PDU的传输则依赖PduId,SoAd模块将AUTOSAR中定义的PDU通信转换成基于socket的通信。实现Socket和PDU数据之间的切换
  • 对于PDU的路由,可以控制哪些PDU路由使能、哪些PDU路由禁止
  • AUTOSAR遵循静态通信关系,而TCP/IP概念中存在动态配置和路由,SoAd模块旨在弥合这两个概念之间的差距。通过建立一个包含AUTOSAR所需信息的预先确定的配置,并保留一些项,以便在运行时进行更新

    比如对于特定的PDU,其PduId在程序编译时就确定了,但是在代码运行中,该PduId可能需要发送到不同的远端ip,这时就需要用SoAd来设置连接远端地址信息

2. 主要配置参数

  • SoAdSocketConnectionGroup(连接参数)
    • 指定套接字ConnectionGroup的配置,主要包含本地ip、本地端口、远端ip,远端端口,连接协议(TCP/UDP)
    • 每一个ConnectionGroup内需要指定有几个Connection(远端),可以理解为一个服务端指定最多有几个客户端连它
    • 可以设置每个Connection(远端)的ip和端口。如果ip设置为ANY,端口设置为0 ,可以理解为连接本服务器的这个客户端可以是任何ip,任何端口
    • 注意:在一个ConnectionGroup内,只有本地ip必须唯一,本地端口、远端ip,远端端口都可以设置为任意值(ip:ANY,端口:0)
    • 对于接收组播,本地ip需要设置为组播地址
    • 对于UDP来说,一个ConnectionGroup下的Connection共享同一个Socket
    • 对于TCP来说,一个ConnectionGroup下的每一个Connection都单独对应一个Socket(TCP需要accept)
  • SoAdPduRoute(发送数据)
    • PDU发送路径:PduR --> SoAd --> TCP/IP
    • 需要指定PduR SoAd上层接口类型,IF/TP
    • 需要指定接收的数据走的是哪一个ConnectionGroup或Connection
    • 需要指定接收的数据与哪一个PduId对应,PduId由PduR中配置
    • 需要指定SoAdRoutingGroup(开关),来控制该种PduId数据是否从SoAd向下传输
  • SoAdSocketRoute(接收数据)
    • PDU接收路径:PduR <-- SoAd <-- TCP/IP
    • 需要指定SoAd PduR上层接口类型,IF/TP
    • 需要指定接收的数据走的是哪一个ConnectionGroup或Connection
    • 需要指定接收的数据与哪一个PduId对应,PduId由PduR中配置
    • 需要指定SoAdRoutingGroup(开关),来控制该种PduId数据是否从SoAd向上传输
  • SoAdRoutingGroup(开关)
    • 一个可以启用或禁用的特定路由组的合集。
    • SoAdRoutingGroupIsEnabledAtInit:如果设置为 true,此路由组将在初始化 SoAd 模块后启用(即在SoAd_Init 函数中启用)
    • SoAdRoutingGroupTxTriggerable: 指定与此路由组相关的PduRouteDest容器所引用的If-TxPDUs是否可以通过SoAd_IfRoutingGroupTransmit函数触发传输。当该参数设置为TRUE时,表示可以通过SoAd_IfRoutingGroupTransmit触发传输;当该参数设置为FALSE时,表示不可以通过SoAd_IfRoutingGroupTransmit触发传输

3. Sock连接

  • 对于SoAd模块,建立链接是调用接口SoAd_OpenSoCon(SoConId), 入参 SoConId 对应配置参数SoAdSocketConnectionGroup中的索引值
  • 调用SoAd_OpenSoCon(SoConId)的实际作用是设置该SoConId需要建立链接的flag
  • 在周期调度函数SoAd_MainFunction()中,对于需要建立链接的SoConId ,依次调用如下接口建立链接
    //TCP/UDP
    TcpIp_SoAdGetSocket(Std_ReturnType,
    TcpIp_DomainType, TcpIp_ProtocolType,
    TcpIp_SocketIdType**);
    //TCP/UDP
    TcpIp_Bind(Std_ReturnType, TcpIp_SocketIdType,
    TcpIp_LocalAddrIdType, uint16**);
    
保姆级教程:手把手教你用Autosar CP配置SomeIP服务发现(基于Vector DaVinci) 本文提供了一份详细的Autosar CP配置SomeIP服务发现的保姆级教程,基于Vector DaVinci工具,涵盖环境准备、服务实例定义、服务发现模块配置及通信栈集成等关键步骤。特别针对车载以太网通信中的SomeIP协议,解析了如何优化服务发现性能,确保系统稳定性和实时性,适用于智能汽车开发工程师。 阅读详情

相关推荐

AUTOSAR中的SoAd到底是什么?为什么大家都说它是以太网世界里的PduR?

摘要: SoAd(Socket Adaptor)是AUTOSAR以太网协议栈中的关键模块,负责协调应用层模块(如DoIP、SOME/IP)与TCP/IP Socket之间的数据转发,相当于以太网版的PduR(报文路由器)。与CAN架构中的PduR不同,SoAd不仅路由报文,还管理Socket连接、TCP/UDP端口及IP地址。例如,DoIP通过SoAd建立TCP连接,处理诊断协议(如UDS),而SoAd确保数据通过正确的Socket传输

diansandaosilaodanan的博客 329

AUTOSAR以太网发送链路深度解析:SOME/IP TP报文到底拷贝了几次?SomeIpXf、PduR、SoAd、TcpIp、EthIf谁在偷偷开Buffer?

在传统 CAN 通信中,一帧报文最大也就几十个字节,开发人员很少会认真思考:这几十个字节到底被 memcpy 了几次?但进入以太网时代之后,情况完全不同了。那么一次发送可能就产生大量 CPU memcpy 和 RAM 占用。于是很多工程中都会出现几个非常实际的问题:SOME/IP TP 发送到底经过哪些模块?SomeIpXf 会不会额外复制一次数据?PduR 会不会保存完整 Payload?SoAd 有没有自己的发送 Buffer?

diansandaosilaodanan的博客 356

TC275 AUTOSAR以太网驱动配置实战:基于EB工具链的完整指南

在汽车电子领域,AUTOSAR(汽车开放系统架构)已成为软件架构的核心标准,它通过分层设计实现了硬件抽象与软件复用。其核心原理在于定义了一套标准化的接口和模块化组件,使得底层驱动、通信协议栈与应用层能够解耦。这一架构的技术价值在于提升了代码的可移植性、可维护性,并支持复杂的车载网络通信。在车载以太网等高速通信场景中,AUTOSAR的Eth、TcpIp等模块为数据传输提供了标准化管道。本文聚焦于英飞凌TC275芯片平台,详细解析如何利用EB tresos Studio等配置工具,完成从底层Eth驱动到上层So

weixin_29168153的博客 339

告别UDP丢包焦虑:手把手教你用SOME/IP-TP在AUTOSAR里搞定大块数据传输

本文详细介绍了如何在AUTOSAR环境中使用SOME/IP-TP协议解决UDP大块数据传输的丢包问题。通过解析SOME/IP-TP的核心机制、配置实战和工程避坑指南,帮助开发者实现高效可靠的车载以太网数据传输,特别适合智能驾驶和车联网应用场景。

weixin_30752699的博客 455

AUTOSAR从入门到精通-套接字适配器(SoAd)模块(一)

近年来,汽车“新四化”(智能化、网联化、电动化、共享化)的快速推进,给汽车行业带来了新的技术变革,汽车的功能变得越来越复杂,尤其是智能座舱、智能驾驶、智能底盘的出现,促使汽车电子电气架构也相应地发生变革。

getusushu的博客 2321

【AUTOSAR】【以太网】SoAd

该文档规定了AUTOSAR 基本软件模块套接字适配器(SoAd)的功能、API和配置。

qq_42357877的博客 2332

AUTOSAR配置:嵌入式SoAd的SomeIP配置

在AUTOSAR架构中,SomeIP(Scalable Service-Oriented Middleware over IP)作为一种通信协议,用于实现基于IP网络的E/E(电器/电子)系统之间的通信。以上示例代码演示了初始化SoAd模块,配置网络端口和路由表,注册SomeIP回调函数,并启动SomeIP服务的基本步骤。在AUTOSAR配置工具中,创建SomeIP服务接口,并定义所需的方法。以下是一个简单的源代码示例,演示了如何在AUTOSAR环境中配置并使用嵌入式的SoAd和SomeIP。

Orion_O的博客 1258

SOME/IP协议详解「4.1·经典AutoSAR下的SOME/IP架构」

SOME/IP协议详解「4.1·经典AutoSAR下的SOME/IP架构」 点击返回雪云飞星的SOME/IP协议详解「总目录」 SOME/IP协议详解「4.1·经典AutoSAR下的SOME/IP架构」1 CP的SOME/IP架构概览2 业务报文通信流3 服务发现通信和控制流 1 CP的SOME/IP架构概览 2 业务报文通信流 3 服务发现通信和控制流 点击返回雪云飞星的SOME/IP协议详解「总目录」 ...

雪云飞星的博客 6059

手把手教你学SOME/IP「4.1.经典AutoSAR下的SOME/IP架构」

本文介绍了经典AutoSAR框架下的SOME/IP架构实现。在CP架构中,SOME/IP业务涉及Rte、SomeIpXf、LdCom等模块,服务发现则涉及Sd、BswM等模块。文章详细说明了各模块功能:Sd实现服务发现状态机、SomeIpXf负责序列化和包头处理、LdCom作为信号转换接口。通过业务报文和服务发现两个典型场景,阐述了数据在模块间的流转过程:从Rte调用开始,经过序列化、封装、传输等步骤最终发送;服务发现则通过BswM控制服务状态切换。文中配有架构图说明模块间的交互关系,完整呈现了AutoSA

nihaoljq2010的博客 203

图解AUTOSAR_CP_SocketAdaptor

是AUTOSAR通信栈中的关键组件,它在AUTOSAR PDU路由层和TCP/IP协议栈之间提供了一个适配层。SoAd模块负责管理Socket连接,并将上层应用的PDU(协议数据单元)映射到底层的Socket通信。在AUTOSAR PDU和TCP/IP Socket之间建立映射管理Socket连接的建立和维护支持PDU路由和多路复用提供IF-PDU和TP-PDU两种API支持路由组管理支持TCP和UDP协议支持IPv4和IPv6。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 2516

Zabbix-01简单导入MIB文件并测试

这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M

lokibaba的博客 9171

STM32F407 BootLoader实战:从零搭建到OTA升级(附完整源码)

本文详细介绍了为STM32F407微控制器从零搭建BootLoader并实现稳定OTA升级的完整实战指南。内容涵盖Flash分区规划、链接脚本配置、核心跳转逻辑、中断向量表重定向、可靠的升级流程设计,并深入探讨了双备份与回滚机制以提升工业级可靠性。文章提供了可直接使用的代码框架,并分享了关键调试技巧,帮助开发者快速掌握STM32远程固件更新技术。

weixin_29192211的博客 428

c语言【分糖果】2023蓝桥杯4124(枚举,递归,dfs)

但是这是不符合我们糖果刚好分完的条件的,我们应该往回退到上一层,也就是孩子6这层,然后j+1=3,孩子7分到3个第二种糖果,这也不符合我们糖果刚好分完的条件,然后就会再次回退到孩子6这里,然后j+1=4,让我们的孩子7获得5块第二种糖果,然后还是不符合糖果刚分完的条件,于是再一次退回到孩子6这里,然后就会有外循环i+1=1,j=1,孩子7分到1块第一种糖果1块第二块糖果......然后就是这样的不停地回溯,试探,直到把整棵树遍历一遍,并且记录所有的满足条件的组合。先放一下我的代码,我的代码超时啦救命!

weixin_74331419的博客 724

深度解析中国支付清算体系

说起国之重器,不仅仅有 东风快递、渔16、渔17、渔18,还有另外一个国之重器-CNAPS2(中国支付清算体系)。 中国国内支付行业的发达水平、繁荣程度,不客气的讲,在全世界都是数一数二的,世界上最大的银行卡组织银联在中国,世界上交易量最大的网络零售支付清算体网联在中国。可以说现在我国经济的高速发展,离不开CNAPS2。

银行信息系统应用架构详解 2485

InSAR图像配准:从像素级到亚像素级的精度提升策略

本文深入探讨了InSAR图像配准技术,从像素级到亚像素级的精度提升策略。通过分析最大频谱法和相干系数法的适用场景,结合频域补零插值和四叉树分块等高级技术,实现1/8像素级的高精度配准。文章还提供了实用的精度验证方法和常见问题排查指南,为InSAR数据处理提供全面解决方案。

nginx7reverse的博客 830

ARM Memory Compiler实战指南:从参数配置到GDSII生成的全流程解析

本文详细解析了ARM Memory Compiler在SRAM设计中的全流程应用,从基础参数配置到GDSII文件生成。涵盖SRAM类型选择、核心参数配置策略、高级优化技巧及TSMC 28nm工艺下的实战案例,帮助IC设计工程师高效实现存储器模块的优化设计。

game4的博客 411

Android MediaCodec学习笔记

模块介绍 基本概念 OpenMAX是Khronos Group提出的标准,目标在于创造一个统一的接口,加速大量多媒体资料的处理。OpenMAX分成三层:应用层(Application Layer, AL), 整合层(Integration Layer, IL) 以及开发层(Development Layer, DL)。 OpenMAX (Open Media Acceleration) OpenMAX AL Application Layer ..

kisshine 2353

比亚迪 10C 闪充技术全解析:超高速离子通道与双电子流设计如何颠覆电动车补能格局?

性能碾压主流方案参数宁德时代6C比亚迪10C优势幅度最大电流700A1000A+43%内阻降幅30%50%+67%5分钟补能240公里400公里+67%

百态·数智思维 | 聚焦大数据、量化与未来AI 1100

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: cmake install命令无法覆盖同名文件
下一篇: 【AutoSar CP】SomeIp协议
TAlice
博客等级 码龄9年 6964粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

TAlice

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

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

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

打赏作者

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

抵扣说明:

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

余额充值