无线控制网络综合实验实验报告.docx
- 文档编号:28077113
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:29
- 大小:31.32KB
无线控制网络综合实验实验报告.docx
《无线控制网络综合实验实验报告.docx》由会员分享,可在线阅读,更多相关《无线控制网络综合实验实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
无线控制网络综合实验实验报告
无线控制网络综合实验
实验报告
姓名:
学号:
分组编号:
小组成员:
指导老师:
2016年3月
实验3.1LED灯控制实验
一、实验目的
1、熟悉UP-CUPIOT-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-1LED硬件原理图
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操作。
程序主函数如下。
voidmain(void){
Initial();//调用初始化函数,初始化P1.0和P1.1口,包括对寄存
//器P1SEL和P1DIR的操作
LED1=0;//LED1点亮
LED2=0;//LED2点亮
while
(1){
LED2=!
LED2;//LED2闪烁
Delay(50000);
}
}
三、实验步骤
1、调整硬件:
使用配套USB线连接PC机和UP-CUPIOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电,并使用CCD_SETKEY选择要使用的Zigbee模块;
2、创建工程:
打开IAREmbeddedWorkbenchforMCS-51嵌入式开发环境,按下列步骤建立新工程;
(1).选择file→new→Workspace新建一个工作空间;
(2).选择Project→GreateNewProject...弹出图3-1-3建立新工程对话框,然后确认Toolchain栏已经选择8051,在Projecttemplates:
栏选择Emptyproject,点击下方OK按钮;
图3-1-3建立新工程
(3).选择工程的保存位置,如图3-1-4;
图3-1-4保存工程
(4).保存Workspace工作空间并选择保存位置,如图3-1-5;
图3-1-5保存Workspace
3、配置工程选项
按照《物联网综合实验系统实验指导书V1.3》的说明对工程进行配置,其中部分配置的说明如下:
(1).Codemodel和Datamodel可以调节程序寻址范围的大小,要根据实际程序的大小进行调节;
(2).Stack/Heap标签:
用于调整堆栈的大小;
(3).Linker选项,Output标签:
用于输出编译生成的文件,用于下载到芯片运行,可以输出.hex、.bin或.txt等多种格式;
(4).Debugger:
用于选择软件调试的方式和使用的仿真器类型。
4、新建和添加程序源文件
使用工具栏新建一个空的程序文本文件,保存为main.c,在工程名上点右键,在弹出的快捷菜单中选择Add→AddFile…,弹出文件打开对话框,选择需要的文件点击添加即可将文件添加到工程。
至此,一个可用的工程模板就创建好了,可以将该工程保存一份便于以后直接使用。
4、编写编译和链接程序
根据需求编写或添加程序,选择Project→Make或直接按F7键编译和连接工程。
5、程序下载和调试
(1)、安装仿真器驱动:
根据《物联网综合实验系统实验指导书V1.3》的说明安装好仿真器的驱动程序;
(2)、调试和运行:
选择菜单Project→Debug或按快捷键CTRL+D进入调试状态,调试状态可以进行单步运行、查看变量、设置断点等操作,方便调试程序;
现在程序已经下载到了CC2530中了,退出DEBUG模式后按一下复位按键程序就开始全速执行了。
调试界面如图3-1-6所示。
图3-1-6软件调试界面
四、实验结果
程序全速运行时可以看到LED1保持亮的状态,而LED2在不断闪烁。
实验3.2Timer1控制实验
一、实验目的
1、练习和巩固嵌入式开发环境IAR及CC2530通用IO口的使用方法;
2、学习和掌握CC2530的Timer1定时器的使用。
二、实验原理
1、硬件原理
用到的LED控制电路与实验3.1LED控制实验相同,同时使用了CC2530的内部外设定时器1。
CC2530内部有一个16为的Timer1,其主要特性如下:
①.具有3个捕获/比较通道;
②.支持上升沿、下降沿或任意边沿输入捕获模式;
③.比较模式支持置位、清除或反转外部输出;
④.三种计数模式:
⑤.输入时钟支持1,8,32或128预分频;
⑥.每个捕获/比较和计数结束都能产生中断请求;
⑦.DMA触发功能。
Tmer1包含的寄存器有:
图3-2-1Timer1的相关寄存器
2、软件原理
软件主函数如下:
初始化函数Initial();主要初始化了IO引脚和Timer1的T1CTL寄存器。
然后采用软件轮询IRCON的方式判断定时器是否溢出,如果溢出则改变标志TempFlag的值,进而改变LED的状态。
voidmain(){
Initial();//调用初始化函数
LED1=0;//点亮
LED1while
(1){
if(IRCON>0){
IRCON=0;//清除溢出标志
TempFlag=!
TempFlag;
}
if(TempFlag){
LED2=LED1;
LED1=!
LED1;
Delay(6000);
}
}
}
三、实验步骤
1、使用配套USB线连接PC机和UP-CUPIOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、启动IAR开发环境,新建和配置工程,将\exp\Basic\Exp2实验工程中代码拷贝到新建工程中;
4、在IAR开发环境中编译、运行、调试程序。
四、实验结果
可以看到LED1和LED2轮流闪烁一段时间,然后静止相同时间,然后又开始闪烁,如此循环,实验调试界面如下图。
实验3.7模拟电压AD转换实验
一、实验目的
1、学习和掌握CC2530内部ADC的使用和调试方法;
2、掌握CC2530的USART串口的使用方法,并会使用PC机的串口调试软件。
二、实验原理
1、硬件原理
本实验用到了CC2530的内部ADC和USART,ADC的控制寄存器如图3-7-1,它有3个控制寄存器:
ADCCON1、ADCCON2和ADCCON3。
图3-7-1ADC控制寄存器
USART的控制寄存器如图3-7-2所示,具体功能见CC2530的User'sGuide。
图3-7-2USART寄存器列表
2、软件原理
通过InitUart();和InitialAD();函数分别对USART和ADC进行初始化,ADC转换完毕后可以在ADCL和ADCH寄存器中读到转换后的值,使用prints(typedata)函数将数据发送到串口。
三、实验步骤
1、使用配套USB线连接PC机和UP-CUPIOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;
4、启动IAR开发环境,新建工程,将\exp\Basic\Exp7实验工程中代码拷贝到新建工程中;
5、在IAR开发环境中编译、运行、调试程序;
6、由于PC机自带的超级终端不能显示输入的字符(也许是我们不会),所以我们安装了一个串口调试助手软件用于串口通讯。
将串口调试助手设置为串口波特率57600、8位、无奇偶校验,无硬件流模式,即可在助手中收到模块传递过来的模拟电压经过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-CUPIOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;
4、启动IAR开发环境,新建工程,将\exp\Basic\Exp9实验工程中代码拷贝到新建工程中;
5、在IAR开发环境中编译、运行、调试程序;
6、使用串口调试助手(注意:
字符串必须以回车键结束或输入字符串长度超过30个字符,才会显示)连接串口,设置串口波特率57600、8位、无奇偶校验,无硬件流模式,当向串口调试助手的数据发送去输入数据输入回车结束符时,将在出口调试助手的接受去看到串口输入的数据。
四、实验结果
可以看到,当发送低于30个字符的数据加回车时,将在接收窗口收到发出的数据。
当发送数据大于30时,多余的部分将被抛弃,只返回了前30个字符。
实验结果如图3-9-1所示。
图3-9-1USART收发实验实验结果
五、思考发现
这里USART的中断服务函数每次只能接收一个字节数据,并将其暂存到了temp中,在主函数中在对这个字节进行具体操作。
也就是说,如果主函数没来得及操作完串口就收到了下一个字节的数据,这时新收到的一个字节数据将覆盖掉上一次暂存到temp中的一字节数据,造成数据丢失。
实际测试中在receive_buf[counter++]=temp;语句对temp进行操作前加一段延时,真的造成了数据的丢失,丢失规律为每隔1个字符就丢失特定个字符。
实验3-10串口控制LED实验
一、实验目的
1、练习和巩固CC2530串口的使用,并将其与IO口控制相结合。
二、实验原理
1、硬件原理
LED和USART相关的原理图和寄存器原理如前所述。
2、软件原理
(1)、首先同样使用InitUart();和InitLed();函数初始化串口和LED;
(2)、将CC2530串口设置为接收模式,收到数据后在中断服务函数中将其存到temp中,并在主函数中将收到的整个数据存到receive_buf[]中,修改标志,然后判断收到的数据指示的操作并控制LED执行相应的操作。
三、实验步骤
1、使用配套USB线连接PC机和UP-CUPIOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;
4、启动IAR开发环境,新建工程,将\exp\Basic\Exp10实验工程中代码拷贝到新建工程中;
5、在IAR开发环境中编译、运行、调试程序;
6、使用串口调试助手连接串口,设置串口波特率57600、8位、无奇偶校验,无硬件流模式,当向串口输入相应数据格式的数据时,即可控制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、Timer1和USART相关的原理图和寄存器原理如前所述。
2、软件原理
(1)、主函数中先调用InitUart();InitLed();和InitT1();三个函数初始化USART、LED和Timer1;
(2)、串口中断函数用来判断收到的数据是否为s起始地,是则将收到的前十个数据暂存到timeSet[]中,然后调用voidsetTimeTemp(char*p)函数设置时间;
(3)、定时器中断函数用来产生指定时间的定时,当产生30000次中断(即定时器溢出30000次)时,改变变量的值和LED的状态,并在主函数中刷新时间,然后将新时间通过串口发送出去。
三、实验步骤
1、使用配套USB线连接PC机和UP-CUPIOT-6410-II型设备,设备上电,确保打开ZIEBEE模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、启动IAR开发环境,新建工程,将\exp\Basic\Exp11实验工程中代码拷贝到新建工程中;
4、在IAR开发环境中编译、运行、调试程序;
5、使用串口调试助手连接串口,设置串口波特率57600、8位、无奇偶校验位、无硬件流模式,运行程序,即可看到模拟时间的计数。
当向串口输入相应格式的数据时,即可设置时间:
s+12+50+30设置时间为12时50分30秒。
四、实验结果
上电后可以在串口调试助手中收到实时的时间显示,通过发送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共用一个中断向量,所以需要通过查询中断标志寄存器判断具体哪个引脚触发了中断。
图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口的中断服务函数中向串口输出产生中断信息,同时控制LED1每中断一次改变一次状态(通过对中断次数计数器int_counter对2取余得到0或1)。
退出中断服务函数前要软件清除相关标志位,否则会再次重复误触发中断。
三、实验步骤
1、使用配套USB线连接PC机和UP-CUPIOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;
4、启动IAR开发环境,新建工程,将\exp\Sensor\Exp1实验工程中代码拷贝到新建工程中;
5、在IAR开发环境中编译、运行、调试程序;
6、使用串口调试助手,将调试助手设置为串口波特率57600、8位、无奇偶校验、无硬件流模式。
四、实验结果
当红外传感器监测到有效范围内的物体移动时,即可在助手收到字符串“IRDAinterrupt!
”,且Zigbee模块上的LED状态改变一次。
实验结果如图4-1-4所示。
图4-1-4热释红外传感器实验结果
实验4-6温湿度传感器实验
一、实验目的
1、学习和掌握温湿度传感器的原理和使用方法;
2、了解IIC通信协议,学会使用IO口模拟IIC通信时序。
二、实验原理
1、硬件原理
(1)、用到的LED、USART和IO口相关的原理图和寄存器如前所述。
(2)、温湿度传感器原理图如图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-CUPIOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上;
4、将系统配套温湿度传感器连接到Zigbee模块的主板上,连接A/D排针端,不要连错;
5、启动IAR开发环境,新建工程,将\exp\Sensor\Exp6实验工程中代码拷贝到新建工程中;
6、在IAR开发环境中编译、运行、调试程序;
7、使用串口调试助手,将助手设置为串口波特率57600、8位、无奇偶校验、无硬件流模式,运行程序观察串口数据输出。
四、实验结果
可以在串口调试助手窗口看到收到的温湿度信息,向温湿度传感器哈气,会看到温度和湿度信息都有所升高。
实验结果如图4-6-2所示。
图4-6-2温湿度传感器实验结果
实验5.1点对点无线通讯实验
一、实验目的
1、了解2.4GHz协议和Zigbee相关知识;
2、学习和掌握使用CC2530进行点对点的无线通讯。
二、实验原理
本实验将控制一个Zigbee模块箱另一Zigbee模块不断发送数据,另一模块在收到数据后将改变LED1和LED2的状态。
1、硬件原理
LED、USART相关硬件原理图和寄存器如前所述。
图5-1-1为CC2530的Zigbee天线,U2为平衡滤波器,J3接Zigbee天线。
图5-1-1CC2530Zigbee天线原理图
2、软件原理
(1)、关键函数分析:
①.射频初始化函数uint8halRfInit(void)
功能描述:
zigbee通信设置,自动应答有效,设置输出功率0dbm,Rx设置,接收中断有效。
参数描述:
无
返回:
配置成功返回SUCCESS
②.发送数据包函数uint8basicRfSendPacket(uint16destAddr,uint8*pPayload,uint8length)
功能描述:
发送包函数。
入口参数:
destAddr目标网络短地址
pPayload发送数据包头指针
length包的大小
出口参数:
无
返回值:
成功返回SUCCESS
失败返回FAILED
③.接收数据函数uint8basicRfReceive(uint8*pRxData,uint8len,int16*pRssi)功能描述:
从接收缓存中拷贝出最近接收到的包。
参数:
pRxData接收数据包头指针
len接收包的大小
返回:
实际接收的数据字节数
(2)、软件需要编译两次下载到两个不同的Zigbee模块中,一个为发送端,另一个为接收端。
两个软件的选择通过MODE_SEND宏定义来选择。
三、实验步骤
1、使用配套USB线连接PC机和UP-CUPIOT-6410-II型设备,设备上电,确保打开ZIEBEE模块开关供电;
2、使用CCD_SETKEY按键选择Zigbee仿真器要连接的Zigbee设备模块(根据LED指示灯判断);
3、打开物联网无线传感网络部分\exp\zigbee\点对点无线通信\ide\srf05_cc2530\iar里的per_test.eww工程;
4、在IAR开发环境中编译、运行、调试程序;
5、通讯测试:
依次打开2个分别烧写入发送和接收的Zigbee模块,两个模块的LED1和LED2快速闪烁8次后开始通讯,接着发送器的LED1和LED2交替闪烁,接收器的LED1接收到一次数据闪烁一次,LED2熄灭。
四、实验结果
模块上电后,两个模块的LED1和LED2快速闪烁8次后开始通讯,接着发送器的LED1和LED2交替闪烁,接收器的LED1接收到一次数据闪烁一次,LED2熄灭。
图5-1-2点对点无线通讯实验截图
实验5.2点对多点无线通讯实验
一、实验目的
1、进一步熟悉和掌握CC2530Zigbee的使用;
2、学习和掌握使用CC2530的Zigbee实现点对多点的无线通讯。
二、实验原理
1、FDMA(频分多址)简介:
无线通讯与有线连接在诸多重要环节上完全不同,这些环节中的异同导致了他们之间的通信质量的差异:
①.无线链路是通过相同的传输媒介——空气来传播无线电信号;
②.误码率比常规有线系统高几个数量级。
由于存在上述差异,RF链路的可靠性比有线链路低;
③.为了实现在同一范围内多点间通讯,必须考虑防止数据包在空气中的传输时相互碰撞,为了建立可靠的无线传输通路,必须采用各种方法。
例如TDMA/FDMA/CSMA等都是无线通讯中常用的办法。
FDMA是数据通信中的一种技术,即不同的用户分配在时隙相同而频率不同的信道上。
按照这种技术,把在频分多路传输系统中集中控制的频段根据要求分配给用户。
同固定分配系统相比,频分多址使通道容量可根据要求动态地进行交换。
在FDMA系统中,分配给用户一个信道,即一对频谱,一个频谱用作前向信道即基站向移动台方向的信道,另一个则用作反向信道即移动台向基站方向的信道。
这种通信系统的基站必须同时发射和接收多个不同频率的信号,任意两个移动用户之间进行通信都必须经过基站的中转,因而必须同时占用2个信道(2对频谱)才能实现双工通信。
以往的模拟通信系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 控制 网络综合 实验 报告