无线控制网络综合实验实验报告_第1页
无线控制网络综合实验实验报告_第2页
无线控制网络综合实验实验报告_第3页
无线控制网络综合实验实验报告_第4页
无线控制网络综合实验实验报告_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、无线控制网络综合实验实验报告姓 名:学 号:分组编号:小组成员:指导老师:2016年3月无线控制网络综合实验实验3.1 LED灯控制实验一、实验目的1、熟悉UP-CUP IOT-6410-II实验系统的硬件组成及使用方法,熟悉Zigbee模块的硬件接口;2、熟悉和掌握使用IAR集成开发环境,编写程序实现利用CC2530的IO口控制LED闪烁的功能。二、实验原理1、硬件原理CC2530控制LED 的电路原理图如图3-1-1所示。CC2530核心板上预留了两个LED,采用共阳极驱动方式,分别由CC2530的P1.0和P1.0控制,通过控制这两个IO口输出低电平即可点亮对应LED。图3-1-1 LE

2、D硬件原理图IO口的控制是通过对CC2530相关寄存器的操作实现的,其中部分IO相关寄存器如图3-1-2所示。具体操作过程见软件设计部分。图3-1-2 部分IO相关寄存器2、软件原理(1)、首先设置P1SEL寄存器,选择IO口的通用IO功能;(2)、设置P1DIR寄存器,选择P1.0和P1.1口的输入输出方向为输出方向;(3)、通过设置P1寄存器的第0位和第1位即可控制LED的亮灭,其中P1寄存器是可位寻址的,即可直接使用P1_x操作。程序主函数如下。void main(void)Initial();/调用初始化函数,初始化P1.0和P1.1口,包括对寄存/器P1SEL和P1DIR的操作LED

3、1 = 0;/LED1点亮LED2 = 0;/LED2点亮while(1)LED2 = !LED2;/LED2闪烁Delay(50000);三、实验步骤1、调整硬件:使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电,并使用CCD_SETKEY选择要使用的Zigbee模块;2、创建工程:打开IAR Embedded Workbench for MCS-51嵌入式开发环境,按下列步骤建立新工程;(1)选择filenewWorkspace新建一个工作空间;(2)选择ProjectGreate New Project.弹出图3-1-3建

4、立新工程对话框,然后确认Tool chain栏已经选择8051,在Project templates:栏选择Empty project,点击下方OK按钮;图3-1-3 建立新工程(3)选择工程的保存位置,如图3-1-4;图3-1-4 保存工程(4)保存Workspace工作空间并选择保存位置,如图3-1-5;图3-1-5 保存Workspace3、配置工程选项按照物联网综合实验系统实验指导书V1.3的说明对工程进行配置,其中部分配置的说明如下:(1)Code model和Data model可以调节程序寻址范围的大小,要根据实际程序的大小进行调节;(2)Stack/Heap标签:用于调整堆栈的

5、大小;(3)Linker选项,Output标签:用于输出编译生成的文件,用于下载到芯片运行,可以输出.hex、.bin或.txt等多种格式;(4)Debugger:用于选择软件调试的方式和使用的仿真器类型。4、新建和添加程序源文件使用工具栏新建一个空的程序文本文件,保存为main.c,在工程名上点右键,在弹出的快捷菜单中选择AddAdd File,弹出文件打开对话框,选择需要的文件点击添加即可将文件添加到工程。至此,一个可用的工程模板就创建好了,可以将该工程保存一份便于以后直接使用。4、编写编译和链接程序根据需求编写或添加程序,选择ProjectMake或直接按F7键编译和连接工程。5、程序下

6、载和调试(1)、安装仿真器驱动:根据物联网综合实验系统实验指导书V1.3的说明安装好仿真器的驱动程序;(2)、调试和运行:选择菜单ProjectDebug或按快捷键CTRL+D进入调试状态,调试状态可以进行单步运行、查看变量、设置断点等操作,方便调试程序;现在程序已经下载到了CC2530中了,退出DEBUG模式后按一下复位按键程序就开始全速执行了。调试界面如图3-1-6所示。图3-1-6 软件调试界面四、实验结果程序全速运行时可以看到LED1保持亮的状态,而LED2在不断闪烁。实验3.2 Timer1控制实验一、实验目的1、练习和巩固嵌入式开发环境IAR及CC2530通用IO口的使用方法;2、

