嵌入式系统开发技术课程_第1页
嵌入式系统开发技术课程_第2页
嵌入式系统开发技术课程_第3页
嵌入式系统开发技术课程_第4页
嵌入式系统开发技术课程_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、实践教学兰州理工大学计算机与通信学院2013 年春季学期嵌入式系统开发技术课程设计题目 :2.4G 各信道信号强度测试实验专业班级 :通信工程 4 班姓名 :牛毅学号 :10250424指导教师 :薛建斌成绩 :目录摘 要 1前 言 2一 CC2530 基本介绍 31.1 CC2530 芯片基本介绍 31.2.2 电源引脚功能 51.2.3 控制线引脚 51.2.4 增强型 8051 内核 51.2.5 复位 6二 CC2530 RF 模块以及信号信道分配模式 7三 设计流程 83.1 CC2530 模块进行简单的点到点无线通信 83.2 设计原理及说明 83.3 设计步骤 83.4 程序流程

2、图 10四 测试 17五 参考文献 19总 结 20致 谢 21摘要在嵌入式操作系统上, Linux 一直因其内核精简、代码开发、基于移植等特点使得嵌入 式能力更加强大。而本设计是嵌入式应用里比较简单的一个实现,是针对嵌入式开发板 CC2530的一个模块进行构建和设计的,要实现的是两个 CC2530间的 RF 的无线通信,并且 要对各个信道信号进行监测,嵌入式开发是现阶段,现世界比较流行的开发模式。在模块设计中,在两个 CC2530的 RF模块间进行无线通信, 并且在无线通信的基础上进 行 2.4G 频段信道 11-26 各个信道的信号强度分析与测试。本次课程设计使用 CC2530 的 RF

3、射频 CC2530RF功能模块及带有 RF功能模块的智能主板分析 2.4G频段信道 11-26 各个信道的 信号强度。而且测试的效果是通过 LED 灯的亮灭来进行监测的。关键词 :RF的无线通信、 CC2530、2.4G 信道信号监测前言嵌入式系统( Embedded system)是一种专用的计算机系统,是以应用为中心,计算机技 术为中心,硬件软件可裁剪的系统。作为装置或设备的一部分。通常,嵌入式系统是一个控 制程序存储在 ROM 中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、 ATM 、智能手机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数 嵌入式系统

4、都是是由单个程序实现整个控制逻辑。而本设计是嵌入式应用里比较简单的一个实现,是针对嵌入式开发板 CC2530 的一个模 块进行构建和设计的, 要实现的是两个 CC2530间的 RF的无线通信, 并且要对各个信道信号 进行监测,嵌入式开发是现阶段,现世界比较流行的开发模式。嵌入式系统是计算机技术、通信技术、半导体技术、微电子技术、语音图象数据传输技 术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。 因此往往是技术密集、 投资强度大、高度分散、不断创新的知识密集型系统。嵌入式系统为控制、监视或辅助设备、 机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执

5、 行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员 能够对它进行优化,减小尺寸降低成本。由于嵌入式系统通常进行大量生产。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者 单片机组成。信息时代,数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展 现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来嵌入式 系统的几大发展趋势。CC2530 基本介绍1.1 CC2530 芯片基本介绍CC2530 芯片具有如下主要性能: 高性能和低功耗的 8051微控制器核; 32 KB、64 KB 或 128KB 的系统内可编

6、程闪存; 8-KB RAM ,具备在各种供电方式下的数据保持能力;集成符 合 IEEE 802.15.4 标准的 2.4GHz 的 RF 无线电收发机;极高的接收灵敏度和抗干扰性能; 可编程的输出功率高达 4.5dBm;只需一个晶振,即可满足网状网络系统的需要;在供电模 式 1 时仅 24mA 的流耗 4 s 就能唤醒系统;在睡眠定时器运行时仅 1A 的流耗;在供 电模式 3 时仅 0.4A 的流耗, 外部中断能唤醒系统; 硬件支持 CSMA/CA 功能; 较宽的电 压范围( 2.03.6V);支持精确的数字化 RSSI/LQI 和强大的 5 通道 DMA ;具有捕获功能 的 32KHz 睡眠

