传感器概述 嵌入式系统中的嵌入式芯片所处理的信号分为两类:数字信号与模拟信号。模拟信号通常来自于传感器,图1所示为部分传感器的照片及其检测的物理量,这些传感器大都输出模拟的电信号。
传感器的应用非常广泛,现代人的生活已经越来越离不开传感器。例如在消费类电子中手机的麦克风即是一个典型的声音传感器;汽车中更是使用了上百个传感器;在工业安全、能源检测、工业控制以及过程控制中同样使用了各式各样的传感器。
一般情况下,传感器输出的模拟信号较小,而且伴随有噪声。因此嵌入式芯片在处理传感器信号之前,必须先将输出的信号放大并滤波,然后通过AD转换器将模拟信号转换成数字信号后再进行进一步的处理。因此传感器的接口系统中必然用到放大器、滤波器以及AD转换器,在选择这些器件的时候,需要以下因素:放大器的放大倍数与功耗,滤波器的类型、拓扑结构以及滤波器的阶数,对于低通滤波器还需考虑截止频率。目前很多嵌入式芯片都包含AD转换器,因此还需考虑针对特定传感器时,其片上的AD转换器类型、分辨率、采样速度及精度是否可以满足系统设计要求,如果不能满足设计要求,必须选用专用AD转换器,此时除了要考虑上述要求,还应考虑AD转换器与嵌入式芯片的接口方式和数据传输速度。
图2所示的是通用传感器系统框图,传感器输出的幅度比较小的原始信号经放大器放大后,不仅信号被放大,同时噪声也被放大。通过滤波器将噪声滤除并发送给AD转换器进行AD转换,这一过程中噪声及失调与漂移的误差对信号的质量造成很大的影响。通常噪声来源有四个:热噪声、传感器本身的噪声、电路板布线不合理和不理想所产生的噪声以及射频干扰。而失调与漂移误差主要来自元器件和电路板的布局与布线。由于任何运算放大器都不可能是理想放大器,其中一个重要的技术指标是失调电压,而由元件和电路板的布线所构成的电路系统中,电流和电压的信号随着温度或外部电压的变化会产生信号的漂移。
基于可编程数字模块和可编程模拟模块架构的PSoC芯片除了具有一般MCU CPU核和其他的数字处理能力外,还包括模拟模块的阵列和数字模块的阵列,其中所有模拟模块和数字模块都是可编程的,通过编程数字模块可以实现特定的数字功能,而通过编程模拟模块也可以实现特定的模拟处理功能,因此PSoC芯片是一个真正具有混合信号处理能力的系统级芯片。此外,PSoC芯片数字模块之间、模拟模块之间、数字与模拟模块之间以及模拟模块和数字模块与I/O接口之间的路由非常丰富并且强大,这些互联和路由中还带有部分逻辑运算功能,方便了用户的使用。图3和图4表示了模拟模块与数字模块分别能实现的功能,可以看到模拟模块分为CT型和SC型,其中CT模拟模块称为连续时间类型的模块,SC型模拟模块称为开关电容型模拟模块。
降噪:滤波器
系统中的噪声源除了上述的热噪声、电路板噪声、传感器噪声和外部环境的噪声外,还包括1/f噪声和失调引起的噪声,在系统中必须针对不同的噪声选择不同的滤波器,如:低通滤波器可以滤除高频噪声,高通滤波器滤除低频噪声,带通滤波器滤除通带以外的噪声,带阻滤波器滤除特定频率噪声。
低通滤波器
低通滤波器是最常用的噪声滤波器,用PSoC芯片的CT模拟模块和SC模拟模块都可以实现低通滤波器。通过外加少量的阻容元件,可以用CT模块实现Sallen-Key型低通滤波器;而使用SC开关电容模拟模块则不需要使用任何外部元件即可实现低通滤波器,滤波器的性能参数通过开关电容的比率和时钟频率进行调节,二者结构如图5所示。
带通滤波器
带通滤波器用于滤除信号频率带宽以外的噪声,用PSoC的开关电源模拟模块可以实现这一功能,其Q值与中心频率在一定范围内可以由用户设定,图6中左图所示的是开关电容模块配置的带通滤波器,右图为典型的带通滤波器的频率特性曲线。其传递函数表达式为:
陷波滤波器
陷波滤波器即带阻滤波器,可以滤除某些特定频率的噪声,用PSoC开关电容模拟模块可以实现这一功能,其中心频率以及陷波深度可以由用户调节。图7中左图是由用两个开光电容模拟模块配置的二阶的陷波滤波器,其传递函数如下,右图为一个典型陷波滤波器的频率特性曲线。
图7左图是由用两个开光电容模拟模块配置的二阶的陷波滤波器,右图为一个典型陷波滤波器的频率特性曲线。
在PSoC基层开发环境中,为用户提供的基于开关电容型滤波器用户模块可以实现二阶滤波功能,如果有系统需要对噪声信号进行更多的抑制或需要得到比较好的频率特性,可使用多阶滤波器。PSoC芯片最多可实现8阶滤波,但在这种情况下由于PSoC的开关电容模拟模块将全部被占用,因此AD转换和DA转换功能将无法实现。此外还可以使用连续时间模拟模块实现由Sallen-Key型滤波器与开关电容型滤波器构成多阶滤波器,实现系统所需的频率特性以及对噪声的更多抑制,这样就有多余的模拟模块实现AD或DA转换或其它外设功能。
由前述实例中各个滤波器的频率响应特性曲线我们可以看到,不同类型的滤波器具有不同的幅度和相位响应,不同的滤波器可以滤除不同的噪声;其次,利用PSoC的开光电容模拟模块可以构建各种滤波器,最多可用来构建8阶低通、带通和陷波滤波器。在PSoC的基层开发环境当中,也提供了滤波器的设计向导,用EXCEL电子表格设计的工具可以帮助用户轻松地实现各种类型的滤波器设计;第三,在赛普拉斯网站上也提供了相关的笔记。
消除失调和漂移产生的误差
采用相关双采用技术实现热电偶信号的测量
一个K型热电偶灵敏度为40.7uV/℃,如此小的电压变化必须通过放大器放大才能被检测到。由于CMOS运算放大器存在1/f噪声,而频率为0时1/f噪声就是运放的失调电压,滤波器可以滤除噪声但无法消除失调电压,同样AD转换器对于失调电压也无能为力。虽然积分型AD转换器和Delta Sigma型AD转换器有较好的噪声特性,但都不能消除失调;SAR型AD转换器有较高的AD转换速率,但同时更容易受到噪声影响,也不能消除由失调电压带来的偏差。
相关双采样也称为CDS,其实施步骤为:
1)给热电偶信号加一个偏置电压,偏置电压须大于运算放大器的失调电压,再将热电偶的信号和偏置电压经过一个多路选择器输入到运算放大器的输入端;
2)先就多路选择器选择偏置电压,仅对偏置电压和噪声信号进行测量,此时放大器的输出电压为:
VTC-OFFSET=VN+VOFFSET
其中VN为噪声信号电压,而V_{OFFSET}为包含有运放失调的偏置电压;
3)测量含有噪声热电偶信号,将多路转换器的开关切换到热电偶信号的输出,这时运放的输出电压包括三个部分,除了前面提到的两个部分外,还包括热电偶的信号V_{TC},即:
VTC-SAMPLE=VTC+VN+VVOFFSET
4)对噪声测量结果与信号测量结果进行运算处理,由于噪声的采样和信号的采样不是在同一时刻进行,为了对噪声测量的结果与信号测量的结果进行运算,就必须先对噪声测量的结果进行预处理,由于噪声测量是对信号测量的前一次测量,作为一个离散的信号,它的结果必须乘以1/Z,即:
5)计算它们之间差值:
通过采用双线性变换将其变到S域,从而可以消除失调电压的影响:实际上包含有失调电压的VOFFSET是一个不随时间变化的量,在计算差值时,它们被相互抵消,此时得到的电压已经与失调无关,仅受噪声的影响:
6)通过软件IIR滤波器消除噪声影响,获得真正热电偶信号电压。图8中,蓝色的曲线是1/f噪声的频率特性曲线,绿色的曲线是经过CDS计算和IIR滤波以后得到的频率特性曲线,从该曲线中可以看到失调的影响已经降为0,而0.1Hz时的1/f噪声也降低了40个dB。
图8蓝色的曲线是1/f噪声的频率特性曲线,绿色的曲线是经过CDS计算和IIR滤波以后得到的频率特性曲线。
小电阻测量
一般情况下,测量电阻使用欧姆定律,施加电流,测量电压,但小电阻必须使用大电流才能获得足够高的分辨率,使用大电流来测量小电阻并不是一个经济、合理的方法,一种测量小电阻的方法是使用交流调制和滤波,对PSoC来讲,交流的实现和滤波处理是很容易实现的,如图9所示,使用一个DA转换器产生一个低频的交流信号来驱动测量电阻RTest,RTest上的交流信号通过PSoC放大器和滤波器来进行放大和调理。经过PGA放大以后的交流信号先被送入到带通滤波器,用于滤除噪声以后,再被送入到低通滤波器,后者将交流信号恢复为与R的阻值大小成正比的直流信号,最后由AD转换器将其数字化,要注意,用于产生信号的DA转换器,其时序必须同低通滤波器的时序保持一致。
在这一例子中使用PSoC进行信号处理的优势包括:1、使用DA转换器可以很容易的产生交流的驱动信号;2、交流的激励信号经过开关电容、带通滤波器以后产生的是零相移;3、PSoC可以自动产生同步解调器的时钟信号;4、带通滤波器的带宽可以设置得非常狭窄;5、带通滤波器与低通滤波器配合,可以滤除通带以外的冲击干扰和随机的噪声。
更多详细内容,敬请登陆中电网在线座谈网址:
http://seminar.eccn.com/080820/jchf.asp
问答选编
问:PSoC的硬件上有哪些保护措施?瞬时的高压脉冲信号是否会损毁硬件?
答:每个I/O口都有对地和对Vdd的反向并接二极管,可对瞬时的正或负的高压脉冲信号实施钳位。
问:在PSoC中能否使用传统的热电偶温度传感器或热敏电阻作温度传感器的输入设备?其读数校准是否还要在PSoC的外部外接元件进行?
答:可以采用热电偶或热敏电阻,读数校准可以在PSoC内部做。
问:信号通过PSoC29466芯片进行AD转换,然后由232口上传给电脑,在电脑上用Labview显示信号波形。问题是信号在100hz以下时候,波形正确,在100hz以上波形杂乱,请问是什么原因?
答:需要知道AD转换的分辨率和转换时间。是不是采样频率低于奈奎斯频率?
问:有几路输入通道?如果需要更多的触摸按键的话,可否可以通过其他方式来拓展?
答:目前最多可以48路。如果需要更多触摸按键的话,可以采用键盘矩阵方案。
问:PSoC内置ADC的类型、位数都是可选择的吗?ADC的最高位数是多少位的?
答:是的,可选择的。最高14位。
问:PSoC的I/O口如何设置中断优先级?
答:PSoC的所有I/O口共用一个中断矢量,所以如果需采用多个I/O口作为中断源,需在中断服务程序里去判断是哪一个I/O口产生了中断,那么自已可以写程序决定每个I/O口的中断优先权。
问:FirstTouch PSoC与PSoC Express有什么区别?
答:FirstTouch PSoC是PSoC入门工具,是硬件;PSoC
Express是一种图形化的软件开发环境。
问:在超声波测距的产品中,PSoC能不能实现AGC放大的功能?
答:可以,PSoC内部有可编程运算放大器,通过写应用程序 控制可编程运算放大器就可以实现AGC放大的功能。
问:贵公司的产品PSoC是不是可视化编程的?
答:可以通过PSoC Express软件进行可视化设计,不需要编程即可,还可以使用PSoC designer,可以使用C或汇编语言。
问:请问如何才能设计成高性能、低功率、体积小的系统?在设计之前需要考虑那些方面?
答:使用PSoC是一个有效的途径,因为PSoC是模拟数字混合信号处理的系统在片芯片。针对很多相对复杂的设计, 用PSoC可以实现单芯片方案。
问:偏移误差和失调误差是由什么因素引起的?哪种误差的数值相对较大?
答:失调误差是由元器件制造的工艺和材料的限制而产生的,漂移误差主要来自电源的波动和负载的变化。
问:传感器是将物理量转换成模拟电参数的器件,而嵌入式微控制器是数字器件,它们之间的接口要注意哪些问题 啊?
答:这需要详细讨论,简单地说,要注意噪声干扰和信号处理的问题。
问:我现在正在采集一个模拟温度信号电压,先用的是NTC电阻,此电阻是否还要外接一个运放?我当前是直接将 此引脚连接至单片机的ADC引脚上的。
答:要看NTC电阻的温度变化率和你需要的有效温度范围才可以决定是否还要外接一个运放。
问:同一个PORT中,既有模拟端口也有数字端口,是否会影响模拟信号的精度?
答:PSoC不会,因为模拟I/O与数字I/O在硬件上的通路不一样。
问:请问嵌入式系统中模拟传感器的接口设计是否会增加成本?
答:应该说在总体成本上会有降低,因为减少了外部器件。
问:元件容错度是导致模拟/数字转换器信号路径出现错误的其中一个原因,而数字电路也会将噪声带进供电干线, 这是信号路径出现错误的另一个原因。噪声会通过供电引脚混入模拟/数字转换器及运算放大器。如何减低 供电线路所产生的噪声?
答:供电线路所产生的噪声从下面几方面改善:1、合理的 PCB布线;2、在模拟/数字转换器及运算放大器芯片的 电源脚加旁路电容;3、软件的数字滤波。
问:嵌入式系统中模拟传感器的接口工作频率最高能达到多少?
答:接口工作频率一般在1~2MHz。
问:在21×34/CSD的使用中,能同时应用BUTTON和SLIDER吗?如果去掉SLIDER占用的6个I/O,剩下最 多能应用多少个BUTTON(一个I/O用作一个BUTTON)?
答:可以同时设计BUTTON和SLIDER。一个I/O可以连接一个BUTTON,可以减去滑条占用的I/O数,再减去调制电容Cmod和放电电阻Rb连接的I/O口共两个,剩下 的都可以做按键。
问:滤波器是不是对所有的信号波都会产生损失,不管这种 信号波是不是我们想要的?滤波器的阶数越多,损失是 不是越大?
答:这也就是选择滤波器和滤波器参数的关键所在。滤波器的阶数越多,对噪声的抑制就越强,信噪比就越大。
问:PSoC芯片对瞬时脉冲能否自我保护?
答:这要看瞬时脉冲持续时间有多久、脉冲幅度有多大。如果仅是ESD,PSoC可以承受2KV。
问:将PSoC模块直接用于甲烷等可燃气体检测,测量时有什么需要注意的事项吗?
答:取决于甲烷等可燃气体检测传感器的输出信号的特征。
问:使用外部的ADC器件与PSoC接口比,使用内部ADC需要增加哪些接口编程?开发时是不是和使用其他MCU接口一样?
答:使用外部的ADC与使用其它MCU一样,需开发相应的接口驱动程序。如果使用PSoC内部的ADC用户模块,那我们已做好了接口驱动程序,并且以API函数形式提供给用户调用。
问:CSA、CSB、CSD、CSR的具体区别是什么?CYPRESS有CSR的方案吗?
答:CSA、CSD、CSR是cypress电容式触摸感应式实现方式,CSR是早期的方案,建议使用CSA和CSD。
问:在处理超声波传感器时,用PSoC来设计主要注意什么?
答:用PSoC来设计可以使用带通滤波器滤除超声带宽以外的噪声。 |