M-Bus 和 DLT645-2007 通讯协议
M-Bus(meter-bus)
是一个专用于公共事业仪表的总线结构,《DL/T645-2007多功能电能表通信协议》是发改委发布的一项用于国内电能表数据通信的协议规范,相当于MBus的"汉化版"。
MBus 总线协议帧格式
|--前导字节--|--帧起始符--|--仪表类型--|--从站地址域--|--控制码--|--数据长度--|--数据域--|--纵向校验码--|--帧结束--| 字节格式:8位数据位+1个起始位+1个奇偶校验位+1停止位。传输时,低位在前,高位在后。
前导字节
通信前设备发送一定数目的FEH
,本质上是物理层的要求,用于唤醒设备和同步,一般是2~4个FE
。
帧起始符
表示一帧信息的开始,为68H
。
仪表类型
指示参与通信的从站是那种类型的计量仪表:
- 10H~19H: 水表
- 20H~29H: 热表
- 30H~39H: 燃气表
地址域
地址域指示与之通信的从站的地址,由7个字节组成A0A1A2A3A4A5A6,每个字节为2为BCD码,其中A5A6为厂商代码,低地址在前高地址在后,AAH
为通配地址,当为AAAAAAAAAAAAAA
时,代表广播。
控制码
帧信息控制代码,一个字节,字节的低6位代表相应信息的控制码(如000100
代表读计量数据),第7位表示从站应答信息(0-正确应答,1-异常信息的应答),第8位表示帧的发送方(0-主站的控制帧,1-从站应答帧)。
数据长度
数据域的数据长度。
数据域
数据,含义根据控制码及上下文确定。发送方进行加33H
处理,接收方进行减33H
处理。
纵向校验码
从帧起始符开始到校验码之前得所有字节的二进制算术累加和,无进位。
帧结束符
表示一帧信息的结束,为68H
。
数据传输
- 所有多字节数据域(地址域、数据域)均先传送地位后高位,例如传输数据
0x12345678
,先发送数据0x78
,依次发送0x56
、0x34
、0x12
。 - 通讯为半双工通信,每次通信均为主站请求、从站应答。
- 字节奇偶校验错误、帧校验错误都代表数据通信异常,丢弃信息帧。
- 最长响应时间为
Tr = 50ms + 30 * Tbyte
,其中Tbyte
为传输一个字节所需时间。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论