1         HART协议

1.1      简介

现代工业生产中存在着多种不同的主机和现场设备,要想很好地使用他们,完善的通讯协议是必须的。HART协议最初是由美国Rosemount公司开发,已应用了多年。HART协议使用FSK技术,在4~20mA信号过程量上叠加一个频率信号,成功地把模拟信号和数字信号双向同时通讯,而不互相干扰。HART协议参照了国际标准化组织的开放性互连模型,使用OSI标准的物理层、数据链路层、应用层。HART协议规定了传输的物理形式、消息结构、数据格式和一系列操作命令,是一种主从协议。当通讯模式为“问答式”的时候,一个现场设备只做出被要求的应答。HART协议允许系统中存在2个主机(比如说,一个用于系统控制,另一个用于HART通信的手操仪),如果不需要模拟信号,多点系统中的一对电缆线上最多可以连接15个从设备。

1.2      物理层

物理层规定了信号的传输方法、传输介质。采用Bell202标准的FSK频移键控信号,在低频的4~20mA模拟信号上叠加一个频率数字信号进行双向数字通信。数字信号的幅度为0.5mA,数据传输率为1200bps,1200Hz代表逻辑“1”,

2200Hz代表逻辑“0”。数字信号波形如下图所示:

1.3      数据链路层

数据链路层规定HART协议帧的格式,可寻址范围0~15,“0”时,处于4~20mA及数字信号点对点模式,现场仪表与两个数字通信主设备(也称作通信设备或主设备)之间采用特定的串行通信,主设备包括PC机或控制室系统和手持通信器。单站操作中,主变量(过程变量)可以以模拟形式输出,也可以以数字通信方式读出,以数字方式读出时,轮询地址始终为0。也就是说,单站模式时数字信号和4~20mA模拟信号同时有效。

“1~15”处于全数字通信状态,工作在点对多点模式,通信模式有“问答”式、“突发”式(点对点、自动连续地发送信息)。按问答方式工作时的数据更新速率为2~3次/s,按突发方式工作时的数据更新速率为3~4次/s。

在本质安全要求下,只使用一个电源,至多能连接15台现场仪表,每个现场设备可有256个变量,每个信息最大可包含4个变量。这就是所谓的多点(多站)操作模式。这种工作方式尤其适用于远程监控,如管道系统和油罐储存场地。

采用多点模式,4~20mA的模拟输出信号不再有效(输出设在4mA使功耗最小,主要是为变送器供电,各个现场装置并联连接),系统以数字通信方式依次读取并联到一对传输线上的多台现场仪表的测量值(或其它数据)。如果以这种方式构成控制系统,可以显著地降低现场布线的费用和减少主设备输入接口电路,这对于控制系统有重要价值。

HART协议根据冗余检错码信息,采用自动重复请求发送机制,消除由于线路噪声或其他干扰引起的数据误码,实现数据无差错传送。

能利用总线供电,可满足本质安全防爆要求。HART协议信息帧的格式见1.4节分析。

HART协议的帧格式以8位为一个字节进行编码,对每个字节加上一个起始位、一个奇偶校验位和一个停止位以串行方式进行传输。通常采用UART(通用异步接收/发送器)来完成字节的传输。由于数据的有无和长短不恒定,所以HART数据的长度不能超过25个字节。

1.4      消息结构

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

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

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

(2)DELIMITER:起始字节,他将告之使用的结构为“长”还是“短”、消息源、是否是“突发”模式消息。主机到从机为短结构时,起始位为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个字节表示从机的设备序列号,构成“唯一”标志码。

长帧地址结构

短帧地址结构

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

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

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

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

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

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

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

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

1.5      应用层

操作命令处于应用层,包括通用命令、普通命令和特殊命令。通用命令的范围从0~30,普通命令是从32到126,特殊命令的范围是从128~253。通用命令是所有现场装置都配备的,主要包括:

1)读制造商码和设备类型;

2)读一次变量PV和单位;

