无线传感网技术与应用报告.docx

上传人:b****6 文档编号:5184362 上传时间:2022-12-13 格式:DOCX 页数:14 大小:20.36KB
下载 相关 举报
无线传感网技术与应用报告.docx_第1页
第1页 / 共14页
无线传感网技术与应用报告.docx_第2页
第2页 / 共14页
无线传感网技术与应用报告.docx_第3页
第3页 / 共14页
无线传感网技术与应用报告.docx_第4页
第4页 / 共14页
无线传感网技术与应用报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

无线传感网技术与应用报告.docx

《无线传感网技术与应用报告.docx》由会员分享,可在线阅读,更多相关《无线传感网技术与应用报告.docx(14页珍藏版)》请在冰豆网上搜索。

无线传感网技术与应用报告.docx

无线传感网技术与应用报告

 

重庆航天职业技术学院

 

实训报告

 

教师:

课程:

无线传感网技术及应用学号:

姓名:

班级:

物联网

 

日期:

2016/6/16

 

1/17

 

评阅页

 

课程设计题目:

温度采集DS18B20同组成员:

 

学生自评:

设计方案由讨论组完成,大家一起做硬件DS18B20温度显示,再由大家分工把报告完成。

指导教师评语:

 

成绩:

指导老师签名:

 

2016年06月24

 

2/17

 

前言

 

ZigBee简介ZigBee技术是一种近距离、低功耗、低速率、低成本的无线通信技术,兼具经济、可靠、易于部署等优势,已成为无线传感器网络中最具潜力和研究价值的技术,在工业控制、环境监测、智能家居、医疗护理、安全预警、目标追踪等应用场合已展现出广阔的市场前景。

 

本设计利用TI公司CC2530单片机,采用DS18B20数字温度传感器,完成温度采集并通过液晶显示器显示测量温度值,测温电路简单,适合于-50~150摄氏度温度的测量。

 

3/17

 

一、设计题目1

二、硬件设计方案1

 

2.1CC2530芯片简介:

1

2.2芯片概述2

三、CC2530模块说明2

 

3.1CPU和内存2

3.2中断控制器2

3.3外设3

3.4调试接口3

3.5无线设备3

四、DS18B204

 

4.1DS18B20工作原理4

4.2DS18B20的主要特性5

五、软件设计方案5

 

5.1程序流程图5

 

5.2所需用到的部分C语言程序7

5.3实验过程及结果12

六、总结13

七、参考文献13

 

1/17

 

一、设计题目

 

本次的设计题目要求是基于DS18B20的温度采集显示系统,

该系统要求包含温度采集模块、温度显示模块等。

其中温度采集

模块所选用的是DS18B20数字温度传感器进行温度采集,温度显

示模块用液晶显示屏显示。

 

二、硬件设计方案

 

2.1CC2530芯片简介:

CC2530结合了领先的RF收发器的优良性能,业界标准的增

强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大

的功能。

CC2530有四种不同的闪存版本:

CC2530F32/64/128/256,

分别具有32/64/128/256KB的闪存。

CC2530具有不同的运行模

式,使得它尤其适应超低功耗要求的系统。

运行模式之间的转换时间短进一步确保了低能源消耗。

其引脚如图1.1所示。

 

图2.1CC2530芯片

1/17

 

2.2芯片概述

 

如图1.2所示是CC2530的方框图,图中模块大致可以分为三类:

CPU和内存相关的模块;外设、时钟和电源管理相关的模块,以及无线电相关的模块。

 

图2.2CC2530的方框图

 

三、CC2530模块说明

 

3.1CPU和内存

CC253x芯片系列中使用的8051CPU内核是一个单周期的

8051兼容内核。

它有三种不同的内存访问总线(SFR,DATA和

CODE/XDATA),单周期访问SFR,DATA和主SRAM。

它还包括一个

调试接口和一个18输入扩展中断单元。

 

3.2中断控制器

 

2/17

 

总共提供了18个中断源,分为六个中断组,每个与四个中

断优先级之一相关。

当设备从活动模式回到空闲模式,任一中断

服务请求就被激发。

一些中断还可以从睡眠模式(供电模式1-3)

