站内搜索
发作品签到
专业版

usb2can_canfd分析仪双通道模块

工程标签

1.1k
0
0
4

简介

USB canfd分析仪,双通道

简介:USB canfd分析仪,双通道
复刻成本:20

开源协议

GPL 3.0

创建时间:2025-04-04 15:32:59更新时间:2025-08-08 17:37:56

描述

序号

名称

功能

1

USB B方型母口

对接电脑,传输控制指令和数据

2

PWR灯

电源指示灯,USB插上电脑就亮

3

CAN1灯

通道1指示灯,通道1有数据亮

4

CAN2灯

通道2指示灯,通道2有数据亮

5

CAN1_H

通道1 对应的CAN总线H

6

CAN1_L

通道1 对应的CAN总线L

7

CAN1_R+

终端电阻120Ω默认使能,此引脚实际上是UART控制口RX

8

CAN1_R-

终端电阻120Ω默认使能,此引脚实际上是UART控制口TX

9

CAN2_H

通道2 对应的CAN总线H

10

CAN2_L

通道2 对应的CAN总线L

11

CAN2_R+

终端电阻120Ω默认使能,此引脚实际上是GND

12

CAN2_R-

终端电阻120Ω默认使能,此引脚实际上是GND

13

接线卡槽

将CAN盒插针形式的接口转换为带螺栓接线接口(可以拆卸)

 

基础用法

 

 

  • 连接电脑

通过USB A公转B公数据线,将设备连接电脑

  • 在线使用

不需要安装上位机软件,直接通过浏览器打开官网https://canmb.com/

(直接点击链接,或在浏览器浏览器地址栏输入 canmb.com)

  • 第一次访问必须联网,可以右键另存为保存到本地、后续从本地访问
  • 浏览器建议选择新款,如Chrome,360等;需要支持webusb功能
  • 连接设备

点击“连接设备”按钮

再在弹窗中选择设备“STM32 Virtual ComPort”,接着点击“连接”

  • 若未出现弹窗,可能是浏览器版本过低;可以换个浏览器再试
  • 若弹窗中未出现指定设备,可能是需要安装驱动;参考下文
  • 安装驱动

默认免驱,若第三步已经成功识别设备、则可不用安装

若设备插上电脑后设备管理器显示为黄色标识未识别设备,则下载驱动并安装:

https://gitcode.com/Premium-Resources/15d7f

  • 参数配置

使能CAN通道、选择协议、模式、速率、采样点等,最后点击“开始使用”

 

  • 接收数据

将CAN通道对应的总线H、L接口对接外部其他节点,接收其他节点发来的报文

  • 发送数据

点击界面上方“发送报文”按钮;在弹出的窗口中填写要发送的报文内容、开始发送

对端成功接收到数据:

 

进阶用法

功能一:高级配置

在“设备配置”界面,点击左侧“高级配置”按钮

可以自定义分频系数、sega、segb、sjw、tdc等参数,适用于高级玩家

功能二:修改主频

在“设备配置”界面,点击左侧“设备管理”按钮

可以修改CAN控制器主频,可选64M或者40M;方便精确分频和锚定采样点

功能点三:速率匹配

在“设备配置”-“基础配置”界面右侧有个“自动匹配按钮”

可以让上位机遍历调整CAN盒配置,直至能够收到报文;适用于不知道总线速率配置场景

 

功能点四:串口控制

除了USB接口以外,此设备还支持由串口控制

取USB转UART调试器,与设备尾部的GND、RX、TX接口对接,默认波特率115200,8N1

  • 由于设备尾部没有VCC引脚,所以使用串口控制时候,USB接口依旧要接(有电就行)
  • 串口控制指令与USB接口控制指令完全一样,控制指令介绍参考“控制指令”章节

 

控制指令(用于二次开发)

一、获取能力集和当前配置

格式

{c:attr}

参数

返回值

设备能力集 {

  sys_frequency:系统主频

  uart_baudrate:串口波特率

  tx_gates_num:发送邮箱格式

  rx_filter_num:过滤条件个数

  rx_fifo_size:缓存队列深度

}

