纸鸢|物联协议只M-BUS详解一文即懂
文章详细介绍了M-Bus
仪表总线,包括总线结构、总线的通信协议,及其在远程抄表中的应用。
家用公共事业仪表通过扩展M-Bus
总线,使其具有与M-Bus
仪表总线通讯的功能,从而实现远程抄表。
介绍
M-Bus
是Paderborn大学的DR.HorstZiegler与TI公司的Deutschland和TechemGmbH共同提出的,专门用于公共事业仪表的总线结构,称Meter-Bus
,简称M-Bus。
M-Bus
仪表总线属于局域网,是处于同一幢建筑、同一大学或方圆几公里远地域内的专用网络,被用于连接远程监控计算机和工作站、测量仪表等设备,以便资源共享和数据传输。
M-Bus
仪表总线具有LAN的3个基本特征:
- 范围
- 传输技术
- 拓扑结构
LAN
具有星形、环形和总线形拓扑结构。M-Bus
一般采用总线形拓扑结构。
M-Bus
仪表总线可以满足由电池供电或远程供电的计量仪表的特殊要求。
当计量仪表收到数据发送请求时,将当前测量的数据传送到主站(主站可以是手持单元、计算机或其它终端)。
主站定期地读取某幢建筑中安装的计量仪表的数据。
一般而言,挂接在仪表总线上的计量仪表的数目可达数百个,数据传输距离达数千米。在总线上传送的数据具有高度的完整性和快速性。
M-Bus总线的结构模型及特点
国际标准化组织(ISO)于1978年提出了OSI7层参考模型。M-Bus
总线协议以ISO-OSI
参考模型作为参考,但是只采用了OSI
模型的物理层、数据链路层、网络层和应用层。
物理层
物理层的功能是提供一条“非结构位流”传送的物理通道,并为数据链路层提供建立、维护和解除物理连接。物理层规定了主站与从站之间的物理接口的物理和电气特性,负责物理媒体上信息的接收和发送。M-Bus
的物理层采用M-Bus
总线标准。
数据链路层
数据链路层的功能是在物理连接的基础上建立、维护和解除数据连接。数据链路层以**帧**
为单位传输信息,在每帧信息中附加了许多协议控制信息(如同步信息、地址信息、纠错信息、应答信息等),以保证信息无差错传送。M-Bus
的数据链路层采用IECC870
标准。
应用层
应用层是直接面对用户的一层。主要功能包括读数据、写数据、密钥设定、广播校对,以及更改通信速率等等。M-Bus
的应用层采用EN1434-3
标准。
M-Bus
总线协议为一主一从结构的半双工通讯方式,可以进行一主一从或一主多从的操作,从站均有各自的地址编码。
采用0.5mm20.5mm^20.5mm2双绞线,连接250
个从站时,最远连接距离可达到380m
。
采用1.5mm21.5mm^21.5mm2双绞双绞线,连接64
个从站时,最远连接距离可达到3600m
。
M-Bus
总线结构由主站以及挂接在双绞线上的一系列从站组成,从站之间彼此并联。
M-Bus仪表总线协议
信息帧的控制由主站发出,每帧由前导字节
、帧起始符
、仪表类型
、从站地址域
、控制码
、数据长度
、数据域
、帧信息纵向校验码
及帧结束符
等9个域组成,每个域由若干字节组成。
帧的格式见图2。
每字节含8位二进制码,传输时加上1个起始位(0)、1个奇偶校验位和1个停止位(1)共11
位,其传输序列如图3所示。D0
是字节的最低位,D7
是字节的最高位,先传低位后传高位。
前导字节
由主站或从站发送的所有帧前面有一串规定数目的十六进制的字符“FE
”,这些字符称为帧的前导字节。
前导字节本质上是一种物理层的要求,经常用来使接收器适应和同步,一般是2~4
个字符
帧起始符
帧起始符68H
,表示一帧信息的开始。
仪表类型
仪表类型(T)是指参与通信的从站属于哪种类型的计量仪表,如表2所示。
地址域
地址域指示与之通信的从站的地址,由7个字节组成A0A1A2A3A4A5A6
,每个字节为2位的BCD码,其中A5A6
为厂商代码,低地址在前,高地址在后。
当某一字节以AAH
寻址时,忽略该字节地址。当为AAAAAAAAAAAAAA时,代表广播。
控制码
帧信息控制代码,一个字节,字节的低6位代表相应信息的控制码(如000100代表读计量数据),第7位表示从站应答信息(0-正确应答,1-异常信息的应答),第8位表示帧的发送方(0-主站的控制帧,1-从站应答帧)。
数据长度
数据长度字段包含一个表示字节数的整数,用十六进制表示,是数据长度字段和校验字段之间(不包括该两个字段)的数据字节的计数值。读数据时数据长度小于或等于64H
。写数据时数据长度小于或等于32H
,数据长度等于零表示无数据域。
数据域DATA
数据,含义根据控制码及上下文确定。发送方进行加33H
处理,接收方进行减33H
处理。
纵向校验码
一个字节,从帧起始符开始到校验码之前得所有字节的二进制算术累加和,不计超过FFH的溢出值,无进位。
数据的传输
所有多字节数据域(地址域、数据域)均先传送低位字节,再传输高位字节。
例如传输数据0x12345678
,先发送数据0x78
,依次发送0x56
、0x34
、0x12
。
通讯为半双工通信,每次通讯先由主站发出命令帧,被选择的从站根据命令帧的要求做出响应。
传输响应的时序见图6、图7。
数据通信过程中,若接收方检测到校验和奇偶校验或格式出错,均放弃该信息帧不予响应。
图中
● Tbit=1/波特率秒Tbit = 1/波特率秒Tbit=1/波特率秒—二进制位传送时间
● Tbyte=11TbitTbyte = 11TbitTbyte=11Tbit—字节传输时间
● Td1=TbyteTd 1 = TbyteTd1=Tbyte—延迟时间
● Tframe=帧字节数∗TbyteTframe = 帧字节数 * TbyteTframe=帧字节数∗Tbyte—帧传输时间
● Tr=50ms+30*TbyteTr=50ms+30*TbyteTr=50ms+30*Tbyte—最长响应时间
● Trfba=实际帧字节长度*TbyteTrfba=实际帧字节长度 *TbyteTrfba=实际帧字节长度*Tbyte一实际帧传输时间
● Tb≤1TbyteTb≤1TbyteTb≤1Tbyte一字节间的停顿时间
M-BUS仪表总线的应用
M-BUS
总线的工作状态分为数据传输状态和空闲工作方式两种。
数据传输状态又分为主站至从站的数据传输和从站至主站的数据传输。
主站至从站的数据传输只允许一个主站连接到户用仪表总线。主站工作时应向总线提供电源
总结
M-BUS
仪表总线是一种低成本的户用电子系统,可以实现公共事业仪表的联网和远程抄表功能。
公共事业仪表包括户用电表、水表、热量表等计量仪表。
文章详细介绍了M-BUS
仪表总线,包括总线结构、总线的通信协议,及其在远程抄表中的应用。
家用公共事业仪表通过扩展M-BUS
总线,使其具有与M-BUS
仪表总线通讯的功能,从而实现远程抄表。
纸鸢|物联协议只M-BUS详解一文即懂相关推荐
- 标准差详解-一文搞懂标准差的含义
标准差详解-一文搞懂标准差的含义 转载自 样本标准差的意义是什么? 的第一个回答
- 4G DTU接入平台系列教程(三):OneNet中移物联云平台接入教程详解
LTE-659 4G DTU系列 OneNet中移物联云平台连接教程 今天介绍物联设备 LTE-659 4G DTU如何接入OneNet中移物联云平台系列. LTE-659是一款Cat 1模块.物联网 ...
- 「搜卡之家」物联卡激活步骤图片详解,望大家收藏!
最近一段时间,小编看到公众号后台有好多朋友留言,其中有一部分都是问"物联卡激活"的问题,今天,瞅个空,给大家介绍一下关于物联卡激活的问题. 接下来是对大家介绍的激活流程,请大家参考 ...
- Spring AOP详解一文搞懂@Aspect、@Pointcut、@Before、@Around、@After、@AfterReturning、@AfterThrowing
文章目录 1.AOP是什么 2.AOP中注解的含义 3.Pointcut切入点的语法 4.AOP代码实现 1.AOP是什么 AOP:Aspect Oriented Programming,翻译过来就是 ...
- Google BERT原理详解 一文读懂BERT
理论: https://zhuanlan.zhihu.com/p/46652512 https://www.cnblogs.com/anai/p/11645953.html https://blog. ...
- HTTP协议的头信息详解
HTTP协议的头信息详解 http://blog.csdn.net/guoguo1980/archive/2008/07/14/2649658.aspx HTTP协议的头信息详解 HTTP(Hyper ...
- ARP协议及ARP欺骗详解
ARP协议及ARP欺骗详解 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP ...
- [转]HTTP协议之状态码详解
HTTP协议之状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了. 如果是做AJ ...
- 《HTTP/2基础教程》协议、特性、详解
文章目录 <HTTP/2基础教程>协议.特性.详解 前言 第一章 HTTP进化史 第二章 HTTP/2 快速入门 第三章 Web优化"黑魔法"的动机与方式 HTTP/1 ...
最新文章
- 两个类相互包含引用的问题--类前向声明
- 一个表对应另一个表中多个主键的查询方法(把一个表当成两个表用)
- c++用二叉树表示代数表达式_C语言:数据结构-二叉树的定义和基本术语和二叉树的性质...
- DOM4j读取XML文件(SAXReader)
- 安卓重构系列-01使用Kotlin开发第一个Demo
- Java基础——Java NIO详解(二)
- php7 参数类型限定,PHP 7.4 新功能一览之参数和返回类型改进
- 第一节 Java语言发展史
- 微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现
- python的numpy库结构_NumPy构成了数据科学领域中许多Python库的基础。
- linux谁使用内存,linux内存不知被谁用了
- 怎样通过Java程序提交yarn的mapreduce计算任务
- Outlook 邮箱备份操作手册
- python roberts滤波_Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术...
- 工程力学(18)—压杆稳定
- 单纯形法算法实现--java版
- 云计算与虚拟化的区别
- Alice and the List of Presents CodeForces - 1236B 数学推导
- 安川A1000变频器通过DriveWizard Plus设置加减速时间
- HDOJ 1859 最小长方形
热门文章
- 说菜,(¬︿̫̿¬☆)
- C语言sizeof()和strlen()
- vue前端接收后端URL导出elsx
- java 数组定义及其基本概念 下标访问 下标赋值
- 《投资最重要的事》(霍华德.马克斯)--读书会分享
- 锐龙r7 4750g核显什么水平 r7Pro 4750G怎么样
- 邯郸 java高级_一个高级java工程师的进阶之路
- 【王喆-推荐系统】复习篇-Sparrow的个性化推荐功能
- Python虚拟环境venv的日常使用
- 微信小程序使用vant weapp的van-field,输入有内容时,表单校验数据一直为空的问题