CAN 网络介绍

news2025/1/22 16:36:51

在这里插入图片描述

背景

在T-Box 产品开发过程中,我们离不开CAN总线,因为CAN总线为我们提供了车身的相关数据,比如,车速、油耗、温度等。用于上报TSP平台,进行国标认证;也帮助我们进行车身控制,比如车门解锁/闭锁,鸣笛;但是实际上对整车CAN网络并不了解,比如当一个小白对你提出以下问题:

  • 车身CAN网络分为几类?为什么分类?
  • 以及网关的存在作用是什么?

当你不能回答上述简单问题时,你怎么好意思说整天和CAN接触呢。因此本文的目的是进行基本的CAN知识介绍,对数据在整车ECU中流转能够加深理解。

CAN

传统的燃油车,CAN网络可以分为5条CAN总线。分别为动力总成CAN、地盘控制CAN、车身控制CAN、娱乐系统CAN、诊断控制CAN。

PT CAN (PowerTrain CAN ) 动力总成CAN总线

PT CAN负责车辆动力,是整车CAN网络信号优先级及信号传输速率最高的一条CAN总线。一般有以下ECU:

  • ECM ( Engine Control Module ),发动机控制模块。
  • SRS ( SupplementalRestraintSystem),电子安全气囊。
  • BMS ( Battery Management System ),电池管理系统。
  • EPB Electronic Park Brake,电子驻车系统。

该网络传输关于发动机、变速器、电动机、电池、充电系统等的实时数据。它确保车辆的动力系统能够协调工作,优化性能和燃油效率(对于燃油车)或电池效率(对于电动车)。

CH CAN (Chassis CAN) 底盘控制CAN总线

