基于Si4432的温室环境监测无线组网模块设计*

2018-01-15 06:18,,
单片机与嵌入式系统应用 2018年1期
关键词:采集器数据包温室

,,

(1.贵州大学 大数据与信息工程学院,贵阳 550025;2.清华大学)

引 言

随着物联网的兴起,将无线传感器网络技术应用于温室环境监控系统成为农业研究的热门方向。国外温室研究开始于20世纪70年代,90年代初期很多发达国家开始把无线通信技术应用在温室种植领域,直到90年代末,由美国兴起并尝试性地将无线传感器网络技术应用到温室监测中。近几年,无线传感器网络在温室内的研究工作蓬勃发展[1]。

我国在20世纪70年代把微机控制技术开始使用在农业种植领域,到80年代这种技术在温室监测领域广泛使用,进入90年代,随着计算机技术的发展,在温室环境监测、视频监控等方面取得了显著成果。近年来,国内很多高校和企业展开了无线传感网络技术的研究并得到了广泛的应用。纵观国内外研究现状,影响无线传感网络通信质量的因素主要有传输距离、能耗、通信可靠性等[2]。本文设计了一种自适应性强、低功耗的Si4432无线组网模块,并利用该模块搭建了适用于温室无线数据采集和收发的远程数据传输系统。该系统采用分布式管理,保证了系统的可靠性。

1 Si4432无线组网模块

1.1 Si4432无线组网模块硬件电路

该无线组网模块基于低功耗单片机PIC24FJ64和高集成度、低功耗和多频段的无线收发器件Si4432,频率在433 MHz,具有低功耗、远距离无线组网传输的功能[3]。PIC24FJ64和Si4432芯片之间通过SPI总线通信。在实际应用中,用户无需关心模块内部组成和操作,当用户需要组网通信时,将本地标准串口接入到无线组网模块,完成本地串口通信,其他组网通信由Si4432组网模块自动完成。本系统采用点对点的树型组网通信,提高了组网模块的开发周期,模块电路结构图如图1所示。

图1 无线组网模块电路

1.2 组网流程

首先,为每个节点配置自身设备信息、组网节点信息。自身信息有模块的网络IP、组地址;组网节点信息包括父节点信息、子节点信息和附属子节点信息。通过配置每个节点的网络地址搭建系统路由参数配置树。然后,检查组网数据队列里是否有待转发的数据,如果队列为空,结束转发流程清除本条数据。如果队列里有待转发的数据,根据数据方向、目的地址判断本机是否为目的地址。如果本机是目的地址,则转到串口处理流程,如果本机不是目的地址,在路由表中索引,查找下一跳的所有节点地址,当找到合适的地址时,启动唤醒,根据下一跳节点选择频段,发送数据等待确认,在等待超时时间内收到应答时,结束本次数据转发,在超时时间内没有接收到应答信号,进行数据重发,当重发次数超过3次未响应时,把数据转发给备用下一跳节点。无线组网流程图如图2所示。

图2 组网流程图

1.3 防数据通信碰撞算法

在点对点通信中,同一通信信道内有可能出现多个从节点同时发数据给主节点的情况,如果这种情况不能避免,会导致数据帧的丢失。基于Si4432的无线组网模块里固化了防数据碰撞算法,这种算法参考了CSMA/CA机制自动完成避让[4]。

数据通信碰撞处理主要包括呼叫碰撞处理和数据碰撞处理。

呼叫碰撞处理:随机延时一段时间(随机数选取1~16,窗口时间为3 ms),该随机延时主要为了让滞后发送的模块能够侦听到已经抢占信道的模块正在进行呼叫,延时时间到首先进行载波侦听,如果载波信号强度大于设定阈值,则开始持续接收呼叫数据包,直到听不到呼叫数据包后启动直接发送数据内容。

数据碰撞处理:与呼叫碰撞一样,首先随机延时一段时间,然后进行载波侦听。信号强度如果小于阈值,直接发送数据;如果大于阈值,随机延时进行发送,随机数的产生主要基于定时器的计数值。

在进行数据碰撞处理时,通过防数据通信碰撞算法的选择,基本可以保证9个模块同时发送数据不冲突。

1.4 Si4432无线组网模块通信协议

无线组网模块的通信协议是通信收发双方为实现信息交互而制定的规则[5]。无线组网模块传输协议格式如下所示:

BYTE0BYTE1BYTE2BYTE3…BYTE(n-1)BYTEn0xff0x550xAALen…CHK0x16同步头帧头帧头长度内容校验和帧尾

同步头:用于可靠唤醒CPU。长度:除去同步头外的所有数据长度。内容:节点号和温湿度ASCII码值。校验和:除去同步头、帧头、帧尾之外数据相加之和。

1.5 Si4432无线组网模块低功耗处理机制

软件设计中Si4432采用自动唤醒功能,Si4432有4种状态:关闭、挂起、发射和接收。其中挂起状态分为待机模式、睡眠模式、传感器模式、预备模式、调谐模式,用户可以根据需要灵活选择不同的配置选项。在没有数据收发时芯片处于休眠状态,定时一段时间由休眠状态切换至发送或者接收状态,监听是否有数据的收发。不同状态转换需要的时间和功耗都不相同,可以根据系统需要选择最佳的状态[6]。

