Files
vd_960/CHANGELOG.md
T
wangfq 08893d5134 docs(protocol): 脱机事件日志命令规范 — MQTT V1.06 + TCP JSON V1.02
新增 3 命令 (两协议同步):
- log_stat: 日志统计/分页定位 (stream/boot_seq/count/capacity/seq_first/seq_last)
- log_query: 按全局序号分页拉取, count≤4 (受 500B 发布限制)
- log_clear: 清除+审计留痕 (log_clear 事件不可清除)

日志时间戳语义 (§2.3 补充): 每条记录 ts_ms(相对) + unix_ts(已同步,
0=未同步), 锚点回算规则; 10 类事件类型表 (boot/iot_*/evt_*/coil/
time_anchor/log_clear) 带 data 字段解析。

同步: README/CHANGELOG/产品手册/技术规格书 协议矩阵
(MQTT V1.05→V1.06, TCP JSON V1.01→V1.02)

注: 固件命令分发 (log_stat/log_query/log_clear 处理) 待 P1.3 实现,
本文档为协议先行
2026-08-04 18:34:31 +08:00

4.0 KiB
Raw Blame History

CHANGELOG — vd_960 (DLD960)

本文件记录 DLD960 整机(双 MCU 配套)的版本发布历史。 单侧固件的细粒度演进见 vd960Loop/docs/devlog.mdvd960DBN/docs/devlog.md


V1.0.0 — 2026-07-16(首个正式发布)

配套版本矩阵

组件 版本
vd960Loop 固件 (AT32F421) 1.0
vd960DBN 固件 (CH32V208, DLD960GA) 1.0
DLD960Loop 串口协议(MCU 间 0x7F V1.05
DLD960 串口通信协议(TTL V1.01
DLD960 TCP JSON 协议(:5960 V1.02
DLD960 IoT MQTT 协议 V1.06

⚠ 自协议 V1.05 起,Loop 固件与 DBN 固件必须同版本配套刷写,禁止混跑(variation 字段宽度变更导致帧格式不兼容)。

vd960Loop(检测 MCUAT32F421

检测算法(自 DLD154V4B 移植并四通道化,针对 M4 优化)

  • 主循环 tick 50ms → 10ms,单路 IIRALFA_CAP1=79,τ≈32ms,较 8051 时代快 5 倍)
  • 斜率限幅 MAX_SLOPE_RATE=5%(含低基值 floor=100 防锁死)
  • 进入确认 ENTRY_CONFIRM=3(连续 3 次低于阈值才判有车,抗尖峰误触发)
  • 基线冻结超时 10s + ±2% 稳定性检查:温漂/换线圈可自适应,慢速进车不误吸收
  • 稳定期(上电 128 样本)旁路 IIR/限幅,窗口 100 快速收敛;常态基线窗口 500(5s 更新,噪声抑制 22×)
  • 每通道可配置 hold_time(有限存在)与 relay_delay(继电器延时);有限存在超时执行全通道重启重建基线

串口上报(0x7F 协议,UART @192000

  • 0xC0 传感数据主动上报:频率、variation(3B 有符号Origin CAPVDV1.05)、车状态
  • 时间量(通过时间/车间距)统一 50ms 单位;上电 3 秒抑制主动上报
  • 继电器输出次数上报;0x4A 版本查询(CAPVD→实际频率 uint64 精确换算)

vd960DBN(通信 MCUCH32V208

TCP JSON 服务(:5960,协议 V1.02

  • 密码鉴权 + 18 条命令(新增脱机日志 log_stat/log_query/log_clear
  • 鉴权状态机 + 15 条命令;服务异常自动重启(3 条件 + 3 次限额 + 10min 冷却)
  • event_report 客户端必答:5s 超时重发同 msg_id/原始 ts ×3

IoT MQTT(协议 V1.06

  • 双主题 dld960/{sn}/srv + dld960/{sn}/dev,消息类型由 cmd 区分
  • 上电 initialize 上线消息(dev_serial/model/hard_ver/soft_ver
  • loop_data 三档调度:空闲按配置间隔 / 活动 300ms / car_state 翻转沿立即上报
  • event_report 平台必答 + 16 深环形队列,ACK 后出队;不受 report_config.enable 门控
  • 设备时钟同步方案B:平台经 report_config 下发 Unix ts,设备无 RTC 也能上报真实时间
  • 稳定性修复:mqtt_publish 缓冲溢出发垃圾包致 broker RST 风暴(现场 P0)、packet_id=0 断连、PINGREQ 保活、分批发送(MSS=576Publish≤500B
  • loop_data 陈旧快照修复:0xC0 帧双消费路径统一摄取,事件与缓存同源
  • 脱机事件日志(W25Q32 环形 8064 条,V1.06 新增)log_stat / log_query / log_clear 三命令;BOOT 复位原因、MQTT 连接/断开、event ACK 超时、线圈事件、时钟锚点共 10 类;掉电不丢

基础设施

  • BLE 小程序配置 + OTALoop MCU ISP 串口透传升级
  • WCHNET TCP/IPlisten=N / data=N+1)、simple_json 解析器 6 项 bug 修复

文档与工具

  • 四份协议文档 + 硬件资源文档齐套(见 README 协议矩阵)
  • DBNetClientTCP JSON 测试)、DBNMQTToolMQTT 双主题测试)
  • 双 MCU devlog、验收标准、variation 分析报告、现场事故归档

已知约束

  • 设备无 RTC,时钟同步依赖平台下发(校准前 ts 为上电秒数)
  • CH32V208 栈资源紧张:2KB 任务栈内勿连续 PRINT,勿随意扩大全局 BSS

版本号规则

  • 整机发布 tagvX.Y.Z(本仓库 git tag + Gitea Release
  • 固件版本:两侧 cmcng.hFIRMWARE_VER,随整机版本同步
  • 协议文档版本:各文档内修订记录表独立演进,发布时在配套矩阵中锁定