欢迎来到天天文库
浏览记录
ID:46613087
大小:64.50 KB
页数:5页
时间:2019-11-26
《TinyOS在CC2530下移植及AODV路由协议实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、TinyOS在CC2530下移植及AODV路由协议实现摘要:首先介绍了以TI的无线传感器网络芯片CC2530为核心部件的节点硬件实现,接着介绍TinyOS操作系统的运行机制及其在CC2530平台下的移植过程;并在此基础上以nesC语言实现了AODV路由协议,最后对系统进行组网测试,测试结果表明平台各功能正常运行并且实现AODV协议的基本功能。关键词:无线传感器网络;TinyOS;CC2530;AODV中图分类号:TN71134文献标识码:A文章编号:1004373X(2012)09004104收稿日期:20120106基金项目:教育部博士点基金(2
2、0100121120020)0引言无线传感器网络(WirelessSensorNetwork)是由具有感知、计算和通信能力的大量微型传感器节点组成[1],被广泛地应用于国防军事、环境监测等领域。加州大学Berkeley分校设计的基于事件驱动、组件模块化的无线传感器网络操作系统TinyOS具有核心程序小、对硬件要求低等优势,但它不支持功能强大的无线传感网络芯片CC2530,为此需要将TinyOS移植至CC2530平台,以使其得到更好的应用。同时为了节省传输能量,需要采用相应的路由协议,以多跳中继的方式将数据经由多个节点组成的路由传回汇聚节点或基站[2
3、]。本文选用TI的CC2530作为传感器节点的核心部件,采用TinyOS操作系统作为软件平台,成功将TinyOS移植至CC2530平台,并添加了Timer.UART、RF等组件;在移植的平台上,以nesC语言实现了AODV路由协议,并且实现了传感器节点的组网,数据包的多跳转发;为TinyOS和AODV的研究和应用奠定基础。1无线传感器网络系统结构1.1传感器节点硬件结构传感器节点一般由供电单元、数据采集单元、数据处理单元(由微控制器和存储器组成)、无线通信单元组成。其中,数据处理单元中的微控制器负责对其他三个单元的控制。本文的系统采用无线传感器网络
4、节点芯片CC2530作为微控制器。CC2530使用了增强型8051CPU,运行时钟频率为32MHz,具有8KBRAM;包括一个普通16位定时器和两个8位定时器,21个可编程程I/O引脚,两个支持多种串行通信协议的USART,一个符合IEEE802.15.4标准的2.4GHz无线收发器和MAC定时器。CC2530是用于IEEE.802.15.4,ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案[3]o本文节点核心部分的硬件设计如图1所示。1.2传感器节点软件结构TinyOS是加州大学Berkeley分校专门为无线传感器网络开发的微型
5、操作系统[45]o该系统采用轻量级线程(LightweightThread)、主动消息(ActiveMessage)通信模块、事件驱动(EventDriven)模式和组件化编程(ComponentBasedProgramming)等技术,有助于提高传感器网络的性能,发挥硬件的特点,降低其功耗,并且简化了传感器网络应用的开发。TinyOS采用基于事件驱动、两层调度的并发模型。内核支持两种执行线程,即中断处理和任务,主控构件维护两个数据结构支持内核的两层调度:中断向量表和任务队列。TinyOS系统采用组件化思想,其应用程序都是由若干个模块组件和配置组件
6、构成的,其组件有四个相互关联的部分[6]:一组命令处理程序句柄,一组事件处理程序句柄,一个经过封装的私有数据帧,一组简单任务。每一个组件声明自己使用的接口及其需要用信号的通知的事件。一个应用程序的组件结构图如图2所示,高层次的组件通过命令调用低层次组件,低层次组件发送信号事件给高层次组件,最低层次组件直接与硬件相互作用。图2TinyOS应用程序组件结构1.3TinyOS操作系统移1.3.1修改编译工具链TinyOS开发环境为Unix,若要为TinyOS开发应用程序,首先要使用nesC进行编程,产生以“.nc”为扩展名的源文件;然后再调用Unix的N
7、CC(nesCComp订er)编译器将源文件编译成硬件可以执行的二进制/十六进制机器码[7],如图3(a)所示。但nesC的编译器NCC调用的是Unix的GCC(GNUComp订erCollection)编译器,而GCC编译器并不支持CC2530所使用的8051处理器。为此,需要在编译过程使用Perl语言,转换C语言编译器不能识别的nesC关键字,将nesC语言编写的“.nc”文件编译为常规的C语言源文件,然后绕过Unix的GCC编译器,改由支持8051的Keil进行编译,其过程如图3(b)所示。具体的实现为编写脚本文件mangleAppC.pl,
8、在编译规则文".rules"中添加该Perl脚本的引用,以生成中间文件App.preMangle,c,并通过建立批处理文件
此文档下载收益归作者所有