最近网上买了一只 USB 转 CAN 转换器(型号 UTC-T01,兼容 PEAK/PCAN 驱动)。目标很简单:
- Windows 电脑当上位机,用 PCAN-View 发 CAN 报文
- 另一只转换器插在 EC3320 的 USB 口上
- SSH 进 EC3320 的 Linux 系统,用命令装好驱动后实时监测上位机发过来的数据
两边都装好、波特率对齐之后,SSH 终端里成功刷出了 CAN 帧。本文按实操顺序整理一遍,方便后来者复现。
一、整体思路
通信链路如下:
Windows 笔记本(PCAN-View)
│ USB
USB-CAN 转换器 A
│ CANH / CANL / GND
USB-CAN 转换器 B
│ USB
EC3320(SSH + receivetest)
要点只有三条:
- 物理层:两只转换器的 CANH、CANL、GND 一一对应接好
- Windows :装 PEAK 驱动 + 打开 PCAN-View,波特率设为 500 kbit/s
- Linux(EC3320) :编译安装
peak-linux-driver-8.15.2,用receivetest监听/dev/pcanusb32
二、准备清单
| 物品 | 说明 |
|---|---|
| USB-TO-CAN UTC-T01 × 2 | 一只接 Windows,一只接 EC3320 |
| Windows 电脑 | 安装驱动与上位机软件 PCAN-View |
| EC3320 边缘计算机 | Linux 系统,通过网线/SSH 远程操作 |
| 杜邦线或接线 | 连接两只转换器的 CANH、CANL、GND |
| 商家资料包 | 一般在百度网盘「PCAN」目录下 |
商家资料包大致包含:上位机软件、驱动(分 win / linux)、说明书、二次开发参考等。

进入「驱动」目录后,可以看到 Windows 与 Linux 两套资源:

三、硬件接线
先把两只转换器拿出来看清楚端子:外壳上标了 CANH、CANL、GND ,侧面一般有 120R / OFF / BOOT 拨码(终端电阻)。

接线规则(点对点最短总线):
| 转换器 A | 转换器 B |
|---|---|
| CANH | CANH |
| CANL | CANL |
| GND | GND |
实测接线示意:一端插笔记本电脑 USB,另一端插 EC3320 USB;中间三根线把总线连起来。EC3320 侧再插上网线,方便 SSH。

小提示:两端各开一只 120Ω 终端电阻(拨到 120R)通常更稳。短线实验时偶发也能通,但正式联调建议按规范接终端。
插上电后,转换器上的 PWR 灯应亮起;有收发时 TX/RX 会闪。
四、Windows:安装驱动与上位机软件
4.1 下载 Windows 驱动
在网盘路径 PCAN / 驱动 / win 下,下载:
PEAK-System_Driver-Setup.zip

解压后按安装向导完成(一路 Next 即可)。装完后把 USB-CAN 插到电脑上。
4.2 确认设备已被识别
打开 设备管理器,应能看到:
- 分类:
CAN-Hardware - 设备:
PCAN-USB

如果这里没有出现,或带黄色感叹号,先别往下做------多半是驱动没装对,或 USB 口/线材有问题。
4.3 下载上位机软件 PCAN-View
在网盘路径 PCAN / 上位机软件 / pcanview 下,下载:
PcanView.exe

双击运行即可(无需复杂安装)。
4.4 连接硬件并设置波特率
打开 PCAN-View,菜单 CAN → Connect(或工具栏连接图标):
- 左侧应能看到 PCAN-USB
- 右侧波特率选 500 kbit/s(本实测双方统一用 500k)
- 确认后连接

两边波特率必须一致,否则表现为「完全收不到」或报错刷屏。
4.5 新建发送报文
连接成功后,点击工具栏「新建发送报文」图标,填写 CAN ID、数据长度和数据内容,确定。

4.6 设置循环发送(推荐)
在 Transmit 列表里,给报文勾选 Cycle Time,例如:
- ID
555h,数据00 00 00 00 00 00 00 55,周期 2000 ms - ID
013h,周期 3000 ms
勾选后会按固定间隔自动往总线上发,方便 Linux 端持续监测。

发送、接收都正常时,界面大致如下(Receive 区能看到回环或对端数据,Transmit 区 Count 在增加):

Windows 侧先准备到这一步即可。接下来把 Linux 驱动装好,再回来点发送。
五、EC3320 Linux:安装 PCAN 驱动
5.1 下载 Linux 驱动包
网盘路径:PCAN / 驱动 / linux
目录里通常有:
peak-linux-driver(多个版本的.tar.gz)pcanview操作说明.txt- 测试截图等

本实测使用的版本是:
peak-linux-driver-8.15.2.tar.gz

商家自带的 操作说明.txt 里,安装步骤写得很清楚,可对照执行:

