信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx

上传人:b****6 文档编号:17684568 上传时间:2022-12-08 格式:DOCX 页数:25 大小:329.05KB
下载 相关 举报
信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx_第1页
第1页 / 共25页
信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx_第2页
第2页 / 共25页
信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx_第3页
第3页 / 共25页
信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx_第4页
第4页 / 共25页
信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx

《信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

信科专业综合实践报告中国矿业大学 10Word文档下载推荐.docx

4.1.汇聚、管理节点程序设计8

4.2.传感器节点1程序设计10

4.3.传感器节点2程序设计11

4.4.通信协议设计12

5.核心代码13

6.功能简介18

7.体会与收获19

8.参考文献20

1.相关知识概述

1.1.无线传感器网络发展历史

中国物联网校企联盟认为,传感器网络的发展历程分为以下三个阶段:

传感器→无线传感器→无线传感器网络(大量微型、低成本、低功耗的传感器节点组成的多跳无线网络)

第一阶段:

最早可以追溯至越战时期使用的传统的传感器系统。

当年美越双方在密林覆盖的“胡志明小道”进行了一场血腥较量,“胡志明小道”是胡志明部队向南方游击队输送物资的秘密通道,美军对其进行了狂轰滥炸,但效果不大。

后来,美军投放了2万多个“热带树”传感器。

“热带树”实际上是由震动和声响传感器组成的系统,它由飞机投放,落地后插入泥土中,只露出伪装成树枝的无线电天线,因而被称为“热带树”。

只要对方车队经过,传感器探测出目标产生的震动和声响信息,自动发送到指挥中心,美机立即展开追杀,总共炸毁或炸坏4.6万辆卡车。

  第二阶段:

二十世纪80年代至90年代之间。

主要是美军研制的分布式传感器网络系统、海军协同交战能力系统、远程战场传感器系统等。

这种现代微型化的传感器具备感知能力、计算能力和通信能力。

因此在1999年,商业周刊将传感器网络列为21世纪最具影响的21项技术之一。

第三阶段:

21世纪开始至今,也就是9·

11事件之后。

这个阶段的传感器网络技术特点在于网络传输自组织、节点设计低功耗。

除了应用于反恐活动以外,在其它领域更是获得了很好的应用,所以2002年美国国家重点实验室--橡树岭实验室提出了“网络就是传感器”的论断。

由于无线传感网在国际上被认为是继互联网之后的第二大网络,2003年美国《技术评论》杂志评出对人类未来生活产生深远影响的十大新兴技术,传感器网络被列为第一。

在现代意义上的无线传感网研究及其应用方面,我国与发达国家几乎同步启动,它已经成为我国信息领域位居世界前列的少数方向之一。

在2006年我国发布的《国家中长期科学与技术发展规划纲要》中,为信息技术确定了三个前沿方向,其中有两项就与传感器网络直接相关,这就是智能感知和自组网技术。

当然,传感器网络的发展也是符合计算设备的演化规律。

1.2.硬件开发环境

本设计使用的是AT89S52单片机。

AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S52具有如下特点:

40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

AT89S52封装后的引脚图如图2.6所示:

本设计中所用到的一些重要引脚功能说明:

✧P0口(39脚~32脚):

双向8位三态I/O口,每个口可独立控制,其内部没有上拉电阻,为高阻状态,所以不能正常的输出高、低电平,因此该组I/O口在使用时务必要外接上拉电阻,一般我们选择接入10kΩ的上拉电阻;

✧P1口(1脚~8脚):

准双向8位I/O口,每个端口可独立控制,内带上拉电阻,这种接口输出没有高阻状态,输入也不能所存,故不是真正的I/O口。

该口在作为输入使用前,要先向该口进行写1操作,然后单片机内部才可正确读出外部信号,P1.0引脚的第二功能为T2定时器/计数器的外部输入,P1.1引脚的第二功能为T2的外部控制端;

✧P2口(21脚~28脚):

准双向8位I/O口,每个端口可独立控制,内带上拉电阻,与P1口相似;

✧P3口(10脚~17脚):

