一个基于 Python (PyQt5) 开发的专业级 PC 端串口测试工具,用于模拟电动车控制器向多功能仪表发送“一线通”协议数据。支持多种主流厂商协议,广泛应用于仪表研发、生产测试及故障排查场景。
- 多协议支持:内置四大主流协议,支持实时动态切换:
- 瑞轮协议 (V1.56)
- 新日协议 (国标电摩)
- 杭州安显协议 (无锡星伟)
- 常州新思维协议
- 全参数仿真:
- 基础数据:车速、转速、里程、电池电量 (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)。
欢迎提交 Issue 或 Pull Request 来增加新协议支持或改进功能。
MIT License