当前位置: 首页 > 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.jsqmd.com/news/20709/

相关文章:

  • 202501软件工程第二次团队作业
  • 题解:P14174 【MX-X23-T4】卡常数
  • 比赛题解 总结
  • 解题报告-拯救计划(概率 DP)
  • 解码Linux文件IO之库的制作与应用
  • 20251023 正睿二十连测
  • 1019:浮点数向零舍入(分正负取整)
  • 创建 SQL Server 数据库【通用】
  • HNSW算法实战:用分层图索引替换k-NN暴力搜索
  • 日志分析-IIS日志分析
  • Spring Boot 自动配置之 TaskExecutor - 实践
  • 二分图/忆re.
  • 编程与数学 03-009 Linux 操作系统应用 22_Linux 故障排除与问题克服
  • 《IDEA 2025长效采用配置指南:有效期配置至2099年实战之JetBrains全家桶有效》​
  • 如何制作PDF文件目录? - 详解
  • todesk远程到被控Mac后能看到画面,鼠标键盘执行无反应
  •  pytorch 66页实验题
  • 10/23
  • 玛哈特十一辊矫平机:把金属板送进“11 次节拍器” - 教程
  • JAVA 排序用法
  • esp32-usb-jtag 调试踩坑
  • MySQLDay3
  • 第3天(中等题+简单题 数组、滑动窗口)
  • 完整教程:微信小程序学习(一)
  • ollama v0.12.2 版本更新详解:Qwen3 架构协助、Multi-Regex 分词器、新引擎前后缀匹配等功能升级
  • 深入解析:XML中的 CDATA mybaitis xml中的 <![CDATA[ xxxx ]]>
  • MySQL主从同步读写分离
  • AI股票预测分析报告 - 2025年10月23日 20:26
  • 软件包管理
  • nginx反向代理测试搭建