图1-3 MBus总线上的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.2 MBus数据链路层 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 单字节帧 表1-4 定长短帧 | | | | 0 | 10H | 1 | 1 | 0 | C字段 | P | 1 | 0 | A字段 | P | 1 | 0 | CS字段 | P | 1 | | | | |
表1-5 变长长帧 | | | | 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 | | | | |
单字节帧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字段设定了用户数据区的基本参数,如字节顺序、数据结构等。 MBus的通信完全由主站控制,主从站之间按以下两种非平衡式传输规则交换报文帧: 1. Send/Confirm: SND-NKE<>E5H,主站发送SND-NKE,被呼叫从站以E5H单字节帧确认,用于通信开始或者通信中断后的初始化。 SND-UD<>E5H,主站发送SND-UD,被呼叫从站以E5H单字节帧确认,用于主站向从站传输数据或者控制信息,如设定波特率等。 2. Request/Respond: REQ_UD2<> RSP_UD,主站发送REQ_UD2,被呼叫从站以RSP_UD回复,用于主站采集从站的测量数据,如热量、流量等,这些数据位于RSP_UD的用户数据区。 1.2.3 MBus应用层 MBus应用层定义了测量记录的数据类型和数据结构。从站利用这些数据类型和结构将测量记录进行编码处理,并封装在长帧的用户数据区内发送;主站则根据这些数据类型和结构的定义,对长帧的用户数据区进行相应的解码,从而获取从站的测量数据。因此用户数据区的数据类型和数据结构的定义对于MBus的应用具有重要的意义,MBus在这方面针对消耗量计量仪表的测量数据进行了专门的设计。 MBus定义了多种数据类型,包括无符号BCD整型、二进制整型、无符号二进制整型、布尔型、32bit复合型(表示测量类型、物理单位等)、32bit日期时间型、16bit日期型、浮点型。在这些数据类型的基础上,MBus定义了两种数据结构:固定数据结构和可变数据结构。长帧的用户数据区实际上就是一个用固定数据结构或可变数据结构表示的数据块。 1. 固定数据结构(Fixed Data Structure): 分为6个字段,按顺序分别是:从站标识号码/访问次数/从站状态/测量量类型和单位/计数器1数据/计数器2数据。这种数据结构只能传输两个计数器的数据,且对测量记录只能进行固定长度的编码,因此适用于从站只有一两个测量量的场合。 2. 可变数据结构(Variable Data Structure): 可变数据结构分为4个部分,按顺序分别是:固定数据头/数据记录块(DRB)/厂商数据头/厂商自定义数据块。固定数据头同固定数据结构的前3个字段的意义基本类似;数据记录块由若干子数据块组成,子数据块数目以及每个子数据块的类型、长度、意义都是可变的,每个子数据块保存一个测量数据;厂商数据头是一个标识符(0FH或者1FH),表明自此以后是厂商自定义数据块;厂商自定义数据块使得在主从站间可以按照自定义的规则交换数据,不受标准的约束,进一步增加了使用的灵活性。可变数据结构能充分满足远程读数的需要,适用于从站有多种测量量的场合。 对于热力站监控系统来说,可变数据结构中的数据记录块保存的各个子数据块是最重要的,因为它们保存了热量表的测量数据。每个字数据块由三部分组成,按顺序分别是:数据信息块(DIB)/量值信息块(VIB)/数据编码块(DCB)。数据信息块由一个或多个字节表示,说明测量数据的编码类型(二进制还是BCD以及数据编码块的位数)、数据类别(瞬时值还是平均值等);量值信息块也是由一个或多个字节表示,说明测量值的量纲和量级;数据编码块保存该测量数值的编码。 应用层除了定义测量记录类型和数据结构外还有其它用途。实际上最新的MBus标准中通过规定许多新的CI字段控制字节,并结合用户数据区存储的信息,为用户提供了许多新的功能。随着MBus协议的不断发展,应用层功能将不断扩展和完善,包括寻址、设定参数、报警以及更为灵活的抄表方式等。 1.2.4 MBus从站接口芯片TSS721A 热力站监控系统中,MBus从站(Slave)是各公司生产的热量表,其核心部分是一块高度集成的控制芯片,它可以完成流量、温度等物理量的测量,并可以进行热量值的积分计算。热量表为了便于远程抄读,一般都提供了MBus接口,热量表的核心控制芯片也提供了对MBus协议的支持。热量表MBus接口电路广泛使用了TSS721A收发芯片。 TSS721A接口芯片是MBus协议组织与TI公司合作开发的MBus协议从站专用接口芯片,遵循EN1434-3标准。借助TI公司的强大技术力量,TSS721A接口芯片实现了MBus协议对物理层的各项规定要求,有力地推动了MBus协议的推广。根据MBus总线物理层的相关定义,TSS721A从站接口芯片具备检测总线电压(接收数据)和调制总线电流(发送数据)的功能,关于TSS721A的通信电路原理可以参阅有关文献。TSS721A除了MBus通信功能外,还对MBus总线远程供电和电池供电提供了很好的支持。
|