关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 智能电流变送器中HART调制解调器的实现方法

智能电流变送器中HART调制解调器的实现方法

作者:时间:2008-07-21来源:中国电子网收藏

  3 的实现

本文引用地址:http://www.eepw.com.cn/article/85943.htm

  3.1 的基本组成

  以MAXQ2000微处理器为核心的增强型4~20mA变送器的如图3所示。在MAXQ2000中,实现软件滤波和频率编码/解码等功能;低功耗的MAX1407实现A/D转换,低功耗的MAX1102实现D/A转换。

  如果系统包含1 200 Hz和2 200 Hz(分别代表1和0)频率编码器,同时要对这些频率进行检测,可以采用MAXQμC内部的MAC实现HART调制解调器要求的这些功能。

  3.2 频率编码器的实现

  要产生所需的正弦波形,可以利用下述差分方程描述的两极点滤波器形式实现递归数字式谐振器:

  式中,常数k等于2 cos(2π×频率/采样率)。可以预先计算k的两个值,并存在ROM中。例如,要用8 kHz采样率产生1 200 Hz频率,该值k=2 cos(2π×1 200/8 000)。必须计算能使振荡器开始振荡的初始激励。如果Xn-1和Xn-2都为0,接下来的每个Xn也都将为0。要启动振荡器,将Xn-1设为0,Xn-2设置为:

  为进一步简化编码,首先,初始化两个中间变量(X1,X2)。X1初始化为0,X2为初始激励值(上面的计算结果),以启动振荡器。这样,要产生一个正弦波的采样,可进行下列运算:

  每个新的正弦值都需要一次乘法运算和一次减法运算。利用MAXQμC的单周期硬件MAC,可以采用如下操作产生正弦波:

  因为只需要检测两种频率,所以采用改进的Goertzel算法。这种算法可以用简单的二阶滤波器实现,如图4所示。

  要使用Goertzel算法检测特定频率,编译时要首先使用下式计算出常数:

  随后,将中间变量D0、D1和D2初始化为0,并对每个收到的采样X进行下列计算:

  得到足够多的采样值以后(采用8 kHz的采样频率时,通常为205个采样值),用最新计算出的D1和D2值进行下列计算:

  这时,P包含了输入信号中测试频率的平方。要对两种频率解码,用两个滤波器处理每个采样。每个滤波器都有自己的k值和自己的一组中间变量,每个变量都是16位长,所以,整个算法需要48字节的中间存储器空间。

  3.3 HART中断程序

  HART通信程序是HART协议数据链路层和应用层的软件实现。由于HART通信采取的是主从方式,而像变送器这类的现场设备都是从机,因此在初始化中和每次回答完主机命令后,都要把接收中断打开,一直等候主机命令。HART通信采用水平和垂直校验的方法,当检测到接收数据有差错时,要等到主设备命令帧发完后,通知主设备数据接收有误,主设备则重新发命令帧,从而保证通信的准确可靠。HART中断子程序流程如图5所示。由于HART通信为主从方式,HART帧中每个字节在物理层传输需要9 ms左右,为了保证通信的实时性,通信程序采用串行口终端接收/发送。该中断所要完成的通信中的主要任务是,接收和发送帧、帧的拆分和打包。

  结 语

  HART协议作为一个开放性的协议,现已成为仪表事实上的标准,其特点是在现有的模拟信号传输上实现数字信号通信;嵌入式系统技术是目前电子产品设计领域最为热门的技术之一。本文介绍了以MAXQ2000嵌入式处理器为核心的HART,对HART协议的实现进行了较详细的叙述。采用嵌入式技术的HART智能变送器,不仅能解决现场总线兼容原有的DCS(Distribute Control System)问题,而且使系统整体的实时性、稳定性、抗干扰性及低功耗等性能有了极大的提高。

电流变送器相关文章:电流变送器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