基于ZigBee的无线温湿度采集系统设计毕业设计论文 下载本文

内容发布更新时间 : 2024/11/15 5:51:26星期一 下面是文章的全部内容请认真阅读。

第3章系统硬件设计

(2) 电源电路设计

在实际应用中,很多时候终端节点的工作位置不确定,无法使用电源供 电,所以使用电池供电。电源设计电路与图3-4相比,仅多了一个电池插槽。 电池供电电路设计如图3-10所示。

Q

1-1 | 丄丄

三 T _______ ___ T

图3-10电池供电电路原理图

^

^ 一

终端节点的主要用于采集温湿度数据并上传,不需要同PC机直接通信, 所以在设计过程中,去掉了 USB转串口电路。为了调试设备测试,仍然给 它配备了网络状态指示灯。核心电路、复位电路、Debug下载电路以及网络 指示灯电路参考协调器电路的设计。

3.5路由器电路设计

终端节点一般分布于监测环境中,相距协调器较远,需要路由器作为数 据传输的中继。

路由器不需要和上位机通信,在电路设计时,省去了 USB转串口电路。 由于路由器本身也可以充当终端节点采集数据,只是带有路由功能的采集节 点。所以为路由器也加上传感器应用电路。复位电路、Debug下载电路、网 络指示灯电路以及传感器应用电路参考协调器电路的设计。

3.6本章小结

本章首先介绍了系统的整体方案,接下来对硬件平台的不同解决方案进 行比较、选择,确定了系统硬件平台,给出了系统的总体设计方案。最后分 别对协调器、路由器和终端节点的核心电路和外围电路原理图进行了设计。 外围电路主要设计了电源电路、复位电路、USB转串口电路、Debug下载 电路以及网络指示灯电路等。硬件总体设计图见附录1。

17

燕山大学本科毕业设计(论文)

第4章系统软件设计

本文设计的基于ZigBee无线网络的温湿度采集系统,用由协调器、路 由器和终端节点构成无线网络。协调器是整个网络的核心,负责收集网络中 传感器节点发来的数据,然后通过串口发送给PC机,上位机软件进行数据 处理显示并存储。系统软件设计主要包括:ZigBee协议栈的配置、网状网 程序设计、数据的收发、温湿度数据采集和上位机界面设计。

4.1系统软件平台概述

(1) ZigBee协议栈的选择

结合本文设计的系统,对现存的各种主流ZigBee协议栈进行了充分的 比较。当前比较主流的ZigBee协议栈主要有:1) TI的Z-Stack协议栈,它 是半开源的,网络层以下对于用户来说是透明的,只提供相应的API函数, 目前免费,功能强大;2) Ember的EmberZNet协议栈,需要付费才能使用; 3) Freescale的BEE KIT协议栈,需要付费才能使用。

考虑到开发成本、难易程度以及协议栈功能的大小等多种因素,本文选 择TI的最新的Z-Stack2007协议栈,它支持协调器、路由器以及终端节点三 种设备。

ZStack被ZigBee测试机构国家技术服务公司评为ZigBee联盟最高 业内水平,为

全球众多的ZigBee开发人员广泛使用。

(2) ZigBee设备开发软件的软件

本文米用 IAR Embedded Workbench for MCS-8051 V8.10 Evaluation (IAR-EW)作为系统的软件开发平台,该平台是一款集编译与调试于一体的 集成开发环境,它支持多种以8051为内核的芯片编程;编译的可执行代码 高效而紧凑;采用精简优化技术,生成的代码量;集成开发工具较为完整, 易于操作。IAR-EW还提供了 CC2530等SoC芯片的相关配置文件,可省去 相当一部分工作量。同时,它还支持CC2530开发套件的USB接口,方便 程序下载与调试。

(3) 上位机开发软件的选择

本文上位机显示存储界面使用LabVIEW2010设计。LabVIEW是由美国 国家仪器(NI)公司研制开发一种程序开发环境,它使用图形化编辑G语言编 写程序,产生的程序的是框图,编程简便,可读性强,方便了编程人员的设 计开发[19]。

18

第4章系统软件设计

4.2 ZigBee设备通信设计

要想实现ZigBee设备间的通信,首先要对ZigBee协议栈进行一些基本 的配置,了解协议栈的执行过程,然后选择ZigBee协议栈提供的网络间传 输模式构建相应的网络拓扑结构,接下来在设备应用层里编写自己的调用函 数,实现温湿度数据的采集与设备间数据的收发。

4.2.1 ZigBee协议栈配置

ZigBee网络中的各种操作需要利用协议栈各层所提供的原语操作来共 同完成。TI在推出CC2530开发平台时,向用户提供了自己的ZigBee协议 栈软件Z-StacLZ-Stack协议栈中提供了操作系统抽象层(OSAL)的协议栈调 度程序[2〇]。用

户在进行具体的应用开发时,只能够通过调用API接口来进行, 而无权知道

ZigBee协议栈实现的具体细节。本文使用

ZStack-CC2530-2.3.0-1.4.0 协议栈的 SampleApp 进行设计开发。

Z-Stack由main()函数开始执行,main()函数共做了 2件事:一是系统初 始化,

另外一件是开始执行轮转查询式操作系统,如图4-1所示。

图4-1 Z-Stack协议栈工作流程

如上图所示,用户自己添加的应用任务程序在Zstack中的调用过程为:

19

燕山大学本科毕业设计(论文)

main()-->osal_init_system()-->osalInitTasks()-->SampleApp_Init()

(1) Z-Stack 入口

main()函数是OSAL操作系统执行的入口,从main()函数开始介绍。 int

{ osal_int_disable( INTS_ALL );

HAL_BOARD_INIT(); zmain_vdd_check(); InitBoard( OB_COLD ); HalDriverInit(); osal_nv_init( NULL ); ZMacInit(); zmain_ext_addr(); zgInit();

#ifndef NONWK afInit(); #endif

osal_init_system();

osal_int_enable( INTS_ALL ); InitBoard( OB_READY ); zmain_dev_info(); #ifdef LCD_SUPPORTED zmain_lcd_init(); #endif

#ifdef WDT_IN_PM1 WatchDogEnable( WDTIMX ); #endif

osal_start_system(); return 0;

}//main()

20

//关闭所有中断

//初始化系统时钟 //检查芯

片电压是否正常 //初始化 I/O,

LED、Timer 等 //初始化芯片各硬

件模块 //初始化Flash存储器 //初始化MAC层 //确定IEEE 64位地址 //初始化非易失变量

//让端点列表指针指向NULL //初始化操作系统 //使能全部中断 //最终板载初始化 //显示设备信息 //初始化LCD

//初始化WDT

//执行操作系统,不会返回 //不执行这里

第4章系统软件设计

main( void ) //文件目录 ZMain\\ZMain.c

21