唤醒设备。

 

3.3外设

 

CC2530包括许多不同的外设,允许应用程序设计者开发先

进的应用。

 

3.4调试接口

 

执行一个专有的两线串行接口,用于内电路调试。

通过这个

调试接口,可以执行整个闪存存储器的擦除、控制使能哪个振荡

器、停止和开始执行用户程序、执行8051内核提供的指令、设

置代码断点,以及内核中全部指令的单步调试。

使用这些技术,

可以很好地执行内电路的调试和外部闪存的编程。

设备含有闪存存储器以存储程序代码。

闪存存储器可通过用

户软件和调试接口编程。

闪存控制器处理写入和擦除嵌入式闪存

存储器。

闪存控制器允许页面擦除和4字节编程。

 

3.5无线设备

 

CC2530具有一个IEEE802.15.4兼容无线收发器。

RF内核

控制模拟无线模块。

另外,它提供了MCU和无线设备之间的一个

接口,这使得可以发出命令,读取状态,自动操作和确定无线设

备事件的顺序。

无线设备还包括一个数据包过滤和地址识别模块。

 

3/17

 

四、DS18B20

 

4.1DS18B20工作原理

 

DS18B20的读写时序和测温原理与DS1820相同,只是得到的

温度值的位数因分辨率不同而不同,且温度转换时的延时时间由

2s减为750ms。

DS18B20测温原理如图所示。

图3.1中低温度系

数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信

号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,

所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器

被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶

振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,

温度寄存器的值将加1,计数器1的预置将重新被装入,计数器

1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

斜率累加器用于补偿和修正测

温过程中的非线性,其输出用于修正计数器1的预置值。

 

图3.1DS18B20测温原理图

 

4/17

 

4.2DS18B20的主要特性

①、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

 

②、测温范围-55℃~+125℃,固有测温误差1℃。

 

③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。

 

④、工作电源:

3.0~5.5V/DC(可以数据线寄生电源)

 

⑤、在使用中不需要任何外围元件

 

⑥、测量结果以9~12位数字量方式串行传送

 

⑦、不锈钢保护管直径Φ6

 

⑧、适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温

 

⑨、标准安装螺纹M10X1,M12X1.5,G1/2"任选

 

⑩、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。

 

五、软件设计方案

 

5.1程序流程图

 

程序流程图如图4.1所示。

 

5/17

 

开始

 

初始化,设置

常量

 

调用DS18B20初

始化子程序

 

读取温度转换

 

调用数据处理

子程序

 

生成显示码

 

显示温度值

 

图4.1程序流程图

 

6/17

 

5.2所需用到的部分C语言程序

 

(1)Main()

/***************************************************************

*文件名:

main.c

*功能描述:

DS18B20温度传感器值测试程序

*日期:

2013/11/15

*作者:

*******************************************************

*********/

#include"smartrfeb.h"#include

 

boolbread;

intcount;

externuint16readTemp();

 

/******************************************************

*************************

*函数名称:

CalcTempture

*

*功能描述:

DS18B20温湿度转换计算函数

*

*入口参数:

val:

温度读取值

*******************************************************

***********************/

//

voidCalcTempture(uint16val)

