AMI

2026-10-04:新增 AMI 0x301 标准心跳帧(DLC 8),仅 CAN1(500 kbit/s)100 ms 一次,CAN2 不发送心跳,包含版本、uint16 序号和 uint32 运行毫秒值,小端。源码和 DBC 已更新,已烧录并全量回读一致;CAN1 实测 121 帧,间隔 99.952~100.180 ms。完整定义见 DBC 说明。

YMR A11 仪表。当前提供淘晶驰 TJC8048X370_011(800 × 480)与 TJC4827X543_011(480 × 272)两个版本,均支持独立无人状态。小屏工程为 AMI.HMI。

当前屏幕接口 1.5,MCU CAN 输入 v2.7(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-07)。标准 0x183 由 VCU 反馈实际当前任务、锁定、无人状态和 EBS 状态;两路保留相同解码和任务收发功能。工程使用 USART HMI 1.68.1.3037 编辑、编译。

任务按钮确认仅发送 0x300 请求,实际状态等待 VCU 0x183 更新。例:标准 ID 183、DLC 8、周期 100 ms、数据 02 01 01 0F 00 01 00 02 显示直线加速、已锁定、AS Ready、EBS 正常。无人状态独立显示在锁定状态右侧;有效标志为 0 或超过 500 ms 无反馈显示灰色未知。VCU 需实现此自定义版本 2 布局,详见 反馈协议 和 本次验证报告。

dash 顶部已加入低压电池电压 lvbat(两位小数),来源是 SDC 0x6A1 ADC mV。高压电压、电流来自 BMS 0x140 / 扩展 0x186040F3,现有控件显示整数单位;最高单体温度取 0x156 的有效实际温度最大值,或扩展 0x186140F3。旧 0x180 / 0x181 / 0x280 输入不再使用。

CAN 工具设置标准 ID 0x182、DLC 8、周期 100 ms,发送 F4 01 C2 01 90 01 07 01 即设置 500‰ / 45℃ / 40℃。三个数值为小端 int16;温度缩放 0.1℃;字节 6 的 bit0/1/2 为有效标志,字节 7 固定 1。停发超过 2 秒后三个数值变灰。该帧只设置显示;实际电机控制器协议由上游转换。详见 字节布局和发送示例。

v2.3 按用户接线表将 0x6A6 的 PD0~PD14 映射到 DEBUG:d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14。低电平正常、高电平故障;d15 没有来源,保持未知。心跳维持已有采样,心跳与 GPIO 均停止超过 500 ms 后未知,恢复后需新的 GPIO 采样。详见 映射及测试报告。

屏幕接口 1.3 的修正已保留:PD1 / Safe_S 的 d5 显示为“左电机互锁”,替换原左后悬项;删除 BSPD/TSMS 与“返回支路”框。布局绘制源码见 debug 后初始化脚本,主页面反馈渲染见 状态脚本。

2026-10-05:按 SDC master 7bc2d9f1eaaf19814957037bd097cd879cbf4cbf 接入标准 0x6A2 / DLC 4 双前轮轮速(uint16 小端 mm/s,20 ms)。车速为双前轮平均值换算整数 km/h;10 27 F8 2A 显示 38 km/h,停止 00 00 00 00 显示白色 0。超过 500 ms 无有效轮速帧保留数字变灰,新帧恢复,其他流量不续期。旧 DLC 8 四路 Hz 已拒绝。SDC 已使用每圈 49 脉冲、轮周长 1414 mm;AMI 不再次标定。无每轮有效标志,不能把零读数当作传感器健康证据。详情见 轮速接入验证报告。

工程与交接资料

最小通讯示例

主控向屏幕发送 ASCII 指令,每条末尾追加三个实际字节 FF FF FF,当前波特率为 9600:

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:

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 双位置同步;任务回传此前已做模拟检查。

此前 v2.0 已验证 CAN 盒 → 实物 AMI CAN1 / MCU → USART2 / COM4 → 官方 HMI 调试器的数据更新、失效与恢复,固件编译及烧录校验通过;当时物理串口屏和 CAN2 尚未接线实测。旧 C 示例仍是屏幕 debug 接口示例。

上述历史证据对应 v2.0。v2.1 的源码、CubeMX、两份 DBC 与位时序校验及 Release 编译通过;已烧录,15612 字节 Flash 回读与发布 BIN 完全一致。随后按 CAN1 500K(SDC)和 CAN2 250K(BMS)分别完成 MCU / COM4 / 官方 HMI 调试器联调;两路各六个任务确认和六个取消通过。使用 CAN 盒模拟数据源,未同时接两路或连接真实 SDC/BMS 节点、物理串口屏。两路不转发原始 CAN 帧,CAN 盒需分别设置正确速率。

灰色数值表示未知或失效。原生电机控制器温度协议尚未定义;车速已按最新 SDC 双前轮标定轮速接入,采用平均值显示 km/h;电机与 MCU 温度可由自定义 0x182 显示输入设置。实际当前任务、锁定和 EBS 显示取 VCU 自定义 0x183 反馈;任务裁决与 EBS 安全输出由 VCU 实现。

许可证沿用仓库中的 AGPL-3.0。

导出 CAN 报文 PDF

PDF 与 docs/AMI_CAN_DBC说明.md 使用同一份内容,按 A4 横向排版并嵌入中文字体。在仓库根目录运行:

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。

2026-10-07 无人状态显示 v2.7

按 ASF 补充独立无人状态,800×480 主页面在“已锁定/已解锁”右侧显示 AS OFF、AS Ready、AS Driving、AS Finished、AS Emergency 或 Manual Driving;无效或超过 500 ms 无反馈显示灰色“无人未知”。状态来自 VCU,不从任务、锁定、EBS 或灯色推断。

0x183 / DLC 8 版本 2:byte3 bit3 为 AS 有效标志,byte5 为状态 0..5(按上面顺序),byte6=0,byte7=2;其他字段位置不变。例 02 01 01 0F 00 01 00 02 表示直线加速、已锁定、AS Ready、EBS 正常。保留位和枚举错误整帧拒绝、不续期。旧版本 1 仍接收原三项,但 AS 立即未知。屏内新增 as_state=0..5(6 未知),串口命令仍使用真实 FF FF FF 结尾;全局变量在切页后保留,每 5 秒重同步。需配套包含 as_state 的新屏幕工程;480×272 AMI.HMI 与 800×480 工程均已加入 as_state;小屏 AS=5 显示“有人驾驶”。完整定义见 CAN DBC 说明的“VCU 状态反馈 0x183”。

本次源码、屏幕工程和构建产物的验证以 docs/无人状态显示验证报告.md 为准,历史烧录和联调记录不代表本次版本已下载到实物。

2026-10-07:v2.7 已烧录并完整回读程序区 16,672 字节一致,保留 128 KB 烧录前备份;CAN1 500K→MCU RAM→COM6 实际链路 37 项通过,实际串口驱动官方 HMI 调试器新增状态 16 项通过,含触摸请求→UART→MCU→CAN 0x300。实物串口屏、CAN2、真实 VCU 和车辆动作未测试。详见 无人状态验收报告。

S
Description
YMR A11仪表+AMI功能
Readme AGPL-3.0
43 MiB
Languages
C 97.5%
Assembly 2%
Python 0.4%