CAN总线故障类型及处理方式

CAN网络中的通信错误可能是由各种问题引起的。常见的CAN通信错误类型有:
can总线格式-wiki

位错误(Bit Errors):

位错误发生在传输和接收的位之间存在不匹配时。这可能是由于CAN总线上的电气噪音或干扰,或者由于电压水平不正确引起的。

填充错误(Stuff Errors):

填充错误发生在数据帧中插入了太多或太少的“填充位”。填充位用于确保位过渡,有助于时钟同步。如果填充位过多或太少,可能会指示错误。

格式错误(Form Errors):

格式错误发生在CAN帧未正确格式化时。这可能涉及到帧起始位(SOF)、仲裁字段、控制字段或帧结束位(EOF)的问题。

CRC错误(CRC Errors):

CRC(循环冗余校验)错误发生在接收到的帧的计算CRC值与发送者发送的CRC值不匹配时。这表明存在数据损坏问题

确认错误(Acknowledgment Errors):

在CAN通信中,每个发送的消息应该得到接收方的确认。确认错误发生在发送者未收到接收方的确认时。

总线断开错误(Bus-Off Errors):

总线断开错误发生在节点在一定时间内生成了太多错误,导致暂时断开CAN总线。

过载错误(Overload Errors):

过载错误发生在CAN总线上的消息过多,导致传输延迟

主导和隐性错误(Dominant and Recessive Errors):

CAN使用主导(逻辑0)和隐性(逻辑1)信号系统。错误可能发生在主导和隐性位未被正确解释时,可能导致数据损坏

帧错误(frame error)

可能发生帧错误的原因有:
位填充错误: CAN使用一种称为“位填充”的技术,以确保数据流中有足够的位过渡,以维持时钟同步。如果位填充存在问题,它可能会导致“帧错误”。这可能发生在CAN帧中插入了过多或过少的填充位。

帧格式不正确: 如果CAN帧格式不正确,可能会出现“帧错误”。这可能是由于起始帧(SOF)位、仲裁字段、控制字段或帧结束位(EOF)存在问题。如果帧结构的任何部分无效或配置不正确,都会触发“帧错误”。

干扰和噪音: CAN总线上的电气干扰或噪音可能会干扰信号并导致“帧错误”。这种干扰可能会扭曲位的电压水平,使接收节点难以正确解释帧。

信号完整性问题: 信号完整性问题,如反射、阻抗不匹配或电缆长度过长,可能导致信号扭曲和“帧错误”。

硬件故障: 硬件问题,包括不正常工作的收发器、连接器或CAN网络的其他组件,可能会引入“帧错误”。

电气问题: 电源波动或其他电气问题可能会影响CAN信号的质量并导致“帧错误”。

碰撞: 在具有多个节点的CAN网络中,如果两个或多个节点尝试同时传输,可能会导致碰撞并生成“帧错误”。

以上是CAN总线的错误类型,解决故障的常用思路:一、复现故障;二、定位故障产生节点;三、解决故障;四、验证故障是否复现(即判断解决方案是否有效)

常见can线bus-off的检测方式

CAN通讯中,常见的故障报错"总线断开"(Bus-Off)发生在CAN节点在指定时间内生成了过多错误时,导致它暂时断开CAN总线。检测和识别总线断开条件的开始通常涉及监视CAN网络和其错误计数器。找到总线断开条件开始的步骤为:

监视错误计数器: CAN节点维护错误计数器,如传输错误计数器(TEC)和接收错误计数器(REC)。这些计数器跟踪已传输和已接收的错误帧。当一个节点生成了太多错误时,这些计数器将开始递增。

设置错误阈值: 为错误计数器设置一个阈值,以确定何时应触发总线断开条件。具体的阈值值可能会因具体的CAN控制器和网络配置而异。一个常见的值是255,这意味着如果TEC或REC中的任一个达到255,就会触发总线断开条件。

监视错误计数器: 持续监视网络中每个CAN节点的TEC和REC值。当其中一个计数器达到设置的阈值(例如255)时,表示该节点生成了太多错误,将进入总线断开状态。

