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; iMAXQ μ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 字节的中间存储。
审核编辑:郭婷
-
微控制器
+关注
关注
48文章
7536浏览量
151292 -
传感器
+关注
关注
2550文章
50999浏览量
752956 -
接收器
+关注
关注
14文章
2468浏览量
71859
发布评论请先 登录
相关推荐
评论