CC2530无线通信丢包率测试_第1页
CC2530无线通信丢包率测试_第2页
CC2530无线通信丢包率测试_第3页
CC2530无线通信丢包率测试_第4页
CC2530无线通信丢包率测试_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、*实践教学* 兰州理工大学计算机与通信学院2013年春季学期 嵌入式系统开发技术课程设计题 目: CC2530无线通信丢包率测试 专业班级: 通信工程04 姓 名: 刘旺春 学 号: 10250423 指导教师 张玺君 成 绩: 目录一、摘要1二、应用背景2三、CC2530芯片概述43.1CC2530芯片基本介绍43.2CC2530芯片功能介绍43.3 CC2530 芯片引脚功能53.3.1电源引脚功能63.3.2控制线引脚6四、原理74.1有关无线通信的基本概念74.2基本原理74.2.1程序流程图94.2.2具体步骤10五、程序代码11六、参考文献17七、总结18致 谢19一、摘要嵌入式系

2、统是以应用为中心,以计算机术为基础,软硬件可定制,适用于不同应用场合,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理机,外围硬件设备,嵌入式操作系统,用户应用程序4个部分组成。用于实现对其他设备的控制,监视和管理等功能。嵌入式系统已经广泛应用于科学研究,工业控制,军事技术,交通通信,医疗卫生,消费娱乐等领域,人们常用的手机,PDA,汽车控制系统,ATM(Auto Teller Machine),智能家电,GPS等均是嵌入式系统的典型代表。CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 应用的一个真正的片上系统(SoC

3、)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。 随着3C融合进程和我国传统产业结构升级的加速,人们对设备越来越高的应用需要已经无法满足当前和未来高性能的应用与发展需求.使用两个CC2530模块利用其板载无线天线,测试在不同环境或不同通信距离内,CC2530无线通信数据包丢失率。关键词:嵌入式 CC2530 丢包率二、应用背景智能家居是一个居住环境,是以住宅为平台安装有智能家居系统的居住环境,实施智能家居系统的过程就称为智能家居集成。以住宅为平台,利用有线和无线网络平台通信技术、包括综合布线系统,安全防范系统,背景乐/广播系统,灯光窗帘控制系统,空调VRV控制系统,以及家庭影院控制

4、系统;将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。智能家居集成是利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设备集成。由于智能家居采用的技术标准与协议的不同,大多数智能家居系统都采用综合布线方式,但少数系统可能并不采用综合布线技术,如电力载波,不论哪一种情况,都一定有对应的网络通信技术来完成所需的信号传输任务,因此网络通信技术是智能家居集成中关键的技术之一。安全防范技术是智能家居系统中必不可少的技术,在小区及户内可视对讲、家庭监控、家庭防盗报警、与家庭有关的小区

5、一卡通等领域都有广泛应用。自动控制技术是智能家居系统中必不可少的技术,广泛应用在智能家居控制中心、家居设备自动控制模块中,对于家庭能源的科学管理、家庭设备的日程管理都有十分重要的作用。音视频技术是实现家庭环境舒适性、艺术性的重要技术,体现在音视频集中分配、背景音乐、家庭影院等方面。又称智能住宅。通俗地说,它是融合了自动化控制系统、计算机网络系统和网络通讯技术于一体的网络化智能化的家居控制系统。智能家居将让用户有更方便的手段来管理家庭设备,比如,通过家触摸屏、无线遥控器、电话、互联网或者语音识别控制家用设备,更可以执行场景操作,使多个设备形成联动;另一方面,智能家居内的各种设备相互间可以通讯,不

6、需要用户指挥也能根据不同的状态互动运行,从而给用户带来最大程度的高效、便利、舒适与安全。智能家居控制的发展关键在于设计理念以及经营者的心态,市场目标客户真正需要什么东西,挣什么样的钱都要慎重考虑,如果只注重签单,不设身处地的为客户着想,不兼顾智能解决未来的发展,提供片面的智能家居解决方案,而不考虑客户的适用性,是不可取的,是急功近利的表现,这不仅降低了智能家居的应用效果,还不利于整个智能家居行业的发展。智能家居控制系统的市场不是一般普通的商品买卖,而是一项系统性工程,它涉及到很多技术,涉及到人们生活的方方面面,智能家居控制系统的终极目标是一种理想,更是一种理念,要想智能家居控制系统有很好的发展

