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

news2025/1/13 10:04:40

传送门 -> 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代表版本号的前7个字节,2代表版本号的后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配置与实践总目录

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像编程补充:计算机图形学和数字图像处理概念

一、计算机图形学 国际标准化组织(ISO)的定义:计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科。 1.1什么是计算机图形学 图形的构成要素: 图形的广义概念&#xff1…

TCP拥塞控制简单理解

1.TCP的控制机制 序号 TCP通过序号可以实现一下几个功能: 1.确认应答处理。发送端收到接收端的确认应答,可以得知某些数据包被接收端接收了 2.顺序控制。接收端可以利用序号对接收到的报文进行排序 3.重发控制。如果发送端没有收到确认应答&#xff0c…

【MT32F006】MT32F006之定时器延时

本文最后修改时间:2023年03月30日 一、本节简介 本文介绍如何使用MT32F006的定时器做us、ms级的延时。 二、实验平台 库版本:V1.0.0 编译软件:MDK5.37 硬件平台:MT32F006开发板(主芯片MT32F006) 仿真器…

【C语言】每日一题(找到所有数组中消失的数字)

找到所有数组中消失的数字,链接奉上。 这里简单说一下,因为还没有接触到动态内存,数据结构,所以知识有限,也是尽力而为,结合题库的评论区找到了适合我的解法,以后有机会,会补上各种…

麻辣烫数据可视化,麻辣烫市场将持续蓬勃发展

麻辣烫,这道源自中国的美食,早已成为人们生活中不可或缺的一部分。它独特的香辣口味,让人忍不住每每流连忘返。与人们的关系,简直如同挚友一般。每当寒冷的冬日或疲惫的时刻,麻辣烫总是悄然走进人们的心房,…

Winload.efi丢失或损坏怎么办?

Winload.efi是一个EFI(或可扩展固件接口)文件。可执行的EFI文件适用于基于计算机系统的UEFI,并将文件加载到计算机引导加载程序的执行任务。它们包含有关操作系统引导过程应如何进行的重要数据。因此,Winload.efi文件对于成功启动…

大数据Flink学习圣经:一本书实现大数据Flink自由

学习目标:三栖合一架构师 本文是《大数据Flink学习圣经》 V1版本,是 《尼恩 大数据 面试宝典》姊妹篇。 这里特别说明一下:《尼恩 大数据 面试宝典》5个专题 PDF 自首次发布以来, 已经汇集了 好几百题,大量的大厂面试…

第一章 初识Linux(含VMware安装Ubuntu、CentOS、Windows、FinalShell、快照)

目录 一、 课程的介绍  1.为什么要学习Linux  2.课程的安排  3.如何学习Linux 二、操作系统概述  1.学习目标  2.计算机的硬件和软件  3.什么是操作系统  4.常见的操作系统  5.本小节的总结 三、初识Linux  1.学习目标  2.Linux的诞生  3.Linux的内核  …

CentOS下MySQL的彻底卸载的几种方法

这里我为大家详细讲解下“CentOS下MySQL的彻底卸载的几种方法”的完整攻略。 一、关闭MySQL服务 在开始操作之前,需要先关闭MySQL服务。可以使用以下命令来关闭MySQL服务: systemctl stop mysqld 或者 service mysqld stop 二、使用yum命令卸载MySQL…

Oracle的学习心得和知识总结(二十七)|Oracle数据库数据库回放功能之论文一翻译及学习

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

Kotlin开发笔记:集合和逆变协变

Kotlin开发笔记:集合和逆变协变 Kotlin中的集合 基本的集合类型 Kotlin中的集合类型和Java差不多,不过有些在名称上可能有出入,下面是Kotlin中的一些基本集合类型: 类型介绍Pair两个值的元组Triple三个值的元组Array经过索引的…

word内怎么快速选择图片

前一阵子想把图片中央对齐,这就需要一点一点向下划那个滚轮,非常麻烦。 新建个文档演示下: 这样的内容一共有三页。太乱?不我觉得我平时看文献得时候脑子里就是上面这个情况,很有代入感。 选择选择,在左侧出…

QGraphicsView 实例3地图浏览器

主要介绍Graphics View框架&#xff0c;实现地图的浏览、放大、缩小&#xff0c;以及显示各个位置的视图、场景和地图坐标 效果图: mapwidget.h #ifndef MAPWIDGET_H #define MAPWIDGET_H #include <QLabel> #include <QMouseEvent> #include <QGraphicsView&…

vue实现文件上传,前后端

前端封装el-upload组件&#xff0c;父组件传值dialogVisible&#xff08;用于显示el-dialog&#xff09;&#xff0c;子组件接收&#xff0c;并且关闭的时候返回一个值&#xff08;用于隐藏el-dialog&#xff09;,最多上传五个文件&#xff0c;文件格式为.jpg\pdf\png <tem…

Redis缓存问题(穿透, 击穿, 雪崩, 污染, 一致性)

目录 1.什么是Redis缓存问题&#xff1f; 2.缓存穿透 3.缓存击穿 4.缓存雪崩 5.缓存污染&#xff08;或满了&#xff09; 5.1 最大缓存设置多大 5.2 缓存淘汰策略 6.数据库和缓存一致性 6.1 4种相关模式 6.2 方案&#xff1a;队列重试机制 6.3 方案&#xff1a;异步更新缓…

Lnton羚通关于Optimization在【PyTorch】中的基础知识

OPTIMIZING MODEL PARAMETERS &#xff08;模型参数优化&#xff09; 现在我们有了模型和数据&#xff0c;是时候通过优化数据上的参数来训练了&#xff0c;验证和测试我们的模型。训练一个模型是一个迭代的过程&#xff0c;在每次迭代中&#xff0c;模型会对输出进行猜测&…

mqtt开关实现

这个项目的主要需求其实并不复杂&#xff0c;只是需要让用户可以在小程序上控制预约后的自习室座位的灯和柜子等的开关。这里的关键是需要通过一个网络应用来转发用户对智能硬件的控制请求。 物联网应用的主要几个难点及对应的思路如下&#xff1a; 通信数据量小、通信环境不…

优酷视频码率、爱奇艺视频码率、B站视频码率、抖音视频码率对比

优酷视频码率、爱奇艺视频码率与YouTube视频码率对比 优酷视频码率&#xff1a; 优酷的视频码率可以根据视频质量、分辨率和内容类型而变化。一般而言&#xff0c;优酷提供了不同的码率选项&#xff0c;包括较低的标清&#xff08;SD&#xff09;码率和较高的高清&#xff08;…

[Openwrt-21.02]MT7981 增加 USB RNDIS功能支持操作说明

环境说明 ubuntu18.04编译环境,openwrt-21.02版本,MT7981开发板 openwrt配置项 make menuconfig配置 ​​ ​​​​​​ 配置后.config配置 CONFIG_PACKAGE_kmod-usb-core=y CONFIG_PACKAGE_kmod-usb-ehci=y CONFIG_PACKAGE_kmod-usb-net=y CONFIG_PACKAGE_kmod-usb-net-…

centOS7.6虚拟机设置桥接方式联网

1、虚拟机设置 设置添加进来的虚拟机&#xff0c;选择“网络适配器”&#xff0c;网络连接方式选择“桥接模式”。点击确定。 2、虚拟网络编辑器设置 VMware中选择编辑中的“虚拟机网络编辑器”&#xff0c;选中桥接模式&#xff0c;“已桥接至”选择当前本机电脑的网络信息。…