AutoSAR配置与实践(基础篇)3.3 BSW的通信功能

传送门 -> AUTOSAR配置与实践总目录

AutoSAR配置与实践(基础篇)3.3 BSW的通信功能

  • 一、收发过程概览
    • 1.1 发送过程概览
    • 1.2 接收过程概览
  • 二、BSW的通信功能模块组成
  • 三、收发过程解析
    • 3.1 发送过程
    • 3.2 发送后的结果确认
    • 3.3 接收过程

一、收发过程概览

1.1 发送过程概览

在这里插入图片描述

  • COM Stack 指的是通信层相应模块COM/PduR/BusIf/BusDriver,一起协作供用户完成数据发送;

  • 发送时,用户先请求COM Stack发送,COM Stack发送完毕后通知用户结果,结果可能是发送成功、发送超时、或者发送错误。

1.2 接收过程概览

在这里插入图片描述 接收时,COM Stack数据直接反馈User数据

二、BSW的通信功能模块组成

图中Bus Interface/BusTp/Bus Driver,其中Bus为了方便理解可以认为是常见的Can通信。
图中介绍了通信相关的服务层、抽象层以及驱动层的模块细分。

在这里插入图片描述

Com: Communication,通信层的功能

  • 解析报文内的信号,用户不用关心信号布局

COM模块会解析OEM给的arxml、dbc、xml等描述报文内信号layout的文件,转化成信号接口提供给SWC使用。SWC层只需调用COM接口即可完成数据收发,不用关心信号在报文内的占位。

  • 转发用户数据,用户不用关心总线类型

上层SWC发下来的信号,最先经过Com层,Com重点关心数据长度,不关心是LIN发下来,还是CAN发下来的。

PduR: 全称Protocol Data Unit Router,协议数据单元路由器,一个主要作用就是把Com发下来的PDU分发到不同的总线上(CAN/LIN等),实现PDU级别的网关,或者将不同的协议变成统一信号上传给COM。

IpduM: I-PDU Multiplexer,可选模块,使用场景为当表示CAN ID的位不足时,用户从数据字节中拿出一些字节作为协议用,而IpduM可以解析这些特殊的协议。

举例:需求要使用0x2A8 这个CAN ID来传输10个字节的车辆VIN码,而标准CAN ID一次只能传8字节数据可以分两帧来传,最前面的那个字节用作协议传输,1代表VIN码的前7个字节,2代表VIN码的后3个字节,而接收方也按对应协议解析,可以实现1个ID传输10字节的数据
在这里插入图片描述

TP: Transport Protocol,传输协议层,一般做诊断用到,发送数据流向 PduR -> Bus TP->Bus interface。如果非诊断功能,发送数据流向PduR ->Bus interface。

Interface: 与硬件无关的一层,总线特有的功能(与总线的发送和接收机制有关系),比如管理发送队列,FlexRay总线的组帧,基于时间触发的总线(LIN、Flexray)在这一层处理。

Driver: 主芯片CAN模块的驱动,主要完成芯片CAN控制器的初始化,buffer的填充以及CAN中断的实施。
Trcv Driver: 外置CAN收发器需要用到的驱动。

三、收发过程解析

3.1 发送过程

在这里插入图片描述

Step 1: SWC使用RTE接口发送数据到COM层, COM层把数据写入PDU buffer;
Step 2: COM调用PDUR触发数据的发送(PDU触发发送方式为周期或者立即,可在COM层配置);
Step 3: PDUR根据报文及总线类型选择不同的下发路径:

  • 若是普通报文,PDUR 将根据总线类型将数据转发到下层对应的BusIf层(PDUR-> BusIf);
  • 若是诊断报文,PDUR 将数据转发到下层TP层,再转到对应的BusIf层(PDUR -> TP -> BusIf);

Step 4: BusIf层根据不同的通道,把报文写入不同的队列;
Step 5: Bus Driver根据报文的优先级发送报文。

3.2 发送后的结果确认

参考上述发送过程Step6.发送完成后,由下层依次给上层PDU发送的确认(Tx_Confirmation)。数据发送后对来自底层的发送确认事件的检测方式,其中Driver层和COM层方式是可配置的

  • Bus Driver:可以选择对物理层轮询(对应Polling配置),也可以选择直接由物理层中断触发通知Bus Driver(对应Interrupt配置)

  • COM层: 处理下层信号的方式可以选择立即(对应IMMEDIATE配置)或者延迟处理(对应DEFERRED配置)

