首页 > 技术知识 > 正文

1. 前言

Linux平台使用MCP2515 SPICan驱动的原理是将SPICan设备虚拟成Socket设备,即SocketCan; 这样就无需关心具体的CAN设备的收发接口,直接使用Socket接口即可,使用起来就比较方便了

2. iproute2与canutils工具移植

iproute2: 由于海思平台的ip工具无法配置CAN设备,所以需要安装 canutils: 可以直接操作CAN的收发

(1)iproute移植

iproute的移植按网上说明就可以,这里我用的版本是iproute2-2.6.39

a. 解压iproute2-2.6.39.tar.xz,修改Makefile 33行 CC= arm-none-linux-gnueabi-gcc

b. 修改Makefile 42行 SUBDIRS =lib ip

make编译生成ip工具即可

(2)canutils工具移植

Canutils是基于GNU GPLv2许可的开源代码,包括canconfig、canecho、cansend、candump、cansequence五个工具,用于检测和监控Socket CAN接口。

a. 移植canutils前需要移植libsocketcan, 步骤如下

解压libsocketcan-0.0.11.tar.bz2 执行configure命令 ./configure –host=aarch64-linux-gnu –prefix=~/workspace/can/install/libsocketcan make; make install , libsocketcan编译完成

b. Canutils移植步骤如下 ./configure –host=aarch64-linux-gnu –prefix=~/workspace/can/install/canutils libsocketcan_LIBS=-lsocketcan LDFLAGS=-L~/workspace/can/install/libsocketcan/lib libsocketcan_CFLAGS=-I~/workspace/can/install/libsocketcan/include CFLAGS=-I~/workspace/can/install/libsocketcan/include

make make install

/workspace/can/install/canutils 下生成四个目录,分布拷贝到开发板相应目录 3. 配置CAN设备

开启can0 ip link set can0 down ip link set can0 type can bitrate 500000 ip link set can0 up 开启can1 ip link set can1 down ip link set can1 type can bitrate 500000 ip link set can1 up

4. 查看CAN设备

海思平台SPICan设备收发测试

5. 收发测试 (1)外部回环测试线序连接

CAN0的CAN_H和CAN1的CAN_H连在一起 CAN0的CAN_L和CAN1的CAN_L连在一起

(2)收发测试

a. CAN0接收,CAN1发送

candump can0 & cansend can1 -i 8 -e 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88

海思平台SPICan设备收发测试1

海思平台SPICan设备收发测试2

b. CAN1接收,CAN2发送

candump can1 & cansend can0 -i 8 -e 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88

海思平台SPICan设备收发测试3

海思平台SPICan设备收发测试4

至此CAN0和CAN1收发测试完成

猜你喜欢