7、,研发机构必须本着长远发展的心态,本着简化、实用、性价比高、适合市场的理念,虔诚研究人们的生活、习惯、精神文等需要,并把它看最高目标,运用各种技术手段实现它。智能家居控制系统的经营商更要本着消费者至上的理念,本着从客户利益出发心态,以认真、负责、诚信的态度,真正的从客户的实际需求出发,用心服务,用心为客户做智能家居控制设计和解决方案,把工程做好,让客户花最少的钱得到最大化的实惠,才是企业发展之道,才是智能家居行业发展之道。智能家居控制的发展关键在于设计理念以及经营者的心态,市场目标客户真正需要什么东西,挣什么样的钱都要慎重考虑,如果只注重签单,不设身处地的为客户着想,不兼顾智能解决未来的发展,

8、提供片面的智能家居解决方案,而不考虑客户的适用性,是不可取的,是急功近利的表现,这不仅降低了智能家居的应用效果,还不利于整个智能家居行业的发展。三、CC2530芯片概述3.1CC2530芯片基本介绍CC2530 是一个兼容 IEEE 802.15.4 的真正的片上系统,支持专有的 802.15.4 市场以及ZigBee、ZigBee PRO 和ZigBeeRF4CE标准。CC2530 提供了101dB 的链路质量,优秀的接收器灵敏度和健壮的抗干扰性,四种供电模式,多种闪存尺寸,以及一套广泛的外设集包括 2 个USART、12位 ADC和 21 个通用GPIO,以及更多。除了通过优秀的 RF 性

9、能、选择性和业界标准增强 8051MCU 内核,支持一般的低功耗无线通信,CC2530 还可以配备 TI的一个标准兼容或专有的网络协议栈(RemoTI, Z-Stack, 或SimpliciTI)来简化开发,使你更快的获得市场。CC2530 可以用于的应用包括远程控制、消费型电子、家庭控制、计量和智能能源、楼宇自动化、医疗以及更多领域。根据芯片内置内存的不同容量,CC2530拥有三种不同的版本:CC2530-F32/F64/F128/F256,编号后缀分别代表了芯片具 32KB,64KB,128KB或 256KB 的闪存。比起第一代 CC2430,CC2530 提供了改进的 RF 性能,多达

10、256KB的闪存以支持更大的应用,强大的地址识别和数据包处理引擎, 能够很好的匹配 RF 前端,封装更小,IR 一代电路,以及支持 ZigBee PRO 和ZigBee RF4CE。3.2CC2530芯片功能介绍CC2530 芯片具有如下主要性能:高性能和低功耗的 8051微控制器核;32-、64-或128-KB 的系统内可编程闪存;8-KB RAM,具备在各种供电方式下的数据保持能力;集成符合 IEEE 802.15.4标准的 2.4GHz 的RF 无线电收发机;极高的接收灵敏度和抗干扰性能; 可编程的输出功率高达 4.5dBm;只需一个晶振,即可满足网状网络系统的需要;在供电模式 1 时仅

11、 24mA 的流耗 4s 就能唤醒系统;在睡眠定时器运行时仅 1A 的流耗;在供电模式 3 时仅0.4A 的流耗,外部中断能唤醒系统;硬件支持 CSMA/CA 功能;较宽的电压范围(2.03.6V);支持精确的数字化 RSSI/LQI 和强大的 5 通道DMA;具有捕获功能的 32KHz睡眠定时器;具有电视监视器和温度传感器;具有 8 路舒服和可配置分辨率的 12位 ADC;集成了 AES安全协处理器;带有 2 个支持多种串行通信协议的强大 USART,以及 1 个符合 IEEE802.15.4 规范的MAC定时器,1个 16 位定时器和 1 个8位定时器;强大和灵活的开发工具。3.3 CC2

12、530 芯片引脚功能 CC2530 芯片如图 3.3 所示,它采用 6 mm×6 mm的 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

