bfc9646e4845ed22b53841f5b76840a24e3212cf
背景: variation 是遥测量, 用于离线跟踪分析车检器算法。原 2B 无符号 存在两个缺陷: (1)CAPVD域量级~131072, 大车全覆盖时偏差可超65535而回绕, 污染数据; (2)绝对值丢失方向, 分不清'车进入'与'反向漂移'。 改动 (三端联动, 同版本发布): - 协议 DLD960Loop_串口通信协议.md: 变化量 2B->3B有符号补码, 定义 variation=Origin-CAPVD (正=车/裕量, 负=反向漂移); 每单元11->12B, Len 47->51; 补符号扩展说明; 示例报文重算(XOR=FE SUM=38); 修订记录V1.05 - vd960Loop main.c: 组包 uint32->int32, Origin-CAPVD, 3B LE, +-2^23饱和防回绕 - vd960DBN loop_uart_proto.h: variation uint16->int32 - vd960DBN loop_uart_proto.c: 步长11->12, data_len/11->/12, misc偏移右移1B, variation 3B解码+bit23符号扩展 - vd960DBN iot_mqtt_srv.c: fast_mode 阈值判断改 abs(variation)>=10, 正负变化都加速 验证: 本地 gcc 隔离单测 编解码往返/符号扩展/饱和/方向语义/fast_mode 全通过; 大车 diff=100000 旧版回绕34464 新版正确保留。字节账: 帧56B < Loop缓冲64B < DBN缓冲512B < MSS576, 均不溢出。整体固件编译需在 Keil/MounRiver 侧完成。
vd_960 — 车检器 DLD960 嵌入式软件
产品概述
DLD960 是一款双 MCU 架构的车检器(车辆检测器),采用线圈检测原理。
硬件架构
| 芯片 | 型号 | 主频 | Flash | SRAM | 职责 |
|---|---|---|---|---|---|
| 线圈 MCU | AT32F421 | 120MHz | 64KB | 16KB | 四路线圈信号采集与处理 |
| 通信 MCU | CH32V208 | 144MHz | 128KB | 64KB | 蓝牙、网口、1路 RS485 |
两个 MCU 之间通过内部总线(UART/SPI)通信。
子项目
| 子项目 | 目录 | MCU | 功能 |
|---|---|---|---|
| vd960Loop | vd960Loop/ |
AT32F421 | 线圈驱动、频率采样、车辆检测算法 |
| vd960DBN | vd960DBN/ |
CH32V208 | 蓝牙管理、TCP/IP 协议栈、RS485 通信 |
开发环境
- vd960Loop: Keil MDK / AT32 IDE(ARM Cortex-M4)
- vd960DBN: MounRiver Studio(RISC-V)
Releases
4
vd960DBN V1.02.05(DBN 单侧发布)
Latest
Languages
C
98.1%
Python
0.9%
Assembly
0.6%
CMake
0.2%
Linker Script
0.2%