Zigbee无线节点RF功能配置及信号测试例.docx
- 文档编号:5683336
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:20
- 大小:1.31MB
Zigbee无线节点RF功能配置及信号测试例.docx
《Zigbee无线节点RF功能配置及信号测试例.docx》由会员分享,可在线阅读,更多相关《Zigbee无线节点RF功能配置及信号测试例.docx(20页珍藏版)》请在冰豆网上搜索。
Zigbee无线节点RF功能配置及信号测试例
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
摘要
随着后PC机时代的到来,计算机的发展已经从以PC机为中心转向了以嵌入式系统为中心的方向:
嵌入式系统的迅猛发展和IA(信息电器)的不断成熟使得其应用越来越广泛。
其中,嵌入式系统与网络的结合也是当今发展的一大趋势,而嵌入式网络技术的产生正好迎合了这个趋势。
由于嵌入式系统的专用性强、体积小且价格低廉,因此嵌入式设备已经开始应用于智能家居系统、工业智能化从站系统、LED网络控制显示屏系统、网络安全加密系统等各个网络相关领域。
本设计是使用两个CC2530模块利用其板载无线天线,测试在不同环境或不同通信距离内,测试不同环境或不同通信距离的误码率及信号强度,并通过LCD显示数据包丢失率、信号强度RSSI及收到的数据包个数。
关键词:
CC2530无线通信RSSI丢包率
前言
我国的无线通信产业通过短短几十年的发展,已经发展到第三代和第四代移动通信技术,多种无线通信技术都得到了广泛的应用是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式,由于无线通信技术具有成本廉价、建设工程周期短、适应性好、扩展性好、设备维护上更容易实现等诸多优点,所以近些年来是信息通信领域中,发展最快、应用最广的通信技术。
本课设设计一个简单无线通信的应用,测试不同环境或不同通信距离的误码率及信号强度,并通过LCD显示数据包丢失率、信号强度RSSI及收到的数据包个数。
1.基本原理
1.1无线通信概述
通信按传输媒体分为无线通信和有线通信两大类。
移动通信、卫星、微波、无线接入等都是无线通信,无线通信信号以电磁波的形式通过空间传送,具有信道不可预见性大,使用灵活、方便等特点。
无线通信是通过无线信道来实现的,所以无线信道质量的好坏直接影响通信的质量。
新一代的个人通信对通信时的传输速率和误码率有很高的要求,因此对于无线信道的研究有助于提高传输速率并降低误码率。
无线信道是一个充满复杂干扰的信道。
由环境中的各种障碍物所引起的信号多径传播是其主要特点之一。
同一发射机发射的电磁波向各个方向辐射,不同的波遇到不同的障碍物发生反射折射以及散射衍射等作用会使得波束到达接收机时的时间、幅度和相位均发生延迟与畸变,比如若发射一个窄脉冲经过无线信道后将在接收端收到一连串幅度和相位均不同的脉冲串,如果在这个期间内连续发射多个脉冲,将在接收端产生混叠发生误码的几率大大提高。
另一个特点是多普勒效应。
无线通信中的终端基本处于移动的状态,这就导致了电磁波的多普勒效应。
由于到达接收机的杂散波的方向相位均不同所引起的多普勒效应也不尽相同,更加恶化了接收信号。
1.2基本原理
本实验主要是学习怎么配置CC2530RF功能。
配置CC2530RF功能,实现两个CC2530模块的点到点无线通信功能,通过按键控制相应LED灯显示或通过LCD显示;测试不同环境或不同通信距离的误码率及信号强度,并通过LCD显示数据包丢失率、信号强度RSSI及收到的数据包个数。
配置CC2530RF功能主要分为3大部分,第一部分为初始化与RF相关的信息;第二部分为发送数据和接收数据;后为选择模块功能函数。
其中模块功能的选择是通过开发板上的按键来选择的,其中按键功能分配如下:
SW1---开始测试(进入功能选择菜单)
SW2---设置模块为接收功能(Light)
SW3---设置模块为发送功能(Switch)
SW4---发送模块发送命令按键
当发送模块按下SW4时,将发射一个控制命令,接收模块在接收到该命令后将
控制LED1的亮或者灭。
其中LED6为工作指示灯,当工作不正常时,LED5将为亮状态。
在学会了配置CC2530RF功能基础上,一个简单无线通信的应用可以用来测试不同环境或不同通信距离的误码率以及信号的强弱。
完成本实验需要两个模块,一个设置为发送模块,一个设置为接收模块;其中发送模块主要是通过板上按键设置不同的发送参数,然后发送数剧包接收模块接收发送模块的数据包,然后计算误码率和信号的强度。
其中按键功能分配如下:
SW1---开始测试(进入功能选择菜单)
SW2---设置功能加
SW3---设置功能减
SW4---确定按钮
在每完成一个参数设置或选择,都是通过SW4来确定,然后进入下一个参数设置,其中发送模式下的发送开始和停止也是通过SW4控制的。
在测试中,接收模块可以通过SW4来复位测试结果。
发送模块需设置的参数有:
1、信道选择,802.15.4中2.4G频段信道有16个。
为信道11-26,对应的频率为2405MHz到2480MHz。
通过SW2和SW3可以对16个信道进行选择。
(注意,测试时要与接收模块选择相同的信道)。
2、发射功率设置,CC2530提供的发送功率有-3dBm、0dBm和4dBm三种,通过SW2和SW3可以选择发送模块的不同发射功率。
3、发送数据包数量设置,程序中提供的数据包数量有:
1000、10000、100000和1000000四种,推荐测试时,选择1000或10000即可。
其中也是通过SW2和SW3来选择的。
4、发送速度设置,发送速度即1s中发送数据包的个数。
程序中提供5/S、10/S、20/S和50/S四种速度。
通过SW2和SW3来选择。
接收模块只需要设置和发送模块相同的信道即可。
接收模块测量时显示的信息有:
1.数据包丢失率(显示为x/1000)。
2.信号强度(RSSI)。
3.收到的数据包个数。
其中LED1为工作指示灯,当工作不正常时,LED2将为亮状态。
最后掌握分析2.4G频段信道11-26各个信道的信号强度。
然后通过LCD显示测试结果,结果的显示分为两个部分,一部分是通过16个矩形条的形式同时显示各个信道中的信号强度,16个矩形条从左至右依次代表信道11到信道26的RSSI值,其中矩形越高,表示该信道的RSSI值越强。
另一个是通过按键可以切换显示(LCD的左上角)不同信道具体的RSSI值。
其中按键功能分配如下:
SW1---开始测试SW2---显示RSSI值的信道加SW3---显示RSSI值的信道减测试中,矩形条高度的变化是完成一次测试就改变一次。
而具体的显示RSSI值是每个信道抽取8个值后再显示。
其中扫描16个信道的间隔为2000us。
其中LED1为工作指示灯,当工作不正常时,LED2将为亮状态
1.3丢包率的测试与分析
在我们网络上形成的数据包通过途径传输到另一个数据库上面,一般通过网络传输的过程中会因为一些原因比如距离过大而产生小部分数据包被丢失,而大部分数据包被成功传输到终端数据库上。
这样就形成了一个网络丢包的过程。
而其中丢包的大小和传输数据包的大小就是网络丢包率。
比如工厂在A地买了一车货,然后运送到B地,其中因为搬运工搬运和其他原因造成这批货和在A地的所测量的数值要少一些,这个过程就是被丢失的货物,也就是网络中网络丢包,而丢失的货物和货物的总量的比值就是网络丢包率。
通常这些只是磨损消耗,属于很正常的。
网络丢包率怎样解决呢?
主要有以下几个方面。
1、物理线路故障
如果是物理线路故障所造成网络丢包现象,则说明故障是由线路供应商提供的线路引起的,需要与线路供应商联系尽快解决问题。
联系你的服务商来解决网络丢包很严重的情况。
2、设备故障
设备方面主要包括软件设置不当、网络设备接口及光纤收发器故障造成的。
这种情况会导致交换机端口处于死机状态。
那么可以将你的光纤模块更换掉,换一条新的模块替换掉。
3、网络被堵塞、拥堵
当网络不给力的时候,在通过网络传输数据,就会将网络丢包更多,一般是路由器被占用大量资源造成的。
解决方法就是这时应该showprocesscpu和showprocessmem,一般情况下发现IPinputprocess占用过多的资源。
接下来可以检查fastswitching在大流量外出端口是否被禁用,如果是,则需要重新使用。
用showinterfaces和showinterfacesswitching命令识别大量包进出的端口。
一旦确认进入端口后,打开IPaccountingontheoutgoinginterface看其特征,如果是攻击,源地址会不断变化但是目的地址不变,可以用命令“accesslist”暂时解决此类问题。
4、路由错误
网络中的路由器的路径错误也是会导致数据包不能正常传输到主机数据库上这种情况属于正常状况,它所丢失的数据也是很小的。
所以用户可以忽略这些数据丢包,而且这也是避免不了的。
2.系统分析
2.1配置CC230RF功能程序流程
2.2CC2530无线通信丢包率测试实验程序流程图
2.3802.15.4—2.4G各信道信号强度
3.详细设计
3.1配置CC2530RF功能步骤
1.给智能主板供电(USB外接电源或2节干电池)。
(建议先阅读“第二章物联网创新实验系统OURS-IOTV2-2530”相关章节)
2.将两个无线节点模块分别插入到两个带LCD的智能主板的相应位置。
3.将2.4G的天线安装在无线节点模块上。
4.将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203)。
5.将智能主板上电源开关拨至开位置。
按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。
6.使用IAR7.51打开“…\OURS_CC2530LIB\lib11(simple_RF)\IAR_files”下的simple_RF.eww文件,下载程序。
7.关掉智能主板上电源,拔下仿真器,按4、5步骤对另一个模块下载程序。
8.打开两个模块的电源,当LED1处于亮时,按下SW1进入模块功能选择。
然后一个模块按下SW2设置为接收功能(Light),此时LED3将被点亮;另一个模块按下SW3设置为发送功能(Switch),此时LED4将被点亮。
9.按下发送模块的SW4按键,接收模块的LED6将被点亮,再次按下SW4按键,LED6将被熄灭。
(注:
如果需要重新设置模块的收发功能,按复位按键。
)
3.2CC2530无线通信丢包率测试实验
1.给智能主板供电(USB外接电源或2节干电池)。
(建议先阅读“第二章物联网创新实验系统OURS-IOTV2-2530”相关章节)
2.将两个无线节点模块分别插入到两个带LCD的智能主板的相应位置。
3.将2.4G的天线安装在无线节点模块上。
4.将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203)。
5.将智能主板上电源开关拨至开位置。
按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。
6.使用IAR7.51打开“…\OURS_CC2530LIB\lib12(PERTest)\IAR_files”下的PERTest.eww文件,下载程序。
7.关掉智能主板上电源,拔下仿真器,按4、5步骤对另一个模块下载程序。
8.打开两个模块的电源,当LED1处于亮时,按下SW1进入下级菜单,按SW2和SW3对通信信道进行选择(两个模块必须设置相同的信道)。
选定后,按SW4进入下一个设置。
9.一个模块按下SW3设置为接收模式,按下SW4确定。
接收模块设置完成(此时接收模块已经处于接收待命状态)。
10.另一个模块按下SW2设置为发送模式,按下SW4确定进入下一个设置。
11.使用SW2和SW3对发送模块发射功率选择,选定后,按SW4进入下一个设置。
12.使用SW2和SW3对发送模块发射数据包数量选择,选定后,按SW4进入下一个设置。
13.使用SW2和SW3对发送模块发射速度选择,选定后,按SW4进入发送准备状态。
14.将发送和接收模块安放在不同的地方,按下发送模块的SW4开始发送数据(再次按下将停止发送)。
观察接收模块的测试结果(此时按下接收模块的SW4,将会清除测试结果)。
15.改变两个模块的位置,再次测量,观察测量结果。
注:
如果需要重新设置模块的收发功能,按复位按键。
3.3802.15.4—2.4G各信道信号强度测试步骤
1.给智能主板供电(USB外接电源或2节干电池)。
(建议先阅读“第二章物联网创新实验系统OURS-IOTV2-2530”相关章节)
2.将1个无线节点模块插入到带LCD的智能主板的相应位置。
3.将2.4G的天线安装在无线节点模块上。
4.将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203)。
5.将智能主板上电源开关拨至开位置。
按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。
6.使用IAR7.51打开“…\OURS_CC2530LIB\lib13(spectrum_analyzer)\IAR_files”下的spectrum_analyzer.eww文件,下载程序。
7.行程序,然后按SW1进入测试。
8.观察LCD的显示结果。
9.SW2(加)和SW3(减)分别查看其他信道的RSSI值。
1.
4.测试结果显示
1.802.15.4—2.4GCH12到CH26各信道信号强度
2.CC2530无线通信丢包率测试发送机接收机结果显示
5.总结
在这次课程设计中我们比较深入的学习Zigbee网络的知识,通过本次综合训练让我了解了无线传感器网络的知识,这次课设训练对以后学习嵌入式应用很有意义,让我们提前对这方面的知识有了进一步的认识。
但同时在这次课设训练过程中也当遇到了很多实际问题,不过在老师的进一步讲解之后,我们逐步认识和理解了其中的关键,而且又对所学的理论知识有所理解。
通过本次课程设计,加深了我对所学过的各种理论数据的认识和理解,并在一定程度上掌握并会运用。
我还学会了把学到的知识用于解决实际问题,培养、加强锻炼了我的动手实践能力。
更为难得的是,在这次训练过程中,屡屡碰见一些问题,在解决这些问题的过程中,不断加强了我的理解。
对于一些自己不清楚,不明白但平时又很难发现的知识点有了一次全面的巩固与复习。
最后让我知道在大学阶段,理论的学习和实践是密不可分的。
离开了实践的理论是没有任何意义可言的。
与此同时,理论是需要伴随着实践才能完善。
同时,在与同学共同解决一些问题的过程中,提高了我们的团队协作精神。
6.参考文献
[1]物联网创新实验套件实验指导书
[2]孙利民等著.无线传感器网络.清华大学出版社,2005.
[3][美]IanF.Akyildiz,MehmetCanVuran著,徐平平等译.无线传感器网络.电子工业出版社,2013.
[4][美]WilliamStallings著,王海等(译).数据与计算机通信(第9版).电子工业出版社,2011
7.致谢
在这次课程设计的撰写中,我得到了很多人的帮助。
首先我要感谢我的老师在课程设计中,对我的指导和帮助,这是我能顺利完成报告的主要原因,更重要的是老师帮我解决了很多技术上的难题,让我能把系统做得更完善。
在此期间,我不仅学到了很多新知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢我的同学,他们也帮我解决了不少我不懂得难题,同时也感谢学院为我们提供了好的课程设计
附录代码清单
#include"hal_board.h"
#include"hal_int.h"
#include"hal_mcu.h"
#include"hal_rf.h"
#include"basic_rf.h"
#include"LCD.h"
#defineRF_CHANNEL25//2.4GHzRF使用信道25
#definePAN_ID0x2011//通信PANID
#defineSWITCH_ADDR0x2530//开关模块地址
#defineLIGHT_ADDR0xBEEF//灯模块地址
#defineAPP_PAYLOAD_LENGTH1//命令长度
#defineLIGHT_TOGGLE_CMD0//命令数据
//应用状态
#defineIDLE0
#defineSEND_CMD1
//应用角色
#defineNONE0
#defineSWITCH1
#defineLIGHT2
#defineAPP_MODES2
//按键
#defineHAL_BUTTON_11
#defineHAL_BUTTON_22
#defineHAL_BUTTON_33
#defineHAL_BUTTON_44
#defineHAL_BUTTON_55
#defineHAL_BUTTON_66
staticuint8pTxData[APP_PAYLOAD_LENGTH];//发送数据数组
staticuint8pRxData[APP_PAYLOAD_LENGTH];//接收数据数组
staticbasicRfCfg_tbasicRfConfig;//RF初始化结构体
externvoidhalboardinit(void);//硬件初始化函数
externvoidctrPCA9554FLASHLED(uint8led);//IIC灯控制函数
externvoidctrPCA9554LED(uint8led,uint8operation);
externuint8halkeycmd(void);//获取按键值函数
#ifdefSECURITY_CCM//安全密钥
staticuint8key[]={
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
};
#endif
staticvoidappLight();//灯应用处理函数
staticvoidappSwitch();//开关应用处理函数
staticuint8appSelectMode(void);//应用功能选择函数
/**************************************************************************************************
*函数名称:
appLight
*功能描述:
接收模式应用函数,初始化RF一些参数,接收另一个模块发送的控制命令,然后控制相应的LED灯
*参数:
无
*返回值:
无
**************************************************************************************************/
staticvoidappLight()
{
basicRfConfig.myAddr=LIGHT_ADDR;//设置接收模块的地址
if(basicRfInit(&basicRfConfig)==FAILED)//RF初始化
{
ctrPCA9554FLASHLED(5);//RF初始化不成功,则所有的LED5闪烁
}
basicRfReceiveOn();//打开接收功能
//Mainloop
while(TRUE)
{
while(!
basicRfPacketIsReady());//准备接收数据
if(basicRfReceive(pRxData,APP_PAYLOAD_LENGTH,NULL)>0)//接收数据
{
if(pRxData[0]==LIGHT_TOGGLE_CMD)//判断命令是否正确
{
ctrPCA9554FLASHLED
(1);//关闭或打开LED1
}
}
}
}
/**************************************************************************************************
*函数名称:
appSwitch
*功能描述:
发送模式应用函数,初始化发送模式RF,通过按下SW4向另一个模块发送控制命令。
*参数:
无
*返回值:
无
**************************************************************************************************/
staticvoidappSwitch()
{
pTxData[0]=LIGHT_TOGGLE_CMD;//向发送数据中写入命令
basicRfConfig.myAddr=SWITCH_ADDR;//设置发送模块的地址
if(basicRfInit(&basicRfConfig)==FAILED)//RF初始化
{
ctrPCA9554FLASHLED(5);//RF初始化不成功,则所有的LED5闪烁
}
basicRfReceiveOff();//关闭接收功能
//Mainloop
while(TRUE)
{
if(halkeycmd()==HAL_BUTTON_4)//判断是否按下SW4
{
basicRfSendPacket(LIGHT_ADDR,pTxData,APP_PAYLOAD_LENGTH);//发送数据
halIntOff();//关闭全局中断
halIntOn();//打开中断
}
}
}
/**************************************************************************
*函数名称:
appSelectMode
*功能描述:
通过SW2或SW3选择模块的应用模式。
*参数:
无
*返回值:
LIGHT--接收模式
*SWITCH--发送模式
*NONE--不正确模式
**********************************************************************/
staticuint8appSelectMode(void)
{
uint8key;
GUI_ClearScreen();//LCD清屏
GUI_PutString5_7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Zigbee 无线 节点 RF 功能 配置 信号 测试
![提示](https://static.bdocx.com/images/bang_tan.gif)