总线断开恢复: 一旦节点进入总线断开状态,它应该等待预定义的时间(根据CAN规范)然后尝试恢复并重新加入总线。在此期间,该节点不参与CAN通信。

识别问题节点: 为了确定哪个节点导致了总线断开条件,需要监视错误计数器和错误帧。达到阈值并触发总线断开条件的节点很可能是问题节点。

解决问题: 一旦确定了问题节点,需要调查和解决错误的原因。这可能涉及检查节点的硬件、连接、电气完整性和软件配置。常见问题包括信号完整性问题、电气噪音、故障的收发器或不正确的位定时设置。

清除总线断开状态: 解决问题后,处于总线断开状态的节点将在指定的恢复时间后自动尝试恢复并重新加入总线。

即:(搭建原生系统,模拟现场环境)通过CANoe\CANansys工具,结合示波器来检测问题的产生节点,或者说错误计数是由哪个设备引起的,进而排查其电气属性和运行状态。

处理CAN线干扰

一、增加电气隔离
通过使用共模滤波器或者添加磁隔离元件降低脉冲干扰
二、增加信号地或者单点接地
信号返回途径包括参考地尽可能干净
三、增强信号屏蔽(远离强电或者高频线束)或者密集化双绞线
从线束端保护信号的稳定传输
四、添加磁环等抗扰器件

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android CAN总线是指Android系统上运行的应用程序通过控制器区域网络(Controller Area Network,CAN)总线与外部设备进行通信的一种方式。CAN总线是一种串行通信协议,常用于汽车电子系统等领域。 在Android系统,通过使用CAN总线,应用程序可以与各种支持CAN总线通信的外设进行数据交换。这些外设包括车载传感器、车载仪表盘、控制器、发动机控制单元、空调系统等。通过CAN总线,应用程序可以通过读取和发送CAN消息来监测和控制这些外设的状态和行为。 为了在Android系统使用CAN总线,首先需要确保设备具有CAN控制器硬件支持。可以通过使用CAN总线接口卡或通过集成CAN控制器芯片来实现。然后,需要使用适当的驱动程序来与CAN控制器进行通信。 使用Android的CAN总线功能,应用程序可以实现诸如车辆诊断、车载娱乐系统控制、车速监测、油耗计算等各种功能。通过CAN总线,应用程序可以读取车辆传感器的数据,并根据需要发送控制指令给车辆各个系统。这为开发车联网和智能交通系统提供了便利和灵活性。 总之,Android CAN总线为Android应用程序与外部CAN总线设备之间的通信提供了一种标准化的解决方案。它为开发者提供了一种便捷的方式来实现与车辆电子系统的交互,并为车联网和智能交通系统的开发提供了技术支持。 ### 回答2: Android CAN总线是指在Android系统使用控制器局域网络(Controller Area Network,CAN)总线技术进行通信的一种方式。CAN总线是一种高可靠性、实时性强的串行通信协议,主要用于汽车电子和工业控制领域。 Android作为一种流行的移动操作系统,通过支持CAN总线技术,可以实现与各种汽车电子设备和工业控制设备之间的通信。通过Android系统的CAN总线接口,可以实现对CAN总线的读取和写入操作。这使得开发者可以通过Android设备与车载控制单元进行通信,从而实现诸如车辆状态监控、故障诊断、远程控制等功能。 在Android应用程序开发,可以使用CAN总线接口库来编写CAN通信相关的代码。通过CAN总线接口库,开发者可以实现CAN消息的发送和接收,以及监听CAN总线上的消息。开发者可以根据具体需求,编写相应的逻辑代码,对CAN总线上的消息进行解析和处理,并根据解析结果进行相应的操作。 在汽车电子领域,Android CAN总线的应用非常广泛。通过与车辆的CAN总线进行通信,可以获取诸如车速、油耗、转速、温度等数据。这些数据可以用于实时监控和驾驶辅助功能的开发。此外,通过CAN总线还可以实现对车辆的远程控制,如远程启动、远程解锁等。 总之,Android CAN总线技术的应用使得Android设备可以与CAN总线上的设备进行通信,极大地拓展了Android系统的应用领域。从汽车电子到工业控制,Android CAN总线为各种应用场景提供了便捷的通信方式,为开发者提供了更多的创新空间。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值