diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 5ef2430..5956c29 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -65,25 +65,39 @@ ### P1.2 脱机日志子系统 🆕(W25Qxx SPI NOR) -**硬件底子**:DBN 外挂 **W25Q32(SPI1,32Mbit = 4MB,已确认)**。参数区只占头部 <1KB,其余全部可规划。 +**硬件底子**:DBN 外挂 SPI NOR(SPI1)。默认 **W25Q32(32Mbit = 4MB,已确认)**;**兼容 W25Q80 / W25Q64 / W25Q128 / W25Q256**,上电先读 JEDEC ID 识别存储类型,再按类型映射各分区容量。 -**分区规划(W25Q32 / 4MB)**: +**分区规划(顺序:参数区 → OTA 镜像暂存区 → 事件日志区 → 传感快照区)**: -| 分区 | 容量 | 用途 | -|------|------|------| -| 参数区 | 64KB(0x000000 起,现用 <1KB) | 现有配置,留余量 | -| 事件日志区 | 256KB(~8000 条 @32B) | 环形,关键事件流,不被快照冲掉 | -| OTA 镜像暂存区 | 512KB | Loop 固件(64KB×2 版本回滚)+ 预留 DBN 镜像 | -| 传感快照区 | ~3.2MB(其余全部) | 环形,0xC0 帧原样落盘 | +| 分区 | 容量策略 | 用途 | +|------|---------|------| +| 参数区 | **固定 64KB**(0x000000 起,现用 <1KB) | 现有配置,留余量 | +| OTA 镜像暂存区 | **固定 512KB** | Loop 固件(64KB×2 版本回滚)+ 预留 DBN 镜像 | +| 事件日志区 | **随存储类型**(见下表) | 环形,关键事件流,不被快照冲掉 | +| 传感快照区 | **随存储类型**(= 总容量 − 参数区 − OTA − 事件日志区) | 环形,0xC0 帧原样落盘 | + +**存储类型 ↔ 容量映射表**(上电读 JEDEC ID 后选档): + +| JEDEC ID | 芯片 | 总容量 | 参数区 | OTA 暂存 | 事件日志区 | 传感快照区 | +|----------|------|--------|--------|----------|-----------|-----------| +| EF 40 14 | W25Q80 | 1MB | 64KB | 512KB | **128KB**(~4000 条) | **320KB** | +| EF 40 16 | W25Q32(默认) | 4MB | 64KB | 512KB | **256KB**(~8000 条) | **~3.19MB** | +| EF 40 17 | W25Q64 | 8MB | 64KB | 512KB | **512KB**(~16000 条) | **~6.94MB** | +| EF 40 18 | W25Q128 | 16MB | 64KB | 512KB | **1MB**(~32000 条) | **~14.44MB** | +| EF 40 19 | W25Q256 | 32MB | 64KB | 512KB | **2MB**(~64000 条) | **~29.44MB** | + +- 事件日志区容量随芯片**等比翻倍**(128KB→2MB),保证日志保留时长不随硬件降配而缩水 +- 传感快照区吃剩余容量;W25Q80(1MB)为最小可部署配置,快照仅 320KB(约 5200 条 @64B),适合纯日志场景 +- 分区边界在**上电初始化时**由 JEDEC ID 计算得出,offlog/快照代码按运行时分区表寻址,不写死 **两条日志流分开存**: 1. **事件流(必录,低速率)**:car_enter/car_leave(含时间量)、线圈断线/恢复、继电器动作、上电/复位(含复位原因)、MQTT/TCP 连接与断开、event_report ACK 超时/重发/放弃、配置变更(含来源:BLE/MQTT/TCP)、灵敏度换档、**时钟同步锚点**、固件升级开始/结果、日志清除操作(审计自记录) 2. **快照流(环形可覆盖)**:0xC0 帧二进制原样 + 头部(序号/boot_seq/mstick),~64B/条,**记录节奏与网络上报同频**(空闲按 interval、活动 300ms、car 沿立即)——直接挂在 `iot_sensor_ingest()` 同源出口,天然与上报一致 -**容量预算**(W25Q32,快照区 3.2MB ≈ 5.2 万条 @64B): +**容量预算**(**以 W25Q32 为基准**:事件日志 256KB / 快照区 ~3.19MB ≈ 5.2 万条 @64B;其他芯片按映射表等比缩放——W25Q64 快照保留时长 ×2.2,W25Q80 快照仅 ~5200 条,**事件日志保留时长不缩水**): -| 场景 | 落盘节奏 | 保留时长 | +| 场景 | 落盘节奏 | 保留时长(W25Q32) | |------|---------|---------| | 最坏情况:快档 300ms 连续压满 | 3.3 条/s | ~4.4 小时 | | 繁忙出入口(日均 2000 车次,每车次 ~15 条突发 + 空闲 30s 底噪) | ~3.3 万条/天 | ~1.5 天 |