一个基于 Python (PyQt5) 开发的专业级 PC 端串口测试工具,用于模拟电动车控制器向多功能仪表发送“一线通”协议数据。支持多种主流厂商协议,广泛应用于仪表研发、生产测试及故障排查场景。
- 多协议支持:内置十六种主流协议,支持实时动态切换:
- 瑞轮协议 (V1.56)
- FZ-sif 协议 (BL1832 Y62/Y45/Y34/Y29)
- 新日协议 (国标电摩)
- 杭州安显协议 (无锡星伟)
- 常州新思维协议
- 无锡一格 Y67 协议
- 无锡台铃 Y34B 协议
- 无锡台铃 Y34F 协议
- 雅迪标准协议 1.0
- 优仪宝一线通协议
- 精显一线通协议
- 东威 GTXH 协议
- 芯驰 BMS 协议
- 绿源 BMS 一线通协议
- 一线通--锂电池BMS
- 电池单线通讯协议
- 全参数仿真:
- 基础数据:车速、转速、里程、电池电量 (SOC)、电压档位。
- 状态指示:左/右转向、远/近光灯、刹车、巡航、故障指示(霍尔/转把/电机缺相等)。
- 特殊功能:支持能量回收(负电流)、TCS 状态、充电模式、挡位显示(P/1/2/3/4/R)等。
- 灵活配置:
- 串口管理:自动扫描 COM 口,支持波特率和 Tosc (位宽) 自定义配置。
- 场景预设:一键切换“正常运行”、“能量回收”、“故障报警”等典型测试场景。
- 深度定制:支持每一位 Status 的手动勾选与实时发送。
- 实时监控:提供 Hex 格式的数据帧发送日志与时间戳记录,方便时序分析。
- Windows 10/11
- Python 3.8+
- 克隆或下载本项目到本地。
- 安装依赖库:
依赖项包括:PyQt5, pyserial
pip install -r requirements.txt
- 连接硬件:使用 USB 转 TTL 模块连接电脑与待测仪表的一线通信号线(通常为绿色或黄色线,需共地)。
- 启动软件:
python main.py
- 建立通信:
- 在左上角选择对应的 COM 口。
- 点击 连接 按钮。
- 配置参数:
- 选择目标协议(如“瑞轮协议”)。
- 调整
Tosc值(默认 100μs,部分仪表可能需要调整为 200μs 或其他)。
- 发送数据:
- 手动模式:勾选界面上的状态位,数据会实时更新。
- 自动模式:点击“循环发送”,软件将以固定间隔(默认 1s)持续发送数据帧。
- 包组循环:点击“包组配置”可维护多组自定义帧,再用“包组循环”按顺序循环发送。
sifexe/
├── main.py # 程序入口
├── gui/ # 界面逻辑
│ ├── main_window.py # 主窗口实现
│ └── ...
├── protocol/ # 协议核心
│ └── protocol_handler.py # 协议封包与校验算法
├── serial_comm/ # 通信模块
│ └── serial_manager.py # 串口收发控制
├── PDF/ # 协议参考文档
└── requirements.txt # 项目依赖
本项目严格遵循各厂商提供的技术规范文档开发(详见 PDF/ 目录):
- 帧结构通常为:
起始位 + DATA0~DATA11 + 校验位。 - 校验方式多为异或校验 (XOR)。
- 支持协议专用差异化处理,例如:
- 常州新思维协议的
PlusCode加密与自动序号 - FZ-sif 协议的 BL1832 12 字节帧格式、固定
0x08/0x61帧头与专用电压枚举 - 杭州安显协议的
Pulse加密与自动序号 - 无锡一格 Y67 的固定
0x10 / 0x95帧头 - 无锡台铃 Y34B 协议的 13 字节帧、国标/电轻摩区分位与扩展
DATA11状态 - 无锡台铃 Y34F 协议的 15 字节帧、
TCS/HDC指示、团标电池故障位与实时电压字段 - 雅迪协议的电量/电流百分比编码
- 优仪宝一线通协议的固定
0x08 / 0x61帧头、Status1 低 4 位映射与电量/电流百分比字段 - 精显一线通协议的 12 字节帧、固定
0x07设备编码、Data1自动递增、Data2/6不加密、其余指定字段走PlusCod,默认通过 UART 上送给转码硬件 - 绿源 BMS 一线通协议的 15 字节帧、累加和校验、按 bit7 到 bit0 的脉宽发送
- 电池单线通讯协议的 6 字节 SOC 帧、累加和校验、低位先发脉宽发送
- 常州新思维协议的
欢迎提交 Issue 或 Pull Request 来增加新协议支持或改进功能。
MIT License