CAN总线在新能源行业中的重要应用

2019年10月26日第三届中国(佛山)氢能源大会中展示了氢燃料电池城市客车,与目前的纯电动汽车和传统汽车相比,作为一种新的驱动形式出现。但是,新能源汽车整车网络的实现依旧离不开CAN总线通讯。 工程师们通过CAN总线读取车上的车速、转速等信号可以控制整车上众多的ECU单元。但是,你知道CAN总线关闭会对新能源汽车的功能带来哪些影响吗?本文来做详细分析。

为何CAN总线依旧能在新能源汽车中扮演重要角色?

从事汽车相关行业的小伙伴们,都知道CAN总线,它是当今汽车各电控单元之间通信的总线标准,现在几乎所有的汽车厂家都选择使用CAN总线通信。CAN总线起初便是基于BOSCH公司为了解决汽车的电子控制单元增多带来的布线空间矛盾、汽车重量增加等诸多问题而诞生的。同时,CAN总线将汽车内部各电控单元之间连接成一个局域网络,实现了信息的共享,大大减少了汽车的线束,如图1所示:

图1 汽车整车网络

相比于,目前流行的以太网和485总线,CAN总线具有以下的特点:

  • ● 总线访问——非破坏性仲裁的载波侦听、多路访问、冲突避免;

  • ● 多主机广播式结构,自动优先级仲裁,实时性很强;

  • ● 传输错误自动重发,自动CRC校验接收,数据出错率极低;

  • ● 差分信号传输抗干扰能力强,适合汽车内部强干扰的环境;

  • ● 硬件报文滤波功能,减轻CPU负担。

基于以上的特点,CAN总线能保证实时可靠的数据传输,保证汽车整车网络的通讯正常,在新能源汽车行业具有不可替代的地位。

汽车内部挂有很多的ECU节点,当其中一个节点发生故障进入总线关闭状态时,会很大程度上影响整车CAN网络的通讯。例如,当汽车发生碰撞时,传感器将电信号传送给安全气囊ECU,将信号进行处理,当确定需要打开安全气囊时,ECU会立即发出点火信号,气体发生器才会充满气囊,对驾驶员和乘客提供安全保护,如图2所示。若此时安全气囊ECU处于总线关闭状态,则无法正常弹出气囊,会导致严重后果。

图2 安全气囊ECU工作示意图

那么,什么是CAN总线关闭呢?

CAN控制器可以判断出错误的类型是总线上暂时的数据错误(如外部干扰等)还是持续的数据错误(如单元内部故障、驱动器故障、断线、短路等)。由此,当总线上发生持续数据错误时,CAN控制器内部的错误计数器累积到总线关闭的阀值,可将引起此故障单元从总线上隔离出去,不参与跟总线其他节点的网络通信。如图3所示:

图3错误检测机制

CAN总线关闭的成因分析

引起错误的原因大多是由物理故障引起的,主要是CAN线路产生的。其中包括:CAN_H开路、CAN_L开路、CAN_H对CAN_L短路/开路、CAN_L对VBAT短路、CAN_H对GND短路、CAN_L对GND短路、终端电阻开路等。

除了物理层线路因素,还有可能因为CAN控制器或收发器等元器件故障导致。同时,也有可能是由于CAN总线信号干扰导致的CAN信号收发不正确,严重时会导致不能正常发送报文,从而更容易导致CAN总线关闭。

例如,新能源汽车通常是指纯电动汽车或者混合动力汽车,其特色是使用电池、电容来存储能力,然后通过逆变的方式变成交流,带动电动机驱动车辆。逆变产生的巨大电流形成强干扰,串扰到CAN总线上,导致控制器死机、损坏或者通讯中断,车辆运行不稳定。

CAN总线关闭如何恢复?

如果出现了BUS OFF,总线上的节点需要做一些动作,例如重启CAN控制器或是重新上电,但是这些都只是一些补救措施,最根本的还是需要找到引起BUS OFF的根源。

当发生CAN总线关闭时,我们可以检查BUS OFF寄存器的值,对CAN控制器的驱动及相关寄存器进行初始化操作。初始化完成后,CAN总线关闭故障就会立即解除。为了避免该节点在CAN网络中频繁发生总线关闭问题,建议在初始化后,不要立即对外发送CAN报文。