以上检测方式在此仅做了解即可,详细内容会在后续章节中展开

备注:图中物理层到SWC传递简化描述所以用了一条线,其实也是逐层上报的,和发送过程相逆。

3.3 接收过程

在这里插入图片描述

Step 1: 接收来自物理层Bus上的报文(同上述Tx_Confirmation流程,分为Polling和Interrupt方式)
Step 2: 由Driver调用RxIndication,数据被传递到Bus Interface层
Step 3: Bus Interface将数据传递到PDUR
Step 4: PDUR将数据传递到COM(同上述Tx_Confirmation流程,分为IMMEDIATE和DEFERRED方式)
Step 5: 信号通过RTE通知SWC(也可被SWC通过轮询方式读取)

传送门 -> AUTOSAR配置与实践总目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/81336.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「快学Docker」探索Docker的优势和多样化用途

「快学Docker」探索Docker的优势和多样化用途 Docker的优势Docker的多样化用途总结 Docker的优势 环境一致性:传统软件开发和部署中,环境配置常常是一个棘手的问题,不同环境之间可能存在差异,导致问题难以定位和解决。Docker通过…

golang云原生项目之:etcd服务注册与发现

服务注册与发现:ETCD 1直接调包 kitex-contrib: 上面有实现的案例,直接cv。下面是具体的理解 2 相关概念 EtcdResolver: etcd resolver是一种DNS解析器,用于将域名转换为etcd集群中的具体地址,以便应用程序可以与et…

云安全与多云环境管理:讨论在云计算和多云环境下如何保护数据、应用程序和基础设施的安全

随着云计算和多云环境的广泛应用,企业正面临着数据、应用程序和基础设施安全的新挑战。在这个数字化时代,保护敏感信息和业务运作的连续性变得尤为重要。本文将深入探讨在云计算和多云环境下如何有效地保护数据、应用程序和基础设施的安全。 章节一&…

[保研/考研机试] KY43 全排列 北京大学复试上机题 C++实现

题目链接&#xff1a; 全排列https://www.nowcoder.com/share/jump/437195121692001512368 描述 给定一个由不同的小写字母组成的字符串&#xff0c;输出这个字符串的所有全排列。 我们假设对于小写字母有a < b < ... < y < z&#xff0c;而且给定的字符串中的字…

服务器安装centos7踩坑

1、制作启动工具 下载iso https://developer.aliyun.com/mirror/?spma2c6h.25603864.0.0.20387abbo2RFbn http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.1995f5ad4AhJaW下载 UltraISO https://cn.ultraiso.net/插入u盘启动 到了如图所示页面…

线程基础和CompletableFuture异步编排

目录 一、线程回顾 1、初始化线程的 4 种方式 2、线程池的七大参数 3、常见的 4 种线程池 4、开发中为什么使用线程池 二、CompletableFuture 异步编排 1、创建异步对象 2、计算完成时回调方法 3、handle 方法 4、线程串行化方法 5、两任务组合 - 都要完成 6、两任务…

【ARM Linux 系统稳定性分析入门及渐进12 -- GDB内存查看命令 “x“(examine)】

文章目录 gdb 内存查看命令 examine 上篇文章&#xff1a;ARM Linux 系统稳定性分析入门及渐进11 – GDB( print 和 p 的使用| 和 &#xff1a;&#xff1a;的使用|ptype|{&#xff1c;type&#xff1e;} &#xff1c;addr&#xff1e; ) gdb 内存查看命令 examine examine是…

redis-数据类型及样例

一.string 类型数据的基本操作 1.添加/修改数据 set key value2.获取数据 get key3.删除数据 del key4.添加/修改多个数据 mset key1 value1 key2 value25.获取多个数据 mget key1 key2二.list类型的基本操作 数据存储需求&#xff1a;存储多个数据&#xff0c;并对数据…

云原生反模式

通过了解这些反模式并遵循云原生最佳实践&#xff0c;您可以设计、构建和运营更加强大、可扩展和成本效益高的云原生应用程序。 1.单体架构&#xff1a;在云上运行一个大而紧密耦合的应用程序&#xff0c;妨碍了可扩展性和敏捷性。2.忽略成本优化&#xff1a;云服务可能昂贵&am…

