历史上的今天

今天是:2024年08月26日(星期一)

正在发生

2020年08月26日 | 基于MSP430和NRF2401的WSN节点设计

发布者:genius6 来源: elecfans关键字:MSP430  NRF2401  WSN节点 手机看文章 扫描二维码
随时随地手机看文章

0 引 言
无线传感器网络WSN(wireless sensor network)是一种自组织网络,它由大量低成本、资源有限的传感节点设备组成,节点间协同工作实现某一特定任务。由于无线传感网络所具有的易扩展、自组织、分布式结构和实时性的特点,无线传感网络的应用已经由军事领域扩展到其他许多领域,例如环境监测、气候监测、目标追踪、工业自动化等方面,此外还为未来的远程医疗和空间探索提供了很大的应用空间。

无线传感器网络体系结构如图1所示,通常包括传感器节点、汇聚节点(sinknode)、外部网络和用户界面。大量传感器节点随机部署在感知区域(Sensorfield)内部或附近,能够通过自组织方式构成网络,传感器节点将采集到的数据沿着其他传感器节点逐跳进行传输,在传输过程中所采集的数据可能被多个节点处理,经过多跳路由后到汇聚节点,再由汇聚节点通过外部网络把数据传送到处理中心进行集中处理。

1 系统硬件设计
无线传感器网络终端节点的硬件一般包括数据处理单元、无线传输单元、传感采集单元和电源供应单元。如图2所示,传感采集单元可以根据应用背景选择相应的测量物理量的传感器,电源供应单元部分由于系统大部分处于低功耗模式,可以采用7号电池解决。下面着重介绍数据处理单元、无线传输单元。

1.1 数据处理单元
MSP430是具有超低功耗特点的16位单片机,本方案选用MSP430F148,其功耗电流已经达到了μA级。16位CPU和高效的RISC指令系统,无外扩的数据地址总线,在8MHz时可达到125ns的指令周期,具有16个快速响应中断,能及时处理各种紧急事件。丰富的片内外围功能模块:12位的A/D转换器ADC12内包括采样/保持功能的ADC内核、转换存储逻辑、内部参考电平发生器、多种时钟源、采样及转换时序电路。有8个外通道,4个内通道,高达200kbps的采样速率,多种采样方式。两路USART通信串口,可用于UART和SPI模式;片内有精密硬件乘法器、两个16位定时器,6个并行口P1~P6,48条I/O口线,其具有64KB的闪存,用于存储采集数据。


1.2 无线传输单元
本系统采用2.4GHz无线单片收发芯片nRF2401,它具有体积小、功耗低,外设少的特点,非常适合于无线传输应用系统。nRF2401可以由SPI接口与微处理器连接,通过这个接口完成设置和收发数据工作。许多单片机都集成了SPI控制器,例如MSP430,可以非常方便地通过软件设置最多40bit地址,只有收到本机地址时才会输出数据(提供一个中断指示),并且支持点对多点的操作,编程很方便。nRF2401与单片机采用SPI接口连接,原理图如图3所示。SPI总线接口技术是一种高速、高效率的串行接口技术,主要用于扩展外设和进行数据交换。


2 软件设计
软件开发以IAR Workbench V3.1为平台,采用C语言编写,软件编程的基本思路是:先对SPI、nRF2401控制端口初始化;使能SPI、UART端口,使能ADC,对nRF2401芯片初始化;开启接收机后,就可以运行任务程序了,以实现接收或发送数据,对nRF2401操作流程如下:

nRF2401有4种工作模式:收发模式、配置模式、空闲模式和关机模式。nRF2401的工作模式由PWR_UP、CE、TX_EN和CS三个引脚决定。对nRF2401的操作主要是配置其工作方式和读写数据,所有配置命令字和数据都是通过同步串行口的CLK和DATA两个引脚完成的。要将nRF2401设置于ShockBurstTM方式,首先使PWR_UP引脚为高电平,CE引脚为低电平。配置字从最高位开始,依次送入nRF2401,CLK下降沿锁定数据。配置命令字发送完后,在CS的下降沿按新配置字的设置开始工作。使用nRF2401进行发送数据时,采用以下的步骤:1)CE置高,使nRF2401开始工作;2)逐位写入接收机的地址;3)逐位写入要传送的数据;4)CE置低,激发nRF2401进行ShockBurstTM发射。nRF2401的ShockBurstTM发射过程是:给射频前端供电,射频数据打包(加字头、CRC校验码),高速发射数据包,发射完成,nRF2401进入空闲状态。nRF2401的接口模块引脚包括CE、DR1、CLK1和DATA(接收通道1),接收端依照以下流程进行数的接收:1)配置本机地址和即将接收的数据包大小;2)进入接收状态,CE置高;3)200μs后,nRF2401进入监视状态,等待数据包的到来;4)当接收到正确的数据包时,nRF2401自动除去字头、地址和CRC;5)nRF2401通过把DR1(可用作中断信号)置高来通知微控制器;6)微控制器把数据从nRF2401逐位移出;7)所有数据移完,nRF2401把DR1置低,此时如果CE为高,则等待下一个数据包,如果CE为低,开始其他工作流程。


