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

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业*实践教学*兰州理工大学计算机与通信学院2013年春季学期嵌入式系统开发技术课程设计题 目: CC2530无线通信丢包率测试 专业班级: 通信工程4班 姓 名: 学 号: 指导教师: 成 绩: 摘 要 随着后PC机时代的到来,计算机的发展已经从以PC机为中心转向了以嵌入式系统为中心的方向:嵌入式系统的迅猛发展和IA(信息电器)的不断成熟使得其应用越来越广泛。其中,嵌入式系统与网络的结合也是当今发展的一大趋势,而嵌入式网络技术的产生正好迎合了这个趋势。由于嵌入式系统的专用

2、性强、体积小且价格低廉,因此嵌入式设备已经开始应用于智能家居系统、工业智能化从站系统、LED网络控制显示屏系统、网络安全加密系统等各个网络相关领域。本设计是使用两个CC2530模块利用其板载无线天线,测试在不同环境或不同通信距离内,CC2530无线通信数据包丢失率。关键词:嵌入式 无线通信 丢包率 目 录TOC o 1-2 h u 前 言 我国的无线通信产业通过短短几十年的发展,已经发展到第三代和第四代移动通信技术,多种无线通信技术都得到了广泛的应用是利用电磁波可以在自由空间中传播的特性进行信息交换的一种通信方式,由于无线通信技术具有成本廉价、建设工程周期短、适应性好、扩展性好、设备维护上更容

3、易实现等诸多优点,所以近些年来是信息通信领域中,发展最快、应用最广的。本课设设计一个简单无线通信的应用,该设计可以用来测试不同环境或不同通信距离的误码率以及信号的强弱。完成本实验需要两个模块,一个设置为发送模块,一个设置为接收模块;其中发送模块主要是通过板上按键设置不同的发送参数,然后发送数据包。接收模块接收发送模块的数据包,然后计算误码率和信号的强度。一、基本原理1.1 无线通信概述 通信按传输媒体分为无线通信和有线通信两大类。移动通信、卫星、微波、无线接入等都是无线通信,无线通信信号以电磁波的形式通过空间传送,具有信道不可预见性大,使用灵活、方便等特点。无线通信是通过无线信道来实现的,所以

4、无线信道质量的好坏直接影响通信的质量。新一代的个人通信对通信时的传输速率和误码率有很高的要求,因此对于无线信道的研究有助于提高传输速率并降低误码率。无线信道是一个充满复杂干扰的信道。由环境中的各种障碍物所引起的信号多径传播是其主要特点之一。同一发射机发射的电磁波向各个方向辐射,不同的波遇到不同的障碍物发生反射折射以及散射衍射等作用会使得波束到达接收机时的时间、幅度和相位均发生延迟与畸变,比如若发射一个窄脉冲经过无线信道后将在接收端收到一连串幅度和相位均不同的脉冲串,如果在这个期间内连续发射多个脉冲,将在接收端产生混叠发生误码的几率大大提高。另一个特点是多普勒效应。无线通信中的终端基本处于移动的

5、状态,这就导致了电磁波的多普勒效应。由于到达接收机的杂散波的方向相位均不同所引起的多普勒效应也不尽相同,更加恶化了接收信号。1.2 CC2530 配置本设计主要是在学会了配置CC2530 RF功能基础上,一个简单无线通信的应用,该设计可以用来测试不同环境或不同通信距离的误码率以及信号的强弱。完成本设计需要两个模块,一个设置为发送模块,一个设置为接收模块;其中发送模块主要是通过板上按键设置不同的发送参数,然后发送数据包。接收模块接收发送模块的数据包,然后计算误码率和信号的强度。 其中按键功能分配如下: SW1 - 开始测试(进入功能选择菜单) SW2 - 设置功能加 SW3 - 设置功能减 SW

6、4 - 确定按钮 在每完成一个参数设置或选择,都是通过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、发送数据包数量设置,程序中提供的数据

7、包数量有:1000、10000、和四种,推荐测试时,选择1000或10000即可。其中也是通过SW2和SW3来选择的。 4、发送速度设置,发送速度即1s中发送数据包的个数。程序中提供5/S、10/S、20/S和50/S四种速度。通过SW2和SW3来选择。 接收模块只需要设置和发送模块相同的信道即可。 接收模块测量时显示的信息有: 1.数据包丢失率(显示为x/1000)。 2.信号强度(RSSI)。 3.收到的数据包个数。 其中LED1为工作指示灯,当工作不正常时,LED2将为亮状态。1.3 丢包率的测试与分析 在我们网络上形成的数据包通过途径传输到另一个数据库上面,一般通过网络传输的过程中会因

8、为一些原因比如距离过大而产生小部分数据包被丢失,而大部分数据包被成功传输到终端数据库上。这样就形成了一个网络丢包的过程。而其中丢包的大小和传输数据包的大小就是网络丢包率。比如工厂在A地买了一车货,然后运送到B地,其中因为搬运工搬运和其他原因造成这批货和在A地的所测量的数值要少一些,这个过程就是被丢失的货物,也就是网络中网络丢包,而丢失的货物和货物的总量的比值就是网络丢包率。通常这些只是磨损消耗,属于很正常的。网络丢包率怎样解决呢?主要有以下几个方面。1、物理线路故障 如果是物理线路故障所造成网络丢包现象,则说明故障是由线路供应商提供的线路引起的,需要与线路供应商联系尽快解决问题。联系你的服务商

