《无线传感网技术》实训内容课件全套 聂增丽 实训项目1-5:系统认识和CC2530学习 -zigbee协议_第1页
《无线传感网技术》实训内容课件全套 聂增丽 实训项目1-5:系统认识和CC2530学习 -zigbee协议_第2页
《无线传感网技术》实训内容课件全套 聂增丽 实训项目1-5:系统认识和CC2530学习 -zigbee协议_第3页
《无线传感网技术》实训内容课件全套 聂增丽 实训项目1-5:系统认识和CC2530学习 -zigbee协议_第4页
《无线传感网技术》实训内容课件全套 聂增丽 实训项目1-5:系统认识和CC2530学习 -zigbee协议_第5页
已阅读5页,还剩357页未读 继续免费阅读

下载本文档

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

文档简介

《无线传感网技术》SensingAreaObjectUser端SinkInternet或通信卫星SensornetworkUser端1234课程定位及目标课程设计思路课程教学条件分析课程实施与考核目录CONTENTS一、课程定位及目标物联网设备进行调试;物联网设备的故障分析及简单维修;熟悉物联网产品生产质量检测及质量控制。网络系统优化和升级等工作。物联网系统管理、运行维护、监控、故障排除;物联网设备装调技术人员物联网系统运维工程师物联网系统集成工程师物联网工程小型传感器网络设计213电子信息学院一、课程定位及目标在课程体系的地位外语及素质电路分析能力程序设计及组网能力终端硬件维护能力网络维护及运行能力专业综合能力第三学期通识公共课电路基础、模拟电子技术程序设计基础(C语言)物联网通信技术电子技能项目实训第四学期数字电子技术嵌入式技术传感器原理及应用、RFID原理及应用信号与系统、数字通信技术电子技术课程实训第五学期专业英语无线传感网技术传感器技术项目实训数据库编程及应用、物联网应用软件技术传感网协议及仿真实训第六学期物联网控制技术、物联网数据处理、物联网信息安全技术物联网工程实施智能交通技术、项目管理物联网控制系统仿真实训第七学期科技创新实践物联网感知技术综合实训物联网通信技术综合实训轨道交通物联网工程设计与实施综合实训/城市智能交通物联网工程设计与实施综合实训第八学期毕业实习、毕业设计物联网工程专业课程体系与能力培养一览表电路基础、模拟电子技术程序设计基础(C语言)数字电子技术嵌入式无线传感网技术物联网工程实施物联网控制系统仿真实训专业综合实习课程定位及目标电子信息学院先修和后续课程传感器原理及应用一、课程定位及目标人才方案培养目标分析行业应用调研知识目标:熟悉无线传感器组网开发环境和仿真平台;掌握无线传感器组网;掌握无线传感器网络测试、调整方法。能力目标:小型无线传感网络的设计(先仿真);无线传感网络组建(再组网);网络优化;调试、管理与维护。素质目标:具有物联网组网规范意识、资料查阅、团队协作等能力基础(无线传感网的构成与应用)无线传感网传输协议大数据汇集与云计算系统硬件(传感设备)重构知识体系(理论够用、应用为主)依据学习领域和课程目标对内容删减、结构进行优化,重构“突出应用”的课程知识体系。选取学习情境(职业、实践、开放)根据学生的学习现状,由易到难、逐层上升。并确保所选项目的职业性、实践性和开放性短距离无线传感网组网二、课程设计思路电子信息学院6学时12学时12学时18学时16学时合计:64学时无线传感网的构成与应用硬件(传感设备)无线传感网传输协议短距离无线传感网组网大数据汇集与云计算系统BreadPPT电子信息学院学时说明二、课程设计思路实验一(系统和开发环境认知实验)无线传感网实验设计任务1实验设备概述任务2安装、调试开发平台实验二(传感器与RFID基础实验)任务1可编程输入输出口(I/O)应用任务2传感设备微处理器中定时器应用任务3传感设备中外部中断应用实验三ZigBee技术数据传输实验任务2-7燃气、雨滴、红外等传感器实验二、课程设计思路4学时8学时16学时10学时任务1数模转换通信实验任务4传感设备睡眠唤醒应用实验四无线传感网网络实验任务2-5数据传输、点播、组播、广播任务1组网重庆正大软件职业技术学院软件技术系

基本情况1、学生已经经过1半年的学习了,有一定的计算机网络、c语言和通信技术等方面的基础,能够进行无线传感器网络拓扑设计。优势

1、对教学模式有一定的适应能力,能独立完成一定的任务熟悉硬件,善于发现,喜欢自己动手劣势1、学生主动性不够,不求甚解现象较为普遍2、两极分化已经明显显现3、硬件知识不足,动手能力锻炼机会较少。学情分析电子信息学院三、课程教学条件分析电子信息学院教材说明三、课程教学条件分析教材基于应用型本科以工程实践应用为中心的教育理念,对课程重点知识通过项目实施形式进行编写,体现了理论够用、重工程实践应用的原则。基础—>硬件(传感设备)—>无线传感网传输协议—>无线传感网网络技术—>远距离传输技术。智能大棚系统准备工作硬件准备远程监控短距离数据采集

本专业建有2个实训室,单片机实验室和物联网实验室。能建成基本的小型传感器网络,帮助学生完成网络优化和调试。电子信息学院实训室环境三、课程教学条件分析四、课程实施和考核方法本课程教学模式为教学做一体化,在做中学学中做。以项目导向,任务驱动进行组织教学。引导启发法任务驱动法问题教学法讨论教学法讲解法电子信息学院教学方法3个平台6个步骤1个小组自主学习团队协作连坐学习项目虚拟软件实验电子信息学院

四、课程实施和考核方法

6个步骤控制决策情况反馈计划明确任务教学过程实施分小组讨论产生的原因教师引导学生进行分析教师给出教学情景学生讨论教师引导学生使用正确方法解决任务完成,对方法和规律进行总结教师辅导并监控学生解决问题的方法和质量电子信息学院

四、课程实施和考核方法

事例(6个步骤):任务3雨滴传感器的采集雨滴传感器采集原理、工具的选用,如何实现分小组讨论提出实现的方案答疑,引导学生。采集到雨滴时,接通控制器学生使用正确方法操作监控学生完成过程,必要时的辅导总结,重点方法,易出错之处。任务驱动讨论教学引导启发讲解法问题教学

四、课程实施和考核方法

考核方式三结合

课程考核以激发学生自主学习,发挥学生特长,鼓励学生差异化发展为目的。期末考核结合阶段性考核课程内容考核结合第二课堂考核教师考核结合学生自主考核;三结合

四、课程实施和考核方法

期末考核结合阶段性考核抢答题10题,以小组为单位进行抢答,小组人员抢答成功并正确,整个小组得分。课程内容考核结合第二课堂考核竞赛+课外制作+发表论文+相关讲座+课外活动+创意教师考核结合学生自主考核;小组人员互评+小组之间互评+教师评价

四、课程实施和考核方法

四、课程实施和考核方法

1根据行业岗位需求分析和专业人才培养目标,设定教学方式和教学内容;2教学成果和岗位产生一一对应衔接3“三结合”课程考核模式,激发学生潜力,发挥学生特长。五、课程建设特色欢迎各位领导、老师提出宝贵意见《无线传感器网络》SensingAreaObjectUser端SinkInternet或通信卫星SensornetworkUser端授课内容

课程性质、目的和任务物联网试验箱概述

系统设计方法典型系统举例一、课程性质、目的和任务物联网设备进行调试;物联网设备的故障分析及简单维修;熟悉物联网产品生产质量检测及质量控制。网络系统优化和升级等工作。物联网系统管理、运行维护、监控、故障排除;物联网设备装调技术人员物联网系统运维工程师物联网系统集成工程师物联网应用技术(无线传感网)小型传感器网络设计213电子信息学院课程成绩评定标准及说明:平时成绩构成(60%):出勤情况(10%),回答问题(10%),课堂纪律(10%),操作过程(50%),实验报告(10%),实训室设备整理情况(10%)。期末答辩(40%)注意:打分为百分制;缺席一次扣总分10分;一次座位未整理及仪器电源未关扣总分5分。成绩考核办法重庆正大软件职业技术学院电子信息工程系本课程要求一、遵守学习纪律、严格作息时间

上课期间学生必须进入指定实训场地学习;二、注意操作安全

注意用电安全;爱护实训设备,如非正当使用造成损坏者需照价赔偿。三、不得利用实验室从事与本课程无关的活动

严禁打游戏、聊天、带食品进入实训场地,注意清洁卫生、禁止乱丢垃圾。严重违纪者取消课程成绩,且立即离开实训室。重庆正大软件职业技术学院电子信息工程系物联网试验箱概述2、物联网试验箱概述综合物理网实验箱产品介绍IAR的安装与使用

目录IAREW入门IAREW安装IAREW使用IAREW入门IAREmbeddedWorkbench(下简称EW)是一套完整的集成开发工具集合:包括从代码编辑器、工程建立到C/C++编译器、连接器和调试器的各类开发工具。它和各种仿真器、调试器紧密结合,使用户在开发和调试中,仅使用一种开发环境界面,就可完成对多种微控制器的开发。EW包含嵌入式C/C++优化编译器、汇编器、连接定位器、库管理员、编辑器、项目管理器和支持RTOS的调试工具C-SPY。使用C/C++和汇编语言可方便的开发嵌入式应用程序。IAR安装打开IAR软件安装包进入安装界面IAR安装这里需要填写认证序列!注册机IAR安装如何得到认证序列?第一步:单击IARID.EXE得到本机的ID号第二步:编辑Key.cmd,将ID修改为本机ID第三步:运行KEY.cmd,在key.txt中的含有EW8051-EV的序列号就是7.30的序列号IAR安装在key.txt中也将得到由机器ID和认证序列生成的序列钥匙,填入即可!IAR安装选择完全安装即可!IAR安装IAR安装IAR安装点击完成,可以查看IAR的相关介绍.IAREW使用从"开始"找到刚刚安装的的IAR软件。当然也可以通过桌面的快捷方式打开IAR软件。IAREW使用-第一个IAR工程新建工作区:新建工程:project->Createnewproject,出现如下对话框Toolchain:8051代表芯片类型Projecttemplates(工程模板),这里选择emptyproject即可!根据需要选择工程保存的位置,更改工程名,保存即可。这样便建立一个新的工程。之后保存一下工作区。注:工作区后缀名:eww工程后缀名ewpIAREW使用-第一个IAR工程

工作区窗口中的工程IAREW使用-第一个程序文件1.File->New->File将建立一个空的文本文件,此时可以向文件里添加程序代码。2.将此文本文件保存为xx.c文件。3.Project->AddFiles,选择xx.c文件,将其添加到工程中。IAREW使用-设置工程参数选择Project->Options配置与CC2430相关选项。Target标签:选择codemodel和Datamodel,以及其他参数。Derivative目录:..\derivatives\chip-con下的cc2430.i51DataPointer标签:数据指针数为1,大小为16位。IAREW使用-设置工程参数IAREW使用-设置工程参数Stack/Heap标签:改XDATA栈大小为0X1FF。IAREW使用-设置工程参数Output标签:若要用C-SPY进行调试,选中format下面的DebugifC-SPY。IAREW使用-设置工程参数Config标签:单击Linkercommandfile栏文本框右边的按钮,选择正确的连接命令文件。选择连接命令文件IAREW使用-设置工程参数Debugger标签下SetUp标签:在..\8051\config\derivatives\chipcon下即可找到该文件。保存之后会发现Output下多了一个CC2430.hex文件。IAREW使用选择Project\Make或按F7键编译和连接工程。若没有出现任何错误,按下图连接硬件系统进行试验。IAREW使用在与ZigBee硬件系统连接前,你要确保所用计算机上安装了必要的仿真器驱动。安装仿真器驱动---手动1.将仿真器通过开发系统附带的USB电缆连接到PC机,在XP系统下,系统找到新硬件后提示如下对话框,选择“从列表或指定位置安装”,点下一步。2.所得如下图所示,单击右边的“浏览”按钮选择驱动所在路径。IAREW使用驱动文件在IAR程序安装目录下,在C:\ProgramFiles\IARSystems\EmbeddedWorkbench4.05Evaluationversion\8051\drivers\chipcon下。IAREW使用安装仿真器驱动---自动

