Apex Orin NX CAN#

硬件规格#

隔离CAN总线的DB9端子引脚定义:

引脚定义

Pin

Signal

2

CAN_L

3

CAN_GND

7

CAN_H

指标

规格

隔离电压

3000V

隔离引脚

CAN_H, CAN_L, CAN_GND

功能和设备节点对应#

功能

说明

设备节点

CAN_A

CAN0

can0

CAN_B

CAN1

can1

使用说明#

  • 使用接头1,连接PC

  • 使用接头2,连接DB9母对母交叉转接头3

  • 使用接头3,连接希望连接的DB9 CAN 接头

准备工作#

设备端

#配置参数(以can0为例)
sudo ip link set can0 up type can bitrate 500000 dbitrate 5000000 sjw 4 restart-ms 1000 berr-reporting on fd on

PC端

#安装
sudo apt-get install can-utils -y

#PC端接入USB转CAN(PCAN)设备后,执行命令,输出结果为CAN接口名称:
ls /sys/class/net/ | grep -E 'can[0-9]+' | sort -V | tail -n 1

#配置
sudo ip link set can0 up type can bitrate 500000 sjw 4

收发验证#

设备发数据,PC接收

设备端

#执行命令发送数据
sudo cansend can0 123#abcdabcd

PC端

#PC端执行命令接收数据
sudo candump can0
#如果打印如下信息,说明设备端发送数据成功
can0  123   [4]  AB CD AB CD

PC发数据,设备接收

PC端

#执行命令发送数据
sudo cansend can0 123#abcdabcd

设备端

#执行命令接收数据
sudo candump can0
#观察设备端终端,如果打印如下信息,说明设备端发送数据成功
can0  123   [4]  AB CD AB CD

问题排查方法#


通过以下命令查看can0的状态信息

ip -d -s link show can0

#检查1是否和之前设置的值相同。
#检查2和3是否为0
#如果1,2,3都没有问题,请检查硬件连接。
#如果有问题,并且找不到问题点,请联系技术支持人员排查。

参考#

https://www.kernel.org/doc/html/latest/networking/can.html

linux-can/can-utils

隔离CAN说明#

CAN 总线虽采用差分方式传输信号,似乎并不需要相对于某个参照点来判定信号,系统只需检测两线之间的电位差就可以了。但设计者也应该考虑 CAN 接口模块的共模电压承受范围,只有满足这个条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。采用隔离技术能够很好的解决共模噪声的问题,所以使用 TD CAN 系列 CAN 隔离收发器构建总线硬件端口能够很好的隔断总线上各节点的按地环路,减小节点间的地线环路电流,从而减小共模干扰。但对于干扰严重、恶劣的电气环境,仍然推荐设计者使用屏蔽双绞线,通过屏蔽层将总线上各通信节点的总线参考地联接起来,减小共模传导及辐射干扰,提高系统通信可靠性。