9、来解决网络丢包很严重的情况。2、设备故障 设备方面主要包括软件设置不当、网络设备接口及光纤收发器故障造成的。这种情况会导致交换机端口处于死机状态。那么可以将你的光纤模块更换掉,换一条新的模块替换掉。3、网络被堵塞、拥堵当网络不给力的时候,在通过网络传输数据,就会将网络丢包更多,一般是路由器被占用大量资源造成的。解决方法就是这时应该show process cpu和show process mem,一般情况下发现IP input process占用过多的资源。接下来可以检查fast switching在大流量外出端口是否被禁用,如果是,则需要重新使用。用show interfaces和show

10、interfaces switching命令识别大量包进出的端口。一旦确认进入端口后,打开IP accounting on the outgoing interface看其特征,如果是攻击,源地址会不断变化但是目的地址不变,可以用命令“access list”暂时解决此类问题。4、路由错误网络中的路由器的路径错误也是会导致数据包不能正常传输到主机数据库上这种情况属于正常状况,它所丢失的数据也是很小的。所以用户可以忽略这些数据丢包,而且这也是避免不了的。二、系统分析2.1 程序流程图开始系统时钟和外围设备初始化RF初始化SW1是否按下?信道设置是否按下SW2或SW3?发射功率设置开启接收功发送数

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

12、lib12(PER Test) IAR_files”下的PER Test.eww文件,下载程序。 7、关掉智能主板上电源,拔下仿真器,按4、5步骤对另一个模块下载程序。 8、打开两个模块的电源,当LED1处于亮时,按下SW1进入下级菜单,按SW2和SW3对通信信道进行选择(两个模块必须设置相同的信道)。选定后,按SW4进入下一个设置。 9、一个模块按下SW3设置为接收模式,按下SW4确定。接收模块设置完成(此时接收模块已经处于接收待命状态)。 10、另一个模块按下SW2设置为发送模式,按下SW4确定进入下一个设置。 11、使用SW2和SW3对发送模块发射功率选择,选定后,按SW4进入下一个设置

13、。 12、使用SW2和SW3对发送模块发射数据包数量选择,选定后,按SW4进入下一个设置。 13、使用SW2和SW3对发送模块发射速度选择,选定后,按SW4进入发送准备状态。 14、将发送和接收模块安放在不同的地方,按下发送模块的SW4开始发送数据(再次按下将停止发送)。观察接收模块的测试结果(此时按下接收模块的SW4,将会清除测试结果)。 15、改变两个模块的位置,再次测量,观察测量结果。 注:如果需要重新设置模块的收发功能,按复位按键。 三、详细设计3.1 CC2530介绍 3.1.1 CC2530概述CC2530 是用于2.4-GHz、ZigBee 和RF4CE 应用的一个真正的(SoC

14、)解决方案。它能够以非常低的总的材料成本建立强大的。CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其他强大的功能。CC2530 有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存。CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。CC2530F256 结合了德州仪器的业界领先的黄金单元ZigBee(Z-Stack),提供了一个强大和完整的ZigBee 解决方案。CC2530F64 结合了德州

15、仪器的黄金单元RemoTI,更好地提供了一个强大和完整的ZigBee RF4CE解决方案。3.1.2引脚描述引脚名称 引脚 引脚类型 描述AVDD1 28 电源(模拟) 2-V3.6-V 模拟电源连接AVDD2 27 电源(模拟) 2-V3.6-V 模拟电源连接AVDD3 24 电源(模拟) 2-V3.6-V 模拟电源连接AVDD4 29 电源(模拟) 2-V3.6-V 模拟电源连接AVDD5 21 电源(模拟) 2-V3.6-V 模拟电源连接AVDD6 31 电源(模拟) 2-V3.6-V 模拟电源连接DCOUPL 40 电源(数字) 1.8V 数字电源去耦。不使用外部电路供应。DVDD1

16、39 电源(数字) 2-V3.6-V 数字电源连接DVDD2 10 电源(数字) 2-V3.6-V 数字电源连接GND - 接地 接地衬垫必须连接到一个坚固的接地面。GND 1,2,3,4 未使用的连接到GNDP0_0 19 数字I/O 端口0.0P0_1 18 数字I/O 端口0.1P0_2 17 数字I/O 端口0.2P0_3 16 数字I/O 端口0.3P0_4 15 数字I/O 端口0.4P0_5 14 数字I/O 端口0.5P0_6 13 数字I/O 端口0.6P0_7 12 数字I/O 端口0.7P1_0 11 数字I/O 端口1.0-20-mA 驱动能力P1_1 9 数字I/O

