基于MSP430的无线通信系统设计.doc
清华大学2012届毕业设计说明书基于MSP430的无线通信系统设计摘要本文介绍了一种基于MSP430单片机与NRF24L01的无线通信系统设计。该系统由单片机系统、NRF24L01无线模块、电源管理模块、复位电路等单元电路组成。该系统所用到的无线收发系统采用NRF24L01与集成芯片NETUSB2401L构成,利用单片机的内部ADC12进行模拟信号与数字信号的转换,应用把转换的结果内部DMA暂时存储在FLASH,通过SPI串口发送给NRF24L01,NRF24L01收到数据后通过无线发送给NETUSB24L01,在通过终端机进行处理分析。它的核心控制器采用体积小,低功耗的单片机MSP430实现。该系统主要应用于对于测试环境复杂的压力、温度等信号实时无线传输到终端进行处理分析。关键词:单片机MSP430 ,NRF24L2401,无线传输 The wireless communication system design based on MSP430AbstractThis 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 microcontroller's 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 目 录1 引言11.1课题的背景与来源11.2 无限传输的优点21.3 课题的意义31.4 课题的设计内容及优势32 系统总体方案设计设计52.1 系统概述52.2 整体电路图53 硬件电路设计73.1 电源管理电路73.1.1电路设计73.1.2 LP2985芯片简介73.2 复位电路83.2.1 MAX708芯片简介83.2.2 复位电路设计103.3 时钟电路113.4 无线模块电路113.4.1 nRF24L01芯片简介113.4.2 nRF24L01无线模块电路153.4.3 NETUSB2401无线模块介绍153.5 单片机控制模块163.5.1 MSP430的简介163.5.2 MSP430的功能特性173.6 MSP430内部ADC12模块183.6.1 MSP430内部AD12介绍183.6.2 ADC12接地和噪声的考虑223.7 MSP430内部DMA模块234 软件设计275 总结32附录 一:整体电路图34附录 二:系统程序35参考文献49致谢51第II页 共页1引言 1.1课题的背景与来源无线通信是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式,1897年M.G.马可尼成功完成了在一个固定点与一艘拖船之间的无线通信试验后,标志通信技术的发展进入了无线领域的新阶段。为了能够区分不同的信号,通常以信号的频率来做标志,因此在无线通信技术中频率是非常重要的资源。世界各国都有相关的无线电管理部门来负责管理本国的无线频率资源,建设使用无线通信的网络都需要经过这些部门的审批,并购买一定范围频率资源的使用权才可以开始运营。惟有如此,才能保证各种使用无线信号的行业之间不会互相冲突,各自在规定的频率范围内工作。另外在通信中常常需要传输的信号本身是低频率的信号,但为了能够依照频率的划分来区分各种信号,需要对信号进行调制,把低频信号通过一定的调制信号附着在特定的频率上再发送到空间中,以避免造成信号间的无序干扰1。近些年信息通信领域中,发展最快、应用最广的就是无线通信技术。自从MSP430单片机问世以来,就以其体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛的在智能仪器仪表、工业控制、家用电器、计算机网络、通信领域、以及医用设备等领域都得到了应用。在仪器仪表领域,结合不同的传感器,可实现诸如电压、频率、温度、流量、速度、压力、角度等物理量的测量。采用单片机控制使得一起仪表的数字化、智能化、微型化,且功能比起采用数字或电子电路更加强大。例如精密的测量设备功率计、示波器以及分析仪2。单片机也可以构成形式多样的控制系统、数据采集系统。如工厂流水线的智能化管理、电梯智能化控制、各种报警系统,还可以与计算机联网构成二级控制系统等。如今家用电器上基本都有采用单片机控制,从电饭煲、洗衣机、电冰箱、空调、彩电、其他音箱视频器材、再到电子天平设备,可谓五花八门,无所不在3。 现在的单片机普遍具备通信接口,可以很方便的与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备上都基本实现了单片机的智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随时可见的移动电话、集群移动通信、无线对讲机等4。单片机在医疗设备中的用途亦然很广泛,例如医用呼吸机,各种智能分析仪,监护仪,超声诊断设备以及病床无线呼叫系统等。对于单片机的应用可谓是一种趋势,并且这种趋势将更加热烈,将渗透到各个领域,各个方面。通过对于通信技术的学习,以及简单的编程语言学习,作为一名具备一定基础知识的大学生,应该在此基础上学会对于单片机的基本应用,达到所学所用的目的。本课题是基于MSP430的无线通信系统设计,课题响应了时代的要求,有重要的现实意义。由于在数据采集环境中,干扰严重,环境复杂,有线通信由于布线不合理与电磁干扰等因素的影响,对于数据的正确传输受到了很大的限制,导致误码率低,信号失真严重。为了满足这个方面的不足,如何应用解决本实际要求,开发一款无线传输系统,可对于这些信号进行实时的、低误码率的传输满足要求十分必要。基于本方面的应用要求,应用MSP430单片机进行控制与NRF24L01无线传输可以实现此目的1,4。1.2 无限传输的优点1成本廉价有线通信方式的建立必须架设电缆,或挖掘电缆沟,因此需要大量的人力和物力;而用无线数传电台建立专用无线数据传输方式则无需架设电缆或挖掘电缆沟,只需要在每个终端连接无线数传电台和架设适当高度的天线就可以了。相比之下用无线数传模块建立专用无线数据传输方式,节省了人力物力,投资是相当节省的。当然在一些近距离的数据通讯系统中,无线的通讯方式并不比有线的方式成本低,但是有时候实际的现场环境难以布线,客户根据现场环境的需要还是会选用无线的方式来实现通讯。 2建设工程周期短 当要把相距数公里到数十公里距离的远程站点相互连接通讯的时候,采用有线的方式,必须架设长距离的电缆或者挖掘漫长的电缆沟,这个工程周期可能就需要数个月的时间,而用数传模块建立专用无线数据传输的方式,只需要架设适当高度的天线,工程周期只需要几天或者几周就可以,相比之下,无线的方式可以迅速组建起通信链路,工程周期大大缩短。 3适应性好 有线通讯的局限性太大,在遇到一些特殊的应用环境,比如遇到山地、湖泊、林区等特殊的地理环境或是移动物体等布线比较困难的应用环境的时候,将对有线网络的布线工程有着极强的制约力,而用无线数传模块建立专用无线数据传输方式将不受这些限制,所以说用无线数传模块建立专用无线数据传输方式将比有线通讯有更好的更广泛的适应性,几乎不受地理环境限制。 4 扩展性好 在用户组建好一个通讯网络之后,常常因为系统的需要增加新的设备。如果采用有线的方式,需要重新的布线,施工比较麻烦,而且还有可能破坏原来的通讯线路,但是如果采用无线数传电台建立专用无线数据传输方式,只需将新增设备与无线数传电台相连接就可以实现系统的扩充了,相比之下有更好的扩展性。 5 设备维护上更容易实现 有线通讯链路的维护需沿线路检查,出现故障时,一般很难及时找出故障点,而采用无线数传模块建立专用无线数据传输方式只需维护数传模块,出现故障时则能快速找出原因,恢复线路正常运行3。1.3 课题的意义 由于测试环境的恶劣,一些测量物体的运动,有线数据传输的布线困扰,一套系统能满足这些测试要求,适合于对于复杂测试环境的数据采集传输,显得十分必要。虽然动态的压力数据采集可以通过数据采集卡实现,然而数据采集卡开发成本较高,数据的采集也往往受限于某位置,静止被测物体运动,这在一定程度上为测试带来了不便,特别是针对于某些运到参数的测量,如行走、运到等,被测对象因限于测量设备电源线、数据传输的长度无法展开运到。目前,无线通信技术发展日趋成熟,采用无线通信实现数据的传输具有成本低廉、适应性好、扩展性好以及开发周期短等特点,针对于一些运到物体某些参数的测量不便,以及复杂的测试环境现场布线会产生较高的误码率,本文提出了一种以MSP430为核心,配以NRF24L01无线模块传输数据,既能够实现对被测信号的高速采集,又能够准确可靠地将数据传递给计算机进行处理。可以实现对于一些在一定范围内运动的物体进行参数测量,从而省去了布线带来的麻烦,还提高了传输效率。1.4 课题的设计内容及优势系统的主要功能:对采集的信号通过适配电路转换后,在符合MSP430单片机的接口允许范围内时输出单片机,用内置的ADC12进行模拟信号与数字信号的转换,单片机通过SPI传输协议将处理后的信号发送给NRF24L01,在NRF24L01再将此信号通过无线发送到NETUSB-24L01,NETUSB-24L01无线模块自带有控制接收的外围电路和USB接口,可与计算机直接相连,对信号进行实时分析处理,从而了解被测参数。本课题的优势:采用无线通信,免去了有线传输中的高额布线成本和复杂的抗干扰方案设计,并且可以测量运动物体的参量,其应用灵活。在需要的情况下可以加入CD4501作为多路开关,实现在于数据的多路采集,拓展性强。由于采用的MSP430单片机,其以低功耗,体积小,功能模块强而突出,使得本通信系统低功耗,减小了对于电源的成本,更多的模块功能使得对于系统的升级应用提供了很大的方便。MSP430单片机是高度集成芯片,采用集成芯片设计后,对于电路的维护,检修带来了很大的方便。2 系统总体方案设计2.1 系统概述本系统模块主要由上位机硬件电路和下位机硬件电路组成。其主要功能是完成对采集数据的传输。上位机硬件电路由计算机应用软件、NETUSB-24L01无线模块组成。NETUSB-24L01无线模块自带有控制接收的外围电路和USB接口,可与计算机直接相连。其使用简单、易与掌握。下位机硬件电路选择MSP430FG4618作为核心的控制芯片,主要功能是完成模拟信号的采集、接收上位机发送的无线通讯命令,并能够将A/D转换后的数字量用DMA传送给FLASH进行存储,通过SPI模式传递给nRF24L01,数据暂存至TX_FIFO中。SPI串口速率在通信协议和器件配置时已确定610。系统框图如下:MSP430FG4618nRF24L01NETUSB2401L信号适配电路A/DDMA AA计算机串口USB接口 天线天线图2.1 系统框图2.2整体电路图整体电路图主要包括NRF24L01无线模块和MSP430控制模块。MSP430摸块电路图设计相对而言比较复杂,其中电源管理电路、时钟电路和复位电路,也要考虑到高频收发电路布线的注意事项,这是主控电路的重点与难点。其中复位电路模块采用MAX708芯片,电源模块采用LP2985将5V的电眼转换为MSP430需要的电压3.3V,输出电压也比较稳定,纹波少。时钟选择芯片SG350SCF,作为MSP430的主系统是时钟,频率为8M。主控芯片则选择内部资源丰富,低功耗、体积小的MSP430单片机。无线模块选用NRF24L01无线收发芯片,其配置比较简单。整体电路如下:图2.2 整体电路图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连续负载电流,有过热保护。有低漏失,低静态电流,该稳压器允许使用小,价格低廉的陶瓷电容,降低设计成本。另外还具有低噪声,小包装的优势。结构框图如下:图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 信号应用: 电池供应的器件 微处理器临界状态监控 控制器 便携式工具 芯片引脚图:图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变为低电平。当这一脚不用时,将它接地或接VCCMAX708 /PF0-电压失败输出端。一般悬空不用MAX708 NC-没连接原理框图:图3.4 MXX708原理框图3.2.2 复位电路设计 电路由MXA708复位芯片、电阻、PNP三极管、按键、发光二级管构成。当按键按下时,/MR引脚为0.7V的低电平,在/RESET引脚产生信号,输送给体统,使单片机复位。按键的同时发光二极管发光,提示系统复位12。图3.5 复位电路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,掉电模式和待机模式下电流消耗更低。结构方框图:图3.7 nRF4L01 及外部接口nRF24L01芯片引脚图:图3.8 nRF24L01芯片引脚图nRF24L01引脚及功能图3.9 nRF24L01引脚及功能说明工作模式:nRF24L01可以设置为以下几种主要的模式图3.10 nRF24L01主要工作模式nRF24L01 在不同模式下的引脚功能:图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写操作时序图图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,适用于室内通过电脑无线遥控,无线数据采集等。性能及特点:(1) 2.4Ghz全球开放频段免许可证使用(2) 最高工作速率2Mbps,高效GFSK调制,适合短距离无线控(3) 125 频道,满足多点通信和跳频通信需要(4) 内置硬件CRC 检错和点对多点通信地址控制(5) 低功耗1.93.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)。由于它针对实际的应用需求,将多个不同的模拟电路、数字电路模块和微处理器集成在一个芯片上,所以称之为混合信号处理器。该系列单片机多用于需要电池供电的便携式仪器仪表中2。3.5.2 MSP430的功能特性低电源电压范围:1.8V至3.6V超低功耗:主动模式:400微安在1MHz,2.2V时 待机模式:2.2微安 关闭模式(RAM保持):0.35微安有五种省电模式,在不到6微妙就从待机模式下唤醒16位RISC构架,扩展内存,125ns指令周期时间三通道内部DMA12位A/D转换器具有内部参考,采样保持和自动扫描功能16位3路Timer-A比较寄存器16位7路Timer-B比较寄存器电源电压监控器可编程电平检测串行通信接口(USART1),可以通过软件选择同步USRT或同步SPI通用串行通信接口:增强型USRT支持自动波特率检测 IrDA编程器和解码器 同步SPI I2C总线标志MSP430引脚图: 图3.17 MSP430引脚分布图3.6 MSP430内部ADC12模块3.6.1 MSP430内部AD12介绍这个ADC12模块支持快速12位模数转换。这个模块包含12位的内核、内部参考和16位的转换控制缓冲寄存器,这个转换控制缓冲允许16通道的信号独立转换不受CPU的干预2。ADC12特点包括:大于200 ksps最大转化率12位转换器没有失踪的代码采样与可编程,采样周期用软件或计时器控制。转换启动的软件,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路外部通道:A0A7实现外部8路模拟信号的输入4路内部通道:VeREF+,VREF-或VeREF-,(AVCC-AVSS)/2,片内温度传感器的输出。3. 具有采样和保持功能的12位转换器内核:ADC12是一个12位的模数转换器,并能够将数据保存在转换存储器中。该内核可以可编程的参考电压(VR+和VR_)定义转换的最大值和最小值。当输入模拟电压等于或者高于VR+shi ,ADC12输出满量程值0FFFH,当输入小于或者等于VR+时,ADC12输出0。输入模拟电压的最终结果满足公式: (式3.1)4. 采样及转换所需的时序控制例如:ADC12CLK转换时钟、SAMPCON采样及转换信号、SHT控制的采样周期、SHS控制的采样触发来源选择、ADC12SSEL选择的内核时钟源及ADC12DIV选择的分频系数。5. 转换结果缓存ADC112共有12个转换通道,设置了16个转换存储器,用于暂存转换结果,合理设置后,ADC12硬件会自动将转换结果存放到相应的ADC12MEM寄存器中。每个转换器ADC12MEMx都有相应的控制寄存器ADC12CTLx。控制寄存器控制各个转换寄存器必须选择的转换条件。6. 相关寄存器:转换控制寄存器:ADC12CTL0与ADC12CTL1中断控制寄存器:ADC12IFG、ADC12IE控制寄存器:ADC12MCTL0ADC12MCTL15存储寄存器:ADC12MEM0ADC12MEM157. ADC提供的四种转换模式: 单通道单词转换 序列通道单词转换 单通道多次转换 序列通道多次转换图3.18 MSP430内部ADC12方框图拓展示例模式:SHP=0,SHI长度决定采样时间长度。扩展示例模式时序图: 图3.19 拓展模式转换时序图脉冲示例模式:SHP=1,SHI用来触发采样。脉冲示例模式时序图: 图3.20 脉冲模式转换时序图3.6.2 ADC12接地和噪声的考虑 为了提高AD转换的精度,必须考虑好噪声的处理,加上匹配的电容有助于消除噪声,从而提高转换的精确性。本设计根据MSP430的使用手册,采用了10uF的有极性电容和100nF的无极性性电容进行减弱噪声影响17。电路设计如下:图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的干预即可提供先进的可配置的数据传输能力,从而加速了基于MCU的信号处理进程,DMA传输的触发来源对CPU 来说是完全透明的,DMA控制器可在内存与外部及外部硬件之间进行精确的传输控制。DMA 消除了数据传输延迟时间以及各种开销,从而可以解放16为RISC CPU,以便其将更多的时间用于处理数据,而非执行正在处理的任务2。MSP430F16x系列单片机的DMA模块有以下特点:数据传送不需要CPU介入,完全由DMA控器自行管理。在整个地址空间范围内传输数据,块方式传输可达65536字节;能够提高片内外设数据吞吐能力,实现高速传输,每个字或者字节的传输仅需要2个MCLK;减少系统功耗,即使在片内外设进行数据输入或输出时,CPU也可以处于超低功耗模式而不需唤醒;字节和字数据可以混合传送:DMA传输可以是字节到字节、字到字、字节到字或者字到字节。当字到字节传输时,只有字中较低字节能够传输,当从字节到字传输时,传输到字的低字节,高字节被自动清零;四种传输寻址模式:固定地址到固定地址、固定地址到块地址、块地址到固定地址以及块地址到块地址;触发方式灵活:边沿或者电平触发。单个、块或突发块传输模式:每次触发DMA操作,可以根据需要传输不同规模的数据。DMA的四种寻址模式如下图所示:图3.22 DMA四种寻址模式DMA控制器模块: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。如果设置DMADTx4 为重复单字或者单字节传输模式,DMAEN 位一直保持置位,每次触发伴随一次传输。DMAxSZ 寄存器保存传输的单元个数,如果该寄存器为0,则没有传输。传输之前DMAxSZ 寄存器的值写入到一个临时的寄存器中,每次操作之后DMAxSZ 做减操作。当DMAxSZ减为零的时候,它所对应的临时寄存器将原来的值重新置入DMAxSZ,同时相应的DMAIFG标志置位。2 块传输模式:在块传输模式,每次触发可以传输一个数据块。设置DMADTx=1 为块传输模式,每个数据块传输完毕,DMAEN 位自动清除,在触发传输下一个数据块之前,该位要被重新置位。在传输某个数据块期间,其他的传输请求将被忽略。设置DMADTx=5 为重复块传输模式,某个数据块传输完毕,DMAEN 位仍然保持置位,之后,新的触发可以引起又一次数据块传送。DMAxSZ 寄存器保存数据块所包含的单元个数。DMASRCINCR 和DMADSTINCR 反映在数据块传输过程中的目的地址和源地址的变化情况。在块传输或者重复块传输过程中,DMAxSA,DMAxDA,DMAxSZ 寄存器的值写入到对应的临时寄存器中,DMAxSA,DMAxDA寄存器所对应的临时值在块传输过程中增加或者减少,而DMAxSZ 在块传输过程中减计数,始终反映当前数据块还有多少单元没有传输完毕,当DMAxSZ 减为0,它所对应的临时寄存器将原来的值重新置入DMAxSZ,同时相应的DMAIFG被置位。在块传输过程中,CPU 暂停工作,不参与数据的传输。数据块需要2×MCLK×DMAxSZ 个时钟周期。当每个数据块传输完毕,CPU 按照暂停前的状态重新开始执行。3 突发块传输模式:这个和块传输模式类似,只不过每传输4个字或字节,DMA释放内部总线,CPU运行2个MCLK周期;在传输过程中CPU有20%的执行时间,而块传输需要等DMA完全传送完之后,CPU方能运行。DMA触发源:每个通道的触发源有DMAxTSELx位进行控制的,这些位必须在DMAEN位为0是进行设置,否则可能出现不可预料的DMA触发。 4 软件设计系统功能的实现是依靠硬件和软件的相互结合,硬件决定了系统基本结构和特性,而软件则是驱动系统的灵魂,对硬件进行控制,两者缺一不可,相辅相成。本系统的软件分为主程序和子程序。主程序控制整个系统,控制和协调各个执行模块。子程序实现具体的相关共能。本设计的软件程序包括主程序、中断子程序、数据处理子程序等等1820。程序的功能有:1) 对所需要的模块进行初始化(如DCO初始化、端口初始化、SPI初始化、nRF24L01初始化、定时器初始化等)2)数据采集、存储3)用无线的方式发送数据主流程图: 开始配置nRF24L01为接收状态是否接收到55?配置各模块ADC采集数据N Y存储到FLASH无线发送数据图4.1 主流程图部分程序:/数据处理部分void Data_Pro(unsigned char *rx_buf) if(nRF24L01_RxPacket(rx_buf)=1) /判断是否接收到数据 unsigned char *FLASHADD; / FLASH地址指针 while(&FLASHADD!=0) /发送数据 TxBuf0=0xEB; /写第一个字节内容 TACCTL0 = CCIE; /