ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:236.28KB ,
资源ID:13709287      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13709287.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式 系统.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

嵌入式 系统.docx

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

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

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

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

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

6、2.15.4标准的 2.4GHz 的RF 无线电收发机;极高的接收灵敏度和抗干扰性能; 可编程的输出功率高达 4.5dBm;只需一个晶振,即可满足网状网络系统的需要;在供电模式 1 时仅 24mA 的流耗 4s 就能唤醒系统;在睡眠定时器运行时仅 1A 的流耗;在供电模式 3 时仅0.4A 的流耗,外部中断能唤醒系统;硬件支持 CSMA/CA 功能;较宽的电压范围(2.03.6V);支持精确的数字化 RSSI/LQI 和强大的 5 通道DMA;具有捕获功能的 32KHz睡眠定时器;具有电视监视器和温度传感器;具有 8 路舒服和可配置分辨率的 12位 ADC;集成了 AES安全协处理器;带有 2

7、 个支持多种串行通信协议的强大 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 位口,P2 口只有 5 个可使用的位。通过软件设定一组 SFR 寄存器的位和字节,可使这些引脚作为通常的 I/O 口或作为连接 ADC、计时器或 U

8、SART 部件的外围设备 I/O 口使用。 I/O 口有下面的关键特性:可设置为通常的 I/O 口,也可设置为外围的 I/O 使用;在输入时有上拉和下拉能力;全部 21 个 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 的输出驱动能力。图一CC2530芯片1.2.

9、2 电源引脚功能 AVDD1(28 脚):为模拟电路连接 2.0V3.6V的电压。 AVDD2(27 脚):为模拟电路连接 2.0V3.6V的电压。 AVDD3(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.0V

10、3.6V的数字电源连接电压。 1.2.3 控制线引脚 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。 1.2.4 增强型 8051 内核 CC2530 集成了增强工业标准 8051 内核 MCU 核心。该核心使用标准 8051 指令集。每个指令周期中的一个时钟周期与标准 8

11、051 每个指令周期中的 12个时钟周期相对应,并且取消了无用的总线状态,因此其指令执行速度比标准 8051 快。由于指令周期在可能的情况下包含了取指令操作所需的时间,故绝大多数单字节指令在一个时钟周期内完成。除了速度改进之外,增强的 8051 内核也包含了下列增强的架构:第二数据指针;扩展了 18 个中断源。该 8051 内核的目标代码与工业标准 8051 微控制器目标代码兼容。但是,由于与标准8051 使用不同的指令定时,现有的带有定时循环的代码可能需要修改。此外,由于外接设备单元比如定时器的串行端口不同于它们在其他的 8051 内核,包含有使用外接设备单元特殊功能寄存器 SFR 的指令代

12、码将不能正常运行。 Flash 预取默认是不使能的,提高了 CPU 高达 33%的性能。这是以功耗稍有增加为代价的,但是因为它更快,所以在大多数情况下提高了能源消耗。可以在FCTL寄存器中使能Flash预取。1.2.5复位 CC2530有 5个复位源:强置输入引脚 RESET_N为低电平;上电复位;掉电复位;看门狗定时器复位;时钟丢失复位。复位后的初始状况如下:I/O 引脚设置为输入、上拉状态(P1.0 和P1.1 为输入,但是没有上拉/下拉);CPU 的程序计数器设置为 0x0000,程序从这里开始运行;所有外部设备的寄存器初始化到它们的复位值(参考有关寄存器的描述);看门狗定时器禁止; 时

13、钟丢失检测禁止。 二 CC2530 RF模块以及信号信道分配模式RF是CC2530的射频模块,无线信道的分配IEEE 802154 规范的物理层定义了三个载波频段用于收发数据:8688686 MHz、902928 MHz和 24002 4835 MHz。在这三个频段上发送数据使用的速率、信号处理过程以及调制方式等方面都存在着一定的差异,其中 2 400 MHz 频段的数据传输速率为 250 kbits,915 MHz、868 MHz 分别为40 kbits 和20 kbits。 IEEE 802.154 规范定义了 27 个物理信道,信道编号从 0 至 26,每个具体的信道对应着一个中心频率,

14、这 27 个物理信道覆盖了以上 3个不同的频段。不同的频段所对应的宽度不同,标准规定 868 MHz 频段定义了 1 个信道(0 号信道);915 MHz 频段定义了 10个信道(110 号信道);2 400 MHz 频段定义了 16 个信道(1126 号信道)。这些信道的中心频率定义如下: F=8683 MHz k=0 F=906+2(k-1)MHz k=1,2,10 F=2405+5(k-11)MHz k=11,12,26 式中:k 为信道编号,F 为信道对应的中心频率。通常,ZigBee 硬件设备不能同时兼容两个工作频段,在选择时,应符合当地无线电管理委员会的规定。 由于 868868

15、6 MHz 频段主要用于欧洲, 902928 MHz 频段用于北美, 4002483.5 MHz频段可以用于全球,因此在中国所采用的都是2400MHz的工作频段。三 设计流程3.1 CC2530 模块进行简单的点到点无线通信3.2 设计原理及说明 实验主要分为 3 大部分,第一部分为初始化与 RF 相关的信息;第二部分为发送数据和接收数据;最后为选择模块功能函数。其中模块功能的选择是通过开发板上的按键来选择的,其中按键功能分配如下:SW1 - 开始测试(进入功能选择菜单) SW2 - 设置模块为接收功能(Light) SW3 - 设置模块为发送功能(Switch) SW4 - 发送模块发送命令

16、按键 当发送模块按下 SW4 时,将发射一个控制命令,接收模块在接收到该命令后,将控制LDE1 的亮或者灭。其中 LED6 为工作指示灯,当工作不正常时,LED5 将为亮状态。 3.3 设计步骤1、给智能主板供电(USB外接电源或 2 节干电池) 。 2、将两个无线节点模块分别插入到两个带 LCD的智能主板的相应位置。 3、将 2.4G的天线安装在无线节点模块上。 4、将 CC2530仿真器的一端通过 USB线(A 型转B型)连接到 PC 机,另一端通过 10Pin下载线连接到智能主板的 CC2530 JTAG 口(J203) 。5、将智能主板上电源开关拨至开位置。按下仿真器上的按钮,仿真器上

17、的指示灯为绿色时,表示连接成功。 6、使用 IAR7.51 打开“OURS_CC2530LIBlib11(simple_RF) IAR_files”下的simple_RF.eww 文件,下载程序。7、关掉智能主板上电源,拔下仿真器,按 4、5步骤对另一个模块下载程序。 8、打开两个模块的电源,当 LED1 处于亮时,按下 SW1 进入模块功能选择。然后一个模块按下 SW2 设置为接收功能(Light),此时 LED3 将被点亮;另一个模块按下 SW3 设置为发送功能(Switch) ,此时LED4 将被点亮。 9、按下发送模块的 SW4 按键,接收模块的 LED6 将被点亮,再次按下 SW4

18、按键,LED6将被熄灭。 注:如果需要重新设置模块的收发功能,按复位按键。3.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_CHANNEL 25 / 2.4 GHz RF 使用信道 25 #define PAN_ID 0x2011 /通信 PANID #define SWITCH_ADDR 0x2530 /开关模块地址 #define LIGHT_ADDR 0xB

19、EEF /灯模块地址 #define APP_PAYLOAD_LENGTH 1 /命令长度 #define LIGHT_TOGGLE_CMD 0 /命令数据 / 应用状态 #define IDLE 0 #define SEND_CMD 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 HA

20、L_BUTTON_5 5 #define HAL_BUTTON_6 6 static uint8 pTxDataAPP_PAYLOAD_LENGTH; /发送数据数组 164 static uint8 pRxDataAPP_PAYLOAD_LENGTH; /接收数据数组 static basicRfCfg_t basicRfConfig; /RF 初始化结构体 extern void halboardinit(void); /硬件初始化函数 extern void ctrPCA9554FLASHLED(uint8 led); /IIC 灯控制函数 extern void ctrPCA9554L

21、ED(uint8 led,uint8 operation); extern uint8 halkeycmd(void); /获取按键值函数 #ifdef SECURITY_CCM /安全密钥 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

22、appSelectMode(void); /选择应用功能函数 /* /函数名称:appLight * 功能描述:接收模式应用函数,初始化 RF 一些参数,接收另一个模块发送的控制命令,然后控制相应的 LED 灯 * 参 数:无 * 返 回 值:无 /*/ static void appLight() basicRfConfig.myAddr = LIGHT_ADDR; /设置接收模块的地址 if(basicRfInit(&basicRfConfig)=FAILED) /RF 初始化 ctrPCA9554FLASHLED(5); /RF 初始化不成功,则所有的 LED5 闪烁 basicRfRe

23、ceiveOn(); /打开接收功能 / Main loop while (TRUE) while(!basicRfPacketIsReady(); /准备接收数据 if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)0) /接收数据 if(pRxData0 = LIGHT_TOGGLE_CMD) /判断命令是否正确 ctrPCA9554FLASHLED(1); /关闭或打开 LED1 * 函数名称:appSwitch * 功能描述:发送模式应用函数,初始化发送模式 RF,通过按下 SW4 向另一个模块发送控制命令。 * 参 数:无 * 返