17、端口1.1-20-mA 驱动能力P1_2 8 数字I/O 端口1.2P1_3 7 数字I/O 端口1.3P1_4 6 数字I/O 端口1.4P1_5 5 数字I/O 端口1.5P1_6 38 数字I/O 端口1.6P1_7 37 数字I/O 端口1.7P2_0 36 数字I/O 端口2.0P2_1 35 数字I/O 端口2.1P2_2 34 数字I/O 端口2.2P2_3 33 数字I/O 模拟端口2.3/32.768 kHz XOSCP2_4 32 数字I/O 模拟端口2.4/32.768 kHz XOSCRBIAS 30 模拟I/O 参考电流的外部精密偏置电阻RESET_N 20 数字输入

18、 复位,活动到低电平RF_N 26 RF I/O RX 期间负RF 输入信号到LNARF_P 25 RF I/O RX 期间正RF 输入信号到LNAXOSC_Q1 22 模拟I/O 32-MHz 晶振引脚1或外部时钟输入XOSC_Q2 23 模拟I/O 32-MHz 晶振引脚23.1.3功能介绍RF/布局适应2.4-GHz IEEE 802.15.4 的RF 收发器极高的接收灵敏度和抗干扰性能可编程的输出功率高达4.5 dBm只需极少的外接元件只需一个晶振,即可满足网状网络系统需要6-mm 6-mm 的QFN40适合符合世界范围的无线电频率法规:ETSI EN 300 328 和EN (),F

19、CC CFR47 第15 部分()和ARIB STD-T-66()低功耗主动模式RX(CPU 空闲):24 mA主动模式TX 在1dBm(CPU 空闲):29mA供电模式1(4 s 唤醒):0.2 mA供电模式2(睡眠运行):1 A供电模式3():0.4 A宽电源电压范围(2 V3.6 V)微控制器优良的性能和具有代码预取功能的低功耗8051 微控制器内核32-、64-或128-KB 的系统内可编程闪存8-KB RAM,具备在各种供电方式下的数据保持能力支持硬件调试外设强大的5 通道DMAIEEE 802.5.4 MAC,通用定时器(一个16 位定时器,一个8 位定时器)IR 发生电路具有捕获

20、功能的32-kHz 睡眠硬件支持支持精确的RSSI/LQI电池和温度传感器具有8 路输入和可配置分辨率的12 位ADCAES 安全协处理器2 个支持多种的强大USART21 个通用I/O(194 mA,220 mA)四、设计总结 本学期为期三周的嵌入式课程设计在不知不觉中结束了,虽说这次课程设计时间不是很长,但是感觉自己收获颇丰,不仅学习到了一些新知识,回顾了以前的一些快要遗忘的知识点,而且使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的趣味,更加清楚地认识到了自己在软件开发及学习上的一些不足之处。下面就来详细写一下我关于此次课程设计的总结: 此次课程设计给老师选择项目是在Lin

21、ux下用C语言开发一个程序。项目的实施方式是团队分组合作,共同完成,虽说一些些技术我们在课堂上也曾学习过,但是大多停留在理论学习上,实际开发很少,而这次课程设计给了我们一个很好的边学习边实践的机会,对我们深入学习这些技术有很大帮助,深刻体会到了这些技术的实用性。每当自己成功调试一段代码或者通过自己的努力克服一个技术困难,都颇有收获感。这次实训让我们体验了软件开发的全过程,发现自己的不足,了解了当前流行技术的软件开发,增加了一定的项目开发经验,增强了一定的就业竞争力。 五、附录#include hal_board.h #include hal_int.h #include hal_mcu.h #

22、include hal_rf.h #include basic_rf.h #include LCD.h #define RF_CHANNEL 25 / 2.4 GHz RF 使用信道25 #define PAN_ID 0 x2011 /通信PANID #define SWITCH_ADDR 0 x2530 /开关模块地址 #define LIGHT_ADDR 0 xBEEF /灯模块地址 #define APP_PAYLOAD_LENGTH 1 /命令长度 #define LIGHT_TOGGLE_CMD 0 /命令数据 / 应用状态 #define IDLE 0 #define SEND_C

23、MD 1 /应用角色 #define NONE 0 #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_PAY

24、LOAD_LENGTH; /接收数据数组 static 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= 0 x

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

26、灯 * 参 数:无 * 返 回 值:无 */ static void appLight() basicRfConfig.myAddr = LIGHT_ADDR; /设置接收模块的地址 if(basicRfInit(&basicRfConfig)=FAILED) /RF初始化 ctrPCA9554FLASHLED(5); /RF初始化不成功,则所有的LED5闪烁 basicRfReceiveOn(); /打开接收功能 / Main loop while (TRUE) while(!basicRfPacketIsReady(); /准备接收数据 if(basicRfReceive(pRxData,

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

28、/设置发送模块的地址 if(basicRfInit(&basicRfConfig)=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(); /打开中断

29、 /* * 函数名称:appSelectMode * 功能描述:通过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,SW2

30、 - 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: ); GUI_PutString5_7(10,35,Light); LCM_Refresh

31、(); 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_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; /设置信道

温馨提示

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

评论

0/150

提交评论