0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于TinyOS和nRF24E1无线通信模块实现无线传感器网络的设计

电子设计 来源:单片机与嵌入式系统应用 作者:肖建荣;钱建生; 2020-07-14 08:03 次阅读

无线传感器网络是由大量低廉的微型传感器节点组成的无线网络,是目前国际上无线领域研究的热点之一,应用前景非常好;而TinyOS是美国的伯克利大学开发的,为嵌入式无线传感器网络而设计的源码开放的操作系统,它运行在每个网络节点上,是其他上层应用和协议运行的前提。本设计以nRF24E1无线通信模块为核心,基于无线传感器网络操作系统TinyOS,使用模块化设计思路,实现了一个无线传感器网络。

1、无线传感器网络设计

1.1 系统构成概述

无线传感器网络由三类节点构成:一般采集所需要的信息无线终端节点;收集一般节点中的数据并进行存储、处理、上传的无线路由器节点;无线服务节点实现无线路由器节点处理中心并充当网关与其他外部网络的连接。三类节点的硬件构成基本相同,每个传感器节点具有数据采集、简单的数据处理、短距离无线通信和自组网能力。

1.2总体设计框图

无线传感器网络中三种节点硬件平台的构建基本相同,其基本节点构成框图如图1所示。无线终端节点可去除显示模块、串口通信模块和声光报警单元,以节约节点的电能。

基于TinyOS和nRF24E1无线通信模块实现无线传感器网络的设计

主控制部分装载传感器网络操作系统,实现对各个模块的驱动,并对各个模块的数据进行处理;电源模块为系统供电;无线通信模块实现数据的无线传输功能;串行通信模块可用于与上位机进行通信,也可用于进行系统配置;传感器模块利用传感器采集数据,并进行数模转换后交由主控制器处理;数据存储模块用于临时或永久存储系统数据备查。

2、系统的硬件实现

对于无线传感器网络硬件平台的搭建,国内外很多学者提出,用MSP430或AT89C2051作为主控制器,结合无线收发模块来实现。国内中科院杭州计算机所研制的gainz节点采用ATmega128处理器,再结合射频收发芯片来实现,这样做难以真正做到微型网络节点,且成本难以控制。美国的伯克利大学研制的产品Mica2Dot节点采用自己设计的ASIC来实现,这需要足够的技术力量和资金。本系统以nRF24E1无线通信模块为核心。nRF24E1是一颗集成高速2.4 GHz无线收发内核的增强型51单片机,可实现51单片机的所有功能。这是一颗高性能单片机内核的高速1 Mbps单片无线收发芯片,所有高频元件(包括电感振荡器等)已经全部集成在芯片内部,使得产品一致性良好、性能稳定且不受外界影响;可跳频,点对多点通信及无线检错,所有功能均在一个6 mm×6 mm的QFN36芯片上实现。由于nRF24E1系统自带存储空间有限,系统外加一个串行EEPROM 25xx320,用来存储TinyOS操作系统。在具体实现时,将TinyOS编译生成的系统文件转换为hex文件格式,然后再用eeprep.exe转换工具转换为24E1格式的hex文件,用通用编程器将生成的24E1格式的hex文件写入25xx320。25xx320是32 Kb,SPI接口串行。EEPROM。nRF24E1上电时先将外挂的25xx320的程序全部下载读入内部的4 KB专用RAM区,然后开始执行程序。在批量生产时可以将程序掩模在nRF24E1中,将外挂的25xx320省掉,进一步降低成本,缩小节点体积。nRF24E1与25xx320的接口电路如图2所示。

nRF24E1的具体外围电路设计和其天线的设计可查阅nRF24E1的芯片手册,并了解有关射频电路设计和天线设计的相关知识。根据系统需要可以采用环形天线、单端天线或螺旋天线,良好匹配的元件和螺旋天线可使系统的平地可视通信距离高达800m,对于天线的设计,采用Aligent公司ADS(Advanced Design System)进行天线匹配。图2中“天线”为单端50 欧姆天线。其layout的Top视图如图3所示。

显示单元在无线路由节点和无线服务结点上使用,采用字符型液晶显示屏1602C,实时显示测量到的数据,并给出提示信息,使操作简单,人机交互界面友好。声光报警单元采用555作振荡源,用单片机触发振荡源驱动电磁讯响器作为声音指示器,发光二极管作为光指示装置,从而组成声光报警单元。远程通信单元采用低电压高速传输的:RS232收发器MAX3316(CAE),实现工业现场的实时监控。电源单元系统采用CR2450,3 V扣式电池,其在》2.8 V的条件下能提供大约530 mAh的能量(2l℃)。

3、系统的软件实现

3.1 TinyOS概述

TinyOS是一个基于事件的系统,其设计的主要目标是代码量小、耗能少、并发性高,可适应不同的应用。它采用面向元件结构,确保快速响应和执行,同时减小了代码量,以适应无线传感器网络严格的存储空间需要。其操作系统、库和程序服务程序是用nesC写的。nesC是一种开发组件式结构程序、具有C语法风格的语言,其组件层次结构就如同一个网络协议栈,底层的组件负责接收和发送原始的数据位,而高层的组件对这些数据进行编码、解码,更高层的组件负责数据打包、路由和传输数据。

3.2 系统节点的软件框图

无线路由节点和无线终端节点比无线终端节点多一个数据汇集和上传的功能,其软件设计流程如图4所示。

3.3 传感器网络节点的实现

在TinyOS操作系统中,传感器网络节点的实现由moudules和configurations两部分构成。其modules部分代码如下:

在modules中提供StdControl接口,使用了Timer、ADC、StdControl、Leds接口。nesC程序中可以使用同一个接口的多个实例,ADCControl是StdControl的实例。

在configurations中不提供任何接口,使用Main、SenseM、LedsC、TimerC、Photo模块,连接Main.StdControl接口到SenseM.StdControl和TimerC.StdControl,连接SenseM.ADC接口到Photo.ADC,连接SenseM.ADCControl到Photo.StdControl。参数化接口允许组件通过运行时或编译时参数值使用多个该接口的实例provides。interface Timer[uint8_tid],unique(“Timer”)产生一个唯一的数字与Timer串关联。

3.4 网络数据报的分析

在基于TinyOS的传感器网络的网络数据报文消息头中包含group ID,使得多个节点可以共享同一个radio channel。group ID是一个8位数,其默认值是0x7D,使用DEFAULT_LOCAL_GROUP改变默认group ID,如EFAULT_LOCAL_GROUP=0x7E,此时就把group ID改为了0x7E。以下为传感器网络节点接收到的封装包格式:

7E 41 0F FF FF 08 7D 5D 1D 44 44 11 44 11 44 44 OO 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 OO 00 00 DO 5C 7E

封包用0x7E,接下来是0x41是指封包格式。0x41是P_PACKET_ACK,0x42是P_PACKET_NO_ACK。第3个字节是0x0F,是SeqNo.,是从0x0E开始,也就是13 DECIMAL,接下来的格式TinyOS文件有说明,最后两个字节是0xSCD0,是CRC校验。送出Packet之后,它会回送两个信息:一个是2字节的封包,就是只有包含原本的packet type和SeqNo;另一个是P_PACKET_NO_ACK的格式的封包,和上面的格式一样,不过SeqNo那个位不具有SeqNo的功能。

4、节点性能

该无线传感器网络节点工作电压为1.9~3.6 V,发射电流约为11~13 mA,接收电流约19 mA,待机电流约3μA;工作在2.4 GHz频段,共有125个频道可用,满足多点及跳频通信需要。数据传输速率可达1 Mbps;可进行CRC校验,外接9路10位ADC,采样率达100 kbps,可配置的PWM,输出UART、SPI等多种外设。平地无障碍物通信距离可达800 m,且节点性能稳定,对环境依赖比较小。

