基于嵌入式的室内环境信息采集系统设计_第1页
基于嵌入式的室内环境信息采集系统设计_第2页
基于嵌入式的室内环境信息采集系统设计_第3页
基于嵌入式的室内环境信息采集系统设计_第4页
基于嵌入式的室内环境信息采集系统设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.:.;*实际教学*学院年秋季学期嵌入式系统课程设计题 目:基于嵌入式的室内环境信息采集控制演示系统设计专业班级:计算机科学与技术物联网工程方向 姓 名: 学 号: 指点教师: 成 绩: 目录 TOC o - h z u HYPERLINK l _Toc 标题:基于嵌入式的室内环境信息采集控制演示系统设计 PAGEREF _Toc h HYPERLINK l _Toc 目录 PAGEREF _Toc h HYPERLINK l _Toc 摘要 PAGEREF _Toc h HYPERLINK l _Toc 关键词 PAGEREF _Toc h HYPERLINK l _Toc 前言 PAGER

2、EF _Toc h HYPERLINK l _Toc 系统分析及其设计 PAGEREF _Toc h HYPERLINK l _Toc 一、根本原理: PAGEREF _Toc h HYPERLINK l _Toc 二、系统方案设计 PAGEREF _Toc h HYPERLINK l _Toc 三、总体设计 PAGEREF _Toc h HYPERLINK l _Toc 四、系统测试 PAGEREF _Toc h HYPERLINK l _Toc 总结 PAGEREF _Toc h HYPERLINK l _Toc 参考文献 PAGEREF _Toc h HYPERLINK l _Toc 致

3、谢 PAGEREF _Toc h 基于嵌入式的室内环境信息采集控制演示系统设计摘要 基于嵌入式的无线传感网络是多学科的高度交叉,知识的高度集成的前沿热点研讨领域。它经过各类集成化的微型传感器协作地实时监测,感知和采集各种环境或监测对象的信息,这些信息经过无线方式被发送,并以自组多跳的网络方式传送到用户终端无线传感器网络的特性决议了其不需求较高的传输带宽,而要求较低的传输延时和极低的功率耗费。IEEESZigBee技术是近年来通讯领域中的研讨热点,具有低本钱、低功耗、低速率、低复杂度的特点和高可靠性、组网简单、灵敏等优势,逐渐成为无线传感器网络现实上的国际规范。此次课设设计并实现了用无线传感器网

4、络构成的分布式温度湿度监控系统。关键词:嵌入式、信息采集、ZIGBEE、串口通讯前言嵌入式系统是以运用为中心,以计算机技术为根底,软硬件可定制,适用于不同运用场所,对功能,可靠性,本钱,体积,功耗有严厉要求的公用计算机系统。随着生活程度的提高和科学技术开展的需求,人类对环境信息的感知上有了更高的要求,在某些特殊工业消费领域和室内存储场所对环境要求显得特别苛刻;随着嵌入式技术的开展,为环境环境检测提供了更进一步的保证。基于嵌入式的环境信息采集系统包含感知层、传输层、运用层三个层面;传输层常见的有温湿度、烟感、一氧化碳、压力等嵌入式传感器模块,传输层包括有线通讯和无线通讯两部分,运用层包括各种终端

5、。在室内环境监测领域,以嵌入式技术为根底,结合ZigBee技术可以实现、准确、完好、可靠的反响环境信息,做到实时监控。系统分析及其设计一、根本原理:温度传感器将被测点的温度采集后输出的模拟信号逐渐送往放大电路、低通滤波器以及 A/D 转换器即信号调理电路,然后再单片机的控制下将 A/D 转换器输出的数字信号传送到无线收发芯片中,并经过芯片的调制处置后由芯片内部的天线发送到上位机机监测软件上,在上位机模块上,发来的数据由单片机控制的无线收发芯片接纳并解调,最后经过接口芯片发送到 PC 机中进展显示和处置。温度传感器被用在终端节点上,当上电后,温度传感器就是可以获取环境中某个地方温度的敏感元器件,

