试验二:MicaZ-TinyOS2.x平台下LED试验:Blink

本文详细介绍了在TinyOS2.x环境下,使用MicaZ节点和MIB510编程设备进行LED闪烁试验的过程。试验目标是实现MicaZ节点上红、绿、黄三个LED灯以不同频率闪烁。内容涵盖硬件平台的熟悉、MIB510的使用注意事项、nesC语言和TinyOS2.x系统程序框架的理解,以及Blink程序的源码分析和修改。文章最后讨论了接口、指令、事件、Task、内部函数和分相操作等相关概念,并提醒读者在实践过程中应注意的问题。
摘要由CSDN通过智能技术生成

参考www.tinyos.net

试验二:MicaZ-TinyOS2.x平台下LED试验:Blink

——TinyOS编程的“Hello World”程序

 

--------------------------------------------------------------------------------------------

date: 2011-06-24

更新内容:添加MIB520的使用

更新原因:又拿到一块MIB520板子,学习一下如何使用MIB520MicaZ节点烧写程序

更新文档:放在此实验的最后部分。

--------------------------------------------------------------------------------------------

 

试验目的:。通过试验一熟悉MicaZ硬件平台及MicaZ程序烧写,能够熟练MicaZ平台使用LED灯。其功能是实现MicaZ节点上三个LED灯闪烁,其中红,绿,黄灯闪烁频率分别为4Hz2Hz1Hz。并对Blink程序进行修改,熟悉nesC语言,及TinyOS2.x系统程序框架。

本实验所需硬件平台:1micaz节点,1mib510板,1根串口线。

 

一:熟悉硬件平台

1所示的是试验用到的处理器&射频平台MicaZ节点(MPR2400CA)(注:MPR2400CAMicaZMPR4x0Mica2MicaZ的射频频率为2.4GMica2的射频频率为433-900M),图2是基于串行端口的编程设备MIB510CA,图3是基于以太网的编程设备MIB600CA

                                   

1处理器&射频平台MicaZ(MPR2400CA)                2基于串行端口的编程设备MIB510CA

                                 图3 基于以太网的编程设备MIB600CA

MIB510CA允许使用一个串行界面和其他标准计算机平台一样在PC上传感器网络数据聚集。除数据传送外,MIB510CA也提供一个RS-232串行编程界面。

MIB600CA提供Ethernet(以太网)(10/100 Base-T)与智能尘埃”MICA/IRIS家族的连接用于通讯和系统内编程。MIB600CA允许通过TCP/IP远程进入传感器网络数据。MIB600CA串行服务器与其他网络装置一样直接与一个10 Base-T LAN相连接。MIB600CA可连接一个网络中的有线无线装置。MIB600CA也是传感器数据的一个有效管道。

接下来的试验我们均采用MIB510+MicaZ节点

使用MIB510首先要注意几点

1).MIB要给节点烧程序的时候,要把switch开关拨到‘ON’的位置

2).MIB要做普通传感器基板时,要把switch开关拨到‘OFF’的位置,否则,节点无法正常通信

3).使用MIB510的命令行是:

make [re]install <addr> <platform>

这里要注意,如下两个地址是保留值,不可使用:

TOS_BCAST_ADDR0xFFFF)和TOS_UART_ADDR0x007E)。

例如,一个MicaZ平台,要设置节点ID110,并使用串口1连接MIB510,那么应输入命令为:

    make micaz install,110mib510,com1

二:连接MIB510MicaZ节点

MIB510MicaZ节点是由一个51针的连接槽连接起来的,其硬件图如图4所示

4 MicaZ连接槽51

MicaZ节点上的红、绿、黄三个LED通过连接槽连接到MIB510基板上相对应的红、绿、黄三个LED。这样,既方便了在调试程序的时候查看LED状态,同时也可以检测连接槽是否接触良好

(本人在做试验的时候,经常没有把节点在槽中插牢固,起初总以为是接触不良)

三:应用程序源码分析

打开cygwin,进入到/opt/tinyos-2.x/apps/Blink目录下,如下图所示,可以看到tinyOS自带的用于LED闪烁的例子Blink,下面将通过分析该例子程序来认识和了解tinyOS以及nesC编程语言。

其中,目录下含有BlinkAppC.ncBlinkC.nc文件以及Makefile文件,nc为后缀的文件是用nesC语言编辑的应用程序源文件,Makefile文件生成可执行文件时供make工具调用。

Blink应用程序由两个组件组成:一个名为BlinkC的模块,其所在文件为“BlinkC.nc”,和一个名为BlinkAppC的配件,其所在文件为 “BlinkAppC.nc”。请记住,任何一个应用程序都有一个用应用程序名命名的顶层配件,在此处,配件BlinkAppC就是Blink应用程序的顶层配件,nesC编译器根据该文件的内容产生可执行文件。另一方面,模块BlinkC提供Blink应用程序的实现代码。正如所想的,Blink配件是用来连接组件:BlinkC模块和Blink应用程序用到的其它组件的。

配件和模块之间有所区别的理由:配件允许系统设计人员快速建立程序。例如:设计者设计一个应用程序可以只提供一个配件,这个配件只是简单地将一个或多个模块连接起来,而此时设计者实际上并没有实现任何东西。同样地,另一个开发人员会提供可以在广泛范围应用程序中使用的模块。

3.1 Blink配件BlinkAppC.nc

nesC 的编译器为ncc,它可以将包含顶层配件的文件编译成可执行的应用程序。一般而言,TinyOS应用程序还拥有一个标准的Makefile文件,允许进行平台选择以及在调用ncc时使用某些适当的选项。

让我们先看看Blink程序的配件:BlinkAppC

nesC 的编译器为ncc,它可以将包含顶层配件的文件编译成可执行的应用程序。一般而言,TinyOS应用程序还拥有一个标准的Makefile文件,允许进行平台选择以及在调用ncc时使用某些适当的选项。

让我们先看看Blink程序的配件:BlinkAppC

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值