准双向8位I/O口,每个端口可独立控制,内带上拉电阻。

第一功能使用时就当做普通I/O口,与P1口类似。

作为第二功能使用时,P3.0(10)用作RXD串行输入口,P3.1(11)用作TXD串行输出口,P3.2(12)用作INT0外部中断0,P3.3(13)用作INT1外部中断1,P3.4(14)用作T0定时器/计数器0外部输入端,P3.5(15)用作T1定时器/计数器1外部输入端,P3.6(16)用作WR外部数据存储器写脉冲,P3.7(17)用作RD外部数据存储器读脉冲;

✧RST(9脚):

单片机的复位引脚。

当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作,复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码,通俗的讲,就是从单片机从头开始执行程序

✧EA:

EA接高电平时,单片机读取内部程序存储器;

EA接低电平时,单片机直接读取外部ROM;

✧VCC(40脚):

数字电路的电源,接+5V;

✧GND(20脚):

地;

✧RESET:

复位输入引脚;

✧XTAL1(19脚)XTAL2(18脚):

片内振荡电路的输入/出端,8052的时钟有两种方式,一种是片内时钟振荡方式,需在这两个脚外接石英晶体和振荡电容,振荡电容的值一般取10p~30p;

另一种是外部时钟方式,将XTAL1接地,外部时钟信号从XTAL2脚输入。

1.3.NRF24L01无线通信模块

性能参数:

◆小体积,QFN204x4mm封装

◆宽电压工作范围,1.9V~3.6V,输入引脚可承受5V电压输入

◆ 

工作温度范围,-40℃~+80℃

◆工作频率范围,2.400GHz~2.525GHz

◆发射功率可选择为0dBm、-6dBm、-12dBm和-18dBm

数据传输速率支持1Mbps、2Mbps[1] 

◆低功耗设计,接收时工作电流12.3mA,0dBm功率发射时11.3mA,掉电模式时仅       为900nA

◆126个通讯通道,6个数据通道,满足多点通讯和调频需要

◆增强型“ShockBurst”工作模式,硬件的CRC校验和点对多点的地址控制

◆数据包每次可传输1~32Byte的数据

◆4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单

◆可通过软件设置工作频率、通讯地址、传输速率和数据包长度

◆MCU可通过IRQ引脚快判断是否完成数据接收和数据发送

2.需求分析

无线传感器网络是近几年来国内外研究和应用的热门领域,它深入到我们生活的每个环节,渗透到社会的每个角落,有助于帮助人类提高认识物理世界的深度、广度、精确性、及时性,加强和密切人类与物理世界的联系,提高了人类对物理环境的远端监视和控制能力。

在今后,无线传感器网络接收的数据量将会越来越大,但是当前的使用模式对于数量庞大的数据的管理和使用能力有限。

如何进一步加快其时空数据处理和管理的能力,开发出新的模式将是非常有必要的。

所以,有必要对无线传感器网络进行更加深入的学习和理解。

另外,在课程选题时,综合考虑各选题的侧重点,并结合个人实际能力与兴趣,最终选定本题目。

一来是自己在无线网络通信方面非常薄弱,想借此机会煅炼一下;

二来本题目既包含软件部分(算法)又包含硬件部分(微型传感器网络搭建与仿真)。

既符合个人兴趣,又有一定的基础,最终课题完成后,还能给自己一个提升。

3.硬件设计

根据本实验的任务和要求,可分为以下两个部分:

✧最小系统模块;

✧无线通信模块;

3.1.最小系统模块电路设计

AT89S52只需要少量的外围辅助元件就可以正常工作。

单片机为40引脚双列直插芯片,共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

AT89S52单片机的最小系统由时钟电路、复位电路、电源几部分组成,如图3.1所示。

图3.1AT89S52最小系统

1.时钟电路

AVR单片机有以下几种系统时钟源的选择方案:

外部晶体/陶瓷振荡器、外部低频晶振、外部RC振荡器、标定的内部RC振荡器、外部时钟,这里我们选择8M外部晶体/陶瓷振荡器。

