SHT15在嵌入式系统中的应用方案
该芯片包括1个电容性聚合体湿度敏感元件和1个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大,然后进入1个14位的A/D转换器,最后经过二线串行数字接口输出数字信号。SHT15在出厂前,都会在恒湿或恒温环境中进行校准,校准系数存储在校准寄存器中,在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT15内部还集成了1个加热元件,加热元件接通后可以将SHT15的温度升高5℃左右,同时功耗也会有所增加。此功能主要是为了比较加热前后的温度和湿度值。可以综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT15温度升高、相对湿度降低,较加热前,测量值会略有差异。
2 硬件设计
微处理器可通过二线串行数字接口与SHT15进行通信,由于其通信协议与通用的I2C总线协议不兼容,所以在设计时直接利用S3C2440A的通用I/O口来模拟通信时序控制SHT15。S3C2440A有130个通用I/O口,共分为9组(GPAGPJ),其中GPG包括16路I/O口。S3C2440A引脚采用289 -FBGA封装,GPG9及GPG10对应引脚功能图如表1所示。
表1 GPG9及GPG10对应引脚功能图
设计中利用S3C2440A的GPG9模拟时钟信号,GPG10来模拟数据信号(数据线需要外接上拉电阻),硬件连接图如图3所示。
图3 微控制器与SHT15的硬件连接图
3 软件设计
在程序开始,控制器S3C2440A需要用一组“启动传输”时序,来表示数据传输的初始化。它包括:当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平的启动,如图4所示,随后是在SCK时钟高电平时DATA翻转为高电平。接着SCK变为低电平,随后又变为高电平,SCK时钟为高电平时,DATA再次翻转为高电平。
图4 启动传输时序
控制器发出启动命令后,接着发出一个后续8为命令码。后续命令包含3个地址位(目前只支持000’)和5个命令位。相应代码对应的命令集如表2所示。
表2 SHT15命令集
SHT15接收到上述地址和命令码后,在第8个时钟下降沿,将DATA下拉为低电平作为从机的ACK;在第9个时钟下降沿之后,从机释放DATA(恢复高电平)总线;释放总线后,从机开始测量当前湿度,测量结束后,再次将DATA总线拉为低电平;主机检测到DATA总线被拉低后,得知湿度测量已经结束,给出SCK时钟信号;从机在第8个时钟下降沿,先输出高字节数据;在第9个时钟下降沿,主机将DATA总线拉低作为ACK信号。然后释放总线DATA;在随后8个SCK周期下降沿,从机发出低字节数据;接下来的SCK下降沿,主机再次将DATA总线拉低作为接收数据的ACK信号;最后8个SCK下降沿从机发出CRC校验数据,主机不予应答(NACK)则表示测量结束。
评论