7、学习和掌握CC2530的Timer1定时器的使用。二、实验原理1、硬件原理用到的LED控制电路与实验3.1 LED控制实验相同,同时使用了CC2530的内部外设定时器1。CC2530内部有一个16为的Timer1,其主要特性如下:. 具有3个捕获/比较通道;. 支持上升沿、下降沿或任意边沿输入捕获模式;. 比较模式支持置位、清除或反转外部输出;. 三种计数模式:. 输入时钟支持1,8,32或128预分频;. 每个捕获/比较和计数结束都能产生中断请求;. DMA触发功能。Tmer1包含的寄存器有:图3-2-1 Timer1的相关寄存器2、软件原理软件主函数如下:初始化函数Initial();主要

8、初始化了IO引脚和Timer1的T1CTL寄存器。然后采用软件轮询IRCON的方式判断定时器是否溢出,如果溢出则改变标志TempFlag的值,进而改变LED的状态。void main()Initial();/调用初始化函数LED1 = 0; /点亮LED1 while(1) if(IRCON 0) IRCON = 0;/清除溢出标志 TempFlag = !TempFlag; if(TempFlag)LED2 = LED1;LED1 = !LED1;Delay(6000);三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开Zigbee模块

9、开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、启动IAR开发环境,新建和配置工程,将expBasicExp2实验工程中代码拷贝到新建工程中;4、在IAR开发环境中编译、运行、调试程序。四、实验结果可以看到LED1和LED2轮流闪烁一段时间,然后静止相同时间,然后又开始闪烁,如此循环,实验调试界面如下图。 实验3.7 模拟电压AD转换实验一、实验目的1、学习和掌握CC2530内部ADC的使用和调试方法;2、掌握CC2530的USART串口的使用方法,并会使用PC机的串口调试软件。二、实验原理1、硬件原理本实验用到了CC2

10、530的内部ADC和USART,ADC的控制寄存器如图3-7-1,它有3个控制寄存器:ADCCON1、ADCCON2和ADCCON3。图3-7-1 ADC控制寄存器USART的控制寄存器如图3-7-2所示,具体功能见CC2530的Users Guide。图3-7-2 USART寄存器列表2、软件原理通过InitUart();和InitialAD();函数分别对USART和ADC进行初始化,ADC转换完毕后可以在ADCL和ADCH寄存器中读到转换后的值,使用prints(type data)函数将数据发送到串口。三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6410-II型设

11、备,设备上电,确保打开Zigbee模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;4、启动IAR开发环境,新建工程,将expBasicExp7实验工程中代码拷贝到新建工程中;5、在IAR开发环境中编译、运行、调试程序;6、由于PC机自带的超级终端不能显示输入的字符(也许是我们不会),所以我们安装了一个串口调试助手软件用于串口通讯。将串口调试助手设置为串口波特率57600、8位、无奇偶校验,无硬件流模式,即可在助手中收到模块传递过来的模

12、拟电压经过A/D转换后的数值。四、实验结果实验结果如图3-7-3所示。图3-7-3 实验3-7结果实验3-9 串口收发数据实验一、实验目的1、练习和熟练掌握CC2530的USART的使用方法。二、实验原理1、硬件原理用到的LED和USART寄存器如前所述。2、软件原理(1)、初始化LED引脚和USART寄存器;(2)、首先CC2530处于接收模式,收到数据后产生中断并在中断函数中读出接收到的数据到temp中,然后将收到的数据存到receive_buf中。同时判断是否为回车或字符数大于30个,是则进入发送模式,将收到的数据通过串口重新发回PC机。三、实验步骤1、使用配套USB线连接PC机和UP-

13、CUP IOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;4、启动IAR开发环境,新建工程,将expBasicExp9实验工程中代码拷贝到新建工程中;5、在IAR开发环境中编译、运行、调试程序;6、使用串口调试助手(注意:字符串必须以回车键结束或输入字符串长度超过30个字符,才会显示)连接串口,设置串口波特率57600、8位、无奇偶校验,无硬件流模式,当向串口调试助手的数据发送

14、去输入数据输入回车结束符时,将在出口调试助手的接受去看到串口输入的数据。四、实验结果可以看到,当发送低于30个字符的数据加回车时,将在接收窗口收到发出的数据。当发送数据大于30时,多余的部分将被抛弃,只返回了前30个字符。实验结果如图3-9-1所示。图3-9-1 USART收发实验实验结果五、思考发现这里USART的中断服务函数每次只能接收一个字节数据,并将其暂存到了temp中,在主函数中在对这个字节进行具体操作。也就是说,如果主函数没来得及操作完串口就收到了下一个字节的数据,这时新收到的一个字节数据将覆盖掉上一次暂存到temp中的一字节数据,造成数据丢失。实际测试中在receive_bufc

