【个人经验分享】4~20mA 之 低成本HART通讯实现方式,PWM和有源滤波实现方式

HART是在4~20mA恒流源输出的基础上增加了一个±0.5mA的FSK的调制解调,用一个周期的1200Hz的正弦波作为数字逻辑1,两个周期2200Hz的正弦波作为数字逻辑0。这个实现很巧妙,也很有意思。

那么有没有便宜的HART方案呢?那必然是有的,可以用芯片直接DAC输出,然后再耦合到恒流源上做HART的发送调制,然后ADC采集HART的FSK波形做接收解调。FSK接收部分其实很简单,做一个直流偏置,然后将HART的接收波形耦合过去之后拿单片机的ADC做采集即可。在接收输入前级也可以增加带通滤波器做波形的滤波以减少干扰。下图是HART的接收部分的原理图:

那么又有朋友问了,芯片如果没有DAC功能怎么办?那也就是本期要给大家分享的了,就是使用PWM和有源滤波做这个HART的调制。是使用了一个有源带通滤波器对MCU输出的PWM波做滤波,然后再耦合到恒流源回路中:

然后下图为上面有源带通滤波器电路的波特图,可以看到在1200Hz下,衰减-3db,在2200Hz下大概也是衰减-3dB。即这个带通滤波器的上下限频率为1200Hz和2200Hz,除此之外PWM中的高次谐波都会受到不同程度的衰减。

然后我们也对这个电路输入1200Hz和2200Hz的占空比为50%,幅值为3.3V的PWM信号,可以看到下图分别是1200Hz和2200Hz的滤波后输出信号波形:

可以看到1200Hz的波形实际上并没有那么好看,甚至不是很像正弦波了,这个主要是因为三次谐波在作祟(1200Hz下对三次谐波3600Hz的衰减不够多)。通过交流分析,可以看到这个有源带通滤波器对1200Hz的三次谐波3600Hz仅衰减了6.9db,而对2200Hz的三次谐波6600Hz衰减了15.9db。这个也是难以避免的,因为1200Hz和2200Hz的三次谐波距离还是蛮远的,很难对1200Hz的三次谐波同做到大幅度的衰减。

那么有什么办法可以改进吗?答案是有的,这个的改进思路也很简单,那就是通过MOS管控制有源滤波器中的电容并联,从而改变有源滤波器的特性,以此实现对1200Hz和2200Hz的分别滤波。如下图中当FILTER_SEL为高电平时,MOS管打开,滤波参数调整为1200Hz适合的参数;当FILTER_SEL为低电平时,MOS管截止,滤波参数调整为2200Hz适合的参数。

下图是这个有源滤波器的参数表格:

可以看到在这种参数下,对两个不同频率的三次谐波抑制效果都非常不错,下图是仿真结果:

然后下面是输入波形和调制波形的实测图:

下图是输入PWM波形和回路中测的的HART的波形(环路电阻两端的交流信号)

总结:

那么总体来说,设计思路还是蛮不错的,可以降低挺多成本的。不过HART这东西其实物理层不是特别复杂,复杂的是协议层的实现。硬件降本的话,软件的工作量就会提升,有利有弊吧。

好的那么本期的分享也就到此结束了,感谢你的阅读点赞和分享。