数字温湿度模块 HRTM-D6 - 图文

更新时间:2023-10-05 14:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字温湿度传感器

HRTM-D6 产品手册

产品特性

? 完全标定 ? 数字信号输出

温湿度中国 www.wsdzg.com

? 超低功耗 ? 卓越的长期稳定性 ? 标准I2C总线输出

- 1 -

温湿度中国 www.wsdzg.com

一、产品概述

HRTM-D6湿敏电容数字温湿度传感器是一款含有己校准数字信号输出的温湿度复合型传感器。采用专用的温湿度采集技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高精度集成测温元件,并与一个高性能微处理器相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

HRTM-D6通信方式采用标准I2C通信方式。I2C通信方式采用标准的通信时序,用户可直接挂在I2C通信总线上,无需额外布线,使用简单。传输的数字数据采用直接输出经温度补偿后的湿度、温度及校验CRC等数字信息,用户无需对数字输出进行二次计算,也无需要对湿度进行温度补偿,便可得到准确的温湿度信息。产品为4引线,连接方便,特殊封装形式可根据用户需求而提供。

二、应用范围

实物图 外形尺寸(单位:mm)

暖通空调 、除湿器、测试及检测设备、消费品、汽车 、自动控制、数据记录器、气象站、家电、湿度调节、医疗 、及其他相关湿度检测控制。

三、产品亮点

完全互换、成本低、长期稳定、相对湿度和温度测量、超长的信号传输距离、数字信号输出、精确校准、功耗极低、标准I2C总线数字接口。

- 2 -

温湿度中国 www.wsdzg.com

四、接口定义

4.1 HRTM-D6引脚分配

表1: HRTM-D6引脚分配 引脚 1 2 3 4 颜色 红色 黄色 黑色 白色 名称 VDD SDA GND SCL 描 述 电源 (3.5V-5.5V) 串行数据,双向口 地 串行时钟,输入口 图1:HRTM-D6接线图

4.2 电源引脚(VDD GND)

HRTM-D6的供电电压范围为3.5V - 5.5V,建议供电电压为5V。 4.3 串行数据线(SDA SCL)

SCL信号线为I2C通信时的时钟线,SCL用于微处理器与HRTM-D6之间的通讯同步。SDA引脚为三态结构,用于读、写传感器数据。具体的通信时序,见通信协议的详细说明。

五、传感器性能 5.1 相对湿度

表2: HRTM-D6相对湿度性能表

ma参数 条件 min typ x 分辨率 精度[1] 重复性 互换性 响应时间[2] 25℃ 1/e(63 0.1 16 ±2 ±0.1 <5 %RH bit %RH %RH S 分辨率 精度 量程范围 重复性 互换性 响应时间 漂移 1/e(63%) -40 0.1 16 ±0.1 ±0.2 5.2 温度

表3:HRTM-D6相对温度性能表 ma参数 条件 min typ x ±0.4 125 ℃ bit ℃ ℃ ℃ 单位 单位 完全互换 <5 ±0.1 S ℃/yr 完全互换

- 3 -

温湿度中国 www.wsdzg.com

%) 迟滞 漂移[3] 典型值 ±0.3 <0.5 %RH %RH/yr

图2: 25℃时HRTM-D6的相对湿度最大误差 图3:温度传感器的温度最大误差

六、电气特性

电气特性,如能耗,高、低电平,输入、输出电压等,都取决于电源。表4详细说明了HRTM-D6的电气特性,若没有标明,则表示供电电压为5V。若想与传感器获得最佳效果,请设计时严格遵照表4与表6的条件设计。

表4: HRTM-D6直流特性。 参数 供电电压 功耗[4] 低电平输出电压 高电平输出电压 低电平输入电压 高电平输入电压 Rpu[6] 条件 休眠 测量 平均 IOL[5] Rp<25 k? 下降 上升 VDD = 5V VIN = VSS min 3.5 10 0 90% 0 70% 30 typ 5 15 500 300 45 max 5.5 300 100% 30% 100% 60 单位 V μA μA μA mV VDD VDD VDD k?

