CAN总线

24 篇文章 0 订阅
12 篇文章 0 订阅

终端分别并联120Ω电阻 

如何学习CAN总线?             很多经验之谈

终端电阻,CAN和RS485一样,要在终端减少差分信号的反射。我记得最经典的一张图是这么画的,水流在试管(平躺)的尾部受阻,水也就涌了回来。差分信号也是如此,你不在两个终端加电阻,信号会反弹回来影响通讯。终端电阻在CAN总线上要有两个,阻值为120欧姆,并联,最远的两端一边一个。多了不行少了也不行。你不确定的话,用万用表量一下,CANH和CANL之间60欧姆左右最好。如果有多个节点的话,终端电阻应适当加大。

CAN总线的终端电阻

好的,现在你应该已经明白,帧ID帧信息帧数据都是什么,知道CAN总线波特率是什么,终端电阻是什么,重要的是,你收到一个陌生设备发出的CAN总线数据了。你成功的迈出了学习CAN总线最重要的一步。 

CAN 电信号定义与串口对比 

Robomaster电控入门(3)RM系列电机控制                   在物理层比较了一下CAN和串口的 电信号定义的不同。

差分信号

与其他通信方式重要差别之一是CAN采用的是“差分信号”,即通过组成总线的2根线(CAN-H和CAN-L)的电位差来确定总线的电平,信号是以两线之间的“差分”电压形式出现,总线电平分为显性电平和隐性电平。

CAN总线采用两种互补的逻辑数值"显性"和"隐性"。"显性"数值表示逻辑"0",而"隐性"表示逻辑"1"。当总线上同时出现“显性”位和“隐性”位时,最终呈现在总线上的是“显性”位。

与串口这种除了TX和RX,还需要用GND连接两个设备串行通讯方式不同,CAN总线只需要CAN_H和CAN_L两根线,就能够通过差分信号的方式表征逻辑"0"和逻辑"1"

CAN控制器与CAN收发器 

CAN总线入门(硬件部分)

CAN收发器的作用

顾名思义,收发器既可以收,也可以发,收是接收CAN总线上的差分数据,将数据转换为TTL电平,发送给控制器;发是将CAN控制器的TTL电平信号转换为差分信号进行总线数据传输。

CAN控制器的作用

CAN控制器一方面接收收发器的数据,进行解析后发送给CPU;另一方面接收CPU的指令数据,然后发送给CAN收发器。

120Ω终端电阻

高频信号传输时,信号波长相对传输线较短,信号在传输线终端会形成反射波,干扰原信号,所以需要在传输线末端加终端电阻,使信号到达传输线末端后不反射。

对于低频信号则不用CAN总线两端必须连接终端电阻才可以正常工作,终端电阻应该与通讯电缆的阻抗相同,典型值为120欧姆,其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠行。

总结BMS上CAN收发器电路的几个要点

很多单片机内部都集成了CAN控制器模块,拿比较常用的S32K14X系列单片机来举例,内部的CAN控制器功能框图如下,它将单片机的CPU想要发送的信息,转换成符合CAN标准的帧报文,再通过CAN收发器发送到总线上面。

CAN收发器将二进制的数据流(RX/TX)转换成了差分信号(CANH/CANL),CAN收发器电路是本文主要想讨论的地方;之前有分析过很多BMS的竞品,它们使用的CAN收发器大部分是来自NXP的TJA1051

不同CAN设备之间的通信标准一致性问题 

CAN总线(一)     CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。不同的CAN标准仅物理层不同。

那么是不是CAN物理层的区别就只由选用的CAN收发器的型号决定??

每种CAN收发器的Datasheet里都会说明它支持的是哪种CAN标准。比如买来给Xavier用的SN65HVD230 CAN Board 的Datasheet里明确标明“Compatible With the Requirements of the ISO 11898 Standard”。

SN65HVD230 CAN Board 原理图 (看到自带120Ω电阻)

正点原子战舰板-《STM32开发指南》第三十章 CAN通信实验  里解释得更清楚

也就是说,CAN2.0就俩ISO标准,ISO11898(高速CAN:125Kbps~1Mbps)  和  ISO11519-2(低速CAN:125Kbps以下)

所以只要是通信速率能大于125Kbps的CAN设备都是遵循ISO11898标准,这样就很容易辨别。

多个不同CAN设备时120Ω电阻的把控

正点原子战舰板-《STM32开发指南》第三十章 CAN通信实验  里解释得很清楚

如果开发板不是作为CAN终端的话,需要把这个120Ω电阻去掉,以免影响通信。

 多个不同CAN设备时的其他电信号问题 

CAN总线多节点通信异常分析及解决 

1.而对CAN总线物理层结构特性进一步了解,总线需要在终端连接两个120欧电阻,但是通过对所有测试点的电路检测可知,每个节点收发器的CAN_H与CAN_L之间均连接了1个120欧电阻,而CAN通信时仅需在总线终端各加1个电阻即可。

将总线中多余的120欧电阻去掉,而只保留两个节点的电阻,通过测试发现,此时的4节点、5节点通信均正常。

2.通过了解CAN物理层特征可知,CAN_H、CAN_L在隐性状态时的对地电压均为2.5V左右,经实际测量, ARM端CAN总线隐性对地电压约为2.3V,PC端CAN总线隐性对地电压约为2.2V,而ECU端CAN总线的隐性对地电压约为1.5V,由于总线电压的差异,CAN总线的对地电压被强制拉低,导致CAN控制器无法正常识别总线数据。

当ECU端的收发器VP230的供电由3.3V更改为5V后,其总线隐性对地电压约等于2.3V,此时ARM、ECU、PC间的任意两节点、三节点通信均正常。

CAN总线带宽问题 

Robomaster CAN1最多可以挂几个电机

—我用can1控制了六个3508电机和两个2006电机,分开控制各部分都没有问题,8个一起控制时就出现了乱动,不受控制的现象,是什么问题?

—带宽不够啊,这个问题很早就有了

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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总线为各种应用场景提供了便捷的通信方式,为开发者提供了更多的创新空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值