Files
vd_960/docs/DLD960Loop_串口通信协议.md
2026-07-02 17:10:36 +08:00

10 KiB
Raw Blame History

DLD960Loop 串口通信协议

1 通信说明

1.1 通信方式

串口通信波特率192000

2 协议格式

Package

1Byte 3Bytes 0~64Bytes 2Bytes
Magic byte Header Value Check Bytes

2.1 Magic Byte(1Byte)

标识协议类型,也表示数据包开始信息。

Magic Byte 说明
0x7F 屏、地感检测、探头的配置和查询协议,或者部分雷达的协议
0x8F
0x9F OTA 用途

2.2 Header(3Bytes)

当Magic Byte为 0x7F时Header字节定义如下

1Byte 1Byte 1Byte
Addr 地址 LEN 数据长度 CMD 命令字节
  • Addr 默认0

  • LEN数据长度表示数据包的有效数据(Value)长度,包括命令(CMD Byte)和数据(Data Bytes)

  • CMD 命令字节

2.3 校验字节(Check Bytes2Bytes)

当Magic Byte为0x7F时校验字节实现如下

1Byte 1Byte
XOR 异或校验 SUM 和校验

XOR 异或校验校验从Addr字节开始到命令数据的最后一个字节结束

SUM 和校验校验从Addr字节开始到命令数据的最后一个字节结束。

3 Cmd详解

3.01 获取设备版本号(0x4A)

Header Data
Value(Hex) 00 01 4A
Length 3 Byte 0 Byte

eg: 7F 00 01 4A 4B 4B

返回:

Header Status + Hard_Main + Hard_Sub + Hard_SSub + Soft_Main + Soft_Sub + Soft_SSub
Value(Hex) 00 08 4A xx
Length 3 Byte 7 Byte

3.02 设备复位(0x6D)

Header Data
Value(Hex) 00 01 6D
Length 3 Byte 0 Byte

设备无回复。

eg:  7F 00 01 6D 6C 6E

3.03 出厂初始化(0x92)

Header Data
Value(Hex) 00 01 92
Length 3 Byte 0 Byte

eg: 7F 00 01 92 93 93

返回:

Header Data
Value(Hex) 00 02 92 00/01(00 success)
Length 3 Byte 1 Byte

eg: 7F 00 02 92 00 90 94

3.04 读写线圈灵敏度列表0x8A

Header R/WAmount Amount * (SensityIn + SensityOut)
Value(Hex) ADDR xx 8A xx
Length 3 Byte (1+ 1 + Amount *(2 + 2 ))Byte

R/W: 1字节0 Read 1 Write

Amount1字节灵敏度值的数量 当R/W为 Write时有效最小3

SensityIn两字节触发灵敏度值当R/W为 Write时有效

SensityOut两字节释放灵敏度值当R/W为 Write时有效

返回

Header RetAmount,  Amount * (SensityIn + SensityOut)
Value(Hex) ADDR xx 8A xx
Length 3 Byte (1+ 1 + Amount *(2 + 2 ))Byte

Ret: 0x10 | R/W如果是读指令返回0x10如果是写指令返回0x11。

7F 80 13 8A 10 04 A2 00 51 00 51 00 36 00 36 00 20 00 1C 00 12 00 81 2F

7F Magic Byte
80 Addr 00/80 default
13 Len, 0x13=19字节Cmd + Data
8A Cmd
10 读指令返回
04 四级灵敏度包括进入灵敏度  离开灵敏度分别都是两个字节
A2 00 51 00: 第0级灵敏度0x00A2为进入 1620x0051为离开 81
51 00 36 00第1级灵敏度0x0051为进入 81 0x0036为离开 54 
36 00 20 00第2级灵敏度0x0036为进入 54 0x0020 为离开 32 
1C 00 12 00第3级灵敏度0x001C为进入 280x0012 为离开 18
81 2F 校验码

3.05 设置车检器多路参数(0x63)

Header AutoMode + Amount + Param[Sensitivity, Loop_Delay, Output_Mode, Exist_Mode, Direction_Mode]
Value(Hex) 00 xx 63 xx
Length 3 Byte (2 + 5 * Amount) Byte
  • AutoMode: 是否处于自动模式自动调频0表示不启用默认0。

  • Sensitivity 低四位表示灵敏度0~9级值越大灵敏度越高默认7高四位表示高低频其中[4,5]表示线圈的高低频。

  • Loop_Delay: 地感延时时间0~200 0.1s为一级,延时时间范围:[0, 20秒]

  • Output_Mode 低三位有效地感输出方式0 - 存在输出1-进入脉冲2-离开脉冲3-方向判别高5位表示SafeMode是否开启安全模式 0 关闭非 0 开启安全模式分钟为单位。

  • Exist_Mode低四位表示地感存在方式0-永久存在非0-有限存在的分钟数;

  • Direction_Mode:

    • 低三位表示方向判别模式0 表示触发模式 1-6 表示方向判别的输出模式对应以前的 0-5,   update 2023-02-24

    • 高四位表示Function_Mode功能模式是否启用特殊的模式

Header Status
Value(Hex) 00 02 63 00/01
Length 3 Byte 1 Byte

3.06 读取车检器多路参数(0x64)

Header Param
Value(Hex) 00 01 64
Length 3 Byte

返回:

