基于MSP430的无线通信系统设计_第1页
基于MSP430的无线通信系统设计_第2页
基于MSP430的无线通信系统设计_第3页
基于MSP430的无线通信系统设计_第4页
基于MSP430的无线通信系统设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

清华 大学 2012 届毕业设计说明书 基于 MSP430 的无线通信系 统 设计 摘要 本文 介绍了一种基于 MSP430 单片机与 NRF24L01 的无线通信系统设计。 该系统由单片机系统、 NRF24L01 无线模块、 电源管理模块 、 复位电路 等单元电路 组成。 该系统所用到的无线收发系统采用 NRF24L01 与集成芯片 NETUSB2401L 构成 ,利用单片机的 内部ADC12进行模拟信号与数字信号的转换 ,应用把转换的结果 内部 DMA暂时存储在 FLASH,通过 SPI串口发 送给 NRF24L01, NRF24L01收到数据后通过无线发送给 NETUSB24L01,在通过终端机进行处理分 析 。它的核心控制器采用 体积小 , 低功耗 的 单片机 MSP430实现 。该系统主要 应用于对于测试环境复杂的压力、温度等信号 实时无线传输到终端进行处理分析。 关键词: 单片机 MSP430 , NRF24L2401, 无线传输 清华 大学 2012 届毕业设计说明书 The wireless communication system design based on MSP430 Abstract This article describes a wireless communication system based on MSP430 MCU and NRF24L01 design. The system consists of the SCM system, the nRF24L01 a wireless module, power management module, the reset circuit unit circuit. The system used by the wireless transceiver system uses NRF24L01 and integrated chip NETUSB2401L of composition, use of the microcontrollers internal ADC12 analog signal and digital signal conversion, the results of the conversion application internal DMA to temporarily store in FLASH.SPI send nRF24L01 nRF24L01 data received through the wireless send NETUSB2401L through the terminal machine processing and analysis. Its core controller, small size, to achieve low-power microcontroller MSP430. The system is mainly used in real-time wireless transmission of complex test environment pressure, temperature and other signals to the terminal for processing and analysis. Keywords: SCM the MSP430, NRF24L2401, Wireless transmission 清华 大学 2012 届毕业设计说明书 第 I 页 共页 目 录 1 引言 . 1 1.1课题的背景与来源 . 1 1.2 无限传输的优点 . 2 1.3 课题的意义 . 3 1.4 课题的设计内容及优势 . 3 2 系统总体方案设计设计 . 5 2.1 系统概述 . 5 2.2 整体电路图 . 5 3 硬件 电路设计 . 7 3.1 电源管理电路 . 7 3.1.1 电路设计 . 7 3.1.2 LP2985 芯片简介 . 7 3.2 复位电路 . 8 3.2.1 MAX708 芯片简介 . 8 3.2.2 复位电路设计 . 10 3.3 时钟电路 . 11 3.4 无线模块电路 . 11 3.4.1 nRF24L01 芯片简介 .11 3.4.2 nRF24L01 无线模块电 路 . 15 3.4.3 NETUSB2401 无线模块介绍 . 15 3.5 单片机控制模块 . 16 3.5.1 MSP430 的简介 . 16 3.5.2 MSP430 的功能特性 . 17 3.6 MSP430内部 ADC12模块 . 18 3.6.1 MSP430 内 部 AD12 介绍 . 18 3.6.2 ADC12 接地和噪声的考虑 . 22 3.7 MSP430内部 DMA 模块 . 23 4 软件设计 . 27 清华 大学 2012 届毕业设计说明书 第 II 页 共页 5 总结 . 32 附录 一:整体电路图 . 34 附录 二:系统程序 . 35 参考文献 . 49 致谢 . 51清华 大学 2012 届毕业设计说明书 第 1 页 共 51 页 1 引言 1.1 课题的背景与来源 无线通信是利用电磁波 信号 可以在自由空间中传播的 特性进行信息交换的一种通信方式, 1897 年 M.G.马可尼成功完成了在一个固定点与一艘拖船之间的无线通信试验后 , 标志通信技术的发展进入了无线领域的新阶段。为了能够区分不同的信号,通常以信号的频率来做标志,因此在无线通信技术中频率是非常重要的资源。世界各国都有相关的无线电管理部门来负责管理本国的无线频率资源,建设使用无线通信的网络都需要经过这些部门的审批,并购买一定范围频率资源的使用权才可以开始运营。惟有如此,才能保证各种使用无线信号的行业之间不会互相冲突,各自在规定的频率范围内工作。另外在通信中常常需要传输的 信号本身是低频率的信号,但为了能够依照频率的划分来区分各种信号,需要对信号进行调制,把低频信号通过一定的调制信号附着在特定的频率上再发送到空间中,以避免造成信号间的无序干扰 1。 近些年信息通信领域中,发展最快、应用最广的就是无线 通信技术 。 自从 MSP430单片机问世以来,就以其体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛的在智能仪器仪表、工业控制、家用 电器、计算机网络、通信领域、以及医用设备等领域都得到了 应用。在仪器仪表领域,结合不同的传感器,可实现诸如电压、频率、温度、流量、速度、压力、角度等物理量 的测量。采用单片机控制使得一起仪表的数字化、智能化、微型化,且 功能比起采 用数字或电子电路更加强大。例如精密的测量设备功率计、示波器以及 分析仪 2。 单片机也可以构成形式多样的控制系统、数据采集系统。如工厂流水线的智能化管理、电梯智能化控制、各种报警系统,还可以与计算机联网构成二级控制系统等。如今家用电器上 基本都有采用单片机控制,从电饭煲、洗衣机、电冰箱、空 调、彩电、其他音箱视频器材、再到电子天平设备,可谓五花八门,无所不在 3。 现在的单片机普遍具备通信接口,可以很方便的与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备上都基本实现了单片机的智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随时可见的移动电话、集群移动通信、无线对讲机等 4。 单片机在医疗设备中的用途亦然很广泛,例如医用呼吸机,各种智能分析仪,监护清华 大学 2012 届毕业设计说明书 第 2 页 共 51 页 仪,超声诊断设备以及病床无线呼叫系统等。 对于单片机的应用 可谓是一种趋势,并且这种趋势将更加热烈,将渗透到各个领域,各个方面。通过对于通信技术的学习,以及简单的编程语言学习,作为一名具备一定基础知识的大学生,应该在此基础上学会对于单片机的基本应用,达到所学所用的目的。本课题是基于 MSP430的无线通信系统设计,课题响应了时代的要求,有重要的现实意义。由于在数据采集环境中,干扰严重,环境复杂,有线通信 由于布线不合理与电磁干扰等因素的影响, 对于数据的 正确 传输 受 到了很大的限制, 导致误码率低,信号失真严重。为了满足这个方面的不足,如何应用解决本实际要求,开发一款无线传输系 统,可对于这些信号进行实时的、低误码率的传输满足要求十分必要。基于本方面的应用要求,应用 MSP430单片机进行控制与 NRF24L01无线传输可以实现此目的 1,4。 1.2 无限传输的优点 1成本廉价 有线通信方式的建立必须架设电缆,或挖掘电缆沟,因此需要大量的人力和物力;而用无线数传电台建立专用无线数据传输方式则无需架设电缆或挖掘电缆沟,只需要在每个终端连接无线数传电台和架设适当高度的天线就可以了。相比之下用无线数传模块建立专用无线数据传输方式,节省了人力物力,投资是相当节省的。当然在一些近距离的数据 通讯系统中,无线的通讯方式并不比有线的方式成本低,但是有时候实际的现场环境难以布线,客户根据现场环境的需要还是会选用无线的方式来实现通讯。 2建设工程周期短 当要把相距数公里到数十公里距离的远程站点相互连接通讯的时候,采用有线的方式,必须架设长距离的电缆或者挖掘漫长的电缆沟,这个工程周期可能就需要数个月的时间,而用数传模块建立专用无线数据传输的方式,只需要架设适当高度的天线,工程周期只需要几天或者几周就可以,相比之下,无线的方式可以迅速组建起通信链路,工程周期大大缩短。 3适应性好 有 线通讯的局限性太大,在遇到一些特殊的应用环境,比如遇到山地、湖泊、林区等特殊的地理环境或是移动物体等布线比较困难的应用环境的时候,将对有线网络的布线工程有着极强的制约力,而用无线数传模块建立专用无线数据传输方式将不受这些清华 大学 2012 届毕业设计说明书 第 3 页 共 51 页 限制,所以说用无线数传模块建立专用无线数据传输方式将比有线通讯有更好的更广泛的适应性,几乎不受地理环境限制。 4 扩展性好 在用户组建好一个通讯网络之后,常常因为系统的需要增加新的设备。如果采用有线的方式,需要重新的布线,施工比较麻烦,而且还有可能破坏原来的通讯线路,但是如果采用 无线数传电台建立专用无线数据传输方式,只需将新增设备与无线数传电台相连接就可以实现系统的扩充了,相比之下有更好的扩展性。 5 设备维护上更容易实现 有线通讯链路的维护需沿线路检查,出现故障时,一般很难及时找出故障点,而采用无线数传模块建立专用无线数据传输方式只需维护数传模块,出现故障时则能快速找出原因,恢复线路正常运行 3。 1.3 课题的意义 由于测试环境的恶劣,一些测量物体的运动,有线数据传输的布线困扰, 一 套 系统能满足 这些 测试要求,适合于对于复杂测试环境的数据采集 传输 ,显得十分必要 。虽然动态的压力数据采集可以通过数据采集卡实现,然而数据采集卡开发成本较高,数据的采集也往往受限于某位置,静止被测物体运动,这在一定程度上为测试带来了不便,特别是针对于某些 运到参数的测量,如行走、运到等,被测对象因限于测量设备电源线、数据传输的长度无法展开运到。 目前,无线通信技术发展日趋成熟,采用无线通信实现数据的传输具有成本低廉、适应性好、扩展性好以及开发周期短等特点 , 针对于一些运到物体某些参数的测量不便,以及复杂的测试环境现场布线会产生较高的误码率,本 文 提出了一种以 MSP430为核心,配以 NRF24L01 无线模块传输数据, 既能够实现对被测信号的高速采集,又能够准确可靠地将数据传递给 计算机 进行处理。 可以实现对于一些在一定范围内运动的物体进行参数测量,从而省去了布线带来的麻烦,还提高了传输效率。 1.4 课题的设计内容 及优势 系统的主要功能: 对采集的信号通过适配电路转换后,在符合 MSP430 单片机的接口允许范围内时输出单片机,用内置的 ADC12 进行模拟信号与数字信号的转换,单片机通过 SPI 传输协议将处理后的信号发送给 NRF24L01,在 NRF24L01 再将此信号通清华 大学 2012 届毕业设计说明书 第 4 页 共 51 页 过无线发送到 NETUSB-24L01, NETUSB-24L01 无线模块自带有控制接收的外围电路和USB 接口, 可与计算机直接相连,对信号进行实时分析处理,从而了解被测参数。 本课题的优势:采用无线通信,免去了有线传输中的高额布线成本和复杂的抗干扰方案设计,并且可以测量运动物体的参量,其应用灵活。在需要的情况下可以加入CD4501 作为多路开关,实现在于数据的多路采集,拓展性强。由于采用的 MSP430 单片机,其以低功耗,体积小,功能模块强而突出,使得本通信系统低功耗,减小了对于电源 的成本,更多的模块功 能使得对于系统的升级应用提供了很大的方便。 MSP430 单片机是高度集成芯片,采用集成芯片设计后,对于电路的维护,检修带来了很大的方便。 清华 大学 2012 届毕业设计说明书 第 5 页 共 51 页 2 系统总体方案设计 2.1 系统概述 本系统 模块主要由上位机硬件电路和下位机硬件电路组成。其主要功能是完成 对 采集数据的传输。上位机硬件电路由计算机应用软件、 NETUSB-24L01 无线模块组成。NETUSB-24L01 无线模块自带有控制接收的外围电路和 USB 接口,可与计算机直接相连。其使用简单、易与掌握。下位机硬件电路选择 MSP430FG4618 作为核心的控制芯片,主要功能是完成模拟信号的采集、接收 上位机发送的无线通讯命令,并能够将 A/D 转换后的数字量 用 DMA 传送给 FLASH 进行存储,通过 SPI 模式传递给 nRF24L01,数据暂存至 TX_FIFO 中。 SPI 串口速率在通信协议和器件配置时已确定 6 10。 系统框图如下: 图 2.1 系统框图 2.2 整体电路图 整体电路图 主要 包括 NRF24L01 无线模块 和 MSP430 控制模块 。 MSP430 摸块 电路图设计相对而言比较复杂,其中电源管理电路、时钟电路和复位电路 ,也要考虑到高频收发电路布线的注意事项, 这是 主控 电路的重点与难点。 其中复位电路模块采用 MAX708芯片,电源模块采用 LP2985 将 5V 的电眼转换为 MSP430 需要的电压 3.3V, 输出电压也比较稳定,纹波少 。时钟选择 芯片 SG350SCF,作为 MSP430 的主系统是时钟,频率为 8M。主控芯片则选择内部资源丰富,低功耗、体积小的 MSP430 单片机。 无线模块选用 NRF24L01 无 线 收 发 芯 片 , 其 配 置 比 较 简 单 。 整 体 电 路 如 下 :MSP430FG4618 nRF24L01 NETUSB2401L 信号 适配电路 A/D DMA AA 计算机 串口 USB接口 天线 天线 清华 大学 2012 届毕业设计说明书 第 6 页 共 51 页 V D D2C S N4M O S I6I R Q8G N D1CE3S C K5M I S O7U2N R F 2 4 0 1 模块D V C C 11P 6 .3 /A 3 / O A 1 O2P 6 .4 /A 4 / O A 1 I03P 6 .5 /A 5 / O A 2 O4P 6 .6 /A 6 / D A C 0 / O A 1 05P 6 .7 /A 7 / D A C 1 / S V S I N6V R E F +7X IN8X O U T9V e R E F + / D A C O10V R E F - /V e R E F -11P 5 .1 /S 0 / A 1 2 / D A C 112P 5 .0 /S 1 / A 1 3 / O A 1 I 113P 1 0 . 7 / S 2 / A 1 4 / O A 2 I114P 1 0 . 6 / S 3 / A 1 515P 1 0 . 5 / S 416P 1 0 . 4 / S 517P 1 0 . 3 / S 618P 1 0 . 2 / S 719P 1 0 . 1 / S 820P 1 0 . 0 / S 921P 9 .7 /S 1 022P 9 .6 /S 1 123P 9 .5 /S 1 224P 9 .4 /S 1 325P9.3/S1426P9.2/S1529P9.1/S1628P9.0/S1729P8.7/S1830P8.6/S1931P8.5/S2032P8.4/S2133P8.3/S2234P8.2/S2335P8.1/S2436P8.0/S2537P7.7/S2638P7.6/S2739P7.5/S2840P7.4/S2941P7.3/S30/UCA0CLK42P7.2/S31/UCA0SOMI43P7.1/S32/UCA0SIMO44P7.0/UCA0STE/S3345P4.7/UCA0RXD/S3446P4.6/UCA0TXD/S3547P4.5/UCLK1/S3648P4.4/SOMI1/S3749P4.3/SIMO1/S3850P 4 .2 /S T E 1 /S 3 951C O M 052P 5 .2 /C O M 153P 5 .3 /C O M 254P 5 .4 /C O M 355P 5 .5 /R 0 356P 5 .6 /L C D R E F / R 1 357P 5 .7 /R 2 358L C D C A P / R 3 359D V C C 260D V S S 261P 4 .1 /U R X D 162P 4 .0 /U T X D 163P 3 .7 /T B 664P 3 .6 /T B 565P 3 .5 /T B 466P 3 .4 /T B 367P 3 .3 /U C B 0 C L K68P 3 .2 /U C B 0 S O M I/ U C B 0 S C L69P 3 .1 /U C B 0 S I M O / U C B 0 S D A70P 3 .0 /U C B 0 S T E71P 2 .7 /A D C 1 2 C L K /D M A E 072P 2 .6 /C A O U T73P 2 .5 /U C A 0 R X D74P 2 .4 /U C A 0 T X D75P2.3/TB276P2.2/TB177P2.1/TB078P2.0/TA279P1.7/CA180P1.5/TACLK/ACLK82P1.6/CA081P1.4/TBCLK/SMCLK83P1.3/TBOUTH/SVSOUT84P1.2/TA185P1.1/TA0/MCLK86P1.0/TA087XT2OUT88TDO/TDI90XT2IN89TDI/TCLK91TMS92TCLK93RST/NMI94P6.0/A0/OA0I095P6.2/A2/OA0I197AVSS98DVSS199AVCC100P6.1/A1/OA0O96U4M S P 4 3 0 F G 4 6 1 8R E S E T8R E S E T /7NC6P F O /5M R /1V C C2G N D3P F I4U1M A X 7 0 8V in1G N D2O N / O F F3O U T5B Y P A S S4U5L P 2 9 8 5ST1G N D2O U T3V C C4U6S G 3 5 0 S C F - 8 M12345678J1C O N 8Q1P N P 1S1S W -P BD1L E DR21KR11KR32 2 KR41KC21 0 0 n FD V C CC31 0 0 n FD V S SC41 0 n F+ C11 0 u F+ C91 0 u F+ C 1 11 0 u FV R E F - /V e R E F -+C51 0 u F+ C 1 31 0 u FV e R E F + C 1 51 0 u FC61 0 0 n FV R E F +G N DC81 0 0 n FCEC 1 01 0 0 n FS C KC 1 41 0 0 n FY T D OAVSSS O M IC 1 21 0 0 n FY T M SDVSSV D DY T D IAVCCC S NY T C L KD V C CS I M OY R S TY IR QG N DV D DG N DG N DV D DV D DG N DP6.0YRSTV D DYTCLKA V S SY 8 MG N DYTMSV R E F - /V e R E F -G N DG N DYTDIA V S SV C CYTDOV R E F +Y8MA V S SY R S TV e R E F +A V S SA V C CD V S SD V C CV C CV C CV C CG N DCEG N DYIRQV D DSCKG N DSOMIB Y P A S SV C CSIMOG N DG N DCSNB Y P A S S1J2C O N 1V D D+C71 0 u FV D D 图 2.2 整体电路图 清华 大学 2012 届毕业设计说明书 第 7 页 共 51 页 3 硬件 电路设计 主要由电源管理模块, 复位电路模块, 时钟模块 , AD 转换模块, 无线模块, DMA模块 等 组成。 3.1 电源管理电路 3.1.1 电路设计 因为 MSP430FG4618 单片机工作电压为直流 3.3V,且底层电路功耗很小。电源的设计的好坏决定了电压输出的稳定性 ,从而决定单片机是否能稳定工作 。本电源的设计采用 LP2985 将 5V 的电压转换为 3.3V,此芯片低噪声低压差 。为了降低干扰,采用了小电容与地连接 11。 具体电路如图 3-3: 图 3.1 电压变换模块电路图 3.1.2 LP2985 芯片简介 芯片优势 : 该芯片有能力提供 150mA 连续负载电流, 有 过热保护。有低漏失,低静态电流,该稳压器允许使用小,价格低廉的陶瓷电容,降低设计成本。另外 还具有低噪声,小包装的优势。 结构框 图如下 : 清华 大学 2012 届毕业设计说明书 第 8 页 共 51 页 图 3.2 LP2985结构 框图 3.2 复位电路 3.2.1 MAX708 芯片简介 概述: MAX708 是一种微处理器电源监控芯片 , 可同时输出高电平有效和低电平有效的复位信号 。 复位信号可由 VCC电压 、 手动复位输入 、 或由独立的比较器触发 。 独立的比较器可用于监视第二个电源信号 , 为处理器提供电压跌落的预警功能 。 这一功能是为器件发出复位信号前的正常关机 、 向操作者发送警报 、 或电源切换而考虑的 。 MAX708 提供 3种域值电平可供选择 。 性能: RESET 信号 /RESET 信号输出 域值值为 1.25V 用于电源失效或低电源警告的独立比较器 手动复位输入 需要 100 uA 的电源电流 复位域值为 2.63V 2.93V 3.08 V 在 VCC = 1 V 时能提供有效的 RESET 信号 清华 大学 2012 届毕业设计说明书 第 9 页 共 51 页 应用 : 电池供应的器件 微处理器临界状态监控 控制器 便携式工具 芯片引脚图: 图 3.3 MAX708引脚图 MAX708 是电压监测芯片,当输 入电压低于某个值是, 708 产生复位信号。 MAX708 的引脚使用说明: MAX708 VCC-电源 MAX708 GND-地 MAX708 RS-复位输出(高电平的复位信号),即输出高电平的复位信号 MAX708 /RS-复位输出(低电平的复位信号),即输出低电平的复位信号 MAX708 /MR-手动复位 (manual reset)。当这一端的电压低于 0.8V 时, RS 端和 /RS端有信号产生 MAX708 PF1-电压失败输入端。当这一端电平低于 1.25V 时, /PF0 变为低电平。当这一脚不用时,将它接地或接 VCC MAX708 /PF0-电压失败输出端。一般悬空不用 MAX708 NC-没连接 原理框图: 清华 大学 2012 届毕业设计说明书 第 10 页 共 51 页 图 3.4 MXX708原理框图 3.2.2 复位电路设计 电路由 MXA708 复位芯片、电阻、 PNP 三极管、按键、发光二级管构成。当按键按下时, /MR 引脚为 0.7V 的低电平,在 /RESET 引脚产生信号,输送给体统,使单片机复位。按键的同时发光二极管发光,提示系统复位 12。 图 3.5 复位电路 清华 大学 2012 届毕业设计说明书 第 11 页 共 51 页 3.3 时钟电路 时钟电路采用集成的四脚 8M 晶体振荡器 SG350SCF-8M,作为单片机 MSP430 的主系统时钟 ,该电路设计比较简单,连接方便 13。电路设计图如下 : 图 3.6 时钟电路 3.4 无线模块电路 与单片机相连接的无线模块采用 nRF24L01芯片,与电脑相连的选择 NETUSB-2401芯片, NETUSB-24L01无线模块自带有控制接收的外围电路和 USB接口,可与计算机直接相连。 无线传输技术有 无线传输蓝牙技术 (Bluetooth Technology ), ZigBee( IEEE 802.15.4), IrDA, (Infrared) 红外技术 , Wi-Fi(IEEE 802.11): W ireless Fidelity, UWB (Ultra-Wideband), nRF2401L射频收发芯片 。 其中 IrDA (Infrared) 红外传输波长短 , 对障碍物的衍射能差 ; W i-F i 覆盖范围很广 , 可达 100 m ,但是 其电波易受干扰 ; U V B 技术 目前 只有在美国官方承认 ; ZigBee 技术和蓝牙接近 , 但大多时候处于睡眠模式 , 适合于不需实时传输 或连续更新的场合 ; nRF24L01 单片射频收发芯片 , 2.4 GHz 频段 ,采用 G F SK 调制时的数据速率为高速率 8M bps, 高于蓝牙 , 具有高数据吞吐量 ,程序开发简单 。考虑到 实时采集数据 ,选择 nRF24L01芯片作为无线传输芯片 14,15。 3.4.1 nRF24L01 芯片简介 nRF24L01 是一款工作在 2.42.5GHz 世界通用 ISM 频段的单片无线收发器芯片。无线收发器包括 :频率发生器、增强型 SchockBurstTM 模式控制器、功率放大器晶体振荡器、调制器、解调器。输出功率、 频道选择和协议的设置可以通过 SPI 接口进行设置。 极低的电流消耗 : 当工作在发射模式下发射功率为 -6dBm 时电流消耗为 9.0mA,接收模式时为 12.3mA,掉电模式和待机模式下电流消耗更低。 清华 大学 2012 届毕业设计说明书 第 12 页 共 51 页 结构方框图 : 图 3.7 nRF4L01 及外部接口 nRF24L01芯片引脚图 : 图 3.8 nRF24L01芯片引脚图 清华 大学 2012 届毕业设计说明书 第 13 页 共 51 页 nRF24L01引脚及功能 图 3.9 nRF24L01引脚及功能说明 工作模式: nRF24L01可以设置为 以 下几种主要的模式 图 3.10 nRF24L01主要工作 模式 nRF24L01 在不同模式下的引脚功能 : 清华 大学 2012 届毕业设计说明书 第 14 页 共 51 页 图 3.11 nRF24L01引脚功能 nRF24L01所有的配置都在配置寄存器中,所有寄存器都是通过 SPI口进行配置的。 SPI接口: SPI接口是标准的 SPI接口,其最大的数据传输率为 10Mbps。大多数寄存器可读。 SPI指令设置: CSN为低后 SPI接口等待执行指令,每条指令的执行都必须通过一次 CSN由高到低的变化。 中断 : nRF24L01的终端引脚( IRQ)为低电平触发,当状态寄存器 TX-DX, RX-DR或 MAX-RT为高时触发 中断。当 MCU给中断源写 1时,中断引脚被禁止。可屏蔽中断可以被 IRQ中断屏蔽。通过设置可屏蔽中断位为高,则中断响应被禁止。默认状态所有的中断源是被禁止的。 SPI时序: Sn-状态寄存器位 ; Dn-数据位 。 图 3.12 SPI读操作 时序图 图 3.13 SPI写操作时序图 清华 大学 2012 届毕业设计说明书 第 15 页 共 51 页 图 3.14 SPI NOP 操作时序图 3.4.2 nRF24L01 无线模块电路 本模块由于设计 主要共能是与单片机 MSP340进行数据传输,并将收到的数据通过无线将数据传输到 NETUSB2401, NETUSB2401同过 USB与计算机相连。 所用引脚如图,其他采用悬空处理 16。 图 3.15 nRF24L01无线模块电路 3.4.3 NETUSB2401 无线模块介绍 NetUSB-2401为 USB接口无线通信模块,采用 2.4GHz全球开放频段免许可证使用,外形小巧( USB大小),最大传输数率达 2Mbps,适用于室内通过电脑无线遥控,无线数据采集等 。 性能及特点: 清华 大学 2012 届毕业设计说明书 第 16 页 共 51 页 (1) 2.4Ghz全球开放频段免许可证使用 (2) 最高工作速率 2Mbps,高效 GFSK调制,适合短距离无线控 (3) 125 频道,满足多点通 信和跳频通信需要 (4) 内置硬件 CRC 检错和点对多点通信地址控制 (5) 低功耗 1.9 3.6V 工作, Power down 模式下状态仅为 1uA (6) 可软件设地址,只有收到本机地址时才会输出数据(提供中断指示 ) (7) 提供二次开发包,提供实例源代码,无需掌握 USB驱动和 USB协议以及无线通信协议,只需要通过软件编程来控制无线收发 (8) 室内通讯距离约为 1530米,看具体环境和通信速率而定 (9) 模块尺寸 : U盘大小 (可以根据需要定制外观和尺寸 ) 图 3.16 NETUSB2401实 物图片 3.5 单片机控制模块 3.5.1 MSP430 的简介 MSP430系列单片机是美国德州仪器( TI) 1996年开始向市场推出的一种超低功耗拥有精简指令集( RISC )处理器的混合信号( Mixed Signal Processor)。由于它针对实际的应用需求,将多个不同的模拟电路、数字电路模块和微处理器集成在一个芯片上,清华 大学 2012 届毕业设计说明书 第 17 页 共 51 页 所以称之为混合信号处理器。该系列单片机多用于需要电池供电的便携式仪器仪表中 2。 3.5.2 MSP430 的功能特性 低电源电压范围: 1.8V至 3.6V 超低功耗:主动模 式 :400微安在 1MHz, 2.2V时 待机模式: 2.2微安 关闭模式( RAM保持): 0.35微安 有五种省电模式, 在不到 6微妙 就 从待机模式下 唤醒 16位 RISC构架,扩展内存, 125ns指令周期时间 三通道内部 DMA 12位 A/D转换 器具有内部参考,采样保持和自动扫描功能 16位 3路 Timer-A比较寄存器 16位 7路 Timer-B比较寄存器 电源电压监控器可编程电平检测 串行通信接口( USART1) ,可以通过软件选择同步 USRT或同步 SPI 通用串行通信接口:增强型 USRT支持自动波特率检测 IrDA编程器和解码器 同步 SPI I2C总线标志 MSP430引脚图 : 清华 大学 2012 届毕业设计说明书 第 18 页 共 51 页 图 3.17 MSP430引脚分布图 3.6 MSP430 内部 ADC12 模块 3.6.1 MSP430 内部 AD12 介绍 这 个 ADC12模块支持快速 12位模数转换。这个模块包含 12位的内核、内部参考 和 16位的转换控制缓冲寄存器,这个转换控制缓冲允许 16通道的信号独立转换不受 CPU的干预 2。 ADC12特点包括 : 大于 200 ksps最大转化率 12位转换器没有失踪的代码 采样与可编程, 采样周期 用 软件或计时器 控制 。 清华 大学 2012 届毕业设计说明书 第 19 页 共 51 页 转换启动的软件 ,Timer_A,或 Timer_B 软件可选片上参考电压一代 (1.5 V或 2.5 V) 软件可选的内部或外部引用 八个单独配置外部输入通道 (12个 MSP430FG43x和 MSP430FG461x设备 ) 转换频道为内部温度传感器 ,AVCC,和外部引用 独立 channel-selectable参考来源为 正 和 负 引用 选择转换时钟源 ,重复单次 转换 、顺序及 重复 序 列 ADC12的功能模块; 1. 参考电压发生器; AD都需要一个基准信号,通常 为电压基准。 ADC12内置参考电源,而且参 考电压有 6种可编程选择,分别为 VR+与 VR-的组合。 其中 VR+有: AVCC(模拟电源正端) VREF+( A/D转换器内部参考电源的输出正端) VeREF+(外部参考电源的正输入端 ) VR-有: AVSS( 电源负端) VREF-或 VeREF-( A/D转换器内部或者外部参考电源负端) 2. 模拟多路器: 对多个模拟信号进行采 样并转换时,由于 A/D只有一个转换内核,每次只能选通一个信号进行采样并转换。 ADC12配置有 8路外部通道和 4路内部通道: 8路外部通道: A0 A7实现外部 8路模拟信号的输入 4路内部通道: VeREF+, VREF-或 VeREF-,( AVCC-AVSS) /2,片内温度传感器的输出。 3. 具有采样和保持功能的 12位转换器内核: ADC12是一个 12位的模数转换器,并能够将数据保存在转换存储器中。 该内核可以可编程的参考电压( VR+和 VR_)定义 转换的最大值和最小值。当输入模拟电压等于或者高于 VR+shi ,ADC12输出满量程值 0FFFH,当输入小于或者等于 VR+时, ADC12输出 0。 输入模拟电压的最终结果满足公式: 清华 大学 2012 届毕业设计说明书 第 20 页 共 51 页 (式 3.1) 4. 采样及转换所需的时序控制 例如: ADC12CLK转换时钟、 SAMPCON采样及转换信号、 SHT控制的采样周期、 SHS控制的采样触发来源选择、 ADC12SSEL选择的内核时钟源及 ADC12DIV选择的分频系数。 5. 转换结果缓存 ADC112共有 12个转换通道,设置了 16个转换存储器,用于暂存转换结果,合理设置后, ADC12硬件会自动将转换结果存放到相应 的 ADC12MEM寄存器中。每个转换器ADC12MEMx都有相应的控制寄存器 ADC12CTLx。控制寄存器控制各个转换寄存器 必须选择的转换条件。 6. 相关寄存器 : 转换控制寄存器: ADC12CTL0与 ADC12CTL1 中断控制寄存器: ADC12IFG、 ADC12IE 控制寄存器: ADC12MCTL0 ADC12MCTL15 存储寄存器: ADC12MEM0 ADC12MEM15 7. ADC提供的四种转换模式: 单通道单词转换 序列通道单词转换 单通道多次转换 序列通道多次转换 清华 大学 2012 届毕业设计说明书 第 21 页 共 51 页 图 3.18 MSP430内 部 ADC12方框图 拓展示例模式 :SHP=0, SHI长度决定采样时间长度。 扩展示例模式时序图 : 清华 大学 2012 届毕业设计说明书 第 22 页 共 51 页 图 3.19 拓展模式转换时序图 脉冲示例模式: SHP=1, SHI用来触发采样。 脉冲示例模式时序图: 图 3.20 脉冲模式转换时序图 3.6.2 ADC12 接地和噪声的考虑 为了提高 AD转换的精度,必须考虑好噪声的处理,加上匹配的电容有助于消除噪声,从而提高转换的精确性 。本设计根据 MSP430的使用手册,采用了 10uF的有极性电容和100nF的无极性性电容进行减弱噪 声影响 17。电路设计如下 : 清华 大学 2012 届毕业设计说明书 第 23 页 共 51 页 图 3.21 ADC12去噪电路 3.7 MSP430 内部 DMA 模块 直接存储器存取 (DMA Direct Memory Access)方式是用硬件实现存储器与存储器之间或存储器与 IO设备之间直接进行高速数据传送,不需要 CPU的干预。这种方式通常用来传送数据块。 MSP430f16x系列单片机内部含有 DMA模块,而且几乎内部所有外设都可以触发 DMA开始存取数据 2。 硬件介绍: MSP430F15X/16X 系列单片机具有 DMA 控制器,从而能够为数据高速传输提供保证。 例如,通过 DMA控制器可以直接将 ADC 转换存贮器的内容传到 RAM 单元。 MSP430系列单片机扩展的 DMA具有来 自 所有外设的触发器,不需要 CPU的干预即可提供先进的清华 大学 2012 届毕业设计说明书 第 24 页 共 51 页 可配置的数据传输能力,从而加速了基于 MCU的信号处理进程, DMA传输的触发来源对 CPU 来说是完全透明的, DMA控制器可在内存与外部及外部硬件之间进行精确的传输控制。 DMA 消除了数据传输延迟时间以及各种开销,从而可以解放 16为 RISC CPU,以便其将更多的时间用于处理数据,而非执行正在处理的任务 2。 MSP430F16x系列单片机的 DMA模块有以下特点:数据传送不需要 CPU介入,完全由 DMA控器自行管理。在整个地址空间范围内传输数据,块方式传输可达 65536字节;能够提高片内外设数据吞吐能力,实现高速传输,每个字或者字节的传输仅需要 2个MCLK;减少系统功耗,即使在片内外设进行数据输入或输出时, CPU也可以处于超低功耗模式而不需唤醒;字节和字数据可以混合传送: DMA传输可以是字节到字节、字到字、字节到字或者字到字节。当字到字节传输时,只有字中较低字节能够传输,当从字节到字传输时,传输到字的低字节,高字节被自动清零;四种传输寻址模式:固定地址到固定地址、固定地址到块地址、块地址到固定地址以及块地址到块地址;触发方式灵活:边沿或者电平触发。单个、块或突发块传输模式:每次触发 DMA操作,可以根据需要传输不同规模的数据 。 DMA的四种寻址模式如下图所示: 图 3.22 DMA四种寻址模式 DMA控制器模块: 清华 大学 2012 届毕业设计说明书 第 25 页 共 51 页 3个独立的传输通 道:通道 0、通道 1和通道 2。每个通道都有源地址寄存器、目的地址寄存器、传送数据长度寄存器和控制寄存器。每个通道的触发请求可以分别允许和禁止;可配置的通道优先权:优先权裁决模块,传输通道的优先级可以调整,对同时有触发请求的通道进行优先级裁决,确定哪个通道的优先级最高。 MSP430的 DMA控制器可以采用固定优先级,还可以采用循环优先级。程序命令控制模块,每个 DMA通道开始传输之前, CPU要编程给定相关的命令和模式控制,以决定 DMA通道传输的类型;可配置的传送触发器:触发源选择模块, DMAREQ(软件触发)、 Timer_ACCR2输出、Timer_BCCR2输出、 I2C 数据接收准备好、 I2C 数据发送准备好、 USART接收发送数据、DAC12模块 DAC12IFG、 ADC12模块的 ADC12IFGx、 DMAxIFG、 DMAE0 外部触发源。并且还具有触发源扩充能力。 DMA有六种传输模式: 单字或者单字节传输;块传输;突发块传输;重复单字或者单字节传输;重复块传输;重复突发块传输。前三个,传输完成后 DMAEN自动复位;再次传输时需要重新置位 DMAEN位以使能 DMA通道。后三个为重复模式,一次传输完成后, DMAEN不 复位;再次出发时,可以再次启动数据传输。六种传输模式通过 DMADTx寄存器设置 。 1 单字或者单字节传输 : DMA 通道被定义为单字或者单字节传输模式,每个字或者字节的传输都要触发信号触发。设置 DMADTx=0 就定义了单字或者单字节传输模式,规定的传输完毕后DMAEN 位自动清除,如果需要再次传输,必须重新置位 DMAEN。如果设置 DMADTx 4 为重复单字或者单字节传输模式, DMAEN 位一直保持置位,每次触发伴随一次传输。 DMAxSZ 寄存器保存传输的单元个数,如果该寄存器为 0,则没有传输。传输之前DMAxSZ 寄存器的值写入到一个临时的寄存器中,每次操作之后 DMAxSZ 做减操作。当 DMAxSZ减为零的时候,它所对应的临时寄存器将原来的值重新置入 DMAxSZ,同时相应的 DMAIFG标志置位。 2 块传输模式 : 在块传输模式,每次触发可以传输一个数据块。设置 DMADTx=1 为块传输模式,每个数据块传输完毕, DMAEN 位自动清除,在触发传输下一个数据块之前,该位要被重新置位。在传输某个数据块期间,其他的传输请求将被忽略。设置 DMADTx=5 为重复块传输模式,某个数据块传输完毕, DMAEN 位仍然保持 置位,之后,新的触发可以清华 大学 2012 届毕业设计说明书 第 26 页 共 51 页 引起又一次数据块传送。 DMAxSZ 寄存器保存数据块所包含的单元个数。DMASRCINCR 和 DMADSTINCR 反映在数据块传输过程中的目的地址和源地址的变化情况。在块传输或者重复块传输过程中, DMAxSA, DMAxDA, DMAxSZ 寄存器的值写入到对应的临时寄存器中, DMAxSA, DMAxDA寄存器所对应的临时值在块传输过程中增加或者减少,而 DMAxSZ 在块传输过程中减计数,始终反映当前数据块还有多少单元没有传输完毕,当 DMAxSZ 减为 0,它所对应的临时寄存器将原来的值重 新置入 DMAxSZ,同时相应的 DMAIFG被置位。在块传输过程中, CPU 暂停工作,不参与数据的传输。数据块需要 2MCLKDMAxSZ 个时钟周期。当每个数据块传输完毕, CPU 按照暂停前的状态重新开始执行。 3 突发块传输模式 : 这个和块传输模式类似,只不过每传输 4个字或字节, DMA释放内部总线, CPU运行 2个 MCLK周期;在传输过程中 CPU有 20%的执行时间,而块传输需要等 DMA完全传送完之后, CPU方能运行。 DMA触发源:每个通道的触发源有 DMAxTSELx位进行控制的,这些位必须在 DMAEN位 为 0是进行设置,否则可能出现不可预料的 DMA触发。 清华 大学 2012 届毕业设计说明书 第 27 页 共 51 页 4 软件设计 系统功能的实现是依靠硬件和软件 的相互结合 ,硬件决定了系统基本结构和特性,而软件则是驱动系统的灵魂 ,对硬件进行控制 ,两者缺一不可,相辅相成。本系统的软件分为主程序和子程序。主程序控制整个系统,控制和协调各个执行模块。子程序实现具体的 相关共能 。 本设计的软件程序包括主程序、中断子程序、 数据处理 子程序等等 1820。 程序的 功 能有: 1) 对所需要的模块进行初始化(如 DCO初始化、端口初始化、 SPI初始化、 nRF24L01初始化、定时器初始化等) 2)数据采集、存储 3)用无线的方式发送数据 主流程图 : 图 4.1 主流程图 开始 配置 nRF24L01 为接收状态 是否接收到55? 配置各模块 ADC 采集数据 N Y 存储到 FLASH 无线发送数据 清华 大学 2012 届毕业设计说明书 第 28 页 共 51 页 部分程序 : /数据处理部分 void Data_Pro(unsigned char *rx_buf) if(nRF24L01_RxPacket(rx_buf)=1) /判断是否接收到数据 unsigned char *FLASHADD; / FLASH地址指针 while(&FLASHADD!=0) /发送数据 TxBuf0=0xEB; /写第一个字节内容 TACCTL0 = CCIE; /开启 AD转换定时器 _EINT(); /允许中断 Delay(8000); /延时,等待系统稳定 nRF2401_SetRXinit(); /配置为接收状态,等待接收新的命令 Delay(8000); /等待系统稳定,也为了和上位机速度匹配 else /没有接收到数据 nRF2401_SetRXinit();/配置为接收状态,继续等待,直到检测到接收数据为止 Delay(8000); 初始化流程图 : 清华 大学 2012 届毕业设计说明书 第 29 页 共 51 页 图 4.2 初始化流程图 判断是否接收到数据: DCO 初始化 端口初始化 SPI 初始化 擦除 AD 初始化 nRF24L01初始化 定时器初始化 DMA 初始化 关闭看门狗 配置为接收状态 清华 大学 2012 届毕业设计说明书 第 30 页 共 51 页 图 4.3 通信测试模块 采集存储模块 流程图: 图 4.4 采集存储模块 N Y 启动 ADC 模块 启动 DMA 模块 FLASH 擦除 写 FLASH 开始 判断是否写满 83K 退出 Y 配置 24L01 为接收态 读取 24L01 状态寄存器的值 接收为 55? 通信正常 配置 24L01 为发送态 N 开始 清华 大学 2012 届毕业设计说明书 第 31 页 共 51 页 m代计数器值 ,取值范围 为 0-31。 无线发送 模块 程序: 图 4.5 无线发送 模块 流程图 读 FLASH m=0,读一位,计数器 m+1 m=31? 发送数据 Y N 通信是否正常 退出 开始 清华 大学 2012 届毕业设计说明书 第 32 页 共 51 页 5 总结 通过查阅相关资料,学习了 MSP430FG4618 单片机以及 nRF24L01 无线收发芯片,以及 MAX708、 LP2809 芯片,最终完成了基于无线通信系统的设计。该系统主要的功能是完成对于外部模拟信号通过单片机处理,并通过 nRF24L01 芯片发送出去,接收芯片接收到信号后,把数据传递给终端机。终端机通过相关软件进行 数 据分析,以了解所接收信号的性质。 在本次系统设计过程中的方案选择体会: 对于 AD的选择:可选方案有外部 AD与内部 ADC12 为了满足通信速度的匹配 AD转换后的数据缓存方案:用外加的 FIFO进行 缓存或 用内部的 FLASH模块。 在此系统设计中, 在 AD的选择上 我采用内部的 ADC12经行 AD转换,用内部的 FLASH模块经行数据缓存。在外加上适当的电容对 ADC12 经行减弱干扰处理后, ADC12 的转换可靠性可以和一般的外部 AD相媲美,并且 MSP430 的内部 ADC12资源丰富, 使其配置更加灵活,也能降低设计成本,符合电子设计的经济性原则。 在数据缓存方 案的选择上,我选用了用 MAP430 单片机内部 FLASH,由于 MSP430 单片机的内部 FLASH 资源丰富,容量达 116KB,可以存储较多的采样转换数据,又 ADC12的转换结果存储寄存器可以直接通过 MDA方式传递到 FLASH经行存储。此方案的选择可以满足数据传输速度不匹配的问题,还能加深对于 MSP430 单片机模块功能的了解与应用。如果采用 FIFO 进行数据缓存,会让设计成本大大提高,也让电路设计变得繁琐,不便于调试,检修。所以 我觉得 选择的内部 FLASH缓存更合适 。 在程序设计方面,通过查阅了关于 MSP430 应用资 料,以及学习 MSP430的使用的相关视频,再加上指导老师的指导下,采用由模块到系统的突破方法。首先是学习一些基本的编程流程,思想。在逐个的了解 MSP430 的各个功能, 当对功能模块掌握清楚之后在把模块功能结合起来,经行调试就变得简单了。比当初一开始就系统的学更有效多了。 在四个多月的毕业设计期间,在指导老师的耐心指导下。顺利的完成了本次课程设计。在这个过程中通过对于方案的反复更正,对各个模块的优化,了解了系统设计的基本方法。也让以前学习的知识得到了应用,对于网络的应用以及所需资料的如何获取有了更多的认识。 清华 大学 2012 届毕业设计说明书 第 33 页 共 51 页 但 是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业 知识的能力,对 英文 材料的 阅读的困难 , 导致设计过程显得比较艰难,对于设计理解不是很透彻,从而犯过很多低级的错误。对与无线终端的接收处理部分,限于时间和能力有限,不能完成。 这次 课程设计 是对自己大学四年所学的一次大检阅,使我明白自己知识还很浅薄,虽然 大学四年 学习了 不少专业知识 ,但是自己的求学之路还很长 ,能力依旧十分欠缺 ,以后更应该在工作中学习,努力使自己 的能力得到不断的提升 , 完成更多的挑战 。 清华 大学 2012 届毕业设计说明书 第 34 页 共 51 页 附录 一: 整体电路图 V D D2C S N4M O S I6I R Q8G N D1CE3S C K5M I S O7U2N R F 2 4 0 1 模块D V C C 11P 6 .3 /A 3 / O A 1 O2P 6 .4 /A 4 / O A 1 I03P 6 .5 /A 5 / O A 2 O4P 6 .6 /A 6 / D A C 0 / O A 1 05P 6 .7 /A 7 / D A C 1 / S V S I N6V R E F +7X IN8X O U T9V e R E F + / D A C O10V R E F - /V e R E F -11P 5 .1 /S 0 / A 1 2 / D A C 112P 5 .0 /S 1 / A 1 3 / O A 1 I 113P 1 0 . 7 / S 2 / A 1 4 / O A 2 I114P 1 0 . 6 / S 3 / A 1 515P 1 0 . 5 / S 416P 1 0 . 4 / S 517P 1 0 . 3 / S 618P 1 0 . 2 / S 719P 1 0 . 1 / S 820P 1 0 . 0 / S 921P 9 .7 /S 1 022P 9 .6 /S 1 123P 9 .5 /S 1 224P 9 .4 /S 1 325P9.3/S1426P9.2/S1529P9.1/S1628P9.0/S1729P8.7/S1830P8.6/S1931P8.5/S2032P8.4/S2133P8.3/S2234P8.2/S2335P8.1/S2436P8.0/S2537P7.7/S2638P7.6/S2739P7.5/S2840P7.4/S2941P7.3/S30/UCA0CLK42P7.2/S31/UCA0SOMI43P7.1/S32/UCA0SIMO44P7.0/UCA0STE/S3345P4.7/UCA0RXD/S3446P4.6/UCA0TXD/S3547P4.5/UCLK1/S3648P4.4/SOMI1/S3749P4.3/SIMO1/S3850P 4 .2 /S T E 1 /S 3 951C O M 052P 5 .2 /C O M 153P 5 .3 /C O M 254P 5 .4 /C O M 355P 5 .5 /R 0 356P 5 .6 /L C D R E F / R 1 357P 5 .7 /R 2 358L C D C A P / R 3 359D V C C 260D V S S 261P 4 .1 /U R X D 162P 4 .0 /U T X D 163P 3 .7 /T B 664P 3 .6 /T B 565P 3 .5 /T B 466P 3 .4 /T B 367P 3 .3 /U C B 0 C L K68P 3 .2 /U C B 0 S O M I/ U C B 0 S C L69P 3 .1 /U C B 0 S I M O / U C B 0 S D A70P 3 .0 /U C B 0 S T E71P 2 .7 /A D C 1 2 C L K /D M A E 072P 2 .6 /C A O U T73P 2 .5 /U C A 0 R X D74P 2 .4 /U C A 0 T X D75P2.3/TB276P2.2/TB177P2.1/TB078P2.0/TA279P1.7/CA180P1.5/TACLK/ACLK82P1.6/CA081P1.4/TBCLK/SMCLK83P1.3/TBOUTH/SVSOUT84P1.2/TA185P1.1/TA0/MCLK86P1.0/TA087XT2OUT88TDO/TDI90XT2IN89TDI/TCLK91TMS92TCLK93RST/NMI94P6.0/A0/OA0I095P6.2/A2/OA0I197AVSS98DVSS199AVCC100P6.1/A1/OA0O96U4M S P 4 3 0 F G 4 6 1 8R E S E T8R E S E T /7NC6P F O /5M R /1V C C2G N D3P F I4U1M A X 7 0 8V in1G N D2O N / O F F3O U T5B Y P A S S4U5L P 2 9 8 5ST1G N D2O U T3V C C4U6S G 3 5 0 S C F - 8 M12345678J1C O N 8Q1P N P 1S1S W -P BD1L E DR21KR11KR32 2 KR41KC21 0 0 n FD V C CC31 0 0 n FD V S SC41 0 n F+ C11 0 u F+ C91 0 u F+ C 1 11 0 u FV R E F - /V e R E F -+C51 0 u F+ C 1 31 0 u FV e R E F + C 1 51 0 u FC61 0 0 n FV R E F +G N DC81 0 0 n FCEC 1 01 0 0 n FS C KC 1 41 0 0 n FY T D OAVSSS O M IC 1 21 0 0 n FY T M SDVSSV D DY T D IAVCCC S NY T C L KD V C CS I M OY R S TY IR QG N DV D DG N DG N DV D DV D DG N DP6.0YRSTV D DYTCLKA V S SY 8 MG N DYTMSV R E F - /V e R E F -G N DG N DYTDIA V S SV C CYTDOV R E F +Y8MA V S SY R S TV e R E F +A V S SA V C CD V S SD V C CV C CV C CV C CG N DCEG N DYIRQV D DSCKG N DSOMIB Y P A S SV C CSIMOG N DG N DCSNB Y P A S S1J2C O N 1V D D+C71 0 u FV D D 清华 大学 2012 届毕业设计说明书 第 35 页 共 51 页 附录 二:系统程序 #include #define IDLE 0x00 / 闲置,没有中断请求 #define TX_DS 0x20 / TX 数据发送 #define RX_DR 0x40 / RX 数据接收 #define TX_ADR_WIDTH 5 / 5 字节发送地址宽度 #define RX_ADR_WIDTH 5 / 5 字节接收地址宽度 #define TX_PLOAD_WIDTH 32 / 32 字节发送宽度 #define RX_PLOAD_WIDTH 32 / 32 字节接收宽度 #define RD_RX_PLOAD 0x61 / 接收寄存器地址 #define WR_TX_PLOAD 0xA0 / 发送寄存器地址 unsigned char const TX_ADDRESSTX_ADR_WIDTH = 0x34,0x43,0x10,0x10,0x01; / 定义静态发送地址 unsigned char const RX_ADDRESSRX_ADR_WIDTH = 0x34,0x43,0x10,0x10,0x01; / 定义静态接收地址 /SPI(NRF24L01)命令 / #define WRITE_REG 0x20 /定义写寄存器命令 #define CONFIG 0x00 / 定义配置寄存器地址 #define SETUP_AW 0x03 / 定义 设置 地址宽度 寄存器地址 #define RX_ADDR_P0 0x0A / 定义 接收地址通道 0 寄存器地址 #define TX_ADDR 0x10 / 定义 发送地址 寄存器地址 #define EN_AA 0x01 / 定义使能自动应答寄存器地址 #define EN_RXADDR 0x02 / 定义 使能发送地址 寄存器地址 #define SETUP_RETR 0x04 / 定义 设置自动重新传送 寄存器地址 #define RF_CH 0x05 / 定义 射频通道 寄存器地址 #define RF_SETUP 0x06 / 定义 射频设置 寄存器地址 #define RX_PW_P0 0x11 / 定义 接收数据 , 通道 0 寄存器地址 #define FLUSH_RX 0xE2 /清除 RXFIFO #define FLUSH_TX 0xE1 /清除 RXFIFO #define R_RX_PAYLOAD 0x61 /读 RX有效数据 #define STATUS 0x07 /状态寄存器 /对 MSP430的管脚定义 / #define CE_H (P7OUT |= BIT5) #define CE_L (P7OUT &= BIT5) #define IRQ (P7OUT |= BIT4) #define SCK_H (P7OUT |= BIT3) 清华 大学 2012 届毕业设计说明书 第 36 页 共 51 页 #define SCK_L (P7OUT &= BIT3) #define MISO (P7OUT |= BIT2) #define MOSI (P7OUT |= BIT1) #define CSN_H (P7OUT |= BIT0) #define CSN_L (P7OUT &= BIT0) /声明函数 void Erase(void); void DCO_Init(void); void Delay(unsigned int d); void PORT_Init(void); void CLOCK_Init(void); void SPI_Init(void); void nRF24L01_Config(void); void DMAReEnable(char channel); void DMAStart(char channel); unsigned char SPI_RW(unsigned char byte); unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value); unsigned char SPI_Read(unsigned char reg); void DMAInit(char channel,char trigger,char transMode,char srcMode,char dstMode,unsigned int src,unsigned int dst,unsigned int size); unsigned char SPI_Read_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes); unsigned char SPI_Write_Buf(unsigned char reg, unsigned char const *pBuf, unsigned char bytes); unsigned char nRF24L01_RxPacket(unsigned char* rx_buf); void nRF24L01_TxPacket(unsigned char * tx_buf); void nRF2401_SetRXinit(void); void nRF24L01_Tx(unsigned char * tx_buf); void Data_Pro(unsigned char *rx_buf); void TA0_Init(unsigned int i,unsigned int j); void AD_Init(void); /定义变量 unsigned char TxBuf32; / 发送寄存数组 unsigned char RxBuf32; /接收数据寄存数组 int m=0;/发送数据计数器,取值范围为 0-31 /主函数 void main (void) WDTCTL = WDTPW+WDTHOLD; /关闭看门狗 DCO_Init(); /DCO初始化 PORT_Init(); /端口初始化 CLOCK_Init(); /时钟初始化 清华 大学 2012 届毕业设计说明书 第 37 页 共 51 页 SPI_Init(); /SPI始化 Erase(); /擦除闪存指定空间 nRF24L01_Config(); /配置 nRF24L01模块 AD_Init(); /AD初始化 TA0_Init(3,2000); /时钟初始化, SMCLK为 1M nRF2401_SetRXinit(); /设置 nRF24L01为接收状态 Delay(8000); /延时 8000uS while(1) Data_Pro(RxBuf); /数据处理函数 /擦除 0xFF00-0x3800+0x1FF00-0x10000=1C600=113kB+512 Bytes空间 void Erase(void) unsigned char *p; /注意数据类型定义,不同类型占不同大小空间 FCTL2=FWKEY+FSSEL_1+FN1;/选择闪存擦除时钟 MCLK, 2分频 FCTL3=FWKEY; /擦除起始地址, 总读为 096h p=(unsigned char *)0x3E00;/指针 p起始地址 do FCTL1=FWKEY+ERASE; /开始擦除 *p=0; /向段内任意地址空写,启动擦除操作 p+=0x100; /指针地址每次 +0x100 while(p!=(unsigned char *)0xFE00); /当 p指到 0xFE00时,结束循环,擦除下一段空间 FCTL1=FWKEY+WRT; /开启写模式 FCTL2=FWKEY+FSSEL_1+FN1;/选择闪存擦除时钟 MCLK, 2分频 FCTL3=FWKEY; /擦除起始地址 p=(unsigned char *)0x10000; /指针 p起始地址 do FCTL1=FWKEY+ERASE; /开始擦除 *p=0; /向段内任意地址空写,启动擦除操作 p+=0x100; /指针地址每次 +0x100 清华 大学 2012 届毕业设计说明书 第 38 页 共 51 页 while(p!=(unsigned char *)0x1F600); /当 p指到 0x1FE600时,结束循环,擦除下一段空间 FCTL1=FWKEY+WRT; /延时子程序,延时时间 =( 13+10*d) *125ns.需要延时 130us,则 d=103 void Delay(unsigned int d) int k; for(k=0;kMCLK,关闭 XT2振荡器 do IFG1&=OFIFG; /晶振错误中断标志 Delay(0xFF); /延时,等待时钟稳定 while(IFG1&OFIFG)!=0); /晶振错误中断标志 =1,说明晶振错误,则等待 /初始化端口,只用到了 P6、 P7口 void PORT_Init(void) P1DIR = 0xFF; /默认端口为输出模式 P1SEL = 0 /选择引脚为 IO端口 P1OUT = 0; /输出寄存器 清华 大学 2012 届毕业设计说明书 第 39 页 共 51 页 P2DIR = 0xFF; /默认端口为输出模式 P2SEL = 0; P2OUT = 0; P3DIR = 0xFF; P3SEL = 0; P3OUT = 0; P4DIR = 0xFF; P4SEL = 0; P4OUT = 0; P5DIR = 0xFF; P5SEL = 0; P5OUT = 0; P6DIR = 0xFF; P6DIR &=BIT0; /p6.0为实验结果输入端,需要设为输入 P6SEL = 0; P6OUT = 0; P7DIR = 0xFF; /首先全变为 1,以后只改需要的位置 P7DIR &=BIT2; /p7.2为 SPI单片机主模式输入端,需要设为输入 P7DIR &=BIT4; /p7.4为 IRQ输入端,需要设为输入 P7SEL = 0; /普通 io功能 P7OUT = 0x09; /- - CE IRQ SCK SOMI SIMO CSN / 0 0 0 0 1 0 0 1 P8DIR = 0xFF; P8SEL = 0; P8OUT = 0; P9DIR = 0xFF; P9SEL = 0; P9OUT = 0; P10DIR = 0xFF; P10SEL = 0; P10OUT = 0; 清华 大学 2012 届毕业设计说明书 第 40 页 共 51 页 /时钟初始化 void CLOCK_Init(void) _BIS_SR(SCG0+OSCOFF); /关闭晶振和 DCO FLL_CTL1&=XT2OFF; /选择 XT2提供时钟 do IFG1&=OFIFG; Delay(0xFF); /延时,等待时钟稳定 while(IFG1&OFIFG)!=0);/晶振忙则等待 FLL_CTL1|=SELM1+SELS; /选择 MCLK、 SMCLK的时钟源为 DCO Delay(0xFF); /等待 XT2稳定 /初始化 SPI void SPI_Init(void) P7SEL |= 0x00E; /选择 3位 SPI引脚 UCA0CTL1 |= UCSWRST; /软件复位使能 UCA0CTL0 |= UCMSB+UCMST+UCCKPH+UCSYNC; /控制寄存器配置 3线 8位 SPI,主机模式 /UCCKPH=1, UCCKPL=0, UCA0CTL1 |= UCSSEL_2; / 时钟源选择为 SMCLK UCA0BR0 = 0x04; / SPICLK = SMCLK/2 UCA0BR1 = 0x00; UCA0CTL1 &= UCSWRST; /SPI使能 /初始化 AD void AD_Init(void) /使用内部参考电源 2.5V,通道 A0单次转换 int i; P6SEL |= 0x01; / 使能 AD转换通道 0 ADC12CTL0 = REFON + REF2_5V + ADC12ON + SHT0_2; / 开启 AD12内核,开启内部参考电压,内部参考电压为 2.5V。 ADC12CTL1 = SHP; / 使用抽样定时器,由采样输入信号的上升沿触发采样定时器 ADC12IE=0x01; ADC12MCTL0 = SREF_1; / Vr+=Vref+ 清华 大学 2012 届毕业设计说明书 第 41 页 共 51 页 for (i = 0x3600; i; i-); / 延时,使配置完成 ADC12CTL0 |= ENC; / 使能 AD转换 /TA0初始化 void TA0_Init(unsigned int i,unsigned int j) /i=分频, J=计数值 TACTL = TACLR ; /清除 TAR TACTL |= TASSEL_2; /选择 SMCLK switch(i) case 0: TACTL |= ID_0; break; /1分频, 8 MHz case 1: TACTL |= ID_1; break; /2分频, 4 MHz case 2: TACTL |= ID_2; break; /4分频, 2 MHz default: TACTL |= ID_3; break; /8分频, 1 MHz TACTL |= MC_1; /增计数模式 CCR0 = j; /计数值 /配置 24L01寄存器 void nRF24L01_Config(void) Delay(8000); /延时 8000us CE_L; SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); /命令 001 00011 写 00 寄存器 /- RX_RD TX_DS MAX_T EN_CRC CRCO PWR_UP PRIM_RX / 0 0 0 0 1 1 1 /中断 中断 中断 CRC使能 16位 CRC 上电 接收模式 SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);/置通道 0接收地址 .命令 001 00011 写 10 寄存器 /- - P5 P4 P3 P2 P1 P0 /0 0 0 0 0 0 0 0 自动应答禁止 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); /设置接收通道允许 /- - P5 P4 P3 P2 P1 P0 /0 0 0 0 0 0 0 1 接收通道 0允许 SPI_RW_Reg(WRITE_REG + SETUP_AW, 0x03);/设置地址宽度 ,5个字节 /- - - - - - AW1 AW0 /0 0 0 0 0 0 1 1 5字节地址 , AW1 AW0 : 00 无效 01 3字节 10 4字节 11 5字节 清华 大学 2012 届毕业设计说明书 第 42 页 共 51 页 SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00); /设置 自动重发控制 /禁止自动重发

温馨提示

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

评论

0/150

提交评论