[1] 此精度为出厂检验时,传感器在25℃和5V,条件下测试的精度指标,其不包括迟滞和非线性,且只适合非冷凝环境。

[2] 在25℃和1m/s气流的条件下,达到一阶响应63%所需要的时间。

[3] 在挥发性有机混合物中,数值可能会高一些。见说明书应用储存信息。

[4] 此数值为VDD =5.0V 在温度为25℃时,

- 4 -

2S/次,条件下的平均值。 [5] 低电平输出电流。

温湿度中国 www.wsdzg.com

◎ 基本的数据传输格式示意图

图10、图11分别给出了I2C的发送和接收数据的基本格式。应当注意的是,图11和图12情况不同的是,在图11中,主机在向从机发送最后一个字节的数据时,从机可能应答也可能非应答,但不管怎样主机都可以产生停止条件。如果主机在向从机发送数据(甚至包括从机地址在内)时检测到从机非应答,则应当及时停止传输。

图10: I2C总线主机向从机发送数据基本格式

图11: I2C总线主机从从机接收数据的基本格式

7.2 HRTM-D6传感器I2C通信协议

HRTM-D6的串行接口为I2C总线,完全按照I2C标准协议编址,可直接挂在I2C总线上。HRTM-D6传感器的I2C的地址(SLAVE ADDRESS)为0xB8,在I2C标准总线的协议基础上,基于ModBus协议,制定了独有的通信协议,降低了传输误码率。微控器读HRTM-D6传感器时,请严格按照HRTM-D6传感器的I2C_ModBus通信协议及时序进行设计。

7.2.1 I2C 接口说明

HRTM-D6数字温湿度传感器作为从机,与主机(用户微处理器)之间通迅方式采用标准I2C总线方式。为精确测量环境湿度,减少温度对湿度的影响,HRTM-D6传感器在非工作期间,自动

- 10 -

温湿度中国 www.wsdzg.com

转为休眠状态,以降低工耗,达到降低传感器自身发热对周围环境湿度值的影响。HRTM-D6工作模式采用被动式,即主机通过指令唤醒传感器后,再发送相应指令,读取相应的温湿度值;通信结束后,传感器触发一次温湿度采集;因此若长时间没有读传感器,请连续读两次传感器(两次读取最小间隔为2S),以第二次值为最新测量值;采集结束后传感器自动转为休眠状态。下次主机需再读传感器时,需重新唤醒传感器。需注意的是主机通信从开始到结束,最长时间为3S。若3S内通信未完成,传感器自动结束通信,自动转为休眠状态,主机如要再读读传感器,需重新发送唤醒指令。

7.2.2 I2C 接口特性

本小节介绍了HRTM-D6传感器的I2C 接口特性,,若想与传感器获得最佳通讯效果,请设计时严

格遵照图12与表6的条件设计。

图12:HRTM-D6典型的I2C总线应用电路和时序图

表6:HRTM-D6传感器I2C接口特性

标准I2C 模式 min 4.7 4.0 max 100

符 号 SCL时钟频率 tw(SCLL) tw(SCLH) 参 数 单位 kHz μs SCL时钟低时间 SCL时钟高时间 - 11 -

温湿度中国 www.wsdzg.com

tsu(SDA) th(SDA) tr(SDA) tr(SCL) tf(SDA) tf(SCL) th(STA) tsu(STA) tsu(STO) tw(STO:STA) Cb SDA建立时间 SDA数据保持时间 SDA和SCL上升时间 SDA和SCL下降时间 开始条件保持时间 重复的开始条件建立时间 停止条件建立时间 停止至开始条件时间(总线空闲) 每条总线的容性负载 250 0[1] 4.0 4.7 4.0 4.7 1000 300 400 μs μs μs pF ns