将仿真器通过开发系统附带的USB电缆连接到PC机,在XP系统下,系统找到新硬件后提示如下对话框,选择“自动安装软件”,向导会自动搜索并复制驱动文件到系统,完成安装。Project\Debug(ctrl+D)进入调试状态.完整运行程序,选择菜单Debug\Go或点调试工具栏上按钮.IAREW使用使用安装的IAR,写一个main()函数,里面调用函数Delay()延迟函数,延迟1秒左右。要求编译通过,无错误第一讲任务3传感器芯片调试技巧CC2530有21个可编程的I/O端口P0:P0_0~P0_7P1:P1_0~P1_7P2:P2_0~P2_4,每一个端口都可以被单独设置为输入或者输出口。CC2530的I/O口的输出方式是通过PxDIR、PxSEL和Px(”x”代表0、1、2,下同)三个八位寄存器组合控制的。I/O口输出模式组合控制设置如表1.1所示。知识点1:可编程的I/O端口PxDIRPxSELPx功能100输出低电平101输出高电平表

1.1I/O口输出模式组合控制设置表中PxDIR取值为1表示输出;0表示I/O端口为输出模式;PxSEL取值为0,表示I/O端口为通用I/O口;1表示外设;Px取值为0,表示输出低电平,取值为1表示输出为高电平;当I/OP1_0~P1_7各I/O端口输出高低电平时,设置方法如下表1.2所示。知识点2:三个寄存器控制21个端口寄存器B7B6B5B4B3B2B1B0P1SEL00000000P1DIR11111111P110101010实现功能:利用CC2530芯片上的I/0口,控制D9灯,在p1-0到p1-7中找出控制D9灯的端口,并使得D9等闪烁?课堂设计CC2530可编程输入输出口(I/O)应用本实验通过控制CC2530端口输出,并利用图1.36所示的基础实验板上的4所示的8个LED灯观察现象。基础实验板是为了帮助学习和认识CC2530资源和特性而设计的。2、 电路原理图CC2530单片机端口驱动能力有限,所以用ULN2003芯片做驱动,其电路原理图如图1.4.3所示。ULN2003内部含有7个不能输出高电平的反相器。当输入高电平时,输出为低电平,此时它可以吸收500mA,一般用于LED驱动。(详细资料参考ULN2003数据手册)。为了节省端口,采用串行输入、并行输出的移位锁存器74HC595。这样便可利用3个IO口控制8个LED灯以及数码管的状态。74HC595的电路原理图如图1.4所示。74HC595是8位输出锁存移位寄存器,数据输入由三个引脚组合控制,分别是数据输入引脚SER、数据输入控制引脚SRCK和数据输出锁存引脚RCK.SER引脚上的数据在SRCK引脚的上升沿信号保存到QA引脚,同时QA位上的数据移位到QB位,QB位的数据移位到QC位、、、、、、。依次类推,所有数据向后串行移动一位,QH位上的数据移位到QH’位,所有位的数据在RCK引脚的上升沿信号被所存到输出端。设计11.编程要求:编写一段C语言程序;2.实现功能:通过P1口输出的数据控制8个发光二极管的亮灭;3.实训现象:利用基础实验板上的8个LED灯实现循环依次点亮D2,D4,D6,D8的效果。CC2530定时器概述标准51芯片voiddelay(){u8j,k;for(j=0;j<1000;j++)for(k=0;k<110;k++);}(1/12M)*12(标准的51,相当于12个系统时钟)=1us110*1000*9*1us=1sC语言到汇编,1条相当于9条汇编。延时代码:voiddelay(unsignedintcount){unsignedinti,j;for(i=0;i<count;i++)for(j=0;j<1174;j++);}

问题二:延时时间上述代码经过反汇编之后就是16句汇编代码,一句代码需要一个指令周期来完成,时钟频率是32M,上述delay(1)的时间是: 1*1174*16/(32*106)=587usdelay(10);//延时时间就是5870us,就是5.87msdelay(800)//延时时间就是469600us,就是0.4696s

使用delay的时间很不准确,只能是大概的时间,需要精确的时间可以采用定时器功能!

一、定时器概述CC2530有5个定时器:定时器1;定时器2;定时器3;定时器4;睡眠定时器。其中睡眠定时器,和定时器2配合使用,可以使CC2530进入低功耗模式。CC2530含有四个定时器即Timer1、Timer2、Timer3和Timer4。其中Timer1为16位的定时器,Timer2为ZigBee协议MAC层专用定时器,Timer3、Timer4为8位寄存器,它们的工作原理与Timer1相同。一、定时器1当时钟脉冲设置为32M,不分频不分频自由运行模式每次溢出时间间隔为:系统时钟源(32M或16M)CLKCONCMD.OSC全局定时器分频CLKCONCMD.TICKSPDT1再分频T1CTL.DIV16位计数器T1CNTH、1CNTL定时器溢出不分频定时器溢出500次,就让灯状态取反:灯每隔1.024S亮一次,隔1.024S灭一次每次溢出时间间隔为:定时器12.计数器T1的中断溢出标志位:IRCON.T1IF和T1STAT.OVFIF1.计数器的16位初值寄存器:高8位T1CNTH、低8位T1CNTL+65535定时器100000000T1CNTH00000000T1CNTL11111111T1CNTH11111111T1CNTL经历了65535个时钟脉冲后变成16个1,如下:每经历一个时钟脉冲,数值加100000000T1CNTH00000000T1CNTL同时产生中断溢出标志位:IRCON.T1IF和T1STAT.OVFIF+1初始值:为0配置寄存器T1CTL定时器的计时原理可用公式:T=c*t来描述。其中“T”为计时时间,“c”为计数器的数值,“t”为单位时间(由DIV所设置的时间)。假如本实训配置定时器工作在无阀值计数模式,单位时间为“系统时钟频率/128”。请问寄存器T1CTL的值为。0x0DT1STAT--定时器1状态寄存器重要知识点:系统在不配置工作频率时默认为2分频,即32M/2=16M,所以定时器每次溢出时T=1/(32M/128)*65536=0.25s,所以总时间Ta=T*COUTN=0.25*4=1S。1、初始化io端口voidinit_io()和定时器init_timer_1()2、设置计数时间if(IRCON>0)3、主函数main(),完成两位数据的计数。intkey(){T1CTL=0X0D;T1STAT=0X21;}if(IRCON>0){IRCON=0;if(++m>=3){n++;m=0;}}1、初始化io端口voidinit_io()和定时器init_timer_1()2、初始化按键端口P0_3、P0_4、P0_5、P0_63、主函数main(),完成四个按键分别控制1、2、4、8灯的亮灭。外部中断intkey(){P0IEN|=0X08;PICTL&=0X01;IEN1|=0X20;P0IFG=0X00;EA=1;}大课(1)CC2530中断原理(难点)(2)CC2530外部中断编程(重点)小课(1)串口通过标志位发送接收串口初始化:时钟、位置、方式、波特率、优先级等;串口发送:等待、清0、发送;串口接收:等待、接收(2)CC2530外部中断外部中断初始化:输入方式、清除中断标志位、合上开关;中断响应程序:教学回顾#pragmavector=中断向量地址__interruptvoid中断函数名(void) {