13、个 I/O 口引脚都具有响应外部中断源输入口。如果需要外部中断,可对 I/O 口引脚产生中断,同时外部中断事件也能被用来唤醒休眠模式。 1219 脚(P0_7P0_0):具有 4mA 的输出驱动能力。 11,9 脚(P1_0,P1_1):具有 20mA 的驱动能力。 58,3718 脚(P1_7P1_2):具有4mA 的输出驱动能力。 3238 脚(P2_4P2_0):具有 4mA 的输出驱动能力。图3.1 CC2530芯片引脚图3.3.1电源引脚功能 AVDD1(28 脚):为模拟电路连接 2.0V3.6V的电压。 AVDD2(27 脚):为模拟电路连接 2.0V3.6V的电压。 AVDD3

14、(24 脚):为模拟电路连接 2.0V3.6V的电压。 AVDD4(29 脚):为模拟电路连接 2.0V3.6V的电压。 AVDD5(21 脚):为模拟电路连接 2.0V3.6V的电压。 AVDD6(31 脚):为模拟电路连接 2.0V3.6V的电压。 DCOUPL(40 脚):提供1.8V的数字电源去耦电压,不使用外部电路供应。 DVDD1(39 脚):提供2.0V3.6V 的数字电源连接电压。 DVDD2(10 脚):提供 2.0V3.6V的数字电源连接电压。 3.3.2控制线引脚 RBIAS(30 脚):为参考电流提供精确的偏置电阻。 RESET_N(20 脚):复位引脚,低电平有效。

15、RF_N(26 脚):在 RX 期间向 LNA输入负向射频信号。 RF_P(25 脚):在 RX 期间向 LNA输入正向射频信号。XOSC_Q1(22 脚):32MHz 的晶振引脚 1,或外部时钟输入引脚。 XOSC_Q2(23 脚):32MHz 的晶振引脚 2。 四、原理 4.1有关无线通信的基本概念与有线传输相比,无线传输具有许多优点。或许最重要的是,它更灵活。无线信号可以从一个发射器发出到许多接收器而不需要电缆。所有无线信号都是随电磁波通过空气传输的,电磁波是由电子部分和能量部分组成的能量波。在无线通信中频谱包括了9khz到300000Ghz之间的频率。每一种无线服务都与某一个无线频谱区

16、域相关联。无线信号也是源于沿着导体传输的电流。电子信号从发射器到达天线,然后天线将信号作为一系列电磁波发射到空气中。信号通过空气传播,直到它到达目标位置为止。在目标位置,另一个天线接收信号,一个接收器将它转换回电流。接收和发送信号都需要天线,天线分为全向天线和定向天线。在信号的传播中由于反射、衍射和散射的影响,无线信号会沿着许多不同的路径到达其目的地,形成多径信号。通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况下无论采用何种方法,使用何种媒质,将信息从某方准确安全传送到另方。无线通信(Wireless communica

17、tion)是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式。4.2基本原理本设计主要是在学会了配置CC2530 RF功能基础上,一个简单无线通信的应用,该设计可以用来测试不同环境或不同通信距离的误码率以及信号的强弱。完成本设计需要两个模块,一个设置为发送模块,一个设置为接收模块;其中发送模块主要是通过板上按键设置不同的发送参数,然后发送数据包。接收模块接收发送模块的数据包,然后计算误码率和信号的强度。 其中按键功能分配如下: PK1 - 开始测试(进入功能选择菜单) PK2- 设置功能加 PK3- 设置功能减 PK4 - 确定按钮 在每完成一个参数设置或选择,都是通过SW4

18、来确定,然后进入下一个参数设置,其中发送模式下的发送开始和停止也是通过SW4控制的。在测试中,接收模块可以通过SW4来复位测试结果。 发送模块需设置的参数有:1、信道选择,中2.4G频段信道有16个。为信道11-26,对应的频率为2405MHz到2480MHz。通过SW2和SW3可以对16个信道进行选择。(注意,测试时要与接收模块选择相同的信道)。 2、发射功率设置,CC2530提供的发送功率有-3dBm、0dBm和4dBm三种,通过SW2和SW3可以选择发送模块的不同发射功率。3、发送数据包数量设置,程序中提供的数据包数量有:1000、10000、100000和1000000四种,推荐测试时