起振电路由8M晶振和两个20pF的去偶电容接地,组成单片机的起振电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

如图3.1所示。

2.复位电路

该方案采用上电复位,电路由一个10uF电容和1KΩ和10KΩ电阻组成,接在AT89S52的RESET端口,如图3.1所示

3.电源

本方案采用电源方案,该电源插口有三个接口,其中远离插口的是正极,靠近插口的是负极,在连接电路时只要所有的VCC接+5V,所有的GND接地就可以了,当让计算器运行时,在该插口插上电源。

3.2.无线模块电路设计

nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM频段的单片无线收发器芯片。

无线收发器包括:

频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。

输出功率频道选择和协议的设置可以通过SPI接口进行设置。

几乎可以连接到各种单片机芯片,并完成无线数据传送工作。

极低的电流消耗:

当工作在发射模式下发射功率为0dBm时电流消耗为11.3mA,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。

图3.2无线模块电路

3.3.电路原理总图设计

图3.3电路原理总图

4.软件设计

实验中,硬件由三块带有NRF24L01无线通信模块的51单片机组成,两块模拟传感器节点,另一块模汇聚节点,由于系统小,就把管理节点也集成到汇聚节点,做成了一个两层结构。

于是,本系统的软件设计部分也就分为三大部分:

✧汇聚、管理节点程序设计;

✧传感器节点1程序设计;

✧传感器节点2程序设计;

✧通信协议设计。

4.1.汇聚、管理节点程序设计

汇聚、管理节点负责接收两个传感器节点发来的采集数据。

对于传感器节点1,有点发和主动发送。

其中点发即是主节点先请求,然后从节点把采集到的最新数据发给主节点;

主动发送是从节点在采集的新数据有较大变化时自动发送,该较大变化由阈值来比对,这里也体现出在传感器节点所做的简单数据处理。

对于传感器节点2,也有点发和主动发送,不同的是它的主动发送是,采集一次数据即发送一次,发送频率比传感器节点1要高,相应的实时性要好,同时耗能也快。

汇聚、管理节点程序流程如图4.1所示。

图4.1汇聚、管理节点程序流程图

4.2.传感器节点1程序设计

  相对于汇聚、管理节点,传感器节点除了主程序外还有两个定时中断子程序,一个用来定时采集数据,一个用来完成无线通信中的定时重发。

图4.2传感器节点1主程序流程图

                      

                     图4.4传感器节点1timer1程序流程图

  图4.3传感器节点1timer0程序流程图

4.3.传感器节点2程序设计

两个传感器节点在功能上非常相似,只是主动发送的时机不同。

1是变化大于阈值时发送,2则是每采集一次就发送。

这一不同体现在程序上仅仅是timer0主断子程序上的不同,其他在主程序上除了身份识别码不同外全部相同,tiemr1用来定时重发的中断子程序也是相同的。

所以在此就不再累述,只给出timer0中断子程序的流程图:

图4.5 传感器节点2timer0程序流程图

4.4.通信协议设计

应答

(重发)

      点发                主动发送

5.核心代码

汇聚、管理节点主程序:

unsignedchardata1=0,data2=0;

//保存数据,以待发给PC端

voidmain(void)