Si4432无线组网模块中PIC24FJ64芯片通常为休眠状态。在接收到中断时,将从休眠状态切换为正常状态,当执行完任务后,立即从正常状态切换回休眠状态。

2 系统硬件电路设计

2.1 数据采集器硬件设计

图3 数据采集器结构图

数据采集器分布放置在多个监测点,该模块采用RS485总线接口,方便在总线上挂载多种类型的传感器模块,数据采集器将编码的数据包通过Si4432无线组网模块发送给温室控制器节点。中央控制器选用STM32芯片,其性能好、功耗低。传感器模块采用高精度的SHT10芯片作为温湿度采集传感器,其支持A/D转换和CRC校验。图3为数据采集器硬件结构图。

2.2 温室控制器硬件设计

温室控制器节点通过Si4432无线组网模块收集分布在各个节点的数据采集器发射过来的编码数据包,并将校验正确的编码数据包通过USB转串口线传送给电脑显示和解码。图4为温室控制器硬件结构图。

图4 温室控制器结构图

3 系统软件设计

3.1 数据采集器程序

图5 数据采集器软件流程

图6 温室控制器软件流程

数据采集器发送程序流程图如图5所示。完成系统单片机初始化后,STM32单片机读入SHT10温湿度值并且封装成帧,通过串口定时发送数据包给无线组网模块预留的UART接口,然后通过配置Si4432寄存器来设置包的长度和结构,通过SPI通信向发送FIFO中写入温湿度值。之后关闭除包发送之外的所有中断,使能发送功能,当数据包发送完时,nIRQ引脚拉成低电平,从而通知PIC24FJ64芯片数据包已经发送完毕,读取中断状态并拉高nIRQ引脚,否则继续等待。一次数据包发送完成后,循环进入下一次数据发送状态[7]。

3.2 温室控制器程序

温室控制器接收程序流程图如图6所示。完成系统单片机初始化后,读Si4432寄存器4bh的状态,获取包长度信息,打开接收中断和同步字中断,关闭其他中断,使能接收功能,若nIRQ引脚变成低电平,表示数据包被检测到。等待数据完成接收,读取中断标志位nIRQ引脚,使nIRQ引脚恢复至高电平,以准备下一次数据包的接收。通过SPI通信读取接收FIFO中的数值,将数据包通过Si4432无线组网模块的串口发送给STM32单片机,STM32单片机通过串口将数据包发送给上位机显示,之后进入下一次数据包接收状态[8]。

4 测试结果分析

为了验证Si4432无线组网模块的可靠性,对模块进行了系统的测试。Si4432无线组网模块在供电电压为3.3 V时,经测试该模块的通信频率为433 MHz,通信信道数目和呼叫信道数目均为1,超低休眠电流为4.5 μA,发射功率为20 dBm,空中传输速率是9.6 kbps,接收电流为19 mA,一节 3.6 V/3.6 A的锂亚电池可工作超 10年以上。在空旷条件下最远传输距离为1000 m。经过测试发现,该无线组网模块具有通信距离远、穿透力强的优点。该模块也可广泛应用于无线传感网络、远程抄表系统、电力通信、智能家居系统中,具有广阔的应用前景。

为了更直观地观察温湿度信息,设计中使用QT Creator软件编写了上位机显示界面。在测量中,随机放置 2 个节点,经过多次测量观察,发现每个节点的温湿度变化很小,测量数据对比见表1。这说明该系统在实际应用中具有良好的可靠性。

表1 测量数据对比

结 语

[1] 李栋.基于无线传感器网络的温室监测系统的设计与研究[D].无锡:江南大学,2008.

[2] 马琦.基于无线传感器网络的温室温温度监测系统研究[D].太原:中北大学,2009.

[3] 许永通.基于Si4432的高性能无线收发系统设计[D].杭州:杭州电子科技大学,2014.

[4] 张玲,刘九维,何伟.基于SI4432的高性能无线收发应用平台设计[J].电子技术应用,2010,36(12):124-127.

[5] 刘国新.基于Si4432的无线传输系统设计[D].大连:大连理工大学,2010.

[6] 潘旭兵.基于Si4432的无线收发模块的设计[J].计算机应用,2009(S2):189-191.

[7] 张春元.基于SI4432的无线数据采集系统设计[D].长沙:湖南大学,2012.

[8] 陈侃松,唐寅,刘洪波,等.基于SI4432的无线通信系统设计与实现[J].信息技术,2013,37(3):70-73.

陈慧(硕士研究生),主要研究方向为无线传感器网络;吴次南(教授),主要研究方向为光电子学、光谱学、理论物理以及教育科学;刘泽文(教授),主要研究方向为MEMS及微纳系统。

猜你喜欢
采集器数据包温室
现代温室羊肚菌栽培技术
苍松温室 苍松灌溉
苍松温室 苍松灌溉
COVID-19大便标本采集器的设计及应用
可以避免一个温室化的地球吗?
SmartSniff
基于ZigBee的大型公共建筑能耗采集器设计
基于LabVIEW的多数据采集器自动监控软件设计与开发
多接口温湿度数据采集器的设计
视觉注意的数据包优先级排序策略研究