15、ounter+ = temp;语句对temp进行操作前加一段延时,真的造成了数据的丢失,丢失规律为每隔1个字符就丢失特定个字符。实验3-10 串口控制LED实验一、实验目的1、练习和巩固CC2530串口的使用,并将其与IO口控制相结合。二、实验原理1、硬件原理LED和USART相关的原理图和寄存器原理如前所述。2、软件原理(1)、首先同样使用InitUart();和InitLed();函数初始化串口和LED;(2)、将CC2530串口设置为接收模式,收到数据后在中断服务函数中将其存到temp中,并在主函数中将收到的整个数据存到receive_buf中,修改标志,然后判断收到的数据指示的操作并控

16、制LED执行相应的操作。三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;4、启动IAR开发环境,新建工程,将expBasicExp10实验工程中代码拷贝到新建工程中;5、在IAR开发环境中编译、运行、调试程序;6、使用串口调试助手连接串口,设置串口波特率57600、8位、无奇偶校验,无硬件流模式,当向串口输入相应数据格

17、式的数据时,即可控制LED灯的开关;LED1开: 11回车LED1关: 10回车LED2开: 21回车LED2关: 20回车四、实验结果当输入对应的控制代码时能够正确控制LED的相应操作,而输入其它字符时LED不会变化。同时当输入以上述3字节代码开头的长于3字节的数据时(串口调试助手是可以的,超级终端输入回车时已经将数据发送出去了)也能正确控制LED。实验结果如图3-10-1。图3-10-1 实验结果实验3.11时钟显示实验一、实验目的1、练习和巩固CC2530的定时器1和串口的使用;2、练习和掌握使用定时器产生指定周期的信号,学会使用Timer的中断。二、实验原理1、硬件原理LED、Time

18、r1和USART相关的原理图和寄存器原理如前所述。2、软件原理(1)、主函数中先调用InitUart();InitLed();和InitT1();三个函数初始化USART、LED和Timer1;(2)、串口中断函数用来判断收到的数据是否为s起始地,是则将收到的前十个数据暂存到timeSet中,然后调用void setTimeTemp(char *p)函数设置时间;(3)、定时器中断函数用来产生指定时间的定时,当产生30000次中断(即定时器溢出30000次)时,改变变量的值和LED的状态,并在主函数中刷新时间,然后将新时间通过串口发送出去。三、实验步骤1、使用配套 USB 线连接PC机和UP-

19、CUP IOT-6410-II型设备,设备上电,确保打开ZIEBEE模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、启动IAR开发环境,新建工程,将expBasicExp11 实验工程中代码拷贝到新建工程中;4、在IAR开发环境中编译、运行、调试程序;5、使用串口调试助手连接串口,设置串口波特率57600、8位、无奇偶校验位、无硬件流模式,运行程序,即可看到模拟时间的计数。当向串口输入相应格式的数据时,即可设置时间:s+12+50+30设置时间为12时50分30秒。四、实验结果上电后可以在串口调试助手中收到实时的时间

20、显示,通过发送s+11+28+08可以设置时间为当前时间,并成功运行计时。实验结果如图3-10-1。图3-10-1实验结果实验4.1 热释红外传感器实验一、实验目的1、熟悉和掌握热释红外传感器的使用方法;2、熟悉和掌握CC2530外部中断的使用。二、实验原理1、硬件原理(1)、LED和USART的电路原理及其相关寄存器如前所述。(2)、CC2530的P0,P1和P2三组IO口都支持外部中断,本实验我们用到了P1.2口的外部中断,外部中断相关的部分寄存器如图4-1-1和4-1-2所示,除此之外还有中断标志寄存器,由于每组IO共用一个中断向量,所以需要通过查询中断标志寄存器判断具体哪个引脚触发了中

21、断。图4-1-1 外部引脚中断控制寄存器图4-1-2 中断使能寄存器(3)、热释红外传感器原理图如图4-1-3所示,其对外的主要接口为一组电源和一个数字信号输出引脚,当红外传感器收到红外信号超过阈值时该引脚就会产生上升沿跳变,跳变可以被CC2530外部中断捕获。图4-1-3 热释红外传感器原理图2、软件原理(1)、首先初始化LED、USART和外部中断,外部中断需要设置相应P1.2端口的输入输出方向、设置使能位和中断触发方式。同时还需要在IEN0中使能全局中断,在IEN2中使能P1口的中断。(2)、主函数初始化完外设后就循环控制LED2闪烁。(3)、在P1口的中断服务函数中向串口输出产生中断信