6、它可以将环境中的温度或者是与温度相关的参量信息转换成电信号,他们可以根据这些电信号的强弱来识别被测点在环境中的温度数据。系统方案设计系统设计需求湿度传感器和温度传感器采集到数据后,经过给RS串口添加无线传输功能,替代设备电缆线进展无线传输, 无线温度采集系统改动了传统有线的数据采集系统搭建布线困难,监测区域受限等诸多缺乏。要求设计的短间隔 无线通讯系统具有功耗少,性价比高,系统维护快捷方便,而且经过在传感器模块上添加 FLASH 存储设备,使得数据采集任务可以摆脱对监测过程网络辐射范围的限制,可运用到许多的场所更好的改善采集任务的便利行。经过与其他通讯技术(如 GSMGPRS)的无缝接合,可以

7、实现采集数据的远程传输,满足对数据采集区域的远程监控串口传输设计为双向全双工,无硬件流控制,强迫允许OTA(多条)时间和丢包重传。、系统方案设计方案一:飞思卡尔公司(Freescale)的 MC 芯片搭载了满足 IEEE . 规范的射频信号传输与接纳的调制解调设备。这类功能完善的双向 .GHz 频段的收发设备可以交融到 ZigBee 技术之中。MC 包含低噪放大器,mW 的功率加强器,压控振荡器,电源供应调理模块,一切频段编码和解码模块,包括可以转换和控制数据的发送与接纳串行外围接口(SPI)中断恳求输出。采用 O-QPSK 的调制方式,最大传输速率为 kb/s。搭配高性能的微处置器一同运用,

8、MC可以提供低本钱且高效率的短间隔 数据传输处理方案。MC 和 MCU 两者采用串行外围接口(SPI)衔接,因此可以保证飞思卡尔庞大产品系列中的恣意一款MCU 都能与之匹配运用。方案二:选择TI公司的.GHz片上系统处理方案CC,CC是用于IEEES.、Zigbee和RFCE运用的一个片上系统处理方案,它能以较低的总本钱建立强大的网络节点。CC结合了先进的RF收发器性能,业界规范的加强型内核,使操作更容易,具备不同的运转方式,尤其适用于低功耗的系统需求。、系统方案选择经过对比以上两种方案开发的难易程度、开发周期和现有的实验环境他们选择方案二。无线温度采集系统改动了传统有线的数据采集系统搭建布线

9、困难,监测区域受限等诸多缺乏。ZigBee这种新兴的短间隔 无线通讯系统具有功耗少,性价比高,系统维护快捷方便,而且经过在传感器模块上添加 FLASH 存储设备,使得数据采集任务可以摆脱对监测过程网络辐射范围的限制,可运用到许多的场所更好的改善采集任务的便利行。经过与其他通讯技术(如 GSMGPRS)的无缝接合,可以实现采集数据的远程传输,满足对数据采集区域的远程监控。普通以 ZigBee 技术为中心的无线温度采集系统的任务过程为:协调器节点首先应搭建网络,等待各自终端采集节点的入网恳求;终端节点经过验证参与网络后,把温度传感器采集到的数据经过无线网络上传传输给协调器节点;协调器节点接纳到数据

10、包后,进展数据包解析,并经过串口将温度信息以及子节点地址等有效信息存储并显示在监控界面上。三、总体设计无线传感器温度丈量系统主要由单个 ZigBee 协调器、单部 PC 机和放置在各处的温度采集节点ZigBee 终端设备组成。ZigBee 协调器与各个终端节点构成了一个 ZigBee 星型网络。整个无线温度采集系统的拓扑构造图如图 所示。各处的温度采集节点ZigBee 终端设备组成。CC芯片的有效通讯半径为 m 时,终端节点可以安顿在以协调器为中心m 半径范围内。终端数据采集节点的构造较为简化,仅由一个 CC 模块,Flash 存储, 节 .V 电池和温度传感器组成,各个终端节点被初始化为无信

11、标网络中的终端设备。终端设备上电复位后,便启动搜索指定信道上的ZigBee协调器,并发送衔接恳求,终端设备在胜利入网后,将被赋予一个 位短地址,在以后网络中的通讯都以这个 位的短地址作为节点的标识;启动休眠定时器,间隔 秒钟唤醒一次,醒来后运用一种简单的非时隙 CSMA- CA,经过竞争机制获得信道运用权,本人向协调器节点发送恳求数据。利用模块上的温度传感器模块检测环境温度,并上传给协调器节点,然后立刻再次进入休眠形状,最大限制地减少能耗,延伸终端节点电源续航时间,同时也可以延伸采集范围,即利用 ZigBe网络的自组织性他们可以携带轻巧的终端数据采集节点到实践丈量区域完成数据采集任务,假设超出