3)读当前输出和百分量程;

4)读取多达4个预先定义的动态变量;

5)读或写8字符标签16字符描述符日期;

6)读或写32字符信息;

7)读变送器量程单位阻尼时间常数;

8)读传感器编号和极限;

9)读或写最终安装数;

10)写登录地址。

常用命令提供的功能是大部分装置但不是全部现场装置都配备的,主要包括:

1)读4个动态变量之一;

2)写阻尼时间常数;

3)写变送器量程;

4)校准置零置间隔;

5)设置固定的输出电流;

6)执行自检;

7)执行主站复位;

8)调整PV零点;

9)写PV单位;

10)调整DAC零点于增益;

11)写变换函数平方根/线性;

12)写传感器编号;

13)读或写动态变量用途。

专用命令提供对特殊的现场装置适用的功能,包括:

1)读或写低流量截止值;

2)起动停止或取消累积器;

3)读或写密度校准系数;

4)选择一次变量;

5)读或写结构材料信息;

6)调整传感器校准值。

1.6      实例分析

例1:主机到从机

FF

FF

FF

FF

FF

82

A6

06

BC

61

4E

01

00

B0

上面是主机到从机发送的一条消息。前5个字节值都为FF,显然他是导言字节。接着的82起始字节,表示主机到从机发出的长结构的STX帧消息。

后5个字节 “A6,06,BC,61,4E”是地址字节化为二进制表示如下:

A6                  06                    BC                 61                 4E

1010 0110    0000 0110    1011 1100    0110 0001    0100 1110

可见首字节A6的最高位为1表示主机,次高位为0表示非突发模式,后面的38bit表示设备的惟一标号:

“100110”是生产厂家代码,值为38,是Rosemount公司的代码;

后一字节06是设备型号代码,06代表的型号是3051C;

后面的3个字节是设备识别号,本例中的值为12345678;

再接下来的01是命令字节,表示1号命令,即读取PV值后面的00是表示数据的长度;

本例中无数据,值为0;

最后是校验字节B0;

例2:从机到主机

FF FF FF FF FF

86

A6 06 BC 61 4E

01

07

00 00

06 40 B0 00 00

45

上面表示的是从机到主机的一条消息。本例大部分与例1相似,不同的是数据字节不再为0,其中的06表示单位PSI,后面的4个字节是用浮点数表示的值,为5.5。

并且由于本例是由从机到主机的应答消息,所以存在着RES位,即本例中的“00 00”,表示“OK”。

例3:突发模式

FF FF FF FF FF

81

53 03 04 E6 D7

03

1A

00 60

41 3F A0 00

27

41 3F A0 00

39

42 47 60 00

06

BF 06 60 00

39

41 95 00

00

D4

上面是突发模式发出的一条消息。

第1个字节81表示突发的长结构模式,与前例中相似的地方不再介绍。注意到状态字节“0060”后的字节“413FA000”,他表示的是当前的电流值,计算后是11.9766;

后面的“27”表示单位mA,后面的“39”表示“%”。

数据字节中的“42 47 60 00”,“BF 06 60 00”,“41 95 00 00”分别表示“SV”,“TV”,“FV”,表示方法与PV相同。

1.7      特点和优势

从HART技术转向具有先进功能的基金会现场总线,过程既简单成本又低,显露出当今快速发展的仪表市场中新的商机。

1、满足诸如压力和温度变送器等现场设备用的标准转换块的要求,这使多个厂商平台之间的一致性提高了,使设备更为简化了,使未来的现场校准装置工作时不需要设备描述(DDs)。

2、支持分调度,允许总线上的某些回路的执行速度比其它回路得快。同样也支持双调度,所以新的控制策略能被下载下来而且变换能立即出现。

3、支持无扰动替换的固件下载,因而用户能轻松地使设备固件升级,通过最新的诊断和控制增强功能受益。

