接下来我们要对传感器进行去那面详细的了解。cd4x是盛思锐的第二代光学CO2传感器系列。该传感器系列基于光声NDIR传感原理和盛思锐的专利PASens®和CMOSens®技术,以具有吸引力的价格和小尺寸提供高精度。SMD组件允许成本和空间有效的传感器集成与最大的设计自由相结合。通过内置SHT4x温湿度传感器实现片上信号补偿。
一、基本原理
二氧化碳是室内空气质量(IAQ)的一个关键指标,因为高水平的二氧化碳会损害人类的认知能力、睡眠质量和健康,并可能是空气传播疾病风险增加的一个指标。SCD4x实现智能通风和空调,有助于提高能源效率和人体舒适度。此外,基于SCD4x的室内空气质量监测器和其他连接设备可以帮助维持低二氧化碳浓度,以创造健康、高效的环境。CD41传感器是一款由瑞士Sensirion公司生产的高精度CO₂传感器,采用了基于红外光谱的非分散红外(NDIR)技术进行气体检测。其工作原理主要依赖于CO₂气体对特定波长红外光的吸收特性。传感器内部包含一个红外光源、一个光路系统和一个光电探测器。红外光源发射特定波长的红外光,这些光线穿过气体样本。CO₂分子吸收了部分红外光的能量,剩余的光线被探测器接收。根据透过光的强度变化,传感器计算出CO₂的浓度。SCD41采用了温湿度补偿算法,可以消除环境温湿度变化对测量结果的干扰,从而提高测量精度。此外,SCD41还内建了数字输出接口,方便与微控制器或其他设备进行数据交互。其低功耗设计使其适合长期监测应用,如空气质量监测、智能家居等场景。二、基本框图
三、引脚定义
引脚虽然挺多,实际上都是未定义的引脚,主要接口还是这么几个。
VDD和VDDH用于为传感器供电,必须始终保持在相同的电压,即两者应连接到相同的电源。VDD和VDDH必须相互连接,靠近客户PCB上的传感器。对于传感器工作,必须选择低噪声电源,如低压差稳压器(LDO),200mA以上。由于这些传感器的内部调节,可以观察到更高的瞬态电流(在微秒的时间尺度上)。由于引线的寄生R/L/C以及电源的负载调节特性,这些瞬态电流在典型的设计场景中可以忽略。此外,为了避免干扰传感器调节,没有传感器负载的电源电压变化不得超过30毫伏(例如,由其他负载引起的波纹或下降)。
四、典型电路
SCD4x使用基于nxp的I2C总线规范和用户手册的I2C通信。支持I2C标准和快速模式操作。SCL用于同步主(微控制器)和从(传感器)之间的I2C通信。SDA引脚用于向传感器传输数据和从传感器传输数据。SCL和SDA线都应连接到外部上拉电阻(例如 10 kΩ)。为了避免信号争用,微控制器必须只驱动SDA和SCL低电平。请注意,上拉电阻可能包含在微控制器的I/O电路中。
五、接口信息说明
SCD4x可以通过发送它的7位I2C地址来寻址,如表8所示,后面跟着第八位表示通信方向:“0”表示“写”请求,“1”表示“读”请求。
发送和接收传感器的数据由16位命令和/或16位字的序列组成(每个被解释为无符号整数,最重要的字节首先传输)。每个数据字立即由一个8位的CRC继承。在写方向上,必须传输校验和。在读取方向上,由主端决定是否要处理校验和。
SCD4x具有四种不同的I2C命令序列类型:“读I2C序列”,“写I2C序列”,“发送I2C命令”和“发送命令并获取结果”序列:
1、周期性测量模式
周期性测量模式对I2C主控(例如,微控制器)和cd4x传感器之间的典型通信顺序如下:
1.传感器上电进入空闲状态。
2.I2C主机发送start_periodic_measurement命令。信号更新间隔为5秒。
3.I2C主控通过read_measurement命令定期读出数据。
4.当传感器周期性停止测量时,I2C主站发送stop_periodic_measurement命令使传感器返回空闲模式。
周期测量模式运行时,除了read_measurement、get_data_ready_status、stop_periodic_measurement、set_ambient_pressure和get_ambient_pressure命令外,不能发出其他命令。
2、片上输出信号补偿流程
SCD4x具有片上信号补偿功能,可自动抵消温度和湿度对二氧化碳测量的影响。此外,还可以为传感器提供外部获得的压力或高度值,以便对压力变化的CO2输出信号进行机载补偿。此外,通过调整传感器设计中的温度偏移参数,可以提高相对湿度和温度输出信号的精度。请注意,温度偏差不会影响CO2输出的准确性。
要更改或读取传感器设置,SCD4x必须处于空闲状态(环境压力参数除外)。I2C主控和SCD4x之间的典型序列描述如下:
1.如果传感器工作在周期性测量模式下,I2C主站发送stop_periodic_measurement命令。
2.I2C主机发送一个或多个命令来获取或设置传感器设置/参数。
3.如果要在多个power-cycles中保留更改,则必须发送persist_settings命令(参见章节3.10.1)。
4.I2C主控下发start_periodic_measurement命令,将传感器重新设置为工作模式。
3、校准流程
为了实现高初始精度和优异的长期精度,SCD4x包括两个现场校准功能:强制重新校准(FRC)和自动自校准(ASC)。
ASC使SCD4x具有出色的长期稳定性,无需定期用户干预。该算法利用传感器的测量历史和假设,即传感器暴露于已知的最低背景二氧化碳浓度,至少在一段时间内积累,同时进行测量。默认情况下,asc算法假设传感器在进行测量时,在使用以下测量模式之一累计每周运行至少4小时后,将传感器暴露在400ppm CO2浓度的室外新鲜空气中至少一次,持续3分钟:周期性测量模式,低功率周期性测量模式或单次模式,测量间隔为5分钟。
通过为SCD4x提供外部获得的co2参考值,执行FRC恢复高精度。FRC可以应用于快速校正传感器的输出,例如,如果不可能等待和/或依赖ASC。
4、低功耗周期测量模式
为了实现功率预算有限的用例,SCD4x具有低功耗周期性测量模式,信号更新间隔约为30秒。使用start_low_power_periodic_measurement命令启动低功耗周期测量模式,读出方式与使用read_measurement命令读取周期测量模式类似。
为了定期检查新的测量结果是否可供读出,可以使用get_data_ready_status命令同步到传感器的内部测量间隔,作为依赖read_measurement_命令的ACK/NACK状态的替代方法。
5、单次测量模式(仅限SCD41和SCD43)
SCD41和SCD43具有单次测量模式,用于按需测量。典型的通信顺序如下:
1.如果传感器之前使用power_down命令下电,则使用wake_up命令上电。
2.I2C主机发送一个measure_single_shot命令并等待指定的最大值,命令持续时间
3.I2C主控通过read_measurement命令在指定的max值之后读出数据。命令durationtime。
4.根据应用程序的要求重复步骤2-3。
5.如果需要,使用power_down命令关闭传感器的电源。
为了降低噪声水平,I2C主机可以连续执行几个单次测量并平均CO2输出值。注:单次测量的最快采样间隔为5秒。
ASC默认为单次测量操作,并针对每5分钟进行的单次射击测量进行了优化。较长或较短的单次测量间隔将分别导致更少或更频繁的ASC校正。为了使ASC参数适应5分钟以外的测量间隔,可以调整ASC初始和标准周期长度参数。标准周期表示传感器在测量模式下的累积持续时间,以4小时为块进行跟踪,周期性触发自动自校准。如果是第一次操作,或者执行了perform_factory_reset命令,则较短的初始周期参数只被精确地使用一次。
请注意,对于启用ASC且测量间隔小于5分钟的单次操作,ASC使用的EEPROM的寿命按比例减少。
为了进一步降低这些传感器的功耗,传感器可以通过切断/重新应用电源和I2C电压或通过使用power_down/wake_up命令在测量之间进行电源循环。请注意,对于电源循环单次操作,ASC功能在两种情况下都不可用。
七、常见命令
1、start_periodic_measurement
说明:开启周期测量模式。信号更新间隔为5秒。
2、read_measurement
说明:读取传感器输出,每个信号更新间隔只能读出一次测量数据,因为读出时缓冲区将被清空。如果缓冲区中没有可用的数据,这些传感器返回一个NACK。为了避免NACK响应,可以发出get_data_ready_status来检查数据状态。如果用户对后续的数据不感兴趣,I2C主机可以在任何数据字节之后使用NACK和STOP条件终止读传输。
3、stop_periodic_measurement
说明:该命令将运行在周期性测量模式或低功耗周期性测量模式下的传感器返回到空闲状态,例如,允许更改传感器配置或节省功率。注意,传感器只会在发出stop_periodic_measurement命令500毫秒后响应其他命令。
4、set_ambient_pressure
说明:set_ambient_pressure命令可以在周期性测量时发送,以启用连续压力补偿。注意,设置环境压力将覆盖基于先前设置传感器高度的任何压力补偿。强烈建议在经历显著环境压力变化以确保传感器精度的应用中使用此命令。有效的输入值在70000 - 120000 Pa之间。默认值为101’300Pa。
5、get_ambient_pressure
说明:get_ambient_pressure命令可以在周期性测量期间发送,以读取先前保存的由set_ambient_pressure命令设置的环境压力值。读/写位是I2C报头的一部分,用于区分get_ambient_pressure和set_ambient_pressure命令。
6、start_low_power_periodic_measurement
说明:开启低功耗周期测量模式。信号更新间隔约为30秒。
7、 get_data_ready_status
说明:轮询传感器是否从周期性或单次测量数据准备读出。
8、get_serial_number
说明:读出序列号可用于识别芯片和验证这些传感器的存在。get_serial_number命令返回3个单词,每个单词后跟一个8位的CRCchecksum。这三个字共同构成了一个唯一的序列号,长度为48位(以大端字节格式)。
9、get_sensor_variant
说明:读出SCD4x传感器变体(例如SCD40, SCD41或SCD43)
10、measure_single_shot
说明:按需测量二氧化碳浓度,相对湿度和温度。使用read_measurement命令读出传感器输出。
11、measure_single_shot_rht_only
说明:仅按需测量相对湿度和温度,显著降低功耗。传感器的输出通过read_measurement命令读出(章节3.6.2)。CO2输出返回为0 ppm。
12、power_down
说明:将传感器从空闲状态设置为睡眠状态,以减少电流消耗。在功率循环单镜头模式下操作传感器时,可用于断电。
13、 wake_up
说明:将传感器从休眠模式唤醒到空闲模式。注意,SCD4x不承认wake_up命令。唤醒后传感器的空闲状态可以通过读出序列号来验证。
14、全部命令列表: