HART命令帧格式_第1页
HART命令帧格式_第2页
HART命令帧格式_第3页
HART命令帧格式_第4页
HART命令帧格式_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、前段时间做了一部分有线HART的解析,整理了一下基本的帧结构,在此做个笔记HART帧结构:cpp view plain copy1. |-|  2. | PREAMBLE5.20 | START | ADDR | COM | BCNT | STATUS | DATA | CHK |  3. |-|  4.   5.   

2、;6. FF FF FF FF FF  82  A6 06 B2 BF 01  0F  00  21   1. PREAMBLE引导码, 一般是5.20个0xFF, 他是一组同步传输的同步信号, 用以保证信息的同步. 在开始通讯的时候,使用的是20个FF引导码, 从机应答0信号时将告之主机他“希望”接收几个字节的引导码, 另外主机也可以用59号命令告诉从机应答时应用几位引导码.

3、2.  START(1Byte)起始字节, 说明结构为“长”还是“短”, 消息源, 是否是“突发”模式消息.cpp view plain copy1. 0x02:   主机到从机的短帧  2. 0x82:   主机到从机的长帧  3. 0x06:   从机到主机的短帧  4. 0x86:   从机到主机的长帧  5. 0x01:   突发

4、模式的短帧  6. 0x81:   突发模式的长帧   一般设备进行通讯接收到2个FF字节后, 就表示数据位的接收已经同步, 就将侦听起始位.3. ADDR(1/5Bytes)地址字节, 他包含了主机地址和从机地址, 短结构中占1字节, 长结构中占5字节.不论长短帧结构, HART协议中允许2个主机存在, 所以我们用首字节的最高位来进行区分, 值为1表示第一主机地址, 第二主机用0表示.“突发”模式是特例, 0,1值将交替出现, 也就是说, 在该模式下, 赋予2个主机的机会均等. 次高位为1表示为“突发”模式, 短结构用首字

5、节的04位表示值为015的从机地址, 第5,6位赋0.长结构用后6位表示从机的生产厂商的代码, 第2个字节表示从机设备型号代码,后35个字节表示从机的设备序列号, 构成“唯一”标志码.MA: 主机地址BM: 突发模式0 0SA 从 SA机SA 地 SA 址短 帧 地 址 结 构 另外,长结构的低38位如果都是0的话表示的是广播地址,即消息发送给所有的设备。4. COM(1Byte)命令字节, 范围为253个, 用HEX的0FD表示. 31,127,254,255为预留值。5. BCNT(1Byte)数据总长度,他的值表示的是BCNT下一个字节到最后(不包括校验字节)的字节数.接收设备用他可以鉴

6、别出校验字节, 也可以知道消息的结束.因为规定数据最多为25字节, 所以他的值是从027。6. STATUS(2Bytes)状态字节, 他也叫做“响应码”,顾名思义, 他只存在于从机响应主机消息的时候, 用2字节表示.他将报告通讯中的错误接收命令的状态(如:设备忙、无法识别命令等)和从机的操作状态。如果我们在通讯过程中发现了错误, 首字节的最高位(第7位)将置1,其余的7位将汇报出错误的细节,而第2个字节全为0. 否则,当首字节的最高位为0时,表示通讯正常,其余的7位表示命令响应情况,第2个字节表示场设备状态的信息。UART发现的通讯错误一般有:奇偶校验、溢出和结构错误等。命令响应码

7、可以有128个, 表示错误和警告, 他们可以是单一的意义, 也可以有多种意义,我们通过特殊命令进行定义、规定.现场设备状态信息用来表示故障和非正常操作模式。7. DATA(BCNT-2)数据字节,首先我想说明的是并非所有的命令和响应都包含数据字节,他最多不超过25字节(随着通讯速度的提高,正在要求放宽这一标准)。数据的形式可以是无符号的整数(可以是8,16,24,32 b),浮点数(用IEEE754单精浮点格式)或ASCII字符串,还有预先制定的单位数据列表。具体的数据个数根据不同的命令而定。8. CHK(1Byte)奇偶校验,方式是纵向奇偶校验,从起始字节开始到奇偶校验前一个字节为止。另外,

