基于嵌入式的室内环境信息采集控制演示系统设计Word文件下载.docx
《基于嵌入式的室内环境信息采集控制演示系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于嵌入式的室内环境信息采集控制演示系统设计Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
在室内环境监测领域,以嵌入式技术为基础,结合ZigBee技术可以实现、准确、完整、可靠的反应环境信息,做到实时监控。
系统分析及其设计
温度传感器将被测点的温度采集后输出的模拟信号逐步送往放大电路、低通滤波器以及A/D转换器(即信号调理电路),然后再单片机的控制下将A/D转换器输出的数字信号传送到无线收发芯片中,并通过芯片的调制处理后由芯片内部的天线发送到上位机机监测软件上,在上位机模块上,发来的数据由单片机控制的无线收发芯片接收并解调,最后通过接口芯片发送到PC机中进行显示和处理。
温度传感器被用在终端节点上,当上电后,温度传感器就是能够获取环境中某个地方温度的敏感元器件,它可以将环境中的温度或者是与温度相关的参量信息转换成电信号,我们可以根据这些电信号的强弱来识别被测点在环境中的温度数据。
•系统方案设计
•系统设计需求
湿度传感器和温度传感器采集到数据后,通过给RS232串口增加无线传输功能,替代设备电缆线进行无线传输,无线温度采集系统改变了传统有线的数据采集系统搭建布线困难,监测区域受限等诸多不足。
要求设计的短距离无线通信系统具有功耗少,性价比高,系统维护快捷方便,而且通过在传感器模块上添加FLASH存储设备,使得数据采集工作能够摆脱对监测过程网络辐射范围的限制,可应用到许多的场合更好的改善采集工作的便捷行。
通过与其他通信技术(如GSM/GPRS)的无缝接合,能够实现采集数据的远程传输,满足对数据采集区域的远程监控串口传输设计为双向全双工,无硬件流控制,强制允许OTA(多条)时间和丢包重传。
2、系统方案设计
方案一:
使用目前已经非常成熟且广泛应用的蓝牙技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。
利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。
蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHzISM(即工业、科学、医学)频段。
其数据速率为1Mbps。
采用时分双工传输方案实现全双工传输。
方便快捷且不会遇到未知的技术难题.
方案二:
选择TI公司的2.4GHz片上系统解决方案CC2530,CC2530是用于IEEES02.15.4、Zigbee和RF4CE应用的一个片上系统解决方案,它能以较低的总成本建立强大的网络节点。
CC2530结合了先进的RF收发器性能,业界标准的增强型8051内核,使操作更容易,具备不同的运行模式,尤其适用于低功耗的系统需求。
3、系统方案选择
通过对比以上两种方案开发的难易程度、开发周期和现有的实验环境我们选择方案二。
无线温度采集系统改变了传统有线的数据采集系统搭建布线困难,监测区域受限等诸多不足。
ZigBee这种新兴的短距离无线通信系统具有功耗少,性价比高,系统维护快捷方便,而且通过在传感器模块上添加FLASH存储设备,使得数据采集工作能够摆脱对监测过程网络辐射范围的限制,可应用到许多的场合更好的改善采集工作的便捷行。
通过与其他通信技术(如GSM/GPRS)的无缝接合,能够实现采集数据的远程传输,满足对数据采集区域的远程监控。
一般以ZigBee技术为核心的无线温度采集系统的工作过程为:
协调器节点首先应搭建网络,等待各自终端采集节点的入网请求;
终端节点经过验证加入网络后,把温度传感器采集到的数据通过无线网络上传传输给协调器节点;
协调器节点接收到数据包后,进行数据包解析,并通过串口将温度信息以及子节点地址等有效信息存储并显示在监控界面上。
三、总体设计
无线传感器温度测量系统主要由单个ZigBee协调器、单部PC机和放置在各处的温度采集节点—ZigBee终端设备组成。
ZigBee协调器与各个终端节点形成了一个ZigBee星型网络。
整个无线温度采集系统的拓扑结构图如图1所示。
各处的温度采集节点—ZigBee终端设备组成。
CC2530芯片的有效通信半径为100m时,终端节点可以安置在以协调器为中心100m半径范围内。
终端数据采集节点的结构较为简化,仅由一个CC2530模块,Flash存储,2节1.5V电池和温度传感器组成,各个终端节点被初始化为无信标网络中的终端设备。
终端设备上电复位后,便启动搜索指定信道上的ZigBee协调器,并发送连接请求,终端设备在成功入网后,将被赋予一个16位短地址,在以后网络中的通信都以这个16位的短地址作为节点的标识;
启动休眠定时器,间隔10秒钟唤醒一次,醒来后使用一种简单的非时隙CSMA-CA,通过竞争机制取得信道使用权,自己向协调器节点发送请求数据。
利用模块上的温度传感器模块检测环境温度,并上传给协调器节点,然后立即再次进入休眠状态,最大限度地减少能耗,延长终端节点电源续航时间,同时也可以延伸采集范围,即利用ZigBe网络的自组织性我们可以携带轻巧的终端数据采集节点到实际测量区域完成数据采集工作,如果超出了无线网络可以支持的传输范围,那可以将数据暂时存储在Flash存储器中。
网络中的协调器节点负责搜集各温度采集节点的信息,并将信息快速的通过RS232串口按事先定义好的格式上传PC机,随即解析并显示出来。
1、总体设计框图如下:
图1无线温湿度采集系统框图
2、硬件设计实物图如下:
2.1CC2530邮票孔节点模块
2.2无线节点模块
2.3温湿度采集模块
3、温湿度监测芯片说明
3.1SHT10说明
SHT10是一款高度集成的温度湿度传感器芯片,提供全标定的数字输出。
它采用专利的COMSens技术,确保了传感器具有极高的可靠性与卓越的长期稳定性。
传感器包括包括一个电容性聚合体测湿敏感元件、一个能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路进行连接。
SH10引脚特性如下:
3.1.1、电源引脚
SHT10的供电电压为2.4~5.5V。
传感器上电后,要等待11ms以越过“休眠”状态。
在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
3.1.2、串行接口(两线双向)
SHT10的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;
但与I2C接口不兼容.
3.1.3、串行时钟输入(SCK)
SCK用于微处理器与SHTxx之间的通讯同步。
由于接口包含了完全静态逻辑,因而不存在最小SCK频率。
3.1.4、串行数据(DATA)
DATA三态门用于数据的读取。
DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(例如:
10kΩ)将信号提拉至高电平(参见图2)。
上拉电阻通常已包含在微处理器的I/O电路中。
3.1.5、串行时钟输入(SCK)
3.1.6、串行数据(DATA)
3.1.7、测量时序(RH和T)
发布一组测量命令(‘00000101’表示相对湿度RH,‘00000011’表示温度T)后,控制器要等待测量结束。
这个过程需要大约11/55/210ms,分别对应8/12/14bit测量。
确切的时间随内部晶振速度,最多有±
15%变化。
SHTxx通过下拉DATA至低电平并进入空闲模式,表示测量的结束。
控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。
检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。
接着传输2个字节的测量数据和1个字节的CRC奇偶校验。
uC需要通过下拉DATA为低电平,以确认每个字节。
所有的数据从MSB开始,右值有效(例如:
对于12bit数据,从第5个SCK时钟起算作MSB;
而对于8bit数据,首字节则无意义)。
用CRC数据的确认位,表明通讯结束。
如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持确认位ack高电平,来中止通讯。
在测量和通讯结束后,SHTxx自动转入休眠模式。
3.1.8、通讯复位时序
如果与SHTxx通讯中断,下列信号时序可以复位串口:
当DATA保持高电平时,触发SCK时钟9次或更多。
在下一次指令前,发送一个“传输启动”时序。
这些时序只复位串口,状态寄存器内容仍然保留。
通讯复位时序图
4、CC2530说明
4.1、简介
CC2530是用于2.4-GHz
IEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。
它能够以非常低的总的材料成本建立强大的网络节点。
CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大的功能。
CC2530有四种不同的闪存版本:
CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。
CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。
运行模式之间的转换时间短进一步确保了低能源消耗。
CC2530F256结合了德州仪器的业界领先的黄金单元ZigBee
协议栈(Z-Stack™),提供了一个强大和完整的ZigBee解决方案。
CC2530F64结合了德州仪器的黄金单元RemoTI,更好地提供了一个强大和完整的ZigBeeRF4CE
远程控制解决方案。
4.2、引脚描述
引脚名称引脚引脚类型描述
AVDD128电源(模拟)2-V–3.6-V模拟电源连接
AVDD227电源(模拟)2-V–3.6-V模拟电源连接
AVDD324电源(模拟)2-V–3.6-V模拟电源连接
AVDD429电源(模拟)2-V–3.6-V模拟电源连接
AVDD521电源(模拟)2-V–3.6-V模拟电源连接
AVDD631电源(模拟)2-V–3.6-V模拟电源连接
DCOUPL40电源(数字)1.8V数字电源去耦。
不使用外部电路供应。
DVDD139电源(数字)2-V–3.6-V数字电源连接
DVDD210电源(数字)2-V–3.6-V数字电源连接
GND-接地接地衬垫必须连接到一个坚固的接地面。
GND1,2,3,4未使用的引脚
连接到GND
P0_019数字I/O端口0.0
P0_118数字I/O端口0.1
P0_217数字I/O端口0.2
P0_316数字I/O端口0.3
P0_415数字I/O端口0.4
P0_514数字I/O端口0.5
P0_613数字I/O端口0.6
P0_712数字I/O端口0.7
P1_011数字I/O端口1.0-20-mA驱动能力
P1_19数字I/O端口1.1-20-mA驱动能力
P1_28数字I/O端口1.2
P1_37数字I/O端口1.3
P1_46数字I/O端口1.4
P1_55数字I/O端口1.5
P1_638数字I/O端口1.6
P1_737数字I/O端口1.7
P2_036数字I/O端口2.0
P2_135数字I/O端口2.1
P2_234数字I/O端口2.2
P2_333数字I/O模拟端口2.3/32.768kHzXOSC
P2_432数字I/O模拟端口2.4/32.768kHzXOSC
RBIAS30模拟I/O参考电流的外部精密偏置电阻
RESET_N20数字输入复位,活动到低电平
RF_N26RFI/ORX期间负RF输入信号到LNA
RF_P25RFI/ORX期间正RF输入信号到LNA
XOSC_Q122模拟I/O32-MHz晶振引脚1或外部时钟输入
XOSC_Q223模拟I/O32-MHz晶振引脚2
4.3、模块说明
CC2530芯片系列中使用的8051CPU内核是一个单周期的8051兼容内核。
它有三种不同的内存访问总线(SFR,DATA和CODE/XDATA),单周期访问SFR,DATA和主SRAM。
它还包括一个调试接口和一个18输入扩展中断单元。
中断控制器总共提供了18个中断源,分为六个中断组,每个与四个中断优先级之一相关。
当设备从活动模式回到空闲模式,任一中断服务请求就被激发。
一些中断还可以从睡眠模式(供电模式1-3)唤醒设备。
内存仲裁器位于系统中心,因为它通过SFR
总线把CPU和DMA控制器和物理存储器以及所有外设连接起来。
内存仲裁器有四个内存访问点,每次访问可以映射到三个物理存储器之一:
一个8-KBSRAM、闪存存储器和XREG/SFR
寄存器。
它负责执行仲裁,并确定同时访问同一个物理存储器之间的顺序。
8-KBSRAM映射到DATA存储空间和部分XDATA存储空间。
8-KBSRAM是一个超低功耗的SRAM,即使数字部分掉电(供电模式2和3)也能保留其内容。
这是对于低功耗应用来说很重要的一个功能。
32/64/128/256KB闪存块为设备提供了内电路可编程的非易失性程序存储器,映射到XDATA
存储空间。
除了保存程序代码和常量以外,非易失性存储器允许应用程序保存必须保留的数据,这样设备重启之后可以使用这些数据。
使用这个功能,例如可以利用已经保存的网络具体数据,就不需要经过完全启动、网络寻找和加入过程。
4.4、时钟和电源管理
数字内核和外设由一个1.8-V低差稳压器供电。
它提供了电源管理功能,可以实现使用不同供电模式的长电池寿命的低功耗运行。
有五种不同的复位源来复位设备。
4.5、外设
CC2530包括许多不同的外设,允许应用程序设计者开发先进的应用。
调试接口执行一个专有的两线串行接口,用于内电路调试。
通过这个调试接口,可以执行整个闪存存储器的擦除、控制使能哪个振荡器、停止和开始执行用户程序、执行8051
内核提供的指令、设置代码断点,以及内核中全部指令的单步调试。
使用这些技术,可以很好地执行内电路的调试和外部闪存的编程。
设备含有闪存存储器以存储程序代码。
闪存存储器可通过用户软件和调试接口编程。
闪存控制器处理写入和擦除嵌入式闪存存储器。
闪存控制器允许页面擦除和4
字节编程。
I/O控制器负责所有通用I/O引脚。
CPU可以配置外设模块是否控制某个引脚或它们是否受软件控制,如果是的话,每个引脚配置为一个输入还是输出,是否连接衬垫里的一个上拉或下拉电阻。
CPU中断可以分别在每个引脚上使能。
每个连接到I/O
引脚的外设可以在两个不同的I/O引脚位置之间选择,以确保在不同应用程序中的灵活性。
系统可以使用一个多功能的五通道DMA控制器,使用XDATA存储空间访问存储器,因此能够访问所有物理存储器。
每个通道(触发器、优先级、传输模式、寻址模式、源和目标指针和传输计数)用DMA描述符在存储器任何地方配置。
许多硬件外设(AES
内核、闪存控制器、USART、定时器、ADC接口)通过使用DMA控制器在SFR或XREG地址和闪存/SRAM之间进行数据传输,获得高效率操作。
定时器1是一个16位定时器,具有定时器/PWM功能。
它有一个可编程的分频器,一个16位周期值,和五个各自可编程的计数器/捕获通道,每个都有一个16位比较值。
每个计数器/捕获通道可以用作一个PWM输出或捕获输入信号边沿的时序。
它还可以配置在IR产生模式,计算定时器3周期,输出是ANDed,定时器3的输出是用最小的CPU互动产生调制的消费型IR信号。
MAC定时器(定时器2)是专门为支持IEEE802.15.4MAC或软件中其他时槽的协议设计。
定时器有一个可配置的定时器周期和一个8位溢出计数器,可以用于保持跟踪已经经过的周期数。
一个16位捕获寄存器也用于记录收到/发送一个帧开始界定符的精确时间,或传输结束的精确时间,还有一个16位输出比较寄存器可以在具体时间产生不同的选通命令(开始RX,开始TX,等等)到无线模块。
定时器3和定时器4是8位定时器,具有定时器/计数器/PWM功能。
它们有一个可编程的分频器,一个8位的周期值,一个可编程的计数器通道,具有一个8位的比较值。
每个计数器通道可以用作一个PWM输出。
睡眠定时器是一个超低功耗的定时器,计算32-kHz晶振或32-kHzRC振荡器的周期。
睡眠定时器在除了供电模式3的所有工作模式下不断运行。
这一定时器的典型应用是作为实时计数器,或作为一个唤醒定时器跳出供电模式1或2。
ADC支持7到12位的分辨率,分别在30kHz或4kHz的带宽。
DC和音频转换可以使用高达八个输入通道(端口0)。
输入可以选择作为单端或差分。
参考电压可以是内部电压、AVDD或是一个单端或差分外部信号。
ADC还有一个温度传感输入通道。
ADC可以自动执行定期抽样或转换通道序列的程序。
随机数发生器使用一个16位LFSR来产生伪随机数,这可以被CPU读取或由选通命令处理器直接使用。
例如随机数可以用作产生随机密钥,用于安全。
AES加密/解密内核允许用户使用带有128位密钥的AES算法加密和解密数据。
这一内核能够支持IEEE802.15.4MAC安全、ZigBee网络层和应用层要求的AES操作。
一个内置的看门狗允许CC2530在固件挂起的情况下复位自身。
当看门狗定时器由软件使能,它必须定期清除;
否则,当它超时就复位它就复位设备。
或者它可以配置用作一个通用32-kHz
定时器。
USART0和USART1每个被配置为一个SPI主/从或一个UART。
它们为RX和TX提供了双缓冲,以及硬件流控制,因此非常适合于高吞吐量的全双工应用。
每个都有自己的高精度波特率发生器,因此可以使普通定时器空闲出来用作其他用途。
4.6、无线设备
CC2530具有一个IEEE802.15.4兼容无线收发器。
RF内核控制模拟无线模块。
另外,它提供了MCU和无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。
无线设备还包括一个数据包过滤和地址识别模块。
5、软件设计
在一个ZigBee应用系统中,光有硬件是没有用的,还需要与之相匹配的软件程序才能真正的能够使用。
无线温度采集系统的软件设计主要包括ZigBee节点间的通信程序,协调器节点组网程序。
5软件开发环境的选择
ZigBee协议栈:
ZigBee2007
ZigBee2007的开发及下载工具:
TI公司的IAR软件
5.1、基于ZigBee无线传感器网络的测控系统中协调器设备的软件
设计流程如下:
macEventLoop
处理本任务当前优先级最高的事件
macTaskInit
注册相应事件YES
Nwk_event_loop
nwk_init
注册相应事件YES
Hal_Init
HalProcessevet
开始
注册相应事件YES
MT_ProcessEvent
MT_TaskInit
硬件初始化
osalInitTASKS系统初始化
APS_event_loop
APS_Init
执行操作系统
ZDApp_Init
ZDAappeventlooppp
注册相应事件NOYES
SAPI_ProcessEvent
NO
SAPI_Init
5.2、无线接收串口转发流程图如下:
SerialApp_ProcessEvent
Osal_msg_receive
(SerialApp_Taskid)
AF_INCOMING_MSG_CMD
SerialApp_ProcessMSGCmd
HalUARTWrite
Osal_set_event(SerialApp_TaskID,SERIALAPP_RESP_EVT)
SerialApp_Resp
5.3、串口接收无线转发流程图如下:
SerialApp_CallBack
SerialApp_Send()
HalUARTResd
AF_DataResquest
发送是否成功?
结束
YES
Osal_Set_event(SerialApp_TaskID,
SERIALAPPSENDEVT)
NO
6.源代码如下:
#include"
ZComDef.h"
OSAL.h"