12、了无线网络可以支持的传输范围,那可以将数据暂时存储在 Flash 存储器中。网络中的协调器节点担任搜集各温度采集节点的信息,并将信息快速的经过 RS 串口按事先定义好的格式上传 PC 机,随即解析并显示出来。、总体设计框图如下:图 无线温湿度采集系统框图、硬件设计实物图如下:.CC邮票孔节点模块.无线节点模块.温湿度采集模块、温湿度监测芯片阐明 . SHT阐明SHT是一款高度集成的温度湿度传感器芯片,提供全标定的数字输出。它采用专利的COMSens技术,确保了传感器具有极高的可靠性与杰出的长期稳定性。传感器包括包括一个电容性聚合体测湿敏感元件、一个能隙资料制成的测温元件,并在同一芯片上,与位的

13、A/D转换器以及串行接口电路进展衔接。SH引脚特性如下:.、 电源引脚SHT的供电电压为.V。传感器上电后,要等待ms以越过“休眠形状。在此期间无需发送任何指令。电源引脚VDD,GND之间可添加一个nF的电容,用以去耦滤波。.、串行接口(两线双向) SHT的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处置;但与IC接口不兼容.、串行时钟输入(SCK) SCK用于微处置器与SHTxx之间的通讯同步。由于接口包含了完全静态逻辑,因此不存在最小SCK频率。.、串行数据(DATA) DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改动形状,并仅在SCK时钟上升沿有效。数据传输期间

14、,在SCK时钟高电平常,DATA必需坚持稳定。为防止信号冲突,微处置器应驱动DATA在低电平。需求一个外部的上拉电阻例如:k将信号提拉至高电平参见图。上拉电阻通常已包含在微处置器的I/O 电路中。.、串行时钟输入(SCK) SCK用于微处置器与SHTxx之间的通讯同步。由于接口包含了完全静态逻辑,因此不存在最小SCK频率。.、串行数据(DATA) DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改动形状,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平常,DATA必需坚持稳定。为防止信号冲突,微处置器应驱动DATA在低电平。需求一个外部的上拉电阻例如:k将信号提拉至高电

15、平参见图。上拉电阻通常已包含在微处置器的I/O 电路中。.、丈量时序(RH 和T) 发布一组丈量命令表示相对湿度RH,表示温度T后,控制器要等待丈量终了。这个过程需求大约/ms,分别对应/bit丈量。确切的时间随内部晶振速度,最多有%变化。SHTxx经过下拉DATA至低电平并进入空闲方式,表示丈量的终了。控制器在再次触发SCK时钟前,必需等待这个“数据备妥信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它义务在需求时再读出数据。接着传输个字节的丈量数据和个字节的CRC奇偶校验。uC需求经过下拉DATA为低电平,以确认每个字节。一切的数据从MSB开场,右值有效例如:对于bit数据,

16、从第个SCK时钟起算作MSB;而对于bit 数据,首字节那么无意义。用CRC数据确实认位,阐明通讯终了。假设不运用CRC-校验,控制器可以在丈量值LSB后,经过坚持确认位ack 高电平,来中止通讯。在丈量和通讯终了后,SHTxx自动转入休眠方式。.、通讯复位时序假设与SHTxx通讯中断,以下信号时序可以复位串口:当DATA坚持高电平常,触发SCK时钟次或更多。在下一次指令前,发送一个“传输启动时序。这些时序只复位串口,形状存放器内容依然保管。通讯复位时序图、CC阐明.、简介CC 是用于.-GHz HYPERLINK baike.baidu/view/.htm t _blank IEEE .、Z

17、igBee 和RFCE 运用的一个真正的 HYPERLINK baike.baidu/view/.htm t _blank 片上系统SoC处理方案。它可以以非常低的总的资料本钱建立强大的 HYPERLINK baike.baidu/view/.htm t _blank 网络节点。CC 结合了领先的RF 收发器的优良性能,业界规范的加强型 CPU,系统内可编程闪存,-KB RAM 和许多其它强大的功能。CC 有四种不同的闪存版本:CCF/,分别具有/KB 的闪存。CC 具有不同的运转方式,使得它尤其顺应超低功耗要求的系统。运转方式之间的转换时间短进一步确保了低能源耗费。CCF 结合了德州仪器的业

