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

[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍

目录

  • 1、协议数据单元(PDU)传输
  • 2、通信模块的案例
    • 2.1、SDU、 PCI & PDU
    • 2.2、通信模块构成
    • 2.3、从数据传输的角度看Communication
    • 2.4、Communication中的接口

  在前面 《关于接口的一些说明》 以及  《Memory软件模块接口说明》 中,简要介绍了CP_AUTOSAR分层软件接口的常用规范,以及内存模块的接口使用说明,本文以通信软件模块为例,介绍通信模块的接口交互。

1、协议数据单元(PDU)传输

  一些术语的解释说明:
  1、SDU,Service Data Unit,服务数据单元。在上层收到传输数据的请求时,被上层传输的数据是属于当前层的SDU。下层完成接收之后提取出的数据也是SDU,SDU是PDU的一部分。
  2、PCI,Protocol Control Information,协议控制信息。将SDU从特定协议层的一个实例传递到另一个实例时需要此信息。例如,PCI可能会包含源和目标信息。PCI由发送方的协议层添加,由接收方去除。
  3、PDU,Protocol Data Unit,协议数据单元,其包含了PCI 和 SDU。在发送方,PDU由上层传递到下层,并且PDU也作为了下层的SDU。
  下图是PDU传输过程的示意图。由图可知,N + 1层往 N 层发送PDU,对于N + 1层来说,该数据单元属于PDU,而对于N层来说,则是属于SDU。在N层中,SDU添加上PCI信息,则变为了N层的PDU,向N - 1层发送完成时,PDU变为了SDU。
在这里插入图片描述

2、通信模块的案例

2.1、SDU、 PCI & PDU

  SDU 和 PDU命名规范:
  PDU:<bus prefix> <layer prefix> - PDU
  SDU:<bus prefix> <layer prefix> - SDU
  bus prefix 和 layer prefix的描述详见下表:
在这里插入图片描述
  来自于数据链路层(对应AUTOSAR架构中的驱动以及接口模块)的协议数据单元为CAN L-PDU,其中,layer prefix 为 L,bus prefix 为 CAN。
  来自于网络层(对应AUTOSAR架构中的Tp层)的协议数据单元为CAN FF N-PDU,其中,layer prefix 为N,bus prefix 为 CAN FF,其中SF,Single Frame,表示单帧;其中FF,First Frame,表示首帧;其中CF,Consecutive Frame,表示连续帧;其中FC,Flow Control,表示流控帧;《更多关于CAN Tp层中的帧信息,可点击跳转》。
  来自于展示层(对应AUTOSAR架构中的COM/DCM/PDU router模块)的协议数据单元为I-PDU,其中,layer prefix 为 I,bus prefix 无。

2.2、通信模块构成

  1、PDU Router:
   -> 在上层和不同的抽象的通讯控制器之间,提供PDUs的路由功能;
   -> 路由的规模需要根据ECU通信来定;
   -> 提供即时的TP路由。
  2、COM:
   -> 在不同的I-PDUs之间提供单个信号或组信号的路由;
  3、NM Coordinator:
   -> 通过网络协调器处理的网络管理,同步连接到ECU的不同通信通道的网络状态;
  4、Communication State Managers:
   -> 通过接口去启动和关闭通信系统的硬件单元;
   -> 控制PDU组。

  内部通信路径如下图所示:
在这里插入图片描述
  由上图可知,由CAN Driver发往CAN Interface的数据为I-PDU,经过CAN Inteface处理之后,发往CAN Tp为N-PDU,由PDU Router路由转发发往服务层中AUTOSAR COM为I-PDU。

  以太网协议栈内部的通信路径如下图所示:
在这里插入图片描述
  使用CAN XL的以太网和CAN通信,通信路径如下图所示:

在这里插入图片描述

2.3、从数据传输的角度看Communication

  下图展示了数据流向图,SW-C 发送配置好的数据到远程ECU上,此数据不在就地缓存空间处理。
  以下描述了传递流程:
   -> RTE 会回调 SOME/IP transformer模块来传输来自于SW-C的数据,SOME/IP transformer作为传输链路上的第一道转换。
   -> SOME/IP transformer执行转换,并将输出结果写入到RTE提供的Buffer1空间中;
   -> 之后,RTE执行了Safety transformer,其作为传输链路上的第二道转换,Safety transformer的输入就是SOME/IP transformer的输出。
   ->E2E Transformer保护了数据,并将其输出结果写入到RTE提供的Buffer2空间中。此过程增加了一个新的Buffer空间,因为in-place buffer处理未被使用。
   -> 最后,RTE传出最后的输出结果到AUTOSAR COM模块中。

在这里插入图片描述

2.4、Communication中的接口

  架构描述:
  RTE使用了位于BSW中的系统服务层中的转换器:SOME/IP transformer、E2E Transformer。
  接口描述:

	SomeIpXf_SOMEIP_Signal1(uint8 *buffer1,uint16 *buffer1Length,<type> data)
	SafetyXf_Safety_Signal1(uint8 *buffer2,uint16 *buffer2Length,uint8 *buffer1,uint16 buffer1Length)

在这里插入图片描述
  由上图所示,RTE层调用了 SomeIpXf_SOMEIP_Signal1接口函数,将来自于SW-C数据进行转换,转换完成之后,保存到buffer1Length中(即图中的Buffer1);随后RE回调了SafetyXf_Safety_Signal1接口函数,借助于E2E Transformer对数据进行保护处理,转换完成之后,保存到buffer2Length中(即图中的Buffer2);最后,调用Com_SendDynSignal接口函数,将输出结果传递到AUTOSAR COM层中。

   更多内容可点击返回参考 CP_AUTOSAR_总目录

相关文章:

[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍

目录 1、协议数据单元(PDU)传输2、通信模块的案例2.1、SDU、 PCI & PDU2.2、通信模块构成2.3、从数据传输的角度看Communication2.4、Communication中的接口 在前面 《关于接口的一些说明》 以及  《Memory软件模块接口说明》 中&#xff0c;简要介绍了CP_AUTOSAR分层…...

C语言 ——— 浮点数类型 在 内存中 的 存储模式

目录 浮点数存储规则 单\双精度浮点数 存储 S、M、E 的布局 有效数字M 和 指数位E 的特殊规定 浮点数在内存中是否存储的S、M、E 浮点数存储规则 根据国际标准IEEE754&#xff08;电气和电子工程协会&#xff09;规定&#xff1a;任意一个 浮点数F的二进制 都可以表示成…...

socket 收发TCP/UDP

一、c 个人测试记录&#xff0c;有问题还请指出&#xff0c;谢谢 参考&#xff1a;C开发基础之网络编程WinSock库使用详解TCP/UDP Socket开发_c udp使用什么库-CSDN博客 代码中Logger测试见文章&#xff1a; c中spdlog的使用/python中logger的使用-CSDN博客 1、main.cpp 收…...

Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档

什么是 Swagger ? Swagger 是一组围绕 OpenAPI 规范构建的开源工具&#xff0c;可以帮助您设计、构建、记录和使用 REST API。主要的 Swagger 工具 包括&#xff1a; Swagger Editor&#xff1a;基于浏览器的编辑器&#xff0c;您可以在其中编写 OpenAPI 定义Swagger UI&…...

spark shell

1.进行shell命令行 spark-shell 2.创建RDD 2.1 读取文件创建RDD 2.1.1读取linux文件系统的文件创建RDD --需要保证每一个worker中都有该文件 val data1 sc.textFile("file:/opt/file/word.txt") 2.1.2读取hdfs文件系统上的文件创建RDD val data2sc.textFile("…...

集群架构-web服务器(接入负载均衡+数据库+会话保持redis)--15454核心配置详解

紧接着前面的集群架构深化—中小型公司&#xff08;拓展到大型公司业务&#xff09;–下面图简单回顾一下之前做的及故障核心知识总结&#xff08;等后期完全整理后&#xff0c;上传资源希望能帮大家&#xff09; web集群架构-接入负载均衡部署web02服务器等 web集群-搭建web0…...

# Redis 入门到精通(七)-- redis 删除策略

Redis 入门到精通&#xff08;七&#xff09;-- redis 删除策略 一、redis 删除策略–过期数据的概念 1、Redis 中的数据特征 Redis 是一种内存级数据库&#xff0c;所有数据均存放在内存中&#xff0c;内存中的数据可以通过TTL指令获取其状态。 XX &#xff1a;具有时效性…...

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到6月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…...

html+canvas 实现签名功能-手机触摸

手机上的效果图 需要注意&#xff0c;手机触摸和鼠标不是一个事件&#xff0c;不能通用&#xff0c;上一篇是关于使用鼠标的样例 相关代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewpo…...

前端组件化探索与实践:Vue自定义暂无数据组件的开发与应用

摘要 随着前端开发技术的不断进步&#xff0c;组件化开发已成为提升开发效率、降低维护成本的关键手段。本文旨在通过介绍一款Vue自定义暂无数据组件的开发与实践&#xff0c;深入探讨前端组件化开发的重要性、优势及其在实际项目中的应用。 一、引言 在前端开发中&#xff0…...

《汇编语言 基于x86处理器》- 读书笔记 - Visual Studio 2019 配置 MASM环境

安装 Visual Studio 2019 配置 MASM环境 下载 Visual Studio Installer安装 Visual Studio 20191. 双击运行2. 自定义安装内容3. 修改 MSVC 工具集版本4. 设置主题&#xff08;可选&#xff09;5. 安装代码高亮插件 AsmDude&#xff08;可选&#xff09;6. 通义灵码&#xff08…...

Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析 简介 本文档适用于合宙Air780E、Air780EP、Air780EQ、Air201 关联文档和使用工具&#xff1a; 从Ramdump里分析内存泄漏问题 无法抓底层log的情况下如何导出死机dump Luatools下载调试工具 EPAT抓取底层日志 F…...

吴松洋院长 艺后整形集团专家组特约成员 全方位责任塑美

...

前端经验:使用sheetjs导出CSV文本为excel

应用场景 很多web表格组件没有提供直接的导出excel功能&#xff0c;但提供了导出CSV的功能。 如果能想办法拿到CSV的内容&#xff0c;就可以利用sheetjs生成excel并导出。 实施步骤 1.拿到CSV的内容字符 每种表格组件都有各自的CSV生成方法&#xff0c;不管用什么方法&…...

【nnUNetv2进阶】十五、nnUNetv2 魔改网络-小试牛刀-引入ECA

nnunet使用及改进教程。 【nnUNetv2实践】一、nnUNetv2安装 【nnUNetv2实践】二、nnUNetv2快速入门-训练验证推理集成一条龙教程 【nnUNetv2进阶】三、nnUNetv2 自定义网络-发paper必会-CSDN博客 其他网络改进参考: 【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入…...

centos(或openEuler系统)安装kafka集群

安装192.168.9.60、192.168.9.61、192.168.9.62这3台kafka集群&#xff08;kraft模式&#xff0c;不用zookeeper&#xff09; 不带密码的 1.每台机器安装kafka&#xff1a; cd /home/kafka wget https://downloads.apache.org/kafka/3.3.1/kafka_2.13-3.3.1.tgz 不通就换这…...

HarmonyOS根据官网写案列~ArkTs从简单地页面开始

Entry Component struct Index {State message: string 快速入门;build() {Column() {Text(this.message).fontSize(24).fontWeight(700).width(100%).textAlign(TextAlign.Start).padding({ left: 16 }).fontFamily(HarmonyHeiTi-Bold).lineHeight(33)Scroll() {Column() {Ba…...

GraphRAG+ollama+LM Studio+chainlit

这里我们进一步尝试将embedding模型也换为本地的&#xff0c;同时熟悉一下流程和学一些新的东西 1.环境还是用之前的&#xff0c;这里我们先下载LLM 然后你会在下载nomic模型的时候崩溃&#xff0c;因为无法搜索&#xff0c;无法下载 解决办法如下lm studio 0.2.24国内下载…...

【中项第三版】系统集成项目管理工程师 | 第 5 章 软件工程② | 5.4 - 5.8

前言 第 5 章对应的内容选择题和案例分析都会进行考查&#xff0c;这一章节属于技术的内容&#xff0c;学习要以教材为准。 目录 5.4 软件实现 5.4.1 软件配置管理 5.4.2 软件编码 5.4.3 软件测试 5.5 部署交付 5.5.1 软件部署 5.5.2 软件交付 5.5.3 持续交付 5.5.4…...

6. dolphinscheduler-3.0.0伪集群部署

环境说明&#xff1a; 主机名&#xff1a;cmc01为例 操作系统&#xff1a;centos7 安装部署软件版本部署方式centos7zookeeperzookeeper-3.4.10伪分布式hadoophadoop-3.1.3伪分布式hivehive-3.1.3-bin伪分布式clickhouse21.11.10.1-2单节点多实例dolphinscheduler3.0.0单节…...

PvZ Toolkit:植物大战僵尸终极修改器完全指南

PvZ Toolkit&#xff1a;植物大战僵尸终极修改器完全指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit PvZ Toolkit是一款专为植物大战僵尸PC版设计的综合性游戏修改工具&#xff0c;通过内存读写…...

NaViL-9B效果实测:支持中英文混排表格图像的行列结构识别与内容提取

NaViL-9B效果实测&#xff1a;支持中英文混排表格图像的行列结构识别与内容提取 1. 模型介绍 NaViL-9B是新一代原生多模态大语言模型&#xff0c;专为处理复杂视觉-语言任务设计。与常规视觉模型不同&#xff0c;它不仅能够理解图片内容&#xff0c;还能精准解析表格、文档等…...

本地部署 Ollama + DeepSeek 完整指南:免费跑大模型,数据不出本地

本地部署 Ollama DeepSeek 完整指南&#xff1a;免费跑大模型&#xff0c;数据不出本地不花一分钱&#xff0c;不用科学上网&#xff0c;在自己电脑上跑 DeepSeek 大模型&#xff0c;这篇教程手把手带你搞定一、为什么要本地部署&#xff1f; 很多人用 AI 工具都是调用云端 AP…...

聚焦数据中心基建核心:我国服务器机架导轨市场规模达8.1亿元,产业支撑力凸显

据恒州诚思最新调研数据显示&#xff0c;2025年全球服务器机架导轨市场规模达8.1亿元&#xff0c;预计至2032年将增长至11.61亿元&#xff0c;期间复合增长率&#xff08;CAGR&#xff09;为5.3%。这一增长受多重因素驱动&#xff1a;全球数据中心建设加速&#xff0c;预计2026…...

基于imfindcircles函数的圆形检测实战:从原理到MATLAB实现

1. 霍夫变换与圆形检测原理 第一次接触圆形检测时&#xff0c;我也被各种数学公式绕得头晕。直到把霍夫变换想象成"投票游戏"&#xff0c;才真正理解它的精妙之处。想象一张布满黑白点的图纸&#xff0c;每个黑点都可能属于某个潜在的圆。霍夫变换就像让每个黑点为所…...

【GNSS定位原理及算法杂记2】GNSS观测量:从捕获到解算,揭秘接收机内部信号处理链路

1. GNSS观测量&#xff1a;定位技术的三大支柱 当你打开手机地图查看自己的位置时&#xff0c;背后是GNSS接收机在默默工作。它通过处理来自太空卫星的信号&#xff0c;最终计算出你所在的位置。这个过程中最关键的就是三种观测量&#xff1a;伪距、载波相位和多普勒频移。这三…...

Joy-Con Toolkit:让Switch玩家掌控设备的开源管理方案

Joy-Con Toolkit&#xff1a;让Switch玩家掌控设备的开源管理方案 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit 为什么Switch玩家需要专属管理工具&#xff1f; 当你插入Switch游戏卡带时&#xff0c;是否担心…...

保姆级教程:在Jeecg-Vue3项目中快速集成SuperQuery高级查询组件(含完整配置代码)

Jeecg-Vue3项目实战&#xff1a;SuperQuery高级查询组件深度集成指南 在后台管理系统开发中&#xff0c;高效的数据筛选功能直接影响用户体验和操作效率。Jeecg-Vue3作为企业级快速开发框架&#xff0c;其内置的SuperQuery组件能够帮助开发者快速构建复杂的多条件查询面板。本文…...

别再乱用.pem和.key了!用ASN.1 Editor手把手拆解RSA私钥的PKCS#8格式(附OpenSSL 3.1验证)

从文件后缀到密钥本质&#xff1a;用ASN.1 Editor透视RSA私钥的PKCS#8结构 当你在终端输入openssl genpkey -algorithm RSA生成密钥对时&#xff0c;是否曾好奇过.pem文件里那些看似随机的字符究竟隐藏着什么秘密&#xff1f;面对invalid key format的错误提示&#xff0c;又是…...

会议纪要助手:OpenClaw+GLM-4.7-Flash实时转录与摘要

会议纪要助手&#xff1a;OpenClawGLM-4.7-Flash实时转录与摘要 1. 为什么需要自动化会议纪要 每次开完会最头疼的就是整理会议纪要。上周三的部门周会结束后&#xff0c;我花了40分钟反复听录音、手敲重点&#xff0c;结果还是漏掉了两个关键决议事项。这种低效重复劳动让我…...