22、息,同时控制LED1每中断一次改变一次状态(通过对中断次数计数器int_counter对2取余得到0或1)。退出中断服务函数前要软件清除相关标志位,否则会再次重复误触发中断。三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;4、启动IAR开发环境,新建工程,将expSensorExp1实验工程中代码拷贝到新建工程中;5、

23、在IAR开发环境中编译、运行、调试程序;6、使用串口调试助手,将调试助手设置为串口波特率57600、8位、无奇偶校验、无硬件流模式。四、实验结果当红外传感器监测到有效范围内的物体移动时,即可在助手收到字符串“IRDA interrupt!”,且Zigbee模块上的LED状态改变一次。实验结果如图4-1-4所示。图4-1-4 热释红外传感器实验结果实验4-6 温湿度传感器实验一、实验目的1、学习和掌握温湿度传感器的原理和使用方法;2、了解IIC通信协议,学会使用IO口模拟IIC通信时序。二、实验原理1、硬件原理(1)、用到的LED、USART和IO口相关的原理图和寄存器如前所述。(2)、温湿度传

24、感器原理图如图4-6-1所示,其中主要的传感器为U1,其对外输出信号的数字信号,采用IIC通信协议。图4-6-1 温湿度传感器原理图2、软件原理(1)、软件模拟IIC:模拟IIC的代码主要参见shtll.c文件;(2)、主函数初始化LED、USART和温湿度传感器,然后开始循环调用GetHumiAndTemp(&humi,&temp)函数采集温湿度信息,成功采集到则该函数会返回0。由于得到的是float格式的温湿度信息,而串口发送的是char型字符串,所以要用sprintf()函数将数字转换成字符串,然后通过串口发送都PC机。三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6

25、410-II型设备,设备上电,确保打开Zigbee模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;4、将系统配套温湿度传感器连接到Zigbee模块的主板上,连接A/D排针端,不要连错;5、启动IAR开发环境,新建工程,将expSensorExp6实验工程中代码拷贝到新建工程中;6、在IAR开发环境中编译、运行、调试程序;7、使用串口调试助手,将助手设置为串口波特率57600、8位、无奇偶校验、无硬件流模式,运行程序观察串口数据输出。四

26、、实验结果可以在串口调试助手窗口看到收到的温湿度信息,向温湿度传感器哈气,会看到温度和湿度信息都有所升高。实验结果如图4-6-2所示。图4-6-2 温湿度传感器实验结果实验5.1 点对点无线通讯实验一、实验目的1、了解2.4GHz IEEE 802.15.4协议和Zigbee相关知识;2、学习和掌握使用CC2530进行点对点的无线通讯。二、实验原理本实验将控制一个Zigbee模块箱另一Zigbee模块不断发送数据,另一模块在收到数据后将改变LED1和LED2的状态。1、硬件原理LED、USART相关硬件原理图和寄存器如前所述。图5-1-1为CC2530的Zigbee天线,U2为平衡滤波器,J3

27、接Zigbee天线。图5-1-1 CC2530Zigbee天线原理图2、软件原理(1)、关键函数分析:.射频初始化函数uint8 halRfInit(void)功能描述:zigbee 通信设置,自动应答有效,设置输出功率0dbm,Rx设置,接收中断有效。参数描述:无返回:配置成功返回SUCCESS.发送数据包函数 uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length) 功能描述:发送包函数。入口参数:destAddr 目标网络短地址pPayload 发送数据包头指针length 包的大小出口参数:无返回值:

28、成功返回SUCCESS失败返回FAILED.接收数据函数 uint8 basicRfReceive(uint8* pRxData, uint8 len, int16* pRssi) 功能描述:从接收缓存中拷贝出最近接收到的包。参数:pRxData接收数据包头指针len接收包的大小返回:实际接收的数据字节数(2)、软件需要编译两次下载到两个不同的Zigbee模块中,一个为发送端,另一个为接收端。两个软件的选择通过MODE_SEND宏定义来选择。三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开ZIEBEE模块开关供电;2、使用CCD_SET

