4 HART通讯协议的软件实现
4.1 智能电磁流量计串口中断程序[5]
在串行口中断服务程序中,首先保护现场,然后判断是接收中断还是发送中断,若为接收中断则执行接收服务子程序,否则执行发送服务子程序。中断处理结束后,恢复现场并返回系统主程序。HART通信采用水平和垂直校验的方法。当检测到接收数据有差错时,则等到主设备命令帧发完后,通知主设备数据接收有误。主设备则重新发命令帧,从而保证通信的准确可靠。HART串口中断子程序流程图如图5所示。
4.2 HART命令拆分子程序[6][7]
在对命令帧响应之前先要将该帧拆分,即首先判断该帧前导码是否正确,每接收一个前导码,计数器加1。再接收定界符,若为有效的定界符且前导码计数器大于1,则为HART帧的起始位置,根据定界符确定HART帧的类型,若为应答帧或成组模式帧则终止接收服务,等待载波结束;若为请求帧,则确定帧格式,设置接收长帧格式或短帧格式地址计数值,短帧格式地址接收1个字节,长帧格式地址接收5个字节。再接收命令号,数据字节长度字节,若数据字节长度字节出现奇偶校验错误则终止接收服务,等待载波结束;否则设置数据字节长度计数器,每接收一个数据字节,长度计数器减1,最后接收水平校验和。若接收请求地址匹配,对接收的HART 帧异或求水平校验和,并与接收水平校 验和进行比较,相同则表示无通讯错误,否则置水平校验和错误标志为1,结束接收服务并转入HART命令执行子程序。命令帧拆分程序流程如图6所示。
5 结论
对研制的智能电磁流量计进行试验表明:该流量计集成化程度高、功能强、操作方便、性能可靠;具有自诊断、自检定功能和HART数据通讯功能;可测正反两个方向流量,也可测脉动流量;抗电磁干扰和温度性能好,适合于现场测量和显示;测量范围大,准确度高。