控制器配置 {

  Channel:控制器编号

  CurrentMode:当前模式

  AutoRetransmission:自动重传使能位

  NominalPrescaler:仲裁段分频系数

  NominalSyncJumpWidth:仲裁段Sjw TQ

  NominalTimeSync:仲裁段同步段 TQ

  NominalTimeProp:仲裁段传输段 TQ

  NominalTimeSeg1:仲裁段Seg1 TQ

  NominalTimeSeg2:仲裁段Seg2 TQ

  DataPrescaler:数据段分频系数

  DataSyncJumpWidth:数据段Sjw TQ

  DataTimeSync:数据段同步段 TQ

  DataTimeProp:数据段传输段 TQ

  DataTimeSeg1:数据段Seg1 TQ

  DataTimeSeg2:数据段Seg2 TQ

  TdcEnable:TDC使能位

  TdcValue:TDC大小

}

缓存队列状态 {

  wp:写指针位置

  rp:读指针位置

}

整系统状态 {

  rx_fifo_over_flow:队列溢出标记(0:未发送 1:发生)

  xx_pkt_print_mode:报文打印格式(0:二进制 1:字符)

}

示例

 

上位机发送:

{c:attr}

 

设备反馈:

====Auth:CanMB.com

====Type:CanMB_CANFD

====Ver:V1.0

====ID:4d40c1a1

====Attribution:

----  sys_frequency:40M

----  uart_baudrate:115200

----  tx_gates_num:32

----  rx_filter_num:32

----  rx_fifo_size:100

====Configuration:

----  Init {

  Channel:0

  CurrentMode:DISABLE

  AutoRetransmission:0

  NominalPrescaler:0

  NominalSyncJumpWidth:0

  NominalTimeSync:1

  NominalTimeProp:1

  NominalTimeSeg1:0

  NominalTimeSeg2:0

  DataPrescaler:0

  DataSyncJumpWidth:0

  DataTimeSync:1

  DataTimeProp:1

  DataTimeSeg1:0

  DataTimeSeg2:0

  TdcEnable:0

  TdcValue:0

}

----  Init {

  Channel:1

  CurrentMode:DISABLE

  AutoRetransmission:0

  NominalPrescaler:0

  NominalSyncJumpWidth:0

  NominalTimeSync:1

  NominalTimeProp:1

  NominalTimeSeg1:0

  NominalTimeSeg2:0

  DataPrescaler:0

  DataSyncJumpWidth:0

  DataTimeSync:1

  DataTimeProp:1

  DataTimeSeg1:0

  DataTimeSeg2:0

  TdcEnable:0

  TdcValue:0

}

----  Rx_Fifo {

  wp:0

  rp:99

}

----  Status {

  rx_fifo_over_flow:0

  xx_pkt_print_mode:0

}

 

二、修改CAN控制器主频

格式

{c:freq,mode:%mode%}

参数

%mode% 0: 40M主频(默认)1: 64M主频

返回值

ok

示例

上位机发送:

{c:freq,mode:0}

 

设备反馈:

ok

 

三、修改串口波特率

格式

{c:uart,baud:%baud%,keep:%keep%}

参数

%baud% 0: 115200(默认), 1: 1200, 2: 2400, 3: 4800, 4: 9600, 5: 19200, 6: 38400, 7: 57600, 8: 115200, 9: 230400, a: 460800, b: 921600, c: 1000000, d: 1500000

(数据格式8N1)

%keep% 0: 临时修改 1: 永久修改

返回值

ok

示例

 

上位机发送:

{c:uart,baud:0,keep:0}

 

设备反馈:

ok

 

四、修改报文打印方式

格式

{c:rx_print,mode:%mode%}

参数

%mode% 0: 二进制格式(默认) 1: 文本格式

返回值

ok

示例

 

上位机发送:

{c:rx_print,mode:0}

 

设备反馈:

ok

备注

文本打印格式:

{c:rx_pkt,ch:%u,id:%08x,ext:%u,fd:%u,brs:%u,len:%u,data:%02x....%02x,idx:%08x}

ch: 控制器通道ID

id: 报文ID

ext: 扩展帧标记

fd: CANFD格式标记

brs: 变速帧标记

len: 数据长度

data: 数据内容

idx: 报文索引

 

二进制打印格式:

struct {

    uint32_t ext:1; // 扩展帧标记

    uint32_t fd:1; // CANFD格式标记

    uint32_t brs:1; // 变速帧标记

    uint32_t id:29; // 报文ID

    //

    uint8_t ch:1; // 控制器通道ID

    uint8_t dir:1; // 0 rx, 1 tx

    uint8_t idx:2; // 报文索引

    uint8_t dlc:4; // 报文DLC值

    uint8_t data[data_len]; // 数据内容,变长

    uint8_t maigc:4; // 固定0x3b,对应字符 ';'

}

 

 

五、初始化CAN控制器

格式

