基于软件设计的HART协议物理层规范在前面的文章中,我们已经简单地介绍过了。通过对OSI模型的了解,以及HART协议的相关知识,我们知道,在数据链路层的规范还是比较复杂的。现在就来具体看一下吧。
HART协议数据链路层规范
1设备类型
通讯协议能确认三种不同类型的设备,最普遍与最基本的类型是从设备,接收与提供带有测量值或其他数据的数字信号,除了有特别要求之外,即该设备在主从关系中总是作为从动装置起作用。从设备如现场仪表,压力变送器,温度变送器,执行器等。
第二种类型的设备是burst模式设备,这种设备在固定的时间间隔发出带有测量值或其他数据的数字信号响应,而不包含被特别请求的数据,即该设备通常是作为一个独立广播的设备。
第三种类型的设备是主设备,主设备负责初始化、控制和终止与从设备或burst模式设备的交互。将主设备分为一级主设备和二级主设备是为了在HART通讯链路上同时使用这两种主设备,一级主设备和二级主设备除了使它们区分开的时限需要定制以外使用相同的协议规则。一级主设备通常指上位PC机,二级主设备指HART设备的手操器。
2 帧格式
根据每一帧发送者的不同可分为:主-从型帧,从-主型帧。根据帧的长度可分为:长型帧,短型帧。注:每格表示1个字节,每字节中***和***位的顺序为从左向右。
①先导字符(preambles)
所有从主设备、从设备或burst模式设备发送的帧都有特定个数的十六进制“FF”字符放在前面,这些字符被称为一个帧的先导字符。某些物理层协议需要它们去作用调制解调器的电路。定界符前的先导字符可能有多个,但协议规定只有两个连续的先导符后的定界符才标志着一个帧的开始。
②定界符 (delimiter)
此字段的低3位表示了不同的帧类型;***位标志着该帧是长帧还是短帧;其余位保留。
③编址
每一个HART帧都需要地址字段来标明其源和目的地址。
(1)长帧格式地址:实际上是每一台从设备的唯一标识符,除了***两位外的低38位即标识了此唯一标识符。***位指明与此帧相关的主设备。一级主设备为“1”,二级主设备为“0”。从设备必须将该域不变的返回。次高位指明从设备是否处于BURST模式,是则此位为“1”,否则为“0”。
(2)短帧格式地址:只有0号短帧命令支持短帧地址。该地址指明了主机与现场设备之间的网络地址,在链路初始化时短帧0号命令返回所有与指定网络相连接的现场设备的唯一标识符,即这些设备所处网络端口地址。
④命令域
只有一个字节,指明该帧所封装的HART命令号。从设备返回的命令字节值应与主设备所发送的帧中的命令号相同。
⑤数据字节记数域
只有一个字节,指明此字节与一帧***的校验字节之间的数据字节个数。
⑥数据域
在主-从长型帧中,此域存放了用户对设备的请求数据。即为了得到从设备的返回值而必须对从设备进行设定的值。
在从-主长型帧中,此域存放了现场设备响应主设备(上位机)的请求,返回的数据。
⑦校验字节
此字节用来存放对帧中的所有字节(不含此字节)进行径向(Longitudinal Parity)校验的结果。HART协议通信中,在两个维数上对传送的信息进行校验。
(1)径向校验值为所有字节依次按位异或后所得的结果;
(2)垂直校验(Vertical Parity)值为在通信过程中硬件自动对每个字节的所有位进行奇偶校验后产生的结果。即前面提到的HART协议物理层规范中规定的数据流格式中的奇校验位。
⑧响应码字段
该字段包含2个字节,只在从-主长型帧中出现。它指明了HART通信的状态。若响应码***个字节的***位(BIT7)为1,说明主、从设备之间的通信出现了错误,该字节的其余各位给出了通信错误的总结信息。BIT7为0时,该字节的其余各位给出了现场设备对该帧所对应的命令的响应情况的总结信息。
响应码的第2个字节指出了现场设备的工作状态。此字节只在响应码***字节的BIT7为0,即没有通信错误时有效。