8、每一个字节都有1位的校验位,这两者的结合可以检测出3位的突发错误。下面是几组实际通讯中抓包的示例: FF FF FF FF FF 02 80 / addr00 00 82 FF FF FF FF FF FF 06 80 00 0E 00 40 FE 26 19 06 05 05 02 A0 00 91 F4 A5 FE 26 19 06 05 05 02 A0 00 91 F4 A5 6D 看实例了解HART协议消息结构例1:主机到从机FFFFF

9、FFFFF82A606BC614E0100B0上面是主机到从机发送的一条消息。前5个字节值都为FF,显然他是导言字节。接着的82起始字节,表示主机到从机发出的长结构的消息。后5个字节 “A6,06,BC,61,4E”是地址字节化为二进制表示如下:A606BC614E1010 01100000 01101011 11000110 00010100 1110可见首字节A6的最高位为1表示主机,次高位为0表示非突发模式,后面的38 b表示设备的惟一标号:“100110”是生产厂家代码,值为38,是Rosemount公司的代码;后一字节06是设备型号代码,06代表的型号是3051C;后面的3个字节是设

10、备识别号,本例中的值为12345678;再接下来的01是命令字节,表示1号命令,即读取PV值后面的00是表示数据的长度;本例中无数据,值为0;最后是校验字节B0。例2:从机到主机FF FF FF FF FF86A6 06 BC 61 4E010700 0006 40 B0 00 0045HART协议的从机到主机的例子,表示的是从机到主机的一条消息。本例大部分与例1相似,不同的是数据字节不再为0,其中的06表示单位PSI;后面的4个字节是用浮点数表示的值, 为55。并

11、且由于本例是由从机到主机的应答消息,所以存在着状态位,即本例中的00 00表示OK。例3:突发模式FF FF FF FF FF8153 03 04 E6 D7031A00 6041 3F A0 002741 3F A0 003942 47 60 0006BF 06 60 003941 95 0000D4上面是突发模式HART协议发出的一条消息。第1个字节81表示突发的长结构模式,与前例中相似的地方我们不再介绍。注意到状态字节“00 60”后的字节“41 3FA000”,他表示的是当前的电流值,计算后是11976 6;后面的27表示单位mA,像后面的39表示“”一样。数据字节中的“42 47 6

12、0 00”,“BF06 60 00”,“41 95 0000”分别表示“SV”,“TV”,“FV”表示方法与PV相同。经过解释后的消息可以表示为:“LBTXSRdAllPv0260060119766mA119766498438psi052490218625D4”。-华丽的分割线-FF FF FF FF FF FF 02 80 00 00 82以上就是一段单片机首先要跟设备发送的命令,接下来我们来解析一下 FF FF FF FF FF 02 80 00 00 82 先导码 短指令 地址0 命令0 0个数据 异或校验位第一条指令是所有支持hart协议的设备都要懂得 先

