# 车检器 RS485 通信协议 — DLD-700BS > 版本: V1.15 | 日期: 2022-08-19 | 来源: `reference/docs/A5 20220819 车检器RS485通信协议 DLD-700BS V1.15.pdf` > > 兼容产品: DLD-700BS 系列车检器 --- ## 1. 物理层 | 参数 | 值 | |------|-----| | 接口 | RS485 半双工 | | 波特率 | 9600 bps | | 数据位 | 8 | | 校验 | 无 (N) | | 停止位 | 1 | | 从机地址 | 0x01–0x10(16 个地址,DIP 拨码设置) | --- ## 2. 地址码设置(DIP 拨码) | DIP7 | DIP8 | DIP9 | DIP10 | 地址 | |------|------|------|-------|------| | OFF | OFF | OFF | OFF | 0x01 | | ON | OFF | OFF | OFF | 0x02 | | OFF | ON | OFF | OFF | 0x03 | | ON | ON | OFF | OFF | 0x04 | | OFF | OFF | ON | OFF | 0x05 | | ON | OFF | ON | OFF | 0x06 | | OFF | ON | ON | OFF | 0x07 | | ON | ON | ON | OFF | 0x08 | | OFF | OFF | OFF | ON | 0x09 | | ON | OFF | OFF | ON | 0x0A | | OFF | ON | OFF | ON | 0x0B | | ON | ON | OFF | ON | 0x0C | | OFF | OFF | ON | ON | 0x0D | | ON | OFF | ON | ON | 0x0E | | OFF | ON | ON | ON | 0x0F | | ON | ON | ON | ON | 0x10 | --- ## 3. 通信数据包格式 主机发送固定 **3 字节**: ``` | STX | ADDR/CMD | XOR | | 1 byte | 1 byte | 1 byte | ``` | 字段 | 类型 | 说明 | |------|------|------| | STX | uint8 | 起始字节 / 命令码 | | ADDR | uint8 | 目标地址 (0x01–0x10),或命令码的组成部分 | | XOR | uint8 | 异或校验:`XOR = STX ^ ADDR/CMD` | --- ## 4. 命令集 ### 4.1 查询有车状态及线圈好坏 **主机发送:** ``` | 0xFA | ADDR | XOR | ``` > 例:查询 1# 车检器 → `FA 01 FB` **从机回复:** ``` | 0xF5 | DATA | XOR | ``` | DATA 位 | 说明 | |---------|------| | bit7 | 车辆状态:0=无车,1=有车 | | bit5 | 线圈状态:0=正常,1=线圈断开 | | bit4–0 | 地址 (0x01–0x10) | | XOR | `0xF5 ^ DATA` | > 例: > - 1# 无车 → `F5 01 F4` > - 2# 有车 → `F5 82 77` > - 3# 无车+线圈断 → `F5 23 D6` --- ### 4.2 查询线圈振荡频率 **主机发送:** ``` | 0x1B | ADDR | XOR | ``` > 例:查询 1# → `1B 01 1A` **从机回复:** ``` | 0x14 | Fre_1 | Fre_2 | Fre_3 | ADDR | XOR | ``` | 字段 | 说明 | |------|------| | Fre_1–3 | 3 字节频率 (big-endian): `Freq = (Fre_1 << 16) \| (Fre_2 << 8) \| Fre_3`,单位 Hz | | XOR | `0x14 ^ Fre_1 ^ Fre_2 ^ Fre_3 ^ ADDR` | > 例: > - 1# → `14 00 ED E8 01 10`,Freq = 0x00EDE8 = 60.904 kHz > - 2# → `14 01 63 06 02 72`,Freq = 0x016306 = 90.886 kHz --- ### 4.3 车检器复位重新初始化线圈 **主机发送:** ``` | 0x2C | ADDR | XOR | ``` > 例:复位 1# → `2C 01 2D` **从机无回复。** --- ### 4.4 查询拨码开关 DIP1–5 设置 **主机发送:** ``` | 0x3D | ADDR | XOR | ``` > 例:查询 1# → `3D 01 3C` **从机回复:** ``` | 0x32 | DATA | ADDR | XOR | ``` | DATA 位 | 说明 | |---------|------| | bit4–0 | DIP1–5 状态:0=OFF,1=ON | > 例: > - 1# → `32 0D 01 3E`(DIP1、DIP3、DIP4=ON,DIP2、DIP5=OFF) > - 2# → `32 0A 02 3A`(DIP2、DIP4=ON,DIP1、DIP3、DIP5=OFF) --- ### 4.5 主动上报心跳 (0xAA) 空闲每隔 **5 秒**上报一次。线圈异常每隔 **1 秒**上报直到恢复。有车/无车事件**立即上报**。 **从机主动发送:** ``` | 0xAA | Init_B | State | Fre_Err | Fre_1 | Fre_2 | Fre_3 | ADDR | XOR | ``` | 字段 | 字节 | 说明 | |------|------|------| | Init_B | 1 | `A1`=设备复位后首次上报,`A0`=正常 | | State | 1 | bit7=有车,bit5=线圈断开,bit4–0=地址 | | Fre_Err | 1 | `0x00`=频率正常。bit0=1→下限异常;bit4=1→上限异常 | | Fre_1–3 | 3 | 线圈振荡频率 (big-endian, Hz) | | ADDR | 1 | 设备地址 | | XOR | 1 | `0xAA ^ Init_B ^ State ^ Fre_Err ^ Fre_1 ^ Fre_2 ^ Fre_3 ^ ADDR` | > 复位触发条件:上电、协议控制复位(0x2C)、有限存在模式超时复位、重新连接线圈。 > > 例: > - 1# 启动后首次上报 → `AA A1 01 00 00 BF 50 01 E4` > - 1# 车进入 → `AA A0 81 00 00 BF 84 01 B1` > - 1# 车离开 → `AA A0 01 00 00 BF 50 01 E5` > - 1# 线圈断开 → `AA A0 21 00 00 BF 4E 01 DB`(持续每秒发送,直到恢复) --- ## 5. 命令速查表 | STX | 方向 | 功能 | 回复 | |-----|------|------|------| | 0xFA | 主→从 | 查询有车 + 线圈状态 | F5 DATA XOR | | 0x1B | 主→从 | 查询线圈频率 | 14 Fre1-3 ADDR XOR | | 0x2C | 主→从 | 复位初始化线圈 | 无回复 | | 0x3D | 主→从 | 查询 DIP1-5 | 32 DATA ADDR XOR | | 0xAA | 从→主 | 主动心跳上报 | 不回复 | --- ## 6. DLD154Pro 兼容说明 | 700BS 命令 | DLD154Pro 兼容 | 备注 | |-----------|---------------|------| | 0xFA 查询状态 | Modbus → DI 0x0000–01 | 等价覆盖 | | 0x1B 查询频率 | Modbus → IR 0x0000–01 | 等价覆盖(32-bit) | | 0x2C 复位 | Modbus → HR 0x00FF | 新增命令寄存器 | | 0x3D 查拨码 | Modbus → IR 0x000C (DIP Virtual) | DLD154Pro 无物理拨码,虚拟映射 | | 0xAA 心跳 | Modbus 无等价 | 主从架构限制,靠轮询 DI+IR 补偿 |