《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于ZigBee技术的无线温度采集系统
基于ZigBee技术的无线温度采集系统
景军锋,李嘉琨,王 波,聂鲁华
(西安工程大学 电子信息学院,陕西 西安 710048)
摘要: 详细阐述了ZigBee技术及其应用,提出了一种基于ZigBee技术的无线温度采集系统的方案。针对所提方案设计了系统的硬件电路及相关软件,并通过实验证明了方案的可行性及正确性。
Abstract:
Key words :

 摘  要: 详细阐述了ZigBee技术及其应用,提出了一种基于ZigBee技术的无线温度采集系统的方案。针对所提方案设计了系统的硬件电路及相关软件,并通过实验证明了方案的可行性及正确性。
关键词: ZigBee;DS18B20CC2430;2.4 GHz

  在人们日常的生产生活中,经常需要通过传感器将一些物理量,如温度、湿度、光照度等非电量转变成电量,然后通过传输线传输到主机进行数据处理,再产生相应的控制信号。工业中的传输线通常采用的是现场总线,如CAN总线等。但是在一些场合采用这种有线介质作为传输线并不是最理想的方案。比如一个大型粮仓或蔬菜大棚要实现多点的温度采集时,按照有线传输方案需要从各个传感器节点连接很多且复杂的传输线到主机,蔬菜大棚需要保持一定的温湿度,长期下来会对传输线造成腐蚀、损坏,从而影响整个系统的正常工作。此外,多点温度采集系统所传输的数据量并不大,且对数据传输速率的要求也不高,所以在这种情况下采用无线方式进行信号的采集传输是十分理想的。
  当前主要的无线技术有WiFi、Bluetooth、UWB、NFC以及红外等。采用红外技术应用于传感器装置上的缺陷是:要求传输双方必须在可见范围内而且是定向传输,中间不能有障碍物否则会影响数据传输质量。而其他无线技术的主要问题是开发成本过高,适用面较窄。
  ZigBee是一种短距离、架构简单、低功耗和低传输速率的无线通信技术,工作频率为2.4 GHz免费频段,其传输距离一般在几十米范围内,数据传输速率为250 Kb/s。ZigBee可以基于协议栈组成网络实现各个节点的数据传输,并采用了碰撞避免机制,信息在整个ZigBee网络中通过自动路由的方式进行传输,保证了信息的安全性。Zigee技术既解决了传输的可靠性问题,又因为其传输功耗低,传输采用免费频段等因素,使其降低了成本[1]。
1 系统方案
  当系统组成1个ZigBee网络时,根据实际情况来确定网络拓扑结构。网络拓扑结构关系到网络成本、网络维护的难易、网络可靠性以及网络稳定性。ZigBee基本的网络拓扑结构有如下几种:星型网络、树型网络以及网型网络[1-3]。网络拓扑结构如图1所示。


  网络中存在3种类型的节点:子节点(RFD)、路由节点(FFD)、主节点(COORDINATOR)。子节点与传感器连接,散布在现场中,主要作用是采集信号并传输;路由节点的作用是扩展网络深度与广度,星型网络中若对网络深度广度要求不高,可以省略路由节点;主节点与上位监控PC机连接,主要作用是建立网络,处理各个子节点及路由节点发送的信息,相当于有线网络中的服务器[2-3]。
  本文采用了星型拓扑结构设计了一种基于无线ZigBee技术的温度系统,系统总体方案框图如图2所示。


  系统的工作过程为:主节点先建立网络,等待各自节点的加入;子节点加入网络后,把温度传感器采集到的温度数据打包并携带自己的地址通过无线形式传输给主节点;主节点接收到数据包后进行数据处理,并将温度信息以及子节点地址等有效信息存储并显示在监控界面上。
2 硬件设计
  系统采用Chipcon公司的CC2430芯片,CC2430是一款片上系统芯片,内部带有丰富的系统资源,只需要很少的外围部件就能实现接收或发送信号功能[2,4]。系统的传感器采用DS18B20型温度传感器。DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点[5]。系统的硬件电路图如图3、图4所示。


    图3所示是由CC2430芯片及一些外围器件组成的ZigBee节点的典型电路,子节点与主节点均采用了这种电路结构。主节点是由CC2430电路和1个MAX3232接口电路组成,MAX3232接口电路是为了实现主节点与上位监控PC机之间的通信;子节点是由CC2430电路和DS18B20温度传感器组成,实现各点温度的采集;由于本采集系统工作的范围不大,所以没有设计路由节点。ZigBee节点的实物图如图5所示,中间为CC2430,前端为一个PCB天线。


3 软件设计
    系统中的主节点和子节点在硬件结构上差异并不大,主要是通过程序的编写实现主子节点各自不同的功能。程序主要分为主节点程序和子节点程序。主节点首先形成网络等待各个子节点的加入,网络形成后接收来自各子节点的数据并加以处理,再与上位PC机进行通信;子节点上电后寻找可加入的网络,成功加入后开始采集温度,并将温度信息以及自身网络地址打包并通过无线形式传给主节点,实现星型无线网络的功能。部分重要程序段如下,并对无线网络的形成及数据传输等功能实现加以解释说明。
  # ifdef COORDINATOR    //若节点定义为COORDINATOR
  aplFormNetwork();               //格式化1个新网络
  while(apsBusy()){apsFSM();}               //延时等待
  conPrintROMString(“Network formed,waiting for RX\n”);
  Print(“Network formed!”);           //显示网络形成
  Print(“ZigBee COORDINATOR”);
  Print(“Waiting for nodes”)
  # else    //若不是COORDINATOR则认为是RFD节点
  do
  {aplJoinNEtwork();                  //加入网络函数
    While(apsBusy()) {apsFSM();}         //等待加入网络
    if(aplGetStatus()==STATUS_SUCCESS)
    {
      conPrintROMString(“Network Join succeeded!/n”);
      conPrintROMString(“My ShortAddress is:”);
      conPrintUINT16(aplGetMyShortAddress());
                                   //串口输出网络地址
      conPrintLADDR(aplGetParentLongAddress());
                                   //串口输出物理地址
        }
        else
        {
        conPrintROMString(“Network Join Failed!Waiting, then try again”);
        }
        # endif
        # ifdef RFD                       //子节点函数
           {
   dstADDR.saddr=0;
                                             //RFD发送数据的目的地址为网络主节点
   aplSendMSG(APS_DSTMODE_SHORT,
   &dstADDR,                             //目的地址
       &payload[0],                             //数据存储区
       apsGenTSN(),
       FALSE);                          //无需APS层应答
       }
       #endif
  通过比较ZigBee以及其他几种无线传输方式的优缺点,本文提出了基于ZigBee技术的无线温度采集系统的整体方案,并设计实现了系统的硬件电路及相应程序。系统运行稳定,数据传输准确性高,能够达到预期所设想的目标。
参考文献
[1] IEEE 802.15.4 standard specification, standards. IEEE. org/getieee802/.
[2] 李文仲,段朝玉.ZigBee无线网络技入门与实践[M].北京:北京航空航天出版社,2007.
[3] 夏芸.CC1010芯片在无线传感器网络节点设计中的应用[J].计算机与自动化技术,2005,31(5).
[4] Chipcon Products from Texas Instruments. CC2430 Datasheet.
[5] DS18B20 Programmable Resolution Wire Digital Termometer. www. dalsemi. com.

此内容为AET网站原创,未经授权禁止转载。