18、界领先的黄金单元ZigBee HYPERLINK baike.baidu/view/.htm t _blank 协议栈Z-Stack,提供了一个强大和完好的ZigBee 处理方案。CCF 结合了德州仪器的黄金单元RemoTI,更好地提供了一个强大和完好的ZigBee RFCE HYPERLINK baike.baidu/view/.htm t _blank 远程控制处理方案。.、引脚描画引脚称号 引脚 引脚类型 描画AVDD 电源模拟 -V.-V 模拟电源衔接AVDD 电源模拟 -V.-V 模拟电源衔接AVDD 电源模拟 -V.-V 模拟电源衔接AVDD 电源模拟 -V.-V 模拟电源衔接AV

19、DD 电源模拟 -V.-V 模拟电源衔接AVDD 电源模拟 -V.-V 模拟电源衔接DCOUPL 电源数字 .V 数字电源去耦。不运用外部电路供应。DVDD 电源数字 -V.-V 数字电源衔接DVDD 电源数字 -V.-V 数字电源衔接GND - 接地 接地衬垫必需衔接到一个巩固的接地面。GND , 未运用的 HYPERLINK baike.baidu/view/.htm t _blank 引脚衔接到GNDP_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口

20、.P_ 数字I/O 端口.-mA 驱动才干P_ 数字I/O 端口.-mA 驱动才干P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 端口.P_ 数字I/O 模拟端口./. kHz XOSCP_ 数字I/O 模拟端口./. kHz XOSCRBIAS 模拟I/O 参考电流的外部精细偏置电阻RESET_N 数字输入 复位,活动到低电平RF_N RF I/O RX 期间负RF 输入信号到LNARF_P RF I/O RX 期间正RF 输入信号

21、到LNAXOSC_Q 模拟I/O -MHz 晶振引脚或外部时钟输入XOSC_Q 模拟I/O -MHz 晶振引脚.、模块阐明CC芯片系列中运用的 CPU内核是一个单周期的 HYPERLINK baike.baidu/view/.htm t _blank 兼容内核。它有三种不同的内存访问总线SFR,DATA 和CODE/XDATA,单周期访问SFR,DATA 和主SRAM。它还包括一个调试接口和一个 输入扩展中断单元。中断控制器总共提供了 个 HYPERLINK baike.baidu/view/.htm t _blank 中断源,分为六个中断组,每个与四个 HYPERLINK baike.bai

22、du/view/.htm t _blank 中断优先级之一相关。当设备从活动方式回到空闲方式,任一中断效力恳求就被激发。一些中断还可以从睡眠方式供电方式-唤醒设备。内存仲裁器位于系统中心,由于它经过SFR HYPERLINK baike.baidu/view/.htm t _blank 总线把CPU 和DMA 控制器和物理存储器以及一切外设衔接起来。内存仲裁器有四个内存访问点,每次访问可以映射到三个物理 HYPERLINK baike.baidu/view/.htm t _blank 存储器之一:一个-KB SRAM、闪存存储器和XREG/SFR HYPERLINK baike.baidu/v

23、iew/.htm t _blank 存放器。它担任执行仲裁,并确定同时访问同一个物理存储器之间的顺序。-KB SRAM映射到DATA HYPERLINK baike.baidu/view/.htm t _blank 存储空间和部分XDATA存储空间。-KB SRAM是一个超低功耗的SRAM,即使数字部分掉电供电方式 和也能保管其内容。这是对于低功耗运用来说很重要的一个功能。/ KB闪存块为设备提供了内电路可编程的非易失性 HYPERLINK baike.baidu/view/.htm t _blank 程序存储器,映射到XDATA HYPERLINK baike.baidu/view/.htm

24、 t _blank 存储空间。除了保管程序代码和常量以外,非易失性存储器允许 HYPERLINK baike.baidu/view/.htm t _blank 运用程序保管必需保管的数据,这样设备重启之后可以运用这些数据。运用这个功能,例如可以利用曾经保管的网络详细数据,就不需求经过完全启动、网络寻觅和参与过程。.、时钟和 HYPERLINK baike.baidu/view/.htm t _blank 电源管理数字内核和外设由一个.-V 低差稳压器供电。它提供了 HYPERLINK baike.baidu/view/.htm t _blank 电源管理功能,可以实现运用不同供电方式的长电池寿

