基于TinyOS2.x的温湿度传感器的底层驱动与应用

时间:2013-08-06来源:网络


3 SHTxx的TinyOS底层驱动设计
3.1 SHTxx温湿度传感器底层接口驱动设计
由SHTxx温湿度传感器测量时序可知,SHTxx温湿度传感器测量时序包括启动传输、发送命令、2字节数据传输以及CRC校验传输等时序部分。SHTxx温湿度传感器的TinyOS驱动代码包括SHT接口的定义SHT.nc、SHT配置组件SHTC.nc和模块组件SHTP.nc三部分。
(1)SHT温湿度传感器接口定义
在SHT温湿度传感器接口中,定义了read命令函数和ReadDone事件函数。read命令函数负责启动SHTxx温湿度传感器的测量过程,ReadDo ne事件函数则是当SHTxx温湿度传感器测量完成后触发该事件。具体代码如下:
j.JPG
(2)SHT温湿度传感器配置组件
在SHT温湿度传感器配置组件中,利用MainC组件的初始化命令完成对SHT温湿度传感器的初始化操作。HplCC2530GenerallOC组件对SHT温湿度传感器端口进行配置,定时器组件定义两次测量的时间间隔,部分代码如下:
k.JPG
(3)SHT温湿度传感器模块组件
SHT温湿度传感器模块组件完成SHT温湿度传感器数据读取的底层驱动,完成对SHT温湿度传感器的时序模拟以及实现SHT接口函数。在数据读取完成后,触发ReadDone事件函数,下面主要介绍SHT温湿度传感器驱动模块中的几个与时序相关的函数。
复位时序模拟函数如下:
l.JPG
数据读取时序模拟函数如下:
recvByte(uint8_t ack)函数模拟读取数据时的时序。微处理器在读取SHTxx温湿度传感器的数据时,有两种不同的应答信号。在读取转换数据时,由微处理器将DATA线拉为低电平作为应答信号;而在读取CRC数据时,需要将DATA线拉为高电平应答信号,所以在recvByte(uint8 _t ack)函数中,ack作为两种应答信息参数进行传递。该函数返回读取的数据。
m.JPG
SHTxx温湿度传感器写数据主要为写命令字和SHTxx温湿度传感器的状态寄存器,在写命令字完成后,SHTxx温湿度传感器将控制DATA数据线,并将数据线上拉为高电平作为应答信号。写数据时序模拟函数略——编者注。
3.2 SHTxx温湿度传感器TinyOS驱动程序设计
SHTxx温湿度传感器驱动测试程序通过SHTxx温湿度底层驱动将采集SHTxx的温湿度值,显示在开发平台中的LCD屏上,程序文件包括模块组件TestSHTM.nc、配置组件TestSHTC.nc以及编译文件makefile。
TestSHTC.nc的配置文件部分代码略——编者注。SHTxx温湿度传感器驱动测试程序的组件关联图略——编者注。

4 系统测试及结论
通过Cygwin平台对应用程序进行编译和链接,生成hex文件,下载程序到目标硬件平台运行。LCD显示温湿度采集结果,通过测试发现,该系统能完成预期的数据采集功能。根据SHTxx温湿度传感器驱动的设计方法完成其他传感器的驱动设计。当然也可以利用该驱动程序,通过网络实时监控周围环境的温湿度参数。

1 2 3

关键词: 操作系统 底层驱动 温湿度 采集 系统方法

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版