APEX ORIN NANO 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 隔离收发器构建总线硬件端口能够很好的隔断总线上各节点的按地环路,减小节点间的地线环路电流,从而减小共模干扰。但对于干扰严重、恶劣的电气环境,仍然推荐设计者使用屏蔽双绞线,通过屏蔽层将总线上各通信节点的总线参考地联接起来,减小共模传导及辐射干扰,提高系统通信可靠性。

CAN问题排查#

​现象1:设备开机后无法通过CAN接口通信#

解决办法:#

检查硬件连接:

  • 接口状态:查看CAN接口是否变形、氧化或断裂,若发现物理损坏,联系厂商售后服务。

  • 交叉验证

    • 将CAN线缆及外设连接到另一台正常设备,测试能否通信:

      • 正常通信 → 当前设备硬件故障,联系售后;

      • 仍异常 → 检查线缆或外设是否损坏。

    • 无其他设备时:短接当前设备的两个CAN接口(如CAN1与CAN2),测试自发自收是否正常。

现象2:CAN接口未识别或配置错误#

解决办法:#

验证接口状态:

在终端输入命令查看所有网络接口:

ifconfig -a  
  • 未显示CAN接口 → 重新刷写系统镜像(操作前备份数据)。

  • 显示CAN接口但通信失败 → 继续下一步排查。

配置CAN接口参数:

输入命令设置波特率(需与外设一致):

 # 示例:500kbps   
sudo ip link set can2 up type can bitrate 500000  
  • 关键规则

    • CAN接口波特率必须与外设完全一致(如500k/1M等);

    • 配置后重启CAN服务生效。

​现象3:配置后仍无法通信#

解决办法:#

重新加载驱动:

输入命令强制重启CAN服务:

 sudo modprobe -r can_raw && sudo modprobe can_raw

验证数据收发:

使用CAN调试工具(如candump)测试数据收发:

 # 监听CAN数据流  
candump can2 
  • 无数据流 → 检查线缆连接或外设电源状态。

​现象4:所有排查后仍失败#

解决办法:#

系统镜像修复:

  • 重新刷写系统镜像,完成后重新配置CAN接口参数。

  • 镜像刷写后正常 → 原系统软件环境异常,需自行排查配置;

仍异常 → 将设备连接互联网,执行脚本:

 curl -sSL https://doc.miivii.com/scripts/run_miivii_diagnostic.sh | bash -s can
  • 将生成的日志文件提交技术支持。