虹科干货 | CAN/CAN FD故障揭秘:快速排查与解决技巧

是否在处理CAN总线问题时感到头疼?是否在寻找简单直接的方法来解决那些看似复杂的连接故障?本文将为您提供实用技巧,让您能够轻松应对这些难题。

图片

CAN总线因其高效、可靠的数据交换能力,在汽车、工业控制、航空航天等多个关键领域得到广泛应用。随着技术进步,CAN总线的应用已扩展至电池储能、医疗器械、智能建筑等新兴领域,使得对CAN总线测试的需求日益增长。确保数据传输的可靠性和系统的稳定运行,对CAN总线系统的精心设计、精确调试和持续监控至关重要。本文汇总了在日常测试过程中典型的物理层连接问题,并提供了相应的解决策略。

Q1:断线/CAN_H和CAN_L接反/接线不当

直观现象:CAN通讯报错,无法继续

 解决方法 

如可以看出线缆损坏,直接换线即可,外表看不出来的可以使用断路测试仪检查每一个引脚;接反的话反接即可。

Q2:线缆类型错误:非CAN线/非双绞线

有可能现场用的线缆看起来是用于CAN方面的,但实际不是CAN线缆,不符合标准定义,例如误买交叉式的DB9线缆。

图片

 解决方法 

检查线缆的引脚分配,如果不符合标准就更换线缆;如果符合标准,再检查其它方面。

Q3:网络上只有1个正常通讯的节点

一个正常工作的CAN网络至少有两个或者更多CAN节点。如果只有一个CAN节点正常工作,它的错误状态就会进入被动错误,因为它发送报文后没法接收到对方的确认回复。

 解决方法 

监测节点的错误状态:

■ Bus Light:超过96个错误时,进入“error active”

■ Bus Heavy:超过127个错误,进入“error passive”

■ Bus Off:超过255个错误,进入“bus off”

注意:如果只有一个正常工作的CAN节点而且它发送了一条CAN报文,那么这个报文就会很快速地一直被重发,直到它收到另外一个节点的确认回复或进入被动错误状态。

Q4:终端电阻错误

高速CAN总线必须在CAN线两端各接入120 Ω 终端电阻(CAN_L与CAN_H之间),这样做有利于减少线缆的信号反射并确保CAN收发器能正常工作。

 解决方法 

直接测量CAN_L与CAN_H之间的终端电阻,有经验的用户可利用虹科PCAN-Diag FD的示波器上波形形状评估终端电阻的情况(看侧翼振铃等)。

Q5:波特率错误

同一个网络的各节点波特率应保持一致。如果不一致,还会影响其他节点通讯。

Tips:

■  相同的波特率但是时钟频率不同,这个主要是针对CAN FD网络,在CAN FD网络里,波特率越高就会越接近物理极限。所以在同一条网络,不建议用户使用不同的时钟频率——建议使用40或80MHz的时钟频率。

■  相同的波特率但是采样点不同,如果两个节点的采样点不同,可能导致信号采样不准确,造成数据位解析错误。这样的情况下,节点之间的通信可能会出现冲突、数据丢失或解析错误,影响系统的正常运行。

 解决方法 

图片

配置设备时需保持主要参数设置一致,采用虹科PCAN-Diag FD检测CAN/CAN FD网络的波特率。

Q6:相同ID引起的通讯冲突

在CAN总线通讯中,每个报文都有一个唯一的标识符(ID)来区分不同的消息,如果两个节点发送了具有相同ID的消息,就会导致通讯冲突,这样就没法仲裁哪条报文的优先级更高,每次冲突都会使得错误计数器加1。

 解决方法 

可通过虹科PCAN-Diag FD的trace记录功能以及错误帧记录功能查找,或用虹科PCAN-View/PCAN-Explorer 6软件在线监控,查找哪些CAN报文发生了冲突。

Q7:CAN线过长

传统CAN总线波特率与长度相关(见下表关系,此表表示的是理论值,与现实可能有出入)。

图片

