汽车工程师(DRE)-矩阵路由表拓扑图解析

news/2024/9/13 22:40:16/ 标签: 汽车, TBOX, 路由矩阵
一、背景说明

距离上次更新已经两年多了,我也是从当初的实习生,到现在已经工作时常两年半了。但是相比较于写代码,我还是更倾向于产品经理这一类工作,所以和领导沟通后也是成功转岗,成为了一名汽车零部件工程师(业内专业名称叫做DRE)。在积累了两年经验后果断选择了跳槽,现在虽然工作相比之前很累,但好在收入翻番了,近期有时间都会逐步开始更新自己在工作中学习到的经验,知识,大佬的话不对的地方也请指正。

二、正文
1.前言

信号列表(矩阵),路由表和网络拓扑图是主机厂需要在项目立项后,在前期节点前释放给供应商去开发相关零部件(网关,TBOX等)的技术性文件,通常由主机厂的平台架构部提供。通常用于新开发的项目或是临时改制件(例如冬季标定)的开发,主机厂需要及时释放给供应商,以免影响后续到件的实车试验。

2.网络拓扑图

网络拓扑图一般是用图来描述TBOX上有几路CAN,每路CAN上分别对应哪些ECU功能。用某车型的网络拓扑图举例来说:(如图)

由图可知,该TBOX包含6路CAN,其中4路使用CAN通信,2路使用CANFD通信。通常情况下,TBOX还会预留1-2路CAN以备特殊情况。

CAN通信:N_CAN(新能源CAN,New Energy)

B_CAN(车身CAN,Body)

C_CAN_2(底盘CAN2,Chassis)

I_CAN(信息CAN,Information)

CANFD通信:P_CAN(动力CAN,Powertrain)

C_CAN_1(底盘CAN1,Chassis)

网络控制系统中全网使用Autosar 网络管理。CAN 波特率为500kbit/s、CANFD 波特率500Kbit/s&2Mbit/s。

3.信号列表(矩阵)与路由表

信号列表描述的是对应CAN上的不同控制器上所记录的信号。

路由表中分为直接报文路由(Direct Routing)和周期信号路由(Cycle Routing),记录的是每条CAN上由别的CAN转过来的信号,这里的转信号其实相当于“复制”信号。

举例说明:

这里拿较为简单的举例来说明,网络拓扑图如图所示。该模块主要是3路CAN加1路诊断CAN。

直接报文路由信号举例:

该网关路由表第9行控制器MFS_2记录如图所示:                               (MFS为方向盘总成信号)

(控制器名称)MFS_2  (地址)321  ---->     360(地址)

        属于CAN3                              属于CAN1

路由表上的信息说明该信号由CAN3转(复制)到了CAN1上,理论上我们从CAN3和CAN1的信号列表中都能找到该信号。如下图所示:

  CAN3上的MFS_2信号     

CAN1上由CAN3转来的MFS_2信号

由此我们可以在CAN1的信号列表中Message ID为360的地址上看到这个从CAN3控制器MFS_2上转来的所有信号。无特殊说明,信号全转(复制)。

信号列表上画删除线的信号应该是要删除的或者是预留(Reserved)防止后面开发可能会再进行修改

假设在排查问题时,我们需要在CAN1上找到该信号,这时实际情况是未找到该信号,这时就有可能是以下两种情况导致,我们返回CAN3上(源头)寻找该信号:

如果CAN3存在该信号,则有可能是网关发生问题,因为网关未实现转信号功能。

如果CAN3也没有该信号,那就有可能是控制器问题(例如MFS_2),控制器未采集到该信号。

新增信号如果我们需要新增信号,首先确定是要在哪路CAN上的哪路控制器上新增信号,通常需要确定一个地址(例如0xABC),如果该地址上存在空余位置,且满足新增信号所需的位数,就可以新增。

通常一个地址ID(例如0xABC)包含64位(bit),新增的信号如果是类似于开/关,只有两个选项,则只需要占1位(1或0,1代表开启,0代表关闭或默认值)3-4个选项,则需要占2位(00/01/10/11)以此类推,向上兼容。