7、定时器; 具有电视监视器和温度传感器; 具有 8 路舒服和可配置分辨率的 12 位 ADC ;集成了 AES 安全协处理器;带有 2 个支持多种串行通信协议的强大 USART,以 及 1 个符合 IEEE802.15.4 规范的 MAC 定时器, 1 个 16 位定时器和 1 个 8 位定时器;强 大和灵活的开发工具。1.2.1 、 CC2530 芯片引脚功能CC2530 芯片如图 1所示,它采用 6 mm6 mm的 QFN 封装,共有 40 个引脚。全部引脚 可以分为 I/O 端口线引脚, 电源线引脚和控制线引脚三类。 CC2530 有 21 个可编程的 I/O 口引脚, P0、P1 口是完

8、全的 8 位口, P2 口只有 5 个可使用的位。通过软件设定一组 SFR 寄存器的位和字节,可使这些引脚作为通常的 I/O 口或作为连接 ADC 、计时器或 USART 部 件的外围设备 I/O 口使用。 I/O 口有下面的关键特性:可设置为通常的 I/O 口,也可设置 为外围的 I/O 使用;在输入时有上拉和下拉能力;全部 21 个 I/O 口引脚都具有响应外部 中断源输入口。如果需要外部中断,可对 I/O 口引脚产生中断,同时外部中断事件也能被用 来唤醒休眠模式。 12 19 脚(P0_7P0_0):具有 4mA 的输出驱动能力。 11,9 脚( P1_0, P1_1):具有 20mA

9、的驱动能力。 58,3718 脚( P1_7P1_2):具有 4mA 的输出驱动 能力。 3238 脚( P2_4P2_0):具有 4mA 的输出驱动能力。CXLOUPLDVDO1P1 6P2GND345fRBIASAVDD2RF NGround P&RF P.11AVDD3xosceAVDD5P1_0PO_7PQ 6HI CC2530 谢午1.2.2 电源引脚功能为模拟电路连接 为模拟电路连接 为模拟电路连接 为模拟电路连接 为模拟电路连接 为模拟电路连接AVDD1 (28 脚):AVDD2 (27 脚):AVDD3 (24 脚):AVDD4 (29 脚):AVDD5 (21 脚):AVDD

10、6 (31 脚):2.0V 3.6V 的电压。2.0V 3.6V 的电压。2.0V 3.6V 的电压。2.0V 3.6V 的电压。2.0V 3.6V 的电压。2.0V 3.6V 的电压。DCOUPL (40 脚):提供 1.8V 的数字电源去耦电压,不使用外部电路供应 DVDD1 (39 脚):提供 2.0V 3.6V 的数字电源连接电压。DVDD2 (10 脚):提供 2.0V3.6V 的数字电源连接电压1.2.3 控制线引脚RBIAS (30 脚):为参考电流提供精确的偏置电阻。RESET_N(20 脚):复位引脚,低电平有效。RF_N( 26 脚):在 RX 期间向 LNA 输入负向射频

11、信号。 RF_P( 25 脚):在 RX 期间向 LNA 输入正向射频信号。 XOSC_Q1(22 脚): 32MHz 的晶振引脚 1,或外部时钟输入引脚。 XOSC_Q2(23 脚): 32MHz 的晶振引脚 2。1.2.4 增强型 8051 内核CC2530 集成了增强工业标准 8051 内核 MCU 核心。该核心使用标准 8051 指令集。 每个指令周期中的一个时钟周期与标准 8051 每个指令周期中的 12 个时钟周期相对应,并 且取消了无用的总线状态,因此其指令执行速度比标准 8051 快。由于指令周期在可能的情 况下包含了取指令操作所需的时间,故绝大多数单字节指令在一个时钟周期内完

12、成。除了速 度改进之外,增强的 8051 内核也包含了下列增强的架构:第二数据指针;扩展了 18 个中 断源。该 8051 内核的目标代码与工业标准 8051 微控制器目标代码兼容。但是,由于与标 准 8051 使用不同的指令定时,现有的带有定时循环的代码可能需要修改。此外,由于外接 设备单元比如定时器的串行端口不同于它们在其他的 8051 内核,包含有使用外接设备单元 特殊功能寄存器 SFR 的指令代码将不能正常运行。 Flash 预取默认是不使能的,提高了CPU 高达 33%的性能。这是以功耗稍有增加为代价的,但是因为它更快,所以在大多数情 况下提高了能源消耗。可以在 FCTL 寄存器中使

13、能 Flash 预取。1.2.5 复位CC2530有 5 个复位源:强置输入引脚 RESET_N 为低电平;上电复位;掉电复位;看门 狗定时器复位;时钟丢失复位。 复位后的初始状况如下: I/O 引脚设置为输入、 上拉状态(P1.0 和 P1.1 为输入,但是没有上拉 / 下拉); CPU 的程序计数器设置为 0x0000 ,程序从这里开始 运行;所有外部设备的寄存器初始化到它们的复位值(参考有关寄存器的描述) ;看门狗定时 器禁止; 时钟丢失检测禁止。二 CC2530 RF 模块以及信号信道分配模式RF是 CC2530的射频模块,无线信道的分配 IEEE 802154 规范的物理层定义了三个