25、命的低功耗运转。有五种不同的复位源来复位设备。.、外设CC 包括许多不同的外设,允许 HYPERLINK baike.baidu/view/.htm t _blank 运用程序设计者开发先进的运用。调试接口执行一个专有的两线 HYPERLINK baike.baidu/view/.htm t _blank 串行接口,用于内电路调试。经过这个调试接口,可以执行整个闪存 HYPERLINK baike.baidu/view/.htm t _blank 存储器的擦除、控制使能哪个振荡器、停顿和开场执行 HYPERLINK baike.baidu/view/.htm t _blank 用户程序、执行

26、HYPERLINK baike.baidu/view/.htm t _blank 内核提供的指令、设置代码 HYPERLINK baike.baidu/view/.htm t _blank 断点,以及内核中全部指令的 HYPERLINK baike.baidu/view/.htm t _blank 单步伐试。运用这些技术,可以很好地执行内电路的调试和外部闪存的编程。设备含有闪存 HYPERLINK baike.baidu/view/.htm t _blank 存储器以存储程序代码。闪存 HYPERLINK baike.baidu/view/.htm t _blank 存储器可经过用户 HYPE

27、RLINK baike.baidu/view/.htm t _blank 软件和调试接口 HYPERLINK baike.baidu/view/.htm t _blank 编程。闪存控制器处置写入和擦除嵌入式闪存 HYPERLINK baike.baidu/view/.htm t _blank 存储器。闪存控制器允许页面擦除和 HYPERLINK baike.baidu/view/.htm t _blank 字节 HYPERLINK baike.baidu/view/.htm t _blank 编程。I/O控制器担任一切通用I/O引脚。CPU可以配置 HYPERLINK baike.baidu

28、/view/.htm t _blank 外设模块能否控制某个引脚或它们能否受 HYPERLINK baike.baidu/view/.htm t _blank 软件控制,假设是的话,每个引脚配置为一个输入还是输出,能否衔接衬垫里的一个上拉或下拉电阻。CPU 中断可以分别在每个引脚上使能。每个衔接到I/O HYPERLINK baike.baidu/view/.htm t _blank 引脚的外设可以在两个不同的I/O 引脚位置之间选择,以确保在不同 HYPERLINK baike.baidu/view/.htm t _blank 运用程序中的灵敏性。系统可以运用一个多功能的五通道DMA控制器,

29、运用XDATA HYPERLINK baike.baidu/view/.htm t _blank 存储空间访问 HYPERLINK baike.baidu/view/.htm t _blank 存储器,因此可以访问一切物理存储器。每个通道 HYPERLINK baike.baidu/view/.htm t _blank 触发器、优先级、传输方式、 HYPERLINK baike.baidu/view/.htm t _blank 寻址方式、源和目的指针和传输计数用DMA 描画符在 HYPERLINK baike.baidu/view/.htm t _blank 存储器任何地方配置。许多硬件外设A

30、ES HYPERLINK baike.baidu/view/.htm t _blank 内核、闪存控制器、USART、 HYPERLINK baike.baidu/view/.htm t _blank 定时器、ADC 接口经过运用DMA 控制器在SFR 或XREG 地址和闪存/SRAM 之间进展数据传输,获得高效率操作。 HYPERLINK baike.baidu/view/.htm t _blank 定时器 是一个 位 HYPERLINK baike.baidu/view/.htm t _blank 定时器,具有定时器/PWM 功能。它有一个可编程的分频器,一个 位周期值,和五个各自可编程的

31、计数器/捕获通道,每个都有一个 位比较值。每个计数器/捕获通道可以用作一个PWM输出或捕获输入信号边沿的时序。它还可以配置在IR产生方式,计算 HYPERLINK baike.baidu/view/.htm t _blank 定时器 周期,输出是ANDed,定时器 的输出是用最小的CPU 互动产生调制的消费型IR 信号。MAC HYPERLINK baike.baidu/view/.htm t _blank 定时器定时器是专门为支持IEEE . MAC或 HYPERLINK baike.baidu/view/.htm t _blank 软件中其他时槽的协议设计。定时器有一个可配置的定时器周期和

