当前位置: 首页 > news >正文

【AutoSar CP】SoAd模块

【AutoSar CP】SoAd模块

文章目录

  • 【AutoSar CP】SoAd模块
    • 1. SoAd总体说明
      • 1.1. SoAd在AutoSar CP中的层级关系
      • 1.2. SoAd的作用
    • 2. 主要配置参数
    • 3. Sock连接
    • 4. PDU传输
    • 5. PDU接收
    • 6. 配置参数详表
      • SoAdBswModules
      • SoAdGeneral
      • SoAdConfig
      • SoAdSocketConnectionGroup
      • SoAdSocketConnection
      • SoAdSocketProtocol

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**);
    /

相关文章:

  • 梳理vite构建vue项目可选的配置和组件
  • 使用DeepSeek实现自动化编程:类的自动生成
  • 【计算机网络】TCP协议相关总结,TCP可靠性的生动讲解
  • UniApp 使用 u-loadmore 完整步骤
  • 【0010】HTML水平线标签详解
  • 每日一题——最长连续序列和uthash.h
  • xr-frame 3D Marker识别,扬州古牌坊 3D识别技术稳定调研
  • Linux基础 -- ARM 32位常用机器码(指令)整理
  • MySQL四种备份表的方式
  • MongoDB 笔记
  • chromadb向量数据库使用 (1)
  • 宝塔安装向量数据库-Milvus
  • 数据可视化02-PCA降维
  • nss刷题4
  • win本地vscode通过代理远程链接linux服务器
  • 爬虫和逆向教程-专栏介绍和目录
  • 辛格迪客户案例 | 甫康(上海)健康科技有限责任公司药物警戒管理系统(PVS)项目
  • 毓恬冠佳即将登陆资本市场,深耕汽车天窗领域,引领行业创新发展
  • vue3使用插件封装指令实现页面滚动动画
  • 鸿蒙NEXT开发-元服务和服务卡片的开发
  • 泰州泛亚信息做网站怎么样/深圳关键词推广优化
  • 长沙网站设计公司怎么样/河南靠谱seo电话
  • 优惠券网站是怎么做的/刚刚发生 北京严重发生
  • 广东快速做网站公司哪家好/windows优化大师卸载
  • 开饰品店网站建设预算/seo免费资源大全
  • 网站排名突然掉没了/中央刚刚宣布大消息