14、载波频段用于收发数据:8688686 MHz、902928 MHz 和 24002 4835 MHz。在这三个频段上发送数据使用的速率、 信号处理过程以及调制方式等方面都存在着一定的差异, 其中 2 400 MHz 频段的数据传输速率为 250 kbits,915 MHz、868 MHz 分别为 40 kbit s 和 20 kbits。 IEEE 802.154 规范定义了 27 个物理信道,信道编号从 0 至 26,每个具 体的信道对应着一个中心频率,这 27 个物理信道覆盖了以上 3 个不同的频段。不同的频段 所对应的宽度不同,标准规定 868 MHz 频段定义了 1 个信道(0 号信道

15、);915 MHz 频段定 义了 10个信道(110 号信道);2 400 MHz 频段定义了 16 个信道(11 26 号信道)。这些信 道的中心频率定义如下:F=868 3 MHzk=0F=906+2(k-1)MHzk=1,2,, , 10F=2405+5(k-11)MHzk=11, 12, , , 26式中: k 为信道编号F 为信道对应的中心频率。通常,ZigBee 硬件设备不能同时兼容两个工作频段,在选择时,应符合当地无线电管理委员会的规定。由于 868868 6 MHz频段主要用于欧洲, 902928 MHz 频段用于北美, 4002483.5 MHz 频段可以用于全球, 因此在中

16、国所采用的都是 2400MHz 的工作频段。三 设计流程3.1 CC2530 模块进行简单的点到点无线通信3.2 设计原理及说明实验主要分为 3 大部分,第一部分为初始化与 RF 相关的信息;第二部分为发送数据 和接收数据;最后为选择模块功能函数。其中模块功能的选择是通过开发板上的按键来选择 的,其中按键功能分配如下:SW1 - 开始测试(进入功能选择菜单)SW2 - 设置模块为接收功能( Light )SW3 - 设置模块为发送功能( Switch)SW4 - 发送模块发送命令按键当发送模块按下 SW4 时,将发射一个控制命令,接收模块在接收到该命令后,将控制 LDE1 的亮或 者灭。其中

17、LED6 为工作指示灯,当工作不正常时, LED5 将为亮状态。3.3 设计步骤1、给智能主板供电( USB 外接电源或 2 节干电池) 。2、将两个无线节点模块分别插入到两个带 LCD 的智能主板的相应位置。3、将 2.4G 的天线安装在无线节点模块上。4、将 CC2530 仿真器的一端通过 USB 线( A 型转 B 型)连接到 PC 机,另一端通过 10Pin下载线连接到智能主板的 CC2530 JTAG 口( J203) 。5、将智能主板上电源开关拨至开位置。按下仿真器上的按钮,仿真器上的指示灯为绿 色时,表示连接成功。6、使用 IAR7.51 打开“ , OURS_CC2530LIB

18、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.

19、4 程序流程图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#define RF_CHANNEL25 / 2.4 GHz RF 使用信道 25#define PAN_ID0x2011/ 通信 PANID#define SWITCH_ADDR#define LIGHT_ADDR#define APP_PAYLOAD_LENGTH#define LIGHT_TOGGLE_CMD/ 应用状态#define IDLE

20、#define SEND_CMD/应用角色#define NONE#define SWITCH#define LIGHT#define APP_MODES/按键#define HAL_BUTTON_1#define HAL_BUTTON_2#define HAL_BUTTON_3#define HAL_BUTTON_4#define HAL_BUTTON_5#define HAL_BUTTON_60x2530/开关模块地址0xBEEF/灯模块地址1/ 命令长度0/ 命令数据010122123456/RF 初始化结构体/硬件初始化函数static uint8 pTxDataAPP_PAYLOAD

21、_LENGTH; / 发送数据数组 164static uint8 pRxDataAPP_PAYLOAD_LENGTH; / 接收数据数组static basicRfCfg_t basicRfConfig;extern void halboardinit(void);extern void ctrPCA9554FLASHLED(uint8 led); /IIC 灯控制函数 extern void ctrPCA9554LED(uint8 led,uint8 operation);extern uint8 halkeycmd(void);/获取按键值函数#ifdef SECURITY_CCM/安全

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

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

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

