APP下载

TinyOS在MSP430F149上的移植与应用

2016-11-26

自动化仪表 2016年8期
关键词:应用程序射频组件

周 鹏 燕 斌

(江苏农牧科技职业学院农业物联网系,江苏 泰州 225300)



TinyOS在MSP430F149上的移植与应用

周 鹏 燕 斌

(江苏农牧科技职业学院农业物联网系,江苏 泰州 225300)

无线传感器网络操作系统TinyOS在生产和科研中有着广泛的应用前景,目前全面支持的节点平台只有TelosB、MicaZ等少数几种。为支持新设计的硬件平台,需要实现TinyOS在由MSP430F149和CC2420组成的新平台上的移植。在分析了TinyOS系统的体系结构和编程机制后,提出了具体的移植方案,并成功实现了该系统在新平台上的移植。试验结果表明,将TinyOS系统移植到新平台后,各组件均能稳定地工作。

无线传感器网络 CTP协议 嵌入式系统 射频模块 微控制器 TinyOS MSP430F149

0 引言

无线传感器网络[1]由大量带有感知能力、简单信息处理能力及无线组网能力的廉价智能节点组成,其部署在某一区域,以实现对该区域特定信息的采集、传输与控制。为了实现对硬件资源的合理利用、多任务的有效管理和系统应用程序的便捷开发,引入嵌入式操作系统是一个理想的方案。然而无线传感器网络节点具有资源有限、运行功耗低等特点,传统嵌入式操作系统很难满足这些需求。因此,一些科研机构研究开发了专用于无线传感器网络的操作系统[2],比较出色的操作系统有TinyOS、Contiki等。本文在以MSP430F149为核心的新平台上,对TinyOS系统进行了移植,编写了基于CTP协议的程序,并进行硬件节点的组网试验。

1 TinyOS操作系统的简介

1.1 TinyOS操作系统的实现基础

TinyOS是由美国加州大学伯克利分校基于nesC语言开发的一种无线传感器网络操作系统。该系统具有广泛的科研和实用价值,在国防军事、环境监测等众多领域均有应用[3]。为了设计TinyOS操作系统,开发人员采用了以下几项技术[4]。

①组件化的编程机制。组件化编程允许应用程序的设计人员将独立组件通过各层配件文件进行组合,在顶层配件文件中完成应用程序的整体装配。

②事件驱动机制。TinyOS调度事件处理程序能快速响应由外部事件产生的硬件中断,因此TinyOS操作系统可以应用于具有节点多、并发操作多等特点的无线传感器网络中。

③轻量级线程。应用于无线传感器网络的硬件平台往往不具有内存保护机制,所有组件共享地址空间。采用轻量级线程及FIFO调度,使短小的并发任务能够共享堆栈空间,并能实现任务间的快速切换。

④主动消息通信。这是一种基于事件驱动的高性能并行通信方式,应用于TinyOS通信层关键协议。

以上几种技术在软件体系结构上体现了一些已有的研究成果,使得TinyOS操作系统在存储、处理能力有限的硬件平台上,仍然能够进行大量信息的收集、处理及传输[5]。

TinyOS操作系统最早由C语言及汇编语言设计而成,经广泛应用和深入研究,发现开发过程中采用C语言编写应用程序效率较低、使用不便。研究人员在C语言的基础上进行了一些扩展,设计出一种支持组件化编程的nesC语言,此后TinyOS操作系统及其应用程序均采用该语言进行编写。nesC语言中有组件、模块、配件、接口等几个重要的概念[6]。系统的应用程序由配件捆绑的一系列组件所构成,组件中又包含各种接口。接口是连接使用者和提供者之间的桥梁,具有双向性。使用者通过命令调用提供者接口中所实现的功能,同时也要实现提供者接口中的事件函数。

1.2 TinyOS操作系统的体系结构

TinyOS操作系统的体系结构如图1所示,主要包括:应用层、系统核心及硬件层[7]。应用层主要由应用组件组成,系统核心由主组件、感知组件、执行组件及通信组件组成,硬件层由硬件抽象组件组成。

图1 系统体系结构图

应用层根据具体的应用场合编写应用程序,执行组件、感知组件和通信组件为编写的应用程序提供相应的接口。主组件在系统的初始阶段完成对硬件及其他组件的初始化工作,并通过由其实现的一种简单的FIFO调度器和轻量级线程技术来进行系统层和应用层的任务调度。硬件层对实际的硬件进行抽象,TinyOS操作系统在具体平台上移植的工作建立在对该层深入研究的基础上。

整个硬件层可以划分为硬件表示层(HPL)、硬件适配层(HAL)和硬件接口层(HIL),结构如图2所示。

图2 硬件层结构图