13、导码:就是一段命令的开始,一般都是5个FF 指令码:此处02表示的是告诉设备我现在发送过去的是一条短指令 当然还有其他的指令结构: 主机到从机为短结构时,起始位为02,长帧时为82。 从机到主机的短结构值为06,长结构值为86 “突发”模式的短结构值为01,长结构为81 · 1· 2· 3· 4地址码:包含了主机地址和从机地址 短指令时:地址码由一个字节表示(如80),其结构为 一般我们不用到突发模式,这里的80表示的就是(主机1-设备地址(0) 长指令时:地址码由5个字节表示,其结构为 命令码

14、:如00表示的是命令0,这里的命令设备能够识别从而做出相应的响应 数据个数码:表示的是再次之后的第一个数最后一个(不包括校验位)的个数,这一位很重要,在编程的时候,我们经常用这个来调用数值 响应吗:只存在于从机主机的过程中(从机对主机的响应) 校验码:此码主要是用来确保传输没有问题用的,采用的是异或校验(自己可以去百度一下异或校验的意思)(这一位都是根据前面的数值锁确定的) 各种码都讲了一遍,现在我贴上几张自己试验获得的码,大家可以对着分析一下: FF FF FF FF FF 82 A6 06 63 56 BA 01 00 AC FF

15、 FF FF FF FF 82 A6 06 63 56 BA 02 00 AF HART协议1.1      简介现代工业生产中存在着多种不同的主机和现场设备,要想很好地使用他们,完善的通讯协议是必须的。HART协议最初是由美国Rosemount公司开发,已应用了多年。HART协议使用FSK技术,在420mA信号过程量上叠加一个频率信号,成功地把模拟信号和数字信号双向同时通讯,而不互相干扰。HART协议参照了国际标准化组织的开放性互连模型,使用OSI标准的物理层、数据链路层、应用层。HART协议规定了传输的物理形式、消息结构

16、、数据格式和一系列操作命令,是一种主从协议。当通讯模式为“问答式”的时候,一个现场设备只做出被要求的应答。HART协议允许系统中存在2个主机(比如说,一个用于系统控制,另一个用于HART通信的手操仪),如果不需要模拟信号,多点系统中的一对电缆线上最多可以连接15个从设备。 1.2      物理层物理层规定了信号的传输方法、传输介质。采用Bell202标准的FSK频移键控信号,在低频的420mA模拟信号上叠加一个频率数字信号进行双向数字通信。数字信号的幅度为0.5mA,数据传输率为1200bps,1200Hz代表逻辑“1”,

17、2200Hz代表逻辑“0”。数字信号波形如下图所示: 1.3      数据链路层数据链路层规定HART协议帧的格式,可寻址范围015,“0”时,处于420mA及数字信号点对点模式,现场仪表与两个数字通信主设备(也称作通信设备或主设备)之间采用特定的串行通信,主设备包括PC机或控制室系统和手持通信器。单站操作中,主变量(过程变量)可以以模拟形式输出,也可以以数字通信方式读出,以数字方式读出时,轮询地址始终为0。也就是说,单站模式时数字信号和420mA模拟信号同时有效。“115”处于全数字通信状态,工作在点对多点模式,通信模式

18、有“问答”式、“突发”式(点对点、自动连续地发送信息)。按问答方式工作时的数据更新速率为23次s,按突发方式工作时的数据更新速率为34次s。在本质安全要求下,只使用一个电源,至多能连接15台现场仪表,每个现场设备可有256个变量,每个信息最大可包含4个变量。这就是所谓的多点(多站)操作模式。这种工作方式尤其适用于远程监控,如管道系统和油罐储存场地。采用多点模式,420mA的模拟输出信号不再有效(输出设在4mA使功耗最小,主要是为变送器供电,各个现场装置并联连接),系统以数字通信方式依次读取并联到一对传输线上的多台现场仪表的测量值(或其它数据)。如果以这种方式构成控制系统,可以显著地降低现场布线

19、的费用和减少主设备输入接口电路,这对于控制系统有重要价值。HART协议根据冗余检错码信息,采用自动重复请求发送机制,消除由于线路噪声或其他干扰引起的数据误码,实现数据无差错传送。能利用总线供电,可满足本质安全防爆要求。HART协议信息帧的格式见1.4节分析。HART协议的帧格式以8位为一个字节进行编码,对每个字节加上一个起始位、一个奇偶校验位和一个停止位以串行方式进行传输。通常采用UART(通用异步接收/发送器)来完成字节的传输。由于数据的有无和长短不恒定,所以HART数据的长度不能超过25个字节。 1.4      消息结

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

21、0号命令,就可以用于短帧中的设备地址识别。也就是说,主机将根据应答信号中是否具有“惟一”标识码来决定结构格式为“长”还是“短”。一般消息帧的组成,其中:(1)PREAMBLE:导言字节,一般是520个FF十六进制字节。他实际上是同步信号,各通讯设备可以据此略做调整,保证信息的同步。在开始通讯的时候,使用的是20个FF导言,从机应答0信号时将告之主机他“希望”接收几个字节的导言,另外主机也可以用59号命令告诉从机应答时应用几位导言。(2)DELIMITER:起始字节,他将告之使用的结构为“长”还是“短”、消息源、是否是“突发”模式消息。主机到从机为短结构时,起始位为02,长帧时为82。从机到主机

22、的短结构值为06,长结构值为86。而为“突发”模式的短结构值为01,长结构为81。一般设备进行通讯接收到2个FF字节后,就将侦听起始位。(3)ADDR:地址字节,他包含了主机地址和从机地址,如前所述,短结构中占1字节,长结构中占5字节。无论长结构还是短结构,因为HART协议中允许2个主机存在,所以我们用首字节的最高位来进行区分,值为1表示第一主机地址,第二主机用0表示。“突发”模式是特例,0,1值将交替出现,也就是说,在该模式下,赋予2个主机的机会均等。次高位为1表示为“突发”模式,短结构用首字节的04位表示值为015的从机地址,第5,6位赋0;而长结构用后6位表示从机的生产厂商的代码,第2个

23、字节表示从机设备型号代码,后35个字节表示从机的设备序列号,构成“唯一”标志码。 长帧地址结构 短帧地址结构 另外,长结构的低38位如果都是0的话表示的是广播地址,即消息发送给所有的设备。(4)COM:命令字节,他的范围为253个,用HEX的0FD表示。31,127,254,255为预留值。(5)BCNT:数据总长度,他的值表示的是BCNT下一个字节到最后(不包括校验字节)的字节数。接收设备用他可以鉴别出校验字节,也可以知道消息的结束。因为规定数据最多为25字节,所以他的值是从027。(6)RES:状态字节,他也叫做“响应码”,顾名思义,他只存在于从机响应主机消息

24、的时候,用2字节表示。他将报告通讯中的错误、接收命令的状态(如:设备忙、无法识别命令等)和从机的操作状态。如果我们在通讯过程中发现了错误,首字节的最高位(第7位)将置1,其余的7位将汇报出错误的细节,而第2个字节全为0。否则,当首字节的最高位为0时,表示通讯正常,其余的7位表示命令响应情况,第2个字节表示场设备状态的信息。UART发现的通讯错误一般有:奇偶校验、溢出和结构错误等。命令响应码可以有128个,表示错误和警告,他们可以是单一的意义,也可以有多种意义,我们通过特殊命令进行定义、规定。现场设备状态信息用来表示故障和非正常操作模式。(7)DATA:数据字节,首先我想说明的是并非所有的命令和

25、响应都包含数据字节,他最多不超过25字节(随着通讯速度的提高,正在要求放宽这一标准)。数据的形式可以是无符号的整数(可以是8,16,24,32bit),浮点数(用IEEE754单精浮点格式)或ASCII字符串,还有预先制定的单位数据列表。具体的数据个数根据不同的命令而定。(8)CHK:奇偶校验,方式是纵向奇偶校验,从起始字节开始到奇偶校验前一个字节为止。另外,每一个字节都有1位的校验位,这两者的结合可以检测出3位的突发错误。 1.5      应用层操作命令处于应用层,包括通用命令、普通命令和特殊命令。通用命令的范围从030

26、,普通命令是从32到126,特殊命令的范围是从128253。通用命令是所有现场装置都配备的,主要包括:1)读制造商码和设备类型;2)读一次变量PV和单位;3)读当前输出和百分量程;4)读取多达4个预先定义的动态变量;5)读或写8字符标签16字符描述符日期;6)读或写32字符信息;7)读变送器量程单位阻尼时间常数;8)读传感器编号和极限;9)读或写最终安装数;10)写登录地址。 常用命令提供的功能是大部分装置但不是全部现场装置都配备的,主要包括:1)读4个动态变量之一;2)写阻尼时间常数;3)写变送器量程;4)校准置零置间隔;5)设置固定的输出电流;6)执行自检;7)执行主站复位;8)