7.2.3 通信协议

HRTM-D6传感器的I2C通信协议,是在标准I2C总线协议的基础上,参照ModBus协议,根据HRTM-D6传感器自身的特点,组合而成的I2C_ModBus协议。具体格式如下: ◎ 通讯数据(信息帧)格式

数据格式:

[1] 如果接口不允许延长低电平时间,则只需要遵守开始条件的最长保持时间。 [2] 1个字节由8位二进制数组成(既8 bit)。

[3] CRC校验算法,详细见:CRC码的计算方法;详细见下文。

I2C地址+R/W 1个字节[2] 功能码 1个字节 数据区 N个字节 CRC校验[3] 16位CRC码(冗余循环码)

◎ 通讯信息传输过程

当通讯命令由发送设备(主机)发送至传感器时,符合传感器I2C地址的命令,传感器才进行接收,并根据功能码及相关要求读取信息;然后把执行结果(数据)返送给主机。返回的信息中包括功能码、执行后的数据以及 CRC 校验码(用户可不读取其CRC,可直接发送停止条件)。

◎ 通讯I2C从机地址

HRTM-D6传感器每个I2C地址都相同,且为0xB8。因此在同一条总线上只能挂一个HRTM-D6

- 12 -

温湿度中国 www.wsdzg.com

传感器,传感器只有在收到起始信号及与本身I2C地址相同时才会响应主机。

◎ 通讯I2C的功能码

功能码是每次通讯信息帧传送的第一个字节。I2C_ModBus通讯规则,可定义的功能码为1到127。作为主机请求发送,通过功能码告诉从机应执行什么动作。作为从机响应,从机返回的功能码与从主机发送来的功能码一样,则表明从机已响应主机并且已进行相关的操作。I2C_ModBus部分功能码说明见表7。

表7:I2C_ModBus部分功能码

功能码 0x03 定 义 读寄存器数据 写多路寄存器 操作(二进制) 读取一个或多个寄存器的数据 把多组二进制数据写入多个寄存器

0x10 ◎ 通讯I2C的数据区

数据区包括需要由传感器返回何种信息或执行什么动作。这些信息可以是数据(如:温度值、

湿度值、传感器设备信息,用户写入数据等等)、参考地址等。例如,主机通过功能码03告诉传感器返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及寄存器的数据内容。

传感器采用自定义的I2C_Modbus通讯协议,主机利用通讯命令(功能码03),可以任意读取其数据寄存器,其数据寄存器表详见表8。传感器的数据寄存器存储了温湿度值及传感器相应设备信息及其他相关信号;每个数据寄存器是单字节(8个位)的二进制数据;一次最多可读取传感器的10个寄存器的数据,超过读取长度,传感器会返回相应错误代码。错误代码信息见附表1。

表8:HRTM-D6 数据寄存器表 寄存器信息 湿度高位 湿度低位 地址 0x00 0x01 寄存器信息 设备型号高位 设备型号低位 地址 0x08 0x09 寄存器信息 用户寄存器1高位 用户寄存器1低位 地址 0x10 0x11 寄存器信息 保留 保留 地址 0x18 0x19 - 13 -

温湿度中国 www.wsdzg.com

温度高位 温度低位 保留 保留 保留 保留 0x02 0x03 0x04 0x05 0x06 0x07 版本号 设备ID(24-31) Bit 设备ID(16-23) Bit 设备ID(0 - 7 ) Bit 状态寄存器 0x0A 0x0B 0x0C 0x0E 0x0F 用户寄存器2高位 用户寄存器2低位 保留 保留 保留 0x12 0x13 0x14 0x15 0x16 0x17 保留 保留 保留 保留 保留 保留 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 设备ID(8 - 15) Bit 0x0D 保留

◎ 温度输出格式