上文也提到过,由于汽车内部存在强干扰,也会导致CAN总线关闭。针对这种现象,我们通过以下方式进行处理:

  • ● 由于汽车内部存在强电流产生的空间磁干扰,应该将CAN线缆双绞程度加大;

  • ● CAN接口设计采用CTM1051隔离收发器、隔离限幅,防止ECU死机;

  • ● CAN接口增加磁环、共模电感等效果好的感性防护器件;

  • ● 外接专用的信号保护器消除干扰,如ZF-12Y2;

  • ● 使用网桥中继设备CANBridge对部分强干扰源进行隔离。

综合上述,汽车CAN总线关闭故障发生时,应分析物理层包括CAN线路、CAN控制器及收发器、CAN信号干扰等外在因素,同时分析CAN寄存器及软件处理,重新初始化CAN驱动和恢复正常后,定时尝试往外发送报文。

CAN网络黑匣子-CANDTU

新能源汽车在发送总线关闭情况时,我们也希望能够有对应的CAN报文去分析,尤其是针对偶发性的故障时,我们更需要有可靠的CAN报文来作为判断依据。

广州致远电子有限公司推出CAN网络总线“黑匣子”,我们称之为CANDTU,如图4所示,CANDTU集成有2路或4路符合ISO11898标准的独立CAN-bus通道,并可标配存储介质为32G高速SD卡,可以进行长时间记录、条件记录、预触发记录和定时记录等多种模式,并可以将记录的数据转换为CSV格式,或者CANOE、CANScope等各种主流分析软件的格式供后期处理分析。

图4 CANDTU系列产品示意图

CANDTU可以长时间记录CAN报文,以便于工程师查找数据,但是对于网络稳定性和偶发性故障无法进行定位和分析。

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

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

相关文章

Linux Redhat ens33不显示IP问题

优质博文:IT-BLOG-CN 【第一步】:查看系统网卡设备 : ip addr show 【第二步】:修改网卡配置参数 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33 修改ONBOOT参数为yes 【第三步】:重启网卡,然后ping检测…

Vue + SpringBoot 实现文件的断点上传、秒传,存储到Minio

一、前端 1. 计算文件的md5值 前端页面使用的elment-plus的el-upload组件。 <el-upload action"#" :multiple"true" :auto-upload"false" :on-change"handleChange" :show-file-list"false"><FileButton content&…

python中的<class ‘complex‘>

一般编程里面不怎么会讲&#xff0c;但是还是挺强大的一个类。 在 Python 中&#xff0c;<class complex> 表示复数类型。复数是一种包含实部和虚部的数学数&#xff0c;可以用 a bj 的形式表示&#xff0c;其中 a 表示实部&#xff0c;b 表示虚部&#xff0c;j 是虚数…

kylinos 国产操作系统离线安装firefox 麒麟操作系统安装新版本firefox

1. 火狐地址&#xff1a; 下载 Firefox 浏览器&#xff0c;这里有简体中文及其他 90 多种语言版本供您选择 2. 选择&#xff1a; 3. 下载完之后&#xff0c;上传到离线机器 4. 解压缩&#xff1a; tar -xvjf firefox-127.0.1.tar.bz2 5. 去点击解压后的文件夹&#xff0c;找…

Redis持久化(RDB、AOF)详解

Redis持久化详解 一、Redis为什么需要持久化&#xff1f; Redis 是一个基于内存的数据库&#xff0c;拥有极高的读写性能&#xff0c;但是内存中的数据在断电或服务器重启时会全部丢失&#xff0c;因此需要一种持久化机制来将数据保存到硬盘上&#xff0c;以便在需要时进行恢复…

Latex学习之“usefont”用法

Latex学习之“\usefont”用法 一、通俗的解释 \usefont 是 LaTeX 中的一个命令&#xff0c;用于在文档中临时改变字体&#xff0c;其基本语法如下&#xff1a; \usefont{字体编码}{字体族}{字体系列}{字体形状}这样看起来好像蛮抽象&#xff0c;你可能以及晕了&#xff0c;什…

《代码大模型安全风险防范能力要求及评估方法》正式发布

​代码大模型在代码生成、代码翻译、代码补全、错误定位与修复、自动化测试等方面为研发人员带来了极大便利的同时&#xff0c;也带来了对安全风险防范能力的挑战。基于此&#xff0c;中国信通院依托中国人工智能产业发展联盟&#xff08;AIIA&#xff09;&#xff0c;联合开源…