29、KEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、打开物联网无线传感网络部分expzigbee点对点无线通信idesrf05_cc2530iar里的per_test.eww工程;4、在IAR开发环境中编译、运行、调试程序;5、通讯测试:依次打开2个分别烧写入发送和接收的Zigbee模块,两个模块的LED1和LED2快速闪烁8次后开始通讯,接着发送器的LED1和LED2交替闪烁,接收器的LED1接收到一次数据闪烁一次,LED2熄灭。四、实验结果模块上电后,两个模块的LED1和LED2快速闪烁8次后开始通讯,接着发送器的LED1和LED2交替闪烁,接收器的L

30、ED1接收到一次数据闪烁一次,LED2熄灭。图5-1-2 点对点无线通讯实验截图实验5.2点对多点无线通讯实验一、实验目的1、进一步熟悉和掌握CC2530 Zigbee的使用;2、学习和掌握使用CC2530的Zigbee实现点对多点的无线通讯。二、实验原理1、FDMA(频分多址)简介:无线通讯与有线连接在诸多重要环节上完全不同,这些环节中的异同导致了他们之间的通信质量的差异:.无线链路是通过相同的传输媒介空气来传播无线电信号;.误码率比常规有线系统高几个数量级。由于存在上述差异,RF链路的可靠性比有线链路低;.为了实现在同一范围内多点间通讯,必须考虑防止数据包在空气中的传输时相互碰撞,为了建立

31、可靠的无线传输通路,必须采用各种方法。例如 TDMA/FDMA/CSMA 等都是 无线通讯中常用的办法。FDMA是数据通信中的一种技术,即不同的用户分配在时隙相同而频率不同的信道上。按照这种技术,把在频分多路传输系统中集中控制的频段根据要求分配给用户。同固定分配系统相比,频分多址使通道容量可根据要求动态地进行交换。在FDMA系统中,分配给用户一个信道,即一对频谱,一个频谱用作前向信道即基站向移动台方向的信道,另一个则用作反向信道即移动台向基站方向的信道。这种通信系统的基站必须同时发射和接收多个不同频率的信号,任意两个移动用户之间进行通信都必须经过基站的中转,因而必须同时占用2个信道(2对频谱)

32、才能实现双工通信。以往的模拟通信系统一律采用FDMA。频分多址(FDMA)是采用调频的多址技术,信道在不同的频段分配给不同的用户。如TACS系统、AMPS系统等。频分多址是把通信系 统的总频段划分成若干个等间隔的频道(也称信道)分配给不同的用户使用。这些频道互不交叠,其宽度应能传输一路数字话音信息,而在相邻频道之间无明显的串扰。频分多址(FDMA)技术将可用的频率带宽拆分为具有较窄带宽的子信道,如图所示。这样每个子信道均独立于其它子信道,从而可被分配给单个发送器。其优点是软件控制上比较简单,其缺陷是子信道之间必须间隔一定距离以防止干扰,频带利用率不高。2、软件原理FDMA接收程序主要是在两个频

33、道上循环监听,如果有收到发送模块的信号或一定时间内没有接收到该频道上的信号,就跳到另外一个频道继续监听。程序首先是初始化程序,初始化射频部分和内部CPU。然后程序进入主循环部分,等待接收信号,如果接收到0x0B频道上的数据,LED1闪烁一次,并改变频道为0x0c,如果接收到0x0C频道上的数据,LED2闪烁一次,并改变频道为0x0B。图5-2-1发送流程图 图5-2-2接收流程图(3)、关键函数分析1、射频初始化函数uint8 halRfInit(void)功能描述:zigbee通信设置,自动应答有效,设置输出功率0dbm,Rx设置,接收中断 有效。参数描述:无返回:配置成功返回SUCCESS

34、2、发送数据包函数 uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length)功能描述:发送包函数入口参数:destAddr 目标网络短地址pPayload 发送数据包头指针length 包的大小出口参数:无返回值:成功返回SUCCESS失败返回FAILED 3、接收数据函数uint8 basicRfReceive(uint8* pRxData, uint8 len, int16* pRssi)功能描述:从接收缓存中拷贝出最近接收到的包参数:pRxData 接收数据包头指针Len 接收包的大小返回:实际接收的数

35、据字节数三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开ZIEBEE模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、打开物联网无线传感网络部分expzigbee点对多点无线通信FDMAidesrf05_cc2530iar里的per_test.eww工程;4、在IAR开发环境中编译、运行、调试程序。注意,本工程需要编译三次,分别编译为发送器1、发送器2、接收器,通过MODE_RECEIVE、MODE_SEND1、MODE_SEND2宏选择,并分别下载入3个Zig

