24G各信道信号强度测试实验.docx
- 文档编号:28284279
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:19
- 大小:56.53KB
24G各信道信号强度测试实验.docx
《24G各信道信号强度测试实验.docx》由会员分享,可在线阅读,更多相关《24G各信道信号强度测试实验.docx(19页珍藏版)》请在冰豆网上搜索。
24G各信道信号强度测试实验
摘要
本实验主要是在学会了配置CC2530RF功能基础上,掌握分析2.4G频段信道11-26各个信道的信号强度。
然后通过LCD显示测试结果,结果的显示分为两个部分,一部分是通过16个矩形条的形式同时显示各个信道中的信号强度,16个矩形条从左至右依次代表信道11到信道26的RSSI值,其中矩形越高,表示该信道的RSSI值越强。
另一个是通过按键可以切换显示(LCD的左上角)不同信道具体的RSSI值。
测试中,矩形条高度的变化是完成一次测试就改变一次。
而具体的显示RSSI值是每个信道抽取8个值后再显示。
其中扫描16个信道的间隔为2000us。
其中LED1为工作指示灯,当工作不正常时,LED2将为亮状态。
关键词:
CC2530RF无线通信2.4G信道信号监测
前言
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
它是计算机的一种应用形式,通常指埋藏在宿主设备中的微处理机系统,此类计算机一般不被设备使用者在意,亦称埋藏式计算机,典型机种如微控制器、微处理器和DSP等。
嵌入式技术是将计算机作为一个信息处理部件,嵌入到应用系统中的一种技术,也就是说,它将软件固化集成到硬件系统中,将硬件系统与软件系统一体化。
嵌入式具有软件代码小、高度自动化和响应速度快等特点,因而进入21世纪后其应用越来越广泛,例如,各种家用电器如电冰箱、自动洗衣机、数字点电视机、数码相机等广泛应用这种技术。
本设计是嵌入式应用里比较简单的一个实现,是针对嵌入式开发板CC2530的一个模块进行构建和设计的,要实现的是两个CC2530间的RF的无线通信,并且要对各个信道信号进行监测,嵌入式开发是现阶段,现世界比较流行的开发模式。
一嵌入式系统
1.1嵌入式系统概念:
以应用为中心,以计算机结束为基础,软件硬件课裁剪,适用于不同应用场合对功能,成本,体积,功耗严格要求的专用计算机系。
1.2嵌入式系统的特点
硬件方面:
稳定性,表现在对元器件的选择、接插件的质量要求、电源的稳定性等方面;
低功耗,一方面处于省电,另一方面出于散热考虑;
体积受限,这是被嵌入的对象系统的要求;
看门狗电路,系统不受干涉长期运行的需要;
成本控制严格,够用即可;
软件方面:
实时性,在早期很重要,近来有所模糊;
可裁减性;
精简性,系统代码一般都固化在ROM中;
人机界面要求不高;
1.3嵌入式系统的基本组成
软件部分:
应用软件
中间件,API
嵌入式操作系统
硬件部分:
外围硬件设备
嵌入式处理器
1.4嵌入式操作系统与微机操作系统类似的功能:
任务调度
进程间通信
文件管理
中断处理
存储器管理
1.5当前流行嵌入式操作系统
PalmOS
WindowsCE、
Linux(uCLinux)
RTLinux
uC/OSII
其它商业OS:
QNX、VxWorks等
1.5.1PalmOS
PalmOS是一套专门为掌上电脑开发的OS。
在编写程序时,PalmOS充分考虑了掌上电脑内存相对较小的情况,因此它只占有非常小的内存PalmOS使掌上电脑与PC机上的信息实现同步,把台式同的功能扩展到了掌上电脑。
1.5.2WindowsCE
WindowsCE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是一个基于掌上型电脑类的电子设备的操作系统WindowsCE不仅继承了传统的Windows图形界面,并且在WindowsCE平台上可以使用Windows95/98/2000上的编程工具(如VisualBasic、VisualC++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。
1.5.3Linux
Linux是最为流行的一款开放源代码的操作系统,资源丰富,而且免费目前正在开发的嵌入式系统中,70%以上的项目选择Linux作为嵌入式操作系统。
Linux现已成为嵌入式操作的理想选择ucLinux不带MMU对linux有经过实时性改造的RTLinux0.4Uc/OSII1简单易学、源码公开,核心代码5500行左右可移植性强,只有与微处理器相关的极少数文件用汇编可抢占任务调度,真正意义上的实时系统稳定可靠。
1.5.4其他操作系统
1.VxWorksWindRiver的产品,市场占有率最高的商用嵌入式操作系统可靠性极高;
2.QNX极小的实时可扩充内核(12KB),仅提供四种服务(进程调度、进程间通信、底层 网络通信、中断处理)运行速度极快,可将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。
1.6嵌入式系统开发环境和特点
宿主机:
开发机器,使用通用操作系统,运行编辑、编译、调试等软件工具
目标机:
目标程序运行的硬件平台,使用嵌入式操作系统或者没有操作系统
交叉编译:
在宿主机上运行针对目标机的编译工具,编译生成只能在目标机上运行目标的文件。
微内核、模块化、可方便裁减实时性,尤其对于控制系统强大的网络功能稳定性强、不依赖于交互操作代码固化可以执行好,适应多种体系结构。
二CC2530RF模块以及信号信道分配模式
1RF是CC2530的设射频模块
2无线信道的分配IEEE802.15.4规范的物理层定义了三个载波频段用于收发数据:
868~868.6MHz、902~
3928MHz和2400~2483.5MHz。
在这三个频段上发送数据使用的速率、信号处理过程以及调
4制方式等方面都存在着一定的差异,其中2400MHz频段的数据传输速率为250kbit/s,915
5MHz、868MHz分别为40kbit/s和20kbit/s。
6IEEE802.15.4规范定义了27个物理信道,信道编号从0至26,每个具体的信道对应着
7一个中心频率,这27个物理信道覆盖了以上3个不同的频段。
不同的频段所对应的宽度不同,
8标准规定868MHz频段定义了1个信道(0号信道);915MHz频段定义了10个信道(1~10号信
9道);2400MHz频段定义了16个信道(11~26号信道)。
这些信道的中心频率定义如下:
10F=868.3MHzk=0
11F=906+2(k-1)MHzk=1,2,…,10
12F=2405+5(k-11)MHzk=11,12,…,26
13式中:
k为信道编号,F为信道对应的中心频率。
14通常,ZigBee硬件设备不能同时兼容两个工作频段,在选择时,应符合当地无线电管理委
15员会的规定。
由于868~868.6MHz频段主要用于欧洲,902~928MHz频段用于北美,而2400~
162483.5MHz频段可以用于全球,因此在中国所采用的都是2400MHz的工作频段。
三设计流程
3.1CC2530模块进行简单的点到点无线通信。
3.2设计内容:
该设计将向用户演示两个1.装有IAR的PC机一台;
2.2530仿真器,usb线(A型转B型);3.无线节点模块两块,带LCD的智能主板两块,2.4G天线两根。
3.3设计原理及说明:
本设计主要是学习怎么配置CC2530RF功能。
本设计主要分为3大部分,第一部分为初始化与RF相关的信息;第二部分为发送数据和接收数据;最后为选择模块功能函数。
其中模块功能的选择是通过开发板上的按键来选择的,其中按键功能分配如下:
SW1---开始测试(进入功能选择菜单)
SW2---设置模块为接收功能(Light)
SW3---设置模块为发送功能(Switch)
SW4---发送模块发送命令按键
当发送模块按下SW4时,将发射一个控制命令,接收模块在接收到该命令后,将控制LDE1的亮或者灭。
其中LED6为工作指示灯,当工作不正常时,LED5将为亮状态。
3.4设计步骤:
1、给智能主板供电(USB外接电源或2节干电池)。
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.5程序流程图
四源程序清单
#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];//发送数据数组164
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(25,6,"OURS-CC2530");//在LCD上显示相应的文字
GUI_PutString5_7(10,22,"DeviceMode:
");
GUI_PutString5_7(10,35,"SW2->Light");
GUI_PutString5_7(10,48,"SW3->Switch");
LCM_Refresh();
do
{
key=halkeycmd();
}while(key==HAL_BUTTON_1);//等待模式选择
if(key==HAL_BUTTON_2)//接收模式
{
GUI_ClearScreen();
GUI_PutString5_7(25,6,"OURS-CC2530");//在LCD上显示相应的文字
GUI_PutString5_7(10,22,"DeviceMode:
");
GUI_PutString5_7(10,35,"Light");
LCM_Refresh();
returnLIGHT;
}
if(key==HAL_BUTTON_3)//发送模式
{
GUI_ClearScreen();
GUI_PutString5_7(25,6,"OURS-CC2530");//在LCD上显示相应的文字
GUI_PutString5_7(10,22,"DeviceMode:
");
GUI_PutString5_7(10,35,"Switch");
GUI_PutString5_7(10,48,"SW4SendCommand");
LCM_Refresh();
returnSWITCH;
}
returnNONE;
}
*函数名称:
main
*功能描述:
通过不同的按键,设置模块的应用角色(接收模式或发送模式)。
通过SW4发送控制命令
*参数:
无
*返回值:
无
voidmain(void)
{
uint8appMode=NONE;//应用职责(角色)初始化
basicRfConfig.panId=PAN_ID;//配置PANID2011
basicRfConfig.channel=RF_CHANNEL;//设置信道25
basicRfConfig.ackRequest=TRUE;//需要ACK请求
#ifdefSECURITY_CCM//编译选项(未选)
basicRfConfig.securityKey=key;//安全密钥
#endif
halboardinit();//初始化板的外围设备(包括LEDLCD和按键等)
if(halRfInit()==FAILED)//初始化RF
{
ctrPCA9554FLASHLED(5);//RF初始化不成功,则所有的LED5闪烁
}
ctrPCA9554FLASHLED(6);//点亮LED6,以指示设备正常运行
GUI_PutString5_7(10,22,"SimpleRFtest");//在LCD上显示相应的文字
GUI_PutString5_7(10,35,"SW1->Start");
LCM_Refresh();
while(halkeycmd()!
=HAL_BUTTON_1);//等待按键1按下,进入下一级菜单
halMcuWaitMs(350);//延时350MS
appMode=appSelectMode();//设置应用职责(角色)同时在
LCD上显示相应的设置信息
if(appMode==SWITCH)//发送模式
{
ctrPCA9554LED(2,1);
appSwitch();//执行发送模式功能
}
elseif(appMode==LIGHT)//接收模式
{
ctrPCA9554LED(3,1);
appLight();//执行接收模式功能
}
}
五测试
1.802.15.4—2.4G各信道信号强度测试
2测试流程
3设备:
1.装有IAR的PC机一台;
2.2530仿真器,usb线(A型转B型);
3.无线节点模块1块,带LCD的智能主板1块,2.4G天线1根。
4设计原理及说明:
本设计主要是在学会了配置CC2530RF功能基础上,掌握分析2.4G频段信道11-26各个信道的信号强度。
然后通过LCD显示测试结果,结果的显示分为两个部分,一部分是通过16个矩形条的形式同时显示各个信道中的信号强度,16个矩形条从左至右依次代表信道11到信道26的RSSI值,其中矩形越高,表示该信道的RSSI值越强。
另一个是通过按键可以切换显示(LCD的左上角)不同信道具体的RSSI值。
其中按键功能分配如下:
SW1---开始测试
SW2---显示RSSI值的信道加
SW3---显示RSSI值的信道减
测试中,矩形条高度的变化是完成一次测试就改变一次。
而具体的显示RSSI值是每个信道抽取8个值后再显示。
其中扫描16个信道的间隔为2000us。
其中LED1为工作指示灯,当工作不正常时,LED2将为亮状态。
5设计步骤:
1、给智能主板供电(USB外接电源或2节干电池)。
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]贾志平.嵌入式系统原理与接口技术[M].北京:
清华大学出版社,2004:
221
[2]田泽.嵌入式系统开发与应用教程[M].北京:
北京航空航天大学出版社,2005:
58-63
[3]沈振元、聂志泉、赵雪符.无线通信原理.西安电子科技出版社:
128
[4]邱玲、朱近康、孙葆根、张磊.嵌入式开发与编程.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 24 信道 信号 强度 测试 实验