二总线是一种相对于四线系统(两根供电线路、两根通讯线路),将供电线与信号线合二为一,实现了信号和供电共用一个总线的技术。二总线节省了施工和线缆成本,给现场施工和后期维护带来了极大的便利。在消防,仪表,传感器,工业控制等领域广泛的应用。在时间的维度上最早且典型二总线技术就是M-BUS。
M-Bus(Meter Bus)的开发是为了满足众多仪表的远程读数,例如每户的天然气表以及水表。这种总线由总站统一控制读取各个从站(仪表)的度数,并能够给终端提供一定电流的供电。M-Bus对物理层,数据链路层,网络层(可选的),以及应用层均有相应的定义。 M-Bus应用层定义了测量记录的数据类型和数据结构。从站利用这些数据类型和结构将测量记录进行编码处理并传送给数据链路层进行发送处理;主站则根据这些数据类型和结构的定义,对应用层的数据进行相应的解码,从而获取从站的测量数据。 M-Bus定义了多种数据类型,包括无符号BCD整型、二进制整型、无符号二进制整型、布尔型、32bit复合型(表示测量类型、物理单位等)、32bit日期时间型、16bit日期型、浮点型。在这些数据类型的基础上,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采取电平特征传输数字信号,下行电压,上行电流。 总线两端稳定电压:Vmark时表示逻辑Bit1,Vspace= Vmark-12V表示逻辑Bit0。主站通过Vmark与V Vspace的电压跳变脉冲向从站发送帧数据。 总线稳定电流=Imark*从站个数,表示逻辑Bit1。设总线上只有一个从站,那么总线稳定电流= Imark,则Ispace=Imark+(1120)mA,表示逻辑0.即从站从总线上吃掉1120mA电流发送Bit0。从站发送高度为(11~20)mA的电流脉冲向主站发送帧数据。
M-Bus总线为单工,异步的通信这是因为如上图所示,从站向主站发送数据的时候,会引起总线上的电压被拉低。所以当从站发送数据的时候,主站无法发送数据。
主站的发送电路设计主要考虑发送Bit0与Bit1的电压变化量要大于等于12V;电路驱动几十上百个智能表不能影响发送电压低于12V。 出于这两个问题的考虑,用两个直流稳压器应该可以满足满足要求,下面左边是发送电路的框图,右边是发送电路原理图。
接口电路接收部分的主要难点是不要误读。在一个稳压电路中要读取它的电流,就象是在测它的纹波一样,串一个取样电阻是需要的。首先稳压电路本身纹波很小,取样电阻大了影响发送时的稳压效果,小了又取不出可用值。其实是要排除负载的变化对接收波形的影响,左边为主站接收电路框图,右边为电路原理图。
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或者电池进行供电。
因为M-BUS在布线上具有得天独厚的优势(两根线),很多现场总线的应用场景都把这种技术作为考虑的方案之一,但是因为其对单个从站在功耗上的严苛要求,以及对整个总线上设备总量的限制和布线长度的要求,使得其针对各种仪表信息的数据采集非常适用,但是对其余的应用场景不适用。 现在市面上迭代了能够拉取更高静态电流的从站模块以应对那种带有电动阀的仪表,甚至有成对的主从芯片来提供M-BUS的物理层实现,不用再搭建主站的收发电路,且从站能有更高的功耗。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181677.html原文链接:https://javaforall.cn