在硬件层的3层结构中,最低的子层为硬件表示层,该层通过操作硬件设备的寄存器来访问硬件。硬件表示层之上为硬件适配层,作为连接的桥梁。硬件适配层对硬件表示层提供的接口进行封装,隐藏对硬件资源的复杂操作。从应用程序开发者的角度来看,希望所编写的应用程序可以适用于各种硬件平台。为了消除硬件平台之间的差异性,硬件接口层要再次对硬件适配层封装后的接口进行抽象,使得应用程序开发人员可以方便地调用该层提供的接口。

2 节点硬件平台的设计

2.1 微控制器

节点硬件平台一般由嵌入式微控制器、射频芯片、传感器和电源构成,有的节点还包含存储器。嵌入式微控制器是核心部件,负责处理、存储传感器所接收的数据信息,控制通信单元进行数据的收发并操控执行器的动作。本系统采用TI公司推出的低功耗单片机MSP430F149作为节点的嵌入式微控制器。该芯片使用广泛且性能卓越[8]。MSP430系列的单片机是16位单片机,采用RISC结构,当使用8 MHz晶振工作时,指令速度可达8 MIPS。芯片采用低功耗设计方案,电源电压采用1.8~3.6 V低电压,在RAM数据保持方式下耗电仅0.1 μA/MIPS,活动模式耗电250 μA/MIPS。节点在没有工作任务时处于睡眠模式,以降低系统功耗。采用快速中断请求唤醒CPU仅需6 μs,这使得节点既能保持低功耗的运行模式,又能快速响应外部事件请求。本文设计的硬件节点框图如图3所示。

图3 节点硬件框图

2.2 射频模块

射频芯片可实现各个节点之间的无线通信和组网。CC2420是Chipcon公司推出的首款符合2.4 GHz IEEE802.15.4标准的射频收发器,具有功耗低、性能稳定的特点[9]。CC2420芯片既能实现点对点通信,又能实现组网功能,传输速率可达250 kbit/s。CC2420与微控制器MSP430F149的连接非常方便,关键引脚的连接示意图如图4所示。

图4 MSP430F149与CC2420关键引脚连接图

3 TinyOS操作系统的移植

TinyOS操作系统的移植工作主要来自两个方面:开发环境的搭建和TinyOS新平台的搭建。

3.1 开发环境的搭建

基于TinyOS系统的应用程序使用的编程语言是nesC,文件名均以.nc结尾。对于nesC程序的编译,首先使用nesC编译器进行预编译,得到普通的.c文件;然后再由具体硬件平台的编译器进行编译,得到最终烧写到硬件节点的可执行文件。

TinyOS系统应用程序的编译使用的是GNU Make,预编译相关的文件在support/make文件夹中。主要文件有两个,一个是以.target为后缀的平台配置文件,另一个则是在平台上建立应用程序的.rules文件。在应用程序进行编译时,编译文件首先在设定好的路径中搜索.target文件,在该文件中设置有与平台有关的变量及平台的名称,具体内容如下:

PLATFORM =yamp

MSP_MCU=msp430f149

$(callTOSMake_include_platform,msp)

yamp:$(BUILD_DEPS)

@:

3.2 TinyOS新平台的搭建

本文搭建了名为yamp的TinyOS新平台,新平台使用的微控制器和射频芯片分别为MSP430F149和CC2420。这两款芯片目前已得到TinyOS的支持,所以省去了许多驱动组件的编写工作,只需把已有的平台芯片相关代码进行整合与连接。具体步骤为:

①在tinyos-2.x/tos/chips目录中,TinyOS提供了MSP430F149和CC2420等芯片的驱动程序。对于MSP430系列的单片机,驱动程序提供了Timer、ADC、DMA、Flash等外围部件的组件程序。

②在tinyos-2.x/tos/platforms中给出新平台yamp的定义,这是移植工作的核心步骤,实现了各个分散模块的连接整合工作。

在该目录中必须创建以下文件:.platform、platform.h、hardware.h、PlatformC.nc、PlatformP.nc、PlatformLedsC.nc。其中比较重要的是.platform、PlatformC.nc、PlatformP.nc这三个文件。PlatformC.nc、PlatformP.nc文件提供Init接口,将yamp节点硬件平台的初始化与启动工作与RealMain组件进行连接。在.platform文件中,定义TinyOS在编译链接过程中所需的编译参数。platform文件的具体内容为:

push( @includes,qw(

%T/chips/CC2420

%T/chips/msp430

%T/chips/msp430/adc12

%T/chips/msp430/dma

%T/chips/msp430/pins

%T/chips/msp430/timer

%T/chips/msp430/usart

%T/chips/msp430/sensors

%T/lib/timer

%T/lib/serial

%T/lib/power

) );

@opts =qw(

-gcc=msp430-gcc

-mmcu=msp430x149

-fnesc-target=msp430

-fnesc-no-debug

);

push @opts,"-fnesc-scheduler=TinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask" if !$with_scheduler_flag;

③射频驱动的实现基于TinyOS系统提供的两个重要的库,一个是通用射频HIL组件库rfxlink,另一个是网络组件库net。其分别存放于/tos/lib/rfxlink和/tos/lib/net中。设计人员只需提供部分HAL组件,就可以完成对整个TinyOS射频驱动的设计。

至此,新的yamp平台已搭建完成,可以通过编译NULL应用程序来测试编译环境是否构建成功。

4 CTP协议程序测试

为了测试平台移植方案的正确性及Timer组件、Uart组件、RF组件等组件是否均能正常工作,编写了基于CTP数据传输协议[10]的测试程序。采用CTP协议编写的程序,首先建立一棵以基站为根节点的汇聚树,当某节点有数据发送给基站节点时,该节点将沿着汇聚树发送数据给其上层节点,直至把数据传送到最顶层基站节点。

试验中,使用3个节点构建一个星型网络,组网后非根节点在定时器的作用下,每隔1 s将消息内容通过汇聚树传输到根节点一次。根节点将接收到的数据通过串口发送到PC上,PC上显示根节点接收到的各个非根节点的消息内容和源地址。

程序编写好后,使用搭建好的编译工具进行编译。然后运行Lite FET-Pro430 Elprotronic程序,并将编译生成的可执行文件通过仿真器或BSL烧录到MSP430F149中进行测试。实际测试证明,该节点平台在移植TinyOS操作系统后,可以稳定地运行。

5 结束语

本文介绍了TinyOS操作系统、nesC语言和节点硬件平台,通过修改编译工具、搭建yamp平台、编写硬件层的相关组件,完成了TinyOS在由MSP430F149和CC2420组成的新平台上的移植。通过测试,验证了构建的开发环境及使用的各相关组件均可正常工作,证明了新平台移植TinyOS操作系统的可行性。后续能以该平台为基础,进行下一步的功能扩充和性能完善,以增强该系统的实际应用价值。这将对无线传感器网络今后的研究与应用起到推进作用。

[1] LEVIS P,GAY D.TinyOS programming[M].England:Cambridge University Press,2009:27-28.

[2] 吴小娜,王漫.无线传感器网络操作系统TinyOS 综述[J].计算机与现代化,2011(2) :103-105.

[3] 潘皓,董齐芬,张贵军,等.无线传感器网络操作系统TinyOS[M].北京:清华大学出版社,2011:8-10.

[4] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005:342-346.

[5] BURNS A,GREENE B R,MCGRATH M J,et al. SHIMMERTM - a wireless sensor platform for noninvasive biomedical research[J].IEEE Sensors Journal,2010,10( 9) :1527-1534.

[6] 鲁琛,屈稳太,杨祥龙,等.桃园中无线传感网络通信协议的改进设计[J].农业机械学报,2014(7):260-266.

[7] 刘志斌,雷景生,杜海舟.基于TinyOS的用电监测无线传感器节点设计[J].上海电力学院学报,2015(1):68-72.

[8] Texas Instruments.MSP430 TM Ultra-Low Power 16-Bit Microcontrollers[EB/OL].[2014-05-18]. http:∥e2e.ti.com.

[9] 刘帅,周悦.基于TinyOS的CC2420驱动组件的研究[J].单片机与嵌入式系统应用,2011(12):19-21.

[10]李外云.CC2530与无线传感器网络操作系统TinyOS应用实践[M].北京:北京航空航天大学出版社,2013:445-452.

Transplantation and Application of TinyOS to MSP430F149

The operating system TinyOS for wireless sensor network has a wide application prospect in production and scientific research. Currently,the fully supported node platforms are only a few,such as TelosB and MicaZ. To support the newly designed hardware platform,transplantation of new platform composed by Msp430F149 and CC2420 is requested. After analyzing the architecture and programming mechanisms of TinyOS system,a specific transplant plan is put forward and the transplantation on new platform is achieved successfully. The experimental result shows that all components work stably when the TinyOS system is transplanted on the new platform.

Wireless sensor networks CTP protocol Embedded system RFID Microcontroller TinyOS MSP430F149

江苏省泰州市科技局科技支撑基金资助项目(编号:TG201413)。

周鹏(1983—),男,2013年毕业于江苏大学检测技术与自动化装置专业,获硕士学位,助教;主要从事嵌入式操作系统与无线传感器网络的研究。

TH86;TP316

A

10.16086/j.cnki.issn 1000-0380.201608004

修改稿收到日期:2015-09-02。

猜你喜欢

应用程序射频组件
无人机智能巡检在光伏电站组件诊断中的应用
5G OTA射频测试系统
关于射频前端芯片研发与管理模式的思考
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
桥梁组件搭配分析
ALLESS转动天线射频旋转维护与改造
腹腔镜射频消融治疗肝血管瘤