feat: add AS status feedback for both HMI sizes with verified v2.7 release
This commit is contained in:
+22
-5
@@ -2,13 +2,13 @@
|
||||
|
||||
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 说明](AMI_CAN_DBC说明.md)。
|
||||
|
||||
版本 2.4,2026-10-03。CAN1 为 500 kbit/s,CAN2 为 250 kbit/s;两路均为 Classic CAN、87.5% 采样点,接收 ID、解码和任务发送功能相同,不转发原始帧。CAN1 使用 [AMI.dbc](../AMI.dbc),CAN2 使用 [AMI_CAN2_250k.dbc](../AMI_CAN2_250k.dbc)。当前固件不再接收旧 `0x180 / 0x181 / 0x280` 数据接口。
|
||||
版本 2.6,2026-10-05。CAN1 为 500 kbit/s,CAN2 为 250 kbit/s;两路均为 Classic CAN、87.5% 采样点,接收 ID、解码和任务发送功能相同,不转发原始帧。CAN1 使用 [AMI.dbc](../AMI.dbc),CAN2 使用 [AMI_CAN2_250k.dbc](../AMI_CAN2_250k.dbc)。当前固件不再接收旧 `0x180 / 0x181 / 0x280` 数据接口。
|
||||
|
||||
VCU 实际当前任务、锁定和 EBS 汇总显示由新增标准 `0x183 / DLC 8` 输入,独立超时 500 ms。任务按钮仅发送 0x300 请求,不更新实际任务;完整布局和颜色见 [VCU 反馈协议](AMI_CAN_DBC说明.md#vcu-状态反馈-0x183),验证边界见 [反馈报告](VCU状态反馈测试报告.md)。本页 SDC / BMS 采样与该 VCU 反馈独立。
|
||||
|
||||
v2.1 已通过源码 / CubeMX 位时序一致性检查及 Release 编译,已烧录并完整回读比对;CAN1 500K(SDC)与 CAN2 250K(BMS)分别通过数据更新、失效恢复和六个任务确认/取消测试,见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。本文后面旧的实物联调引用属于两路均为 500K 的 v2.0。
|
||||
|
||||
来源:`SDC_ACQ_DAC/SDC_ACQ_DAC.dbc` VERSION 1.1;[BmsMonitor-CANTest](https://git.acetaffy.ltd/acetaffy/BmsMonitor-CANTest) 的 `BmsMonitor.App/Protocol/BmsProtocolParser.cs`,核对提交 `e65c95203d1689df05343775982d7e85bd782646`,本机核对副本保存在 `tmp/BmsMonitor-CANTest`(不提交);远端来源使用上述仓库及提交号定位。
|
||||
来源:`SDC_ACQ_DAC/SDC_ACQ_DAC.dbc` VERSION 1.1,核对远端 master 提交 `7bc2d9f1eaaf19814957037bd097cd879cbf4cbf`(2026-10-05);[BmsMonitor-CANTest](https://git.acetaffy.ltd/acetaffy/BmsMonitor-CANTest) 的 `BmsMonitor.App/Protocol/BmsProtocolParser.cs`,核对提交 `e65c95203d1689df05343775982d7e85bd782646`,本机核对副本保存在 `tmp/BmsMonitor-CANTest`(不提交);远端来源使用上述仓库及提交号定位。
|
||||
|
||||
## SDC 输入
|
||||
|
||||
@@ -16,13 +16,13 @@ v2.1 已通过源码 / CubeMX 位时序一致性检查及 Release 编译,已
|
||||
| --- | --- | --- |
|
||||
| `0x6A0 / 8` | `A1 01` + 小端 uint16 序号 + 小端 uint32 上电 ms | 校验标识和版本,刷新 SDC 心跳 |
|
||||
| `0x6A1 / 2` | 小端 uint16 mV | **低压电池电压**,`dash.lvbat.val=(mV+5)/10`,虚拟浮点显示两位小数 |
|
||||
| `0x6A2 / 8` | 四个小端 uint16 Hz,PA0 / PA2 / PA6 / PB14 | 保存原始频率;没有周长和每圈脉冲数,不直接当 km/h |
|
||||
| `0x6A2 / 4` | 两个小端 uint16 mm/s,左前 PA0 / 右前 PA6 | 双前轮平均值换算整数 km/h,更新 `dash.speed.val`;独立超时 500 ms |
|
||||
| `0x6A4 / 4` | 结果、DAC 选择、小端 uint16 mV | 接收应答,不作为仪表电压 |
|
||||
| `0x6A6 / 8` | 小端 uint16 PD0..PD14 电平 + uint16 变化掩码 + uint32 ms | 保存原始电平、变化和时间,并按下表更新 DEBUG |
|
||||
|
||||
`0x6A3` DAC 设置和 `0x6A5` ASSI 设置是发给 SDC 的控制,不属于本次显示输入。ADC 已由 SDC 校准为分压前物理输入电压,AMI 不再乘分压倍数。`08 20` = 8200 mV = 8.20 V;`0C 30` = 12300 mV = 12.30 V。DLC 必须为 2。
|
||||
|
||||
GPIO 帧仅在启动和电平变化时发送,持续心跳维持已有采样。用户已确认按接线表从上到下对应 PD0~PD14,且全部低电平正常、高电平故障。映射如下(这是输入位序,屏幕变量编号保持原定义):
|
||||
GPIO 帧每 1000 ms 发送,变化掩码累积上个周期内的变化;持续心跳维持已有采样。用户已确认按接线表从上到下对应 PD0~PD14,且全部低电平正常、高电平故障。映射如下(这是输入位序,屏幕变量编号保持原定义):
|
||||
|
||||
| 输入 | 信号 | 屏幕变量 |
|
||||
| --- | --- | --- |
|
||||
@@ -57,7 +57,15 @@ MCU 内保存 0.1 V / 0.1 A 原始精度,仅显示层四舍五入。例 `0F A0
|
||||
|
||||
最高温度只取前八个实际通道,不能把 BmsMonitor 补出的第 9/10 路纳入最大值。`42 FF 43 47 37 0A 50 41` 的最大温度为 40 ℃。全为 `FF` 时立即失效。
|
||||
|
||||
BmsMonitor 没有电机或逆变器温度协议;`dash.djwd` / `dash.mcuwd` 保持无效。扭矩和车速也缺少可直接使用的单位映射,保持无效。
|
||||
BmsMonitor 没有电机或逆变器温度协议;扭矩、电机及 MCU 温度由自定义 `0x182` 输入。车速由最新 SDC `0x6A2 / DLC 4` 输入,详见下节。
|
||||
|
||||
## 车速显示
|
||||
|
||||
SDC 已按每圈 49 脉冲、轮周长 1414 mm 将输入换算为 mm/s;AMI 不再做轮径标定。仪表采用双前轮平均轮速:`dash.speed.val=((左前_mm_s+右前_mm_s)*9+2500)/5000`,对应平均 m/s × 3.6,四舍五入到整数 km/h。
|
||||
|
||||
例如标准 `0x6A2`、DLC 4、数据 `10 27 F8 2A` 表示左前 10.000 m/s、右前 11.000 m/s;平均 37.8 km/h,显示白色 38。超过 500 ms 无合规轮速帧,保留数字变灰;新帧恢复。旧四路 Hz 的 DLC 8 帧拒绝且不续期。
|
||||
|
||||
SDC 未提供每轮有效标志或无效哨兵:0 是有效停止值,65535 是有效饱和值。SDC 超过 1 秒没有边沿会把对应轮速归零,AMI 无法区分停车和传感器断线;该显示是平均轮速,不是 VCU 融合车速。
|
||||
|
||||
## 有效性与刷新
|
||||
|
||||
@@ -67,6 +75,7 @@ BmsMonitor 没有电机或逆变器温度协议;`dash.djwd` / `dash.mcuwd` 保
|
||||
|
||||
- SDC ADC 独立超时 1500 ms。
|
||||
- BMS 电压/电流独立超时 2000 ms。
|
||||
- 车速独立超时 500 ms;SDC 心跳/GPIO、BMS、VCU 流量不能续期。
|
||||
- BMS 最高温度独立超时 2000 ms;全通道无效时立即失效。
|
||||
- 其他源的流量不会延长上述计时;有效报文恢复后自动转白。
|
||||
- 只对数值或有效性变化排队,字段轮转和 UART DMA 发送最新值,避免高频字段阻塞其他字段。
|
||||
@@ -94,3 +103,11 @@ PA0 LED 每 500 ms 翻转,PA1 为仪表/SDC 状态活动超时提示,默认
|
||||
同时发送 SDC 20 ms 频率、100 ms 心跳、500 ms ADC 和 BMS 报文,验证标准/扩展 BMS、负电流、无效温度、独立超时、恢复、错误 DLC 和旧 ID 拒绝。原始帧、截图和 SWD 快照见 [发布的发送记录](evidence/2026-10-03/sdc-bms/sdc_bms_visual_results.json)。
|
||||
|
||||
上述 v2.0 测试未接线实测 CAN2。后续 v2.1 已按 CAN1 500K / CAN2 250K 分别测试,见 [双 CAN 报告](CAN1_CAN2_v2.1测试报告.md);当前 v2.2 见 [显示 CAN 报告](AMI自定义显示CAN测试报告.md)。未测试物理串口屏,未接真实 SDC/BMS 节点,未验证 VCU 实际执行或安全动作。现有画面的 EBS 文案不能作为安全状态证明。
|
||||
|
||||
## 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` 为准,历史烧录和联调记录不代表本次版本已下载到实物。
|
||||
|
||||
Reference in New Issue
Block a user