您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>通信技术>

基于Arduino的ZigBee无线传感节点的硬件设计

2016年04月19日 16:37 互联网 作者:佚名 用户评论(0

  无线传感器网络物联网底层网络的重要技术形式,它综合了传感器技术、信息处理技术和无线通信等技术。无线传感器网络节点作为无线传感网络的基本组成部分,它的性能优劣及实用性关系到整个网络的工作效率和工作成本,因此高性能低成本的无线传感节点成为无线传感网络设计的关键。目前传统的无线传感节点主要有两种类型:一种是封装好直接购买可用的节点如Micaz、TelosB节点;另一种是在特定芯片如CC2430、CC2530上自主设计制作的节点。前一种节点性能佳,但价格较贵且可定制性差,后一种节点,虽价格便宜,但开发工作量大,且可扩展的接口少。

  Arduino是近年来快速流行起来的一种控制器,其硬件电路的核心是一个AVR芯片,整块电路板在功能上与单片机开发板类似,但是Arduino板要比单片机开发板在功能上强大很多。ZigBee是一种短距离无线通信技术,它可以很好地解决物联网中最后100 m的通信问题,并且已经广泛地应用于智能交通、智能医疗、智能家居工业自动化当中。本文针对现有的无线传感网络节点的发展现状,从硬件角度着手,设计了一种基于Arduino的ZigBee无线传感节点,它将Arduino软硬件开源、接口丰富、容易上手、价格低廉、可根据应用需求实现个性化系统设计等特性与ZigBee技术传输延时较低、复杂度低、容量高、功率消耗极低、成本低廉等特性结合到一起,实现更具有实用性和更适用于物联网的无线传感网络节点。

  1 硬件整体设计

  无线传感网络节点硬件电路包括处理器模块、传感器模块、无线通信模块及电源模块。其中,电源部分为整个节点提供能量,其余3个均是耗能模块。本文采用Arduino Uno R3功能板的电路作为硬件设计的基础电路板,并结合实际需求在该电路基础上进行组成部件的删减和功能模块的增加。Arduino Uno R3是Arduino USB接口系列的最新版本。其上的所有参考设计均是基于AVR芯片ATmega328的,二者的管脚是兼容的。

  节点的各个模块中,处理器模块采用单片机ATmega328P—PU作为CPU对传感数据进行采集、处理和传输,单片机ATmega16U2-MU作为转换芯片实现USB接口数据与处理器串口数据的对接。传感器模块设为接口模式,没有直接选定传感器并将该传感器连接到电路中。传感器模块接口包括数字信号接口和模拟信号接口。无线通信模块采用Digi公司生产的XBee ZB模块,XBee ZB模块通过RX、TX串口与单片机进行数据通信。电源模块采用电池供电和USB供电协作模式,为了避免电池供电和USB供电同时接入电路产生冲突,采用 FDN34 0P场效应管来实现电池供电和USB供电模式的自动切换。此外,节点还通过硬件辅助的形式控制传感模块和无线通信模块的工作状态,以降低节点的工作能耗。无线传感网络节点硬件系统结构框图如图1所示。

  

  2 模块设计

  2.1 处理器模块

  节点硬件系统处理器模块的元器件选型主要是基于Arduino Uno R3功能板。Arduino Uno R3电路板的主控芯片是ATmega328P—PU,USB转串口芯片是ATmega16U2-MU。单片机ATmega328P—PU是一款高性能低功耗的AVR微控制器,它的工作电压是1.8~5.5 V,片上包含32 kB的Flash、1 kB的EEPROM以及2 kB的SRAM,有6个模拟输入接口,有14个数字输入输出接口且数字接口中有6个PWM模拟输出接口,晶振频率是16 MHz。这款单片机能够完全满足传感节点的处理器需求。该单片机的外围电路中,需要在5 V电源与管脚reset之间连接一个110欧姆的电阻,因为Arduino Uno R3提供自动复位设计,可以通过在主机上运行相应程序进行自动复位,但本节点的复位模式设计为外部电路触发复位模式,所以需在管脚reset位置进行电路修改。另外,需要在ATmega328P—PU的XTAL1、XTAL2引脚之间接尺寸小、可靠性能佳的陶瓷振荡子CSTCE16MOV53-R0,而不是接普通的16 M晶振。负责USB一串口数据转换功能的AVR芯片ATmega16U2-MU内置有支持USB2.0的USB控制装置,它支持数据的全速转换,有控制、批量、中断以及同步这4种工作模式。ATmega 16U2-MU外接16 MHz晶振,以此给芯片的内部PLL提供参考时钟,使得内部PLL可以为USB全速转换提供需要的48 MHz±0.25%参考时钟。ATmega16U2-MU的PD2(RXD1)引脚接单片机ATmega3 28P—PU的TXD输出串口,PD3(TXD1)接单片机ATmega 328P—PU的RXD输入串口,以提供TTL电压水平的串口收发信号。另外,ATmega16U2-MU芯片的D-引脚接USB接口的数据线D-,D+ 引脚接USB接口的数据线D+。

  2.2 传感器模块

  为了增强无线传感节点的复用性,传感器模块电路设计中,未包含传感器元件,而是采用接口形式连接传感器元件,并为其提供工作电路。物联网中常用的传感器元件按输出信号类型可分为模拟传感器和数字传感器,因此节点传感器接口需包含这两种数据接口。节点传感器数字信号接口和模拟信号接口直接由处理器模块核心芯片ATmega328P—PU的数字输入输出口和模拟输入口引出。ATmega328P—PU共有14个数字输入输出接口,本节点的设计中,TXD、 RXD数字接口作串口,有两路数字接口作串口状态灯控制口,有一路数字接口作无线通信模块工作模式控制口,有一路数字接口作传感器工作模式控制口,还有一路数字接口作电源能量监测控制口,因此节点传感器模块中的传感器数字接口共有7个,模拟数字接口共有6个。常用的传感器模块如DHT11温湿度模块、 HX711称重传感器模块、BH1750FVI光照度传感器模块等,均可通过该通用接口与节点进行连接。

  为了降低无线传感节点的能耗,本节点设计传感器数据进行周期性采集,即传感器在采集一段时间的环境信息后进入休眠状态,再经过固定的休眠时间后返回到工作状态,从而降低传感器元件对电源能量的消耗。这里的传感器工作模式切换设计为单片机接口控制传感器模块电源通断模式。单片机接口控制电源通断功能通过三极管S8550驱动电路作开关、继电器HK4100F作负载来实现。三极管S8550是一种常用的普通三极管,它是一种低电压、大电流、小信号的PNP型硅材料三极管。继电器HK4100F是一种价格低廉的6管脚电子控制器件,实际上是一种利用较小电流来控制较大电流的“自动开关”,它能够在电路中提供自动调节、安全保护和转换电路等功能,主要由铁芯、线圈、衔铁和触点簧片组成。当电路在线圈两端加上一定电压后。线圈会流过一定的电流,从而产生电磁效应,于是衔铁在电磁吸引力的作用下克服弹簧的反弹拉力与铁芯吸合,从而使继电器的内部动触点与静触点(常开触点)导通;当线圈两端断电后,线圈的电磁吸引力消失,衔铁会在弹簧的反作用力下回到原来的位置,从而使继电器的内部动触点与原来的静触点(常闭触点)导通,由此实现了外部电路的导通和切断。

  单片机接口控制传感器模块电源通断具体的电路连接情况为,三极管S8550的基极经4.7 kΩ电阻与单片机ATmega328P—PU的一路数字接口连接,发射极与继电器HK4100F内部线圈的一个外部引脚连接,集电极接地。继电器 HK4100F常闭触点的外部引脚接地,常开触点的外部引脚接传感器的工作电源正极。当单片机引脚输出高电平时,三极管截止,继电器线圈两端无电位差,继电器衔铁释放,常闭触点导通,即传感器电源关闭;当单片机引脚输出低电平时,三极管饱和导通,继电器衔铁吸合,常开触点闭合,即传感器电源开启。三极管截止瞬间,继电器线圈中的电流无法突变为零,两端会产生一个电压较高的感应电动势,有可能会击穿三极管,因此需要在继电器线圈两端并联一个常见的反向耐电压为100 V的小信号二极管1N4148,以释放瞬间感应电动势,如此,既保护了三极管,也消除了感应电动势对其他电路的干扰。单片机接口控制HK4100F线圈通断电路原理如图2所示。

  

  2.3 无线通信模块

  本节点的无线通信模块采用的是美国Digi公司生产的XBee ZB模块,该模块按照ZigBee协议设计并把ZigBee协议内置进片内Flash,其内部包含有全部的工作外围电路以及完整的ZigBee协议栈,虽然体型小,但却是一个功能完善的ZigBee收发器(具备接收器和发射器),它的工作模式是双向半双工式,可交替地发送或接收数据昀。XBeeZB模块只需少量的功耗便可进行可靠的远端数据传输。该模块的室内传输距离为40米,室外传输距离为120米,发射功率为3 dBm,具有AT和API两种配置模式且拥有专门的PC端配置软件X—CUT,可直接在PC端对模块进行发射功率、信道等网络拓扑参数的配置,使用起来简单快捷。XBee ZB模块通过DOUT和DIN与处理器模块中的单片机串口进行通信,DOUT接单片机ATmega32 8P—PU的RXD引脚,DIN接TXD引脚。该模块的工作模式共有5种,分别是空闲模式、发送模式、接收模式、命令模式和睡眠模式。当XBee ZB模块没有接收或发送数据时,模块进入空闲模式;当串行接收缓冲区内的串行数据已接收并打包准备好时,模块自动退出空闲模式准备发送数据,进入发送模式;当天线接收到一个合法的RF数据包时,该数据将会转送到串口发射缓冲区内,模块进入接收模式;当命令模式字符序列形成时,模块进入命令模式;当接收到休眠触发时,模块进入睡眠模式,XBee ZB仅支持终端节点睡眠模式触发,且有管脚休眠和周期休眠两种触发模式。睡眠模式可大大降低模块的能耗,XBee ZB模块的管脚休眠触发机制是:当休眠控制管脚Sleep_RQ处于高电平状态时,模块开启睡眠模式;管脚处于低电平状态时,模块关闭睡眠模式。本节点设计使用单片机数字输出口控制来实现XBeeZB模块的正常工作模式与睡眠模式之间的切换,电路连接上,ATmega328P—PU的一路数字接口引脚与 XBee ZB模块的Sleep_RQ管脚连接以控制Sleep_RQ管脚的电平状态,再以软件程序进行辅助,设置XBee ZB模块进行周期性休眠,从而降低节点无线通信模块的能耗。节点无线通信模块电路连接框图如图3所示。

  

  2.4 电源模块

  节点正常工作所需要的电压有5 V和3.3 V。Arduino Uno R3电路中有3种供电方式,并且能够自动选择供电方式,这3种供电方式分别是:外部直流电源通过电源插座供电、USB接口供电以及电池连接电源连接器的 GND和VIN引脚供电,其中,电源插座供电和电池供电的输入电压范围为7~12 V。本节点在Arduino Uno R3供电原理基础上选择锂电池供电和USB接口供电两种模式共同提供5 V工作电压,节点电路的另一路工作电压3.3 V则由稳压管LP2985—33DBVR通过对5 V电压进行转换获得。电源模块电路中5 V电压供电方式的自动选择通过场效应管FDN340P实现,FDN340P是一种P沟道增强型绝缘栅场效应晶体管,具有输入电阻高、噪声小、功耗低、动态范围大、无二次击穿现象、安全工作区域宽等特点。节点电源供电电路中,一路锂电池输入VIN连接到稳压管NCP1117ST50T3G的输入端,另一路经二分之一分压电路分压后连接到电压比较器的正输入端V+,电压比较器的负输入端V-连接的参考电压为3.3 V。电压比较器的输出Vo与场效应管FDN340P的栅极连接,USB电源线与场效应管FDN340P的漏极相连接,场效应管的源极作为电压输出端并与5 V电源线连接。当电源模块仅有锂电池供电时,5 V电源直接由稳压管NCP1117ST50T3G输出;当电源模块仅有USB供电时,V+V-,Vo输出高电位,FDN340P的栅极和源极之间的电位差为0,场效应管关断,USB供电截止,仅锂电池供电。另外,USB电源线信号并不与FDN340P场效应管的漏极直接连接,而是在二者之间连接了一个自恢复保险丝MF—MSMF050—2(500mA),MF—MSMF050—2是一种可重置的保险丝,它能够为电路提供过电保护,当通过保险丝的电流超过500 mA时,保险丝断开连接,从而保护了USB电路。电源模块供电电路框图如图4所示。

  

  实际应用中,节点的供电电源多是锂电池,节点的正常工作依赖于锂电池,因此电池余量的对实时监测就显得格外重要。本节点使用DS2438智能锂电池监测芯片作为监测锂电池电池剩余容量的硬件装置。DS2438为电池组提供了一系列有用的功能,包括有唯一的标识电池组的序列号,有内置的数字温度传感器因此电池组不再需要接热敏电阻,有测量电池电压和电流的内置A/D转换器,有记录电池电流流入流出总量的集成电流累加器,有运行时间记录器,还有40字节的非易失EEPROM,主要用于储存电池的一些重要参数如

  电池化学类型、电池容量、电池充电方式以及电池组装日期。DS2438芯片能够自动采集当前电池的充放电状态、温度、电流、电压以及剩余电量等数据,并存放到片上存储器中。本节点中,DS2438芯片的DQ引脚与单片机的一路数字接口相连接,当芯片满足工作条件时,开始进行电池信息采样,等到DS2438 芯片采样完成后,单片机再读取DS2438的片上电流累加寄存器ICA)中的数值并进行相应的数据处理,即可得到无线传感节点供电锂电池的当前剩余电量值。

  3 结束语

  节点设计实现了以Arduino开源平台为基础以ZigBee技术进行数据传输的无线传感节点硬件系统。并分别给出了硬件系统处理器模块、传感器模块、无线通信模块以及电源模块各部分的设计方法,从硬件选型到具体设计思路都一一作了阐述。该硬件系统具备低能耗、可连接通用传感器、有电源电压检测功能等特点。此设计方案成本低廉、性能较高、经济适用,符合设计初衷,且具有良好的应用前景,可应用于物联网中,为监测物联网环境参数提供了高性能低成本的无线传感节点设计方案。

非常好我支持^.^

(39) 95.1%

不好我反对

(2) 4.9%

( 发表人:方泓翔 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!