Linux CAN调试工具can-utils的使用

embedded/2024/10/18 18:19:26/

CAN,Controller Area Network,控制器局域网,一种高可靠性的现场总线。广泛用于汽车电子、工业控制通信。

canutils 工具包内含如下独立的程序,功能简述如下:

    canconfig:用于配置 CAN 总线接口的参数,主要是波特率和模式。
    candump:从 CAN 总线接口接收数据并以十六进制形式打印到标准输出,也可以输出到指定文件。
    canecho:把从 CAN 总线接口接收到的所有数据重新发送到 CAN 总线接口。
    cansend:往指定的 CAN 总线接口发送指定的数据。
    cansequence:往指定的 CAN 总线接口自动重复递增数字,也可以指定接收模式并校验检查接收的递增数字。

    canbusload: 用于查看CAN总线使用率

以下指令,若有两个指令,则两个指令均可。

使用 ip 命令来配置 CAN 总线的位速率:

ip link set can0 type cantq 125 prop-seg 6phase-seg1 7 phase-seg2 2 sjw 1

ip 命令直接设定位速率:

ip link set can0 type can bitrate 125000
echo 500000 > /sys/class/net/can0/can_bittiming/bitrate

当设置完成后,可以通过下面的命令查询 can0 设备的参数设置:

ip -details link show can0

当设置完成后,可以使用下面的命令使能 can0 设备(两个指令均可):

ifconfig can0 up
ip link set can0 type can restart-ms 100

使用下面的命令取消 can0 设备使能:

ifconfig can0 down

在设备工作中,可以使用下面的命令来查询工作状态:

ip -details -statistics link show can0

向can0设备发送数据:

cansend can0 123#11223344556677
./cansend can0 -e 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88

发送默认ID为0x1的can标准帧,数据为0x11 22 33 44 55 66 77 88

每次最大8个byte

./cansend can0 -i 0x800 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 -e

-e 表示扩展帧,CAN_ID最大29bit,标准帧CAN_ID最大11bit

-i表示CAN_ID

循环发送数据:

cansend can0 -i 0x02 0x11 0x12 --loop=20

查看接收到的数据:

candump can0

 查看特定ID的CAN数据

candump can1,181:7FF,281:7FF // candump <can_devices>,<can_id>:<can_mask>

这里是只监听CANID为0x181,0x281的数据。(知识点:CAN标准帧ID为11位,对应的掩码为0x7FF。CAN扩展帧ID为29位,对应的掩码为0x1FFFFFFF)

 添加时间戳参数

candump can1 -tA

使用canconfig配置:

canconfig can0 stop

canconfig can0 bitrate 125000

canconfig can0 start

canbusload用法

canbusload - monitor CAN bus load.

Usage: canbusload [options] <CAN interface>+
  (use CTRL-C to terminate canbusload)

Options:
         -t  (show current time on the first line)
         -c  (colorize lines)
         -b  (show bargraph in 5% resolution)
         -r  (redraw the terminal - similar to top)
         -i  (ignore bitstuffing in bandwidth calculation)
         -e  (exact calculation of stuffed bits)

Up to 16 CAN interfaces with mandatory bitrate can be specified on the
commandline in the form: <ifname>@<bitrate>

The bitrate is mandatory as it is needed to know the CAN bus bitrate to
calcultate the bus load percentage based on the received CAN frames.
Due to the bitstuffing estimation the calculated busload may exceed 100%.
For each given interface the data is presented in one line which contains:

(interface) (received CAN frames) (used bits total) (used bits for payload)

Examples:

user$> canbusload can0@100000 can1@500000 can2@500000 can3@500000 -r -t -b -c

               

  1. 查看CAN1总线负载
canbusload can1@500000

参考链接:

https://zhuanlan.zhihu.com/p/470681140

https://blog.csdn.net/sinolover/article/details/114833102

https://blog.csdn.net/xiaoyuanwuhui/article/details/136562983


http://www.ppmy.cn/embedded/126344.html

相关文章

Vue3中的 setup 是什么?

setup是什么 setup是在组件中使用组合式API的入口setup函数是处于 生命周期函数 beforeCreate 和 Created 两个生命周期之间的函数 也就说在 setup函数中是无法 使用 data 和 methods 中的数据和方法的在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板…

使用Jenkins部署项目

部署中的痛点 为什么要用Jenkins&#xff1f;我说下我以前开发的痛点&#xff0c;在一些中小型企业&#xff0c;每次开发一个项目完成后&#xff0c;需要打包部署&#xff0c;可能没有专门的运维人员&#xff0c;只能开发人员去把项目打成一个exe包&#xff0c;可能这个项目已…

tcl脚本中的info用法

在 TCL 脚本 中&#xff0c;info 命令用于获取与程序执行状态相关的各种信息。它能够返回当前环境中的变量、命令、函数等的详细信息&#xff0c;是调试和控制流程时非常有用的工具。以下是 info 命令的常见用法和应用场景&#xff1a; 1. 获取所有变量 set a 10 set b 20 pu…

什么是词嵌入(Word Embedding)

1. 什么是词嵌入(Word Embedding) ⾃然语⾔是⼀套⽤来表达含义的复杂系统。在这套系统中&#xff0c;词是表义的基本单元。顾名思义&#xff0c;词向量是⽤来表⽰词的向量&#xff0c;也可被认为是词的特征向量或表征。把词映射为实数域向量的技术也叫词嵌⼊&#xff08;word e…

息肉检测数据集 yolov5 yolov8适用于目标检测训练已经调整为yolo格式可直接训练yolo网络

息肉检测数据集 yolov5 yolov8格式 息肉检测数据集介绍 数据集概述 名称&#xff1a;息肉检测数据集&#xff08;基于某公开的分割数据集调整&#xff09;用途&#xff1a;适用于目标检测任务&#xff0c;特别是内窥镜图像中的息肉检测格式&#xff1a;YOLO格式&#xff08;边…

从零开始构建:Python自定义脚本自动化你的日常任务

从零开始构建&#xff1a;Python自定义脚本自动化你的日常任务 Python 作为一种简洁且功能强大的编程语言&#xff0c;被广泛应用于各种自动化任务中。通过编写 Python 脚本&#xff0c;你可以轻松地将日常重复性工作自动化&#xff0c;例如文件操作、数据处理、网络爬虫、系统…

探索TCP协议的奥秘:Python中的网络通信

引言 在网络通信的世界里&#xff0c;TCP协议&#xff08;传输控制协议&#xff09;就如同一座桥梁&#xff0c;连接着数据的发送方和接收方。作为一名拥有20年实战经验的编码专家&#xff0c;我深知TCP协议在构建稳定、可靠的网络应用中的重要性。今天&#xff0c;我将带领大…

面试字节跳动精选20道产品经理面试题分析回答

分享20道字节跳动产品经理的面试题&#xff0c;产品经理的面试很多会跟项目强关联&#xff0c;比如面试电商产品经理&#xff0c;就要多聊电商的业务&#xff0c;所以我们选了一些比较通用的&#xff0c;面试题及我们的分析回答。 01 20道面试题&#xff08;前10道&#xff0…