36、bee模块中;5、通讯测试:依次打开3个分别烧写入发送1、发送2和接收的Zigbee模块,三个模块的LED1和LED2快速闪烁8次后开始通讯,接着发送器的LED1和LED2交替闪烁,接收器接收到发送器1发过来的数据LED1闪烁一次,接收到发送器2发过来的数据LED2闪烁一次。四、实验结果给三个模块上电后,三个模块的LED1和LED2快速闪烁8次后开始通讯,接着发送器的LED1和LED2交替闪烁,接收器接收到发送器1发过来的数据LED1闪烁一次,接收到发送器2发过来的数据LED2闪烁一次。图5-2-3 点对多点无线通讯实验截图实验5.3 TI Z-stack2007协议栈入门实验一、实验目的1、

37、学习TI Z-Stack2007协议栈软件架构,掌握TI Z-Stack协议栈软件开发流程;2、安装TI Z-Stack2007协议栈,学习协议栈相关IAR工程的配置,及常见软件工具的使用方法。二、实验原理前面两次实验我们已经了解和掌握了Zigbee的基本的数据收发,本实验我们将了解更上层的通信协议Z-stack2007,通过基于基本数据收发的上层的协议栈,能够协调各节点实现更复杂的通信,保证整个网络通信的正确、高效和畅通。1、Z-Stack概述目前TI的Z-Stack协议栈实际上已经成为了Zigbee联盟认可并推广的指定软件规范。因此,掌握Z-Stack协议栈相关的软件架构及开发流程,是我们

38、学习Zigbee无线网络的关键步骤。(1)、Z-Stack软件架构:图5-3-1 Z-Stack软件架构协议栈定义了通信硬件和软件在不同层次如何协调工作。在网络通信领域,在每个协议层的实体通过对信息打包与对等实体通信。在通信的发送方,用户需要传递的数据包按照从高层到低层的顺序依次通过各个协议层,每一层的实体按照最初预定消息格式在数据信息中加入自己的信息,比如每一层的头信息和校验等,最终抵达最低层的物理层,变成数据位流,在物理连接间传递。在通信的接收方数据包依次向上通过协议栈,每一层的实体能够根据预定的格式准确的提取需要在本层处理的数据信息,最终用户应用程序得到最终的数据信息并进行处理。ZigB

39、ee无线网络的实现,是建立在ZigBee协议栈的基础上的,协议栈采用分层的结构。协议分层的目的是为了使各层相对独立,每一层都提供一些服务,服务由协议定义,程序员只需关心与他的工作直接相关的那些层的协议,它们向高层提供服务,并由底层提供服务。在ZigBee协议栈中,PHY、MAC层位于最低层,且与硬件相关;NWK、APS, APL层以及安全层建立在PHY和MAC层之上,并且完全与硬件无关。分层的结构脉络清晰、一目了然,给设计和调试带来极大的方便。整个Z-Stack采用分层的软件结构,硬件抽象层(HAL)提供各种硬件模块的驱动,包括定时器Timer,通用I/O口GPIO,通用异步收发传输器UART

40、,模数转换ADC的应用程序接口API,提供各种服务的扩展集。操作系统抽象层OSAL实现了一个易用的操作系统平台,通过时间片轮转函数实现任务调度,提供多任务处理机制。用户可以调用OSAL提供的相关API进行多任务编程,将自己的应用程序作为一个独立的任务来实现。(2)、Z-Stack软件流程:整个Z-stack的主要工作流程,大致分为系统启动,驱动初始化,OSAL初始化和启动,进入任务轮循几个阶段,如图5-3-2所示。图5-3-2 Z-Stack软件流程图三、实验步骤1、安装TI ZStack-2.3.0-1.4.0协议栈,双击Zigbee实验下Z-Stack2007协议栈安装包目录下的ZStac

41、k-CC2530-2.3.0-1.4.0.exe安装程序;2、安装完成后,默认会在C盘Texas Instruments目录下发现ZStack-2.3.0-1.4.0目录,根目录下有一个安装卸载协议栈的PDF说明书,另外包含Documents、Components、Projects、Tools文件夹:.Document文件夹包含了对整个协议栈进行说明的说有文档。用户可以把该文件夹下的文档作为学习使用的参考手册;.Compnents文件夹是Z-Stack协议栈各个功能部件的实现,包含协议栈各个层次的目录结构;.Projects文件夹包含了Z-Stack功能演示的各个项目例程;.Tool文件夹下存