CH CAN负责汽车底盘及4个轮子的制动/稳定/转向,由于涉及整车制动/助力转向等, 所以其网络信号优先级也是较高的。一般有以下ECU:

  • ABS ( Antilock Brake System ,防抱死制动系统。
  • ESP(Electronic Stability Program),车身电子稳定系统。
  • EPS(Electric Power Steering),电子转向助力。

它传输的内容包括车辆的动态控制信息,如制动系统的响应、车辆稳定性控制(如电子稳定程序ESP)、轮胎压力监控等。

Body CAN车身控制总线

Body CAN负责车身上的一些提高舒适性/安全性的智能硬件的管理与控制,其网络信号优先级较低, 因为以上设备都是辅助设备,一般有以下ECU:

  • AC ( Air Condition ),空调。
  • AVM(Around View Monitor),360环视。
  • BCM(Body Control Module),天窗, 车窗, 雾灯, 转向灯, 雨刮等。
  • IMMO(Immobilizer),发动机防盗系统。
  • TPMS(Tire Pressure Monitoring System),胎压监控系统。

车身CAN网络负责控制与车身相关的所有电气系统,涵盖 车窗、门锁、座椅调节、灯光系统、空调系统等。该网络主要传输关于车身控制的信息,如车窗升降、车门状态、电动座椅调节、车灯开关等。

Info CAN ( Infomercial CAN ) 娱乐系统总线

Info CAN是辅助可选设备, 所以优先级也是较低的,主要负责车身上的一些提高娱乐性的智能硬件的管理与控制,一般有以下ECU:

  • VAES( Video Audio Entertainment System),车载娱乐系统(中控)。
  • IPK(Instrument Pack),组合仪表, 当今的数字仪表, 基本有音乐, 地图, 通话等娱乐功能.。

该网络用于控制车内的 信息娱乐系统(如多媒体系统、导航、通信系统)以及 仪表盘 等。

DiagCAN ( Diagnose CAN ) 诊断控制总线

DiagCAN总线主要提供远程诊断功能,只有一个ECU:

  • Telematics BOX,简称车载T-BOX。

诊断CAN网络用于车辆的 故障诊断故障码 读取。它提供了对所有控制单元的访问,帮助维修人员或车辆的诊断工具读取、清除故障码、检查系统状态等。

为什么需要划分不同的CAN网络

从结论出发,我们知道传统燃油车分为5个网络CAN。但是为什么会划分这五类呢?有以下几点原因:

  1. 不同功能需求: 汽车包含多个子系统(如发动机控制系统、车身控制系统、娱乐系统等),这些系统的工作环境和需求差异很大。通过分为不同的 CAN 网络,可以确保各系统之间的独立性和稳定性。
  2. 避免数据冲突: 如果所有控制单元都连接在同一个 CAN 网络上,数据量会非常大,可能导致数据冲突、丢失或者延迟。将系统分开,可以减少数据传输的竞争,提高效率。
  3. 提高系统可靠性:如果某一 CAN 网络出现故障,其他网络可以继续工作,避免全车系统瘫痪
  4. 功能隔离: 例如,安全相关系统和娱乐系统需要严格分开,以提高车内通信系统的安全性。

从CAN网络的波特率划分,也可以分为以下4类:

  • 高速度 CAN(High-Speed CAN,通常为 500kbps 或 1Mbps)。主要用于关键系统,对时效性要求高的子系统。比如动力PT CAN、CH CAN。
  • 中速 CAN(Medium-Speed CAN,通常为 125kbps 或 250kbps)。主要用于数据传输速率不需要太高,但还是要求一定的响应速度。比如body CAN。
  • 低速 CAN(Low-Speed CAN,通常为 10kbps 或 20kbps)。主要用于传输相对较少的数据,且容忍一些延迟,比如info CAN。
  • 诊断 CAN(Diagnostic CAN)。这个网络主要用于与车辆的 诊断工具维修设备 进行通信。

CAN 网络的连接器 ——网关

如上所述,不同的CAN网络具备不同的波特率,它们之间是如何实现交互的呢?答案就是CAN网关。

CAN网关是整个CAN网络的核心, 它是不同CAN子网络或系统之间的桥梁。CAN网关用于在多个CAN网络之间传递信息,确保不同子系统或网络能够无缝地通信和协作。它的主要作用可以归纳为以下几个方面:

  1. 跨网络通信。比如动力系统和车身系统进行数据交换,使得系统能够协同工作。
  2. 数据过滤与映射。CAN网关可以对通过它传输的数据进行过滤,只允许特定的数据或信息通过。这有助于减少网络负担,避免无关数据占用带宽。也可以达到安全的目的。
  3. 协议转换。CAN网关有时不仅仅是传递CAN数据,还能够进行协议转换。例如,一些高端网关支持将CAN协议转换为其他协议,如LIN协议FlexRay协议Ethernet协议等。
  4. 故障隔离和保护。如果某个网络(如底盘CAN)发生故障,CAN网关可以通过隔离故障网络来保护其他子系统(如动力系统、车身系统)继续工作。
  5. 诊断和故障码传递。CAN网关还可以用于将来自各个子网络的故障码汇总,并传递到诊断设备或中央控制系统。这有助于集中诊断和故障检测,方便维修和维护。

CAN 网络拓扑,大致如下:

在这里插入图片描述

示例

仪表显示发动机转速

  1. 发动机的转速是从PT CAN中的ECM 模块发送信号,PT CAN 网络中所有的ECU都可以获取到该信息。
  2. 网关收到PT CAN 网络中的发动机转速信息后,会将其转换为其它CAN 网络对应波特率,分别在CAN 网络中广播。
  3. info CAN 网络中的 IPK模块收到 发动机转速信息后,就可以显示了。

数据流图大致如下:

在这里插入图片描述

仪表告警安全带未扣紧并报警

安全带未扣紧需求,一般有两个前置条件。

  1. 车速大于5Km/h。可通过 PT CAN 网络中的 VSS (车速传感器)获取。
  2. 安全带未扣紧。可通过SCM(Seat Control Module座椅控制模块,能够检测乘客是否已经坐在座位上,以及安全带是否已经扣紧。

一般会进行仪表告警显示,以及蜂鸣器报警。数据流图大致如下:
在这里插入图片描述

总结

本文介绍了汽车中不同类型的CAN总线,包括动力总成CAN、底盘控制CAN、车身控制CAN、娱乐系统CAN和诊断控制CAN。每种CAN网络负责不同的车辆子系统,以满足功能需求、提高系统可靠性并避免数据冲突。文章还解释了CAN网关的作用,它作为不同CAN子网络之间的桥梁,支持跨网络通信、数据过滤、协议转换和故障隔离,确保车辆各系统的高效协作和稳定运行。

参考:https://blog.csdn.net/u010783226/article/details/121958086

在这里插入图片描述

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

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

相关文章

【C++】在线五子棋对战项目网页版

目录 1.Websocket 1.1.Websocket的简单认识 1.2.什么是轮询呢? 1.3.websocket协议切换过程 1.4.websocketpp库常用接口认识 1.5.websocketpp库搭建服务器流程 1.6.websocketpp库搭建服务器 2.mysqlclient库-接口认识 3.项目模块的划分: 4.项目…

《鸿蒙 HarmonyOS 应用开发从入门到精通(第 2 版)》学习笔记 ——HarmonyOS 环境搭建之安装DevEco Studio

作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点: 高效智能代码编辑:支持Java、XML、ArkTS、JS、C/C等语言的代码高亮、代码智能补齐、代码错误检查、代码自动跳转、代码格式化、…

2025年最新深度学习环境搭建:Win11+ cuDNN + CUDA + Pytorch +深度学习环境配置保姆级教程

本文目录 一、查看驱动版本1.1 查看显卡驱动1.2 显卡驱动和CUDA对应版本1.3 Pytorch和Python对应的版本1.4 Pytorch和CUDA对应的版本 二、安装CUDA三、安装cuDANN四、安装pytorch五、验证是否安装成功 一、查看驱动版本 1.1 查看显卡驱动 输入命令nvidia-smi可以查看对应的驱…

LAYA3.0 组件装饰器说明

原文 在LayaAirIDE中,如果想在IDE内展示组件脚本的属性,需要通过装饰器的规则来实现。下面分别介绍四种装饰器。 文章目录 一、regClass()二、property()2.1 组件属性的常规使用2.2 属性访问器的装饰器使用2.3 是否序列化保存2.4 组件属性是否在IDE中显…

PostIn安装教程

PostIn是一款国产开源免费的接口管理工具,包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块,支持常见的HTTP协议、websocket协议等,支持免登陆本地接口调试,同时可以对项目进行灵活的成员权限、消息通知管理等。 1、服务…

RabbitMQ--延迟队列

(一)延迟队列 1.概念 延迟队列是一种特殊的队列,消息被发送后,消费者并不会立刻拿到消息,而是等待一段时间后,消费者才可以从这个队列中拿到消息进行消费 2.应用场景 延迟队列的应用场景很多,…

后端面试题分享第一弹(状态码、进程线程、TCPUDP)

后端面试题分享第一弹 1. 如何查看状态码,状态码含义 在Web开发和调试过程中,HTTP状态码是了解请求处理情况的重要工具。 查看状态码的步骤 打开开发者工具: 在大多数浏览器中,您可以通过按下 F12 键或右键单击页面并选择“检查…

网络通信---MCU移植LWIP

使用的MCU型号为STM32F429IGT6,PHY为LAN7820A 目标是通过MCU的ETH给LWIP提供输入输出从而实现基本的Ping应答 OK废话不多说我们直接开始 下载源码 LWIP包源码:lwip源码 -在这里下载 ST官方支持的ETH包:ST-ETH支持包 这里下载 创建工程 …

CSS笔记基础篇02——浮动、标准流、定位、CSS精灵、字体图标

黑马程序员视频地址: 前端Web开发HTML5CSS3移动web视频教程https://www.bilibili.com/video/BV1kM4y127Li?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p70https://www.bilibili.com/video/BV1kM4y127Li?vd_source…

Linux:进程(三)

1. 进程创建补充 fork之后父子两个执行流分别执行,fork之后谁谁先执行由调度器来决定。 一般,父子代码共享。当父子不再写入时,数据也是共享的,但是当有一方要写入,就触发写时拷贝。 fork调用失败的原因 1. 系统中有…

2025年1月21日刷题记录

1.leetcode1768题目 链接:1768. 交替合并字符串 - 力扣(LeetCode) 代码: class Solution { public:string mergeAlternately(string word1, string word2) {string word3;int a word1.size(), b word2.size();int i 0, j 0…

Mysql触发器(学习自用)

一、介绍 二、触发器语法 注意:拿取新的数据时用new,旧数据用old。

wireshark工具简介

目录 1 wireshark介绍 2 wireshark抓包流程 2.1 选择网卡 2.2 停止抓包 2.3 保存数据 3 wireshark过滤器设置 3.1 显示过滤器的设置 3.2 抓包过滤器 4 wireshark的封包列表与封包详情 4.1 封包列表 4.2 封包详情 参考文献 1 wireshark介绍 wireshark是非常流行的网络…

「2024·我的成长之路」:年终反思与展望

文章目录 1. 前言2.创作历程2.1 摆烂期2.2 转变期3. 上升期 2. 个人收获3.经验分享4. 展望未来 1. 前言 2025年1月16日,2024年博客之星入围公布,很荣幸获得了这次入围的机会。2024年对我个人是里程碑的一年,是意义非凡的一年,是充…

【RAG落地利器】向量数据库Chroma入门教程

安装部署 官方有pip安装的方式,为了落地使用,我们还是采用Docker部署的方式,参考链接来自官方部署: https://cookbook.chromadb.dev/running/running-chroma/#docker-compose-cloned-repo 我们在命令终端运行: docker run -d --…

电阻电位器可调电阻信号隔离变送器典型应用

电阻电位器可调电阻信号隔离变送器典型应用 产品描述: 深圳鑫永硕科技的XYS-5587系列是一进一出线性电子尺(电阻/电位计信号及位移)信号隔离变送器,是将输入电阻,线性电子尺,角度位移传感器信号进行采集,隔离,放大并转换成模拟量信号的小型仪表设备,并以…

[创业之路-259]:《向流程设计要效率》-1-让成功成熟业务交给流程进行复制, 把创新产品新业务新客户交给精英和牛人进行探索与创造

标题:成功与创新的双轨并行:以流程复制成熟,以精英驱动新知 在当今这个日新月异的商业环境中,企业要想持续繁荣发展,就必须在稳定与创新之间找到完美的平衡点。一方面,成熟业务的稳定运营是企业生存和发展的…

模拟飞行入坑(五) P3D 多通道视角配置 viewgroup

背景: P3D进行多个屏幕显示的时候,如果使用英伟达自带的屏幕融合成一个屏,或者使用P3D单独拉伸窗口,会使得P3D的画面被整体拉伸,又或者,当使用Multichannel进行多个设备联动时,视角同步组合需要配置&#…

Java中的错误与异常详解

Java中的错误与异常详解 Java提供了一种机制来捕获和处理程序中的异常和错误。异常和错误都继承自 Throwable 类,但它们有着不同的用途和处理方式。 1. Error(错误) Error 是程序无法处理的严重问题,通常由 JVM(Java…

免费开源的三维建模软件Blender

软件介绍 Blender是一款功能强大且免费开源的三维建模、动画制作和渲染软件,广泛应用于影视制作、游戏开发、建筑可视化、教育及艺术创作等多个领域。 核心功能 Blender是一款全能型3D软件,涵盖了从建模、动画到渲染、后期合成的完整工作流程。 1、建…