当前位置:首页 > 智能硬件 > 智能硬件
[导读]摘要:首先介绍了以TI的无线传感器网络芯片CC2530为核心部件的节点硬件实现,接着介绍TinyOS操作系统的运行机制及其在CC2530平台下的移植过程;并在此基础上以nesC语言实现了AODV路由协议,最后对系统进行组网测试,

摘要:首先介绍了以TI的无线传感器网络芯片CC2530为核心部件的节点硬件实现,接着介绍TinyOS操作系统的运行机制及其在CC2530平台下的移植过程;并在此基础上以nesC语言实现了AODV路由协议,最后对系统进行组网测试,测试结果表明平台各功能正常运行并且实现AODV协议的基本功能。
关键词:无线传感器网络;TinyOS;CC2530;AODV

0 引言
    无线传感器网络(Wireless Sensor Network)是由具有感知、计算和通信能力的大量微型传感器节点组成,被广泛地应用于国防军事、环境监测等领域。加州大学Berkeley分校设计的基于事件驱动、组件模块化的无线传感器网络操作系统TinyOS具有核心程序小、对硬件要求低等优势,但它不支持功能强大的无线传感网络芯片CC2530,为此需要将TinyOS移植至CC2530平台,以使其得到更好的应用。同时为了节省传输能量,需要采用相应的路由协议,以多跳中继的方式将数据经由多个节点组成的路由传回汇聚节点或基站。
    本文选用TI的CC2530作为传感器节点的核心部件,采用Tiny OS操作系统作为软件平台,成功将Tiny OS移植至CC2530平台,并添加了Tim er、UART、RF等组件;在移植的平台上,以nesC语言实现了AODV路由协议,并且实现了传感器节点的组网,数据包的多跳转发;为TinyOS和AODV的研究和应用奠定基础。

1 无线传感器网络系统结构
1.1 传感器节点硬件结构
    传感器节点一般由供电单元、数据采集单元、数据处理单元(由微控制器和存储器组成)、无线通信单元组成。其中,数据处理单元中的微控制器负责对其他三个单元的控制。
    本文的系统采用无线传感器网络节点芯片CC2530作为微控制器。CC2530使用了增强型8051CPU,运行时钟频率为32 MHz,具有8 KB RAM;包括一个普通16位定时器和两个8位定时器,21个可编程程I/O引脚,两个支持多种串行通信协议的USART,一个符合IEEE 802.15.4标准的2.4 GHz无线收发器和MAC定时器。CC2530是用于IEEE.802.1 5.4,ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。本文节点核心部分的硬件设计如图1所示。


1.2 传感器节点软件结构
    TinyOS是加州大学Berkeley分校专门为无线传感器网络开发的微型操作系统。该系统采用轻量级线程(Lightweight Thread)、主动消息(Active Message)通信模块、事件驱动(Event Driven)模式和组件化编程(Component-Based Programming)等技术,有助于提高传感器网络的性能,发挥硬件的特点,降低其功耗,并且简化了传感器网络应用的开发。


    TinyOS采用基于事件驱动、两层调度的并发模型。内核支持两种执行线程,即中断处理和任务,主控构件维护两个数据结构支持内核的两层调度:中断向量表和任务队列。TinyOS系统采用组件化思想,其应用程序都是由若干个模块组件和配置组件构成的,其组件有四个相互关联的部分:一组命令处理程序句柄,一组事件处理程序句柄,一个经过封装的私有数据帧,一组简单任务。每一个组件声明自己使用的接口及其需要用信号的通知的事件。一个应用程序的组件结构图如图2所示,高层次的组件通过命令调用低层次组件,低层次组件发送信号事件给高层次组件,最低层次组件直接与硬件相互作用。
1.3 TinyOS操作系统移植
1.3.1 修改编译工具链
    TinyOS开发环境为Unix,若要为TinyOS开发应用程序,首先要使用nesC进行编程,产生以“.nc”为扩展名的源文件;然后再调用Unix的NCC(nesC Compiler)编译器将源文件编译成硬件可以执行的二进制/十六进制机器码,如图3(a)所示。


    但nesC的编译器NCC调用的是Unix的GCC(GNU Compiler Collection)编译器,而GCC编译器并不支持CC2530所使用的8051处理器。为此,需要在编译过程使用Perl语言,转换C语言编译器不能识别的nesC关键字,将nesC语言编写的“.nc”文件编译为常规的C语言源文件,然后绕过Unix的GCC编译器,改由支持8051的Keil进行编译,其过程如图3(b)所示。具体的实现为编写脚本文件mangleAppC.pl,在编译规则文“.rules”中添加该Perl脚本的引用,以生成中间文件App.preMangle.c,并通过建立批处理文件CC2530F256.bat,调用Keil程序编译生成目标文件App.hex。
