智能传感器信号处理的概念
传感器是用于检测、监视和响应(如有需要)温度、压力、湿度和运动等物理参数的器件。它们是许多实际系统不可或缺的组件,在工业、消费电子、汽车、医疗和军事方面应用非常广泛。过去,从传感器获取的数据被直接发送到中央单元,然后中央单元可能会使用分立式硬件或数字逻辑对传感器数据执行后处理或显示。随着8位单片机(MCU)等嵌入式处理器解决方案的出现,将程序固定的中央硬件替换为可通过编程来执行应用所需特定任务的MCU所带来的优势愈加明显。但是,8位MCU只能执行计算密集度不大的系统基本处理任务。
传感器信号融合
传感器应用复杂度的飞速提升使得将更强大的智能嵌入到传感器接口势在必行。很多应用均采用多个传感器来获取各种测量数据,并且采用十分先进的方法对数据进行处理。在某些情况下,必须同时处理来自多种传感器的信号(因而需要利用同一个MCU),这种情形可以称为“传感器信号融合”。每种类型的传感器都有自己的信号特性,并且需要通过不同的后处理来从中提取有用的信息,这就会增大CPU计算量和外设数据处理量。
容错
对于处理器而言,监视传感器信号和检测可能会引起系统完全失效的错误也非常有用;检测出错误情况之后可完全关闭系统或切换到冗余备份传感器。如果在错误检测流程中再加入一个步骤,就可以在故障实际发生之前对其进行预测,这将大大简化现场硬件维护和保养。此类“容错”算法和技术可能会相当复杂,需要更高的计算能力、更大的存储容量和更丰富的外设功能,因此有必要升级到16位MCU。
分布式处理
在许多应用中,传感器物理地分散在较广的区域内,如分散在大型建筑或工厂内,或分散在汽车的不同零部件内。对于这样的分布式系统来说,集中式处理/控制方法往往被证实无效,或者在最佳情况下仍然低效。要减轻中央控制单元在处理和数据存储方面的压力,最好将处理能力分散到多个靠近传感器或者甚至与传感器集成的MCU上。但是这种“分布式传感器处理”方法需要各种强大的信号转换和通信外设。
智能传感器处理信号链
传感器信号处理包括各种各样的嵌入式应用,但是我们可以概括地定义代表传感器处理系统特点的通用信号链。传感器应用的主要组件是传感元件(也称为变换器)、信号调理电路(多数是模拟电路元件),以及嵌入式微处理器(或者,在某些情况下是简单硬连线的数字逻辑电路或专用IC,即ASIC)。
传感元件
传感元件(实际上就是“传感器”的意思)是用于将感兴趣的物理参数转换成某种电信号的器件。智能传感器处理应用经常使用多个传感元件,它们或者属于同一类型(例如空调系统中的多个热敏电阻),或者属于不同类型(例如一台工业机械设备中的热电偶和一氧化碳探测器)。每种类型的传感器都有自己的一套信号调理和数据后处理要求。
可以根据所测量的物理参数对传感元件进行广义分类。例如:温度传感器,压力传感器,流量传感器,气体/化学传感器,声音/超声波传感器,位置/运动传感器,加速计,图像传感器,光传感器等。
也可以根据传感器输出的电信号的类型对传感器进行分类。概括而言,共有4种常见的传感器类型:电压传感器、电流传感器、频率传感器、数字传感器。
传感器的信号调理电路
简单地说,信号调理电路将传感元件的输出信号映射到其余电子电路或应用软件可以处理的范围内。传感器应用所需的具体信号调理电路取决于所采用的传感器的类型。例如,某个传感器根据所测量的物理参数的大小产生输出电压,其需要的信号调理能力可能不同于产生可变电阻的传感器。从本质上说,传感器应用均有以下共同的信号调理要求。
首先,传感器产生的信号必须尽量避免混入噪声。而且,信号的频谱(也就是信号带宽)必须根据某些约束条件限制在特定的范围内。因而常常有必要使用一种称为防混叠滤波器的器件。其次,传感器产生的信号(不管是电压、电流还是频率)的振幅通常较小。为了准确处理信号,使系统尽量不受噪声的影响,需要将信号放大。
除了滤波和放大之外,还需要使用模数转换器(ADC)将信号转换成数字形式,这增加了信号调理要求。除了要放大信号,可能还需要对信号进行转换,使其能适应不同的ADC参考电压。但是,很多ADC,尤其是MCU或数字信号控制器(DSC)中包含的ADC,仅对单极性输入有效。也就是说,输入电压不能相对于地在正负电平之间变换。在这种情况下,就需要使用电平位移器。
图2举例示出了某个具体的传感器处理应用所需的信号调理电路。在本例中,使用一个三运放差分放大器将热电偶产生的差分输出电压放大,然后送入片上ADC的输入端。与此相似, ADC的另一个输入可用于补偿热电偶引线结点和PCB(印制板)布线交汇处产生的电压的影响(更多地用于补偿后者)。
图2 热电耦的信息调理
传感器的处理器
即使在经过相当多的信号调理之后,若可从随时间变化的电信号中提取出相关信息,传感器产生的信号才有用。这一提取过程通过嵌入式微处理器来完成,传统上使用MCU或DSP。因此,显而易见,处理器的功能以及其上运行的应用软件的功能才是系统中最关键的因素——这就是为智能传感器处理系统提供所有“智能”的处理器子系统。
处理传感器的输出的第一步是将模拟信号(通常被调理成提供变化的模拟电压)转换成数字形式。由此可以推断,ADC在决定整个传感器处理系统的精确度方面起着至关重要的作用。ADC必须提供足够高的分辨率和具有较好的精度特性,如积分非线性(Integral Non-Linearity,INL)和微分非线性(Differential Non-Linearity,DNL)。
通常,可能需要对从传感器获取的数据执行大量的后处理操作。此类操作的例子如下。
● 数据的有限冲激响应(Finite Impulse Response,FIR)和无限冲激响应(Infinite Impulse Response,IIR)滤波,主要用于消除噪声。可能需要不同类型的滤波器。例如,如果目标仅仅是限制信号的带宽和去除高频噪声,则使用低通滤波器或带通滤波器比较合适。另一方面,如果系统易受电源引入的噪声的影响,则使用高通滤波器或陷波滤波器(具体取决于所需信号的频谱)更合适。
● 进行快速傅里叶变换(FFT)计算以分析数据,以便将频域数据用于进一步的处理阶段。这一操作对于信息包含在输出信号的频率中的传感器尤为重要,例如基于多普勒效应的超声波传感器或声音传感器。
● 传感器数据的静态或周期性校准。校准是通过提供一组已知的传感器输入并测量相应的输出来设置传感器输出与所需物理参数之间的映射的过程。
● 传感器输出与所测量的物理参数之间通常不是线性关系。在此类情况下(例如热电偶),必须将采样后的传感器数据“线性化”以补偿输入/输出之间的这种非线性关系。该过程通常会涉及高密集度的计算,如应用高次多项式。
● 根据输入数据的大小对其进行换算和归一化。此类计算要求传感器接口使用的处理器具有相当高速的数学运算能力,普通的16位MCU架构无法满足要求。
此外,在很多应用中,并不只是简单地对传感器信号进行分析和解读,还需要执行控制操作对传感器信号进行响应。这些操作可能包括以下任务:
● 调整传感器信号分析软件所使用的校准参数,以便可以正确分析传感器输出;
● 向其他处理子系统传送数据,例如,汽车轮胎上的胎压监视器向仪表盘定期发送压力数据并发送警报;
● 在互联网上更新数据,例如定期读取电表读数或定期收集工业数据采集系统的数据;
● 控制电机、电源、继电器、开关和其他器件;
● 容错措施,如修正与故障传感器对应的数据或切换到其他传感元件。
传统上使用数字信号处理器(DSP)执行此类数学计算密集的任务。不过,DSP本身(没有关联MCU)并不是非常适用于传感器接口,理由主要有四个:
● DSP器件没有灵活的中断结构;
● DSP器件在控制位(例如单独的I/O引脚)方面的效率不高;
● DSP器件在很大程度上依赖于片外存储器和外设;
● DSP器件的引脚数一般都比较多,但是传感器处理所需的引脚数应该要非常少,这一点非常重要,因为很多应用一般都有空间限制,并且对成本敏感。
另一种适用于高性能智能传感器系统的有效单片架构平台是16位数字信号控制器(DSC),如MicrochipTechnology(美国微芯科技公司)的dsPIC33F系列。DSC是一种创新的混合处理器架构,它集16位MCU的控制功能与丰富的DSP功能于一身。DSC架构非常适用于提供周期性中断,以及捕捉来自多个传感器和控制输入端的数据。如果需要,DSC架构可以与分布式系统中的其他控制器模块共享数据。另一方面,DSC的CPU支持一系列强大的DSP指令和灵活的寻址模式,因而能够快速准确地进行算术和逻辑运算。现在,让我们来深入了解使DSC架构适用于智能传感器信号处理的典型特性。(未完待续)