程序中用到的部分代码如下:
    /*invariable*/
    unsigned char Comm_ok_flag;/*主从机连接OK标志*/
    unsigned char DR1_flag;/*DR1为高标志*/
    unsigned char Nrf_on_flag;/*2401开关标志*/
    unsigned char Shake_hand_flag;//握手成功标志
    unsigned char Config_word[W_CFGWORD];/*存储配置字15字节*/
    unsigned char Shock_word[W_SHOCKWORD];/*存储一帧协议数据30字节*/
    unsigned char Rxdata_buffer[W_PAYLOAD];/*存储接收数据按协议26字节*/
    unsigned char Txdata_buffer[N_DATA];/*存储发送数据暂定10字节*/
    unsigned char Order;/*提取数据帧功能码*/
    unsigned char Frq_set_value;/*频道设置数据*/
    /*funcTIon*/
    void Buildspiword(void);
    void Spinrf2401(void);
    void Shockburst(void);
    void Receiveshock(void);
    void Dospiclk(void);
    void Nrf2401_on(void);
    void Nrf2401_off(void);
    void Set_config(void);
    void Set_standby(void);
    void Set_tx(void);
    void Set_rx(void);
    void Clr_Payload(void);
    void Soft_delay_01ms(int iUs);
    void Set_address(void);
    void Clr_shock_word(void);

考虑到点对多点通信的可靠性,数据在底层无线传输中需要增加必要的协议规范。设计中对有效数据进行打包,格式为:前导码、地址、有效数据载荷、校验码。


3 结束语
基于MSP430和NRF2401的无线传感器网络节点设计在实验中表现出比较好的效果,可以实现监测区域内信号的采集传输与处理。但是由于射频芯片本身的原因,传输距离会受到障碍物的影响和设置频率而有变化,这些问题都有待更深入的研究。随着无线网络技术的成熟无线传感器网络的应用必将广泛深入环境监测、目标追踪、工业自动化等各领域。

关键字:MSP430  NRF2401  WSN节点 引用地址:基于MSP430和NRF2401的WSN节点设计

上一篇:MSP430单片机在测试系统中的应用
下一篇:数字传感器MPXY8020A与MSP430的接口设计

推荐阅读

  相比于普通单片机,STM32 拥有复杂的时钟系统,相应的控制器称为 RCC(Reset Clock Controller,复位与时钟控制器)。每个外设都配备了外设时钟的开关,当我们不使用某个外设时,可以把这个外设时钟关闭,从而降低 STM32 的整体功耗。因此,在我们使用外设前,必须要开启相应外设的时钟。可以使用的库函数有:void RCC_AHBPeriphClockCmd(uint3...
特斯拉已经敲定了LG Chem来供应中国工厂的21700电芯,这个也基本把之前的传言再一次实锤了一点点。 1)彭博的报道 The supply agreement isn’t exclusive to LG Chem, the people said, meaning Tesla could procure batteries from other suppliers as the Model 3 maker prepares to start production in China later ...
随着车辆变得更加智能,成为物联网(IoT)的一部分,并实现高级驾驶员辅助系统(ADAS)功能,汽车设计中需要更多的电子设备和电力。同时,同样严酷的环境和限制重量的需要同样适用,这些首要问题与配电盒(PDB)息息相关。趋势1随着汽车设计师们试图在汽车上安装更多的动力和智能功能,主配电盒变得拥挤,导致空间和热管理出现问题。克服这些限制通常会使...
【技术大咖测试笔记系列】之四:使用数字万用表测量电源瞬态恢复时间简单地说,瞬态恢复时间是施加负载后电源恢复到设定电平所需的时间长度。不设计电源的人一般会想当然,我们在工作中不管用的是哪种电路,可能只有在电源性能劣化到影响工作时才会注意到它。电源和人有点儿像,如果你问的问题比他知道的多,那么他可能会达不到你的预期。我们用一个类比来...

史海拾趣

问答坊 | AI 解惑

Full-Wave Analysis of Cross-Aperture

Abstract—This paper presents a full-wave analysis of couplingbetween rectangular waveguides through a cross-aperture. Therigorous mode-matching method is used to derive the generalizedscattering matrix of a waveguide T-junction h ...…

查看全部问答∨

样片申请

利用LPC1114F做一个服务器,接入免费的互联网,嵌入代理软件,然后就可以远程遥控服务器,利用LPC1114F制作的服务器上网~嘿嘿~…

查看全部问答∨

S3C2450 + MLC FLASH 在开机LOGO中如何加进度条?????

请教各位高手,如何在尽量不占用启动时间的前提下,在开机LOGO中加进度条? 我看过扬创的开发板上加的进度条,完全是通过占用开机时间来换取的,而且FLASH是SLC的,启动速度快。 不知道在MLC中有没好的办法? 现在我手上机器,bootloader很快就 ...…

查看全部问答∨

gps问题

现在想要学习车载GPS技术,想了解一下现在GPS的研究方向还有现在流行的核心技术(包括软硬件),麻烦知道的说下,多谢了…

查看全部问答∨

嵌入式驱动开发

大侠们,我现在人在上海,能不能推荐一些嵌入式方面的好的培训,…

查看全部问答∨

晶体管放大原理……

看了很多晶体管的放大原理说明,始终没能明白! 既然要放大,那必需得有相应的能量转换吧,那么晶体管对电流、电压的放大所需的能量来自何处!?…

查看全部问答∨

EVC程序编译运行

我的EVC程序是针对PPC2003 SDK的,编译通过,但是我一编译它就自动打开了PPC的模拟平台,并没有我刚才编译的程序,这是为什么啊?请各位好友帮帮!!!…

查看全部问答∨

msp430F149 这个单片机在proteus中没有

怎么样才能得到这个单片机?谢谢 …

查看全部问答∨

把WINCE设备做成U盘,连到PC怎么不见U盘盘符出现?设备管理器的设备列表也显示一个黄色的感叹号,为什么?难道还需要特别的U盘驱动程序?

把WINCE设备做成U盘,连到PC怎么不见U盘盘符出现?设备管理器的设备列表也显示一个黄色的感叹号,为什么?难道还需要特别的U盘驱动程序?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved