微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > M-BUS协议基础知识

M-BUS协议基础知识

时间:12-15 来源:互联网 点击:

Imark+11mA≤Ispace≤Imark+20mA

从站到主站

主站向从站发送逻辑“1”(MARK)时,总线电压为Vmark(≤42V),发送逻辑“0”(SPACE)时,电压下降10V以上,降到Vspace(≥12V);从站向主站发送逻辑“1”时,从站所取电流为Imark(≤1.5mA),发送逻辑“0”时,从站的MBus接口会在Imark上加上脉冲电流11-20mA,形成Ispace。

MBus协议规定总线处于空闲状态时用逻辑“1”表示,即总线电压维持在Vmark,而每个从站取电流Imark≈1.5mA,即两线制总线上的总电流等于Imark*从站总数。这样无论总线处于空闲状态还是数据传输状态,总线电压不低于Vspace,每个从站所取电流不小于Imark,这个电流就可用作从站电源。可见在MBus的正常运行状态下,总线可以持续不断地既传信号又供电源,使终端仪表所用电池成为备用电源,减少了仪表定期维护、更换电池等工作量,仪表的安装位置也可以比较随意。MBus总线上的bit流传输过程如图1-3所示。


图1-3MBus总线上的bit流传输

虚线左边的时间段是主站到从站的bit流传输,总线电压在Vspace和Vmark间切换,从站电流维持Imark不变;虚线右边的时间段是从到主的bit流传输,从站所取电流在Imark和Ispace间切换,总线电压基本维持Vmark不变,但由于MBus电源输出阻抗的存在,使得电流增大时总线电压略有减小。这表明数据传输过程中任意时刻MBus总线上要么传输电压信号,要么传输电流信号,所以MBus只能工作在主从半双工方式下。

主站通过检测总线上是否出现11-20mA脉冲电流确定接收“0”还是“1”;从站接收数据时,由于总线绝对电压会随着距离和总线电流变化而变化,故通过检测总线电压与动态参考电压是否相差10V以上来确定接收“0”还是“1”。TI公司的MBus接口芯片TSS721A采用的就是这种动态电平识别逻辑,它的动态参考电压由从站接入位置处的Vmark对芯片内的一个电容充电获得。该电容充放电电流之比约为40,在波特率大于300的情况下只要在传输的bit流中每11位至少出现一个“1”(Vmark),就可以保证动态参考电压始终维持在Vmark附近。

1.2.2MBus数据链路层

MBus数据链路层以国际电工委员会IEC870-5(遥控装置和系统传输协议)为基础,规定了MBus的信号传输方式、字节表示、帧格式以及主从站的连接过程等。

根据物理层的特点,MBus采用半双工、异步串行信号传输方式,波特率为300~9600。信号格式采用起止式异步协议(IEC870-5-1),以字节为单位进行传输,先传低位bit(LSB)再传高位bit(MSB)。总线上表示一个字节的11位bit流按传输顺序是:起始位/8bit字节/奇偶校验位/停止位。由于MBus的空闲位(Vmark,Imark)为逻辑“1”,所以起始位定义为逻辑“0”,而停止位定义为逻辑“1”。这样,一个字节的传输过程中包括起始、数据、校验、停止共11比特,其中至少有一个逻辑“1”,满足MBus从站的电平要求。

MBus采用FT1.2异步式字节传输帧格式(IEC870-5-2),由多个字节组成,传输时字节间不允许停顿。FT1.2定义了三种帧格式,分别是单字节帧(表1-3)、定长短帧(表1-4)和变长长帧(表1-5)。其中S:表示起始位;D:未加说明均表示一个字节;P:表示奇偶校验位;E:表示停止位;发送顺序从左至右,从上至下。


表1-3单字节帧

S

D

P

E

0

E5H

1

1

表1-4定长短帧

S

D

P

E

0

10H

1

1

0

C字段

P

1

0

A字段

P

1

0

CS字段

P

1

0

16H

1

1

表1-5变长长帧

S

D

P

E

0

68H

1

1

0

L字段

P

1

0

L字段

P

1

0

68H

1

1

0

C字段

P

1

0

A字段

P

1

0

CI字段

P

1

0

用户数据区0~252字节

P

1

0

CS字段

P

1

0

16H

1

1


单字节帧E5H用于接收确认,定长短帧用于主站向从站发送指令,变长长帧用于主从站间的数据交换。后两种格式除了起始字节(如10H,68H)、终止字节(16H)外,还定义了C、A、L、CI和CS字段,变长长帧还封装了一个长达252个字节的用户数据区,各字段的意义如下。

C:控制字段或者叫功能字段,定义了帧的功能、数据流向,保证帧的正确发送和接收。根据C字段的不同,IEC870-5-2将报文帧命名为不同的功能代码,MBus常用的功能代码有SND_NKE(初始化从站)、SND_UD(向从站发送数据)、REQ_UD2(请求从站发送数据)和RSP_UD(向主站发送数据)。

A:地址字段,范围0~255,表示接收数据或发送数据的从站地址。

L:长度字段,记录变长长帧的长度信息。

CS:校验和字段,通过对前面几个字段求和来检验报文帧是否出现传输错误。

CI:控制信息字段,主要有两方面的功能,一方面是完成主对从的一些配置功能,如设定波特率、从站地址等;另一方面在从站向主站发送测量数据时,CI字段设定了用户数据区的基本参数,如字节顺序、数据结构等。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top