4、支持H1设备的快速链接定位。标准链接为48ms,但是如果更快的链接定位速度(例如插槽时间、最小的交互PDU延迟,最大的响应延迟)都能得到支持,每次链接所需的时间是能缩短的。这导致总线的循环时间比老式设备所需的时间短得多。

5、支持输出设备,例如阀门定位器和执行机构内的多变量控制器(MVC)发布,因而同时发布所有总线用的输出值的中央控制器能使通信和控制设备得到优化。同样,多通道输入设备应支持MVC。

6、重新查看现场总线模式和状态机制时要仔细。谨慎地使用数字输入DI块显示诸如就地超驰,手动操作,故障保护连锁等设备状态。相反,设备的内部状态应通过模式参数让操作人员一目了然,而且应通过状态标签在控制策略中发挥作用。

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协议运行在IP网络层上,以以太网的速度在适用Hart协议的设备上传输变量信息。这就意味着如今在各个工厂广泛使用的以太网基础设施可以被用于Hart协议的实现,不需要再额外搭建专用的接口和线缆。

Hart-IP使用简单、可靠、易用的HART协议搭建在IP协议基础之上,包括以太网、WiFi,传输层使用UDP或是TCP,可用于IPv4和IPv6。Hart-IP的应用层使用的技术要求同4-20mA的HART协议和WirelessHART技术,能够让产品快速得到推广,被用户所接受。相比RS485协议,它的过程数据和IT数据可以在一个共同的媒介上传播,不会和已经存在于TCP/IP信道上的通信相互干扰。拥有很大的地址空间,几乎可以容纳无限制的参与对象,满足可能的扩展网络。

2.2      协议剖析

图 (部分)Wireshark协议解析源代码

图 Wireshark协议解析结果

从Wireshark的源代码和解析结果中我们发现了一些协议的规律,基本确认了Hart-IP同HART协议的区别。以下就对Hart-IP增添的部分进行一个总结。

Hart-IP协议的报文头共有8个字节,分别为6个字段:Version, Message Type, MessageID, Status, Sequence Number和Message Length。

Version:协议的版本号,为0x01,这里不影响协议command的检测。

Message Type:消息类型可以是REQUEST_MSG_TYPE, RESPONSE_MSG_TYPE,PUBLISH_MSG_TYPE,ERROR_MSG_TYPE, NAK_MSG_TYPE,共五种。

Message ID:消息的功能共有四种,分别是Session initiate, Sessionclose, Keep alive, Pass through。这个字段对于检测command有至关重要的作用,当消息功能为Session close,和Keep alive时,应用层内容只有Header,而Body内容为空;当功能为Session initiate时,Body会包括1个字节的主机类型和4个字节的时钟信息,指出该段对话的失效时间;当功能为Passthrough时,Body部分就会是HART协议的内容,大多数情况下,这种报文的出现频率是最高的。

Status:通常情况下这个值为0x00。

Sequence Number:消息的序列号。

Message Length:该条Hart-IP报文应用层的总长,包括了Header部分和Body部分。由于Hart协议数据部分的长度是不固定的,所以可以根据长度字段判断出数据部分的长度。