32、一个 位溢出计数器,可以用于坚持跟踪曾经经过的周期数。一个 位捕获 HYPERLINK baike.baidu/view/.htm t _blank 存放器也用于记录收到/发送一个帧开场界定符的准确时间,或传输终了的准确时间,还有一个 位输出比较存放器可以在详细时间产生不同的选通命令开场RX,开场TX,等等到 HYPERLINK baike.baidu/view/.htm t _blank 无线模块。 HYPERLINK baike.baidu/view/.htm t _blank 定时器 和定时器 是 位定时器,具有定时器/计数器/PWM 功能。它们有一个可编程的分频器,一个 位的周期值,一

33、个可编程的计数器通道,具有一个 位的比较值。每个计数器通道可以用作一个PWM 输出。睡眠 HYPERLINK baike.baidu/view/.htm t _blank 定时器是一个超低功耗的定时器,计算-kHz 晶振或-kHz RC 振荡器的周期。睡眠定时器在除了供电方式 的一切任务方式下不断运转。这一 HYPERLINK baike.baidu/view/.htm t _blank 定时器的典型运用是作为实时计数器,或作为一个唤醒定时器跳出供电方式 或。ADC支持到位的分辨率,分别在 kHz或 kHz的带宽。DC和音频转换可以运用高达八个输入通道端口。输入可以选择作为单端或差分。参考电压

34、可以是内部电压、AVDD 或是一个单端或差分外部信号。ADC 还有一个温度传感输入通道。ADC 可以自动执行定期抽样或转换通道序列的程序。随机数发生器运用一个 位LFSR 来产生 HYPERLINK baike.baidu/view/.htm t _blank 伪随机数,这可以被CPU 读取或由选通命令处置器直接运用。例如随机数可以用作产生随机 HYPERLINK baike.baidu/view/.htm t _blank 密钥,用于平安。AES加密/解密内核允许用户运用带有位 HYPERLINK baike.baidu/view/.htm t _blank 密钥的AES算法加密和解密数据。

35、这一内核可以支持IEEE . MAC 平安、ZigBee 网络层和 HYPERLINK baike.baidu/view/.htm t _blank 运用层要求的AES 操作。一个内置的 HYPERLINK baike.baidu/view/.htm t _blank 看门狗允许CC 在 HYPERLINK baike.baidu/view/.htm t _blank 固件挂起的情况下复位本身。当 HYPERLINK baike.baidu/view/.htm t _blank 看门狗定时器由 HYPERLINK baike.baidu/view/.htm t _blank 软件使能,它必需定

36、期去除;否那么,当它超时就复位它就复位设备。或者它可以配置用作一个通用-kHz HYPERLINK baike.baidu/view/.htm t _blank 定时器。USART 和USART 每个被配置为一个SPI主/从或一个UART。它们为RX和TX提供了 HYPERLINK baike.baidu/view/.htm t _blank 双缓冲,以及硬件流控制,因此非常适宜于高吞吐量的全双工运用。每个都有本人的高精度 HYPERLINK baike.baidu/view/.htm t _blank 波特率发生器,因此可以使普通 HYPERLINK baike.baidu/view/.ht

37、m t _blank 定时器空闲出来用作其他用途。.、无线设备CC 具有一个IEEE . 兼容无线收发器。RF 内核控制模拟 HYPERLINK baike.baidu/view/.htm t _blank 无线模块。另外,它提供了MCU 和无线设备之间的一个接口,这使得可以发出命令,读取形状,自动操作和确定无线设备事件的顺序。无线设备还包括一个 HYPERLINK baike.baidu/view/.htm t _blank 数据包过滤和地址识别模块。、软件设计 在一个 ZigBee 运用系统中,光有硬件是没有用的,还需求与之相匹配的软件程序才干真正的可以运用。无线温度采集系统的软件设计主要

38、包括 ZigBee 节点间的通讯程序,协调器节点组网程序。 软件开发环境的选择ZigBee 协议栈:ZigBeeZigBee的开发及下载工具:TI公司的IAR软件.、基于 ZigBee 无线传感器网络的测控系统中协调器设备的软件设计流程如下:macEventLoop处置本义务当前优先级最高的事件macTaskInit 注册相应事件 YES Nwk_event_loop处置本义务当前优先级最高的事件 nwk_init 注册相应事件 YESHal_InitHalProcessevet处置本义务当前优先级最高的事件开场 注册相应事件 YES MT_ProcessEventMT_TaskInit处置本