Header AutoMode+Amount + Data[Sensitivity, Loop_Delay, Output_Mode, Exist_Mode, Direction_Mode, freq1,  freq2, freq3]
Value(Hex) 00 xx 64 XX
Length 3 Byte (2 + 8 * Amount) Byte

3.07 设备主动上报传感信息(0xC0)

设备主动上报传感信息指令,具体传感数据需要根据不同的类型进行解析。

7Fh ADDR Len C0 SensType(1Byte) SubPkgFlag(1Byte) SensData XOR SUM

SensType: 传感数据类型

SubPkgFlag: 分包标记 SubPkgFlag高四位表示分包数量 SubAmount低四位表示为当前分包中第几个分包 SubSequence其中 SubSequence = [1,SubAmount]

  • 00 表示无分包是一条数据完整的记录

  • 当SubAmount不为0时SubSequence从1开始到SubAmount结束整合为一条完整的数据包。

  • 当SensType为0x05时SubPkgFlag作为传感数据使用。

  • 当SensType为0x06、0x07、0x09时SubPkgFlag的Seq和SubAmount分开各用一个字节表示。

SensData传感数据

SensType 类型说明 SensData 传感数据说明
0x0C 多线圈传感信息 四路线圈

上报线圈传感数据单元(多路线圈,每一路线圈单元的配置)

字段 字节数 内容 详情
配置 1 1 freq_level(2bit), Direction(1bit)freq_type(1bit), sens(4bit) 线圈 1 配置freq_level:高低频两个比特位00 表示高频(33nF),01表示中高(43nF), 10表示中低(66nF), 11表示低频(76nF)。Direction: 0 表示触发1 表示方向判别freq_type: 0 表示初始频率1 表示当前实时频率。sens低四位表示当前的灵敏度等级
线圈评估条件 1 condition(4bit), loop_state(1bit),
car_state(1bit),
report_msic(2bit)
loop_condition 正常0有效环境状态条件环境状态评估值值越大干扰越大高四位有效。低四位中 其中第3位表示线圈状态0 表示正常1 表示线圈断开第 2 位表示有无车0 表示无车1 表示有车低两位表示杂项类型0b00表示时间量0b01表示线圈断开次数0b10表示车流量数0b11表示继电器输出次数
频率 1 3 frequent 低字节在前
变化量 1 2 variation 低字节在前
杂项 4 in_out_passtime/cut_amount/flow_amount 杂项类型,可能是时间量,也可能是线圈断开次数、车流量数,说明:
1、通过时间或车间距5ms为单位最大计时
2、线圈断开次数
3、车流量数
4、继电器输出次数

eg:

7F 00 2F C0 0C 00 12 00 2A 0F 01 07 00 00 00 00 00 D2 00 75 B7 00 01 00 00 00 00 00 12 00 EC 0C 01 02 00 00 00 00 00 92 00 83 C3 00 02 00 00 00 00 00 E2 34

指令解释

7F Magic Byte
00 Addr0 default
2F Len, 0x2F=47个字节Cmd + Data
C0 Cmd
0C SensType传感数据类型0x0C 多线圈传感信息960Loop为 四路线圈车检器会有4个传感数据单元
00 SubPkgFlag分包标记00 表示无分包是一条数据完整的记录
12 00 2A 0F 01 07 00 00 00 00 00线圈1传感数据单元0b00 高频0b0 触发模式0b1实时频率0b0010 表示2级灵敏度0b0000环境正常0b0线圈正常0b0当前无车0b00 表示当前杂项参数为时间量0x010F2A频率为69418Hz0x0007变化量为70x00000000时间量为为0 
D2 00 75 B7 00 01 00 00 00 00 00线圈2传感数据单元0b11 低频0b0 触发模式0b1实时频率0b0010 表示2级灵敏度0b0000环境正常0b0线圈正常0b0当前无车0b00 表示当前杂项参数为时间量0x00B775频率为46965Hz0x0001变化量为10x00000000时间量为为0  
12 00 EC 0C 01 02 00 00 00 00 00线圈3传感数据单元0b00 高频0b0 触发模式0b1实时频率0b0010 表示2级灵敏度0b0000环境正常0b0线圈正常0b0当前无车0b00 表示当前杂项参数为时间量0x010CEC频率为68844Hz0x0002变化量为20x00000000时间量为为0 
92 00 83 C3 00 02 00 00 00 00 00线圈4传感数据单元0b10 中低0b0 触发模式0b1实时频率0b0010 表示2级灵敏度0b0000环境正常0b0线圈正常0b0当前无车0b00 表示当前杂项参数为时间量0x00C383频率为50051Hz0x0002变化量为20x00000000时间量为为0 
E2 34  校验字节  

注意,如果有续包,最后一包上位机无返回。中间续包上位机返回传感类型,当前收到包的序列和子包的数量:

7Fh ADDR 07 C0 SensType Seq(1Byte) SubAmount(1Byte) XOR SUM

修订记录

版本 修订时间 修订说明 修订人
V1.00 2026-02-11 创建协议初始版本 wangfq
V1.01 2026-06-22 补充遗漏的接口说明 wangfq
V1.02 2026-07-02 查缺补漏,补充例程说明。 wangfq
V1.03 2026-07-02 0x8A 响应格式 + LEN 计算修正 wangfq
V1.04 2026-07-02 主动上报增加继电器输出次数 类型 wangfq