CC2530无线通信丢包率测试.docx

上传人:b****4 文档编号:27211003 上传时间:2023-06-28 格式:DOCX 页数:22 大小:262.11KB
下载 相关 举报
CC2530无线通信丢包率测试.docx_第1页
第1页 / 共22页
CC2530无线通信丢包率测试.docx_第2页
第2页 / 共22页
CC2530无线通信丢包率测试.docx_第3页
第3页 / 共22页
CC2530无线通信丢包率测试.docx_第4页
第4页 / 共22页
CC2530无线通信丢包率测试.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

CC2530无线通信丢包率测试.docx

《CC2530无线通信丢包率测试.docx》由会员分享,可在线阅读,更多相关《CC2530无线通信丢包率测试.docx(22页珍藏版)》请在冰豆网上搜索。

CC2530无线通信丢包率测试.docx

CC2530无线通信丢包率测试

目录

一、摘要1

二、应用背景2

三、CC2530芯片概述4

3.1CC2530芯片基本介绍4

3.2CC2530芯片功能介绍4

3.3CC2530芯片引脚功能5

3.3.1电源引脚功能6

3.3.2控制线引脚6

四、原理7

4.1有关无线通信的基本概念7

4.2基本原理7

4.2.1程序流程图9

4.2.2具体步骤10

五、程序代码11

六、参考文献17

七、总结18

致谢19

一、摘要

嵌入式系统是以应用为中心,以计算机术为基础,软硬件可定制,适用于不同应用场合,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

它一般由嵌入式微处理机,外围硬件设备,嵌入式操作系统,用户应用程序4个部分组成。

用于实现对其他设备的控制,监视和管理等功能。

嵌入式系统已经广泛应用于科学研究,工业控制,军事技术,交通通信,医疗卫生,消费娱乐等领域,人们常用的手机,PDA,汽车控制系统,ATM(AutoTellerMachine),智能家电,GPS等均是嵌入式系统的典型代表。

CC2530是用于2.4-GHzIEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。

它能够以非常低的总的材料成本建立强大的网络节点。

随着3C融合进程和我国传统产业结构升级的加速,人们对设备越来越高的应用需要已经无法满足当前和未来高性能的应用与发展需求.

使用两个CC2530模块利用其板载无线天线,测试在不同环境或不同通信距离内,CC2530无线通信数据包丢失率。

关键词:

嵌入式CC2530丢包率

二、应用背景

智能家居是一个居住环境,是以住宅为平台安装有智能家居系统的居住环境,实施智能家居系统的过程就称为智能家居集成。

以住宅为平台,利用有线和无线网络平台通信技术、包括综合布线系统,安全防范系统,背景乐/广播系统,灯光窗帘控制系统,空调VRV控制系统,以及家庭影院控制系统;将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。

智能家居集成是利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设备集成。

由于智能家居采用的技术标准与协议的不同,大多数智能家居系统都采用综合布线方式,但少数系统可能并不采用综合布线技术,如电力载波,不论哪一种情况,都一定有对应的网络通信技术来完成所需的信号传输任务,因此网络通信技术是智能家居集成中关键的技术之一。

安全防范技术是智能家居系统中必不可少的技术,在小区及户内可视对讲、家庭监控、家庭防盗报警、与家庭有关的小区一卡通等领域都有广泛应用。

自动控制技术是智能家居系统中必不可少的技术,广泛应用在智能家居控制中心、

家居设备自动控制模块中,对于家庭能源的科学管理、家庭设备的日程管理都有十分重要的作用。

音视频技术是实现家庭环境舒适性、艺术性的重要技术,体现在音视频集中分配、背景音乐、家庭影院等方面。

又称智能住宅。

通俗地说,它是融合了自动化控制系统、计算机网络系统和网络通讯技术于一体的网络化智能化的家居控制系统。

智能家居将让用户有更方便的手段来管理家庭设备,比如,通过家触摸屏、无线遥控器、电话、互联网或者语音识别控制家用设备,更可以执行场景操作,使多个设备形成联动;另一方面,智能家居内的各种设备相互间可以通讯,不需要用户指挥也能根据不同的状态互动运行,从而给用户带来最大程度的高效、便利、舒适与安全。

智能家居控制的发展关键在于设计理念以及经营者的心态,市场目标客户真正需要什么东西,挣什么样的钱都要慎重考虑,如果只注重签单,不设身处地的为客户着想,不兼顾智能解决未来的发展,提供片面的智能家居解决方案,而不考虑客户的适用性,是不可取的,是急功近利的表现,这不仅降低了智能家居的应用效果,还不利于整个智能家居行业的发展。

