理解了一个模拟信号路径后,数字系统开发者就可以从各种应用中,更精确地捕捉传感器数据。
要点
即使同一家制造商的类似传感器也可能有不同的输出,而这些差异会给系统设计者带来麻烦。
噪声来自于多种原因,包括电路板布局、射频、热元件,甚至传感器自身。
要使用传感器滤波后的信号,必须用ADC,将模拟信号量化为数字信号。
可以选择采用外接ADC,也可以采用内置ADC的微控制器。外接ADC有较高的精度,在速度与分辨率方面有更好的性能。
传感器越来越多地应用于嵌入式系统中。虽然长期以来工业产品一直将其用于制造控制系统,但消费设备现在也开始采用传感器。制造商们正在消费产品中集成传感器,以创造出更好的用户体验,如在手机中增加加速度计,以及在微波炉中加入蒸汽传感器等。以前仅在数字域中工作的系统设计者现在发现,自己必须要与模拟传感器打交道了。
图1,一只传感器的模拟信号路径可以分为几级:放大、滤波和数字化。
传感器的模拟信号必须经过数字化才能供系统使用,并且信号要经过放大、滤波和数字化(图1)。每一级通常都涉及一只围绕着一些无源元件的器件,以正确地实现一个应用。一旦对信号做了数字化,就可以将其送给微处理器上的控制系统,或整理数据后通过一个通信协议送至一只主处理器。协议可以根据需要使用传感器数据。
每个传感器有不同的输出信号和范围。输出的信号可以是电压、电流、电阻、电容或频率,但几乎不存在什么标准,只有专用的工业系统在使用它们。即使同一制造商的类似传感器也可以有不同的输出,而这些差异会给系统设计者带来一些麻烦。设计者选择传感器时必须满足系统的需求。然而,如果在设计期间这种需求出现变化,则传感器也要做出修改。另外,一款输出略有不同的新传感器必须对放大级和滤波级作出改动。
大多数传感器都输出一个低电平的电流或电压信号,因此一个简单的电阻网络就能将任何电流信号变为一个电压。本文简单描述了一些概念和元件选择过程。
幅度
一只传感器的输出可以低至数毫伏,也可以高达数伏特。为做到正确的数字化,对ADC来说信号必须足够大,才能有效地读出。大多数情况下,传感器信号都需要放大。例如,一个典型的K型热电偶输出为41μV/°C,如果你的设计需要1°C的粒度,就需要做相当的放大。因此,必须考虑到ADC的分辨率,以确保能将信号放大到能满足所需粒度。
对放大器的选择主要取决于需要的类型,例如是仪表放大器、差分放大器、运算放大器,还是PGA(可编程增益放大器)。另外还必须确定放大器需要的增益大小。放大器周围的电阻网络(带反馈)决定了放大器的增益。理想情况下,标准放大器的最大增益是无限的。给器件的数字信号通常就设定了PGA的增益。这个信号改变了内部电阻网络。一只PGA的最大可能增益为传统放大器的千分之一至二分之一,但大多数情况下这个区间是可以接受的。
对于放大器还必须考虑另外一个重要规格:偏移电压。偏移电压是一个信号通过放大器时改变的电压量。例如,如果将一个500 mV信号送给一个单位增益(即增益为1)的放大器,偏移电压为10 mV,则得到的输出就是510 mV。如果传感器的输出范围为0至900 mV,而系统不需要非常精密的传感器读数,那么这个偏移就可以忽略不计。如果传感器的范围为450 mV至550 mV,这个偏移可能就不可接受了。偏移电压越小,放大器就越贵。所有放大器都有偏移,但你需要知道系统是否能容忍它。可以用相关双采样方法来降低或消除偏移电压。
滤波
所有系统都会在传感器信号上叠加一些噪声。噪声来源有各个方面,包括电路板布局、射频、热元件,甚至传感器自身。信号噪声会使ADC的读数不精确和不稳定,噪声电平在放大器中会得到增强,因为放大器能放大信号中的误差。信号噪声可以分为低频、高频或某个已知频率。通常最需要解决的是高频噪声问题。
图2,传感器的信号路径中包括放大器、滤波器和ADC。滤波器的设计用于去除信号中的噪声,限制带宽。
用无源模拟滤波器、滤波器IC和数字滤波器都可以滤除噪声(图2)。最常见的方法是无源滤波,这要用电阻、电容和电感建立一个无源网络。不过,你必须设计无源的滤波器,并且无法简单地改变它们。滤波器设计的复杂度可能与你所需滤波器等级一样大;一个一阶Chebyshev滤波器的设计工作量要比一个八阶Bessel滤波器小得多。因此你应确定需要的滤波器阶数,然后再选择自己采用的滤波方法。
某些IC允许你用数字编程方法,确定需要的滤波器类型。这些IC用内部的模拟电路建立滤波器,并可能有与之相关的偏移电压。它们也可以让你将滤波步骤移到ADC量化的后面。数字滤波器设计可以很复杂,但有很多能帮助做出高阶滤波器的简便设计。数字滤波是去除噪声的一个理想方式,但是,它通常需要很多CPU周期,增加了功耗。系统通常会引起高频噪声,因此需要采用低通滤波器。这种滤波器可衰减高于所设定截止频率的信号部分。有些传感器信号要求采用相互串联的多种类型滤波器。大多数传感器数据表中都指定了一个基本的接口电路,但并未提及所需要的滤波形式。系统设计者必须在彻底了解需要的滤波形式以后,再建立系统。
数字转换
为了使用传感器滤波后的信号,必须用一只ADC对模拟信号作量化,使之进入数字域。ADC的选择主要是考虑系统对采样速度和分辨率的要求。所需采样速度与传感器的带宽以及系统需要刷新的速度有关。分辨率的决定因素是需要ADC响应传感器信息的间隔时间。系统的使用模型决定了这个速度以及分辨率要求。例如,一个普通陀螺仪会以0.67mV/(°)测量360°的旋转,获得241mV的输出量程。为保持垂直,一个直升机爱好者需要以1°的粒度获得陀螺仪信息,但吞吐量只有10k采样/秒。这个需求就要用一个10bit ADC,提供0.35°/bit。不过要注意,信号上仍然有噪声,±1 bit是可接受的。反之,一款防抖数码相机可能需要0.02°的粒度,但吞吐量为5k采样/秒,从而在相机振动时调整图像传感器。这种要求可能需要采用16位ADC,提供0.005°/位。
图3,将INL误差 (a)、DNL误差 (b)、增益误差 (c)、偏移误差 (d) 以及总误差相结合,就能了解一个理想ADC (f) 与实用ADC。
制造商以INL(整体非线性)、DNL(差分非线性)、偏移误差、增益误差和SNR(信噪比)等指标来量度ADC的精度。当把这些术语联合起来时,就提供了对ADC总误差的一个了解(图3)。对于多数应用,没有必要细究这些ADC的规格,但工程师应充分理解这些值对所用ADC的意义。你可以选择使用外接ADC,或一款内置ADC的微处理器。外接ADC有较高的精度,在速度和分辨率方面都有较高的性能。不过,大多数传感器的应用要求都能很好地适合于微控制器内置的ADC。
另外一种选择是采用可配置ADC,它是微控制器中包含的可编程逻辑块。集成的数字与模拟可编程块可以为每种传感器应用动态地定义可配置外设。这些块包括计数器、PWM(脉冲宽度调制器)、UART、SPI(串行外设接口)、放大器、滤波器、ADC和DAC。开发者还可以在一只器件内实现放大与滤波级,从而集成整个模拟信号链(图4)。采用可配置ADC可以得到比无源元件方法更干净的设计。另外,可以动态地重新配置这些块,这些就可以选择将这些系统资源重新利用于其它功能。
图4,开发者可以在一只器件内实现放大级与滤波级,集成整个模拟信号链。
传感器在继续向很多市场渗透,为人们带来更多的控制与更大的灵活性。传感器通过对环境的管理例如温度监控提高了可靠性,通过反馈机制改进了性能,并实现了新型用户接口。对于很多这些设计来说,微控制器中集成的ADC提供了足够的粒度和精度。不熟悉模拟设计的开发人员可能会在传感器与微处理器之间的模拟信号链上遇到麻烦。
多级模拟信号路径的实现似乎很复杂,尤其是对那些主要在数字域做设计的工程师们。不过,将模拟信号域分隔为多个放大、滤波和ADC级后,数字系统开发者就可以更容易和更精确地捕捉一系列工业与消费应用中的传感器数据。另外,不断涌现的IC、可配置ADC和滤波器设计工具等都可以大大简化传感器的设计。