1.3.2 TinyOS平台搭建
    TinyOS应用程序的编译是以平台为对象的,但TinyOS并不支持CC2530平台,因此必须先建立能被TinyOS承认的平台。根据TinyOS最小平台的定义,需要创建的目录及编写的文件为:
    (1)/tos/platforms/cc2530目录,及其下的“.platform”文件、platform.h、PlatformC.nc和PlatformP.nc文件,这些文件包含平台初始化的实现代码和平台的环境变量;
    (2)/tos/support/make下的CC2530em.target文件,包含移植代码的目标平台的识别信息;
    (3)/tos/support/make/mcs51下的“.rules”文件,包含生成目标平台二进制/十六进制可执行代码时的编译说明;
    (4)/tos/chips/mcs51下的hardware.h和McuSleepC.nc文件,包含平台硬件体系必备的宏定义和低功耗机制实现代码。
1.3.3 基于CC2530的组件编写
    TinyOS应用程序是由一系列组件链接而成,其中包括用于实现应用程序功能的组件、系统提供的用于实现常用功能的组件和针对不同芯片的硬件表达和抽象组件。由于TinyOS本身并不含有针对CC2530平台的硬件表达和抽象组件,因此需要编写直接与硬件相互作用的组件来完成移植。编写以下几个重要的组件:
    (1)IO口组件,通过建立HplCC2530GeneralIOC组件来提供两类系统接口GeneralIO和Init。
    (2)Timer组件,主要由TimerMilli组件、HilTimerMilliC配置组件、HplCC2530TimerlAlarmCounterP组件等组成,用于产生以毫秒为单位的计时器。
    (3)Uart组件,由StdOut组件、PlatformSerialC配置组件、HalCC2530SimpleUartP组件等组成,用于实现串口收发功能。
    (4)RF组件,主要由ActiveMessageC配置组件、CC2530ActiveMessageP模块组件、CC2530TransmitP模块组件、HalCC2530Radio模块组件和HplCC2530InterruptsC模块组件构成,用于实现基本无线数据传输功能。

2 TinyOS下的AODV路由实现
    AODV是一种适用于无线传感器网络的按需路由协议,采用最短路由选路,注重网络吞吐量和网络服务质量,实现简单。本文以TinyOS作为系统的软件平台,根据TinyOS操作系统的应用程序结构,以nesC语言实现了AODV路由协议。
2.1 AODV路由协议的基本思想
    AODV(Ad hoc On-demand Distance Vector)借用了DSR中路由发现和路由维护的基础程序,以及DS-DV的逐跳(Hop-by-Hop)路由、顺序编号和路由维护阶段的周期更新机制。
    当源节点需要和目的节点通信时,如果在路由表中已经存在了对应的路由时,AODV就不会进行任何操作,而是直接进行通信。当原路由失效或者需要和新的目的节点通信时,它就会发起路由发现过程,广播RREQ信息。当RREQ到达目的节点本身,或者是一个拥有“足够新”的到目的节点路由的中间节点时,目的节点或者中间节点通过RREQ的反向路径向源节点返回一个RREP消息。所谓“足够新”就是通过目的序列号来判断的,每个节点进行节点序列号的管理,维护自身的序列号和保存目的节点序列号。AODV使用了分布式的、基于路由表的路由方式,建立路由表项以后,在路由中的每个节点都要执行路由维持、管理路由表的任务。节点会监视一个活动路由(Active Route)中下一跳节点的状况。当发现有链路断开的情况时,就向该路由的前驱节点发出RERR消息通知。在RRER消息中,指明了由于链路断开而导致无法到达的目的节点。每个节点都保留了一个“前驱列表”(Precursor List)来帮助完成错误报告的功能。
2.2 AODV路由实现的软件结构
    AODV路由协议的实现主要包括两个组件:MulitHopEngineM和MulihopAodv,如图4所示。其中MultiHopEngineM组件负责转发分组,Multi HopAodv是AODV路由功能的实现组件,通过配置组件MultiHopAodvRouter将两个组件写通(write)起来。


    MultiHopAodv使用TimerMilliC提供的Timer接口作为路由协议所需的定时器,实现了AODV的路由发现、路由维护、Hello消息等机制,为MulitHopEngineM提供路由的下一跳地址。MultiHopEngineM通过两个接口(RotlteControl,RolneSelect)和MultiHopAodv交互,它的实现独立于任何路由协议实现,这非常有利于基于TinyOS平台的第三方路由协议的开发。AodvQueueTransmitP为MultiHopEngineM和MultiHopAodv提供了AMSend和Receive接口,同时提供了FIFO机制。

3 系统测试
    采用6个节点进行组网测试,使用16位的短地址作为节点地址,如表1所示。系统测试时,PC端使用串口与节点连接,然后通过串口查看节点的路由信息和数据的转发情况。


