引言
HART,即HighwayAddressableRemoteTransducer,是可寻址远程传感器高速公路的简称,最早由美国Rosemount公司开发并得到八十多家著名仪表公司的支持,其特点是在不干扰4~20mA模拟信号的同时允许双向数字通讯。符合HART协议的智能电磁流量计不仅可以实现各种流量的检测和就地显示,还可以通过上位计进行远程设定,改变流量计的零点、量程,以及完成自诊断等功能,在很大程度上方便了流量计的使用和维护,因而具有较强的市场竞争力。[1]本文讨论基于HART协议智能电磁流量计具体实现的技术问题,一是要解决硬件电路的设计问题,二是要讨论实现HART协议命令集编程及上位机软件的实现。
2HART协议简介
HART协议遵循ISO制订的OSI开放式系统互连参考模型,采用了OSI模型的第一层、第二层和第七层,即物理层、数据链路层和应用层。
2.1物理层规范
HART协议采用美国电话通讯系统Bell202频移键控(FSK)标准,在4~20mA的模拟±0.5mA的正弦波,波特率是1200bps。因为所叠加的正弦信号平均值为0,而且相位连续频移键控技术要求在波特率为1200Hz的数据位1和0的边界的相位角是连续的,所以数字通讯信号不会影响4~20mA的模拟信号。
2.2数据链路层规范[2][3]
这一部分协议规定了HART帧的格式,实现建立、维护、数据链路通讯功能,HART协议根据冗余检错码信息,通过差错检测机制和采用自动重发请求协议(ARQ),实现通讯数据无差错传送。
与协议相关的数据传输是以帧的形式实现的。帧是用户控制和寻址信息对用户数据的封装,只有帧中的字节记数结束且经过了差错检验接收正确无误或是物理层通知信号传输终止(如检测不到载波)之后才可以进行帧的识别。HART帧的格式如图1所示。
PREAMBLE前导信号。
DELIM定界符:一个独特的或是最容易识别的字符。
ADDR地址字节:包含了源地址和目的地址,最高位都用来表示与该帧相关的主设备的地址。
COM命令字节:表示现场仪表所要执行的功能。
BYTECORNT数据总长度:该值表示的是BYTECORNT下一个字节到最后(不包括校验字节)的字节数。
DATA数据字节。
CHK奇偶校验:纵向奇偶校验。
在数据链路层中的HART协议是一种“主/从”协议。在从设备的应答消息中除了已被接收的确认命令,许多消息中还包含了主设备询问的数据。HART协议允许系统中同时有两个主设备运行,一个基本主设备,一个副主设备。从设备根据两个主设备不同的地址来向它们分发各自的应答命令消息。
2.3应用层规范[4]
规定了HART消息包中的3类命令,第一类是通用命令,适用于遵守HART协议的所有产品,为符合HART协议的设备提供功能描述;第二类是普通操作命令,适用于遵守HART协议的大部分产品;第三类是设备特殊命令,适用于遵守HART协议的特殊产品。
3基于HART协议的智能电磁流量计的硬件设计
带有HART通讯协议的智能电磁流量计的硬件系统电路采用模块化设计,主要包括传感器模块,MCU模块、HART通讯模块和人机界面模块四个部分。
由单片机控制的低频励磁电流输出到传感器的励磁线圈中,同时来自电磁流量传感器的微小电势信号经前置放大后通过AD模数转换电路送入到单片机。单片机对这些信号进行数据采集,分析处理送至液晶显示屏进行瞬时流量和累积流量的显示。同时单片机通过计算公式对得到的流量值进行补偿,将补偿后的流量信号通过HART通讯模块实现与上位机的远程通讯。
3.1HART通讯模块设计
HT2012芯片用来实现HART协议中通讯信号的解调及调制过程。图2为调制解调器与微处理器的连接。
HART信号的解调过程:由带通滤波器输出的脉冲信号进入HT2012后,调制解调器分别将脉冲信号中的1200Hz和2200Hz解调为数字1和0,再将数字信号由HT2012的ORXD端口输出,CPU对接收到的数据进行判断并执行相应的任务。
图2HART接口电路
3.2HT2012与外部接口
HART数字信号规范是峰值为1mA、平均值为0mA正弦交流电流信号,此信号经线路阻抗转化为正弦交流电压信号,而HT2012输入和输出信号是0~5V的方波信号,因此在HT2012和外部的HART信号之间还需要有滤波电路和整形电路。
如图3所示,由TLC27组成的滤波器是带通滤波器,用来减少接收信号的噪声干扰。滤波器还用来消除波形中的尖峰,从而使接收到的信号变得平缓。TLC37组成的数字方波产生回路把经过TLC27滤波后的正弦波转变成相应的方波,以便于HT2012接收。
如图4所示,缓冲器74HC126的作用是使方波的上升沿和下降沿趋于平缓,使信号满足HART物理层规范所要求的信号波形上升沿和下沿的时要求,因为较平缓的上升沿和下降沿时间可以降低与其它网络间的串扰。
HT2012需要外部提供460.8kHz的时钟信号,且要求时钟频率的误差是±0.1%,若直接入一个460.8kHz的晶振不仅会引起系统功耗的增加,而且该晶振属于非标准晶振,需专门定制。为了解决这一问题,在系统中采用一片1.8432MHz的晶振以产生时钟信号,再经分频器CD4013进行4分颇,可输出1.8432MHz/4=460.8kHz的分频信号供HT2012使用。
AD421其内部的电压调节器与外部的场效应管DN25D对输入到AD421的电压进行调整,可提供 3.3V电压作为其他设备的电源。HART发出的FSK信号,经过一个电容耦合送到AD421中,转换成相应的±0.5mA正弦电流信号,实现电压信号到电流信号的转换,同时,叠加在4~20mA的电流上送给接收设备,实现了HART协议的信息的交换。本电路耦合电容取为0.0033μF。
4HART通讯协议的软件实现
4.1智能电磁流量计串口中断程序[5]
在串行口中断服务程序中,首先保护现场,然后判断是接收中断还是发送中断,若为接收中断则执行接收服务子程序,否则执行发送服务子程序。中断处理结束后,恢复现场并返回系统主程序。HART通信采用水平和垂直校验的方法。当检测到接收数据有差错时,则等到主设备命令帧发完后,通知主设备数据接收有误。主设备则重新发命令帧,从而保证通信的准确可靠。HART串口中断子程序流程图如图5所示。
图5串口中断程序
4.2HART命令拆分子程序[6][7]
在对命令帧响应之前先要将该帧拆分,即首先判断该帧前导码是否正确,每接收一个前导码,计数器加1。再接收定界符,若为有效的定界符且前导码计数器大于1,则为HART帧的起始位置,根据定界符确定HART帧的类型,若为应答帧或成组模式帧则终止接收服务,等待载波结束;若为请求帧,则确定帧格式,设置接收长帧格式或短帧格式地址计数值,短帧格式地址接收1个字节,长帧格式地址接收5个字节。再接收命令号,数据字节长度字节,若数据字节长度字节出现奇偶校验错误则终止接收服务,等待载波结束;否则设置数据字节长度计数器,每接收一个数据字节,长度计数器减1,最后接收水平校验和。若接收请求地址匹配,对接收的HART帧异或求水平校验和,并与接收水平校验和进行比较,相同则表示无通讯错误,否则置水平校验和错误标志为1,结束接收服务并转入HART命令执行子程序。命令帧拆分程序流程如图6所示。
图6HART命令帧拆分程序流程图
5结论
对研制的智能电磁流量计进行试验表明:该流量计集成化程度高、功能强、操作方便、性能可靠;具有自诊断、自检定功能和HART数据通讯功能;可测正反两个方向流量,也可测脉动流量;抗电磁干扰和温度性能好,适合于现场测量和显示;测量范围大,准确度高