1Mbit/s的波特率,在一个完美的布线系统里面不能超过40m(理论值),但其实最大的线缆长度也与所用收发器有关。对于CAN FD来讲,波特率也取决于线缆长度,尽管CAN FD的波特率更高,如果总线长度超过40米,CAN报文就会失效,因为ACK位到来的太晚。

 解决方法 

根据实际情况缩短线缆的长度。

Q8:总线负载率过高

总线负载过高会引起传输故障。这个通常是指发送的报文过多,特别是在波特率和cycle time较高的情况下容易发生。或者是一条CAN报文发生错误,然后CAN控制器一直尝试重发该报文,这会导致总线负载增加,总线负载率过高可能导致通信速度变慢,数据传输延迟增加,甚至导致通信错误和数据丢失。

 解决方法 

■ 减少报文

■ 延长报文发送周期

■ 提高总线波特率

■ 如果使用CAN2.0,后续可考虑使用CAN FD

这些信息可以通过虹科PCAN-Diag FD或者虹科CAN总线分析软件PCAN-View/PCAN Explorer 6获取。

面对这八种常见的CAN总线问题,您可以通过虹科提供的免费CAN总线分析工具——PCAN View软件,轻松进行故障排查和诊断。

图片

图片

当出现上述图中情况,又或总线状态一直在变化,时而正常时而报错,证明总线可能出现以上错误,我们可以一一排查,进而解决问题。此外,以上所描述的报错,用虹科CAN总线分析软件PCAN-View/PCAN Explorer 6,通过报文状态,还能进行进一步的解析。

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《黑神话悟空》开发框架与战斗系统解析

本文主要围绕《黑神话悟空》的开发框架与战斗系统解析展开 主要内容 《黑神话悟空》采用的技术栈 《黑神话悟空》战斗系统的实现方式 四种攻击模式 连招系统的创建 如何实现高扩展性的战斗系统 包括角色属性系统、技能配置文件和逻辑节点的抽象等关键技术点 版权声明 本…

Linux Vim编辑器常用命令

目录 一、命令模式快捷键 二、编辑/输入模式快捷键 三、编辑模式切换到命令模式 四、搜索命令 注:本章内容全部基于Centos7进行操作,查阅本章节内容前请确保您当前所在的Linux系统版本,且具有足够的权限执行操作。 一、命令模式快捷键 二…

图像生成大模型imagen

Imagen 是由谷歌研究团队开发的一种先进的图像生成大模型。它基于文本描述生成高质量的图像,是人工智能在生成视觉内容方面的一大突破。 Imagen 的主要特点包括: 1. 高分辨率和高质量:Imagen 生成的图像具有高分辨率和高质量,细…

springboot宠物智慧医院-计算机毕业设计源码99362

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3微信开发者工具 1.4小程序框架以及目录结构介绍 1.5论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2…

模拟电路分析基础知识总结笔记(电子电路分析与设计前置知识)

必备条件 电子电路的直流分析电子电路的正弦稳态分析RC电路的瞬态分析戴维南定理和诺顿定理拉普拉斯变换(看不懂,根本看不懂) 电子电路的直流分析 欧姆定律 ​ 在恒定温度下,电压与电流成正比,电压与电阻成正比&am…

对 JavaScript 原型的理解

笔者看了一些有关 JavaScript 原型的文章有感而发,就将所感所悟画了下来如果有理解错误和不足的地方,欢迎各位大佬指出,笔者感激不尽

企业热门进销存管理系统源码 助力中小企业实现低成本实现信息化 带源代码包以及搭建部署教程

系统概述 这款企业热门进销存管理系统是专为中小企业设计开发的综合性管理平台。它涵盖了采购、销售、库存管理等核心业务流程,能够实现企业内部各个环节的紧密连接和协同运作。通过信息化手段,系统能够实时记录和监控企业的业务数据,为企业…

微服务保护学习笔记(五)Sentinel授权规则、获取origin、自定义异常结果、规则持久化

