ZigBee加速度检测课程设计报告.docx
《ZigBee加速度检测课程设计报告.docx》由会员分享,可在线阅读,更多相关《ZigBee加速度检测课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
ZigBee加速度检测课程设计报告
编号:
审定成绩:
重庆邮电大学
物联网工程课程设计(报告)
设计题目:
行走过程中的加速度测试节点设计
学院名称:
自动化学院
学生姓名:
××
专业:
物联网工程
班级:
××
学号:
××
指导教师:
××
填表时间:
2015年11 月
重庆邮电大学教务处制
一、题目:
行走过程中的加速度测试节点设计
二、设计任务:
运用所学传感器技术、计算机网络和物联网工程等方面的知识,设计基于三轴加速度传感器的测试节点,获取行走过程中的手臂或小腿加速度,完成数字量输入或模拟量输入的硬件设计和低功耗无线通信协议软件设计等工作。
具体任务如下:
三、设计要求:
1.画出加速度测试节点的结构图。
2.选择低功耗无线通信芯片和三轴加速度传感器,设计硬件电路。
3.开发完成ZigBee协议,完成与上位机的通信。
4.画出程序流程图并编写调试代码。
四、参考资料:
1.李朝青.《单片机原理及接口技术》(简明修订版).北京航空航天大学出版社,1998年.
2.胡向东.《传感技术》.重庆大学出版社,2006年第1版.
3.谭浩强.《C语言程序设计》.北京:
清华大学出版社,2002年.
4.谢希仁.《计算机网络》.北京:
电子工业出版社,2003年.
摘要
根据要求,基于ZigBee协议使用单片机和三轴加速度传感器的测试节点,并且能够通过低功耗通信协议将采集到的数据发送出去并接收。
器材上,我们选择使用了AT89C51作为主控芯片,两块CC2530用来传输数据组网,加速度传感器则选择了ADXL345三轴加速度传感器模块,通信协议使用ZigBee协议,传感器数据通信协议采用IIC协议。
将ADXL345三轴加速度传感器模块连接到一块CC2530上,作为加速度测试节点与ZigBee终端节点,另一块CC2530与AT89C51连接,则作为接收加速度数据的协调器节点,并通过串口通信与上位机通信。
关键词:
ZigBee,加速度,IIC
摘要 1
一、设计分析 3
1.1ZigBee整体概述 3
1.2IEEE802.15.4标准概述 4
1.3ZigBee协议体系结构 4
1.4AT89C51简述 5
1.5CC2530概述 5
1.6ADXL345概述 6
二、解决方案 8
2.1具体过程 8
三、串口总线对比 12
3.1CAN总线 12
3.2UART总线 13
3.3SPI总线 14
3.4IIC总线 16
3.5综合对比 17
四、设计总结 20
附录代码 21
一、设计分析
此系统,采集模块采集了数据,通过IIC通信协议传输到其中一块cc2530开发板,然后通过ZigBee协议发送到另一块cc2530开发板子来完成。
最后通过串口传输到上位机显示数据。
系统分析图如图1.1所示。
图1.1系统分析图
1.1ZigBee整体概述
物联网的定义是:
物联网(InternetofThings)是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。
它具有普通对象设备化、自治终端互联化和普适服务智能化3个重要特征。
无线传感器网络(WirelessSensorNetwork,WSN)是由大量的静止或移动的传感器以自组织和多跳的方式构成的无线网络,以协作地感知、采集、处理和传输网络覆盖地理区域内被感知对象的信息,并最终把这些信息发送给网络的所有者。
ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。
根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信术。
协议栈是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:
由上层协议到底层协议,再由底层协议到上层协议。
使用最广泛的是英特网协议栈,由上到下的协议分别是:
应用层(HTTP,TELNET,DNS,EMAIL等),运输层(TCP,UDP),网络层(IP),链路层(WI-FI,以太网,令牌环,FDDI等),物理层。
1.2IEEE802.15.4标准概述
IEEE802.15.4网络是指在一个POS内使用相同无线信道并通过IEEE802.15.4标准相互通信的一组设备的集合,又名LR-WPAN网络。
在这个网络中,根据设备所具有的通信能力,可以分为全功能设备(FullFunctionDevice,FFD)和精简功能设备(ReducedFunctionDevice,RFD)。
该标准定义了物理层(PHY)和介质访问控制层(MAC)。
这种低速率无线个人局域网的网络结构简单、成本低廉、具有有限的功率和灵活的吞吐量。
低速率无线个人局域网的主要目标是实现安装容易、数据传输可靠、短距离通信、极低的成本、合理的电池寿命,并且拥有一个简单而且灵活的通信网络协议。
1.3ZigBee协议体系结构
ZigBee协议栈建立在IEEE802.154的PHY层和MAC子层规范之上。
它实现了网络层(networklayer,NWK)和应用层(applicationlayer,APL)。
在应用层内提供了应用支持子层(applicationsupportsub—layer,APS)和ZigBee设备对象(ZigBeeDeviceObject,ZDO)。
应用框架中则加入了用户自定义的应用对。
ZigBee的体系结构由称为层的各模块组成。
每一层为其上层提供特定的服务:
即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。
每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。
1.4AT89C51简述
AT89C51是市面上一款最常见的单片机,也是国内科教实验最常用的。
是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图1.4所示双列直插式封装(DIP.Dualln-linePackage),DIP封装与MCS一51系列单片机的引脚完全兼容,可互换使用。
图1.4双列直插式封装
1.5CC2530概述
CC2530是用于2.4-GHzIEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。
它能够以非常低的总的材料成本建立强大的网络节点。
CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大的功能。
CC2530有四种不同的闪存版本:
CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。
CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。
运行模式之间的转换时间短进一步确保了低能源消耗。
CC2530外围电路图如图1.4所示。
图1.5CC2530外围电路图
1.6ADXL345概述
ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。
数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。
ADXL345非常适合移动设备应用。
它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。
其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。
该器件提供多种特殊检测功能。
活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。
敲击检测功能可以检测任意方向的单振和双振动作。
自由落体检测功能可以检测器件是否正在掉落。
这些功能可以独立映射到两个中断输出引脚中的一个。
图1.6.1、图1.6.2分别是外围电路图、接线样例。
图1.6.1ADXL345外围电路图
图1.6.2接线样例
二、解决方案
解决方案采取的是,AT89C51对加速度传感器进行数据通信采集,然后将数据通过串口发送给相连的CC2530协调器,在与处理和与上位机通信,使用ZigBee协议栈在其应用层进行采集、组网、传输等一系列动作。
开发过程中代码选择使用c语言,完成课题,因为汇编相对于C语言不便于理解思考,快速开发。
首先选择硬件,我们选择市面上最常见的单片机AT89C51,这是一款国内科教实验最常见的单片机,简单易上手开发,价格也低廉。
由于需要基于ZigBee协议进行开发,所以我们选择了对ZigBee很好兼容性的cc2530开发板进行组网传输,这是一款比较适合新手开发学习的板子。
它有着很好的低功耗收发器能力,总体材料价格很低,作为ZigBee节点低功耗,低成本的方向有着相同的一致性。
对于传感器的选择,我们选择了ADX1345三轴加速度传感器,他是采用数字量输出,有着低功耗、低成本、低误差的特点,采用IIC通信,满足ZigBee要求的低功耗、低成本的主要特点,故选择了它。
传感器支持IIC和spi两种通信方式,选择的时候,选择了,相对较简单,而且连线少的IIC通信方式,速度快,连线少更加适合ZigBee节点。
而不是采用SPI,因为它的连线方式比较复杂,虽然它是全双工,但是考虑设计要求,故选择IIC。
整个代码大概可以分成3部分,第一部分是数据采集程序,它包括IIC通信代码和读出传感器寄存器内部的测量数据两部分。
第二部分是节点数据传输,节点采集的加速度数据发送给协调器,与协调器相连的51单片机收到数据后进行相关处理。
第三部分是上位机的数据传输和显示,52单片机与上位机通过串口连接进行数据通信显示。
2.1具体过程
工作具体过程如图2.1所示。
图2.1工作流程图
接下来进行部分源代码分析:
1)先进行一系列的串口定义:
第1.2行代码进行IIC总线需要用到的两个串口进行宏定义,然后3.4行分别对需要用到的改变P1_1串口的方向。
最后一行宏定义需要用到的硬件地址。
2)串口初始化:
表示串口位真,定义波特率,关闭流量控制,最后打开串口。
3)初始化传感器:
经过查询ADXL355的使用手册后,选择传感器的模式,电源类型,打开中断,偏移量等等基础能力。
4)读取数据:
ADXl345的储存单元是0x3~0x5,先打开IIC总线然后送设备地址+写信号,接下来送存储单元地址,从0x3开始,再给一个起始信息,发送设备地址+读信号,连续读取6个地址数据,存储中BUF,收到最后一个=数据需要回NOACK,写停止信号。
整理数据并放入数组以便发送出去,由于ADXl345采集到的数据是二进制补码的形式所以需要进行转换,例如:
变换完成后并放入数组后就可以利用协议栈自带的发送程序发送给协调器了。
最后通过串口通信传送给上位机就完成了整个实验。
三、串口总线对比
本次课程设计,本人负责对加速度传感器与51单片机通信的数据传输协议进行对比研究,从中采取最适合本课程设计的通信协议方式。
进行对比的多种工业应用串行总线有:
IIC,SPI,UART,CAN四种。