USB-CAN-A教程

产品特性

  • 支持 CAN2.0A(标准帧)和 CAN2.0B(扩展帧)
  • 支持 CAN 通讯波特率范围:5kbps~1Mbps,可自定义 CAN 波特率
  • 支持四种工作模式:正常模式、环回模式、静默模式、静默环回模式
  • 支持多种 CAN 数据发送方式:单帧发送、多帧发送、手动发送、定时发送和循环发送
  • 支持多种 CAN 数据接收方式:可配置只接收指定 ID 的数据,也可指定 ID 自动应答配置好的数据
  • 支持收发 CAN 数据保存为 TXT 或 EXCEL 文本
  • 支持 CAN 总线检测,方便查看 CAN 总线状态
  • CAN 收发数据显示都带时间标识,可顺序显示,也可刷新显示
  • 支持设置 USB 虚拟 COM 口的通信波特率 (9600 ~ 2000000bps),默认为 2000000bps
  • 支持通过配置软件或串口指令设置工作参数,可断电保存
  • 采用 STM32 进口芯片方案,通信稳定可靠
  • 板载 TVS(瞬态电压抑制管),有效抑制电路的浪涌电压和瞬态尖峰电压
  • 提供 Windows 版本的中英文上位机软件,使用方便
  • 支持二次开发,只需处理收发命令即可

基本功能


Windows系统使用

USB驱动安装

  • 下载CH341SER驱动,双击CH341SER.EXE文件,点击安装,出现驱动安装成功后,点击确定完成驱动安装:

CAN配置工具使用说明

打开CAN配置工具
  • 工具免安装,下载并解压文件后,打开USB-CAN.exe文件:


配置页面功能说明

① 端口设置区:
将把 USB 转 CAN 插入电脑后,可以自动寻找电脑 COM 端口,选择好端口可以,可以打开或关闭端口,这个跟串口调试助手类似,通讯波特率默认是的2000000bps。
若须更改波特率,可参考下文: 更改 COM(232)波特率说明: 1. 用 USB 数据线插上转换器,同时注意发送及接受指示灯同时闪几下:

闪 1 下,对应串口的波特率为 2000000bps
闪 2 下,对应串口的波特率为 1228800bps
闪 3 下,对应串口的波特率为 115200bps
闪 4 下,对应串口的波特率为 38400bps
闪 5 下,对应串口的波特率为 19200bps
闪 6 下,对应串口的波特率为 9600bps

2. 打开软件,选择对应 COM 端口号及波特率,点击打开按钮(比如转换器插上 USB 数据线上电时收发指示灯同时闪 1 下,我们应该选波特率 2000000bps)
3. 点击打开按钮
4. 点击更改波特率按钮,此时会跳出一个对话框,我们在波特率组合框里面选择我们准备设置的波特率后,点击更改即可;若不想更改,点击取消按钮。
5. 比如我们要设置波特率为 9600bps :

  • 在波特率组合框里面 9600.
  • 点击更改按钮,同时注意观察转换器收发指示灯闪烁,
  • 对应 9600 波特率转换器收发指示灯会同时闪 6 下。
  • 由于端口波特率已经更改,需要关闭端口后,选择更改后的波特率重新打开

6. 点击关闭按钮 7. 将波特率选择为更改后的波特率 8. 重新点击打开按钮即可

② CAN 设置区:
工作模式包含正常模式,环回模式,静默模式,环回及静默模式

  • 正常模式:就是 CAN 正常通讯的模式,可以正常向总线收发数据
  • 环回模式:发送的数据可以发往 CAN 总线,同时反馈的内部的接受区,忽略接受引脚的实际状态,可用于自测试
  • 静默模式:可以正常接受数据,但只能发送隐性位,而不能真正发送报文,常用于分析 CAN 总线活动
  • 环回静默模式:该模式可以用于“热自测试”,即在线自测试。可以像环回模式那样自测试,但却不影响 CAN 总线系统。
  • 帧类型:标准帧(CAN2.0A 11 位 ID) 扩展帧(CAN2.0B 29 位 ID)
  • CAN 波特率:可以直接选择 CAN 通讯常用的波特率:1M,800K,500K,400K,250K,200K,125K,100K,50K,20K,10K,5K;若上面可直接设置的波特率与你的 CAN 设备的波特率不一致,可选择。
  • 滤波 ID 与屏蔽 ID:都是 16 进制数据,标准帧时滤波 ID 及屏蔽 ID 低11 位有效(范围:0x00000000~0x000007ff),扩展帧 滤波 ID 及屏蔽ID低 29 位有效(范围 0x00000000~0x1fffffff)
  • 固定 20 字节收发:CAN 转换器内部有 2 种转换协议,一个是可以长度的通讯协议,一种是固定 20 字节的通讯协议,选中后将是固定 20 接通讯协议,不选中则是可变协议通讯选择之后会跳出一个自定义波特率的对话框最上面位 CAN 波特率的计算公式,同时设置相位缓冲区 1,相位缓冲区 2,及预分频就可以了
  • 禁止报文自动重发:CAN 通讯一般都是发送不成功自动重发,如果一直循环发送数据,可以设置禁止报文自动重发,点击设置并启动 ,就可以进行 CAN 通讯了。