5、结 语

本文介绍了基于nRF24E1的系统硬件平台的构建,以及传感器网络操作系统TinyOS的系统程序设计。该传感器网络能准确采集环境数据,实时组网上传,且其网络节点结构简单,价格低廉,真正实现了微型无线传感器网络节点。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2515

    文章

    47684

    浏览量

    738665
  • 无线通信
    +关注

    关注

    56

    文章

    4146

    浏览量

    142030
  • 操作系统
    +关注

    关注

    37

    文章

    6201

    浏览量

    121726
收藏 人收藏

    评论

    相关推荐

    无线通信模块

    无线温度传感器应用设计基于NRF2401模块无线PC控制台应用设计   基于NRF2
    发表于 08-05 16:50

    无线通信模块

    无线温度传感器应用设计基于NRF2401模块无线PC控制台应用设计   基于NRF2
    发表于 08-06 16:29

    无线通信模块

    无线温度传感器应用设计基于NRF2401模块无线PC控制台应用设计   基于NRF2
    发表于 08-06 16:31

    无线通信模块

    传感器应用设计基于NRF24L01模块无线PC控制台应用设计 基于NRF24L01模块
    发表于 08-27 18:38

    无线通信模块

    无线温度传感器应用设计基于NRF2401模块无线PC控制台应用设计   基于NRF2
    发表于 08-28 19:40

    基于nRF24E01的无线温度采集系统设计

    运转成本高。本设计采用工业级内置硬件链路层协议的低成本单芯片nRF24E01无线收发器件实现系统间的无线通信,完成无线信号的接收、显示及报警
    发表于 07-25 09:21

    基于TinyOS的嵌入式无线传感器网络设计

    传感器连接。  2.3 通信模块  无线收发模块主要完成传感器节点之间、节点与
    发表于 11-15 16:15

    基于nRF24E1无线键盘应用

    作者:郑启忠 朱宏辉 耿四军nRF24E1 收发是Nordic VLSI推出的系统级射频芯片。采用先进的0.18μm CMOS工艺、6×6mm的36引脚 QFN封装,以nRF2401 RF芯片结构
    发表于 07-22 07:11

    基于nRF24E1无线耳麦有什么优点?

    介绍了一种基于nRF24E1的应用于家用电视及个人电脑的无线耳麦,详细阐述了无线耳麦的硬件设计方法,说明了语音发送和接收的工作原理,并给出了软件设计的主要工作流程。
    发表于 08-30 07:14

    无线传感器网络的普通节点和网关节点怎么实现

    的限制。以此超低功耗单片机MSP430为核心,结合无线收发模块nRF24E1,对无线传感器网络
    发表于 10-18 07:28

    如何构建基于TinyOS无线传感器网络

    本设计以nRF24E1无线通信模块为核心,基于无线传感器网络操作系统
    发表于 06-01 06:07

    nRF24L01无线通信模块的使用方法

    nRF24L01无线通信模块使用简介(STC51)nRF24L01研一课设做过一个基于nRF24L01的
    发表于 12-03 08:24

    nRF24E1编程下载板相关程序

    nRF24E1编程下载板相关程序 nRF24E1编程下载板是我们自行开发的简易无线通信模块nRF24E1的在线下载板,使用方便。
    发表于 02-24 14:18 60次下载

    基于nRF24L01的通用无线通信模块设计

    基于nRF24L01的通用无线通信模块设计
    发表于 01-04 15:25 63次下载

    基于nRF24E1传感器网络系统构建及TinyOS程序设计

    ,它运行在每个网络节点上,是其他上层应用和协议运行的前提。本设计以nRF24E1无线通信模块为核心,基于无线
    的头像 发表于 01-16 09:36 1954次阅读
    基于<b class='flag-5'>nRF24E1</b>的<b class='flag-5'>传感器</b><b class='flag-5'>网络</b>系统构建及<b class='flag-5'>TinyOS</b>程序设计