{

uint16tmp;

floattemp;

chars[16];

 

temp=((float)val)*0.625;//放大10倍

7/17

 

tmp=(uint16)temp;

 

sprintf(s,(char*)":

%d.%dC",((uint16)(tmp/10)),((uint16)(tmp%10)));

PutString(50,35,s);//在LCD屏上显示湿度值

 

if(tmp>=220&&tmp<240){LED1=1;LED2=0;LED3=0;LED4=0;}if(tmp>=240&&tmp<260){LED1=1;LED2=1;LED3=0;LED4=0;}if(tmp>=260&&tmp<280){LED1=1;LED2=1;LED3=1;LED4=0;}if(tmp>=280&&tmp){LED1=1;LED2=1;LED3=1;LED4=1;}

}

 

/*******************************************************************************

*函数名称:

main

*

*功能描述:

DS18B20测试主函数

*

 

******************************************************************************/

voidmain(void)

{

SET_CLOCK_SOURCE(CRYSTAL);//设置主时钟

while((CLKCONSTA&0xC0)!

=0);//等待时钟稳

 

SET_CLOCK_CLKSPD

(1);

SET_CLOCK_TICKSPD(16);//32M--16分频

=2MHz

TIMER1_CLOCK_DIVIDE(32);//2M--32分频

=62.5KHz

TIMER_MODE_SELECT(1,T_MODE_FREE);//定时器1自由计数65535/(62.5*1000)=1.04856秒

8/17

 

INIT_LED1();

 

LCD_Init();//初始化LCD

SetBackLight(50);//设置背光

ClrScreen();

FontSet_cn(1,1);//设置显示字体

PutString_cn(30,10,"温度测量");

PutString_cn(0,35,"温度值:

");

FontSet(1,1);

 

IEN1|=(0x01<<1);//开定时器中断;

EA=1;//开总中断;

count=0;

IO_DIR_PORT_PIN(1,1,IO_OUT);

IO_DIR_PORT_PIN(1,2,IO_OUT);

IO_DIR_PORT_PIN(1,3,IO_OUT);

IO_DIR_PORT_PIN(2,0,IO_OUT);

LED1=1;LED2=1;LED3=1;LED4=1;

while

(1)

{

if(bread==1)

{

bread=0;

CalcTempture(readTemp());

}

}

 

}

(2)LCD

//========================================================================

//文件名:

LCD_Dis.c

//日期:

2009/02/10

//描述:

MzLH04-12864LCD显示模块驱动V1.0版

//基本功能接口函数集

//

 

9/17

 

//参考:

//版本:

//2009/02/10FirstversionMzDesign

//========================================================================

#include"hal.h"

#defineDis_X_MAX

128-1

#defineDis_Y_MAX

64-1

 

unsignedcharX_Witch=6;

unsignedcharY_Witch=10;

unsignedcharX_Witch_cn=16;

unsignedcharY_Witch_cn=16;

unsignedcharDis_Zero=0;

 

//#defineSPI_RES

P0_0

#define

SPI_SCK

P1_5

#define

SPI_SDA

P1_6

#define

SPI_CS

P1_4

 

voidLcdPortInit()

{

IO_DIR_PORT_PIN(0,0,IO_OUT);

IO_DIR_PORT_PIN(1,4,IO_OUT);

IO_DIR_PORT_PIN(1,5,IO_OUT);

IO_DIR_PORT_PIN(1,6,IO_OUT);

}

 

//========================================================================

//函数:

voidLCD_Init(void)

//描述:

LCD初始化程序,主要在里面完成端口初始化以及LCD模块的复

//参数:

//返回:

//备注:

 

10/17

 

//版本:

//2009/02/10FirstversionMzDesign

//==============================================================

==========

voidTimeDelay(unsignedintTimers)

{

unsignedinti;

while(Timers)

{

Timers--;

for(i=0;i<100;i++);

}

}

voidLCD_Init(void)

{

LcdPortInit();

//SS和SCK预先设置为高电平

SPI_SCK=1;

SPI_CS=1;

 

//复位LCD模块

//SPI_RES=0;

TimeDelay(50);

//保持低电平大概2ms左右

//SPI_RES=1;

TimeDelay(80);//延时大概10ms左右

}

 

11/17

 

5.3实验过程及结果

 

如图5.3.1所示,将程序按照一定的步骤下载到开发板上。

 

图5.3.1程序下载

其结果显示如图5.3.2所示。

用手捏住温度传感器,可以观

察到温度值逐渐上升,松手,温度值逐步下降。

 

图5.3.2温度测量结果显示

12/17

 

六、总结

 

七、参考文献

 

【1】王小强,欧阳俊,黄宁淋,ZigBee无线传感器网络设计与实现【M】.北京:

化学工业出版社,2014.

【2】李文仲,等.ZigBee2007/PRO协议栈实验与实践【M】.北

京:

北京航空航天大学出版社,2009.

【3】瞿雷,刘盛德,胡咸斌,ZigBee技术及应用【M】.北京:

北京航空航天大学出版社,2007.

 

13/17

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1