当前位置: 首页 > news >正文

模拟can通信

实验一 模拟can通信

1、虚拟CAN接口创建

实车上算法一般通过ros进行通信,车辆和控制器之间则通过can通信实现。 can信号的发送和接收一般是需要载体的,我们一般都有can0和can1设备可以使用,在电脑上创建这个设备:

加载vcan内核模块:

# 加载vcan内核模块
sudo modprobe vcan# 创建名为vcan0的虚拟接口
sudo ip link add dev vcan0 type vcan# 启用接口
sudo ip link set up vcan0

img

验证can状态

ip link show vcan0

img

2、模拟信号通信

安装can-utils工具包

sudo apt install can-utils 

监听can报文

candump -td vcan0  # -td:显示时间戳和详细数据

发送单条报文

发送数据,没有多余控制。

cansend vcan0 111#2233

参数说明

can_id#pay_load形式。其中can_id必须3 or 8位,例如填写 11#2233是不正确的。

img

cangen

作用: 通过指定can口发送指定的数据

cangen vcan0 -I 456 -L 8 -D i -g 0.5 -n 10

参数说明:

  • g : 发送帧的间隔,单位为毫秒。
  • I : CAN ID 生成的模式,此处42A表示采用固定的CANID 42A。如果不指定则为随机模式。
  • L: 数据长度产生模式,此处固定长度为1,即每帧携带一个数据
  • D: payload 的产生模式,此处为i,即从0开始依次递增发送数据,仅仅递增第一个数据。
  • x: 即禁止本地自环测试。比如我们在同一个单板上有两个can口,我们将其互联,进行互发数据,如果不使用此参数,则通过can1向can1则可以正常发送数据,即使外部没有连接。
  • n: 发送多少个帧,此处发送10个帧

img

设置canid随机

img

cansniffer

cansniffer -c vcan0

启用颜色标记

img

红色代表发生变化的字节

Canplayer

canplayer -I candump-2025-07-25_005121.log -l i

-I 指定输入文件

-l <num> 重复回放文件 <num> 次(i = 无限循环,默认 1

-v 实时打印发送的 CAN 帧

-t 立即发送所有帧(默认按日志时间间隔发送)

img

http://www.hskmm.com/?act=detail&tid=37635

相关文章:

  • 解题报告-拯救计划(概率 DP)
  • 日志分析-IIS日志分析
  • Min_25 筛
  • 解码Linux文件IO之库的制作与应用
  • 20251023 正睿二十连测
  • 1019:浮点数向零舍入(分正负取整)
  • 二分图/忆re.
  • 《IDEA 2025长效采用配置指南:有效期配置至2099年实战之JetBrains全家桶有效》​
  • ZKW线段树
  •  pytorch 66页实验题
  • Visual Studio 插件 - 喝水提醒 - 指南
  • JAVA 排序用法
  • 10/23
  • 10月23日
  • 第3天(中等题+简单题 数组、滑动窗口)
  • esp32-usb-jtag 调试踩坑
  • MySQLDay3
  • 飞牛OS通过docker部署SillyTavern酒馆
  • MySQL主从同步读写分离
  • ollama v0.12.2 版本更新详解:Qwen3 架构协助、Multi-Regex 分词器、新引擎前后缀匹配等功能升级
  • AI股票预测分析报告 - 2025年10月23日 20:26
  • 软件包管理
  • nginx反向代理测试搭建
  • 基础概念
  • .NET Core报错克服【无废话上操作】
  • 题解:P11831 [省选联考 2025] 追忆
  • 2025-10-23 MX-S 模拟赛 赛后总结【MX】
  • PCL1.12 解决memory.h中EIGEN处中断问题
  • 完整教程:状态管理库 Zustand 的接入流程与注意点
  • 20251023