1、低功耗智能传感器的设计(图)在工业控制过程中,经常需要对一些参数进行测量,而一般传感器的输出信号较弱,不适合作远距离传输。为了减小干扰,通常采用 420mA 电流输出的双绞线变送器。信号模拟处理的变送器,由于电路的复杂性的限制,非线性补偿效果不理想,很难在全温度范围内实现温度补偿,因此达不到较高的精度要求。随着低功耗高精度单片机、- ADC 和 -DAC 的日益普及,为高精度的智能变送器的设计提供了技术途径。本文介绍的单片传感信号接口设计采用了德州仪器公司新近推出的一款多功能的微控制器MSP430F2013,它内部集成了 16 位的 -ADC。2kb 的程序空间和 128b 的数据存储空间,可
2、以完成数据的智能采集,并采用差分传输方式进行数据的传输。 数据按帧进行传输,传输过程中采用 CRC 检验进行差错控制。MSP430F2013 的结构特点MSP430F2013 是 TI 公司 MSP430 系列的一款微控制器, 它具有以下结构特点: 16 位的 RISC CPU、16 位的寄存器和常数发生器,可以获得很高的代码效率;五种低功耗模式,在便携式的测量应用中可以延长电池的使用寿命;数控振荡器(DCO)使得从低功耗模式切换到正常模式只要不到 1s;一个16 位的定时器;10 个 I/O 口;具备同步通信协议( SPI 或者 I2C);一个 16 位的 - ADC。MSP430F2013
3、 的典型应用是传感系统捕获模拟信号,将模拟信号转换为数字信号,然后利用数字信号作屏幕显示或者将数字信号传输到一个主机系统中用作其他处理。系统介绍常见的模数转换电路对模拟信号要进行信号放大,而且一般都要设计一个与单片机的接口电路,本系统具有很高的集成度,单片即可完成信号的放大、模数转换,软件滤波,同时实现了一个单线协议,直接可以和高档计算机进行通讯,无须设计与单片机的接口电路。MSP430F2013 是一个低功耗的器件,当运行在 1MHz 的时钟条件下,系统的工作电流为 220A,而待命模式的工作电流仅为 0.5A,保持 RAM 的节电模式的工作电流更是只有 0.1A,这样的低功耗完全可以利用电
4、池供电,适合于便携式的测量。本系统利用 MSP430F2013 进行智能数据采集,从前端传感器采集来的数据经过程控增益放大器进行放大,随后进入模数转换器进行模数转换,转换完成后以异步串行的方式输出。图 1 是整个系统的原理图。图 1 系统原理图为简化系统,同时避免外部晶振对系统的影响,系统采用内部 DCO 作为时钟,系统利用差分传输数据,无需进行数据的隔离。本应用中配置传输速率为 9600b/s,可以用串口设定匹配的波特率进行接收。无论系统采用内部参考电压还是外部参考电压,输入电压都有相应的范围,所以前端模拟量的输入要用稳压管进行限幅。系统可以根据外界信号的大小调节转换的精度,只需拉高 P2.
5、6 同时调节外部输入的模拟量为所测量的最大值,这时系统将自动调整 PGA(程控增益放大器)。由于采用半双工的差分传输,系统很容易进行扩展,系统可以利用多个传感器组成一个传感器网络,通过总线控制传感器采集数据。1. 系统软件系统的软件流程图如图 2 所示。图 2 系统软件流程图2. 初始化初始化部分主要完成以下功能。负责系统时钟的初始化,使系统工作频率为 DCO 指定的标准 8MHz 时钟。配置系统的端口,由于芯片引脚功能复用,这一过程就显得尤为重要。通过设定 SD16AE 和SD16INCTL0,使得 P1.0 和 P1.1 的工作状态分别为 A0+、A0-。设定 P2.6、P2.7 为通用
6、IO 口,其中 P2.6 用作调整 PGA 的控制信号,P2.7 用作数据传输的通道。初始化系统的 AD 转换器,采用系统内部的参考电压,由于输入频率最多只能为 1.1MHz,故将系统主频率 8 分频输入。MSP430F2013 中 ADC 没有输入缓存,在缓存模式选择中关闭缓存。系统用来测量连续变化的物理量,设定系统为连续转换模式。3. 测量测量时打开中断,当有测量结果产生时,产生中断,中断标志位置位,测量结果存放在转换结果寄存器中,当从转换结果寄存器中读出测量结果后,中断标志位自动复位。所以读取转换结果时只需查询中断标志位即可。测量结果滤波采用中位值平均滤波法,每个测量值采样 10 次,去
7、除最大值和最小值,其余 8 个值取算术平均值。这种算法能够有效地克服因偶然因素引起的波动干扰,尤其适用于温度、液位等变化缓慢的物理量。测量时使用内部参考电压,测量信号的电压输入范围为 0500mV,当输入信号满量程输入,模数转换输出的最高位不为 1 时,可进行信号放大,最大放大倍数可达 32。当输入信号的放大倍数为 N 时,输入信号的范围会相应地缩小为原来的 1/N。例如,当选择 PGA 的放大倍数为 2 倍时,测量信号的电压输入范围为 0250mV。整个测量过程用伪代码表示如下。int measure (void)int i;if ( SET=1 )调整增益;For (i=0;i10;i+)
8、等待转换结果产生;读取并保存转换结果;累加转换结果;查找最大值与最小值;中位值平均滤波;返回测量结果;4. 数据传输数据发送按帧发送,帧结构如图 3 所示。图 3 数据帧结构图每帧数据包括同步码,AD 转换结果和检验码,帧的同步可以采用特定的同步码或者间隙同步,这里采用第二种方法。在数据帧发送时,首先拉高数据发送线,拉高的时间为发送 16 个数据位的时间,帧头高电平的间隙用作数据帧的同步。奇偶校验码作为一种检错码虽然简单,但是漏检率太高。在计算机网络和数据通信中用得最广泛的检错码,是一种漏检率低得多也便于实现的循环冗余码 CRC。CRC 生成多项式阶数越高,误判的概率越小。本文采用 CCITT
9、-16,其生成多项式为 g(x)=x16+x15+x5+1。实现 CRC 的方法一般有两种:直接计算和查表。由于查表法至少需要 1kb 的空间用来存储表值,所以这里采用直接计算的方法。数据传输时使用单线串行输出,用口线模拟串行发送,发送字节时在口线上依次发送如图 4 所示数据(数据为 0 时拉低口线电平,数据为 1 时拉高口线电平),位持续时间根据波特率计算,本应用中设定波特率为 9600b/s。当没有数据发送时,输出口线上维持高电平。图 4 发送字节的顺序示意图数据发送最后通过光耦隔离,使得现场和数据的输出隔离,同时可以根据后级系统输入的需要简单地更改电路。结束语经过实际应用,单片 MSP430F2013 可实现小信号传感器输出电平测量,转换时间小于 1ms。并可实现低功耗测量,整机功耗不超过 6mW。该系统特别适合于实现了一个智能传感器,当输入信号满辐度大于 40mV 时可以保证 16 位 A/D 转换分辨率。由于采用半双工的差分传输,可以方便地实现传感器的组网。