42、放着TI自带的网络工具;3、打开 C:Texas InstrumentsZStack-CC2530-2.3.0-1.4.0ProjectszstackSamplesSampleApp CC2530DB目录下的工程文件,熟悉TI ZStack-2.3.0-1.4.0协议栈自带例程的IAR工程配置:.在Workspace工作区,查看工程模板。本SampleApp工程共有8个模板,分别对应不同的硬件设备和不同的Zigbee设备类型;. 以CoordinatorEB为例,该硬件模板最接近我们实验使用的硬件设备,查看工程相关配置,其中协议栈中使用相关的宏定义来控制设备流程及类型,可以在工程的Option

43、sC/C+CompilerPreprocessor中查看。通过对比不同的工程,我们可以发现不同工程的Defined symbols定义不同,从而实现不同功能流程的控制;.我们还可以通过工程的OptionC/C+CompilerExtra Options选项查看该工程模板的配置文件;. 在f8wConfig.cfg等配置文件中定义了工程相关的网络通讯设置。其中比较重要的是和Zigbee通信相关的信道通道的设置,和PAN ID的设置,用户可以通过更改该文件中的相关宏定义,来控制Zigbee网络的通道和PAN ID。以此来解决多个Zigbee网络的冲突问题。4、编译工程,并下载调试;5、使用Chip

44、conFlashProgrammer软件更改MAC物理地址:Zigbee模块默认出厂地址为64位的0xFF无效地址,该地址为Zigbee的全球唯一地址。因此可以通过SmartRFProgr_1.6.2软件来更改该物理地址,以此完成基于Z-Stack协议栈的实验。.打开目录“演示程序烧写目录imgzigbee”,运行Setup_SmartRFProgr_1.6.2.exe程序;.连接好Zigbee模块和USB仿真器后,即可检测到Zigbee模块。连接时候保证硬件连接正确,可以手动复位USB仿真器或Zigbee模块,且保证IAR工程中退出Debug调试模式;.使用Reed IEEE来读Zigbee

45、物理地址,如果监测到Zigbee模块,即可读出该模块的64位物理地址;图5-3-3 使用Reed IEEE读取Zigbee的物理地址.手动修改IEEE物理地址,使用Write IEEE烧写(烧写时需要保证写入的IEEE地址为非0xFF且不与局域网中其他模块IEEE地址冲突),当底侧显示IEEE address successfully write表示写入成功。6、修改好Zigbee模块的IEEE地址后,即可重新下载调试程序。四、实验结果如果Zigbee模块下载了协调器的工程二进制程序,则该Zigbee模块可以作为协调器运行并会自动创建网络,如果下载了EndDeviceDB工程,在Zigbee模

46、块作为节点端模块,同样,如果下载了RouterDB工程,则Zigbee作为路由模块使用。用户可以使用2个Zigbee模块,分别下载协调器工程和节点工程的二进制文件。首先启动协调器模块,上电后协调器会自动创建网络,Zigbee协调器模块的绿灯点亮,表示组网成功,接着打开节点端模块,如果节点端模块入网成功,则Zigbee节点端的绿灯也会点亮。实验5.4 基于Zstack的无线组网实验一、实验目的1、学习TI ZStack2007协议栈内容,掌握CC2530模块无线组网原理及过程;2、使用IAR开发环境设计程序,ZStack-2.3.0-1.4.0协议栈源码例程SampleApp工程基础上,实现无线

47、组网及通讯。二、实验原理总体实验原理为:模块A通过Zigbee向模块B发送信息,然后模块B通过串口把“HELLO!”字符串发送到PC机。1、SampleApp实验简介SampleApp实验是协议栈自带的Zigbee无线网络自启动(组网)样例,该实验实现的功能主要是协调器自启动(组网),节点设备自动入网。之后两者建立无线通讯,数据的发送主要有2中方式,一种为周期定时发送信息(本次实验采用该方法测试),另一种需要通过按键事件触发发送FLASH信息。由于实验配套Zigbee模块硬件上与TI公司的Zigbee样板有差异,因此本次实验没有采用按键触发方式。2、发送periodic信息流程.Periodi