温度分辨率是16Bit,温度最高位(Bit15)等于1表示负温度,温度最高位(Bit15)等于0表示正温度;温度除了最高位(Bit14~Bit0)表示传感器串出的温度值。传感器串出的温度值是实际温度值的10倍; ◎ 状态寄存器

状态寄存器,Bit7-Bit0位,暂时保留

状态寄存器位 功能介绍 Bit7 保留 Bit6 保留 Bit5 保留 Bit4 保留 Bit3 保留 Bit2 保留 Bit1 保留 Bit0 保留

◎ I2C_ModBus功能码简介

一、功能码“03”:读传感器的多路寄存器

主机发送读帧格式:

START+ (I2C地址+W )+功能码(0x03)+起始地址+寄存器个数+STOP

主机读取返回数据:

START+ (I2C地址+R )+连续读取传感器返回的数据+STOP

传感器响应帧格式:

功能码(0x03)+寄存器个数+数据+CRC[1]

例如:主机连续读取传感器的数据:起始地址为0x00的4个传感器的寄存器数

- 14 -

温湿度中国 www.wsdzg.com

据。

传感器的数据寄存器的地址和数据为:

寄存器地址 寄存器数据 0x00 0x01 0xF4 数据说明 湿度高位 湿度低位 寄存器地址 寄存器数据 0x02 0x03 0x00 0xFA 数据说明 温度高位 温度低位 0x01 主机发送的报文格式:

传感器响应返回的报文格式:

主机发送 功能码 字节数 1 1 1 1 发送的信息 0xB8 0x03 0x00 0x04 读取寄存器 寄存器起始地址为0x00 读取寄存器个数 备 注 传感器I2C地址(0xB8)+W(0) 传感器地址 起始地址 寄存器个数

从机响应 功能码 返回字节数 寄存器1 寄存器2 寄存器3 寄存器4 CRC码 字节数 1 1 1 1 1 1 2 发送的信息 0x03 0x04 0x01 0xF4 0x00 0xFA 31A5 读取寄存器 备 注 返回4个寄存器共4个字节 地址为0x00的内容(湿度高字节) 地址为0x01的内容(湿度低字节) 地址为0x02的内容(温度高字节) 地址为0x03的内容(温度低字节) 传感器计算返回的CRC码,低字节在前;

[1]: CRC校验的计算详细见后面CRC校验介绍,传感器返回所有数据均有CRC校验,用户可选择读取或不读取.。

- 15 -

温湿度中国 www.wsdzg.com

数值计算:

从传感器读回的温湿度值,只要把数值转化成十进制数再除以10便是对应的温湿值,对应的温度单位为℃,湿度单位为%RH。例如上面读回的数据:

湿度: 01F4 = 1×256+15×16+4 = 500 => 湿度 = 500÷10=50.0%RH; 温度: 00FA= 15×16+10 = 250 => 温度 = 250÷10 = 25.0℃

?注意: CRC验证码可由CRC码的计算代码得出,然后与传感器传的CRC码进行对比;

相同,则认为数据接收正确,否则,认为数据有误码。

二、 功能码“10”:向传感器写多路寄存器

主机利用这个功能码可以把多个数据保存到传感器的寄存中。HRTM-D6传感器的单个寄存器为1字节,即8个位。传感器一次最多允许保存10个数据寄存器。因此,主机单次最多向传感器保存10个寄存器。超过10个,传感器会返回相应错误代码。 主机发送写帧格式:

START+(I2C地址+W )+功能码(0x10)+起始地址+寄存器个数+保存数据+CRC+STOP

主机读取确认指令:

START+(I2C地址+R )+读取传感器返回的数据+STOP

传感器响应帧格式:

功能码(0x10)+起始地址+寄存器个数+CRC

例如:主机要把01,02保存到地址为10、11的传感器寄存器中去。 主机发送的报文格式:

主机发送 传感器地址 功能码 字节数 1 1 发送的信息 0xB8 0x10 写多路寄存器 - 16 -