5.2 把驱动传到 EC3320
用 MobaXterm / SCP / SFTP 等方式,把 peak-linux-driver-8.15.2.tar.gz 传到 EC3320,例如放到:
text
/home/edge/
然后 SSH 登录(本例主机名 edge-computer,用户可按实际修改):
bash
ssh edge@<EC3320的IP>
5.3 安装编译依赖
商家说明要求先装好这些库(Ubuntu/Debian 系):
bash
sudo apt-get update
sudo apt-get install -y libpopt-dev make make-guile gcc g++
若系统较精简,还需确保已有对应内核头文件(linux-headers-$(uname -r)),否则 make 可能失败。
5.4 解压、编译、安装
bash
cd /home/edge
tar xvf peak-linux-driver-8.15.2.tar.gz
cd peak-linux-driver-8.15.2
make clean
make
sudo make install
sudo make install 会把内核模块、udev 规则、用户态工具(如 receivetest、pcaninfo)装到系统路径。安装过程截图参考:

5.5 确认驱动与设备节点
插上 USB-CAN 后执行:
bash
pcaninfo
正常时应类似:
text
PCAN driver version: 8.15.2
PCAN-Basic version: 4.6.2.36
* pcanusb32: "PCAN_USBBUS1" (0x051), PCAN-USB #1, devid=0x00
再看设备节点:
bash
ls /dev/pcan*
本实测输出为:
text
/dev/pcan32 /dev/pcanusb32
后续监听使用 /dev/pcanusb32。

说明:PEAK 字符设备驱动下,不一定会在
ifconfig里出现can0。本实测主要用 chardev 路径/dev/pcanusb32,不必强求 SocketCAN 接口。
六、联调:Windows 发,EC3320 收
6.1 Linux 端启动接收
在 EC3320 上执行(波特率默认与驱动测试工具一致,初始化为 500 kbit/s):
bash
receivetest -f=/dev/pcanusb32
或在驱动目录的 test 工具里:
bash
cd /home/edge/peak-linux-driver-8.15.2
./receivetest -f=/dev/pcanusb32
终端会提示类似:
text
Only standard frames are accepted, init with 500 kbit/sec.
6.2 Windows 端开始发送
回到 PCAN-View:
- 确认已连接,波特率 500 kbit/s
- 勾选要发送的报文的 Cycle Time(或手动点发送)
6.3 看 SSH 终端是否刷包
成功时,receivetest 会持续打印收到的帧,例如上位机循环发送 ID 0x555、数据末字节 55 时:
text
receivetest: m s 0x00000555 8 00 00 00 00 00 00 00 55

连续刷屏说明链路已通:

到这里,Windows 上位机 → USB-CAN → EC3320 Linux 端监测 整条链路就跑通了。
七、小结
复现时按这个检查清单走即可:
- 接线:CANH--CANH、CANL--CANL、GND--GND;PWR 灯亮
- Windows :
PEAK-System_Driver-Setup装好 → 设备管理器有PCAN-USB→ PCAN-View 连上,500 kbit/s - Linux :
peak-linux-driver-8.15.2编译安装 →pcaninfo能看到设备 →/dev/pcanusb32存在 - 收发 :PCAN-View 循环发送;SSH 里
receivetest -f=/dev/pcanusb32能看到对应 ID/数据
八、常见问题
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 设备管理器没有 PCAN-USB | Windows 驱动未装好 / USB 未识别 | 重装 PEAK-System_Driver-Setup,换口重插 |
pcaninfo 无设备 |
Linux 驱动未加载,或未插转换器 | 确认 make install 成功;ls /dev/pcan*;重新插拔 USB |
receivetest 一直无输出 |
波特率不一致、接线反了、上位机未发送 | 双方统一 500k;核对 CANH/CANL;看 PCAN-View Count 是否增加 |
make 失败 |
缺编译器/内核头文件 | 安装 gcc g++ make 与对应 linux-headers |
| 只有偶发几帧 | 终端电阻、接触不良 | 两端拨到 120R;重新压紧接线端子 |
附:本实测关键参数速查
| 项目 | 值 |
|---|---|
| 转换器型号 | USB-TO-CAN UTC-T01 |
| Windows 驱动 | PEAK-System Driver Setup |
| 上位机软件 | PCAN-View |
| Linux 驱动版本 | peak-linux-driver 8.15.2 |
| 设备节点 | /dev/pcanusb32 |
| 波特率 | 500 kbit/s |
| 接收命令 | receivetest -f=/dev/pcanusb32 |
| 示例发送帧 | ID 0x555,数据 00 00 00 00 00 00 00 55 |
希望这篇能帮你少踩坑。如果驱动版本或内核不同,命令流程相同,注意换对应版本号即可。