48、c消息是通过系统定时器开启并定时广播到group1出去的,因此在SampleApp_ProcessEvent事件处理函数中有一段定时器代码。当设备加入到网络后,其状态就会变化,对所有任务触发ZDO_STATE_CHANGE事件,开启一个定时器。当定时时间一到,就触发广播periodic消息事件,触发事件SAMPLEAPP_SEND_PERIODIC_MSG_EVT,相应任务为SampleApp_TaskID,于是再次调用SampleApp_ProcessEvent()处理;.SAMPLEAPP_SEND_PERIODIC_MSG_EVT事件,该事件处理函数调用SampleApp_SendPer

49、iodicMessage()来发送周期信息。3、MT层串口通讯协议栈将串口通讯部分放到了MT层的MT任务中去处理了,因此我们在使用串口通讯的时候要在编译工程(通常是协调器工程)时候在编译选项中加入MT层相关任务的支持:MT_TASK,ZTOOL_P1或ZAPP_P1。三、实验步骤1、使用配套 USB 线连接 PC 机和 UP-CUP IOT-6410-II 型设备,设备上电,确保打开 ZIEBEE 模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS23

50、2-2)上;4、打开物联网无线传感网络部分expzigbee无线自组网实验ProjectszstackSamplesSampleAppCC2530DB里的工程;5、选择CoordinatorEB工程,编译下载到Zigbee COORDINATOR 模块中;6、选择EndDeviceEB 工程,编译下载到终端节点;7、启动设备测试,首先启动协调器模块,建立网络时LED1闪烁,成功后LED1点亮停止闪烁,再启动节点端Zigbee模块,入网成功后LED1点亮停止闪烁,网络组建成功后,通过CCD_SETKEY按键将PC机串口线连接到Zigbee协调器模块对应的串口上,打开串口调试助手,设置波特率为38

51、400、8位、无奇偶校验、无硬件流模式,即可在串口调试助手上看到终端节点发送过来的“HELLO!”字符串。备注:如果多套实验设备同时在运行此工程实验(局域网中存在多个相同工程编译出来运行的协调器模块),为避免相同工程的Zigbee网络间的组网冲突,需要用户手动更改本工程下的Tools目录下的f8wConfig.cfg文件,将其中默认的ZDAPP_CONFIG_PAN_ID=0xFFFF宏更改为唯一的特定值(0-0x3FFF之间),重新编译下载相应工程,运行。这样可以避免各个Zigbee网络(协调器)的冲突,如图5-4-1所示。图5-4-1 修改局域网ID避免冲突四、实验结果可以在串口调试助手上

52、看到终端节点发送过来的“HELLO!”字符串。图5-4-2基于Zstack的无线组网实验截图实验5.5 基于Zstack的无线数据(温湿度)传输实验一、实验目的1、学习TI ZStack2007协议栈内容,掌握CC2530模块无线组网原理及过程。学习基于Zstack协议栈的无线传感器网络数据传输方法;2、使用IAR开发环境设计程序,ZStack-2.3.0-1.4.0协议栈源码例程SampleApp工程基础上,实现无线组网及通讯。二、实验原理1、硬件原理温湿度传感器的硬件原理图如前所述。2、无线数据(温湿度)传输关键代码分析.void SampleApp_SendPeriodicMessage

53、( void )函数是终端温湿度采集节点要完成的功能,通过上面对周期事件的分析,可以知道这个函数是会被周期调用的,在这里面完成温湿度的采集工作,再通过AF_DataRequest()将采集值周期发送给协调器;.SampleApp_ProcessEvent()函数为应用层事件处理函数,当接收到网络数据(即发生AF_INCOMING_MSG_CMD事件)时,会调用SampleApp_MessageMSGCB(MSGpkt );处理函数,SampleApp_MessageMSGCB( MSGpkt );处理函数是协调器要完成的工作,对终端温湿度采集节点发过来的数据进行格式转换后发给串口终端。void

54、 SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )uint16 flashTime;unsigned char *buf;switch ( pkt-clusterId )case SAMPLEAPP_PERIODIC_CLUSTERID:buf = pkt-cmd.Data;HalUARTWrite(0,rnTemp:, 7);HalUARTWrite(0, buf, 7);HalUARTWrite(0, Humi:, 10);HalUARTWrite(0, buf+7, 7);break;case SAMPLEAPP_FLASH_CLUSTERID:flashTime = BUILD_UINT16(pkt-cmd.Data1,pkt-cmd.Data2 );HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );break;三、实验步骤1、使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开ZIEBEE模块开关供电;2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串

温馨提示

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

评论

0/150

提交评论