CAN接口

硬件接口

接口名称 PHD2.0针脚序号 信号定义 接口说明
CANL 13 NX_CAN_L NX_CAN_L端
CANH 15 NX_CAN_H NX_CAN_H端
CAN_L 14 CAN_FD_L SPI转CAN_FD_L端
CAN_H 16 CAN_FD_H SPI转CAN_FD_H端
共GND 5/11/12/18 GND 地信号

../_images/multi.io.png

注: CANL/H 为NX模块自带CAN 控制器 CAN_L/H 为SPI转CAN 控制器(芯片为MCP2518FD) 支持CAN FD CAN设备具体使用方法,参考https://github.com/linux-can/can-utils中的cansend.c和candump.c

软件应用

将20Pin中的CAN0_H与CAN1_H,CAN0_L与CAN1_L短接进行收发测试,结果如下图

sudo modprobe can-raw
sudo modprobe can-dev
sudo modprobe mttcan
sudo rmmod mcp251xfd.ko 
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/can/spi/mcp251xfd.ko 

sudo ifconfig can0 down
sudo ifconfig can1 down
sudo ip link set can0 up type can bitrate 1000000 dbitrate 2000000 restart-ms 1000 berr-reporting on fd on
sudo ip link set can1 up type can bitrate 1000000 dbitrate 2000000 restart-ms 1000 berr-reporting on fd on
sudo ifconfig can0 txqueuelen 65536
sudo ifconfig can1 txqueuelen 65536

#CAN1 发送, CAN0 接收
candump can0 &
cangen can1 -v -n 10

../_images/can01.png

参考:

kernel/can

linux-can/can-utils