首页 > 技术知识 > 正文

1. 前言

由于需要接收车辆的CAN信息,就需要CAN收发功能; 正好xavier平台自带两路CAN控制器; 以下是驱动调试记录

2. 硬件连接

CAN总线获得数据使用OBD2; 连接2个CAN收发器 nvidia xavier平台CAN控制器调试记录

3. CAN配置 #check current values of related registers sudo busybox devmem 0x0c303000 sudo busybox devmem 0x0c303008 sudo busybox devmem 0x0c303010 sudo busybox devmem 0x0c303018 #0x0000C055 #0x0000C055 #0x0000C059 #0x0000C059 #use devmem to modify registers sudo busybox devmem 0x0c303000 32 0x0000C400 sudo busybox devmem 0x0c303008 32 0x0000C458 sudo busybox devmem 0x0c303010 32 0x0000C400 sudo busybox devmem 0x0c303018 32 0x0000C458 #check modified values of relate registers sudo busybox devmem 0x0c303000 sudo busybox devmem 0x0c303008 sudo busybox devmem 0x0c303010 sudo busybox devmem 0x0c303018 #0x0000C400 #0x0000C458 #0x0000C400 #0x0000C458 #or use modeprobe to mount CAN controller sudo modprobe can sudo modprobe can-raw sudo modprobe can-dev sudo modprobe mttcan #configure CAN controllers with 1Mbps baudrate sudo ip link set can0 type can bitrate 1000000 sudo ip link set can1 type can bitrate 1000000 #loopback test sudo ip link set can0 type can bitrate 1000000 loopback on sudo ip link set can1 type can bitrate 1000000 loopback on #open CAN controller sudo ip link set up can0 sudo ip link set up can1
<
4. 疑问

(1)疑问1 当我测试环回模式,即使我没有附加CAN收发器到xavier,为什么can0和can1检测到?

(2)疑问2 我用以下命令配置了1Mbps波特率的CAN控制器,并使用CAN -utils发送数据包。 使用 “candump can0”, 没有收到任何信息。

(3)疑问3 尝试连接OBD2到DB9电缆,,并尝试用wireshark获取CAN数据包。 但是没有拿到包。 对OBD&CAN有什么使用建议?

这是一个终端,在循环返回模式测试。 nvidia xavier平台CAN控制器调试记录1

5.调试建议

与nvidia fae沟通之后有如下建议

这是控制器环回测试。不需要收发器连接。它发送消息并检查msg并在RX行中将其发送回来。所以,你一定是Xavier CAN引脚的Tx和Rx短路了,所以你正在接收消息。这就意味着CAN 配置也都没问题。

如果没有接收到带有收发器的消息,请再次检查连接。

短CANH到CANH和CANL到CANL总线连接。 此外,检查120欧姆终止之间的CANH和CANL。

另外,看看统计数据是怎么说的: ip -d -s link show can0 ip -d -s link show can1

6. 测试

这是我做的一个测试 测试两个CAN控制器如果你已经配置了硬件收发器电路。

nvidia xavier平台CAN控制器调试记录2

根据这个github,我应该收到“can0 5A1[8] 11 22 33 44 55 66 77 88”。但我没有收到。 下图显示了 ip -d -s link show can0 和 can1

nvidia xavier平台CAN控制器调试记录3

nvidia xavier平台CAN控制器调试记录4

7. 解决办法

将CANH连接到CANH,把CANL连接到CANL 与DB9连接器(银色连接器与绿色,蓝色,黄色,紫色线连接)

测试正常 所以硬件没问题

nvidia xavier平台CAN控制器调试记录5

8. 如何使用CAN FD?

在CAN FD上有很多线程。 $ip link set can0 up type can bitrate 1000000 dbitrate 2000000 fd on berr-reporting on

从can0发送FD帧: cansend can0 123 # # 1 abcdabcd

猜你喜欢