③ 发送单帧数据区:
帧格式包含数据帧及远程帧,帧ID是16进制数据,对于标准帧帧ID范围为 0x00000000~0x000007fff , 对 于 扩 展 帧 帧 ID 范围为0x00000000~0x1fffffff。发送的数据也为 16 进制数据,图中的数据分别为 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88点击发送单帧按钮则将该帧数据发送到 CAN 总线

④ 多帧发送数据区:

  • 增加按钮:在发送多帧区域选中行下面将增加一条发送帧数据
  • 删除按钮:将删除选中行
  • 清空按钮:将清除发送多帧发送区所有数据
  • 间隔时间:多帧发送区相连两帧的间隔发送时间(毫秒)
  • 发送选中帧:点击此按钮将发送多帧区内选中的一行进行发送
  • 顺序:选中后点击发送选中帧将自动切换到下一帧
  • 循环:选中后点击发送选中帧将循环发送
  • 停止:取消发送多帧命令

⑤ 自动应答区:

  • 增加按钮:在自动应答区域选中行下面将增加一条自动应答数据
  • 删除按钮:将删除选中行
  • 清空按钮:将清除发送自动应答区所有数据
  • 自动应答:将选中后接到到接受 ID 将自动回复对应的帧 ID 及数据

⑥ CAN 总线状态区:
主要用于查看 USB 转 CAN 装置的 CAN 通讯状态

⑦ 配置接受 ID 区:
增加按钮:在配置接受区域选中行下面将增加一条自动应答数据删除按钮:将删除选中行启用按钮:点击此按钮后转换器将只上传配置接受 ID 区里面设置的ID,其他 ID 都不上传到电脑不启用按钮:点击此按钮后转换器将所有 ID 数据都上传到电脑

⑧ 收发数据显示区:

  • 清空:清空收发数据显示器所以数据
  • 暂停:暂停在收发显示区显示其他数据
  • 继续:继续显示收发数据
  • 保存: 可以将收发数据缓冲区的数据保存,可以保存两种格式,excel 或 txt 文本
  • 不显示发送帧:可以在收发数据区只显示接受的数据
  • 自动刷新:当只显示接受的数据时,可以选择自动刷新,这时候数据是实时刷新,而不是不断增加列显示,该功能可以归纳 CAN 总结的 ID 数据选中任意一行

硬件测试

接到2-CH CAN FD HAT测试

  • 将USB-CAN-A和2-CH CAN FD HAT通过杜邦线,将A-->A和B-->B相连,USB-CAN-A的USB端接到电脑USB口:


  • 在电脑端打开USB-CAN调试工具,默认波特率为2M,打开对应的端口号,选择正常模式,标准帧和程序对应的速率1Mbps(USB-CAN-A 高支持1M),设置并启动;2-CH CAN FD HAT和USB-CAN-A实现数据互发互收:

如下图所示:

接到USB-CAN-B测试

  • 通过杜邦线等导线将USB-CAN-A和USB-CAN-B的H-->H和L-->L相连;然后打开两者的120欧姆电阻开关:

  • 打开对应的配置工具,USB-CAN-A发送数据USB-CAN-B收到;USB-CAN-B发送数据,USB-CAN-A能收到,反之亦然,测试OK

Linux系统使用

硬件准备

2个USB-CAN-A的L和H分别对应连接起来,打开两者的120欧姆电阻开关(开关拨到靠近绿色接线端子一边),USB端分别接到树莓派的USB口,硬件连接情况如下图:

例程测试

  • 复制以下指令到树莓派终端:
wget https://www.waveshare.net/w/upload/7/72/USB-CAN-A.zip
sudo apt-get install unzip
unzip USB-CAN-A.zip
cd USB-CAN-A
sudo make clean
sudo make
  • 在终端界面输入以下指令:
./canusb -t -d /dev/ttyUSB0 -s 1000000 -t
  • 再打开多一个终端界面,运行以下指令:
./canusb -d /dev/ttyUSB1 -s 1000000 -t -i 5 -j BEEE
  • 一个USB-CAN-A(ttyUSB0)发送数据,另一个USB-CAN-A(ttyUSB1)接收到对应的数据,效果如下图: