MSP430的HART从机控制器的设计
扫描二维码
随时随地手机看文章
摘要:为了应对传统现场仪表的功能升级需求,增强现场仪表与控制主机之间的通信能力,设计并实现了一款以MSP430单片机为主控芯片,使用HART调制解调器DS8500和环路供电型4~20 mA数/模转换器AD421搭建HART通信协议物理层的HART从机控制器。
引言
现代工业生产活动的正常进行离不开现场设备和与之配套的控制主机,为了充分发挥现场设备的性能,控制主机和现场设备之间必须要有一套高效可靠的通信协议。传统工业控制领域多使用4~20 mA模拟信号来完成现场设备与控制主机之间的通信,但是模拟信号传输数据具有传输方向单一、传输数据量少等诸多不足。为了解决这些问题,在20世纪80年代中期,美国Rosemount公司提出了高速可寻址远程传感器协议(Highway Addressable Remote Transducer,HART)用来增强现场设备与控制主机之间的通信能力。
HART协议是一种用于现场智能设备与控制主机或监测系统之间的通过模拟线路传输数字信号的通信协议,在20世纪90年代初移交给HART基金会HCF,由其负责修订更新并向外界发布。
与其他总线技术相比,由于HART协议无需额外的通信线路就能够通过传统的4~20 mA模拟通信线路提供数字信号,使得设备厂商花费很小的代价就能对传统设备升级改造,为用户提供更多的功能,因此HART协议在当前的工业控制领域中得到了广泛的应用,发展至今已经成为全球智能仪表通用的工业标准。本文提出了一种基于TI公司的低功耗的MSP430处理器的HART从机控制器。
1 HART协议简介
HART协议是一种双路、半双工、对传统4~20 mA模拟通信网络进行增强的向后兼容型通信协议,为仪表、控制和自动化系统制定了一个双向现场通信协议标准。HART协议利用贝尔202频移键控(FSK)技术,将低电平的数字通信信号叠加到传统的4~20 mA模拟信号上,来实现双向现场通信,数字通信与现存的模拟通信体制完全兼容,并支持点对点或多点模式的网络配置,为用户提供了一种易于使用和配置的低成本、高可靠性的现场通信解决方案。
HART协议目前参照并实现了OSI(开放系统互连)模型的1~4层和第7层。在本设计的实现中只需考虑简化的3层模型,即第1层物理层、第2层数据链路层和第7层应用层。
HART协议物理层规定了HART信号的传输方法、信号电平、设备阻抗和传输介质等一系列指标。HART协议采用频移键控(FSK)技术,在低频的4~20 mA模拟信号上叠加幅度为0.5 mA的不同频率的正弦电流调制波信号来实现数字通信,信号传输速率为1200 bps,频率为1200Hz代表“1”,频率为2200Hz代表“0”。如图1所示。
由于数字FSK信号是相位连续的,正弦信号平均值为0,所以HART协议的数字通信不会对4~20 mA模拟信号造成干扰,在实现数字通信的同时,保证了对传统模拟信号的兼容。因此HART协议在通信过程中可以提供两个通信信道:4~20 mA模拟信号和数字信号,如图2所示。
4~20 mA模拟信号可以利用4~20 mA电流回路快速地传输现场设备的主要测量值。此外,HART协议可以通过叠加在模拟线路上的数字信号来传输其他更为详细的设备信息,如设备状态、诊断信息、附加计算值等。两个通信信道的结合大大提高了现场设备与主机之间的通信能力。
HART数据链路层定义了一项主从协议,正常使用时,现场设备只有接到主机的信号时才产生应答。最多可以有两个主机,通常是控制系统为第一主机,手持控制器为第二主机,两个主机通信互不干扰。同时,数据链路层规定了HART协议的通信数据结构,对HART协议在进行通信时的数据帧格式进行了详细的定义,并采用纵向奇偶检验,根据检错码结果采取自动重复请求发送机制,能够有效地消除线路上的偶然噪声干扰,为数据传输提供了一个可靠的通信路径。HART协议通信数据帧的格式如图3所示。
HART协议数据帧格式中每个字符包含一个8位的编码数据以及一个起始位、一个奇偶校验位和一个停止位,通常使用串口来完成字符的传输。现场仪表作为从机接收HART指令并产生响应时,要严格遵照HART协议的数据帧格式。由于HART协议数据帧的前导符长度不同、数据帧中包含数据长度不确定,因此 HART数据帧的总长度也是不固定的,最长为25字节。
HART协议应用层定义了协议所支持的命令、响应、数据状态和状态报告。在应用层,HART协议为用户提供了HART命令集,命令集中的命令分为3大类,即通用命令、常用命令和设备特定命令。通用命令是所有支持HART协议的设备均支持的命令,最常见的如读取产品生产厂商及型号等信息。常用命令对于大部分设备适用,这些命令提供的功能并不是所有设备都支持,如写变量阻尼值、标定等。设备特定命令只针对某种具体设备的特殊性设立,由仪器制造商指定。
2 HART控制器硬件设计
HART协议是通过在传统的4~20 mA电流环路上叠加±0.5 mA的电流波信号来进行数字通信,对于搭载了HART模块的现场设备来说,只有整个设备的自身功耗控制在3.5 mA以下,才能够保证模拟信号和数字信号均能正常进行通信,因此在设计系统时低功耗是首先要考虑的问题。MSP430系列单片机是TI公司的16位超低功耗单片机,为降低功耗专门为芯片设计了灵活的时钟系统、多种低功耗模式、即时唤醒功能;同时,该系列单片机具有16位RISC结构,运算能力较强,并拥有丰富的片内外设,已经在工业控制领域得到了广泛的应用。因此,在本设计中采用MSP430单片机系列中的MSP430F149作为HART从机控制器的主控芯片。
4~20 mA的模拟信号通过使用ADI公司的AD421搭建外围电路来实现,AD421是一款完整的环路供电型4~20 mA数字转换器,这款DAC采用∑-△结构,可保证16位分辨率和单调性,积分非线性只有±0.01%。同时,AD421完全兼容标准HART电路或者其他类似的FSK协议,与HART协议FSK通信电路结合使用时不会使额定性能受到影响,是一款非常适合用来实现HART协议的DAC。AD421及其外围电路设计原理图如图4所示。
AD421通过锁存线LATCH、时钟线CLOCK、数据线DATA与MSP430的I/O口连接,MCU通过三线接口向AD421传输数据来调整输出的 4~20 mA模拟信号值,AD421的C3引脚接收HART模块耦合过来的FSK信号,再将信号叠加到电流输出环路中完成数字信号传输,LOOP+和LOOP-分别为4~20 mA电流回路的两个端口。
DS8500是一款由Maxim公司推出的单芯片HART兼容调制解调器IC,满足HART协议物理层规范要求。该器件内部集成了1200 Hz/2 200 Hz FSK信号调制、解调功能和数字信号处理功能,仅需很少的外部器件就能完成HART通信电路的搭建,大大降低了电路设计难度。工作时,HART输入信号首先通过ADC采样,然后进行数字滤波、解调,保证在干扰环境下信号测量的可靠性。输出DAC产生正弦波,并提供一路可以在1200 Hz和2200 Hz之间连续切换的低噪信号。接收时通过禁用发送电路实现低功耗,发送时同理,是一款理想的低功耗HART调制解调器。DS8500及其外围电路设计原理图如图5所示。
DS8500的数字输入脚D_IN、数字输出脚D_OUT与MSP430的串口连接。载波检测引脚OCD,发送请求引脚RTS与MCU的I/O口相连。接收数据时,MCU拉高RTS引脚,使能DS8500的解调模块,环路上的HART信号经过外围电路的滤波后从DS8500的FSK_IN引脚输入,接收到有效HART信号后,DS8500的载波检测引脚OCD输出高电平,并将解码后的数据通过D_OUT引脚串行输出,MSP430通过串口中断接收数据并进行处理。发送数据时,MSP430拉低RTS引脚电平,使能DS8500的调制模块,MSP430将要发送的数据通过串口从D_IN引脚发送给 DS8500,调制后的HART信号由FSK_OUT引脚输出,并通过一个电容耦合到AD421的C1引脚,最终叠加到4~20 mA环路路中完成通信。
3 HART控制器软件程序设计
HART从机控制器软件程序设计主要包括3大部分:AD421驱动程序实现、HART协议通信帧的正确接收与分析、HART应用层命令的应答实现。其中,AD421驱动程序比较简单,官方网站已经提供相应驱动包。而HART命令的应答实现依赖于对数据帧的正确分析,因此整个控制器软件程序的核心部分就是如何确保正确接收到完整的HART数据帧,并从数据帧中提取出有效的信息加以分析,生成相应的应答数据帧。
HART设备在进行通信时,首先由主机(上位机或手操器)向从机发送命令,从机(现场设备)接收到主机的命令后执行相应动作并返回应答数据。由于HART 协议通信数据帧长度不定,最长为25字节,只拥有固定的前导符而没有固定的结束标识符,因此在本控制器的程序设计中使用MSP430的定时器来判断主机不足25字节的一帧数据是否发送完毕,由于HART协议通信速率为1200 bps,传输每位数据的时间约为833μs,因此可以定义一个大于833μs的延时时间T,当从机最后一次接收到数据后,经过T时间没有接收到新数据就可以认为已经接收完一帧完整的数据。
系统上电稳定,经过一系列初始化操作后,MSP430控制DS8500打开解调模块,处于接收等待状态。当上位机有数据发送过来时,DS8500将解调后的数据通过串口发送给MSP 430,若接收到的第一个字符为0xFF(前导符开头字节)则启动定时器,定时5ms(根据需要调整),并将接收字符送入接收缓冲区,此后每接收到一个字符立刻将该字符存入接收缓冲区,并重置定时器计数器,直到定时器溢出(5 ms没有接到新数据)或者25字节的接收缓冲区已被填满。此时,认为主机已经发送完一帧完整的数据,接下来调用HART数据处理函数,判断接收者地址为本机后,对接收缓冲区内的数据进行校验,校验通过后提取出主机发送的命令和数据,根据命令执行相应操作并生成应答数据存入发送缓冲区中。MSP 430打开DS8500的调制模块,将应答数据从串口传送给DS8500,经过调制后通过4~20 mA环路发送给主机,然后关闭DS8500的调制器,打开解调器,继续等待下一次命令的到来。控制程序核心部分流程图如图6所示。
HART协议应用层命令的实现依赖于具体的设备,不同的设备需要实现的命令不尽相同,本控制器软件程序使用了一个switch结构来判断从接收数据帧中提取出来的主机命令。因此,当本控制器应用于不同的设备时,应用层部分只需根据设备需求添加case判断语句和动作执行代码,就可完成对新的命令的支持,具有很好的可复用性。
结语
与其他总线技术相比,HART协议并不能算是严格意义上的现场总线(模拟信号与数字信号混合),这使得难以为其开发统一的通信接口芯片,同时HART协议作为模拟系统向数字系统进行转变的过渡协议,在智能化、通信速率等方面又与真正的现场总线存在一定的差距,但这些方面的不足并不影响HART协议在世界范围得到广泛的应用。
由于HART协议实现简单、成本低廉、工作可靠,在未来的很长一段时间内,HART协议仍将作为事实上的工业标准活跃在工业领域,这也是本文提出该HART从机控制器设计的原因所在。
HART从机控制器在硬件上使用了很少的元件就完成了HART通信所必需的物理层搭建,具有电路结构简单、成本低廉、稳定性好等优点。与现有设备结合时,可以利用MSP430单片机来实现设备原有功能,HART通信模块实现HART协议通信,或者根据设备具体情况直接将HART模块加载于原设备之上,软件程序只需针对设备所使用的单片机型号更改相应的初始化代码,并根据实际需要实现HART应用层的命令应答。目前,该设计已经应用在实际产品上,成功地将一款原本只支持4~20mA模拟通信的两线制超声波液位计升级改造,使其支持HART协议通信,并且经过一段时间的测试观察,通信稳定,完全满足了低成本限制下对传统现场设备升级改造的需求,具有一定的参考价值。