HART协议的消息结构

网络 网络管理
下面我们对HART协议的消息结构进行了细致地讲解。首先我们需要了解一下HART协议的版本结构,之后对于它的帧结构进行了剖析。

对于HART协议的层次结构我们在前面介绍了物理层和数据链路层。这次的文章中,我们来对它的消息结构进行一下具体的描述。希望大家都能够了解这方面的知识。并且掌握它的帧结构。

消息结构

如下所示,一条消息包括源地址、目的地址和一个校验位。每一个应答消息中包括现场设备状态,用于确保持续通讯的顺畅进行。数据位可有可无,视具体情况而定。一般每秒种可以传输2~3条消息。

PREAMBLE  START    ADDRCOM    BCNT    STATUS  DATA    PARITY
序文    定界符    地址    命令号  数据长度 响应码  数据字节 奇偶校验

HART协议5.0版本以前版本的设备一般采用“短结构”,单一的现场设备如果只利用4~20 mA电流信号进行测量时,从设备的地址都是0;否则,对于多设备而言,从设备的地址是从1~15,这种短结构的地址采用“随选”的方法,随机分配1~15中的一个。HART协议5.0版本推出了“长结构”,这种格式的从设备地址具有独一无二性,如同每个网卡中物理地址一样,全世界范围内都没有重复,一般占5个地址字节中的38位。这38位地址信息包含了生产厂家的代码、设备型号码和设备识别码。这种格式减少了误传输和误接收的可能性。现在大多数主机设备既能支持长结构又兼容短结构,当从机的应答信号中没有“唯一”标识码时,HART协议5.0版本及其以上的版本提供的0号命令,就可以用于短帧中的设备地址识别。也就是说,主机将根据应答信号中是否具有“惟一”标识码来决定结构格式为“长”还是“短”。 

一般消息帧的组成,其中:

(1)PREAMBLE导言字节,一般是5~20个FF十六进制字节。他实际上是同步信号,各通讯设备可以据此略做调整,保证信息的同步。在开始通讯的时候,使用的是20个FF导言,从机应答0信号时将告之主机他“希望”接收几个字节的导言,另外主机也可以用59号命令告诉从机应答时应用几位导言。

(2)START起始字节,他将告之使用的结构为“长”还是“短”、消息源、是否是“突发”模式消息。主机到从机为短结构时,起始位为02,长帧时为82。从机到主机的短结构值为06,长结构值为86。而为“突发”模式的短结构值为01,长结构为81。一般设备进行通讯接收到2个FF字节后,就将侦听起始位。

(3)ADDR地址字节,他包含了主机地址和从机地址,如前所述,短结构中占1字节,长结构中占5字节。无论长结构还是短结构,因为HART协议中允许2个主机存在,所以我们用首字节的最高位来进行区分,值为1表示第一主机地址,第二主机用0表示。“突发”模式是特例,0,1值将交替出现,也就是说,在该模式下,赋予2个主机的机会均等。次高位为1表示为“突发”模式,短结构用首字节的0~4位表示值为0~15的从机地址,第5,6位赋0;而长结构用后6位表示从机的生产厂商的代码,第2个字节表示从机设备型号代码,后3~5个字节表示从机的设备序列号,构成“唯一”标志码。

 

MA
主机地址

BM
突发模式

0

0

SA

SA

SA

SA

 

 

 

 短帧地址结构

另外,长结构的低38位如果都是0的话表示的是广播地址,即消息发送给所有的设备。

(4)COM命令字节,他的范围为253个,用HEX的0~FD表示。31,127,254,255为预留值。

(5)BCNT数据总长度,他的值表示的是BCNT下一个字节到最后(不包括校验字节)的字节数。接收设备用他可以鉴别出校验字节,也可以知道消息的结束。因为规定数据最多为25字节,所以他的值是从0~27。

(6)STATUS状态字节,他也叫做“响应码”,顾名思义,他只存在于从机响应主机消息的时候,用2字节表示。他将报告通讯中的错误、接收命令的状态(如:设备忙、无法识别命令等)和从机的操作状态。

如果我们在通讯过程中发现了错误,首字节的最高位(第7位)将置1,其余的7位将汇报出错误的细节,而第2个字节全为0。否则,当首字节的最高位为0时,表示通讯正常,其余的7位表示命令响应情况,第2个字节表示场设备状态的信息。

UART发现的通讯错误一般有:奇偶校验、溢出和结构错误等。命令响应码可以有128个,表示错误和警告,他们可以是单一的意义,也可以有多种意义,我们通过特殊命令进行定义、规定。现场设备状态信息用来表示故障和非正常操作模式。

(7)在HART协议的帧结构中,DATA数据字节,首先我想说明的是并非所有的命令和响应都包含数据字节,他最多不超过25字节(随着通讯速度的提高,正在要求放宽这一标准)。数据的形式可以是无符号的整数(可以是8,16,24,32 b),浮点数(用IEEE754单精浮点格式)或ASCII字符串,还有预先制定的单位数据列表。具体的数据个数根据不同的命令而定。

(8)CHK奇偶校验,方式是纵向奇偶校验,从起始字节开始到奇偶校验前一个字节为止。另外,每一个字节都有1位的校验位,这两者的结合可以检测出3位的突发错误。

责任编辑:佟健 来源: 互联网
相关推荐

2010-07-09 09:37:00

HART协议

2010-07-09 10:42:38

HART协议

2010-07-13 13:50:44

HART协议

2010-07-06 16:05:41

HART协议

2010-07-08 12:34:46

HART协议

2010-07-13 14:49:28

HART协议

2010-07-08 13:26:45

HART协议

2010-07-06 16:02:30

HART协议

2010-07-13 09:47:22

HART协议

2010-06-28 21:27:55

HART协议

2010-07-09 09:55:06

HART协议

2010-07-13 10:33:38

HART协议

2010-06-24 13:42:58

HART协议

2010-07-06 16:13:13

HART协议

2010-07-09 13:31:23

HART协议

2010-07-05 11:32:54

HART协议

2010-07-08 15:36:05

HART协议

2010-07-06 17:52:54

HART通讯协议

2010-07-13 13:37:36

HART协议

2010-07-08 12:53:21

HART协议
点赞
收藏

51CTO技术栈公众号