注1:解码器还能判断数据位数是否合理。
注2:由于解码器的信任线和观察线存在不同的检测标准,所以它们将对同一数据帧进行不同的解释。
2)帧起始分界符
主帧应一个起始分界符作为帧头,这个分界符称为主起始分界符,它的序列为:{起 始位,“NH”,“\”,“0”,“NH”,“NL”,“0”,“0”,“0”}
图5-9 主起始分界符
从帧也应当以一个起始分界符作为帧头,这个分界符称为从起始分界符,它的序列为:{起始位,“1”,“1”,“1”,“NL”,“NH”,“1”,“NL”,“NH”}
图5-10 从起始分界符
3)帧终止分界符
在帧的最后一位单元后,发送器将发送一个终止分界符,依据介质的不同,将: a)当介质为ESD时,添加一个“NL”编码,并停止发送。见3.2.4.8.4。
b)当介质为EMD时,在“NL”编码之后添加一个―NH‖编码,并停止发送。见3.2.5.9.4。 c)当介质为OGF时,添加一个“NL”编码,并停止发送。 注:终止分界符规则由介质的类型决定。
图5-11 EMD介质的终止分界符
当RxS信号维持低电平的时间长于0,75 BT + 0,125μs时,解码器将认为当前为终止分界符。
解码器在帧终止后至检测到下一个起始分界符之前将忽略任何脉冲信号。 4)主帧格式 一个主帧应:
a)以主起始分界符开始; b)其后为16位帧数据; c)接着为8位校验序列。
图5-12 主帧格式
主帧的内容:16位字中最高有效前四位应为F_code,次有效的后12位应表示F_code所指定的地址或参数。因此,主帧有固定格式为:
34bit(9bit主帧分界符+16bit数据位+8bit校验位+1bit终止分界符) 5)从帧格式 一个从帧应:
a)以从起始分界符开始;
b)接着为16、32、64、128或256位帧数据;
c)在每64 个数据位后包含一个8 位的校验序列或当帧数据只有16 或32 位时将一个8位的校验序列附加其后。
图5-13 从帧格式
从帧包含了9bit从帧分界符,数据段长度跟主帧功能码有关,其中每64bit后面附加8bit的校验码,长的从帧最多会使用四个64+8bit数据段。
6)校验序列
帧数据应用一个或多个8位校验序列来保护。数据的内容应处理成64位的代码字(对小一些的数据用16或32位),不包括起妈分界符和终止分界符。这个代码字和随后的校验序列应作为最高有效的数据位首先发送。校验序列按被其保护的16,32或64位数据的循环冗余校验(CRC)计算。校验序列应按如下的多项式公式计算:G(x)=x7+x6+x5+x2+1。
7位余数的结果应用一个偶校验位扩展,所有的8位数据取反发送。
CRC循环冗余校验编码:是数据通信领域中常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。在检错码中,奇偶校验码是最简单、最常用的一种编码,这种编码无论数据多少都采用一位冗余码,保证码组中“1”的个数是奇数或偶数。奇偶校验码只能发现奇数个错,不能发现偶数个错,因此,奇偶校验一般只能用于通信要求较低的场合,在计算机机通信中还广泛应用一种检错效率高且便于实现的循环冗余检测码CRC(Cyclic Redundancy Code)。
CRC码又称多项式码,编码对将信息码组中的全部k位数据当作一个从Xk-1到X0的二进制多项式系统序列,对应的多项式称为码多项式或信息多项式,例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码为101111。在发送数据前,发收双方预先约定好一个处理多项式,称为生成多项式,生成多项式通常是多种标准多项式中的一种。假设所选的生成多项式是一个r阶的多项式,发送方将信息码组中的k位数据后添r
个0,相应的码多项式也就变成一个(k+r-1)阶多项式,将这一多项式与生成多项式相除,在这种运算过程中,二进制多项式的乘除运算与普通代数多项式的乘除运算一样,加减运算相当于对应系数的异或运算,相除求得一个(r-1)阶的余数多项式(最高次项Xr-1的系统可以为零);将余数多项式的系数作为冗余数据加到原来的k位数据后,构成一个(k+r)位的码组,发送方将这一码组数据发出。接收方接收到数据后,将数据作为多项式系统形成一个(k+r-1)阶的多项式,并用这一多项式与生成多项式相除,如果余数多项式的系数均为0,则说明传输正确;否则,认为传输出错。
举例:16位信息 0111 1110 1100 0011,G(x)=x7+x6+x5+x2+1,
r=7: 0111 1110 1100 0011 000 0000 除以G(x)= x7+x6+x5+x2+1:1110 0101 余数为 001 0001
余数用偶校验位扩展 001 00010 发送的8位取反校验序列 CS=1101 1101
图5-14 CRC计算过程
7)功能代码(F_code)
主帧中的4位F_code称为功能代码,它不仅区分后面的地址是逻辑地址还是设备地址,还对应不同的操作。
表5-3 F_code功能代码
主设备帧 F_code 0 1 2 3 4 5 6 7 8 设备 保留 保留 保留 主设备权转移 9 所有设备 一般事件提议的主设备 一个或者多16 16 地址 逻辑 请求 源设备 从设备帧 位数(bit) 响应数据 16 32 64 128 256 目的设备 过程数据 预设为源的单个设备 过程数据 定义为宿的(由应用决定) 设备 主设备权转移 主设备 事件标识 主设备 (参数) 个设备 10 11 12 13 设备 设备 设备 设备组 保留 保留 256 16 消息数据 单一设备 组事件 一个或者多个设备 消息数据 选定的设备 事件标识 主设备 14 设备 单一事件 单一设备 16 事件标识符 主设备 15 设备 设备状态 单一设备 16 设备状态 主设备或监督设备 MVB总线中总线管理器又称总线主设备,它的一个重要的功能就是负责通信的发起,总线主发起一个主帧作为数据请求,相应的从设备发送从帧进行真正的数据传输。这样的主帧加上响应该主帧的从帖就组成了MVB的报文。MVB的三种数据类型的报文组成如下: