【英飞凌XENSIV™ PAS CO2传感器(5V版)】2、全面了解传感器
[复制链接]
一、前言:
咱们还没有详细查看数据手册,不过作为同系列的传感器,这一款的主要原理的应该是相同的,大部分的内容应该也是通用,上一篇看到,主要的差异就是出现在发射器的供电电压和精度方面了,咱们本节也是主要回顾一下英飞凌XENSIV™ PAS CO2传感器。
二、工作原理:
来自红外光源的光脉冲通过专门调谐到CO2吸收波长(λ = 4.2 μm)的光学滤波器(发射体红外光源(黑体辐射体)发射光谱较宽,滤光片仅允许4.2 μm波长)。测量室内的二氧化碳分子吸收滤过的光,导致分子抖动,并在每次脉冲时产生压力波。这被称为光声效应。然后,声音被一个专门为低频工作的声波探测器检测到,微控制器将输出转换为CO2浓度读数。为了提供准确的二氧化碳传感信息,吸收室与外部噪声隔音。
三个基本模块决定传感器的表现表现:
模块1:通过气口适当的CO2分子扩散;
模块2:来自发射器的选择性4.2 μm光
模块3:仅由CO2分子激发引起的声压变化由麦克风检测。
三、结构设计推荐
为此设计时我们需要适当的操作:
1、适当的环境耦合
为确保CO2分子在传感器腔内实现有效扩散,需遵循以下关键条件以达成理想耦合效果:
- 装置定位需精心考量,应置于CO2分子易于渗透之处,并配备足够宽敞的开口,建议尺寸不小于14mm × 14mm,以促进气体流通;
- 应用腔室设计应避免CO2浓度积聚,其后部空间应精确控制在约3.89 cm³(即1.8 cm × 1.8 cm × 1.2 cm),以确保气体均匀分布,无滞留现象。
2、防止直接气流流动
传感器不应直接放置在气流中。根据流量的不同,应用腔内的压力可能会发生变化,这可能会由于随机压力变化而引入额外的误差。
3、与热源隔离
在0°C至50°C的工作范围内,XENSIV™PAS CO2传感器在很大程度上补偿了温度的影响。内置的温度传感器用于这种补偿。如果传感器旁边有热源,设备将不会检测到环境温度,而只会考虑板温度。因此,如果热源影响温度传感器的温度测量,补偿方案可能会受到干扰。因此,在理想的工作条件下,建议传感器与邻近的热源保持隔离。
4、隔振
PAS技术的检测器是一个MEMS麦克风,可以量化气腔内的微小压力变化。低频振动可能会产生类似的压力变化,传感器可能会认为这种小的压力变化是真正的二氧化碳浓度变化。因此,建议确保传感器与直接振动源保持隔离。如果不可能确保隔振,建议首先确定振动源,并以振动来自传感器x方向的方式放置传感器。此外,在连续模式和快速采样率操作期间,建议启用降噪滤波器(逐步反应IIR),可以进一步减少了振动的影响。
5、与阳光隔离
如果传感器暴露在阳光下,它可能会升温并产生温度梯度。这种温度梯度可能会阻碍传感器进行适当的温度补偿,因此建议将传感器与阳光隔离。
6、非冷凝
该设备只能用于非冷凝操作。电路附近的积水可能会对传感器造成不可修复的损坏。
7、理想腔体推荐示意
四、传感器信息
1、工作框图
XENSIV™PAS CO2传感器模块PCB集成了PAS传感器、微控制器和MOSFET。PAS换能器包括一个具有黑体辐射的专利红外发射器,它被MOSFET周期性地截断,一个调谐到CO2波长的窄带光学滤波器和英飞凌的MEMS麦克风,它作为一个压力传感器,并优化为低频工作。
2、引脚定义
这是一个最小封装形态的引脚定义:
mini-board实际上就是在最小形态的基础上增加了一个基板,并且将所有的引脚通过标准2.54 mm引出,引脚定义是一样的,这样的布局不仅方便进行所有信号和功能的测试,也支持回流组件,我个人是比较喜欢mini-board,拆卸安装都非常方便,测试也很便捷。
3、硬件参考设计
我们这里主要介绍一下以IIC接口为主的设计规范,当然了这款传感器支持多种接口(串口或者PWM),接口的不同主要是对应的寄存器和访问方式不同,不过都是大同小异的。
参考配置如下:
通过此配置,设备将在空闲操作模式下启动。内部上拉存在于PWM_DIS引脚上,数字接口都是3.3V的,只有发射器采用5V供电,其实这里可以看出主要的优化就是减低了供电要求,5V在我们小设备的供电系统中还是普遍存在的,12V说实话不是很常用。
4、软件接口(IIC为例)
时序特征:
上电之后需要一定的稳定时间才能进行测量,这个在应用到的时候也是需要满足这个要求的,12V的版本中并没有一个典型时间的推荐,这就导致无法确定稳定状态,5V版本中提供的是60s。
功耗
注意这里的VDD5峰值电流,比12V版本要大了1倍,不过整体换算下来峰值功率是里差不多了,整体的平均消耗也是差不多的。
系统相应
这里可以看到,两个版本各有特点,5V版本的精度方面比12V版本要差一点,不过这么小的差异还是可以接受的,5V版本的反应时间大大提升了,t63时间提快到了55秒。
接口信息
本次选用的IIC接口,并以此为例进行简单的介绍。
在使用引脚模拟IIC时要注意时序要满足时间;
数据格式:
注意:由于I2C总线系统的布线和配置,SCL和SDA信号线上的端口驱动程序需要在开漏模式下工作。这些线路的高电平必须由一个外部上拉设备保持,在100kbits /s的速度下大约10 kOhm,在400kbits /s的速度下大约2 kOhm。
本设备IIC接口的主要特点:
只能是从机;
IIC时钟频率:100khz和400khz(实际上模拟时候并不确定具体的频率);
7位从地址:0x28;
No CRC;
支持8位寻址模式(7位地址+读写);
支持批量读写(设备自动增加地址);
不支持地址0x00;
这里的IIC接口参数和特点和12V版本是完全一致的,包括从机地址,可能想要将其直接作为同系列不同版本的直接替换,毕竟两款传感器也就只能选择一个进行设计。
四、工作模式
设备的状态分两种:激活和非激活。
在激活状态下,控制设备的CPU正在运行,可以执行任务,例如:运行测量序列,服务中断,等等。
当设备没有特定的任务要执行时,它进入非激活状态。从活动状态到非活动状态的转换可以发生在测量序列的末尾。
唤醒设备的方式:
在串行通信接口上接收消息;
在PWM_DIS引脚上下降沿;
在连续测量模式中内部生成测量请求。
工作模式:可以通过串行通信接口使用位字段MEAS_CFG.OP_MODE来编程控制。
传感器模块支持三种工作模式:
空闲模式:设备不执行任何二氧化碳浓度测量。设备一直处于非活动状态,直到它在回到非活动状态之前很快变为活动状态,以便为中断提供服务。
连续模式:在连续模式下,设备周期性触发CO2浓度测量序列。一旦一个测量序列完成,设备回到非活动状态,并自动唤醒进行下一个测量序列。测量周期可编程从5秒到4095秒。
单发模式:在单发模式下,设备触发一次测量序列。在测量序列结束时,设备自动回到空闲模式。
五、数据处理
我们可以通过一面几种方式对采集到的二氧化碳数据进行调整。
1、压力补偿
传感器获取的CO2浓度值依赖于外部大气压力,为了弥补这一影响,应用系统可以通过写入特定的寄存器PRES_REF_H和PRES_REF_L来提供大气压力的值。在测量序列结束时,设备读取压力值,并在将其存储到结果寄存器之前对CO2浓度值进行补偿。
2、基线偏移自动校正
为了校正运行过程中由于老化导致的慢漂移,设备支持基线偏移自动补偿,每运行一周,设备会计算一个偏移量来校正设备的基线。设备必须与参考浓度(例如,二氧化碳浓度为400ppm的新鲜空气)接触至少30分钟,以确保适当的基线补偿。设备支持不同的补偿配置。ABOC设定点只能设置在350和1500ppm之间。
3、强制补偿
强制补偿提供了一种加速偏移补偿过程的方法。在启用强制补偿之前,设备应物理暴露于参考CO2浓度。该设备将使用接下来的三次测量来计算补偿偏移量。用户应确保在此期间持续暴露于参考二氧化碳浓度。在实施强制补偿方案时,建议每10秒测量一次。当三个测量序列完成后,设备自动重新配置,新计算的偏移量应用于随后的二氧化碳浓度测量结果。强制补偿偏移量可以通过使用相应的命令(SENS_RST = 0xCF)存储到非易失性存储器中。
4、报警阈值
该设备可以通过中断配置,以便每次获得新的CO2浓度数据时执行告警阈值检查。在每个测量序列的末尾,计算出的CO2值(在所有适用的偏移补偿之后)与ALARM_TH_H和ALARM_TH_L中的报警值进行比较。如果超过阈值,则置位MEAS_STS.ALARM。这也将引脚INT设置为活动级别,因为配置为警报。通过读取寄存器MEAS_STS.ALARM_CLR清除MEAS_STS.ALARM。
六、监控机制
传感器可以检测个重要部分的运行情况:
机制 |
描述 |
传感器就绪状态 |
每次上电复位后,SENS_STS.SEN_RDY置位以确认传感器已正确初始化。 |
暂存器 |
为了检查串行通信接口通信层的完整性,可以使用寄存器SCRATCH_PAD。这个寄存器可以使用这个内存字段写入任何值,并验证设备接收到的数据是否正确。
它也可以用来验证软复位已经执行,使用以下顺序:
1.用户写入一个非默认值来注册SCRATCH_PAD。
2.用户读回寄存器SCRATCH_PAD,以验证写命令已被正确执行。
3.用户写入寄存器SENS_RST触发软复位。
4.用户读取寄存器SCRATCH_PAD以验证它已被重置为默认值。 |
VDD5V验证 |
在上电和每个测量序列开始时,设备自动测量VDD5处的电压。如果测量的电压超过设备的规定工作范围,SENS_STS.ORVS置位。测量序列依然可以正常完成。SENS_STS.ORVS可以通过设置位SENS_STS.ORVS_CLR来清除。 |
内部温度验证 |
在每个测量序列的开始,该设备自动测量其内部温度。如果测量到的温度超出设备规定的工作范围,SENS_STS.ORTMP置位。测量序列依然可以正常完成。SENS_STS.ORTMP可以通过设置位SENS_STS.ORTMP_CLR来清除。 |
|