GAINZ无线传感器节点中TINYOS移植及测试

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:gdtk88
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]TinyOS是由U.C.Berkeley专为嵌入式无线传感网络设计开发的开源操作系统,GAINZ是中科院计算技术研究所开发的无线传感器节点平台。由于TinyOS系统并未加入对GAINZ节点的底层支持,在TinyOS中开发的网络协议与应用程序无法直接运行于GAINZ节点上,因此进行TinyOS的移植就需要对GAINZ节点模块进行相应的驱动程序设计。对TinyOS生成的例子和编写的应用组件message进行仿真测试和烧录到GAINZ节点测试,Blink测试程序使得节点上的Led灯(红、绿、黄灯)以不同的频率闪烁,编写的应用组件程序message使得发送节点红灯先亮,接收节点绿灯后亮。测试结果表明,在GAINZ上移植TinyOS是可行的。
  [关键词]无线传感器网络(WSN);TinyOS移植;nesC;GAINZ
  中图分类号:TP212 文献标识码:A 文章编号:1009-914X(2014)33-0144-01
  1、引言
  无线传感器网络(Wireless Sensor Network, WSN)是当前在国际上备受关注的前沿热点研究领域。目前,国内许多学者已经证明了TinyOS的可移植性,也实现了TinyOS在不同芯片(如51单片机、PIC微处理器、无线单片机CC1010、CC2430、嵌入式开发板GENE-8310、LCP2136FBD64等等)上的移植,并提出了很多改进方法,如采用基于FIFO的动态优先级调度策略、引入抢占式任务调度策略等在任务调度策略上的一些改进。针对不同的应用,对TinyOS系统的要求也不一样,这就需要我们对TinyOS的组件进行相应的重建或修改。对不同平台上移植TinyOS,并让其正确运行,达到与平台良好的融合是目前TinyOS移植的最终目标。由于我们选择的开发平台是中科院研发的GAINZ节点平台,而TinyOS系统并未加入对GAINZ节点的底层支持,本文针对GAINZ自身的特点,分析了TinyOS的移植性,并比较GAINZ节点和MICAZ节点的异同,修改组件和编写应用组件实现了TinyOS的移植。个可行的研究平台。
  2、GAINZ节点
  GAINZ节点是由中科院计算所研发的无线传感器网络节点平台,它兼容2.4G无线传感器网络节点,在传输距离、功耗等方面具有一定的优势。GAINZ采用低功耗微处理器芯片ATMEGL128,射频部分采用的是CHIPCON CC2420芯片,扩展存储采用容量达512KB的低功耗FLASH存储器。整个系统采用了通用的接口插槽,将传感、处理和通信模块进行分离,可以实现按照不同的应用需求进行不同的扩展[1]。
  TinyOS支持的硬件平台中有MICAZ,MICAZ节点是由Crossbow公司设计开发的,通过研究发现,MICAZ与GAINZ存在很大的相同点。在文献[2]中有较详细比较了两者的异同,本文对其进行了归纳,它们的相同点包括:主要的节点结构、采用的处理器、射频收发器、flash存储器的型号和扩展接口等部件一致,两者器件的连接方式也基本一致。两者的不同之处在于处理器使用的晶振频率,GAINZ使用的是8MHz晶振,而MICAz使用的是7.3827MHz晶振。
  3.1 TinyOS体系结构
  Tinyos的应用运行环境主要由5个部分实现:Main组件用于节点硬件的初始化以及调度程序的开始执行;应用组件由具体的应用定义,用于实现用户需求的具体应用的功能;系统组件用于为应用层组件提供各种服务;HPL(硬件描述层)是底层硬件的包装,对硬件平台有较高依赖性,该层组件即使起到硬件包装、管理硬件起到隔离应用层与硬件的作用,硬件描述层的独立抽象增强了TinyOS的移植性。通过硬件抽象层对硬件平台的合理描述,可使操作系统内核基本和具体的硬件无关,从而实现不同平台间的移植;节点硬件是操作系统与其应用程序运行的硬件平台上的硬件设施。
  3.2 nesC语言
  nesC(C language for network embedded systems)是加州大学伯克利分校在C语言的基础上进行的一定的扩展,目的是为了能更好的支持TinyOS的组件化编程模式,以方便有效地支持面向传感器网络的应用和操作系统的开发。TinyOS以及基于TinyOS的应用都是nesC编写的。nesC主要的特点包括:支持基于组件的编程模式,并兼容标准的C语言语法;将组件化/模块化思想和TinyOS基于事件驱动的执行模型结合起来以利于WSN协议的开发;编译器支持实现参数化接口,利于用户程序的开发;组件化编程思想,提高代码的可重用度,极大节省了代码空间。
  nesC语言中,应用程序都是由组件和接口组成:⑴.组件 :nesC组件使用的是一个纯局部的命名空间,这就是说一个组件除了要声明它将执行的函数外, 还要声明它所调用的函数。每一个组件都有一个形式说明(specification),这个形式说明是一段代码,它声明了组件所提供(执行)接口(函数) 和所使用(调用)的接口(函数)。nesC有两种组件:配件(configurations),用于将组件连接在一起从而形成一个新的组件;模块(modules),提供了接口代码的实现,并且分配组件内部状态,是组件内部行为的具体实现。配件和模块的主要区别是后者有实现代码但不能连接。前者没有代码,但可以连接⑵.接口:接口(interface)是相关函数的一个集合,用户可以根据功能的需要定义自己的接口,但在定义接口中的函数时,必须使用command或 event关键字声明该函数是命令或是事件,否则编译时会报错。
  4、TinyOS在GAINZ上的移植
  TinyOS已包含对Atmega128L处理器的支持,我们也通过对比GAINZ节点与MICAZ节点,发现两者的不同之处在于处理器使用的晶振频率,这意味这在编程设置处理器串行接口的波特率时有所不同。因此只需通过修改TinyOS中波特率寄存器UBRR的值即可在TinyOS中使用“make micaz”来编译应用程序,使其在GAINZ节点上正确运行,大大简化了在GAINZ上实现TinyOS移植的工作。但是GAINZ上移植TinyOS1.x与移植TinyOS2.x略有不同,在TinyOS2.x中,并不需要对GAINZ进行硬件描述层的编写,就能使用“make micaz”来编译应用程序;并且不需要再定制编译环境,TinyOS2.x系统自身便能生成ihex格式的二进制代码。这样在TinyOS中应用程序编译之后就可以生成ihex格式的二进制代码,并可通过GAINZ开发包中的AVR程序烧写器进传感器节点中。移植的整体步骤如下:①安装、配置TinyOS2.x环境;②编写移植代码:使用nesC语言编写自定义应用组件message;③进行移植测试:首先使用“make micaz”编译是否通过;其次使用“make micaz sim”进行仿真;最后使用“python *.py”命令显示仿真结果。④移植到GAINZ节点上:将应用组件编译通过后,将会自动生成的main.ihex文件,我们将其改成main.hex,烧录到GAINZ节点上。   5、测试
  安装配置好环境以后,在windows下运行cygwin,输入命令“tos-check-env ”测试安装环境;对Blink例子和应用组件message仿真,显示仿真结果:Blink是利用dbg语句在内核上使定时器0、定时器1、定时器2按不同频率显示仿真时间;应用组件message是节点间的通信,所以仿真时只会显示发送节点发送成功时的消息即“successfully sending”。使用Graphviz产生可视化的图(组件间的关系),并通过使用“make micaz docs”在/opt/tinyos-2.x/doc/nesdoc目录下面的micaz文件夹中生成index.html。通过在网页左边的导航栏中点击components栏中的BlinkAppC、messageAppC,可以看见nesdoc,将生成的main.ihex文件烧录到GAINZ节点里,如果GAINZ节点上烧录的是Blink测试程序,则节点上的Led灯(红、绿、黄灯)以不同的频率闪烁;如果GAINZ节点上烧录了自己编的应用组件程序message,则GAINZ节点上发送节点红灯先亮,接收节点绿灯后亮。
  6、结论
  本文利用研究者已实现在不同平台上移植TinyOS的经验,以在GAINZ上实现移植为目标,编写了应用组件message,并对它和TinyOS下的测试实例进行了仿真测试和烧录到GAINZ节点测试。所得仿真结果为:Blink是利用dbg语句在内核上使定时器0、定时器1、定时器2按不同频率显示仿真时间;应用组件message是节点间的通信,所以仿真时只会显示发送节点发送成功时的消息即“successfully sending”。烧录到GAINZ节点测试结果为:Blink测试程序使得节点上的Led灯(红、绿、黄灯)以不同的频率闪烁;自己编的应用组件程序message使得发送节点红灯先亮,接收节点绿灯后亮。试结果表明,在GAINZ上移植TinyOS是可行的。
  参考文献
  [1] 宁波中科集成电路设计中心(计算所宁波分部),中国科学院计算技术研究所信息网络室.GAINZ节点产品白皮书.2005.12.
  [2] 唐彤兰.无线传感器网络节点自定位技术与无线传感器网络开发平台研究[D].浙江杭州:浙江大学 信息与通信工程,2007.
