欢迎来到天天文库
浏览记录
ID:8815856
大小:49.14 KB
页数:10页
时间:2018-04-08
《实验4节点-pc串口通信实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验四节点-PC串口通信实验实验目的本实验的目的是实现节点和PC间的串口双向通讯,通过串口连接,PC可以从网络收集其他节点的数据,也可以发送数据或者命令到节点,因此,串口通信编程是无线传感器网络中的重要内容。实验要求根据例子提供的例子程序,详细了解程序结构,并尝试进行程序的修改运行。具体实验要求如下: 1.了解掌握串口双向通信的方法,学会使用mig工具以及SerialForwarder; 2.修改BlinkToRadio程序,使用mig创建BlinkToRadioMsg的java对象发送至Base
2、Station,然后使用MsgReader读取该对象内容。实验内容1、TestSerial例子程序节点与PC之间的通信在TinyOS中被抽象为数据包源(packetsource)。一个数据包源就是一种与节点双向通信的介质,可以是串口,也可以是TCPsocket,或是SerialForwarder工具(该工具后面介绍)。先看以下示例程序,将一个节点连接到PC,进入TestSerial例子程序目录,编译并烧录程序。 $maketelosbinstall 运行TestSerial程序 $javaT
3、estSerial-commserial@/dev/ttyUSB0:telos 输出类似以下内容: Sendingpacket1 Receivedpacketsequencenumber4 Sendingpacket2 Receivedpacketsequencenumber5 Sendingpacket3 Receivedpacketsequencenumber6 Sendingpacket4 Receivedpacketsequencenumber7
4、 Receivedpacketsequencenumber8 Sendingpacket5 Receivedpacketsequencenumber9 Sendingpacket6 这时节点的LED灯会闪烁。此时表明节点与串口双向通信正常。2、基站程序示例基站节点是无线传感器网络的重要组成部分,它负责与后台服务器进行串口通信以及与网络中的其他节点进行无线通信,是一个桥梁的作用。取两个节点,一个节点烧录BlinkToRadio程序,一个烧录BaseStation程序,将两个节点都通电
5、。可以看到BaseStation的LED1等闪烁,按住BlinkToRadio节点的RESET,LED1不闪烁。BaseStation节点的LED0闪烁表示它收到了网络包,LED1闪烁表示将网络包发送到串口,LED2闪烁表示网络包被丢弃,丢弃的原因可能是串口的带宽小于节点的无线带宽。再将BaseStation节点连接到PC,使用Listen命令读取串口的内容。 $javaTestSerial-commserial@/dev/ttyUSB0:telos Listen命令的功能是创建数据包源,然后打印
6、出每一个监听到的包。输出的内容类似以下: 00FFFF000004220600020001 00FFFF000004220600020002 00FFFF000004220600020003 00FFFF000004220600020004 00FFFF000004220600020005 00FFFF000004220600020006 00FFFF000004220600020007 00FFFF000004220600020008 00FFFF000
7、004220600020009 00FFFF00000422060002000A 00FFFF00000422060002000B BlinkToRadioC应用的消息格式如下(忽略开始的00字节):·目标地址Destinationaddress(2bytes)·连接源地址Linksourceaddress(2bytes)·消息长度Messagelength(1bytes)·组号GroupID(1byte)·ActiveMessagehandler类型ActiveMessagehandler
8、type(1byte)·Payload(最大28bytes) 源节点IDSourcemoteID(2bytes) 示例计数值Samplecounter(2bytes)3、MIG及数据包对象Listen程序是与节点通讯最基础的方式。但是它只打印了二进制的包。显然这种方式不是十分易读。在实际中,往往需要读取这些二进制数据后,再根据二进制的内容分析其字段。TinyOS提供了一种方便解析二进制数
此文档下载收益归作者所有