{

unsignedchartf=0;

unsignedcharTxBuf[20]={0};

//根节点

unsignedcharRxBuf[20]={0};

init_NRF24L01();

StartUART();

Delay(6000);

P2=0xfe;

SetRX_Mode();

while

(1)

{

if(KEY1==0)

{

TxBuf[0]=0x01;

//选择1号

TxBuf[1]=0x00;

//命令标志,数据的标志是0x01,应答信号的标志是0x07

tf=3;

//LED=0;

//R_S_Byte((char)(data1));

}

if(KEY2==0)

//TxBuf[0]=0x02;

//选择2号

//TxBuf[1]=0x00;

//命令标志,数据的标志是0x01

//tf=3;

Print(data1,data2);

if(tf>

=1)

{

LED=0;

nRF24L01_TxPacket(TxBuf);

//发送TxBuf 中的数据

tf--;

Delay(1000);

SPI_RW_Reg(WRITE_REG+STATUS,0XFF);

//清除状态标志

SPI_RW_Reg(FLUSH_TX,0xff);

//清除TXFIFO寄存器

if(tf==0)

{

TxBuf[0]=0xff;

TxBuf[1]=0xff;

TxBuf[2]=0xff;

TxBuf[3]=0xff;

}

LED=1;

//**************************************************************************************SetRX_Mode();

nRF24L01_RxPacket(RxBuf);

if(RxBuf[0]==0xA1)

{

LED2=0;

tf=3;

//返回应答信号

TxBuf[0]=0x01;

TxBuf[3]=0x05;

P0=duan[(int)(RxBuf[2])%10];

data1=RxBuf[2];

//保存数据,以待发给PC端

//Print(data1,data2);

//发送到PC端

Delay(1000);

LED2=1;

elseif(RxBuf[0]==0xA2)

TxBuf[0]=0x02;

P0=duan[(int)(RxBuf[2])%16];

//if(data2!

=RxBuf[2])

//{

data2=RxBuf[2];

//}

RxBuf[0]=0xff;

RxBuf[1]=0xff;

RxBuf[2]=0xff;

}

传感器节点1主程序:

inttemp=10,pretemp=10;

//模拟温度值

unsignedchartf=0,ack_flag=0;

unsignedcharTxBuf[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

unsignedcharRxBuf[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

unsignedchari,t=0;

//定时器初始化

IE=0x8A;

TMOD=0x11;

TL0=(65536-60000)%256;

TH0=(65536-60000)/256;

TL1=(65536-60000)%256;

TH1=(65536-60000)/256;

TR0=0;

//先关闭定时器

TR1=0;

TR0=1;

if(tf==1)

tf=0;

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

if(RxBuf[0]==0x01)//号码验证

LED=0;

//P0=duan[(int)(RxBuf[3])];

if(RxBuf[1]==0x00)//看出是发送请求命令----

TxBuf[0]=0xA1;

//TxBuf[1]=0xff;

TxBuf[2]=temp;

tf=1;

//前去发送

ack_flag=1;

//并等待应答信号

TR1=1;

//开启延时重发

elseif(RxBuf[3]==0x05)//0x11 代表应答信号-----

ack_flag=0;

//清零

TR1=0;

//关闭重发延时

LED2=0;

传感器1节点 timer0中断程序

voidtime_0()interrupt1//定时模拟读取温度值

staticintj=0;

if(++j>

100)

j=0;

pretemp=temp;

temp=25+rand()%11;

P0=duan[temp%10];

//温度显示

//if(temp-pretemp>

=5||pretemp-temp>

=5)//温度前后变化大于等于5度,则自动发送

//{

TxBuf[0]=0xA1;

TxBuf[2]=temp;

tf=1;

ack_flag=1;

TR1=1;

//}

传感器2节点 timer0中断程序

temp=rand()%16;

P0=duan[temp];

//检测一次温度,就发送一次

TxBuf[0]=0xA2;

TxBuf[2]=temp;

tf=1;

ack_flag=1;

TR1=1;

//开启重发延时

6.功能简介

传感器网络系统通常包括传感器节点EndDevice、汇聚节点Router和管理节点Coordinator。

大量传感器节点随机部署在监测区域内部或附近,能够通过自组织方式构成网络。

传感器节点监测的数据沿着其他传感器节点逐跳地进行传输,在传输过程中监测数据可能被多个节点处理,经过多跳后路由到汇聚节点,最后通过互联网或卫星到达管理节点。

用户通过管理节点对传感器网络进行配置和管理,发布监测任务以及收集监测数据。

传感器节点

处理能力、存储能力和通信能力相对较弱,通过小容量电池供电。

从网络功能上看,每个传感器节点除了进行本地信息收集和数据处理外,还要对其他节点转发来的数据进行存储、管理和融合,并与其他节点协作完成一些特定任务。

汇聚节点

汇聚节点的处理能力、存储能力和通信能力相对较强,它是连接传感器网络与Inter

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

当前位置:首页 > 高中教育 > 其它课程

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

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