智能家居控制系统的市场不是一般普通的商品买卖,而是一项系统性工程,它涉及到很多技术,涉及到人们生活的方方面面,智能家居控制系统的终极目标是一种理想,更是一种理念,要想智能家居控制系统有很好的发展,研发机构必须本着长远发展的心态,本着简化、实用、性价比高、适合市场的理念,虔诚研究人们的生活、习惯、精神文等需要,并把它看最高目标,运用各种技术手段实现它。

智能家居控制系统的经营商更要本着消费者至上的理念,本着从客户利益出发心态,以认真、负责、诚信的态度,真正的从客户的实际需求出发,用心服务,用心为客户做智能家居控制设计和解决方案,把工程做好,让客户花最少的钱得到最大化的实惠,才是企业发展之道,才是智能家居行业发展之道。

智能家居控制的发展关键在于设计理念以及经营者的心态,市场目标客户真正需要什么东西,挣什么样的钱都要慎重考虑,如果只注重签单,不设身处地的为客户着想,不兼顾智能解决未来的发展,提供片面的智能家居解决方案,而不考虑客户的适用性,是不可取的,是急功近利的表现,这不仅降低了智能家居的应用效果,还不利于整个智能家居行业的发展。

三、CC2530芯片概述

3.1CC2530芯片基本介绍

CC2530是一个兼容IEEE802.15.4的真正的片上系统,支持专有的802.15.4市场以及ZigBee、ZigBeePRO和ZigBeeRF4CE标准。

CC2530提供了101dB的链路质量,优秀的接收器灵敏度和健壮的抗干扰性,四种供电模式,多种闪存尺寸,以及一套广泛的外设集——包括2个USART、12位ADC和21个通用GPIO,以及更多。

除了通过优秀的RF性能、选择性和业界标准增强8051MCU内核,支持一般的低功耗无线通信,CC2530还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI,Z-Stack,或SimpliciTI)来简化开发,使你更快的获得市场。

CC2530可以用于的应用包括远程控制、消费型电子、家庭控制、计量和智能能源、楼宇自动化、医疗以及更多领域。

根据芯片内置内存的不同容量,CC2530拥有三种不同的版本:

CC2530-F32/F64/F128/F256,编号后缀分别代表了芯片具32KB,64KB,128KB或256KB的闪存。

比起第一代CC2430,CC2530提供了改进的RF性能,多达256KB的闪存以支持更大的应用,强大的地址识别和数据包处理引擎,能够很好的匹配RF前端,封装更小,IR一代电路,以及支持ZigBeePRO和ZigBeeRF4CE。

3.2CC2530芯片功能介绍

CC2530芯片具有如下主要性能:

高性能和低功耗的8051微控制器核;32-、64-或128-KB的系统内可编程闪存;8-KBRAM,具备在各种供电方式下的数据保持能力;集成符合IEEE802.15.4标准的2.4GHz的RF无线电收发机;极高的接收灵敏度和抗干扰性能;可编程的输出功率高达4.5dBm;只需一个晶振,即可满足网状网络系统的需要;在供电模式1时仅24mA的流耗4μs就能唤醒系统;在睡眠定时器运行时仅1μA的流耗;在供电模式3时仅0.4μA的流耗,外部中断能唤醒系统;硬件支持CSMA/CA功能;较宽的电压范围(2.0~3.6V);支持精确的数字化RSSI/LQI和强大的5通道DMA;具有捕获功能的32KHz睡眠定时器;具有电视监视器和温度传感器;具有8路舒服和可配置分辨率的12位ADC;集成了AES安全协处理器;带有2个支持多种串行通信协议的强大USART,以及1个符合IEEE802.15.4规范的MAC定时器,1个16位定时器和1个8位定时器;强大和灵活的开发工具。

3.3CC2530芯片引脚功能

CC2530芯片如图3.3所示,它采用6mm×6mm的QFN封装,共有40个引脚。

全部引脚可以分为I/O端口线引脚,电源线引脚和控制线引脚三类。

CC2530有21个可编程的I/O口引脚,P0、P1口是完全的8位口,P2口只有5个可使用的位。

通过软件设定一组SFR寄存器的位和字节,可使这些引脚作为通常的I/O口或作为连接ADC、计时器或USART部件的外围设备I/O口使用。

I/O口有下面的关键特性:

可设置为通常的I/O口,也可设置为外围的I/O使用;在输入时有上拉和下拉能力;全部21个I/O口引脚都具有响应外部中断源输入口。

如果需要外部中断,可对I/O口引脚产生中断,同时外部中断事件也能被用来唤醒休眠模式。

12~19脚(P0_7~P0_0):

具有4mA的输出驱动能力。

11,9脚(P1_0,P1_1):

具有20mA的驱动能力。

5~8,37~18脚(P1_7~P1_2):

具有4mA的输出驱动能力。

