RK3568开发笔记-CAN开发使用

目录

前言

一、CAN驱动配置

二、dts设备树节点配置

三、canutils工具配置使用

四、系统节点及测试

总结


前言

RK3568 CPU有3路原生can,本文主要介绍RK3568 can的驱动、设备树配置以及测试使用。

一、CAN驱动配置

can控制器驱动程序在/kernel/drivers/net/can/rockchip/rockchip_can.c

 linux内核配置项点,在 Networking support > CAN bus subsystem support > CAN Device Drivers 下打开can drivers配置项点,如下图所示:

RK3568开发笔记-CAN开发使用_第1张图片

save保存退出即可。

二、dts设备树节点配置

 can设备树节点配置如下图所示:

RK3568开发笔记-CAN开发使用_第2张图片

compatible = "rockchip,can-1.0" ,rockchip,can-1.0用来匹配can控制器驱动

 assigned-clock-rates用来配置can的始终频率,如果CAN的波特率为1M,建议修改CAN时钟为300M,低于1M的波特率时钟设置为200M更稳定。

pinctrl配置:根据实际板卡连接情况配置can_hcan_liomux作为can功能使用。

三、canutils工具配置使用

canutils 是常用的 CAN 通信测试工具包,内含 5 个独立的程序: canconfig candump canecho cansend 、 cansequence。这几个程序的功能简述如下:
canconfig :用于配置 CAN 总线接口的参数,主要是波特率和模式。
candump :从 CAN 总线接口接收数据并以十六进制形式打印到标准输出,也可以输出到指定文件。
canecho :把从 CAN 总线接口接收到的所有数据重新发送到 CAN 总线接口。
cansend :往指定的 CAN 总线接口发送指定的数据。
cansequence :往指定的 CAN 总线接口自动重复递增数字,也可以指定接收模式并校验检查接收的递增数字。
ip :CAN波特率、功能等配置。

由于busybox里面集成的是canutils的阉割版本,对can的操作支持不完全,故使用buildroot的里面的iproute2版本,在buildroot编译目录下/buildroot/output/rockchip_rk3568_r900执行make menuconfig,具体配置如下图所示:

buildroot下canutils配置: 

RK3568开发笔记-CAN开发使用_第3张图片

buildroot下iprouter2工具配置: 

RK3568开发笔记-CAN开发使用_第4张图片

四、系统节点及测试

 can设备在linux系统中生成的节点如下所示:

RK3568开发笔记-CAN开发使用_第5张图片

 测试指令:

1、can启动:ip link set can0 up

2、can关闭:ip link set can0 down

3、设置波特率:ip link set can0 type can bitrate 250000

4、显示can0详细信息:ip -details link show can0

5、can数据发送:

发送(标准帧 , 数据帧 ,ID:12,date:DEADBFFF :
cansend can0 12#DEADBFFF
发送(标准帧 , 远程帧 ,ID:12 :
cansend can0 12#R
发送(扩展帧 , 数据帧 ,ID:0000012,date:DEADBFFF :
cansend can0 0000012#12345678
发送(扩展帧 , 远程帧 ,ID:0000012 :
cansend can0 0000012#R
6、can接收:candump can0。

总结

本文主要对can设备驱动内核以及设备树节点进行配置,以及canutils、iprouter2工具配置及使用做一个介绍及总结,下一篇主要对linux can网络编程进行介绍。

你可能感兴趣的:(RK3568开发笔记,c语言,linux,开发语言,后端,架构)