docs: 整理发布文档 — 重写根 README + 新增 CHANGELOG (V1.0.0)
- README: 双MCU架构图、子项目/固件版本表、协议版本矩阵、文档索引、发布流程 - CHANGELOG: V1.0.0 首发说明 — Loop/DBN 配套版本矩阵、双侧功能汇总、已知约束
This commit is contained in:
@@ -0,0 +1,72 @@
|
|||||||
|
# CHANGELOG — vd_960 (DLD960)
|
||||||
|
|
||||||
|
本文件记录 DLD960 整机(双 MCU 配套)的版本发布历史。
|
||||||
|
单侧固件的细粒度演进见 `vd960Loop/docs/devlog.md` 与 `vd960DBN/docs/devlog.md`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## V1.0.0 — 2026-07-16(首个正式发布)
|
||||||
|
|
||||||
|
**配套版本矩阵**
|
||||||
|
|
||||||
|
| 组件 | 版本 |
|
||||||
|
|------|------|
|
||||||
|
| vd960Loop 固件 (AT32F421) | 1.0 |
|
||||||
|
| vd960DBN 固件 (CH32V208, DLD960GA) | 1.0 |
|
||||||
|
| DLD960Loop 串口协议(MCU 间 0x7F) | V1.05 |
|
||||||
|
| DLD960 串口通信协议(RS485/TTL) | V1.01 |
|
||||||
|
| DLD960 TCP JSON 协议(:5960) | V1.01 |
|
||||||
|
| DLD960 IoT MQTT 协议 | V1.05 |
|
||||||
|
|
||||||
|
> ⚠ 自协议 V1.05 起,Loop 固件与 DBN 固件必须同版本配套刷写,禁止混跑(variation 字段宽度变更导致帧格式不兼容)。
|
||||||
|
|
||||||
|
### vd960Loop(检测 MCU,AT32F421)
|
||||||
|
|
||||||
|
**检测算法**(自 DLD154V4B 移植并四通道化,针对 M4 优化)
|
||||||
|
- 主循环 tick 50ms → **10ms**,单路 IIR(ALFA_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 − CAPVD`,V1.05)、车状态
|
||||||
|
- 时间量(通过时间/车间距)统一 **50ms 单位**;上电 3 秒抑制主动上报
|
||||||
|
- 继电器输出次数上报;0x4A 版本查询(CAPVD→实际频率 uint64 精确换算)
|
||||||
|
|
||||||
|
### vd960DBN(通信 MCU,CH32V208)
|
||||||
|
|
||||||
|
**TCP JSON 服务(:5960,协议 V1.01)**
|
||||||
|
- 鉴权状态机 + 15 条命令;服务异常自动重启(3 条件 + 3 次限额 + 10min 冷却)
|
||||||
|
- event_report 客户端必答:5s 超时重发同 msg_id/原始 ts ×3
|
||||||
|
|
||||||
|
**IoT MQTT(协议 V1.05)**
|
||||||
|
- 双主题 `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=576,Publish≤500B)
|
||||||
|
- loop_data 陈旧快照修复:0xC0 帧双消费路径统一摄取,事件与缓存同源
|
||||||
|
|
||||||
|
**基础设施**
|
||||||
|
- BLE 小程序配置 + OTA;Loop MCU ISP 串口透传升级
|
||||||
|
- WCHNET TCP/IP(listen=N / data=N+1)、simple_json 解析器 6 项 bug 修复
|
||||||
|
|
||||||
|
### 文档与工具
|
||||||
|
- 四份协议文档 + 硬件资源文档齐套(见 README 协议矩阵)
|
||||||
|
- DBNetClient(TCP JSON 测试)、DBNMQTTool(MQTT 双主题测试)
|
||||||
|
- 双 MCU devlog、验收标准、variation 分析报告、现场事故归档
|
||||||
|
|
||||||
|
### 已知约束
|
||||||
|
- 设备无 RTC,时钟同步依赖平台下发(校准前 ts 为上电秒数)
|
||||||
|
- CH32V208 栈资源紧张:2KB 任务栈内勿连续 PRINT,勿随意扩大全局 BSS
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 版本号规则
|
||||||
|
|
||||||
|
- 整机发布 tag:`vX.Y.Z`(本仓库 git tag + Gitea Release)
|
||||||
|
- 固件版本:两侧 `cmcng.h` 的 `FIRMWARE_VER`,随整机版本同步
|
||||||
|
- 协议文档版本:各文档内修订记录表独立演进,发布时在配套矩阵中锁定
|
||||||
@@ -1,26 +1,86 @@
|
|||||||
# vd_960 — 车检器 DLD960 嵌入式软件
|
# vd_960 — DLD960 四通道车辆检测器(双 MCU 架构)
|
||||||
|
|
||||||
|
> 当前发布版本:**V1.0.0**(2026-07-16)· 变更历史见 [CHANGELOG.md](CHANGELOG.md)
|
||||||
|
|
||||||
## 产品概述
|
## 产品概述
|
||||||
|
|
||||||
DLD960 是一款双 MCU 架构的车检器(车辆检测器),采用线圈检测原理。
|
DLD960 是一款基于环形线圈检测原理的四通道车辆检测器,支持网口(TCP JSON / IoT MQTT)、RS485、蓝牙(小程序配置 + OTA),面向停车场出入口控制、流量计数、会车控制等场景。
|
||||||
|
|
||||||
## 硬件架构
|
产品型号:**DLD960GA**
|
||||||
|
|
||||||
|
## 硬件架构(双 MCU)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────┐
|
||||||
|
线圈1~4 ──────────► AT32F421 (vd960Loop) │
|
||||||
|
(TMR3 输入捕获) │ · 四路线圈驱动/频率采样 │
|
||||||
|
继电器1~4 ◄───────│ · 车辆检测算法(IIR/斜率限幅/基线跟踪) │
|
||||||
|
└───────────────┬─────────────────────────┘
|
||||||
|
│ UART 0x7F 协议 @192000
|
||||||
|
┌───────────────▼─────────────────────────┐
|
||||||
|
蓝牙(小程序) ◄────► CH32V208 (vd960DBN) │
|
||||||
|
网口 ETH ◄────►│ · TCP JSON :5960 / IoT MQTT 双主题 │
|
||||||
|
RS485 ◄────►│ · BLE 配置 + OTA、Loop MCU ISP 透传 │
|
||||||
|
│ · 参数/日志外部存储 │
|
||||||
|
└─────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
| 芯片 | 型号 | 主频 | Flash | SRAM | 职责 |
|
| 芯片 | 型号 | 主频 | Flash | SRAM | 职责 |
|
||||||
|------|------|------|-------|------|------|
|
|------|------|------|-------|------|------|
|
||||||
| 线圈 MCU | AT32F421 | 120MHz | 64KB | 16KB | 四路线圈信号采集与处理 |
|
| 检测 MCU | AT32F421 (Cortex-M4) | 120MHz | 64KB | 16KB | 四路线圈信号采集与车辆检测算法 |
|
||||||
| 通信 MCU | CH32V208 | 144MHz | 128KB | 64KB | 蓝牙、网口、1路 RS485 |
|
| 通信 MCU | CH32V208 (RISC-V) | 144MHz(实际 120MHz) | 128KB | 64KB | 蓝牙、网口、RS485、外部存储 |
|
||||||
|
|
||||||
两个 MCU 之间通过内部总线(UART/SPI)通信。
|
- 四路线圈、四个双路继电器,每路线圈两级调频电容(33nF/10nF)。
|
||||||
|
- 支持 OTA:CH32V208 经蓝牙小程序 OTA;AT32F421 经 CH32V208 串口透传 ISP 升级。
|
||||||
|
- 地感配置存储于 AT32F421,可经 小程序↔BLE↔CH32V208↔UART↔AT32F421 链路读写。
|
||||||
|
|
||||||
|
详见 [docs/DLD960硬件资源.md](docs/DLD960硬件资源.md)。
|
||||||
|
|
||||||
## 子项目
|
## 子项目
|
||||||
|
|
||||||
| 子项目 | 目录 | MCU | 功能 |
|
| 子项目 | 目录 | MCU | 固件版本 | 功能 |
|
||||||
|--------|------|-----|------|
|
|--------|------|-----|---------|------|
|
||||||
| vd960Loop | `vd960Loop/` | AT32F421 | 线圈驱动、频率采样、车辆检测算法 |
|
| vd960Loop | `vd960Loop/` | AT32F421 | 1.0 | 线圈驱动、频率采样、车辆检测算法、0x7F 串口上报 |
|
||||||
| vd960DBN | `vd960DBN/` | CH32V208 | 蓝牙管理、TCP/IP 协议栈、RS485 通信 |
|
| vd960DBN | `vd960DBN/` | CH32V208 | 1.0 | 蓝牙管理、TCP/IP(WCHNET)、MQTT、RS485、串口桥接 |
|
||||||
|
|
||||||
|
> ⚠ 发布约束:自协议 V1.05 起(variation 2B无符号 → 3B有符号),**Loop 固件与 DBN 固件必须同版本配套发布**,禁止混刷。
|
||||||
|
|
||||||
|
## 协议文档(docs/)
|
||||||
|
|
||||||
|
| 文档 | 版本 | 适用层 | 说明 |
|
||||||
|
|------|------|--------|------|
|
||||||
|
| [DLD960Loop_串口通信协议.md](docs/DLD960Loop_串口通信协议.md) | V1.05 | Loop MCU ↔ DBN MCU | 0x7F 帧、0xC0 传感主动上报、variation 3B 有符号 |
|
||||||
|
| [DLD960_串口通信协议.md](docs/DLD960_串口通信协议.md) | V1.01 | 整机 RS485/TTL | 设备管理、参数配置、数据上报 |
|
||||||
|
| [DLD960_TCP_JSON协议.md](docs/DLD960_TCP_JSON协议.md) | V1.01 | 以太网 TCP :5960 | 鉴权 + 命令 + event_report 客户端必答 |
|
||||||
|
| [DLD960_IoT_MQTT协议.md](docs/DLD960_IoT_MQTT协议.md) | V1.05 | 云平台 MQTT | 双主题 `{sn}/srv`+`{sn}/dev`、initialize、event_report 平台必答、设备时钟同步 |
|
||||||
|
| [DLD960硬件资源.md](docs/DLD960硬件资源.md) | — | 硬件 | 双 MCU IO 分配、继电器、指示灯、拨码 |
|
||||||
|
|
||||||
|
## 开发文档
|
||||||
|
|
||||||
|
| 文档 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| [vd960Loop/docs/devlog.md](vd960Loop/docs/devlog.md) | 检测算法开发日志(IIR、斜率限幅、基线冻结、时间量单位演进) |
|
||||||
|
| [vd960DBN/docs/devlog.md](vd960DBN/docs/devlog.md) | 通信固件开发日志(WCHNET、MQTT 稳定性、event_report 可靠上报) |
|
||||||
|
| [vd960Loop/docs/acceptance-standard.md](vd960Loop/docs/acceptance-standard.md) | 检测算法验收标准 |
|
||||||
|
| [vd960Loop/docs/variation-analysis.md](vd960Loop/docs/variation-analysis.md) | variation 上报量分析报告(基线 vs 当前值三时钟关系) |
|
||||||
|
| [vd960DBN/docs/incidents/](vd960DBN/docs/incidents/) | 现场事故分析归档 |
|
||||||
|
|
||||||
|
## 配套工具
|
||||||
|
|
||||||
|
| 工具 | 目录 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| DBNetClient | `DBNetClient/` | TCP JSON 协议桌面测试工具(Python + tkinter,零第三方依赖) |
|
||||||
|
| DBNMQTTool | `DBNMQTTool/` | IoT MQTT 协议测试工具(Python + PySide6 + paho-mqtt,双主题 UI) |
|
||||||
|
|
||||||
## 开发环境
|
## 开发环境
|
||||||
|
|
||||||
- vd960Loop: Keil MDK / AT32 IDE(ARM Cortex-M4)
|
- **vd960Loop**:Keil MDK / AT32 IDE(ARM Cortex-M4,ARMCC V5)、FreeRTOS V10.4.3
|
||||||
- vd960DBN: MounRiver Studio(RISC-V)
|
- **vd960DBN**:MounRiver Studio(RISC-V)、WCH BLE 协议栈 + WCHNET
|
||||||
|
- 调试口:Loop MCU TTL Tx(3.3V 9600 8N1);DBN 侧 PRINT 串口
|
||||||
|
|
||||||
|
## 版本发布流程
|
||||||
|
|
||||||
|
1. 确认 `vd960Loop` 与 `vd960DBN` 固件按同一协议版本联调通过;
|
||||||
|
2. 更新两侧 `cmcng.h` 的 `FIRMWARE_VER`;
|
||||||
|
3. 更新 `CHANGELOG.md` 与各 devlog 修订记录;
|
||||||
|
4. 打 tag(`vX.Y.Z`)推送 Gitea,并在 Gitea Releases 挂发布说明与固件产物(hex/bin)。
|
||||||
|
|||||||
Reference in New Issue
Block a user