19、,选择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程序流程图开始系统时钟和外围设备初始化RF初始化SW1是否按下?信道设置是否按下PK2或PK3?发射功率设置开启接收功发送数据包数量设置是否接收到数发送

20、速度设置关闭接收功能数据计算是否按下计算结果清零是否使能32K定时器?定时发送数据结果显示4.2.2具体步骤1.给智能主板供电(USB外接电源或2节干电池)。2、将两个无线节点模块分别插入到两个带LCD的智能主板的相应位置。3、将2.4G的天线安装在无线节点模块上。 4、将CC2530仿真器的一端通过USB线(A型转B型)连接到 PC 机,另一端通过10Pin下载线连接到智能主板的CC2530 JTAG口(J203)。 5、将智能主板上电源开关拨至开位置。按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。 6、关掉智能主板上电源,拔下仿真器,按4、5步骤对另一个模块下载程序。 7、打

21、开两个模块的电源,当LED1处于亮时,按下PK1进入下级菜单,按SPK2和PK3对通信信道进行选择(两个模块必须设置相同的信道)。选定后,按SW4进入下一个设置。 8、一个模块按下PK3设置为接收模式,按下SW4确定。接收模块设置完成(此时接收模块已经处于接收待命状态)。 9、另一个模块按下PK2设置为发送模式,按下SW4确定进入下一个设置。 10、使用PK2和PK3对发送模块发射功率选择,选定后,按PK4进入下一个设置。 11、使用PK2和PK3对发送模块发射数据包数量选择,选定后,按PK4进入下一个设置。 12、使用PK2和PK3对发送模块发射速度选择,选定后,按PK4进入发送准备状态。1

22、3、将发送和接收模块安放在不同的地方,按下发送模块的PK4开始发送数据(再次按下将停止发送)。观察接收模块的测试结果(此时按下接收模块的PK4,将会清除测试结果)。 14、改变两个模块的位置,再次测量,观察测量结果。 注:如果需要重新设置模块的收发功能,按复位按键。五、程序代码include "hal_board.h" #include "hal_int.h" #include "hal_mcu.h" #include "hal_rf.h" #include "basic_rf.h" #incl

23、ude "LCD.h" /数码管头文件。#define RF_CHANNEL 25 / 2.4 GHz RF 使用信道25 #define PAN_ID 0x2011 /通信PANID #define SWITCH_ADDR 0x2530 /开关模块地址 #define LIGHT_ADDR 0xBEEF /灯模块地址 #define APP_PAYLOAD_LENGTH 1 /命令长度 #define LIGHT_TOGGLE_CMD 0 /命令数据 / 应用状态 #define IDLE 0 #define SEND_CMD 1 /应用角色 #define NONE 0

24、 #define SWITCH 1 #define LIGHT 2 #define APP_MODES 2 /按键 #define HAL_BUTTON_1 1 #define HAL_BUTTON_2 2 #define HAL_BUTTON_3 3 #define HAL_BUTTON_4 4 #define HAL_BUTTON_5 5 #define HAL_BUTTON_6 6 static uint8 pTxDataAPP_PAYLOAD_LENGTH; /发送数据数组 164 static uint8 pRxDataAPP_PAYLOAD_LENGTH; /接收数据数组 stat

25、ic basicRfCfg_t basicRfConfig; /RF初始化结构体 extern void halboardinit(void); /硬件初始化函数 extern void ctrPCA9554FLASHLED(uint8 led); /IIC灯控制函数 extern void ctrPCA9554LED(uint8 led,uint8 operation); extern uint8 halkeycmd(void); /获取按键值函数 #ifdef SECURITY_CCM /安全密钥 static uint8 key= 0xc0, 0xc1, 0xc2, 0xc3, 0xc4