中断处理;

中断清除; }#pragmavector=P0INT_VECTOR__interruptvoidIS(void){HC595(0X04);P0IF=0;}P1SEL=0X00;P1DIR=0XFF;P0DIR|=~0X08;使用按键P0_3实现外部中断。1、初始化init_io()2、初始化输出函数hc595();3、初始中断init_inter();4、初始化P0输入输出口io;P0DIR=~0X085、写中断函数#pragmavector=中断向量地址。6、主函数main(),实现按键进入中断函数,点亮灯。实现基础芯片中灯D8亮,当按下基础芯片中的最后一个按键,D8灯灭,基础芯片中的LED灯D1和D2点亮。睡眠唤醒-中断方式LED1闪烁3次后进入睡眠状态,通过按下按键S2产生外部中断进行唤醒IO口初始化函数外部中断初始化函数设置系统电源工作模式函数中断处理函数HC595处理函数延时函数主函数PICTL&=0x01;

P0IFG=0x00;

P0IEN|=0x10;IEN1|=0x20;//此项设置非常重要,不然进不了中断函数允许P0口中断;EA=1;zhongduanchushi(){P0DIR|=~0X08;P0IEN|=0X08;PICTL&=0X01;IEN1|=0XFF;P0IFG=0X00;EA=1;}电源管理寄存器PowerMode(ucharmode){if(mode<4){SLEEPCMD|=mode;PCON=0x01;}elsePCON=0x00;}#pragmavector=P0INT_VECTOR__interruptvoidP0_ISR(void){if(P0IFG>0){P0IFG=0;}

P0IF=0;PowerMode(4);}voidmain(void){uchari=0;uintled=HC595(0X01);iochushi(); zhongduanchushi();

while(1){for(i=0;i<6;i++){LED1=~LED1;delay(500);}PowerMode(3);}}睡眠唤醒-定时器设置定时器让系统在设定的时间被唤醒,每次唤醒LED1闪烁3下提示用户延时函数ioc初始化函数HC595处理函数设置系统电源工作模式函数睡眠定时器中断函数睡眠定时器初始化zhongduanchushi(){ST2=0X00;ST1=0X0F;ST0=0X0F;EA=1;STIE=1;STIF=0;}voidSet(uintsec){ulongsleepTimer=0;

sleepTimer|=ST0;sleepTimer|=(ulong)ST1<<8;sleepTimer|=(ulong)ST2<<16;sleepTimer+=((ulong)sec*(ulong)32768);ST2=(uchar)(sleepTimer>>16);ST1=(uchar)(sleepTimer>>8);ST0=(uchar)sleepTimer;}PowerMode(ucharmode){if(mode<4){SLEEPCMD|=mode;PCON=0x01;}elsePCON=0x00;}#pragmavector=ST_VECTOR__interruptvoidST_ISR(void){STIF=0;PowerMode(4);}voidmain(void){uchari=0;

iochushi(); zhongduanchushi();HC595(0X00);while(1){for(i=0;i<6;i++){HC595(0X01);delay(500);

HC595(0X00);delay(500);}Set_ST_Period(5);PowerMode(2);}}#pragmavector=T3_VECTOR__interruptvoidt3ior(void){IRCON=0X00;if(++n>500){n=0;m++;}}串口通信—发送数据到PC串口向PC发送字符串“HelloWorld”,PC机接收到串口数据后通过串口调试助手直接将接收到的内容显示出来。同时发送数据过程中,实现D8灯闪烁(用于提示用户正在发送数据)。

1、初始化串口时钟频率控制器CLKCONCMD&=~0X40;主频时钟源选择32M晶振

CLKCONCMD&=~0X40;//设置系统时钟源为32M晶振while(!(SLEEPSTA&0X40));//等待晶振稳定

CLKCONCMD&=~0X47;//TICHSPD128分频,CLKSPD不分频PERCFG&=~0x01;PERCFG=0X00;//位置1P0口

U0CSR|=0X80; //UART方式

U0CSR|=0X40; //允许接收

IEN0|=0X84; //开总中断,接收中断P0SEL|=0X0C; //P0用作串口U0CSR|=0X80;U0GCR|=11;U0BAUD|=216;接收和发送数据程序员需要根据中断标记位来判断数据是否发送完成或是否有数据要接收。UTX0IF=0;如果写成while(UTX0IF==0);//查询的方式单片机串口发送数据流程图send(uintc){U0DBUF=c;while(UTX0IF==0);UTX0IF=0;}功能设计:1、上电后串口向电脑发送00H;2、按键(0.6)按下,向电脑发送4CLKCONCMD&=~0X40;while(!(CLKCONSTA&0X40));CLKCONCMD&=~0X47; P0SEL=0x3c;PERCFG=0X00;U0CSR|=0X80;U0GCR|=11;U0BAUD|=216;UTX0IF=0;CLKCONCMD&=~0X40;while(!(CLKCONSTA&0X40));CLKCONCMD&=~0X47; P0SEL=0x3c; PERCFG=0X00;P0SEL=0X3C;U0CSR|=0X80;U0GCR|=11;U0BAUD|=216;UTX0IF=0;U0CSR|=0X40;IEN0|=0X84;send(uintc){U0DBUF=c;while(UTX0IF==0);UTX0IF=0;}main(){

P1SEL=0X00;P1DIR=0XFF;uart();HC595(0X00);while(1){

}}#pragmavector=URX0_VECTOR__interruptvoidabc(void){URX0IF=0;if(U0DBUF==1)HC595(0X01);if(U0DBUF==2)HC595(0X02);if(U0DBUF==3)HC595(0X04);}CC2530单片机共有两个串行通信接口USART0和USART1。两个串口既可以工作在UART(异步通信)模式,又可以工作在SPI(同步通信)模式,模式的选择由串口控制/状态寄存器的U0CSR.MODE决定为了保证串口通信的同步性我们还有完成通信波特率的设置,就像两个人进行沟通,必须使用对方能听懂的语言,才能顺利的表达彼此的想法。串口通信波特率的设置由寄存器U0GCR和U0BAUD来完成。接收和发送数据由寄存器U0BUF来完成。当对U0BUF寄存器进行读操作时,实现接收功能;当对其进行写操作时,实现发送数据功能。程序员需要根据中断标记位来判断数据是否发送完成或是否有数据要接收。1.实现功能:调节滑动变阻器的阻值,用LED灯反映数值变化;.2.实验现象:阻值变小时,LED灯按照数值递减规律变化。CC2530_ADC特点ADC转换位可选,8~14位8个独立可配置输入通道

