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代表版本号的前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.mzph.cn/news/42365.shtml

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

相关文章

Airbnb开源数据可视化工具Visx

一、什么是visx visx 是用于 React 的富有表现力的底层可视化组件集合,结合了 d3 的强大功能来生成可视化,以及 React 更新 DOM 的诸多优势。 在 Airbnb 内部,visx 的目标是统一整个公司的可视化堆栈,在此过程中,创建了 visx 项目,从而有效的将 D3 的强大功能与 React …

内核调试之devmem直接读写寄存器

今天分享一个内核调试实用工具——devmem。 相信很多做底层驱动的人都会经常用到。 什么是devmem? 在Linux系统,如果我们想要访问某个寄存器,就需要写一个驱动程序,在驱动中映射寄存器地址,转为虚拟地址后就可以访问…

windows电脑系统自带的画图工具如何实现自由拼图

1.首先选中你要拼接的第一张图片,右键选着编辑,会自动打开自带的画图工具 然后就是打开第一张图片,如下图所示 接着就是将画布托大,如下图所示。 然后点击选择,选择下面的空白区域,选着区域的范围要比准备拼…

05-微信小程序常用组件-表单组件

05-微信小程序常用组件-表单组件 文章目录 表单组件button 按钮案例代码 form 表单案例代码 image 图片支持长按识别的码案例代码 微信小程序包含了六大组件: 视图容器、 基础内容、 导航、 表单、 互动和 导航。这些组件可以通过WXML和WXSS进行布局和样式设…

jQuery第一次接触

jQuery是一个轻量级js库 1.下载jquery库&#xff0c;网址Download jQuery | jQuery npm i jquery 2.还可以从cdn中载入jquery <script src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"> 3.j代表js&#xff0c;query代表查询&#xff0c;jQu…

超实用的40道JAVA经典算法题(含答案)

作为一名Java程序员&#xff0c;想要拿到一份满意的offer&#xff0c;就必须做好充足的准备。众所周知&#xff0c;算法可以说是大厂面试Java程序员的必问题。好的算法可以让性能得到万倍提升&#xff0c;做到毫秒级处理千万数据的程度。因此&#xff0c;算法的重要性不言而喻&…

fedora

about firewall well, I don’t know how to use fedora firewall,but it I come up with that I can use ubuntu’s ufw for blocking evil connection, download wps extremely boredness drove me to install fedora&#xff0c; It can use wps pdf&#xff0c;但我仍然…

PAT 1018 Public Bike Management

个人学习记录&#xff0c;代码难免不尽人意。 There is a public bike service in Hangzhou City which provides great convenience to the tourists from all over the world. One may rent a bike at any station and return it to any other stations in the city. The Pu…

【实用插件】ArcGIS for AutoCAD插件分享下载

ArcGIS包含一系列功能&#xff0c;其中ArcGIS for AutoCAD一个免费的可下载的AutoCAD插件&#xff0c;它可简化将CAD和GIS数据整合在一起的过程提供互操作性。 ArcGIS for AutoCAD互操作性平台将连接AutoCAD和 ArcGIS&#xff0c;以增强使用地理环境设计CAD工程图时的用户体验…

Kubernetes 企业级高可用部署

目录 1、Kubernetes高可用项目介绍 2、项目架构设计 2.1、项目主机信息 2.2、项目架构图 2.3、项目实施思路 3、项目实施过程 3.1、系统初始化 3.2、配置部署keepalived服务 3.3、配置部署haproxy服务 3.4、配置部署Docker服务 3.5、部署kubelet kubeadm kubectl工具…

程序员你可长点心吧!代码检查你得用

代码检查的重要性不言而喻&#xff0c;很多重要的项目都要做代码的检查&#xff0c;及时纠正代码中的错误&#xff0c;确保代码的可读性、可维护性和可拓展性&#xff0c;从而保证软件的质量。 一、代码检查的定义 代码检查是指通过对程序代码的独立检查来提高代码质量和开发效…

论坛项目之用户部分

注册接口 实现思路 1.特殊字段检查&#xff08;比如性别没有给出需要给出默认值&#xff09; 2.对比检查两次输入的密码是否一致&#xff0c;不一致报错 3.利用UUID生成随机‘盐’值&#xff0c;并使用密码进行MD5加密后与‘盐’进行拼接&#xff0c;生成加密后的密码 4.创建U…

什么是P2P?

P2P (Peer-to-Peer) 是一种分布式的网络架构&#xff0c;其中各个节点&#xff08;通常被称为“peers”或“节点”&#xff09;直接进行数据共享和交换&#xff0c;而无需依赖中央服务器。P2P 网络强调平等的参与和共享&#xff0c;每个节点既可以是数据的消费者&#xff08;下…

推进深度融合 打造智慧媒体

以下内容来自于易知微官网&#xff0c;点击一下&#xff0c;即可进入官网了解详情。 注意&#xff1a;案例数据均为虚拟数据 数字改革是一场波及经济社会发展全局、涵盖生产力到生产关系的全方位变革。在数字化时代&#xff0c;以数字改革赋能媒体深度融合已然成为时代所向、…

每日一题——连续子数组的最大和

题目 输入一个长度为n的整型数组array&#xff0c;数组中的一个或连续多个整数组成一个子数组&#xff0c;子数组最小长度为1。求所有子数组的和的最大值。 数据范围:1<n<2105 −100<a[i]<100 要求:时间复杂度为 O(n)&#xff0c;空间复杂度为 O(n) 示例1 输入…

ubuntu中安装python

最简单方便的是 apt 使用第三方的 ppa 源&#xff0c;然后直接 apt 安装 python3.9 安装 software-properties-common 获取add-apt-repository命令&#xff1a;apt install -y software-properties-common添加第三方的 ppa 源&#xff1a;add-apt-repository ppa:deadsnakes/p…

Spring系列篇--关于Spring Bean完整的生命周期【附有流程图,超级易懂】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Spring的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Spring Bean是单例模式还是多例模式 二…

Kafka如何保证消息⼀定能被消费

Kafka 通过多种机制来保证消息一定能被消费&#xff0c;从而实现数据的可靠性和持久性。 以下是一些常见的方法和策略来提高消息的可靠性&#xff1a; 复制机制&#xff1a; Kafka 使用了分区和副本的概念。每个分区可以有多个副本&#xff0c;分布在不同的 Broker 上。当消息…

k8s 自身原理 3

前面有分享到 master 主节点上的 四个组件&#xff0c;etcd&#xff0c;ApiServer&#xff0c;scheduler&#xff0c;controller manager 接下来我们分享一波 woker 节点上的组件&#xff0c;xdm 还记得 worker 节点上都有什么吗&#xff1f; kubeletkube-proxy实际的服务对应…

【数据结构】栈和队列常见题目

文章目录 有效的括号用队列实现栈两个队列实现栈一个队列实现栈用栈实现队列设计循环队列最小栈栈的压入&弹出序列逆波兰表达式队列:先进先出 栈:后进先出 有效的括号 https://leetcode.cn/problems/valid-parentheses/ class Solution {public:bool isValid(string s) {…