二总线-MBus_二总线与CAN对比

二总线-MBus_二总线与CAN对比二总线的定义二总线是一种相对于四线系统(两根供电线路、两根通讯线路),将供电线与信号线合二为一,实现了信号和供电共用一个总线的技术。二总线节省了施工和线缆成本,给现场施工和后期维护带来了极大的便利。在消防,仪表,传感器,工业控制等领域广泛的应用。在时间的维度上最早且典型二总线技术就是M-BUS。M-BUSM-Bus(MeterBus)的开发是为了满足众多仪表的远程读数,例如每户的天然气表…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

二总线的定义

二总线是一种相对于四线系统(两根供电线路、两根通讯线路),将供电线与信号线合二为一,实现了信号和供电共用一个总线的技术。二总线节省了施工和线缆成本,给现场施工和后期维护带来了极大的便利。在消防,仪表,传感器,工业控制等领域广泛的应用。在时间的维度上最早且典型二总线技术就是M-BUS。
二总线布线方式

M-BUS

M-Bus(Meter Bus)的开发是为了满足众多仪表的远程读数,例如每户的天然气表以及水表。这种总线由总站统一控制读取各个从站(仪表)的度数,并能够给终端提供一定电流的供电。M-Bus对物理层,数据链路层,网络层(可选的),以及应用层均有相应的定义。
M-Bus应用层定义了测量记录的数据类型和数据结构。从站利用这些数据类型和结构将测量记录进行编码处理并传送给数据链路层进行发送处理;主站则根据这些数据类型和结构的定义,对应用层的数据进行相应的解码,从而获取从站的测量数据。
M-Bus定义了多种数据类型,包括无符号BCD整型、二进制整型、无符号二进制整型、布尔型、32bit复合型(表示测量类型、物理单位等)、32bit日期时间型、16bit日期型、浮点型。在这些数据类型的基础上,M-Bus定义了两种数据结构:固定数据结构和可变数据结构。 M-Bus的应用层同时定义了一些对链路层的”配置命令”的定义,包括波特率等。
应用层定义的数据类型和数据结构的定义对于M-Bus在抄表业的应用具有重要的现实意义,因为本身这种总线就是脱胎于仪表的计数读取这种需求,而这不是我们关心的重点,于是就不再这里赘述了。

M-BUS链路层

链路层作为保证数据传输完整以及可靠性的通信层。它定义了由起始位,数据位,奇偶校验为以及停止位构成的帧格式(与串口一致),并定义了单字节报文,短报文,以及长报文和长报文的特例控制报文四种报文格式。其中C-Field中的后四位规定了5种报文作用。
第一种命名为SND_NKE,其见于短报文中,用于主站发送给从站让其进行初始化,从站在接收之后回复单字节报文表示收到。
第二种命名为SND_UD,其见于长/控制报文,用于主站发送给从站数据。
第三种和第四种分别为REQ_UD1/REQ_UD2,见于短报文,用于主控制器发送给从站,请求级别1、级别2的数据回复。
第五种RSP_UD,见于长/控制报文,为从站回复的数据,在主控制发送请求数据的报文之后。
C-Field在由主站发送的报文REQ_UD1/REQ_UD2 中,如果第六位FCV置位,则第五位FCB每次发送都会置反。这样从站就能通过FCB来判断回复上一条信息还是新的信息。从站在判断FCV置位的基础上,如果FCB与上一条报文FCB保持一致,则回复历史信息,如果与上一条报文的FCB不一致,则回复新的信息。主站如果发送REQ_UD1/REQ_UD2,从站如果未回复RSP_UD ,则FCB保持一致,并不置反。
在这种机制下,主站需要针对每个从站保存一个FCB位,而每个从站需要保存一个上一条报文的FCB位。
报文格式

M-BUS物理层

M-Bus采取电平特征传输数字信号,下行电压,上行电流。
总线两端稳定电压:Vmark时表示逻辑Bit1,Vspace= Vmark-12V表示逻辑Bit0。主站通过Vmark与V Vspace的电压跳变脉冲向从站发送帧数据。
总线稳定电流=Imark*从站个数,表示逻辑Bit1。设总线上只有一个从站,那么总线稳定电流= Imark,则Ispace=Imark+(1120)mA,表示逻辑0.即从站从总线上吃掉1120mA电流发送Bit0。从站发送高度为(11~20)mA的电流脉冲向主站发送帧数据。
Mbus物理电平
M-Bus总线为单工,异步的通信这是因为如上图所示,从站向主站发送数据的时候,会引起总线上的电压被拉低。所以当从站发送数据的时候,主站无法发送数据。

M-BUS物理层/主站发送电路

主站的发送电路设计主要考虑发送Bit0与Bit1的电压变化量要大于等于12V;电路驱动几十上百个智能表不能影响发送电压低于12V。
出于这两个问题的考虑,用两个直流稳压器应该可以满足满足要求,下面左边是发送电路的框图,右边是发送电路原理图。
M-BUS主站发送电路