参考电压可选择内/外部单一参考电路、外部差分电路或AVDD_SoC

可产生中断请求

可使用DMA数据传输模式(内存直取)

片内温度传感器输入

电源电压检测voidINIT_LED(void){P1SEL&=~0xFF;P1DIR|=0xFF;P1=0;}voidInit_ADC(void){ADCCFG=0x01;ADCCON1=0x33;ADCCON2=0xB0;}voidADC_con(void){ADCCON1|=0x40;while(!(ADCCON1&0x80));adc_value=ADCH;LEDprintf(adc_value,BYTE_5);}voidmain(void){Init_ADC();INIT_LED();for(;;)ADC_con();}实训项目四基于CC2530网络实训任务1ZigBee星状网络实训1、【实训目的】(1)理解热释红外传感器的工作原理;(2)掌握单片机驱动热释红外传感器的方法。2、【实训设备】(1)装有IAR开发工具的PC机一台;(2)主板、核心板、下载器、热释红外感应节点等各一个。任务1ZigBee星状网络实训3、【实训要求】(1)编程要求:编写热释红外传感器的驱动程序;(2)实现功能:检测被检测区域是否有人存在;如果有人输出“someonenearby”;如果没人输出“nobodynearby”。(3)实训现象:将检测到的数据通过串口调试助手显示,观察有人与无人时的数据变化。热释红外传感器主要是由一种高热电系数的材料,如锆钛酸铅系陶瓷、钽酸锂、硫酸三甘钛等制成尺寸为2*1mm的探测元件。在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,该透镜用透明塑料制成,将透镜的上、下两部分各分成若干等份,制成一种具有特殊光学系统的透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出10~20米范围内人的行动。4、【实训原理】(1)热释红外传感器500BP500BP热释红外传感器人体辐射的红外线中心波长为9~10um,而探测元件的波长灵敏度在5~14um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7~10um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。BISS0001是一款具有较高性能的传感信号处理集成电路,主要由运算放大器、电压比较器和状态控制器、延迟时间定时器、封锁时间定时器及参考电压源等构成的数模混合专用集成电路。它配以热释电红外传感器和少量外接元器件构成被动式的热释电红外开关。它能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇和烘干机等装置,特别适用于企业、宾馆、商场、库房及家庭的过道等敏感区域,或用于安全区域的自动灯光、照明和报警系统。(2)传感信号处理器BISS0001功能叙述CMOS数模混合专用集成电路。具有独立的高输入阻抗运算放大器,可与多种传感器匹配,进行信号与处理。双向鉴幅器,可有效抑制干扰。内设延迟时间定时器和封锁时间定时器,结构新颖,稳定可靠,调解范围宽。内置参考电压。工作电压范围2V~6V采用16脚DIP和SOP封装。用于多种传感器和延时控制器。各引脚的定义和功能如下:11脚VDD—工作电源正端。范围为3~5V。7脚Vss—工作电源负端。一般接0V。10脚IB—运算放大器偏置电流设置端。经RB接VSS端,RB取值为1M左右。15脚1IN-—第一级运放放大器的反相输入端。14脚1IN+—第一级运放放大器的同相输入端。16脚1OUT—第一级运算放大器的输出端。13脚2IN-—第二级运算放大器的反相输出端。12脚2OUT—第二级运算放大器的输出端。8脚VRF—参考电压及复位输入端,一般接VDD。接“0”时可使定时器复位。1脚A—可重复触发和不可重复触发控制端。当A=“1”时,允许重复触发,当A=“0”时,不可重复触发。2脚Vo—控制信号输出端。3脚RR1、4脚RC1—输出延迟时间Tx的调节端。Tx≈49152R1C1。6脚RR2、5脚RC2—触发封销时间Ti的调节端。Tx≈24R2C2。

普通人体会发射9-10um特定波长红外线,用专门设计的传感器(如500Bp)就可以针对性的检测这种红外线的存在与否,当人体红外线照射到传感器上后,因热释电效应将向外释放电荷,后续电路经检测处理后就能产生控制信号。这种专门设计的探头只对波长为9-10μm红外辐射敏感,所以除人体以外的其他物体不会引发探头动作。(3)热释红外传感器工作原理探头内包含两个互相串联或并联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。如下图所示。本实训所使用的热释红外传感器输出信号为高低电平。当检测到人时输出高电平;当检测到没人时输出低电平。

