MAXQ微控制器驱动智能4-20mA发送器

描述

Franco Contadini

4-20mA电流环路是工业过程监控应用中传输传感器信息的常用技术。(传感器测量物理参数,如温度、压力、速度和液体流速。电流环路信号对噪声相对不敏感,其功率可以从远程供电的电压中获得。这使得电流环路在信息必须长距离传输到远程位置时特别有用。

简单的循环操作

在电流环路中,传感器的输出电压首先转换为比例电流,其中4mA通常表示传感器的零电平输出,20mA表示满量程输出。远端的接收器将4-20mA电流转换回电压,该电压可由计算机或显示模块进一步处理。

典型的4-20mA电流环路电路由四个元件组成:传感器/变送器、电压-电流转换器、环路电源和接收器/监视器。在环路供电应用中,传感器驱动电压-电流转换器,其他三个元件串联起来形成闭环(图 1)。

传感器

图1.4-20mA环路供电电路示意图

智能4-20mA变送器

传统上,4-20mA变送器包括一个现场安装的器件,该器件感测物理参数并产生4-20mA标准范围内的比例电流。为了响应行业需求,第二代4-20mA变送器,称为“智能变送器”,使用微控制器(μC)和数据转换器远程调节信号。

智能变送器可以归一化增益和偏移,通过将模拟信号转换为数字信号(例如RTD传感器和热电偶)来线性化传感器,使用驻留在μC中的算术算法处理信号,转换回模拟信号,并将结果作为标准电流沿环路传输。

最新的第三代4-20mA发送器(图2)被认为是“智能和智能”的。它们增加了数字通信,与4-20mA信号共享双绞线。由此产生的通信通道可以传输控制和诊断信号以及传感器数据。

传感器

图2.智能和智能4-20mA变送器示意图。

智能发射器使用的通信标准是Hart协议,该协议采用频移键控(FSK),并基于贝尔202电话通信标准。数字信号的第 1 位和第 0 位分别由频率 1200Hz 和 2200Hz 表示。这些频率的正弦波叠加在传感器的直流模拟信号上,以提供同步的模拟和数字通信(图 3)。

传感器

图3.同步模拟和数字通信。

4-20mA模拟信号在此过程中不受影响,因为FSK信号的平均值始终为零。数字状态每秒可以改变两到三次,而不会中断模拟信号。允许的最小环路阻抗为23Ω。

智能、智能 4-20mA 发送器的基本 μC 要求

μC必须具备三种特定功能才能执行这种4-20mA电流环路应用。μC 需要:

一个串行接口,用于驱动用于数据采集的ADC,用于设置环路电流的DAC。

低功耗,因为当前预算为4mA。

乘法累加单元(MAC),它既实现了应用于输入信号的数字滤波器,又对Hart协议的两个频率进行编码和解码。

选择微C

上述必要功能在MAXQ系列RISC μC中均有(图4)。

传感器

图4.MAXQ μC架构示意图

模拟功能 MAXQ μC实现多种模拟功能
。时钟管理方案仅向当前正在使用的块提供时钟。例如,如果指令涉及数据指针(DP)和算术逻辑单元(ALU),则时钟仅应用于这两个块。该技术可降低功耗并降低开关噪声。


低功耗 MAXQ μC具有先进的电源管理功能,通过动态匹配μC处理速度和所需的性能水平,将功耗降至最低。功耗较慢,例如,在活动减少期间。为了施加更大的处理能力,μC提高了其工作频率。

PMM1:被 256 分频电源管理模式

PMM2:32kHz 电源管理模式(PMME = 1,其中 PMME 是系统时钟控制寄存器的 BIT 2)

停止模式(停止 = 1)

滤波信号处理
MAXQ μC内部的MAC实现4-20mA应用所需的信号处理。模拟信号被呈现给ADC,产生的采样流在数字域中被滤波。可以使用以下公式实现通用筛选器:

 

y[n] = Σbix[n-i] + Σaiy[n-i]

其中 b我和我分别表征系统的前馈和反馈响应。取决于我和 b我,数字滤波器可分为有限脉冲响应(FIR)或无限脉冲响应(IIR)。当系统不包含反馈元素(所有我= 0),滤波器为 FIR 类型:

y[n] = Σbix[n-i]

如果两者都我和 b我元素不为零,但是,过滤器是 IIR 类型。

从上面的FIR滤波器等式中可以看出,主要的数学运算将每个输入样本乘以一个常数,然后将每个乘积累加到n个值上。这些操作由以下 C 片段说明:

y[n]=0;
for(i=0; i

MAXQ μC的MAC执行该操作的执行时间为4 + 5n个周期,代码空间仅为9个字(而传统μC和MAC需要12个字)。

move DP[0], #x 			; DP[0] -> x[0]
move DP[1], #b 			; DP[1] -> b[0]
move LC[0], #loop_cnt 		; LC[0] -> number of samples
move MCNT, #INIT_MAC 		; Initialize MAC unit

MAC_LOOP:

move DP[0], DP[0] 			; Activate DP[0]
move MA, @DP[0]++ 			; Get sample into MAC
move DP[1], DP[1] 			; Activate DP[1]
move MB, @DP[1]++ 			; Get coeff into MAC and multiply
djnz LC[0], MAC_LOOP.

在MAXQ的MAC中,请注意,当第二个操作数加载到单元中并且结果存储在MC寄存器中时,会自动发生请求的操作。另请注意,MC 寄存器宽度(40 位)在溢出之前可以累积大量 32 位乘法结果。这种能力改进了传统方法,在传统方法中,每次原子操作后都必须测试溢出。

MAXQ2000 μC的独特功能

ADI公司MAXQ系列的第一个成员是低功耗、16位RISC微控制器,称为MAXQ2000。它集成了一个用于液晶显示器 (LCD) 的接口,可驱动多达 100 个 (-RBX) 或 132 个 (-RAX) 段。MAXQ2000非常适合血糖监测,适合于任何要求高性能和低功耗的应用。它的最大工作频率为 14MHz (VDD > 1.8V) 或 20MHz (VDD > 2.25V)。

MAXQ2000包括32k字闪存(用于原型设计和小批量生产)、1k字RAM、16个1位定时器和8个或2000个通用同步/异步接收器/发送器(UART)。为提高灵活性,微控制器内核 (<>.<>V) 和 I/O 子系统采用单独的电源电压。超低功耗休眠模式使MAXQ<>非常适合便携式和电池供电设备。

MAXQ2000评估板

功能强大的MAXQ2000 μC可通过评估板(EV)进行评估,评估板是MAXQ2000的完整硬件开发环境(图6)。

传感器

图6.MAXQ2000评估板框图

MAXQ2000评估板具有以下特性:

用于MAXQ2000内核和VDDIO电源轨的板载电源。

可调电源(1.8V至3.6V),可用于VDDIO或VLCD电源轨。

用于所有MAXQ2000信号和电源电压的接头引脚。

独立的液晶子板连接器。

LCD子板,带3V,3.5位静态LCD显示屏。

用于串行UART(线路232)的完整RS-0电平驱动器,包括流量控制线路。

用于外部中断和微控制器系统复位的按钮。

MAX1407多用途模数模数转换器/DACIC,连接MAXQ2000 SPI总线接口。

1线接口和1线EEPROM IC。

条形图 LED 显示屏,用于显示端口引脚 P0.7 至 P0.0 处的电平。

用于应用程序加载和系统内调试的JTAG接口。

因此,MAXQ2000评估板具有实现智能4-20mA发送器所需的全部功能:具有真正乘法累加单元的低功耗μC(用于滤波和音调编码/解码);用于传感器读数的 ADC;以及用于生成模拟输出信号的DAC(图7)。通过增加MAX1102等低功耗编解码器,还可以实现HART调制解调器。

传感器

图7.基于MAXQ4 μC的20-2000mA发送器

HART调制解调器实现

如果系统包括1200Hz和2200Hz(代表位1和0)的音调编码器,则MAC可用于实现HART调制解调器请求的功能,以及这些频率的音调检测。

要生成所需的正弦波,您可以将递归数字谐振器实现为双极点滤波器,由以下差分方程描述:

Xn= k * XN-1, yN-2,

其中常数 k 等于 2 cos(2π*音调频率/采样率)。k的两个值可以预先计算并存储在ROM中。例如,以 1200kHz 采样率产生 8Hz 音调所需的值为 k = 2 cos(2π*1200/8000)。

您还必须计算使振荡器开始运行所需的初始脉冲。如果 XN-1和 XN-2都是零,然后每个后续的 Xn将为零。要启动振荡器,请设置 XN-1为零并设置 XN-2如下:

XN-2= -A*sin[2π(音调频率/采样率)]

假设我们的示例为单位正弦波,此方程简化为 XN-2= -1sin[(2π(1200/8000)]。若要进一步将其简化为代码,请首先初始化两个中间变量(X1、X2)。X1 初始化为零;X2加载初始激励值(上面计算)以开始振荡。因此,要生成正弦波的一个样本,请执行以下操作:

X0 = kX1 - X2
	X2 = X1
	X1 = X0

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

 

move DP[0], #X1 			; DP[0] -> X1
move MCNT, #INIT_MAC 		; Initialize MAC unit
move MA, #k 				; MA = k
move MB, @DP[0]++ 			; MB = X1, MC=k*X1, point to X2
move MA, #-1 				; MA = -1
move MB, @DP[0]-- 			; MB = X2, MC=k*X1-X2, point to X1
nop 						; wait for result
move @--DP[0], MC 			; Store result at X0.

因为我们只需要检测两个频率,所以我们使用改进的Goertzel算法,它可以作为简单的二阶滤波器实现(图8)。

传感器

图8.Goertzel 算法实现为一个简单的二阶滤波器。

要使用 Goertzel 算法检测特定频率,请在编译时首先使用以下公式计算常量的值:

k = tone frequency/sampling rate
	a1 = 2cos(2πk)

接下来,将中间变量 D0、D1 和 D2 初始化为零,并对收到的每个样本 X 执行以下操作:

D0 = X + a1*D1 - D2
	D2 = D1
	D1 = D0

在收到足够数量的样本(205kHz采样率通常为8个样本)后,使用D1和D2的最新计算值计算以下内容:

P = D12 + D22 - a1 * D1 * D2.

P现在包含输入信号中测试频率的平方功率的度量。

为了解码这两种音调,我们用两个过滤器处理每个样本。 每个筛选器都有自己的 k 值和自己的一组中间变量。每个变量的长度为 16 位,因此整个算法需要 48 字节的中间存储。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分