← 返回软件与工具库

SavvyCAN 下载与使用:开源 CAN 总线分析工具(V220)

最后更新 2026-09-02
⏱ 约 9 分钟 🟡 涉接线/强电
SavvyCAN SavvyCAN CAN 分析 / 开源 CAN 工具 CAN与总线 免费

CAN 分析工具里少见的开源、不绑硬件厂商的选择,三平台都有;代价是你得自己配 CAN 接口,且 V220 之后逾一年没有新版。

授权
MIT 开源
平台
Windows / macOS / Linux
协议
CAN、CAN FD
官网
https://github.com/collin80/SavvyCAN
源码
https://github.com/collin80/SavvyCAN
适合
  • · 逆向未知的 CAN 协议,需要长时间抓取并反复回放比对
  • · 不想被单一硬件厂商的软件绑住,或已有非该厂的 CAN 接口
不适合
  • · 手上只有软件的人——它不含硬件,必须另配 CAN 接口才能连总线
  • · 需要厂商支持承诺、或需要持续跟进新硬件适配的生产环境
文件名
SavvyCAN-Windows_x64_CIBuild.zip
版本
V220
SHA256
待补(尚未实际核对,不填占位值)
核对于
2026-09-02

本站不托管安装包,上方为官方渠道直链。下载后请自行核对 SHA256,与上表不一致说明文件被改动过。

SavvyCAN 是一个开源的 CAN 总线分析工具,用 Qt 写的桌面应用,许可证是 MIT。官方仓库在 github.com/collin80/SavvyCAN。

它在这个品类里的位置比较特别,值得先说清楚。

先说最容易白折腾的一件事:它不含硬件

搜到就下载的人,装完会发现连不上任何东西。

SavvyCAN 只是软件。 CAN 是一条物理总线,电脑上没有 CAN 口,你必须另外配一个 CAN 接口设备(USB 转 CAN 之类)才能真的接上去。具体支持哪些型号的接口,请以官方仓库的文档为准——本页不列型号,因为没有实核过的清单,列出来只会误导你去买错东西。

这一点不是 SavvyCAN 的缺陷,所有 CAN 分析软件都一样。区别在于下一节。

它和厂商自带软件的根本差别

CAN 分析这个品类里,主流选择是硬件厂商自己出的软件:

  • Kvaser CanKing 7——免费,但要求配 Kvaser 自家的 CAN 接口。Windows x64 与 Linux(x64/ARM)。
  • PCAN-View——免费,但要求配 PEAK-System 自家的 CAN 接口。仅 Windows。

这两家的商业模式是一样的:软件白送,钱在硬件那头收。这没什么不好,厂商软件通常和自家硬件配合得最顺、支持也最到位。

但它带来一个后果:你的软件选择被硬件绑死了。换一家接口就得换一套软件,重新适应界面、重新配置。手上同时有几家的接口时,这件事尤其烦。

SavvyCAN 的价值就在这里——它是开源的,不属于任何一家硬件厂商。三个平台都有官方发布:Windows x64、macOS(Intel 与 Apple Silicon 各有一份 dmg)、Linux 的 AppImage。macOS 用户尤其值得注意,因为上面那两个厂商版本都没有 macOS。

停更这件事怎么看

必须如实说:最新版是 V220,发布于 2025-05-09,之后逾一年没有新版本。

分两面看,别一句「停更了就别用」了事:

协议层面不受影响。 CAN 的帧格式、仲裁机制、位定时这些是几十年不变的标准。一个一年前的分析工具,今天解析一条 CAN 报文不会有任何问题。

要留心的是适配层。 新出的 CAN 接口硬件可能没有对应驱动支持;新版操作系统的兼容性也可能跟不上(尤其 macOS 每年一次的大版本更新对签名和权限的要求在变)。

所以判断方法是:如果你已经有一个能被它认到的接口、系统也不打算大升,那它现在就能用;如果你正要买新硬件,先确认兼容性再决定。

它是 MIT 开源的,这一点在停更语境下有实际意义——真的遇到问题,代码在那儿,可以自己改或者找人改。闭源的厂商软件没有这个退路。

用它做什么:逆向未知的 CAN 协议

CAN 有一个特性让「监视」这件事天然成立:总线上的报文是广播的,任何一个挂在总线上的节点都能收到全部报文,不需要谁授权。这和串口点对点、或者以太网交换机隔离的情况都不一样。

所以只要你能物理接上去,就能看到这条总线上所有的通信。

逆向未知协议的常规思路很朴素:

  1. 先全量录一段。 什么都不动,让它跑着,记录一段基线。
  2. 改变一个物理量。 只动一个——踩一下踏板、转一下旋钮、让温度变化一点。
  3. 比对前后两段记录,找哪个字节跟着变。 变的那个 ID + 那个字节位置,就是你要找的信号。
  4. 重复验证。 换个幅度再来一次,确认对应关系是稳定的,不是巧合。

关键是一次只改一个变量。同时动两个,你会看到一堆字节在变,分不清谁对应谁——这是逆向时最常犯的错。

抓到的对应关系可以整理成 DBC 文件,之后再抓包时工具就能直接把原始字节翻译成带名字的信号,不用每次对着十六进制数。

接总线之前:两条电气常识

终端电阻。 CAN 是差分总线,两端各要一个 120Ω 终端电阻。断电后用万用表量总线两根线之间的电阻,正常应该在 60Ω 左右(两个 120Ω 并联)。量到 120Ω 说明只有一端有;量到很大说明一个都没有。这两种情况都会导致通信不稳定或者干脆起不来。

波特率必须全总线一致。 有一个节点速率配错,它发出去的帧在别人看来就是错误帧,会持续污染整条总线——表现不是「那一个节点不通」,而是「整条线都不正常」。所以调不通时别只盯着自己那个节点。

差分总线的这套电气思路和 RS-485 是相通的,站内那篇讲得更细,可以对照着看。

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

延伸阅读

同品类的厂商版本见 Kvaser CanKing 与 PCAN-View——都免费,但各自绑自家硬件。 差分总线的收发方向与终端电阻,原理在 RS-485 差分总线那篇讲得更细, 和 CAN 是同一套电气思路。串口侧的调试见 UartAssist, 报文校验值用 CRC / Modbus 校验计算器。 其余同类见软件与工具库。

同类可替代
内容有错、看不懂、或想看下一期?告诉我们 →

本文为公开资料的学习整理,非亲测。涉接线/花钱/合规的步骤请结合实物与官方最新资料验证,风险自负。见免责声明。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。