OpenCV-Python中的图像处理-视频分析

OpenCV-Python中的图像处理-视频分析 视频分析Meanshift算法Camshift算法光流Lucas-Kanade Optical FlowDense Optical Flow 视频分析 学习使用 Meanshift 和 Camshift 算法在视频中找到并跟踪目标对象: Meanshift算法 Meanshift 算法的基本原理是和很简单的。假设我们有一堆…

【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求

问题描述 使用Azure API Management, 想对一些固定的IP地址进行访问次数的限制&#xff0c;如被限制的IP地址一分钟可以访问10次&#xff0c;而不被限制的IP地址则可以无限访问&#xff1f; ChatGPT 解答 最近ChatGPT爆火&#xff0c;所以也把这个问题让ChatGPT来解答&#x…

【前端面试】中大文件上传/下载:中等文件代理服务器放行+大文件切片传输+并发请求+localstorage实现断点续传

目录 中等文件代理服务器放行&#xff1a;10MB为单位 proxy nginx 大文件切片&#xff1a;100MB为单位 断点&#xff1a;存储切片hash 前端方案A localstorage 后端方案B 服务端 上传 前端 后端 下载 前端 后端 多个大文件传输&#xff1a;spark-md5 哈希碰撞…

CSS3基础

CSS3在CSS2的基础上增加了很多功能&#xff0c;如圆角、多背景、透明度、阴影等&#xff0c;以帮助开发人员解决一些实际问题。 1、初次使用CSS 与HTML5一样&#xff0c;CSS3也是一种标识语言&#xff0c;可以使用任意文本编辑器编写代码。下面简单介绍CSS3的基本用法。 1.1…

aardio的CS架构mysql数据表查询实例

import win.ui; /*DSG{{*/ var winform win.form(text"aardio form";right759;bottom479) winform.add( buttonAdd{cls"button";text"复制";left516;top442;right587;bottom473;z11}; buttonClose{cls"button";text"退出";…

使用IDM下载视频出现“由于法律原因,IDM无法下载...

一、问题描述 由于法律原因,IDM无法下载..,如图: 二、原因分析 下载该IDM抓取的M3U8文件,查看其中的内容发现 : #EXT-X-KEY 字段已经写明了加密方式是AES-128,包含一个URI和IV值 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:8 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:…

【华为认证数通高级证书实验-分享篇2】

实验拓扑 注&#xff1a;代码块为各交换机路由器中的配置命令 配置拓扑文件 实验要求 实现全网通 实验配置 SW3 [SW3]v b 10 20 [SW3]int e0/0/1 [SW3-Ethernet0/0/1]po link-t a [SW3-Ethernet0/0/1]po de v 10 [SW3-Ethernet0/0/1]int e0/0/2 [SW3-Ethernet0/0/2]po li…

基于GUI的卷积神经网络和长短期神经网络的语音识别系统,卷积神经网的原理,长短期神经网络的原理

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 长短期神经网络的原理 基于GUI的卷积神经网络和长短期神经网络的语音识别系统 代码下载链接:基于MATLABGUI编程的卷积神经网络和长短期…

深入竞品:解读竞品分析的艺术与策略

引言&#xff1a;为何竞品分析至关重要&#xff1f; 在当今的产品环境中&#xff0c;市场变得越来越拥挤。每个角落都有新的创业公司试图创造下一个行业的颠覆者&#xff0c;同时也有成熟的巨头在不断地迭代和优化他们的产品。在这样的环境中&#xff0c;不了解您的竞争对手是…

IDEA开发项目时一直出现http404错误的解决方法

系列文章目录 安装cv2库时出现错误的一般解决方法_cv2库安装失败 SQL&#xff1e; conn sys/root as sysdbaERROR:ORA-12560: TNS: 协议适配器错误的解决方案 虚拟机启动时出现“已启用侧通道缓解”的解决方法 Hypervisor launch failed&#xff1b; Processor does not pr…

【GaussDB】 SQL 篇

建表语句 表的分类 普通的建表语句 复制表内容 只复制表结构 create table 新表名(like 源表名 including all); 如果希望注释被复制的话要指定including comments 复制索引、主键约束和唯一约束&#xff0c;那么需要指定including indexes including constraints &#xf…