39、义务当前优先级最高的事件硬件初始化osalInitTASKS系统初始化 注册相应事件 YES APS_event_loopAPS_Init处置本义务当前优先级最高的事件 注册相应事件 YES执行操作系统 ZDApp_InitZDAappeventlooppp处置本义务当前优先级最高的事件 注册相应事件 NO YES SAPI_ProcessEvent处置本义务当前优先级最高的事件 NOSAPI_Init 注册相应事件 YES.、无线接纳串口转发流程图如下:SerialApp_ProcessEventOsal_msg_receive(SerialApp_Taskid)AF_INCOMING_MS

40、G_CMDSerialApp_ProcessMSGCmdHalUARTWriteOsal_set_event(SerialApp_TaskID,SERIALAPP_RESP_EVT)SerialApp_Resp.、串口接纳无线转发流程图如下:SerialApp_CallBackSerialApp_Send()HalUARTResdAF_DataResquest发送能否胜利? 终了 YES Osal_Set_event(SerialApp_TaskID,SERIALAPP SEND EVT) NO .源代码如下: #include ZComDef.h#include OSAL.h#include

41、 OSAL_Nv.h#include OnBoard.h#include ZMAC.h#ifndef NONWK#include AF.h#endif/* Hal */#include hal_lcd.h#include hal_led.h#include hal_adc.h#include hal_drivers.h#include hal_assert.h#include hal_flash.h#include stdio.h/ Maximun number of Vdd samples checked before go on#define MAX_VDD_SAMPLES /电压检测#d

42、efine ZMAIN_VDD_LIMIT HAL_ADC_VDD_LIMIT_ /正常电压极限值extern bool HalAdcCheckVdd (uint limit); /设备启动前的芯片电压检测函数static void zmain_dev_info( void );static void zmain_ext_addr( void );static void zmain_vdd_check( void );#ifdef LCD_SUPPORTEDstatic void zmain_lcd_init( void );#endif/* * fn main * brief First f

43、unction called after startup. * return dont care */int main( void ) / Turn off interrupts osal_int_disable( INTS_ALL ); /封锁一切中断 EA=/ Initialization for board related stuff such as LEDs HAL_BOARD_INIT(); /初始化系统时钟 、LED所运用的IO等/ Make sure supply voltage is high enough to runzmain_vdd_check(); /检测芯片电压能否正

44、常/ Initialize board I/OInitBoard( OB_COLD ); /初始化LED的IO/ Initialze HAL driversHalDriverInit(); /初始化芯片各个硬件模块包括LCD/ Initialize NV Systemosal_nv_init( NULL ); /初始化FLASH存储 / Initialize the MAC ZMacInit(); /初始化MAC层 / Determine the extended address zmain_ext_addr(); /构成节点MAC地址/ Initialize basic NV items z

45、gInit(); /初始化一些非易失变量#ifndef NONWK/ Since the AF isnt a task, call its initialization routineafInit(); /初始化运用框架层#endif/ Initialize the operating systemosal_init_system(); /初始化操作系统 / Allow interruptsosal_int_enable( INTS_ALL ); /使能全部中断/ Final board initializationInitBoard( OB_READY ); /初始化按键 / Display

46、 information about that devicezmain_dev_info(); /在液晶上显示设备IEEE信息/* Display the device info on the LCD */#ifdef LCD_SUPPORTED zmain_lcd_init(); /在LCD上显示该设备的信息#endif#ifdef WDT_IN_PM/* If WDT is used, that is a good place to enable it. */WatchDogEnable( WDTIMX );#endifosal_start_system(); / No Return fr

47、om herereturn ; / Shouldnt get here. /* * fn zmain_vdd_check * brief Check if the Vdd is OK to run the processor. * return Return if Vdd is ok; otherwise, flash LED, then reset */static void zmain_vdd_check( void ) /检测设备电压 uint vdd_passed_count = ; bool toggle = ; / Repeat getting the sample until n

48、umber of failures or successes hits MAX / then based on the count value, determine if the device is ready or not while ( vdd_passed_count MAX_VDD_SAMPLES ) /电压正常情况下,检查次 if ( HalAdcCheckVdd (ZMAIN_VDD_LIMIT) ) /设置电压正常的极限值 并运用AD检测电压 vdd_passed_count+; / Keep track # times Vdd passes in a row MicroWait

