驱动中确认can通信

本文详细介绍了如何根据设备树配置Rockchip平台的CAN总线驱动,包括驱动程序定位、内核编译及加载,同时指导了canutils工具的下载、编译和环境设置,以及USR-CANET200模块的连接和配置,以及调试软件的使用方法。
摘要由CSDN通过智能技术生成

驱动配置

  1. 根据设备树中对can总线的compatible 属性找到对应的驱动程序
  2. 驱动程序为 drivers/net/can/rockchip/rockchip_can.c
  3. 找到驱动程序对应的Makefile文件和Kconfig文件,找到对应的内核配置项(CAN_ROCKCHIP)
  4. 打开配置项,重新编译并加载内核
  5. 驱动加载成功后,会多出一个目录 /sys/devices/platform/ff610000.can
can: can@ff610000 {
        compatible = "rockchip,can-1.0";
        reg = <0xff610000 0x100>;
        interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
        assigned-clocks = <&cru CLK_CAN>;
        assigned-clock-rates = <200000000>;
        clocks = <&cru CLK_CAN>, <&cru PCLK_CAN>;
        clock-names = "baudclk", "apb_pclk";
        resets = <&cru SRST_CAN>, <&cru SRST_CAN_P>;
        reset-names = "can", "can-apb";
        status = "disabled";
    };

工具下载与使用

下载canutils工具

下载canutils和libsocketcan
https://public.pengutronix.de/software/libsocketcan/libsocketcan-0.0.11.tar.bz2     
https://public.pengutronix.de/software/socket-can/canutils/v4.0/canutils-4.0.6.tar.bz2

编译libsocketcan
tar -jxvf libsocketcan-0.0.11.tar.bz2
cd ./libsocketcan-0.0.11
mkdir out
./configure --host=arm-linux-gnueabihf --prefix=/home/canutils_tools/libsocketcan-0.0.11/out
make
make install
生成的库在out/lib目录下


编译canutils
//先将 libsocketcan 里面的头文件 libsocketcan.h can_netlink.h 复制到 canutils 的 include 里面
tar -jxvf canutils-4.0.6.tar.bz2
cd ./canutils-4.0.6
mkdir out
./configure --host=arm-linux-gnueabihf --prefix=/home/canutils_tools/canutils-4.0.6/out libsocketcan_LIBS=-lsocketcan LDFLAGS="-L/home/canutils_tools/libsocketcan-0.0.11/out/lib/" libsocketcan_CFLAGS="-I/home/canutils_tools/libsocketcan-0.0.11/out/include"
make
make install

使用canutils工具

将编译出的两个out目录分别拷贝到采集板中任意目录并重命名,这里拷贝到oem目录中
/oem/can_tools/canutils
/oem/can_tools/libsocketcan-0.0.11

设置环境变量
export LD_LIBRARY_PATH=/oem/can_tools/libsocketcan-0.0.11/lib:$LD_LIBRARY_PATH
export PATH=$PATH:/oem/can_tools/libsocketcan-0.0.11
export PATH=$PATH:/oem/can_tools/canutils
export PATH=$PATH:/oem/can_tools/canutils/sbin
export PATH=$PATH:/oem/can_tools/canutils/bin

使用:
canconfig can0 stop   //关闭can0
canconfig can0 bitrate 500000  //设置波特率
canconfig can0 start  //启用can0

candump can0   //指定can0为接收数据口,即监听can0总线上的数据,并将接收到的CAN数据包以文本格式显示在终端上
canecho can0   //作用是在CAN总线can0上发送一条恒定的空数据帧,用来检测CAN总线的工作状态
cansend can0 -i 2 1 2 3 4 5 6 7 8 -v //采集板给can0发送数据

配合USR-CANET200模块使用

连接方式

  1. 开发板的can0 连接USR-CANET200模块的can1接口,模块连接电源与网线
  2. CANET200模块接受数据时,can1指示灯会蓝色闪亮,发送数据时红色闪亮

CANET200模块配置

  1. 模块恢复出厂设置:模块上电后,按住Reload按键3~15秒,一般是8秒左右即可恢复出厂设置,恢复出厂设置后模块的默认如下图所示
  2. Windows电脑中,将网络配置为 192.168.0.xxx 网段,模块与电脑连接在同一交换机上(路由器)
  3. Windows电脑浏览器可以登录192.168.0.7网页进行配置

调试软件下载与使用

  1. Windows软件下载链接:【PC端调试工具】 网络调试助手 串口调试助手二合一 -济南有人物联网技术有限公司官网
  2. 打开调试软件后如下图所示
    1. 注意:发送区和接收区的HEX选项需要选中,否则可能导致收发不到数据
  3. 采集板发送数据到模块时,调试软件中会显示数据内容
  4. 模块发送数据到采集板时,采集板命令行中会显示数据内容(采集需要执行candump can0 将can0设置为接收端口)

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值