周期信号路由(Cycle Routing

周期路由同样涉及转信号,但不同于直接路由的是它更偏向于“动态化”,使用工具抓取信号报文时,它会周期性地跳数据。它的初始值为无效值,即无信号输入时,工具抓取的信号报文显示会是一个无效的初始值。当有事件发生即信号发生变动时,报文抓取工具会循环周期性地显示新的信号数据。周期路由的信号通常也存在一个超时时间,通常为2s,信号在超时情况发生后,会维持当前的信号报文2s,之后跳回到之前未有时间发生时的无效值(默认值)。

举例说明我们使用工具抓取信号报文时,信号会周期性地往上报,当我们使得新的事件发生,例如下达解闭锁指令,对应的信号路由会发生变化,如果新的数据只是持续了一段时间后又转回了默认值,这就说明了该信号指令出现了超时现象。

拆帧转信号:周期信号不同于直接路由,直接路由通常是一条CAN上转一个控制器的所有信号到另一条CAN上,如果我们并不需要这么多信号,或者需要的信号来自多个不同的控制器,就可以使用周期路由来转发这些个别信号。我们可以将这些个别数据信号通过转信号的方式转到一个位置Message ID上,转后的地址可能会有变动,但可以方便我们更快捷地抓取我们所需要的信息。


http://www.ppmy.cn/news/1475630.html

相关文章

解锁AI大模型潜能:预训练、迁移学习与中间件编程的协同艺术

在人工智能的浩瀚星空中,大型预训练模型(Large Language Models, LLMs)犹如璀璨的星辰,引领着技术革新的浪潮。这些模型通过海量数据的滋养,学会了理解语言、生成文本乃至执行复杂任务的能力。然而,要让这些…

51单片机8(LED闪烁)

一、软件设计: 1、本章所要实现的功能是:点亮D1指示灯,即让P2.0管脚输出一个低电平。完成后可再控制D1指示灯闪烁,即间隔一段时间点亮和熄灭D1指示灯。那么如何让LED进行闪烁,那么只需要循环的让这个低指针先亮一会&a…

如何利用大模型提高金融合规场景的工作效率?

金融是强监管行业,遵守法律法规、行业标准和内部政策是金融行业的基本要求。在强监管合规环境下,金融机构需要降低合规风险并提升服务质量。 人工审核效率低、成本高,且存在主观性导致的风险。过去,金融机构基于规则和NLP模型构建…

使用Python + Scrapy + Django构建企业级爬虫平台

引言 在大数据时代,信息就是力量。对于企业而言,掌握行业动态、竞品分析、市场趋势等关键数据,是决策制定的重要依据。然而,手动收集这些信息既费时又低效。因此,自动化数据采集变得至关重要。本文将向你展示如何使用…

在Linux系统实现瑞芯微RK3588部署rknntoolkit2进行模型转换

一、首先要先安装一个虚拟的环境 安装Miniconda包 Miniconda的官网链接:Minidonda官网 下载好放在要操作的linux系统,我用的是远程服务器的linux系统,我放在whl这个文件夹里面,这个文件夹是我自己创建的 运行安装 安装的操作都是yes就可以了 检查是否安装成功,输入下面…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(四)支持json和xml的显示

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、相应的界面前端代码 <template><div class"formDesign"><FlowDesign :process"process" :fields"fields" :readOnly"readOnly&quo…

全面解析BPMN、CMMN、DMN与XML

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 全面解析BPMN、CMMN、DMN与XML 前言BPMN&#xff08;业务流程模型与标记法&#xff09;定义与用途…

LabVIEW液压数据采集测试系统

液压系统是装载机的重要组成部分&#xff0c;通过液压传动和控制实现各项作业功能&#xff0c;如提升、倾斜、转向等。液压系统的性能直接影响装载机的作业效率和稳定性。为了保证装载机液压系统的正常运行和优化设计&#xff0c;需要对其进行数据采集和测试。本文介绍了一套基…

【Linux 配置静态IP】Ubuntu20.04

最近学习网络编程&#xff0c;为了方便学习需要Ubuntu配置静态IP&#xff0c;网上看了好多贴子跟着试了下可以实现&#xff0c;但重启虚拟机后有时就无法连接&#xff0c;总之各种各样问题&#xff1b;相关的配置方法也比较凌乱&#xff0c;有用netplan 或者 ifupdown ,笔者简单…

拓扑学习系列(10)复形COMPLEXES进一步理解学习

定义 1.1&#xff1a;在集合 V 上的一个单纯复合体&#xff08;simplicial complex&#xff09;是满足以下两个要求的非空子集合的集合 K&#xff1a; 对于 V 中的每个顶点 v&#xff0c;单点集合 {v} 属于 K&#xff0c;如果 τ 属于 K 且σ⊂τ&#xff0c;则 σ 也必须属于…

STM32入门开发操作记录(三)——按键控制LED

目录 一、模块化二、LED交替闪烁1. LED.c2. LED.h3. 主函数 三、按键控制LED1. Key.c2. Key.h3. LED.c4. LED.h5. 主函数 一、模块化 前篇介绍了如何向项目添加模块&#xff0c;本篇将进一步介绍模块的编写与封装。随着模块的增加&#xff0c;需要用到Manage Project Items&…

Qt MV架构-代理模型

一、基本概念 代理模型可以将一个模型中的数据进行排序或者过滤&#xff0c;然后提供给视图进行显示。 Qt中提供了QSortFilterProxyModel作为标准的代理模型来完成模型中数据的排序和过滤。 要使用一个代理模型&#xff0c;则只需要为其设置源模型&#xff0c;然后再视图中使…

Spark-RDD和共享变量

概览 每个Spark应用程序都由一个driver program 组成&#xff0c;该驱动程序运行我们编写的main函数&#xff0c;并在集群上执行各种 并行 操作。Spark提供的主要抽象是一个 弹性分布式数据集&#xff08;RDD&#xff09;&#xff0c;它是一个跨集群节点分区的元素集合&#x…

Linux——多线程(五)

1.线程池 1.1初期框架 thread.hpp #include<iostream> #include <string> #include <unistd.h> #include <functional> #include <pthread.h>namespace ThreadModule {using func_t std::function<void()>;class Thread{public:void E…

uniapp vue3微信小程序如何获取dom元素

在网上很多人说可以通过下面两种形式获取到指定dom元素 // 定义ref <div ref"box"></div>//1通过this.$refs获取dom元素 this.$refs.box//2通过ref(null)获取dom元素 let box ref(null)第一种方式在vue2中是可以获取到的&#xff0c;但是在vue3 setup中…

LVS集群(二)

DR模式 LVS三种模式 nat地址转换 DR直接路由模式 tun隧道模式 DR模式的特点&#xff1a; 调度器在整个lvs集群中是最重要的&#xff0c;在nat模式中&#xff0c;负责接收请求&#xff0c;同时根据负载均衡算法转发流量&#xff0c;响应发送给客户端 DR模式&#xff1a;调度…

多头注意力机制详解:多维度的深度学习利器

引言 多头注意力机制是对基础注意力机制的一种扩展&#xff0c;通过引入多个注意力头&#xff0c;每个头独立计算注意力&#xff0c;然后将结果拼接在一起进行线性变换。本文将详细介绍多头注意力机制的原理、应用以及具体实现。 原理 多头注意力机制的核心思想是通过多个注…

ES6 Generator函数的异步应用 (八)

ES6 Generator 函数的异步应用主要通过与 Promise 配合使用来实现。这种模式被称为 “thunk” 模式&#xff0c;它允许你编写看起来是同步的异步代码。 特性&#xff1a; 暂停执行&#xff1a;当 Generator 函数遇到 yield 表达式时&#xff0c;它会暂停执行&#xff0c;等待 …

51单片机3(51单片机最小系统)

一、序言&#xff1a;由前面我们知道&#xff0c;51单片机要工作&#xff0c;光靠一个芯片是不够的&#xff0c;它必须搭配相应的外围电路&#xff0c;我们把能够使51单片机工作的最简单&#xff0c; 最基础的电路统称为51单片机最小系统。 二、最小系统构成&#xff1a;&…

阿里云产品流转

本文主要记述如何使用阿里云对数据进行流转&#xff0c;这里只是以topic流转&#xff08;再发布&#xff09;为例进行说明&#xff0c;可能还会有其他类型的流转&#xff0c;不同服务器的流转也可能会不一样&#xff0c;但应该大致相同。 1 创建设备 具体细节可看&#xff1a;…