TinyOS-2.x-入门教程.docx
《TinyOS-2.x-入门教程.docx》由会员分享,可在线阅读,更多相关《TinyOS-2.x-入门教程.docx(57页珍藏版)》请在课桌文档上搜索。
1、TinyOS2.x编程入门教程Version1.02010/12/17书目前言第1章编程环境的建立1.1 安装JAVAl.6JM21.2 安装CKnN(11MXW(W1.T)21.3 安装-WB21.4 安装TIOToS工具31.5 Ut环缰三*31.6 安装GlAfflnZ41.7 MW软件安装状况41.8 USB串口驱动下安装5第2章TINYOS简介2.1 SC语&简介ffl件(cnponents)7并发模组H2.2 常用Mn吩板介122.3 蜘B1.DKTDffOS*8的-HElXOf0U)Wf12Blink归件13BlinkC模块14事务evenst和吩附ConnHndS16编译BIi
2、nk应用程序17安装BIink程序到TCloSb节点并运行172.4 下出幡故MW除182.5 小结20第3章TE1.OSB硬件平台常用可馆程器件和对应的TINYOS蛆件介绍21Telosb慢件平台上的1.ed零件展示22TinyoS中1.ed编程组件介绍223.2 23TCIoSb硬件平台上的传感器展示23TinyOS中传感寄漏秤姐件介招243.3 串口25Telo曲硬件平台上的串I展示25TinyOS中用Il编程殂件介绍263.4 Radio27Telosb硬件平台上的Radio相关网件展示27TinyOS中Radio编程组件介绍273.5 小结274用方式从获得数据274.1 ”实现28
3、4.2 ADC30第5章TlNYOS任务及JS用举例335.1 任务的创建和度335.2 IMItSa(SBTAa应用Wr335.3 小结34第6章TINYOS串口编程356.1 TtoTSaUA1.Sffi8t356.2 串口助手,PC上显示从串口读取的数据386.3 TttOSB从串口读取406.4 OSCl1.1.oeCOre应用射426.5 BassStatkm应用466.6 小站51附录1TlNYOS命名约定52附录2NESC语言储关健字54前言防行传感器技术、做机电系统、现代网络、无线通信、低功耗等技术的E速发展,推动了无线传感器网络(ISN:wirelesssensornetwo
4、rk)的产生和发展.无线传感渊网络涉及IT领域的多种技术,成为目前IT轴域的探讨热点之一.无线传感器网络就是由部部在监测区域内大以的廉价微型传络器节点组成,通过无畿通信方式形成一个多淡的自组演网络,无线传礴器网络所具有的众多类皇的传感器,可探测包括地震、电描、温度、湿度、噪声、光强度、东力土馔成分、移动物体的大小、速度和方向等各种各样的现象.具有广袤应用前景,潜在的应用领域可归幼为:军事、侦空、反恐、防暴、故灾、环境、医疗、保健、家居、城市管理等诸多领域,传感涔节点是一个做笈的嵌入式系统,具有特别有限的硬件资源,须要操作系统能修高效地运用其仅有的内存、处理渊和通信桢块.且能峡对各种特定应用供应
5、最大的支持.传感器节点有两个突出的特点,一是并发性密集,即可能存在多个须要同时执行的逻辑限制,这须要操作系统能帔有效地满意这种发生频繁、并发程度高、执行过程比较短的限制逻辑流程:另一个特点是传感器节点模块化程度很高,要求操作系统能够很便利让应用程序便利地对硬件进行限制且保证在不影响整体开俏的状况下,应用程序中的各个部分能够比较便利地进行重新组合.美国加州高校伯克利分校针对无线传感器网络的特点研发了TinyOS操作系统,在科研机构的探讨中应用比较广泛,TinyOS是无戏传感涔网络中较为流行的操作系统,所用编程语言为nesC(networkembeddedsystemC),nesC语才由C谙吉扩展
6、而来.意在把组件化、模块化思想和TinyOS基于事务驱动的执行模型结合起来.目前在国内,关于TinyOS的资料并不多,而且很做,给各个方面的人员在运用TinyOS时造成了诸多不便,我们在运用TinyOS时枳累了一线阅历,在此希里能对大家有泞定的帮助”本教程所用硬件平台为Telosb.操作系统版本为TinyOS2.x.nesC谱言版本为1.3.主要内容的几乎序装TeloSb硬件平台的全部常用可编程器件及TinyOS一些理要概念,内容不是很深化,适合没有接触过TinyOS的初学者,但就其对于Telosb现件平台而言,是运用Telosb硬件平台的工作人员或吸好者不行多得的参考文档,并且在熟识了此教程
7、之后,读者挚友们可以很简洁地转到其它硬件平价上去.在爸例的选择方面,本教程尽量选择了TinyOS自带的例产,便利读者测试.只有少数例干在TinyOS中没有,己编写了尽用简短的程序并在教程中展示了这些例子的完整代码,在讲解某些内容方面,特殊是概念性的内容,我们借鉴了TinyOS官方公布的一些讲解方式、引用了部分内容及例子.以使尽可能精确传达TinyOS研发者的初亵.岐终,本教程要求读者均具有C语古编程的基础.因为nesC是C诺古的扩展,在此教程不会讲解任何C编程方面的内容,如有读者未有C语言祭础,请先学习C方面内容,以便可以进一步学习此教程涉及的内容。更加深化的内容及本教程运用到的工具会在“相关
8、资源列I1.以便利大家进一步学习.第1章编程环境的建立目前TinyOS支持两种平台:CyKVin(windows)和1.inUX。下面介绍在这两种操作系统下TinyOS的安装步骤.1.1安装JaVaI.6JDK(1)下载JAVAJDKSE6或n-b32-windows-i586-p-12_sep_2008.exe(2)安装路径c:UCBJavajdk_10c:UCBJavajre63)设置环境变最(a) C1.ASSPATH我的电脑属性-高级环境变量系统变量新建变量名Hlasspath变量值;c:lCBJavajdk_10bin:c:UCBJavajdkl.6.0J0libtools.jar(
9、b) Path我的电脑-属性-将级环境变址系统变fit娟辑变fit名:Path:c:MJCBuaVajdk_10bin;c:UCBJavajdkl.6.0.10jrebin(c) JAVRjoME我的电脑-属性-高级环境变址系统变量新建-fit名:JAVAIoME变量值:c:UCBJavajdk_101.2安装CWgWin(windowonly)easinCygwin只有在运用MSP430或者是iMow2的埋件平台的时候,才须要对环境变量PATll进行设置,仕志向状况下,可以通过符这些环境变量写入Shdl脚本文件中,它会在每次Shell启动的时候自动运行.可以运用吩咐“Tbash_PrOfnC
10、”打开配置文件进行添加.scriptforpoflie.dforboshshells,adjustedforeachusers2 9installationbyaubacutlng/optfortheactualCXnyoStree3 ffinstallationpoint.5 exportTOSROOT-topt/1nyos-2.x*6 exportTOSDIR-w$T0SRTTOSw7 exportC1.S3PATH三,cygpach-wSTOSPOOT/oupporc/adVjvtlnyo8.Jar,eexportC1.AS3PTH*tC1.A33PTH;.*9exportMAK三RU1
11、.ES-,tTOSROOT3upportkeXaXeruleaw1011typejvdevnull2devnullPATH*usrlocalbnlocate-jee-java:5PTHIZtypeJavacdevnull2devnul1PATH-/uar/localbllocate-jre-JaVBC:SPJ1.THUechoJPATHgrep-qusrlocal/tolnPXTH-Zuar/local/bin:5PATH1.6 安装Graphviz对于WindoWS操作系统,可以到下载所需的安装文件.否则到OWnIoad.php下载所需的rpm包进行安装.1.7 检测软件安装状况安装完Tin
12、yOS等软件包之后,打开CygWinshell.输入吩咐:Stos-check-env系统将会检测各个程序是否正常,查看安装时是否有错误发生.一般状况下,不会发生什么严竣错误。当全部程序正确安装时,最终一行是:toschockcompletedwithouterror.这一行依要,假如有任何储谡,请依据It示值息进行改正.若在检测后出现如下提示:toscheckcompletedwitherrors:-WARNING:C1.ASSPATHHaynotinclude.(thatis,thesymbolforthecurrentworkingdirectory).PleaseaddJtoyourC
13、1.ASSPATHoryoumayexperienceconfigurationproblems.此信息提示:某环境变量配置有点问题,但.是这是关于TinyoS自带的java工具的,这是因为在配置文件中exportC1.ASSPATH7C1.ASSPATH;.”格式的问遨.进行修改后即可.1.8USB串口驱动下载及安装Telosb硬件平分运用FTDI公司的“USB一串口芯片”:FT232B.该芯片的驱动程序请在FTDl公司的网站下放,具体链接为:.在此度接中选择适合您的计算机的驱动,例如:本人所用计算机操作系统为Irin(Jowsxp,故本人选择inkwsXp版本的驱动.当您第一次运用Telo
14、sb时,须要安装骤动程序,将Tclosb节点插入PC的USB接口,假如找不到驱动程序,IIindoWS会弹出“发觉新硬件向导”的对话框,如图1.11所示.选择t,Instal1fromalistorspecificlocation(Advanced)”,然后点击Next,IS1.11弹出的安装向导接着.选择Includethislocationinthesearch.然后点击“Browse。如图I.12所示:图1.12选择您的.驱动程序然后选择驱动程序所在文件,例如:在笔者的电脑中,文件夹如图1.12所示.点击“OK”,然后点击-Next.紧接着WindgS安装该驱动程序,安装完成后就把Tel
15、ob变成一个1.SB串口设备,此时您可以检查设备管理潜流1.1.在是否有ISBSerialPort这个设备,假如没有可以曳试几次第2章TinyOS简介TinyOS作为无线传感器网络中比较流行的操作系统,支持目前出现的多种节点。就2.x版木而言,支持mica系列、ICIOS系列等节点。TinyOS作为开源的操作系统,其价值不单为支持多个系列的节点,对单片机爱好者而言.更是学习多种单片机娟程的上佳资料:对操作系统爱好者而言也彳J肯定参考价值,其简洁性让读若更加简洁入门.本章简洁介绍TinyOS的班本概念和其编写语言;nesJ包括nes语言的一蛀概念和语法,让读者能照在这个环境下涮与自己的应用程序。
16、最终结合TinyGS自带的一个例子:Blink,让大家在此例子中熟识涉及到的概念.在此再次明确指出,为便利读者挚友.本教程尽可能诟用TinyoS自带的例程及源代码.另外,本章在讲解TinyoS、nesC诏古相关微含时引用了Tiny0$宫方公布的讲解方式及内容,2.1 nesC语言他介TinyOS操作系统、库、及其应用程序都是用nesC谱才编写的.TmyOS是一种面对传感湍网络的新型操作系统,它最初毡用汇编和C南音编写的.但在应用过程中,发觉C语吉不能有效便利地支持面对传解器网络的应用和操作系统的开发,相关工作人势为此时C语言进行了肯定的扩展,开发出nesC语言nesC不但支持TinyoS的并发
17、模鞭,还同时具有结构化机制,命名机制,能够跟其它软件组件连接成一个健壮的网络嵌入试系统.其主要目标是让应用程序开发人员能够便利地建立起完整的、并发式系统的组件,并可以在编译时作出全面的检查.TinyoS定义了很多的要的概含,这些概念都体现在nesC语言上了。第一,nesC应用程序都是由组件沮成的,这现件之间的连接是通过定义良好的、具有双向性质的接口其次,ncsC定义了并发模型,此模型是基于任务(task);,*件事务句柄OmdWareeVenthandler),并且在编洋期间可以进行数据竞争2测(datarace),nesC建立在C语言的基础上,其显著与C语言不同的概念有如下内容。2.1.1
18、组件(CoaPOnentS)(1)基本概念任何一个运用nesC编写的应用程序都是由一个或多个祖件连接而成,从而成为一个可执行的、完整的程序.在nesC中,殂件的类型有两种:模块(KMiule)和配件(COnfiguratiOn)模块主要用来供应附用程序的代码以实现一个或多个接口而配件则是川来汇聚其它组件,连接接口的运用者和供应者,nesC设计者称这种关系为建核(wiring)每个nesC应用程序均是由个1层的配件(top-level8nfiguration)所描述,其内容就是把应用程序用到的全部级件都连接起来,从而形成一个整体。nesC的源文件:接口、模块、和配件的扩展名是,.nc,.关于命名
19、约定的更多的信息清查看2.x/doc/tUtOrianaming,hlml,也可以参看本教程的附5二:MTinyoS命名约定3,殂件的定义格式如图2.1所示:图2.1组件的僚型解出供应(provides)和运用(USeS)接口。接口是访问组件的唯一途径,并且接口是具有双向性的.个接口声明白一系列称之为吩噌(x三nd)的函数,及一系列称之为事务(event)的函数,接口的供应者必需实现该接口声明的全部的吩咐,而接I1的运用者则必需实现该接口声明的全部的W务,一个组件可以供应或运用多个接口,并且可以供应或运用同个接口的多个实例。*tHardwarePlatform图2.2舰于组件的模型上层的应用调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TinyOS 入门教程
链接地址:https://www.desk33.com/p-1475282.html