其他文献
[摘 要]本人根据自身参与多条山区高速公路施工管理经验,较细致的阐述了路基施工关键环节的质量控制,从而为类似工程施工提供借鉴作用。  [关键词]山区公路路基、施工、控制。  中图分类号:U213.1 文献标识码:A 文章编号:1009-914X(2014)33-0151-01  一、前言  我们知道路基既是路线的主体又是路面的基础,路基施工质量直接影响到路面的使用效果,因而路基施工质量是整个公路工
期刊
[摘 要]新的时代对电力行业反腐倡廉工作提出了新的要求,面对新形势,新任务,如何做好新时期的纪检工作,是我们每一位纪检干部应该认真研究和思考的问题,要做好新时期的纪检工作,必须要解放思想,与时俱进,创新工作思路,在工作创新上下功夫。本文旨在总结纪检实践工作中的一些创新工作方式,及如何在实际工作中运用这些新成果,从而达到更好的指导企业纪检干部开展工作的作用。  [关键词]纪检工作 创新 企业内部管理
期刊
[摘 要]本文主要阐述了石油开采行业作业岗位应急处置的编制的目的、内容、依据、以及编制和演练,结合我区生产现场实际,组织相关人员和岗位员工共同编制,通过现场的演练与研讨不断完善编制,做到合理切实可行。  [关键词]应急处置 编制 演练  中图分类号:U642.3+5 文献标识码:A 文章编号:1009-914X(2014)33-0142-01  1、前言  编制适用的岗位应急处置并不断完善,消除隐
期刊
[摘 要]随着自动化技术的飞速发展,自动控制技术正逐步得到广泛应用。尤其是当代,自动控制技术迅猛发展、日新月异,深刻地影响了人类生活和人类命运的各个方面。半导体微电子学、光学和光电子学、计算机和通信网络等信息采集  中图分类号:TB486+.3 文献标识码:A 文章编号:1009-914X(2014)33-0148-01  自动控制技术是20世纪发展最快、影响最大的技术之一,也是21世纪最引人瞩目
期刊
[摘 要]软交换网关应该考虑备份,应该有两个相互备份以太网端口连到骨干网,实现对端口的备份。另外,网关要支持负荷分担,在采用主备用两个网关负荷分担,当主网关发生故障时,软交换拆除连接,新呼叫选备用网关。后台管理系统定期发起对前台数据的CRC校验。当发现前后台数据不一致时,后台管理系统会主动发起对前台的设定过程,在设定超过一定次数仍然不成功的情况下,则产生告警,提醒操作人员尽快恢复数据。  [关键词
期刊
[摘 要]电子商务合同已渐渐地成为我们生活的一部分,甚至被认为终将取代传统合同,而引领人类走向全面的电子信息时代。然而,电子商务在为人们提供交易便利的同时,也难免为法律学者们带来新的思考。笔者就其多年的工作实践,体验电子商务合同带来的时代变迁,谨以对法学的浅薄学识探讨分析电子商务合同的法律效力及相关问题,以期对同业人员有所借鉴。  [关键词]电子商务合同;法律效力;问题  中图分类号:D923 文
期刊
[摘 要]光纤通信是利用光波在光导纤维中传输信息的通信方式,是现代通信网的主要传输手段,它具有高速度、大容量、高保密性等特点。本文分别介绍了光纤通信技术的历史和现状,以及光纤通信技术的发展趋势,并对一些先进的光纤通信技术进行了介绍。  [关键词]光纤通信技术;历史;现状;发展趋势  中图分类号:TM451+.7 文献标识码:A 文章编号:1009-914X(2014)33-0158-01  一、光
期刊
[摘 要]本文主要阐述了国内外各种降粘工艺的技术特点及稠油开发现状,并对各自的优、缺点进行详细的对比。  [关键词]降粘;稠油  中图分类号:TE832 文献标识码:A 文章编号:1009-914X(2014)33-0159-01  世界上稠油和沥青砂资源潜力很大,估计探明的稠油储量为四十多亿桶,至少是已知常规原油储量的三倍,主要分布在加拿大、委内瑞拉、美国、俄罗斯、中国和印度尼西亚等国。稠油及沥
期刊
[摘 要]土建工程施工步及到各种专业知识,在工程施工中需要交叉配合和协调工作,不管是在设计方面,还是在施工的质量方面,都必须受到较好的控制。如果控制不好,管理不好,在工程施工的后期就会因为这样或那样的问题形响工期,造成工程投资的浪费,更有甚者,会影响到工程的使用功能,严重的甚至存在质蚤问题和安全隐患。因此,如何有效的对土建工程施工现场进行管理,对于项目投资者和工程管理者来说,显得尤为重要。  [关
期刊
[摘 要]公路路线纵断面测量又称中线水准测量,它的任务是在道路中线测定之后,测定中线各里程桩的地面高程,绘制路线纵断面图,供路线纵坡设计之用。本文分析了公路勘测中线水准测量误差产生的来源,并提出了相应的解决办法。  [关键词]中线 水准测量 误差  中图分类号:P224.1 文献标识码:A 文章编号:1009-914X(2014)33-0145-01  一、前言  水准测量是公路工程地面点高程测量
期刊