M-BUS物理层/主站接收电路

接口电路接收部分的主要难点是不要误读。在一个稳压电路中要读取它的电流,就象是在测它的纹波一样,串一个取样电阻是需要的。首先稳压电路本身纹波很小,取样电阻大了影响发送时的稳压效果,小了又取不出可用值。其实是要排除负载的变化对接收波形的影响,左边为主站接收电路框图,右边为电路原理图。
M-BUS主站接收电路

M-BUS物理层/从站接口电路

TSS721A接口芯片是MBus协议组织与TI公司合作开发的MBus协议从站专用接口芯片,遵循EN1434-3标准。借助TI公司的强大技术力量,TSS721A接口芯片实现了MBus协议对物理层的各项规定要求,有力地推动了MBus协议的推广。根据MBus总线物理层的相关定义,TSS721A从站接口芯片具备检测总线电压(接收数据)和调制总线电流(发送数据)的功能。TSS721A除了MBus通信功能外,还对MBus总线远程供电和电池供电提供了很好的支持。
TSS721接口芯片可以提供通过VDD引脚输出的3.3v稳压给MCU供电。芯片引脚PF直接接到外接MCU,用于掉电信号报警,当PF引脚有效时,MCU应保存相应数据。VS引脚会根据输电压VDD的状态,自动切换使用VDD或者电池进行供电。
TSS721电路

M-BUS的迭代

因为M-BUS在布线上具有得天独厚的优势(两根线),很多现场总线的应用场景都把这种技术作为考虑的方案之一,但是因为其对单个从站在功耗上的严苛要求,以及对整个总线上设备总量的限制和布线长度的要求,使得其针对各种仪表信息的数据采集非常适用,但是对其余的应用场景不适用。
现在市面上迭代了能够拉取更高静态电流的从站模块以应对那种带有电动阀的仪表,甚至有成对的主从芯片来提供M-BUS的物理层实现,不用再搭建主站的收发电路,且从站能有更高的功耗。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181677.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux vim怎么保存退出 vim怎么用

    Linux vim怎么保存退出 vim怎么用linux系统是主要用于服务器使用,一般配置文件修改都是通过vi或vim来实现。相比vi而言vim有更强大的功能,本经验咗嚛以centos7.6为例演示linux下vim如何退出 安装vim一般来说vim都是系统默认没有安装的,使用yuminstall-yvim安装。 安装好之后,输入vi按下tab键看到有vim命令表示安装成功了。 如何使用vim默认输入vim就进入了vim,可以查看vim的基本指令 vim+文件名表示编辑此文件,如.

    2022年5月9日
  • php 死链查询,seo网站死链解决方法 死链查询检测工具

    php 死链查询,seo网站死链解决方法 死链查询检测工具死链是指服务器的地址已经改变了.无法找到当前地址位置,包括协议死链和内容死链两种形式。死链出现的原因有网站服务器设置错误;某文件夹名称修改,路径错误链接变成死链等。我们都知道死链对seo排名的危害是非常大的。死链对网站的危害一、有可能会让搜索引擎降权二、用户体验较差死链检测方法:Xenu死链查询工具今天教大家如何使用Xenu死链接检测工具对网站死链接(什么是网站死链)进行处理,有图有真相,轻松四步…

    2022年7月23日
  • Django(49)drf解析模块源码分析「建议收藏」

    Django(49)drf解析模块源码分析「建议收藏」前言上一篇分析了请求模块的源码,如下:definitialize_request(self,request,*args,**kwargs):"""Retu

    2022年7月31日
  • HBase Shell命令大全「建议收藏」

    HBase Shell命令大全「建议收藏」HBase关键名称:RowKey列族columnfamily单元Cell时间戳timestampHBaseShell是官方提供的一组命令,用于操作HBase。如果配置了HBase的环境变量了,就可以知己在命令行中输入hbaseshell命令进入命令行。hbaseshellhelp命令可以通过help’命名名称’来查看命令行的具体使用查询服务器状态st…

    2022年7月16日
  • pycharm安装torch和cuda(在anaconda创建的新环境下)[通俗易懂]

    pycharm安装torch和cuda(在anaconda创建的新环境下)[通俗易懂]pycharm安装torch和cuda(在anaconda创建的新环境下)

    2022年10月25日
  • PrintWriter and BufferedWriter区别和使用「建议收藏」

    PrintWriter and BufferedWriter区别和使用「建议收藏」区别:BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的字符输出,然后通过newLine()进行换行操作。并且BufferedWriter只能对字符流进行操作。PrintWriter:相对于BufferedWriter的好处在于,如果PrintWriter开启了自动刷新,那么当PrintWri…

    2022年6月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号