123BISS00015、【硬件连接】电路连接如图所示。热释红外传感器电路连接图图中J95为传感器模组与CC2530单片机的P1.0口相连,传感器的工作电压规定为5V,C26为滤波电容,单片机从传感器的2引脚进行电压采样。C102J110J956、【程序流程图】热释红外传感器驱动程序流程图如右图所示。7、【任务实施】(1)按下图完成硬件连接(传感器工作电压选择5V)(2)新建一个工程;(3)新建一个C语言文件;(4)根据驱动流程图编写相应的驱动程序;(5)将C语言文件添加到工程中;(6)下载调试程序,观察现象。热释红外传感器可用于检测被检测区域是否有人,当有人时,检测结果显示“someonenearby”,当无人时,检测结果显示“nobodynearby”。实训项目四基于CC2530网络实训任务2气体传感器数据通信实训1、【实训目的】(1)理解热释红外传感器的工作原理;(2)掌握单片机驱动热释红外传感器的方法。2、【实训设备】(1)装有IAR开发工具的PC机一台;(2)主板、核心板、下载器、热释红外感应节点等各一个。任务2气体传感器数据通信实训3、【实训要求】(1)编程要求:编写热释红外传感器的驱动程序;(2)实现功能:检测被检测区域是否有人存在;如果有人输出“someonenearby”;如果没人输出“nobodynearby”。(3)实训现象:将检测到的数据通过串口调试助手显示,观察有人与无人时的数据变化。热释红外传感器主要是由一种高热电系数的材料,如锆钛酸铅系陶瓷、钽酸锂、硫酸三甘钛等制成尺寸为2*1mm的探测元件。在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,该透镜用透明塑料制成,将透镜的上、下两部分各分成若干等份,制成一种具有特殊光学系统的透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出10~20米范围内人的行动。4、【实训原理】(1)热释红外传感器500BP500BP热释红外传感器人体辐射的红外线中心波长为9~10um,而探测元件的波长灵敏度在5~14um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7~10um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。BISS0001是一款具有较高性能的传感信号处理集成电路,主要由运算放大器、电压比较器和状态控制器、延迟时间定时器、封锁时间定时器及参考电压源等构成的数模混合专用集成电路。它配以热释电红外传感器和少量外接元器件构成被动式的热释电红外开关。它能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇和烘干机等装置,特别适用于企业、宾馆、商场、库房及家庭的过道等敏感区域,或用于安全区域的自动灯光、照明和报警系统。(2)传感信号处理器BISS0001功能叙述CMOS数模混合专用集成电路。具有独立的高输入阻抗运算放大器,可与多种传感器匹配,进行信号与处理。双向鉴幅器,可有效抑制干扰。内设延迟时间定时器和封锁时间定时器,结构新颖,稳定可靠,调解范围宽。内置参考电压。工作电压范围2V~6V采用16脚DIP和SOP封装。用于多种传感器和延时控制器。各引脚的定义和功能如下:11脚VDD—工作电源正端。范围为3~5V。7脚Vss—工作电源负端。一般接0V。10脚IB—运算放大器偏置电流设置端。经RB接VSS端,RB取值为1M左右。15脚1IN-—第一级运放放大器的反相输入端。14脚1IN+—第一级运放放大器的同相输入端。16脚1OUT—第一级运算放大器的输出端。13脚2IN-—第二级运算放大器的反相输出端。12脚2OUT—第二级运算放大器的输出端。8脚VRF—参考电压及复位输入端,一般接VDD。接“0”时可使定时器复位。1脚A—可重复触发和不可重复触发控制端。当A=“1”时,允许重复触发,当A=“0”时,不可重复触发。2脚Vo—控制信号输出端。3脚RR1、4脚RC1—输出延迟时间Tx的调节端。Tx≈49152R1C1。6脚RR2、5脚RC2—触发封销时间Ti的调节端。Tx≈24R2C2。

普通人体会发射9-10um特定波长红外线,用专门设计的传感器(如500Bp)就可以针对性的检测这种红外线的存在与否,当人体红外线照射到传感器上后,因热释电效应将向外释放电荷,后续电路经检测处理后就能产生控制信号。这种专门设计的探头只对波长为9-10μm红外辐射敏感,所以除人体以外的其他物体不会引发探头动作。(3)热释红外传感器工作原理探头内包含两个互相串联或并联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。如下图所示。本实训所使用的热释红外传感器输出信号为高低电平。当检测到人时输出高电平;当检测到没人时输出低电平。

123BISS00015、【硬件连接】电路连接如图所示。热释红外传感器电路连接图图中J95为传感器模组与CC2530单片机的P1.0口相连,传感器的工作电压规定为5V,C26为滤波电容,单片机从传感器的2引脚进行电压采样。C102J110J956、【程序流程图】热释红外传感器驱动程序流程图如右图所示。7、【任务实施】(1)按下图完成硬件连接(传感器工作电压选择5V)(2)新建一个工程;(3)新建一个C语言文件;(4)根据驱动流程图编写相应的驱动程序;(5)将C语言文件添加到工程中;(6)下载调试程序,观察现象。热释红外传感器可用于检测被检测区域是否有人,当有人时,检测结果显示“someonenearby”,当无人时,检测结果显示“nobodynearby”。实训项目三CC2530采集节点实训任务3热释红外传感器实训1、【实训目的】(1)理解热释红外传感器的工作原理;(2)掌握单片机驱动热释红外传感器的方法。2、【实训设备】(1)装有IAR开发工具的PC机一台;(2)主板、核心板、下载器、热释红外感应节点等各一个。任务3热释红外传感器实训3、【实训要求】(1)编程要求:编写热释红外传感器的驱动程序;(2)实现功能:检测被检测区域是否有人存在;如果有人输出“someonenearby”;如果没人输出“nobodynearby”。(3)实训现象:将检测到的数据通过串口调试助手显示,观察有人与无人时的数据变化。热释红外传感器主要是由一种高热电系数的材料,如锆钛酸铅系陶瓷、钽酸锂、硫酸三甘钛等制成尺寸为2*1mm的探测元件。在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,该透镜用透明塑料制成,将透镜的上、下两部分各分成若干等份,制成一种具有特殊光学系统的透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出10~20米范围内人的行动。4、【实训原理】(1)热释红外传感器500BP500BP热释红外传感器人体辐射的红外线中心波长为9~10um,而探测元件的波长灵敏度在5~14um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7~10um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。BISS0001是一款具有较高性能的传感信号处理集成电路,主要由运算放大器、电压比较器和状态控制器、延迟时间定时器、封锁时间定时器及参考电压源等构成的数模混合专用集成电路。它配以热释电红外传感器和少量外接元器件构成被动式的热释电红外开关。它能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇和烘干机等装置,特别适用于企业、宾馆、商场、库房及家庭的过道等敏感区域,或用于安全区域的自动灯光、照明和报警系统。(2)传感信号处理器BISS0001功能叙述CMOS数模混合专用集成电路。具有独立的高输入阻抗运算放大器,可与多种传感器匹配,进行信号与处理。双向鉴幅器,可有效抑制干扰。内设延迟时间定时器和封锁时间定时器,结构新颖,稳定可靠,调解范围宽。内置参考电压。工作电压范围2V~6V采用16脚DIP和SOP封装。用于多种传感器和延时控制器。各引脚的定义和功能如下:11脚VDD—工作电源正端。范围为3~5V。7脚Vss—工作电源负端。一般接0V。10脚IB—运算放大器偏置电流设置端。经RB接VSS端,RB取值为1M左右。15脚1IN-—第一级运放放大器的反相输入端。14脚1IN+—第一级运放放大器的同相输入端。16脚1OUT—第一级运算放大器的输出端。13脚2IN-—第二级运算放大器的反相输出端。12脚2OUT—第二级运算放大器的输出端。8脚VRF—参考电压及复位输入端,一般接VDD。接“0”时可使定时器复位。1脚A—可重复触发和不可重复触发控制端。当A=“1”时,允许重复触发,当A=“0”时,不可重复触发。2脚Vo—控制信号输出端。3脚RR1、4脚RC1—输出延迟时间Tx的调节端。Tx≈49152R1C1。6脚RR2、5脚RC2—触发封销时间Ti的调节端。Tx≈24R2C2。

