定义
DTU(Data Transfer Unit,数据传输单元)将串口(RS232/RS485)数据通过 4G LTE Cat.1/Cat.4 或 NB-IoT 网络实现透明传输至云端,支持 TCP/UDP/MQTT/HTTP。适用于充电桩、售货机、仪表、PLC 等分散设备远程联网,即插即用。
技术特性
DTU 通常提供 1~4 路串口,支持 RS485、RS232,波特率可配置。工作模式包括透传(串口数据原样转发)、协议解析(如 Modbus 转 MQTT 上报)。支持主站多连接、断线重连、心跳保活。配置方式有 AT 指令、本地配置工具、远程配置平台。供电常为 9~36V DC,工业级可选 12~24V,支持宽温、IP 防护。
与 RTU 区别
RTU 除远程通信外,还具有本地 I/O 采集、逻辑控制、协议转换能力,常用于 DCS、SCADA 现场;DTU 侧重数据透传,功能简单。RTU 适合复杂现场、多协议采集;DTU 适合已有串口设备快速联网。两者边界模糊,部分产品兼具 DTU 透传与 RTU 采集能力。
应用场景
充电桩:串口连接 BMS 或充电控制器,数据上报至运营平台;售货机:连接主控板,实现远程监控、补货提醒;智能表计:连接 Modbus 表计,替代有线抄表;工业设备:PLC、变频器、仪表通过 DTU 接入云平台;环境监测:传感器经串口采集后无线上报。选型时需考虑串口数量、通信制式、功耗、环境适应性。
透传字节流与协议帧边界
数据传输单元的本职是把串口上的字节搬到网络上的连接里,它不理解帧头和校验,除非单独打开了协议解析。透传时,串口空闲时间和网络打包长度决定一帧会被切成几段。主站按“一次读到完整帧”来解析,就会把半帧当成校验失败,下一半帧又对不上起始符。打包时间应短于业务帧间隔,又不能短到把一个字节打成一个包。多串口型号上,每一路的波特率、校验和打包时间独立,不能只配置第一路。
使用条件是对端先准备好接收缓冲,并约定谁发起连接。设备做客户端时要有主站地址、端口和注册包,以便主站认出这台终端;设备做服务端时要有可到达的地址,地址变化后主站仍连旧地址会一直失败。心跳只证明网络侧连接还在,不能证明串口下游设备有应答。下游仪表断电时,网络心跳仍然成功。需要查询式协议时,主站应串行发送,等应答或超时后再发下一条,不要把多条查询一次性写入透传通道。
心跳、重连和串口参数
断线重连若没有退避,基站抖动时终端会连续拨号,把注册包刷满主站日志,业务帧夹在注册包中间。重连成功后,串口侧可能还有半帧残留,应丢弃不足一帧的缓存,而不是拼到新连接的第一包上。校验位、停止位和仪表不一致时,网络完全正常,串口收到的每个字节都错。流控打开但对端没有接流控线,发送会永久堵住,看起来像模块死机。
缓存大小有限。长时间断网后,有的模块丢掉新数据,有的丢掉旧数据,上线后补传的顺序要和业务确认,不能默认“补传的就是连续历史”。信号弱时降低串口速率并不能提高空口速率,只会让本地帧堆在缓冲区。天线接口松动、SIM 未开通数据、接入点名称错误,现象都是注册失败,要先区分附着失败和主站拒绝。把透传模块当成已经解析好的采集器,平台会把原始字节当数值入库。若要按寄存器上报,应使用带协议解析的模式,并核对寄存器顺序和字节序。
注册包与残留半帧
注册包用来让主站认出终端,它不是业务帧。重连过于频繁时,注册包会插在两半业务帧之间,主站按业务协议去解析注册包,于是连续报校验错。重连成功后应丢掉不足一帧的串口残留,再开始新的查询。查询仍要一问一答,透传不会替主站排队。
心跳成功只说明网络连接还在,串口下游停电时心跳不会失败。信号弱、接入点错误和主站拒绝,日志里都可能写成上线失败,要分开看附着和注册两步。断网缓存是保留新数据还是保留旧数据,必须按业务选一种并在恢复后按时间排序。校验位设错时网络完全正常,收到的每个字节都不可用。把原始字节直接当数值入库之前,要确认模块是否真的做了解析,透传模式没有这一步。
串口打包时间要对照业务帧的字符间隔来定。间隔设得比帧内停顿还短,一帧会被切成多包;设得太长,多帧又会粘成一包。主站无论收到几段,都要自己组帧,不能假设每个网络包正好是一条命令的应答。注册包、心跳包和业务包用不同的帧头,解析时先分支,不要用同一套起始符去套。下游设备的波特率改变后,模块侧和设备侧必须同时改,只改模块会得到稳定的错码,重连也不能修复。长时间离线后的第一包如果是半帧,丢掉即可,不要为了“不丢数据”把它拼到下一次完整帧的前面。