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

电子电器架构 --- 车载网关的设计

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。
生活中有两种人,一种人格外在意别人的眼光;另一种人无论别人如何,他们始终有自己的节奏。
过度关注别人的看法,会搅乱自己的步调,让自己更加慌乱。与其把情绪的开关交到别人手中,不如把有限的精力用在提升自己上,久而久之,你自然会更加优秀。

时间不知不觉中,来到新的一年。2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。

在这里插入图片描述

一、整车车载网关设计概念

对于网关,应该单独分配请求和相应的通道,另外基于功能应用场景,通信通道有优先级。例如,像TesterPresent这类用于维持ECU处于非默认会话状态的功能请求,在通过车载网关传输时,其优先级应始终高于物理请求。

关于车载网关通道分配和优先级的问题,网关应该为请求和响应分配单独的通道,并且根据功能应用场景,通信通道要有优先级。特别是像TesterPresent这样的功能寻址请求,用于维持ECU保持在非默认会话状态,它们的优先级应该高于物理寻址请求。

因为功能寻址发送的对象多数是多个ECU同时受到,特别是整车刷写模式情况下,用于Service 3E 80保持当前会话模式下。

需要明确几个概念。什么是车载网关?车载网关在汽车电子系统中负责不同网络之间的通信,比如CAN、LIN、FlexRay、以太网等。它处理不同协议之间的消息转发,确保各电子控制单元(ECU)之间的有效通信。

请求和响应通道分开。这可能类似于车载网络中的全双工通信,允许同时发送和接收数据,但在这里可能指的是逻辑上的分离,比如不同的消息队列或优先级通道,确保请求和响应不会互相阻塞。

单独分配请求和响应通道可能意味着在网关中为不同方向或类型的消息设立不同的处理队列或缓冲区。例如,请求通道专门处理从诊断工具到ECU的请求,而响应通道处理ECU返回的响应。这样可以避免请求和响应之间的竞争,提高处理效率,并确保关键响应及时传送。

二、网关设计遵循基本原则

在车载网关的设计中,为请求和响应分配独立通道并基于功能优先级管理通信流量,是确保系统可靠性和实时性的关键。

1、通道分离策略

请求通道专门处理从诊断工具或上层控制器发送至ECU的指令(如诊断请求TesterPresent、编程指令等)。

响应通道负责传输ECU对请求的反馈(如诊断响应、状态报告等)。

物理通道处理来自传感器、执行器等实时设备的请求(如车速、刹车信号)。

优势:避免请求与响应的资源竞争,降低延迟,提升关键消息的确定性。

2、优先级动态分配

最高级,比如诊断保持类消息(如TesterPresent),确保ECU会话不中断。

常规:安全相关物理请求(如紧急制动、电池管理),常规物理请求(如空调控制、信息娱乐),非实时数据传输(如日志上传、软件更新包)。

实现方式:

CAN总线:使用更小的消息ID(如0x700)赋予TesterPresent最高优先级。

以太网:通过VLAN标签或DiffServ字段标记优先级。

网关调度器:基于消息类型和源地址动态调整队列顺序。

3、TesterPresent的高优先级必要性

会话维持:若TesterPresent未被及时处理,ECU可能退回默认会话,导致诊断中断(如刷写失败)。

容错机制:网关需周期性检测诊断会话状态,在丢包时自动重传TesterPresent。

带宽预留:为诊断通道保留最小带宽(如CAN总线中限制物理请求的带宽占用)。

4、网关架构设计

多队列调度器:

±--------------------+
| 网关接收层 |
| - 分类器按协议/功能 |
±---------±---------+
|
±---------v----------+
| 优先级队列管理 |
| - 高优先级队列(诊断)|
| - 中优先级队列(安全)|
| - 低优先级队列(常规)|
±---------±---------+
|
±---------v----------+
| 调度器 |
| - 加权轮询(WRR) |
| - 抢占式调度 |
±---------±---------+
|
±---------v----------+
| 协议转换与转发 |
±--------------------+

5、流量控制与优化

速率限制对非关键物理请求设置速率上限,防止其阻塞高优先级通道。消息聚合是对低频物理请求(如车门状态)进行批量传输,减少总线负载。

超时机制是设定响应超时阈值,避免因ECU无响应导致的通道阻塞。

6、测试与验证

仿真测试:使用CANoe/CANalyzer模拟高负载场景,验证TesterPresent的实时性。

压力测试:注入大量物理请求,确保诊断通道的带宽预留有效。

故障注入:模拟网络丢包或ECU无响应,检验网关的重传与会话恢复能力。

7、实际部署建议

协议兼容性:适配不同OEM的诊断协议(如UDS、KWP2000),统一映射至高优先级。

动态配置:通过OTA更新优先级策略,适应新增功能或法规变化。

日志记录:记录消息处理延迟和丢包率,用于后续优化。

车载网关能够在复杂的多协议环境中,确保关键诊断功能的可靠性,同时平衡实时物理请求的需求,从而提升整车系统的安全性与可维护性。

在这里插入图片描述

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者

相关文章:

  • [特殊字符]Meilisearch:AI驱动的现代搜索引擎
  • 【MyBatis-7】深入理解MyBatis二级缓存:提升应用性能的利器
  • 从0开始学习大模型--Day05--理解prompt工程
  • STL-list
  • DA14585墨水屏学习
  • LLMs之ChatGPT:《Connecting GitHub to ChatGPT deep research》翻译与解读
  • [学习]RTKLib详解:sbas.c与rtcm.c
  • cursor sign in 网页登录成功,sursor软件里一直登陆不成功没有登陆信息
  • 扫雷革命:矩阵拓扑与安全扩散的数学之美
  • [架构之美]Spring Boot多环境5种方案实现Dev/Test/Prod环境隔离
  • 二、Hive安装部署详细过程
  • 深度学习中的目标检测:从 PR 曲线到 AP
  • 各种音频产品及场景总结
  • 【生存技能】ubuntu 24.04 如何pip install
  • 好用的播放器推荐
  • MySQL索引详解(上)(结构/分类/语法篇)
  • expo多网络请求设定。
  • Pycharm(二十)张量的运算与操作
  • 泛型加持的策略模式:打造高扩展的通用策略工具类
  • 流动式起重机Q2考试的实操部分,重点复习内容包括哪些方面?
  • 网络主播直播泄机密,别让这些“小事”成威胁国家安全的“突破口”
  • 工行回应两售出金条疑似有杂质:情况不属实,疑似杂质应为金条售出后的外部附着物
  • 方正证券总裁何亚刚到龄退休,54岁副总裁姜志军接棒
  • 抗战回望21︱《“良民”日记》:一个“良民”在沦陷区的见闻与感受
  • 湖南张家界警方公告宣布一名外国人居留许可作废
  • 现场|万米云端,遇见上博