在 macOS 上直接使用周立功 USBCANFD-100U-mini,无需 Windows、虚拟机或额外驱动。
国内镜像未同步时:pip install zlgcan-macos --index-url https://pypi.org/simple/
逆向工程驱动,567 行代码,零依赖原生实现
插上设备,一条命令开始抓包。自动完成 AES 认证、波特率配置、终端电阻使能。
完整 CAN FD 支持:1Mbps 仲裁域 + 5Mbps 数据域,BRS 加速,最大 64 字节数据帧。
纯 Python + pyusb 实现,无需 x86 模拟、Docker 或虚拟机,专为 Apple Silicon 设计。
命令行工具开箱即用,也可作为 Python 库集成到你的项目中。支持 candump 格式输出。
安装 → 插入设备 → 运行
# 安装 $ brew install libusb $ pip install zlgcan-macos # 实时监听 $ zlgcan monitor 设备: USBCANFD-100U-mini SN: 7C798CEF50B20BB461A0 FW: V2.38 波特率: 1m_5m 通道: 0 FD BRS 0x082 [24] D7 FE FF FF 00 00 00 00 3B 02 00 00 ... FD BRS 0x07F [24] FF FF FF FF FF FF FF FF FF FF FF FF ... FD BRS 0x5FE [24] B4 00 00 00 00 00 00 00 D1 FF FF FF ... FD BRS 0x087 [ 5] 45 C9 00 00 00 # 发送 CANFD 帧 $ zlgcan send 0x7F 0102030405060708 # candump 格式 + ID 过滤 $ zlgcan monitor -f candump --filter 0x7F can0 07F#B [24] FF FF FF FF FF FF FF FF FF FF FF FF ...
逆向工程实现的完整 USB 协议栈
自动发现设备
claim 接口
AES-128-ECB
挑战-响应握手
波特率 + 终端电阻
启动控制器
EP83 持续接收
实时解析输出
也可以作为库直接调用
from zlgcan import USBCANFD # 打开设备 with USBCANFD() as can: can.start("1m_5m") # 接收 for f in can.read_frames(): print(f"0x{f.can_id:03X} [{f.dlc}] {f.data.hex()}") # 发送 can.send_frame(0x7F, b"\x01\x02\x03")