25、一个模块发/向发送数据中写入命令/设置发送模块的地址 /RF 初始化ctrPCA9554FLASHLED(5); /RF 初始化不成功,则所有的 LED5 闪烁basicRfReceiveOff();/ 关闭接收功能/ Main loopwhile (TRUE)if(halkeycmd() = HAL_BUTTON_4) /判断是否按下 SW4basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH);/ 发送halIntOff();/关闭全局中断halIntOn();/打开中断/LCD 清屏/在 LCD 上显示相应的文字/等待模式选择

26、/接收模式* 函数名称: appSelectMode* 功能描述:通过 SW2 或 SW3 选择模块的应用模式。* 参 数:无* 返 回 值: LIGHT - 接收模式*SWITCH - 发送模式*NONE - 不正确模式static uint8 appSelectMode(void)uint8 key;GUI_ClearScreen();GUI_PutString5_7(25,6,OURS-CC2530);GUI_PutString5_7(10,22,Device Mode: );GUI_PutString5_7(10,35,SW2 - Light);GUI_PutString5_7(10,

27、48,SW3 - Switch);LCM_Refresh();dokey = 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();return LIGHT;if(key = HAL_BUTTON_3)/ 发送模式GUI_Cle

28、arScreen();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 mai

29、n(void)uint8 appMode = NONE; /应用职责(角色)初始化 basicRfConfig.panId = PAN_ID;/配置 PANID 2011/初始化板的外围设备 (包括 LED LCD 和按键等 )basicRfConfig.channel = RF_CHANNEL; basicRfConfig.ackRequest = TRUE;#ifdef SECURITY_CCMbasicRfConfig.securityKey = key;#endifhalboardinit(); if(halRfInit()=FAILED) ctrPCA9554FLASHLED(5);

30、ctrPCA9554FLASHLED(6);/设置信道 25/需要 ACK 请求 /编译未选选项 / 安全密钥/ 初始化 RF/RF 初始化不成功,则所有的 LED5 闪烁/ 点亮 LED6 ,以指示设备正常运行GUI_PutString5_7(10,22,Simple RF test);/在 LCD 上显示相应的文字GUI_PutString5_7(10,35,SW1 - Start); LCM_Refresh();while (halkeycmd() != HAL_BUTTON_1); halMcuWaitMs(350);appMode = appSelectMode();LCD 上显示相

31、应的设置信息 if(appMode = SWITCH) ctrPCA9554LED(2,1);/等待按键 1 按下,进入下一级菜单/延时 350MS/设置应用职责(角色) 同时在/发送模式appSwitch();/执行发送模式功能else if(appMode = LIGHT)/接收模式ctrPCA9554LED(3,1); appLight();/执行接收模式功能四 测试4.1、802.15.42.4G 各信道信号强度测试实验4.2、测试流程4.3、实验设备:1. 装有 IAR 的 PC 机一台;2.2530 仿真器, usb 线( A 型转 B 型) ;3.无线节点模块 1 块,带 LCD

32、 的智能主板 1 块, 2.4G 天线 1 根。4.4、实验原理及说明:本实验主要是在学会了配置 CC2530 RF 功能基础上,掌握分析 2.4G 频段信道 11-26 各个信道的信号强度。然后通过 LCD 显示测试结果,结果的显示分为两个部分,一部分是 通过 16 个矩形条的形式同时显示各个信道中的信号强度, 16 个矩形条从左至右依次代表信 道 11 到信道 26 的 RSSI 值,其中矩形越高,表示该信道的 RSSI 值越强。另一个是通过 按键可以切换显示( LCD 的左上角)不同信道具体的 RSSI 值。其中按键功能分配如下:SW1 - 开始测试SW2 - 显示 RSSI 值的信道加SW3 - 显示 RSSI 值的信道减 测试中,矩形高度的变化是完成一次测试就改变一次。而具体的显示 RSSI 值是每个信 道抽取 8 个值后再显示。其中扫描 16 个信道的间隔为 2000us。其中 LED1 为工作指示灯, 当工作不正常时, LED2 将为亮状态。4.5、设计步骤 :1、给智能主板供电( USB 外接电源或 2 节干电池)。2、将 1个无线节点模块插入到带 LCD 的智能主板的相应位置。3、将 2.4G 的天线安装在无线节点模块上。4、将 CC2530仿真器的一端通过 USB线(A 型转 B 型)连接到 PC机,另一端通过 10Pin 下

温馨提示

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

最新文档

评论

0/150

提交评论