49、 (); / Wait ms to try again else vdd_passed_count = ; / Reset passed counter MicroWait (); / Wait ms MicroWait (); / Wait another ms to try again /* toggle LED and LED */ if (vdd_passed_count = ) if (toggle = !(toggle) HAL_TOGGLE_LED(); else HAL_TOGGLE_LED(); /* turn off LED */ HAL_TURN_OFF_LED(); H

50、AL_TURN_OFF_LED();/* * fn zmain_ext_addr * * brief Execute a prioritized search for a valid extended address and write the results * into the OSAL NV system for use by the *system. Temporary address not saved to NV. * input parameters * None. * output parameters * None. * return None.* */static void

51、 zmain_ext_addr(void) uint nullAddrZ_EXTADDR_LEN = xFF, xFF, xFF, xFF, xFF, xFF, xFF, xFF; uint writeNV = TRUE;/ First check whether a non-erased extended address exists in the OSAL NV. if (SUCCESS != osal_nv_item_init(ZCD_NV_EXTADDR, Z_EXTADDR_LEN, NULL) | (SUCCESS != osal_nv_read(ZCD_NV_EXTADDR, ,

52、 Z_EXTADDR_LEN, aExtendedAddress) | (osal_memcmp(aExtendedAddress, nullAddr, Z_EXTADDR_LEN) / Attempt to read the extended address from the location on the lock bits page/ where the programming tools know to reserve it. HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTAD

53、DR_LEN); if (osal_memcmp(aExtendedAddress, nullAddr, Z_EXTADDR_LEN) / Attempt to read the extended address from the designated location in the Info Page. if(!osal_memcmp(uint *)(P_INFOPAGE+HAL_INFOP_IEEE_OSET), nullAddr, Z_EXTADDR_LEN) osal_memcpy(aExtendedAddress, (uint *)(P_INFOPAGE+HAL_INFOP_IEEE

54、_OSET), Z_EXTADDR_LEN); else / No valid extended address was found. uint idx; #if !defined ( NV_RESTORE ) writeNV = FALSE; / Make that a temporary IEEE address#endif/* Attempt to create a sufficiently random extended *address for expediency.* Note: that is only valid/legal in a test environment *and

55、 must never be used for a commercial product. */ for (idx = ; idx (Z_EXTADDR_LEN - );) uint randy = osal_rand(); aExtendedAddressidx+ = LO_UINT(randy); aExtendedAddressidx+ = HI_UINT(randy); / Next-to-MSB identifies ZigBee devicetype.#if ZG_BUILD_COORDINATOR_TYPE & !ZG_BUILD_JOINING_TYPE aExtendedAd

56、dressidx+ = x;#elif ZG_BUILD_RTRONLY_TYPE aExtendedAddressidx+ = x;#else aExtendedAddressidx+ = x;#endif / MSB has historical signficance. aExtendedAddressidx = xF; if (writeNV) (void)osal_nv_write(ZCD_NV_EXTADDR, , Z_EXTADDR_LEN, aExtendedAddress); / Set the MAC PIB extended address according to re

57、sults /from above. (void)ZMacSetReq(MAC_EXTENDED_ADDRESS, aExtendedAddress);/* * fn zmain_dev_info * brief that displays the IEEE (MSB to LSB) on the LCD. * input parameters * None. * output parameters * None. * return None.* */static void zmain_dev_info(void)#ifdef LCD_SUPPORTED uint i; uint *xad;

58、uint lcd_bufZ_EXTADDR_LEN*+; uint num; char s; / Display the extended address. xad = aExtendedAddress + Z_EXTADDR_LEN - ; for (i = ; i ) & xF; lcd_bufi+ = ch + ( ch ) ? : ); ch = *xad & xF; lcd_bufi+ = ch + ( ch ) ? : ); lcd_bufZ_EXTADDR_LEN* = ;/HalLcdWriteString( IEEE: , HAL_LCD_LINE_ );/HalLcdWri

59、teString(char*)lcd_buf,HAL_LCD_LINE_ );/ osal_nv_read(ZCD_NV_PANID, , , &zgConfigPANID); sprintf(s, (char*)%d%d%d%d%d , (UINT)(uint)zgConfigPANID/), (UINT)(uint)zgConfigPANID%/),(UINT)(uint)zgConfigPANID%/), (UINT)(uint)zgConfigPANID%/),(UINT)(uint)zgConfigPANID%); i = ; do if(si = ) si = ; num = ; else num = ; i+; while(num); GUI_SetColor(,);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论