M-BUS协议基础知识
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所示。 虚线左边的时间段是主站到从站的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.2 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个字节的用户数据区,各字段的意义如下。
M-BUS协议基础知 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)