普通人体会发射9-10um特定波长红外线,用专门设计的传感器(如500Bp)就可以针对性的检测这种红外线的存在与否,当人体红外线照射到传感器上后,因热释电效应将向外释放电荷,后续电路经检测处理后就能产生控制信号。这种专门设计的探头只对波长为9-10μm红外辐射敏感,所以除人体以外的其他物体不会引发探头动作。(3)热释红外传感器工作原理探头内包含两个互相串联或并联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。如下图所示。本实训所使用的热释红外传感器输出信号为高低电平。当检测到人时输出高电平;当检测到没人时输出低电平。

123BISS00015、【硬件连接】电路连接如图所示。热释红外传感器电路连接图图中J95为传感器模组与CC2530单片机的P1.0口相连,传感器的工作电压规定为5V,C26为滤波电容,单片机从传感器的2引脚进行电压采样。C102J110J956、【程序流程图】热释红外传感器驱动程序流程图如右图所示。7、【任务实施】(1)按下图完成硬件连接(传感器工作电压选择5V)(2)新建一个工程;(3)新建一个C语言文件;(4)根据驱动流程图编写相应的驱动程序;(5)将C语言文件添加到工程中;(6)下载调试程序,观察现象。热释红外传感器可用于检测被检测区域是否有人,当有人时,检测结果显示“someonenearby”,当无人时,检测结果显示“nobodynearby”。实训项目四基于CC2530网络实训任务4雨滴传感器数据通信实训1、【实训目的】(1)理解雨滴传感器的工作原理;(2)掌握单片机驱动雨滴外传感器的方法。2、【实训设备】(1)装有IAR开发工具的PC机一台;(2)主板、核心板、下载器等各一个。任务4雨滴传感器数据通信实训3、【实训要求】(1)编程要求:编写雨滴传感器的驱动程序;(2)实现功能:检测水滴并输出标志;(3)实训现象:将检测到的数据通过串口调试助手显示,观察有无水滴时的数据变化。4、【实训原理】(1)雨滴传感器简介

雨滴传感器采用日本进口的特殊电子浆料和先进的厚膜技术制作的专门用于检测雨滴的一种新型传感元件。该元件广泛用于需要检测雨滴的各种场所,如:无人职守的机房、宾馆高楼的门窗,高级轿车、客车的门窗,以及各种货场等等的自动控制,以防止雨水的浸蚀。(2)使用的环境条件环境温度:-20~+50℃;环境湿度:RH≤95℅%;大气压力:86KPa~106KPa(3)雨滴传感器工作原理工作原理如图所示。当检测到雨滴时,雨滴传感器的电导率升高,电路中的电流增大,Vout端输出的电压值增大。(4)使用注意事项

雨滴传感器可以在规定的工作条件下设计在控制的电路做传感之用,以接通各种控制电路。根据传感器的工作电压和电流选取适当的限流电阻以保证其正常工作。将传感器放在适当的位置,保证能在刚下雨时就能接受到雨滴,当传感器接收到雨滴后,发出信号接通控制器,通过控制器使执行机构动作而关好门窗。传感器应有必要的防护措施,以保证传感器不受损害。