文章目录 前言4 授权规则4.1 基本原理4.2 获取origin4.3 配置授权规则 5 自定义异常结果6 规则持久化 前言 微服务保护学习笔记(一)雪崩问题及解决方案、Sentinel介绍与安装 微服务保护学习笔记(二)簇点链路、流控操作、流控模式(关联、链路) 微服务保护学习笔记(三)流控效果(…

【STL】string 基础,应用与操作

string 1.string相关介绍 STL(标准模板库)中的string容器是C标准库提供的用于处理和操作字符串的类,位于头文件中。std::string提供了比传统的C风格字符串(字符数组)更方便和安全的功能,具有动态内存管理…

Redis常见应用场景

目录 一、实现博客点赞功能 二、实现博客点赞用户列表功能 三、好友关注和取关以及求共同关注 四、实现关注推送 1、拉模式 2、推模式 3、推拉结合 四、三种模式对比 这里简单记录一下,没有实现方法,只是帮助记忆 一、实现博客点赞功能 可以通…

六、JSON

文章目录 1. 什么是JSON1.1 JSON 在 JavaScript 中的使用1.1.1 json 的定义1.1.2 json 的访问1.1.3 json 的两个常用方法 1.2、JSON 在 java 中的使用1.2.1、javaBean 和 json 的互转1.2.2、List 和 json 的互转1.2.3、map 和 json 的互转 1. 什么是JSON 1.1 JSON 在 JavaScrip…

【数据结构与算法 | 灵神题单 | 自顶向下DFS篇】力扣1022,623

1. 力扣1022:从根到叶的二进制之和 1.1 题目: 给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。 例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那…

Uniapp的alertDialog返回值+async/await处理确定/取消问题

今天在使用uniui的alertDialog时,想添加一个确定/取消的警告框时 发现alertDialog和下面的处理同步进行了,没有等待alaertDialog处理完才进行 查询后发现问题在于 await 关键字虽然被用来等待 alertDialog.value.open() 的完成,但是 alertDi…

Linux操作系统 进程(3)

接上文 Linux进程优先级之后,我们了解到僵尸进程与孤儿进程的形成原因,既然是因为父进程没有接收子进程的退出状态导致的,那么我们该如何去获取子进程的退出状态呢?那本篇文章将围绕这个问题来解释进程。 环境 : vsco…

【C++】——多态详解

目录 1、什么是多态? 2、多态的定义及实现 2.1多态的构成条件 ​2.2多态语法细节处理 2.3协变 2.4析构函数的重写 2.5C11 override 和 final关键字 2.6重载—重写—隐藏的对比分析 3、纯虚函数和抽象类 4、多态的原理分析 4.1多态是如何实现的 4.2虚函数…

光伏场地建设规划 - 华为OD统一考试(E卷)

2024华为OD机试(C卷D卷E卷)最新题库【超值优惠】Java/Python/C合集 题目描述 祖国西北部有一片大片荒地,其中零星的分布着一些湖泊,保护区,矿区;整体上常年光照良好,但是也有一些地区光照不太好。某电力公…

C++中模板的初级使用函数模板(刚刚接触模板概念的小白也能明白)

文章目录 模板分类函数模板函数模板的原理函数模板基本语法 —— typename 以及 class简单的函数模板多类型模板参数class 和 typename 的选择类模板 模板分类 模板的核心思想是让编译器在编译时生成适用于具体类型的代码,这个过程称为模板实例化。C 中的模板分为两…

Sublime Text 3 相关设置

打开设置 { “font_size”: 16, // 字体大小 “save_on_focus_lost”: true, // 自动保存 }

射击靶标检测系统源码分享

射击靶标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

【吊打面试官系列-MySQL面试题】LIKE 声明中的%和_是什么意思?

大家好,我是锋哥。今天分享关于【LIKE 声明中的%和_是什么意思?】面试题,希望对大家有帮助; LIKE 声明中的%和_是什么意思? %对应于 0 个或更多字符,_只是 LIKE 语句中的…