32~38脚(P2_4~P2_0):

具有4mA的输出驱动能力。

图3.1CC2530芯片引脚图

3.3.1电源引脚功能

AVDD1(28脚):

为模拟电路连接2.0V~3.6V的电压。

AVDD2(27脚):

为模拟电路连接2.0V~3.6V的电压。

AVDD3(24脚):

为模拟电路连接2.0V~3.6V的电压。

AVDD4(29脚):

为模拟电路连接2.0V~3.6V的电压。

AVDD5(21脚):

为模拟电路连接2.0V~3.6V的电压。

AVDD6(31脚):

为模拟电路连接2.0V~3.6V的电压。

DCOUPL(40脚):

提供1.8V的数字电源去耦电压,不使用外部电路供应。

DVDD1(39脚):

提供2.0V~3.6V的数字电源连接电压。

DVDD2(10脚):

提供2.0V~3.6V的数字电源连接电压。

3.3.2控制线引脚

RBIAS(30脚):

为参考电流提供精确的偏置电阻。

RESET_N(20脚):

复位引脚,低电平有效。

RF_N(26脚):

在RX期间向LNA输入负向射频信号。

RF_P(25脚):

在RX期间向LNA输入正向射频信号。

XOSC_Q1(22脚):

32MHz的晶振引脚1,或外部时钟输入引脚。

XOSC_Q2(23脚):

32MHz的晶振引脚2。

四、原理

4.1有关无线通信的基本概念

与有线传输相比,无线传输具有许多优点。

或许最重要的是,它更灵活。

无线信号可以从一个发射器发出到许多接收器而不需要电缆。

所有无线信号都是随电磁波通过空气传输的,电磁波是由电子部分和能量部分组成的能量波。

在无线通信中频谱包括了9khz到300000Ghz之间的频率。

每一种无线服务都与某一个无线频谱区域相关联。

无线信号也是源于沿着导体传输的电流。

电子信号从发射器到达天线,然后天线将信号作为一系列电磁波发射到空气中。

信号通过空气传播,直到它到达目标位置为止。

在目标位置,另一个天线接收信号,一个接收器将它转换回电流。

接收和发送信号都需要天线,天线分为全向天线和定向天线。

在信号的传播中由于反射、衍射和散射的影响,无线信号会沿着许多不同的路径到达其目的地,形成多径信号。

通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况下无论采用何种方法,使用何种媒质,将信息从某方准确安全传送到另方。

无线通信(Wirelesscommunication)是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式。

4.2基本原理

本设计主要是在学会了配置CC2530RF功能基础上,一个简单无线通信的应用,该设计可以用来测试不同环境或不同通信距离的误码率以及信号的强弱。

完成本设计需要两个模块,一个设置为发送模块,一个设置为接收模块;其中发送模块主要是通过板上按键设置不同的发送参数,然后发送数据包。

接收模块接收发送模块的数据包,然后计算误码率和信号的强度。

其中按键功能分配如下:

PK1---开始测试(进入功能选择菜单)

PK2---设置功能加

PK3---设置功能减

PK4---确定按钮

在每完成一个参数设置或选择,都是通过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将为亮状态。

4.2.1程序流程图

 

 

 

4.2.2具体步骤

1.给智能主板供电(USB外接电源或2节干电池)。

2、将两个无线节点模块分别插入到两个带LCD的智能主板的相应位置。

3、将2.4G的天线安装在无线节点模块上。

4、将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203)。

5、将智能主板上电源开关拨至开位置。

按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。

6、关掉智能主板上电源,拔下仿真器,按4、5步骤对另一个模块下载程序。

7、打开两个模块的电源,当LED1处于亮时,按下PK1进入下级菜单,按SPK2和PK3对通信信道进行选择(两个模块必须设置相同的信道)。

选定后,按SW4进入下一个设置。

8、一个模块按下PK3设置为接收模式,按下SW4确定。

接收模块设置完成(此时接收模块已经处于接收待命状态)。

9、另一个模块按下PK2设置为发送模式,按下SW4确定进入下一个设置。

10、使用PK2和PK3对发送模块发射功率选择,选定后,按PK4进入下一个设置。

11、使用PK2和PK3对发送模块发射数据包数量选择,选定后,按PK4进入下一个设置。

12、使用PK2和PK3对发送模块发射速度选择,选定后,按PK4进入发送准备状态。

13、将发送和接收模块安放在不同的地方,按下发送模块的PK4开始发送数据(再次按下将停止发送)。

观察接收模块的测试结果(此时按下接收模块的PK4,将会清除测试结果)。

14、改变两个模块的位置,再次测量,观察测量结果。

注:

如果需要重新设置模块的收发功能,按复位按键。

五、程序代码

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);//等

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1