备 注 传感器I2C地址(0xB8)+W(0) 温湿度中国 www.wsdzg.com

起始地址 1 1 1 1 2 0x10 0x02 0x01 0x02 C092 要写入的寄存器的起始地址 保存数据的字长度(共2字) 保存数据(地址:10) 保存数据(地址:11) 主机计算得到的CRC码,低字节在前 (I2C地址不纳入CRC计算) 保存字长度 保存数据1 保存数据2

CRC码 传感器响应返回的报文格式:

◎ CRC校验

主机或传感器可用校验码进行判别接收信息是否正确。由于电子噪声或一些其它干扰,信息在传输过程中有时会发生错误,错误校验码(CRC)可以检验主机或传感器在通讯数据传送过程中的信息是否有误,错误的数据可以放弃(无论是发送还是接收),这样增加了系统的安全和效率。

I2C_ModBus通讯协议的CRC(冗余循环码)包含2个字节,即16位二进制数。CRC码由发送设

- 17 -

从机响应 功能码 起始地址 保存数据长度 CRC码 字节数 1 1 1 2 发送的信息 0x10 0x10 0x02 FC04 写多路寄存器 保存的起始地址 传感器保存数据长度 传感器计算返回CRC码,低字节在前; 备 注 温湿度中国 www.wsdzg.com

备(主机)计算,放置于发送信息帧的尾部,I2C地址不纳入CRC计算。CRC不管是发送还是接收都是按低字节在前,高字节在后的格式进行发送。接收信息的设备(传感器)再重新计算接收到信息的CRC,比较计算得到的CRC是否与接收到的相符,如果两者不相符,则表明出错。用户需特 别注意的是,读传感器指令无需加CRC校验;写传感器时,必需加CRC校验;且所有返回数据均有CRC。

◎ CRC码的计算方法

1.预置1个16位的寄存器为十六进制FFFF(即全为1);称此寄存器为CRC寄存器;

2.把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低8位相异或,把结果放于CRC寄存器;

3.把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查右移后的移出位; 4.如果移出位为0:重复第3步(再次右移一位); 如果移出位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;

5.重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理; 6.重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;

7.将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换;

8.最后得到的CRC寄存器内容即为:CRC码。 ◎ CRC码的C语言计算代码

说明:此程序计算*ptr内前len长度个字节的CRC码。

unsigned short crc16(unsigned char *ptr, unsigned char len) {

unsigned short crc=0xFFFF; unsigned char i; while(len--) {

crc ^=*ptr++; for(i=0;i<8;i++) {

- 18 -

温湿度中国 www.wsdzg.com

if(crc & 0x01)

{

crc>>=1; crc^=0xA001; }else

{

crc>>=1; } } }

return crc; }

7.2.4 I2C通信时序

HRTM-D6传感器I2C通信方式,虽然是按照标准的I2C通信时序,但必需按照我们的通信协议及通信时序要求,才能准确的读写传感器。请设计时严格按照通信协议及时序进行读取。

◎ I2C读写完整时序示例

图13给出了完整的读写传感器的示例及读写时特殊时间要求,请严格按照特殊时间要求来读写,否则将出现无法读取传感器或数据不正确等情况。图中的几个时序特别需注意,详细见图中

的时间要求;主机通信从开始到结束,最长时间为3S。

图13: I2C读写传感器完整示例图

◎ I2C读写时序分解

读或写传感器,必需按以下三个步骤进行,否则将无法通信或无法读出正确的数据:

步骤一:唤醒传感器

为了降低传感器自身发热带来的湿度误差,传感器在非工作状态,处于休眠状态,因此要读传感器必须先唤醒传感器,才能进行发送读写指令,否则传感器将不作响应。须注意的是,在唤醒传感器时,发送的I2C地址,传感器不会回应ACK,但主机必须发送确认是否回ACK的时钟,

- 19 -

本文来源:https://www.bwwdw.com/article/qprd.html

Top