TinyOS Programming
图 2.7 成功安装程序至telosb节点
如果是因为telosb节点没有插好,则会提示如下图2.3 错误信息,提示找不到任何telosb节点。
图2.8 检测节点时的错误信息
2.4 下载程序出错故障排除
许多TinyOS相关工作人员曾经跟笔者提出过这样的问题:程序编译好,没有任何语法错误,但是下载不到节点去,或者有时可以下载,有时又不能下载,不知原因何在?下面试列出可能的原因及提出相关的解决方法。
1) TinyOS安装没有成功
按照上一章“编程环境的建立”安装完TinyOS后没有检查TinyOS是否安装成功,这种情况下按照上面一章第三节“检测软件安装情况”提到的方法解决,或者重新安装一次。
2) 没有安装驱动程序
Page 18 of 94
TinyOS Programming
下载程序到Telosb节点之前是一定要先安装驱动程序的!请按照上一章“编程环境的建立”中的第五节“USB串口驱动下载及安装”的内容安装好。
3) 下载程序的命令输入错误
这种情况比较常见,常常有粗心大意的朋友将命令中的某个单词打少一个字母或将某个单词里的两个或多个字母顺序调换,并且犯这种错误时通常都是很难检查出来的。因此输入命令一定得细心!例如:假如读者使用的是telosb平台,但下载程序时不小心将telosb输入成telos,即本来要输入“make telosb reinstall”错输入成“make telos reinstall”。
4) 读者所用电脑的操作系统没有检测出有节点插在USB接口上
这种情况也比较常见。USB接口插的次数多了,很容易识别不出有Telosb节点插在USB接口上。有两种方法可以帮助读者朋友们检测出系统是否能够识别出有Telosb节点插在USB接口上:
检测方法一:如图2.4所示,在cygwin shell下输入命令motelist,然后按回车,如果没有检测到任何Telosb节点(即使有Telosb节点插入USB接口),会出现以下提示:No devices found.;反之,若有检测到Telosb节点则会在shell中显示出该节点编号等信息。
图2.9 没有检测出或检测出Telosb节点
检测方法二:如图2.5所示,打开 “设备管理器”,单击“端口”项的内容,观察是否有 USB serial Port(COM?)一项。
图2.10 设备管理器显示系统检测到Telosb节点
如果读者确实将Telosb节点插入USB接口,但系统没有检测出Telosb节点,可以采取以下方法。注意:采取下列方法时请不要使用USB延长线,务必将Telosb节点直接插入您的电脑的USB接口。
方法一、将Telosb节点拔出USB接口,重新插入USB接口;
方法二、如果采取方法一,实施多次之后仍然无法令系统识别出Telosb节点,请重新启动您的电脑;
方法三、若一次或多次重新启动您的电脑后,系统仍然无法识别Telosb节点,请更换您的电脑的主板或更换电脑进行下载工作。
以上方法都不奏效时,很有可能是Telosb节点已经报废。在保修期内,您应该联系您的厂商了。
Page 19 of 94
TinyOS Programming
5)可视化的连接图
在应用程序的目录下执行make platform docs,将会在tinyos-2.x/doc/nesdoc目录中生成该应用程序的nesdoc文档,它详细的列出了该应用程序所有的接口组件,其中配置具有可视化的图形显示。
如果出现错误提示:dot: command not found.则需要安装graphviz.
图2.11 可视化连接图
2.5 小结
本章简单地介绍了nesC的语言和特性。想要了解更详细的内容请参看tinyos-2.x\\doc\\nesc 目录下的文档和 http://sourceforge.net/projects/nescc/ 里的内容。
这一章作为后续内容的基础,大家一定要不时回来看看此章。
Page 20 of 94
TinyOS Programming
第3章 Telosb硬件平台常用可编程器件和对应的TinyOS组件
介绍
上一章协助初学者熟悉nesC的基本要素,本章则旨在解决第二个问题,即帮助初学者理清Telosb平台上的可编程器件及TinyOS中对应的组件及接口。有了这两章内容作为基础,TinyOS编程会变得容易很多。
本教程使用的节点是Telosb。Telos Rev B 是基于 IEEE 802.15.4 Chipcon 无线收发器芯片的下一代超低功耗、高传输率、无线传感网络Telos 平台,具有完善的板上内置天线,传输距离达125 米。它可选择地安装的湿度、温度和光线感应器。Telos平台提供完整的外设,包括一个12 位 ADC 和 DAC、定时器、I2C 、SPI、UART,及DMA 控制器,拥有外置Flash,能够保存1024KB的数据等。在源代码开放的 TinyOS 支持下,Telos Rev B 应用到最新的无线协议和开放源代码软件。Telos Rev B 携带一个容易使用的 USB协议, 使用它可以直接对Telos 平台进行编程、调试及数据采集。Telosb节点实物图,如图3.1和图3.2所示:
图 3.1 telosb节点的正面
Page 21 of 94