{c:init,channel:%channel%,mode:%mode%,arb_pre:%arb_pre%,arb_sega:%arb_sega%,arb_segb:%arb_segb%,arb_sjw:%arb_sjw%,brs_pre:%brs_pre%,brs_sega:%brs_sega%,brs_segb:%brs_segb%,brs_sjw:%brs_sjw%,tdc_enable:%tdc_enable%,tdc_value:%tdc_value%,auto_retry:%auto_retry%}

参数

%channel% 通道ID;0:通道1,1:通道2

%mode% 模式;0: disable,1: classic can, 2: canfd without brs, 3: canfd with brs, 4: listen only

%arb_pre% 仲裁段分频系数;%02x格式

%arb_sega% 仲裁段sega逻辑值(对应同步段+传输段+seg1);%02x格式

%arb_segb% 仲裁段segb逻辑值(对应seg2);%02x格式

%arb_sjw% 仲裁段sjw;%02x格式

%brs_pre% 数据段分频系数;%02x格式

%brs_sega% 数据段sega逻辑值(对应同步段+传输段+seg1);%02x格式

%brs_segb% 数据段segb逻辑值(对应seg2);%02x格式

%brs_sjw% 数据段sjw;%02x格式

%tdc_enable% TDC使能位;0:不使能,1:使能

%tdc_value% TDC值;%02x格式

%auto_retry% 自动重传使能位;0:不使能,1:使能

返回值

ok

示例

 

上位机发送:

{c:init,channel:0,mode:3,arb_pre:01,arb_sega:38,arb_segb:18,arb_sjw:38,brs_pre:02,brs_sega:07,brs_segb:03,brs_sjw:04,tdc_enable:1,tdc_value:05,auto_retry:1}

 

设备反馈:

ok

备注

波特率计算方法

主频(MHz) / 分频系数 = (sega+segb) * 速率(Mbps)

比如示例中配置”arb_pre:01,arb_sega:38,arb_segb:18”,带入公式

40/1 = (0x38+0x18)*speed,得speed=0.5Mbps

六、发送CAN报文

格式

{c:send,channel:%channel%,gate:%gate%,enable:%enable%,id:%id%,ext:%ext%,fd:%fd%,brs:%brs%,len:%len%,repeat:%repeat%,period:%period%,data:%data%}

参数

%channel% 通道ID;0:通道1,1:通道2

%gate% 发送通道(邮箱):%02x格式,范围0~tx_gates_num

%enable% 使能标记:0:不使能,1:使能

%id% 报文ID:%08x格式

%ext% 扩展帧标记:0:不是扩展帧,1:是扩展帧

%fd% CANFD格式标记:0:不是CANFD帧,1:是CANFD帧

%brs% 变速帧标记:0:不是变速帧,1:是变速帧

%len% 报文长度:%02x格式

%repeat% 是否重复:0:不重复,1:重复

%period% 重放间隔:%04x格式,单位ms

%data% 数据内容:%02x格式,长度需与%len%匹配

返回值

ok

示例

 

上位机发送:

{c:send,channel:0,gate:00,enable:1,id:00000210,ext:1,fd:0,brs:0,len:08,repeat:1,period:0001,data:0102030405060708}

 

设备反馈:

ok

备注

若总线上存在其他节点且波特率匹配,则能顺利接收到报文

 
   

若报文顺利被接收,会回显打印报文,打印格式参考上文“修改报文打印格式”

 

 

七、配置接收过滤条件

格式

{c:recv,channel:%channel%,gate:%gate%,enable:%enable%,id:%id%,mask:%mask%,from:%from%,to:%to%}

参数

%channel% 通道ID;0:通道1,1:通道2

%gate% 发送通道(邮箱):%02x格式,范围0~tx_gates_num

%enable% 使能标记:0:不使能,1:使能

%id% 报文ID:%08x格式

%mask% 报文ID对应的掩码:%08x格式,当且仅当收到的报文ID & %mask% == %id% & %mask% 时候,报文才会被接收

%from% 报文ID起始值:%08x格式

%to% 报文ID结束值:%08x格式,当且仅当%from% <=收到的报文ID <=%to%时候,报文才会被接收

返回值

ok

示例

 

上位机发送:

{c:recv,channel:0,gate:00,enable:1,id:00000210,mask:00000ff0,from:00000210,to:00000211}

设备反馈:

ok

备注

如果配置了多个过滤条件,则所有的条件都被满足才能收到报文(与关系)

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
CANMB.hex
21
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航