Midway + TypeORM项目部署到BT后启动失败,MySQL报错

Midway TypeORM项目部署到BT后启动失败&#xff0c;MySQL报错 前沿 您需要先了解这篇文章&#xff1a;https://blog.csdn.net/weixin_45687201/article/details/139336111 错误日志 服务状态开启后就失败项目日志&#xff0c;输出 \> my-midway-project1.0.0 start \&…

前端vue-cli相关知识与搭建过程(项目创建,组件路由)very 详细

一.关于vue-cli 1.什么是vue Vue (读音 /vju ː /&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。 Vue.js 是前端的主流框架之一&#xff0c;和 Angular.js…

19、删除链表的倒数第

1、题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[]示例 …

多商户零售外卖超市外卖商品系统源码

构建你的数字化零售王国 一、引言&#xff1a;数字化零售的崛起 在数字化浪潮的推动下&#xff0c;零售业务正经历着前所未有的变革。多商户零售外卖超市商品系统源码应运而生&#xff0c;为商户们提供了一个全新的数字化零售解决方案。通过该系统源码&#xff0c;商户们可以…

基于Openmv的追小球的云台

介绍 在这篇文章&#xff0c;我会先介绍需要用到且需要注意的函数&#xff0c;之后再给出整体代码 在追小球的云台中&#xff0c;比较重要的部分就是云台&#xff08;实质上就是舵机&#xff09;的控制以及对识别的色块位置进行处理得到相应信息后控制云台进行运动 1、舵机模…

qt.qpa.xcb: could not connect to display问题解决

1、问题描述 以服务器pi5作为远程解释器&#xff0c;本地win11使用vscode远程调试视觉时报错如下&#xff1a; qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "xxxxx" even though it was …

Docker Compose--安装Nginx--方法/实例

原文网址&#xff1a;Docker Compose--安装Nginx--方法/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Docker Compose如何安装Nginx。 目录结构 ├── config │ ├── cert │ │ ├── xxx_bundle.pem │ │ └── xxx.key │ ├── conf.d │ …

JAVA笔试题目

1.标识符的使用 2.类名和java文件名的关系 3.java数据类型关系

第3章 小功能大用处-事务与Lua

为了保证多条命令组合的原子性&#xff0c;Redis提供了简单的事务功能以及集成Lua脚本来解决这个问题。 首先简单介绍Redis中事务的使用方法以及它的局限性&#xff0c;之后重点介绍Lua语言的基本使用方法&#xff0c;以及如何将Redis和Lua脚本进行集成&#xff0c;最后给出Red…

React+TS 从零开始教程(3):useState

源码链接&#xff1a;下载 在开始今天的内容之前呢&#xff0c;我们需要先看一个上一节遗留的问题&#xff0c;就是给属性设置默认值。 我们不难发现&#xff0c;这个defaultProps已经被废弃了&#xff0c;说明官方并不推荐这样做。其实&#xff0c;这个写法是之前类组件的时候…

AI金融投资:批量下载巨潮资讯基金招募说明书

打开巨潮资讯的基金招募说明书页面&#xff1a; http://www.cninfo.com.cn/new/fulltextSearch/full?searchkey%E5%B0%81%E9%97%AD%E5%BC%8F%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E8%AF%81%E5%88%B8%E6%8A%95%E8%B5%84%E5%9F%BA%E9%87%91%E6%8B%9B%E5%8B%9F%E8%AF%B4%E6%98%…

计算机网络 访问控制列表以及NAT

一、理论知识 1. 单臂路由 单臂路由是一种在路由器上配置多个子接口的方法&#xff0c;每个子接口代表不同的 VLAN&#xff0c;用于在一个物理接口上支持多 VLAN 通信。此方法使得不同 VLAN 之间可以通过路由器进行通信。 2. NAT (网络地址转换) NAT 是一种在私有网络和公共…

可变分区管理 分区分配算法

First Fit Algorithm Best Fit Algorithm FFA&#xff1a;按照起始地址从小到大&#xff08;本题为分区编号&#xff09;找到第一个能装下进程的起始地址填入第二个表 此时 原表中将起始地址进程大小 分区大小-进程大小 如此继续 BFA&#xff1a;按分区大小排序 从小到大 找到…