MBUS总线数据链路层协议
数据链路层以国际电工委员会IEC870(遥感装置和系统传输协议)为基础,规定了MBUS的信号方式、字节表示、帧格式以及从站的链接过程等。
数据链路层以帧为单位传输信息。数据链路层的帧分为单字节帧、定长短帧和边长长帧共3种。接下来以长帧为例进行理解。
每一帧有前导字节、帧起始符、仪表类型、从站地址域、控制码、数据长度、数据域、帧信息纵向校验码及帧结束符等9个域组成。每个域由若干字节组成。每个字节含有8位二进制码,传输时加上1个起始位(0)、1个奇偶校验位和一个停止位,共11位。先传地位后传高位。
由主站或从站发出的所有帧前面都有一串规定数目(一般是2~4个字节)的16进制的字符“FE”,这些字符称为帧的前导字节。前导字节本质上是一种物理层的要求,经常用来使接收器适应和同步。
帧起始符为16进制数0X68,表示一帧的开始。
仪表类型是指参与通信的从站属于哪种类型的仪表,用于不用范围内的16进制数表示不同类型的仪表,通常10H~19H表示水表;20H~29H表示热量表;30H~39H表示燃气表。
地址域由7个字节组成(A0A1A2A3A4A5A6),每一个字节为二位BCD码格式。地址长度为14位十进制数。地地址在前,搞地址在后,其中A6A5为厂商代码。当某一字节以0XAA寻址时,忽略该字节地址当地址为AAAAAAAAAAAAAAH时,为广播地址。
控制码用来传输控制信息,数据D0D1D2D3D4D5D6D7。D0~D5为控制码;D6从站异常标志。0表示从站正常应答;1表示从站对异常信息应答;D7传送方向。0表示有主站发出控制帧;1表示有从战发出应答帧。D0~D5的取值不同决定的不同的功能,具体如下
◎000000:保留;
◎000100:读计量数据;
◎001100:更改通信速率;
◎010010:写机电同步数据;
◎010100:写时域;
◎010101:写域门控制;
◎011010:设定密钥;
◎1XXXXX:厂商自定义;
数据长度字段包含一个表示字节数的整数,用16进制表示,是数据长度字段和校验字段之间(不包括该两个字段)的数据字节的计数值。读数据时数据长度小于或等于0X64;写数据时数据长度小于或等于0X32。数据长度等于零表示无数据域。
数据传输时,发送方按字节进行加0X33处理,接收方按字节进行减0X33处理。
帧校验码等于从帧起始符开始到校验码之前的所有字节按二进制算术累加的和。不计超过0XFF的溢出值。
文章评论(0条评论)
登录后参与讨论