Hart/Hart-IP协议 介绍、分析和应用相关推荐

  1. Linux内核网络数据包发送(三)——IP协议层分析

    Linux内核网络数据包发送(三)--IP协议层分析 1. 前言 2. `ip_send_skb` 3. `ip_local_out` and `__ip_local_out` 3.1 netfilt ...

  2. TCP/IP学习笔记:TCP/IP协议介绍

    TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础.TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.2 ...

  3. Linux内核网络UDP数据包发送(三)——IP协议层分析

    1. 前言 Linux内核网络 UDP 协议层通过调用 ip_send_skb 将 skb 交给 IP 协议层,本文通过分析内核 IP 协议层的关键函数来分享内核数据包发送在 IP 协议层的处理,并分 ...

  4. SOME/IP协议介绍

    SOME/IP全称Scalableservice-Oriented Middleware over IP,基于IP的可扩展面向服务的中间件.中间件的概念在汽车电子比较陌生,个人理解类似于手写代码的链接 ...

  5. TCP/IP 协议简单分析

    首先TCP和IP是两种不同的协议,它们来七层网络模型中分别在不同的层次,IP协议是网络层的协议,TCP是更高一层的传输层的协议,TCP是建立在IP协议之上的,所以一般把TCP和IP连在一起说TCP/I ...

  6. TCP/IP 协议简单分析(建立连接握手过程)

    原文:http://hi.baidu.com/wuguoyana/blog/item/38c04d3bcf047ce43a87ce55.html 首先TCP和IP是两种不同的协议,它们来七层网络模型中 ...

  7. 云计算介绍 tcp/ip协议介绍及配置

    NSD ADMIN DAY01 案例1:配置计算机名及工作组 案例2:TCP/IP地址配置 案例3:网络连通性测试 1 案例1:配置计算机名及工作组 1.1 问题 本例要求为修改计算机名并加入工作组: ...

  8. 网络原理课设——IP协议分析

    课题描述 IP协议是用于将多个包交换网络连接起来的,它在源地址和目的地址之间传送一种称之为数据包的东西 ,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求.IP的责任就是把数据从源传送到 ...

  9. 唤醒手腕 TCP/IP 协议进行三次握手、四次挥手建立连接详细介绍

    访问域名的 IP 地址,User-Agent(一般是指浏览器)会以一个随机端口(1024 < 端口 < 65535)向服务器的 WEB 程序(常用的有 Apache(httpd), ngi ...

  10. 一文带你看懂TCP/IP协议 (更新中 现更新至网络层部分)

    相信大家在编程的学习或应用中,对网络编程都有一定的需求.我们都知道http/https属于TCP/IP协议,也都用到过get,post等方法,但是想要真正的了解这些东西的原理.我认为TCP/IP协议还 ...

最新文章

  1. POJ C程序设计进阶 编程题#3:运算符判定
  2. 苹果手机各种型号图片_2020年12月小米/红米手机推荐|小米/红米手机选购要点|小米/红米手机性价比推荐,干货满满...
  3. 【ARM】Tiny4412裸板编程之蜂鸣器
  4. 怎么加快计算机运行速度,怎么加快计算机运行速度?
  5. 【Brain】脑智前沿科普|用数学解释大脑学习的过程
  6. suricata架构——数据结构和代码流程图解
  7. flask向html传函数,Flask----函数数据类型传参
  8. 保密检查便携式计算机,Lyaept关于便携式计算机和移动存储介质保密管理制度.doc...
  9. 唤醒屏幕_屏幕保护程序被困在Mac上?如何解决它
  10. EXCEL集成工具箱
  11. 开源成语答题小程序红包设置教程
  12. C++有序map和无序unordered_map性能测试对比
  13. 清华张敏教授:个性化推荐研究进展(可解释性、鲁棒性和公平性)
  14. BAP:PPP 带宽分配协议 BACP:PPP 带宽分配控制协议--网络大典
  15. Intel有那些45纳米的CPU
  16. 数据库与文件进行数据存储有哪些区别?
  17. 学会了这个配音方法,我的视频居然成了热门爆款
  18. 为什么QQ在线状态成灰色“未启用”状态?
  19. 树莓派CSI摄像头的使用及OpenCV的简单测试
  20. “开源”SOA正在改写IT规划方程式

热门文章

  1. 百度之星 度度熊的午饭时光
  2. QQ空间制作软件大全
  3. Ubuntu20.04安装Nvidia显卡驱动
  4. Download Software Top 10
  5. 英雄联盟游戏结束后显示与服务器失去连接,英雄联盟游戏被终止连接不上解决方法...
  6. HG5520A型多用表校准仪
  7. 前端面试题总汇、常考、笔试题等
  8. PLC控制系统设计的基本内容
  9. 主流浏览器以及兼容问题
  10. 示波器同步的调节方法