3.1 路由发现机制
    源节点发起寻找目的节点的路由发现过程,中间节点收到RREQ后,检查自身是否有到达目的节点的有效路由,如果有,则回复RREP;如果没有,则继续广播RREQ,如图5所示。


    如图6和图7所示,节点2在收到节点4发来的RREQ后,更新到源节点(节点4)的路由,同时在路由表查找到目的节点的有效路由,然后向节点4回复RREP。节点4收到节点2返回的RREP,添加相应路由,将节点2作为到目的节点(节点1)的下一跳节点。该测试表明本系统实现了AODV路由协议的RREQ转发机制和中间路由回复机制,节点4获得到达目的节点的路由。


3.2 数据包的发送和转发
    将6个节点隔开一定距离布置,节点1作为sink节点,其余5个节点建立到达节点1的路由,向sink节点发送数据,中间节点同时负责转发其他的节点的数据,图8是组网完成后的拓扑图。


    源节点(节点3)发起查找目的节点(节点1)路由发现过程,在建立路由之后(3→4→2→1),向下一跳节点(节点4)发送数据包,如图9所示,中继节点(节点2,节点4)转发数据包如图10~图12所示。在图12中,目的节点收到节点2转发的来自节点3的数据。从该测试结果看出系统具备AODV协议的路由发现、路由表查找、数据包的转发等基本功能。

4 结语
    本文介绍了无线传感器网络硬件节点和TinyOS操作系统的结构,根据系统所采用的硬件将TinyOS操作系统移植至8051平台,同时添加系统所需的IO,Timer,UART,RF等组件。这些组件提供了AODV路由协议所需要的IO控制、定时器、射频收发等功能。通过测试AODV协议的路由发现和多跳转发等机制验证了所移植组件和路由协议实现的正确性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2023年2月16日 /美通社/ -- 近日,诺华中国宣布与中国红十字基金会正式启动"中国地中海贫血救助项目"广西地区专项援助,将在当地定向资助困难家庭地中海贫血患儿,同时通过相关医生培...

关键字: BSP 控制 移植 大众

北京2022年12月7日 /美通社/ -- 2022年12月3日,由高博医学(血液病)广东研究中心南方春富(儿童)血液病研究院、南方医科大学南方医院共同主办的高博医学论坛·华南造血干细胞移植论坛通过线下线上...

关键字: 移植 HD PID 血细胞

捐款近4000万 上海2022年12月7日 /美通社/ -- 2022年12月7日下午,中芯国际"芯肝宝贝计划"十年纪念暨2022年度捐赠仪式在上海仁济医院举行。十年来,该项目捐赠善款总额近4000...

关键字: 中芯国际 移植

北京2022年11月14日 /美通社/ -- 2022年10月,高博医学(血液病)北京研究中心北京高博博仁医院造血干细胞移植科迎来了五周岁"生日"。在吴彤主任带领下,移植科于2017年从无到有,历经五...

关键字: 移植 OS MT CD

上海2022年11月6日 /美通社/ -- 在第五届中国国际进口博览会期间,武田制药携5款创新产品亮相武田罕见遗传与血液疾病领域专场发布会。用于移植后抗巨细胞病毒(CMV)感染或疾病治疗[1]的马立巴韦[2]迎来&quo...

关键字: 移植 BSP CD FDA

亘喜生物科技集团宣布正在中国开展的、旨在全面评估GC007g治疗复发/难治性急性B淋巴细胞白血病效果的1/2期注册性临床试验顺利进入2期研究阶段,首例入组患者已给药。GC007g是亘喜生物旗下的一款靶向CD19的供者来源...

关键字: 移植 CD

北京2022年9月9日 /美通社/ -- 诺诚健华(香港联交所代码:09969)今天宣布,tafasitamab (Minjuvi®)联合来那度胺治疗不适合自体干细胞移植 (ASCT) 条件的复发/难治弥漫性大B...

关键字: VI NJU BSP 移植

苏州2022年8月19日 /美通社/ -- 近日,华中科技大学同济医学院附属协和医院心外科董念国教授团队运用与心擎医疗联合研发的短中期体外全磁悬浮心室辅助装置MoyoAssist®,成功救治三例危重的终...

关键字: 磁悬浮 移植 IC 静脉

上海2022年8月17日 /美通社/ -- 2022年8月16日,聚焦于基因和细胞治疗的上海邦耀生物科技有限公司(以下简称"邦耀生物")宣布,其...

关键字: CD 移植 BSP ISP

苏州2022年6月28日 /美通社/ -- 2022年6月23日,首都医科大学附属北京安贞医院(以下简称安贞医院)与苏州心擎医疗技术有限公司(以下简称心擎)在北京、苏州两地线上连线,隆重召开体外心室辅助系统临床...

关键字: BSP 磁悬浮 创始人 移植
关闭
关闭