基于Zigbee(CC2530)的温湿度上位机监测系统设计——毕业设计 下载本文

3 系统硬件电路设计

3.1 电源电路

CC2530及外围传感器工作电压为3.3V的工作电压,所以在电源电路设计的时候将直流输入的5V电压转换成3.3V,如图7所示。

图7中,电压变换采用了LM1117电压转换芯片,该芯片的目的就是将输入的5V电压转换成微处理器需要的3.3V。其中DCIN为直流5V输入接口,经过F1的保险丝和开关进入LM1117的3号管脚,经芯片转换过后,2号引脚输出3.3V电压。其中在2号管脚和3号引脚都会有电解电容、普通瓷片电容接地;瓷片电容的目的是滤除高频杂波。在转换正常的情况下,二极管LED指示灯会接通,并发光。

图7 电源电路

3.2 通信电路

在本设计中,涉及到下位机和PC上位机通信的过程。通信方式有USB通信、RS-232

通信,这里我们选择开发难度相对简单的RS-232通信协议,也就是串口通信。但是目前市场上笔记本电脑基本都取消了串口接口,所以需要将USB信号转换成串口信号。图8为USB转串口的转换电路。

图8 PL2303驱动电路

3.3 传感器电路

本设计采用温度、湿度两用的传感器DHT11,DHT11采用单总线的数据读取和写入

模式,操作简单,程序代码编写也较为容易。借鉴官方数据手册提供的驱动电路,如图9所示。

图9 DHT11采集电路

传感器1号引脚接电源VCC端;3号引脚接GND端,为传感器提供正常的工作电

压,2号引脚为数据端口,其中该端口在使用时需要将其接上10K的上拉电阻,目的是为了能使读取和写入数据的稳定性,单片机输出的高电平在传输过程中会受到外界或者导线的影响,到达数据口的时候可能会发生变化,所以这里需要接上上拉电阻保持其信号的稳定性。 3.4 主控电路

CC2530的工作正常工作电压3.3V,因为该芯片内部自带AD转换芯片,所以这里会有模拟电压和数字电压的区别,如图10所示。芯片引脚中标有DVDD的均为数字电源正,标有AVDD的均为模拟电源正。32、33、22、23引脚都接上了晶振,但不同的是:22、23接的是32M的晶振,为系统提供正常工作提供基准时序。32、33引脚接上的晶振为32.768K,其作用就是为系统时间提供基准时序,开发者可以采用这个时序基准开发RTC实时时钟;另外,当单片机处于休眠状态时,该晶振还可以继续提供实时时钟的时序。

.

图10 CC2530系统电路

4 系统软件设计

4.1 系统整体框架

根据设计要求,构思出系统整体框架。温湿度传感器采集数据;采集节点进行数据

的处理,并通过无线传输给协调器;协调器通过点对点的通讯方式和各个节点联系,并实时的接受各节点的数据。协调器与PC机通信,把各节点的信息发送PC端。这里由于实际情况的限制,不可能采取N多个节点;所以设计采用2个节点为例。 PC机 协调器 节点1 传感器 节点2 传感器 图11 系统结构框架

4.2 下位机程序设计

任何的程序代码编写都要事先进行程序流程图的设计,本设计的下位机程序设计是

根据Z-Stack协议栈规范的,所以在程序设计时,与以往的裸板开发不一样,在理解Z-Stack协议栈的APP层的同时,加入自己的逻辑设计、应用程序部分。程序流程图如图12所示。

报文发送

串口发送 数据处理 初始化成功? Y DHT11初始化 建立连接? N Y 接收报文 N 开始 开始 提取数据 图12 节点发送、协调器接收程序流程图

在节点程序设计时,首先要对DHT11驱动的子程序编写,测试并通过;然后移植到

协议栈的程序代码中调试。能在协议栈中也能实现温湿度采集,并实现数据的发送程序编写。

在协调器程序设计时,首要问题就是报文的提取。在Z-Stack协议栈中,接收到的

报文并不是单独的数据,所以必然要将需要的数据包提取出来,然后解析数据并编写协议栈环境下的串口发送程序。

具体程序代码见附录。 4.3 上位机程序设计

协调器和节点都是基于C语言开发的,而上位机的界面开发则是根据labVIEW软件

的特点,采用图形化的G语言开发,程序流程图如图13所示。