27、调整PV零点;9)写PV单位;10)调整DAC零点于增益;11)写变换函数平方根/线性;12)写传感器编号;13)读或写动态变量用途。 专用命令提供对特殊的现场装置适用的功能,包括:1)读或写低流量截止值;2)起动停止或取消累积器;3)读或写密度校准系数;4)选择一次变量;5)读或写结构材料信息;6)调整传感器校准值。 1.6      实例分析例1:主机到从机FFFFFFFFFF82A606BC614E0100B0 上面是主机到从机发送的一条消息。前5个字节值都为FF,显然他是导言字节。接着的82起始字

28、节,表示主机到从机发出的长结构的STX帧消息。后5个字节 “A6,06,BC,61,4E”是地址字节化为二进制表示如下:         A6                  06                    BC                 61  

29、              4E1010 0110    0000 0110    1011 1100    0110 0001    0100 1110 可见首字节A6的最高位为1表示主机,次高位为0表示非突发模式,后面的38bit表示设备的惟一标号:“100110”是生产厂家代码,值为38,是Rosemount公司的代码;后一字节06是设备型号代码,06代表的型号是3051C;后面的3个字节是

30、设备识别号,本例中的值为12345678;再接下来的01是命令字节,表示1号命令,即读取PV值后面的00是表示数据的长度;本例中无数据,值为0;最后是校验字节B0; 例2:从机到主机 FF FF FF FF FF86A6 06 BC 61 4E010700 0006 40 B0 00 0045上面表示的是从机到主机的一条消息。本例大部分与例1相似,不同的是数据字节不再为0,其中的06表示单位PSI,后面的4个字节是用浮点数表示的值,为5.5。并且由于本例是由从机到主机的应答消息,所以存在着RES位,即本例中的“00 00”,表示“OK”。例3:突发模式FF FF