传感器在使用和存放中应避免剧烈的振动和各种腐蚀性物质的伤害。存放在干燥的容器内。5、【硬件连接】电路连接如图所示。雨滴传感器电路连接图图中J30与CC2530单片机的P0口相连,传感器的工作电压规定为3V,R35为分压电阻,C59为滤波电容,单片机从传感器的2引脚进行电压采样。6、【程序流程图】程序流程图如图所示。7、【任务实施】(1)按下图完成硬件连接(传感器工作电压选择3.3V)(2)新建一个工程;(3)新建一个C语言文件;(4)根据流程图编写相应的驱动程序;(5)将C语言文件添加到工程中;(6)下载调试程序,观察现象。雨滴传感器可用于检测是否有降雨,当传感器表面比较干燥,检测结果显示“Sunny”,当传感器表面比较潮湿,检测结果显示“Raining”。ZigBee无线网络涉及电子、电路、通信、射频等多学科的知识,这对于入门级学习来说,无形中增加了学习难度,很多初学者看zigBee协议、射频电路......,学了半年甚至更长的时间,但是连基本点对点通信都无法实现,别说根据对ZigBee协议的理解来实现正常的无线网络部署工作了。本任务不是将重点放在复杂的ZigBee协议、射频、天线等知识,而是直接进行射频、天线等知识,而是直接进行射频、天线等知识,而是直接进行ZigBee无线网络点对通信的学习,基本思路是:从发送端一个数据,接收到后校验的是否正确,并给出相应的指示。很简单的功能,但是这里涉及以下问题:数据在协议栈里面是如何流动的;如何调用Z-Stack协议栈提供的发送函数:如何使用Z-Stack协议栈进行数据的接收;如何理解Z-Stack协议栈;Z-Stack协议栈是采用分层的思想,各都具有哪些功能;如何利用Z-Stack协议栈提供的函数来实现基本无线传感器网络应用程序开发:系统硬件对ZigBee协议都提供了哪些支持。既然Z-Stack协议栈已经实现了ZigBee协议,那么用户就可以使用协议栈提供的API进行应用程序的开发,在开发过程中完全不必关心ZigBee协议的具体实现细节,只需要关心一个核心的问题:应用程序数据从哪里来到哪里去。下面举个例子,当用户应用程序需要进行数据通信时,需要按照如下步骤实现:①调用协议栈提供的组网函数、加入网络函数,实现网络的建立与节点的加入;②发送设备调用协议栈提供的无线数据发送函数,实现数据的发送;③接收端调用协议栈提供的无线数据接收函数,实现数据的正确接收。因此,使用协议栈进行应用程序开发时,开发者不需要关心协议栈是具体怎么实现的(例如:每个函数是怎么实现的,每条函数代码是什么意思等),只需要知道协议栈提供的函数实现什么样的功能,会调用相应的函数来实现自己的应用需求即可。技巧提示:在TI推出的ZigBee2007协议栈(又称作Z-Stack)中,提供的数据发送函数如下:用户调用该函数即可实现数据的无线发送,当然,在此函数中有8个参数,用户需要将每个参数的含义理解以后,才能达到熟练应用该函数进行无线数据通信的目的。AF_DataRequest0函数中最核心的两个参数:·uint16len-发送数据的长度;·uint8*buf-指向存放发送数据的缓冲区的指针。至于调用该函数后至于调用该函数后至于调用该函数后如何初始化硬件进行数据发送等工作,用户不需要关心,Z-Stack协议栈已经将所需要的初始化工作了,这就类似于学习TCP/IP网络编程时,用络编程时,用户只需要调用相应的数据发送、接收函数即可,而不必关心具体的网卡驱动(如DM9000、CS8900网卡是如何接收数据的)具体实现细节。可以直接从TI官网下载协议栈安装文件或者直接拷贝最新的协议栈文件到C盘即可。协议栈文件如下图所示:操作方法如下:在我们的资料中找到TexasInstrumentsTexasInstruments这个文件夹,然后拷贝C盘的根目录。目录详情/ComponentsZ-StackStackStack协议栈所有的核心源码和硬件驱动在目录,进入该如下图协/Components/halCC2530硬件驱动层,包含LCD驱动程序,KEY驱动程序,LED驱动程序,UART驱动程序等。/Components/macCC2530Zigbee通信底层,由部分源码和库组成,TI在CC2530硬件基础上封装的通信层/Components/mtTI提供的debugger层,该层提供了一系列的调试接口,可以通过PC直接访问Z-stack协议。/Components/osal操作系统抽象层,整个Z-Stack运行在OSAL基础上,OSAL相当于一个操作系统,管理每个任务,关于OSAL的详情见《OSAL编程指南》。/Components/stackZ-Stack协议栈源码各层所在目录,包括af层,nwk层,zcl层,zdo层等等。想要深入Z-Stack协议,对该目录下的源码的全面分析非常必要/Components/zmac在mac层之上又封装了一层,叫做zmac,为上层的Z-Stack提供接口。/DocumentsZ-Stack相关的文档目录,包括Z-Stack协议栈的描述,OSAL层API函数介绍,SampleApp介绍等文档。非常重要,在进行zigbee开发前强烈建议仔细阅读该目录下的文档。/ProjectsZ-Stack是zigbee协议的实现协议的实现,但如何将此协议应用具体的中,就需要一些列的实例,也是我们后的所有实例和示程序,也是我们后面开发z-stackstackstackstackstack应用程序的重要目录。/Projects/zstack/HomeAutomation家庭自动化应用示例程序,包含无线开关、无线灯控等程序/Projects\zstack\LibrariesZstack封装好的库函数,这部分TI不提供源代码,只是以库的形式提供。/Projects/zstack/SamplesZ-Stack简单的应用程序示例,包括组通信,绑定通信等示例程序/Projects/zstack/SE智能能源示例程序,例如无线电表等。/Projects/zstack/Toolsz-stack示例程序中所用到的配置文件等。/Projects/zstack/UtilitiesZ-Stack实用程序,像串口透传/Projects/zstack/ZMainMain函数和板级配置源文件目录/Projects/zstack/ZNPZNP其实也是非常有用的程序,他把zigbee协议完全封装在cc2530中,通过ZNP程序,可以通过uart,spi或其他接口,上层的mcu来控制cc2530。在图中所示的文件布局中,左侧有很多文件夹,如App、HAL、MAC等,这些文件夹对应了Z-Stack协议栈中不同的层,使用Z-Stack协议栈进行应用程序的开发,一般只需要修改App目录下的文件即可。在ZigBee无线传感器网络中有三种设备类型:协调器、路由器和终端节点,设备类型是由ZiglBee协议栈不同的编译选项来选择的。在IAR左边的Workspace的下拉列表中选择CoordinatorEB协调器程序。或者RouterEB路由器程序、EndDeviceEB节点程序等配置。协调器主要负责网络组建、维护、控制终端节点的加入等。路由器主要负责数据包的路由选择,终端节点负责数据的采集,不具备路由功能。在本任务中,ZigBee节点1配置为一个协调器,负责ZigBee网络的组建,ZigBee节点2配置为一个终端节点。上电后,节点1和节点2均可以通过Joystick的右方向键加入和退出该网络,通过Joystick的up方向键通过zigbee网络发送一条闪烁led的命令到其他节点,其他节点如果处在这个网络中,会控制led闪烁。我们打开协议栈工程文件,选择CoordinatorEB,然后打开SampleApp.c,在函数SampleApp_Init里有这样的初始化代码。220行:afRegister函数,用来将上面的节点描述符进行注册,只有注册以后,才可以使用OSAL提供的系统服务。上述代码是消息处理函数,该函数大部分代码是固定的,读者不需要修改,只需要熟悉这种格式即可,唯一需要读者修改的是上面的反显的函数,可以修改函数的实现形式,但是其功能基本上都是完成对接收数据的处理。253行:SYS_EVENT_MSG,是否是系统消息判断。Rf通信层上传来的数据以及hal层的按键等时间,均会触发该系统事件。255行:申请内存,创建MSG结构体指针,准备接收系统消息。261行:KEY_CHANGE,按键按下,触发的消息事件。262行:按键对应的消息处理函数,其实就是处理一下是哪个按键按下,然后执行何种动作。266行:AF_INCOMING_MSG_CMD,网络上有发来数据,准备接收。267行:网络数据处理函数。271行:ZDO_STATE_CHANGE,ZDO状态发生变化,当系统初始化后,程序会根据节点的配置情况,进入协调器模式、路由器模式或者终端节点模式中的一个。278行:osal_start_timerEx,osal提供的定时器函数,后面传入的时间,将在设定的某个时间以后开始执行。293行:当处理完MSG消息后,需要对刚才申请的内存进行销毁。否则会造成内容泄露,最后内存消耗完后死机。305行:SAMPLEAPP_SEND_PERIODIC_MSG_EVT,用户自定义的消息事件,在z-stack程序里经常需要用户自定义各种事件,完成用户的控制逻辑,比如我们需要在10ms以后点亮一个led,平时的做法,通常是延时,或者开启一个单片机的timer,当10ms到后执行点亮led的操作,但是早osal里,这个过程就变得非常简单。我们只需要调用osal_start_timerEx

温馨提示

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

评论

0/150

提交评论