74 lines
5.2 KiB
Markdown
74 lines
5.2 KiB
Markdown
# AMI
|
||
|
||
YMR A11 仪表,使用淘晶驰 TJC4827X543_011 串口屏,分辨率 480 × 272。
|
||
|
||
当前 MCU CAN 输入为 **v2.1(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-03)**,两路保留相同的 SDC / BMS 解码和任务收发功能;屏幕沿用 debug 数字状态接口。工程使用 USART HMI 1.68.1.3037 编辑、编译。
|
||
|
||
dash 顶部已加入低压电池电压 `lvbat`(两位小数),来源是 SDC `0x6A1` ADC mV。高压电压、电流来自 BMS `0x140` / 扩展 `0x186040F3`,现有控件显示整数单位;最高单体温度取 `0x156` 的有效实际温度最大值,或扩展 `0x186140F3`。旧 `0x180 / 0x181 / 0x280` 输入不再使用。
|
||
|
||
## 工程与交接资料
|
||
|
||
- [CAN1 DBC](AMI.dbc):500 kbit/s,10 条报文、33 个信号,含标准/扩展帧。
|
||
- [CAN2 DBC](AMI_CAN2_250k.dbc):250 kbit/s,报文布局与 CAN1 相同。
|
||
- [DBC 对应说明](docs/AMI_CAN_DBC说明.md):信号布局、枚举、字节序、样例与复现检查。
|
||
- [CAN 报文说明 PDF](output/pdf/AMI_CAN报文说明.pdf):当前 v2.1 协议的中文打印版,包含两路速率和全部 10 条报文。
|
||
- [联调报告](docs/SDC_BMS联调报告.md):真实 CAN1 / MCU / COM4 到 HMI 调试器的证据。
|
||
- [当前固件 BIN](output/firmware/AMI_Controller.bin):STM32G0B1CBT6,CAN1 500K / CAN2 250K,已编译、尚未烧录;配套源码在 firmware。
|
||
- [此前已联调的 v2.0 BIN](output/firmware/AMI_Controller_v2.0_500k.bin):两路均为 500K,保留历史测试版本。
|
||
- [AMI.HMI](AMI.HMI):最新版屏幕工程,打开后编译并下载到对应型号屏幕。
|
||
- [通讯交接文档](docs/通讯交接文档.md):可编辑协议说明,包含全部状态编号、任务帧、主页面属性及联调步骤。
|
||
- [历史屏幕接口 PDF](docs/AMI仪表通讯交接文档.pdf):保留的 v1.2 屏幕接口资料;当前 CAN 与有效性定义以 DBC 对应说明和 Markdown 交接文档为准。
|
||
- [C 发送示例](examples/ami_debug_send.c):主控更新 debug 状态的参考函数。
|
||
- [验证说明](docs/验证说明.txt):已完成检查和实物验证范围。
|
||
- [STM32 HAL 固件](firmware/README.md):STM32G0B1CBT6、双 FDCAN、USART2 DMA 和状态灯实现。
|
||
- [SDC / BMS 协议](docs/SDC_BMS协议.md):当前 CAN ID、字节序、缩放、失效和任务回传定义。
|
||
- [旧 CAN / UART 协议](docs/CAN_UART协议.md):历史自定义 CAN 输入,当前固件不再使用。
|
||
|
||
## 最小通讯示例
|
||
|
||
主控向屏幕发送 ASCII 指令,每条末尾追加三个实际字节 `FF FF FF`,当前波特率为 `9600`:
|
||
|
||
```text
|
||
d0=1
|
||
d1=2
|
||
page debug
|
||
```
|
||
|
||
这三条分别将配电箱状态设为正常、左急停及行程/惯性状态设为故障、进入 debug 页面。`d0=1` 的完整字节为 `64 30 3D 31 FF FF FF`。
|
||
|
||
Debug 共 16 个全局变量 `d0~d15`,状态统一为 `0=未知、1=正常、2=故障`。页面每 250 ms 自动更新文字和颜色,`d1` 同时更新两个对应位置。不要继续直接写入旧接口的 `debug.tN.txt/pco`,它们会被刷新脚本覆盖。
|
||
|
||
Dash 车速上方新增低压电池电压,显示两位小数,单位 V:
|
||
|
||
```text
|
||
dash.lvbat.val=1260
|
||
```
|
||
|
||
每条末尾同样追加 `FF FF FF`。数值单位为 **0.01 V**,示例显示 **12.60 V**;若主控采集值为 mV,先除以 10 换算。该控件为全局,可跨页面更新;上电显示初值 0.00 V,没有自动低压告警。
|
||
|
||
主页面右上角隐藏热区进入 debug;debug 的返回按钮切回主页面。六个任务按钮进入确认页,确认后屏幕向主控发送 `AA 55 01 NN 0D 0A`,`NN=01~06`;取消不发送任务帧。任务帧结束符与主控发给屏幕的文本指令结束符不同。
|
||
|
||
## 验证与接手事项
|
||
|
||
工程编译通过:0 错误、0 警告。模拟器已验证状态转换、跨页更新和 `d1` 双位置同步;任务回传此前已做模拟检查。
|
||
|
||
2026-10-03 已验证 CAN 盒 → 实物 AMI CAN1 / MCU → USART2 / COM4 → 官方 HMI 调试器的数据更新、失效与恢复。固件编译及烧录校验通过;物理串口屏和 CAN2 尚未接线实测。旧 C 示例仍是屏幕 debug 接口示例。
|
||
|
||
上述实物证据对应 v2.0。v2.1 将 CAN2 改为 250 kbit/s,源码、CubeMX、两份 DBC 与位时序校验及 Release 编译已通过;新 BIN 尚未烧录,CAN2 250K 尚未实测。两路均不转发原始 CAN 帧,CAN 盒需分别设置正确速率。
|
||
|
||
灰色数值表示未知或失效。现有资料缺少电机/逆变器温度协议、Hz 到 km/h 标定参数、SDC PD0..PD14 到具名安全信号的映射,对应显示保持无效/未知。VCU 任务裁决、执行反馈和 EBS 安全输出仍需车辆控制协议,画面 EBS 文案不能作为安全状态证明。
|
||
|
||
许可证沿用仓库中的 [AGPL-3.0](LICENSE)。
|
||
|
||
## 导出 CAN 报文 PDF
|
||
|
||
PDF 与 `docs/AMI_CAN_DBC说明.md` 使用同一份内容,按 A4 横向排版并嵌入中文字体。在仓库根目录运行:
|
||
|
||
```powershell
|
||
python -m pip install -r scripts/requirements-pdf.txt
|
||
python scripts/export_dbc_docs.py
|
||
python scripts/export_can_pdf.py
|
||
```
|
||
|
||
默认使用 Windows 黑体 `C:/Windows/Fonts/simhei.ttf`;其他环境可通过 `--font` 指定支持中文的 TrueType 字体。输出为 `output/pdf/AMI_CAN报文说明.pdf`。修改 DBC 后,需重新导出 Markdown 和 PDF。
|