31、FF FF FF8153 03 04 E6 D7031A00 6041 3F A0 002741 3F A0 003942 47 60 0006BF 06 60 003941 95 0000D4 上面是突发模式发出的一条消息。第1个字节81表示突发的长结构模式,与前例中相似的地方不再介绍。注意到状态字节“0060”后的字节“413FA000”,他表示的是当前的电流值,计算后是11.9766;后面的“27”表示单位mA,后面的“39”表示“%”。数据字节中的“42 47 60 00”,“BF 06 60 00”,“41 95 00 00”分别表示“SV”,“TV”,“FV”,表示方法与

32、PV相同。 1.7      特点和优势从HART技术转向具有先进功能的基金会现场总线,过程既简单成本又低,显露出当今快速发展的仪表市场中新的商机。1、满足诸如压力和温度变送器等现场设备用的标准转换块的要求,这使多个厂商平台之间的一致性提高了,使设备更为简化了,使未来的现场校准装置工作时不需要设备描述(DDs)。2、支持分调度,允许总线上的某些回路的执行速度比其它回路得快。同样也支持双调度,所以新的控制策略能被下载下来而且变换能立即出现。3、支持无扰动替换的固件下载,因而用户能轻松地使设备固件升级,通过最新的诊断和控制增强功

33、能受益。4、支持H1设备的快速链接定位。标准链接为48ms,但是如果更快的链接定位速度(例如插槽时间、最小的交互PDU延迟,最大的响应延迟)都能得到支持,每次链接所需的时间是能缩短的。这导致总线的循环时间比老式设备所需的时间短得多。5、支持输出设备,例如阀门定位器和执行机构内的多变量控制器(MVC)发布,因而同时发布所有总线用的输出值的中央控制器能使通信和控制设备得到优化。同样,多通道输入设备应支持MVC。6、重新查看现场总线模式和状态机制时要仔细。谨慎地使用数字输入DI块显示诸如就地超驰,手动操作,故障保护连锁等设备状态。相反,设备的内部状态应通过模式参数让操作人员一目了然,而且应通过状态标

34、签在控制策略中发挥作用。7、HART协议保证功能块的执行尽可能快些,以便缩短总线总的循环时间,这可能需要对代码进行优化并采用微控制器,因为在大多数情况下采取这两个措施能使执行时间足以快些。算法共处理器或许有用。  2         Hart-IP协议2.1      概要为了满足体量增长快速的工业数据传输,通过以太网来访问数据,HART通信基金会的HART协议规范增添了这个新的功能。Hart-IP为访问一些智能设备和过程信息提供了新的选项。 Hart-IP技术能够使:l 满足标准化厂房部署;l 从世界的任何角落远程访问设备层;l 通过以太网或者WiFi管理智能设备;l 更加容易集成入自动化系统。 Hart-IP是一个额外的连接选项,设备主机系统和资产管理应用程序使用工厂现有的网络基础设施,访问和收集来自现场设备的测量和诊断信息。通过下图可以看出,Hart-IP能将有线和无线设备采集到的信息提供给更高级别的应用程序(SCADA,DCS,ERP和其他系统)。Hart-IP的诞生是为了适应全球互联网技术的发展,让Hart协议运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论