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

news2024/9/20 15:19:47

是否在处理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.coloradmin.cn/o/2149247.html

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

相关文章

【软件方案】智慧社区总体解决方案(PPT原件)

1.智慧社区整体建设方案内容 2.整体功能介绍 软件全套资料部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书&…

故障模拟测试负载是如何实现的

故障模拟测试负载是在系统或设备上故意引入故障,以测试其应对能力的方法。这种方法可以帮助我们了解系统在面临各种故障时的响应和恢复能力,从而提高系统的可靠性和稳定性。故障模拟测试负载的实现主要依赖于以下几个步骤: 1. 确定故障类型&…

uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点

uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点 目录 介绍uniapp 介绍uniapp x 介绍功能框架图创建项目&发布组件/标签的变化js的变化css的变化工程结构和页面管理 pages.jsonmanifest.json 应用配置组件easycom组件规…

【Unity杂谈】iOS 18中文字体显示问题的调查

一、问题现象 最近苹果iOS 18系统正式版推送,周围升级系统的同事越来越多,有些同事发现,iOS 18上很多游戏(尤其是海外游戏)的中文版,显示的字很奇怪,就像一些字被“吞掉了”,无法显示…

MongoDB解说

MongoDB 是一个流行的开源 NoSQL 数据库,它使用了一种被称为文档存储的数据库模型。 与传统的关系型数据库管理系统(RDBMS)不同,MongoDB 不使用表格来存储数据,而是使用了一种更为灵活的格式——JSON 样式的文档。 这…

详解Vite创建Vue3项目router-less-scss-pinia-持久化

前言 Vite 和 Webpack 都是现代化的前端构建工具,它们可以帮助开发者优化前端项目的构建和性能。虽然它们的目标是相似的,但它们在设计和实现方面有许多不同之处。webpack可以看我的上一篇文章 一、准备工作安装工具 这里我们简单介绍一下文章中使用到…

你必须要懂的网络安全知识

不管是网工还是运维,都应该对网络安全的重要性非常清楚,每一次数据泄露、每一次网络攻击,都可能给企业带来不可估量的损失。 从SQL注入到跨站脚本攻击(XSS),从分布式拒绝服务攻击(DDoS&#xf…

Java 数据结构 最小栈的实现

在O(N)时间复杂度内找出最小值: 创建两个栈当普通栈只有一个数据时,把该数据放入最小栈往普通栈放入数据时,把要放入的数据和最小栈的栈顶数据相比较,若要放入的数据比最小栈的栈顶数据小,则把…

容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑

在现代应用部署时中,Docker容器化技术被广泛应用。Node.js应用在容器中运行时,有时需要获取宿主机的基础信息,如系统信息、内存使用情况、磁盘空间和启动时间等。本文将介绍如何在Docker容器内的Node.js应用中获取这些信息,以及可…

数字化转型中的企业蓝图构建:基于业务能力建模的全面解读与战略实施指南

随着企业数字化转型的不断深入,业务复杂性和技术需求的多样化推动了企业架构的新变革。为了应对日益复杂的市场环境,如何构建清晰、稳定的业务蓝图成为企业成败的关键。《业务能力指南》为此提供了系统的框架和指导,帮助企业通过业务能力建模…

谷歌女高管被裁员,3份兼职越干越开心!55岁正是闯的年纪!

在职场的金字塔顶端,那些大龄女性高管正在面对一场无形却深刻的危机。曾经,她们凭借坚定的决心和无畏的勇气,在职场中披荆斩棘,闯出了一片天地。 现代职场的年轻化和技术更新正将她们逐渐推向边缘。裁员通知的突如其来&#xff0…

Vue3.0组合式API:使用ref获取DOM元素

Vue3.0组合式API系列文章: 《Vue3.0组合式API:setup()函数》 《Vue3.0组合式API:使用reactive()、ref()创建响应式代理对象》 《Vue3.0组合式API:computed计算属性、watch监听器、watchEffect高级监听器》 《Vue3.0组合式API&…

Go语言grequests库并发请求的实战案例

在当今快速发展的互联网时代,数据的获取和处理速度成为了衡量一个系统性能的重要标准。Go语言以其并发处理能力而闻名,而grequests库则为Go语言的HTTP请求提供了简洁易用的API。本文将通过一个实战案例,介绍如何使用Go语言的grequests库来实现…

卖家必看:利用亚马逊自养号测评精选热门产品,增强店铺权重

在亚马逊的商业版图中,选品始终占据着核心地位,是贯穿其经营策略的永恒旋律。一个商品能否脱颖而出,成为市场中的明星爆款,其关键在于卖家对产品的精挑细选,这一环节的重要性不言而喻,是决定胜负的关键所在…

C++笔记21•C++11的新特性•

相比于 C98/03,C11则带来了数量可观的变化,其中包含了约140个新特性,以及对C03标准中约600个缺陷的修正,这使得C11更像是从C98/03中孕育出的一种新语言。相比较而言,C11能更好地用于系统开发和库开发、语法更加泛华和简…

【C语言】自定义类型——结构体

目录 一、结构体的类型的声明 二、结构体变量的创建和初始化 三、匿名结构体类型 四、结构体自引用 五、结构体内存对齐 (1)对齐规则 (2)计算结构体大小练习 (3)需要内存对齐的原因 (4…

Eigen3 教程基础篇(三)

参考 Eigen3 主页,Eigen3 官网教程 矩阵的本质,通过多种矩阵的应用去感受矩阵本质 3Blue1Brown 的线性代数,用可视化方法来表现线性代数的特性,强推 如何理解复数和虚数,有动画方便理解复数的意义 相关文章 Eigen…

基于SpringBoot+Vue+MySQL的在线宠物用品商城销售系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着人们生活质量的提升和宠物经济的蓬勃发展,宠物已成为众多家庭不可或缺的一员。宠物市场的需求日益增长,涵盖了食品、用品、医疗、美容等多个领域。基于SpringBootVueMySQL的在线宠物用品商城销售系统…

新产品,推出 MLX90372GVS 第三代 Triaxis® 位置传感器 IC,适用于汽车和工业系统(MLX90372GVS-ACE-308)

Triaxis 旋转和线性位置传感器IC: MLX90372GVS-ACE-103 MLX90372GVS-ACE-108 MLX90372GVS-ACE-301 MLX90372GVS-ACE-200 MLX90372GVS-ACE-208 MLX90372GVS-ACE-303 MLX90372GVS-ACE-300 MLX90372GVS-ACE-350 MLX90372GVS-ACE-100 MLX90372GVS-ACE-101 MLX90372GVS-…

【Java算法】二叉树的深搜

🔥个人主页: 中草药 🔥专栏:【算法工作坊】算法实战揭秘 一.2331.计算布尔二叉树的值 题目链接:2331.计算布尔二叉树的值 代码 public boolean evaluateTree(TreeNode root) {if(root.leftnull){return root.val0?f…