24、回 值:无 static void appSwitch() pTxData0 = LIGHT_TOGGLE_CMD; /向发送数据中写入命令 basicRfConfig.myAddr = SWITCH_ADDR; /设置发送模块的地址 if(basicRfInit(&basicRfConfig)=FAILED) /RF 初始化 ctrPCA9554FLASHLED(5); /RF 初始化不成功,则所有的 LED5 闪烁 basicRfReceiveOff(); /关闭接收功能 / Main loop while (TRUE) if(halkeycmd() = HAL_BUTTON_4) /判断

25、是否按下 SW4 basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH);/发送数 halIntOff(); /关闭全局中断 halIntOn(); /打开中断 * 函数名称:appSelectMode * 功能描述:通过 SW2 或SW3 选择模块的应用模式。 * 参 数:无 * 返 回 值:LIGHT - 接收模式 * SWITCH - 发送模式 * NONE - 不正确模式 /*/static uint8 appSelectMode(void) uint8 key; GUI_ClearScreen(); /LCD 清屏 GUI

26、_PutString5_7(25,6,OURS-CC2530); /在 LCD 上显示相应的文字 GUI_PutString5_7(10,22,Device Mode: ); 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(

27、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_ClearScreen(); GUI_PutString5_7(25,6,OURS-CC2530); /在 LCD 上显示相应的文字 GUI_PutString5_7(10,22,Device Mode: ); GUI_PutString5_7(10,35,Swit

28、ch); 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_C

29、HANNEL; /设置信道 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(10,22,Simple

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2