26、, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, ; #endif static void appLight(); /灯应用处理函数 static void appSwitch(); /开关应用处理函数 static uint8 appSelectMode(void); /应用功能选择函数 /* * 函数名称:appLight * 功能描述:接收模式应用函数,初始化RF一些参数,接收另一个模块发送的控制命令,然后控制相应的LED灯 * 参 数:无 * 返 回 值:无 */ static void appLig

27、ht() basicRfConfig.myAddr = LIGHT_ADDR; /设置接收模块的地址 if(basicRfInit(&basicRfConfig)=FAILED) /RF初始化 ctrPCA9554FLASHLED(5); /RF初始化不成功,则所有的LED5闪烁 basicRfReceiveOn(); /打开接收功能 / Main loop while (TRUE) while(!basicRfPacketIsReady(); /准备接收数据 if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)>0) /接收数

28、据 if(pRxData0 = LIGHT_TOGGLE_CMD) /判断命令是否正确 ctrPCA9554FLASHLED(1); /关闭或打开LED1 /* * 函数名称:appSwitch * 功能描述:发送模式应用函数,初始化发送模式RF,通过按下SW4向另一个模块发送控制命令。 * 参 数:无 * 返 回 值:无 */ static void appSwitch() pTxData0 = LIGHT_TOGGLE_CMD; /向发送数据中写入命令 basicRfConfig.myAddr = SWITCH_ADDR; /设置发送模块的地址 if(basicRfInit(&ba

29、sicRfConfig)=FAILED) /RF初始化 ctrPCA9554FLASHLED(5); /RF初始化不成功,则所有的LED5闪烁 basicRfReceiveOff(); /关闭接收功能 / Main loop while (TRUE) if(halkeycmd() = HAL_BUTTON_4) /判断是否按下SW4 basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH);/发送数据 halIntOff(); /关闭全局中断 halIntOn(); /打开中断 /* * 函数名称:appSelectMode * 功能

30、描述:通过SW2或SW3选择模块的应用模式。 * 参 数:无 * 返 回 值:LIGHT - 接收模式 * SWITCH - 发送模式 * NONE - 不正确模式 */ static uint8 appSelectMode(void) uint8 key; GUI_ClearScreen(); /LCD清屏 GUI_PutString5_7(25,6,"OURS-CC2530"); /在LCD上显示相应的文字 GUI_PutString5_7(10,22,"Device Mode: "); GUI_PutString5_7(10,35,"SW

31、2 -> 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,"Device Mode:

32、"); GUI_PutString5_7(10,35,"Light"); LCM_Refresh(); return LIGHT; if(key = HAL_BUTTON_3) /发送模式 GUI_ClearScreen(); GUI_PutString5_7(25,6,"OURS-CC2530"); /在LCD上显示相应的文字 GUI_PutString5_7(10,22,"Device Mode: "); GUI_PutString5_7(10,35,"Switch"); GUI_PutString5

33、_7(10,48,"SW4 Send Command"); LCM_Refresh(); return SWITCH; return NONE; /* * 函数名称:main * 功能描述:通过不同的按键,设置模块的应用角色(接收模式或发送模式)。通过SW4发送控制命令 * 参 数:无 * 返 回 值:无 */ void main(void) uint8 appMode = NONE; /应用职责(角色)初始化 basicRfConfig.panId = PAN_ID; /配置PANID 2011 basicRfConfig.channel = RF_CHANNEL; /设

34、置信道 25 basicRfConfig.ackRequest = TRUE; /需要ACK请求 #ifdef SECURITY_CCM /编译选项(未选) basicRfConfig.securityKey = key; / 安全密钥 #endif halboardinit(); /初始化板的外围设备(包括LED LCD 和按键等) if(halRfInit()=FAILED) /初始化RF ctrPCA9554FLASHLED(5); /RF初始化不成功,则所有的LED5闪烁 ctrPCA9554FLASHLED(6); /点亮LED6,以指示设备正常运行 GUI_PutString5_7

35、(10,22,"Simple RF test");/在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(); /执行发送模式功能 else if(appMode = LIGHT) /接收模式 ctrPCA9554LED(3,1); appLight(); /执行接收模式功能 六、参考文献1覃团发、姚海涛、覃远年、陈海强

温馨提示

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

评论

0/150

提交评论