无线传感网络操作系统实验4分析

上传人:m**** 文档编号:562735148 上传时间:2024-02-19 格式:DOCX 页数:10 大小:305.89KB
返回 下载 相关 举报
无线传感网络操作系统实验4分析_第1页
第1页 / 共10页
无线传感网络操作系统实验4分析_第2页
第2页 / 共10页
无线传感网络操作系统实验4分析_第3页
第3页 / 共10页
无线传感网络操作系统实验4分析_第4页
第4页 / 共10页
无线传感网络操作系统实验4分析_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《无线传感网络操作系统实验4分析》由会员分享,可在线阅读,更多相关《无线传感网络操作系统实验4分析(10页珍藏版)》请在金锄头文库上搜索。

1、无线传感器网络实验报告班级: _14104341_姓名:_代姝佳_学号:_1410400111_时间:_2017-4-12_ 教师:_陈飞云_成绩:实验名称:一、实验目的1. 了解点对点通信过程。2.学会ATOS平台通讯模块(ActiveMessage)的使用。二、实验原理本实验使用TinyOS中的活动消息(PlatformMacC)模型实现点对点通信,活动模型组件 PlatformMacC包含了网络协议中路由层以下的部分。在ATOS平台下,PlatformMacC包含的主要 功能有:CSMA/CA、链路层重发、重复包判断等机制。其中,CSMA/CA机制使节点在发送数据 之前,首先去侦听信道状

2、况,只有在信道空闲的情况下才发送数据,从而避免了数据碰撞,保证 了节点间数据稳定传输;链路层重发机制是当节点数据发送失败时,链路层会重发,直到发送成 功或重发次数到达设定的阈值为止,提高了数据成功到达率;重复包判断机制是节点根据发送数 据包的源节点地址及数据包中的 dsn 域判断该包是不是重复包,如果是重复包,则不处理,防止 节点收到同一个数据包的多个拷贝。PlatformMacC 向上层提供的接口有 AMSend、 Receive、 AMPacket 、 Packet 、 Snoop 等。 AMSend 接口实现数据的发送, Receive 接口实现数据的接收, Snoop 是接收发往其它节

3、点的数 据, AMPacket 接口用于设置和提取数据包的源节点地址、目的地址等信息, Packet 接口主要是得 到数据包的 有效数 据长度 (payload length)、 最大有数据长 度、有 效数据 的起始地 址等。 AMSend、 Receive、 Snoop 都是参数化接口,参数为一个8 位的 id 号,类似于 TCP/IP 协议中的端 口号。两个节点通信时,发送节点使用的 AMSend 接口的参数 id 必须与接收节点的 Receive 接口 的参数 id 一致。在TinyOS操作系统下,所有的数据包都封装到一个叫message的结构体中。message结构 体包含四个部分:

4、header、 data、 footer、 metadata 四个部分。其中 header 中包含了数据包长度、 fcf、dsn、源地址、目的地址等信息;metadata包含了 rssi等信息,详见cc2420.h、Message.h、 platform_message.h。其中,metadata部分不需要通过射频发送出去,只是在发送前和接收后提取 或写入相应的域。三、实验内容1. 将J-Link对应端插入ATOS多模汇聚节点的CN3引脚,将ATOS多模汇聚节点上的STM32 同电脑连接起来。2. 打开 SEGGER/J-Link arm v4.081/J-flash arm 软件,点击 ta

5、rget/connect,连接成功后,点击 file/open,按照路径光盘 A/02演示中心/STM32相关 HEX打开M3GW-PChex,再点击 target/program,其烧录到 ATOS多模汇聚节点的STM32芯片中。烧录成功后,最后点击 target/start application在多模汇聚节点的STM32芯片上运行程序。3. 用串口线将ATOS多模汇聚节点和PC机器连接起来。4. 将ATOS多模汇聚节点与任一 WIFI节点插上天线。5. 将ATOS多模汇聚节点同电脑用烧录线连接好,打开ATOS多模汇聚节点的开关,同时将 ATOS多模汇聚节点的编程开关打开。6. 打开 Cy

6、gwin 开发环境。7. 在 Cygwin 开发环境中执行/opt/atos/apps/Demos/RFDemos/l_P2P。8. 在点对点通讯目录下执行make antc5 install GRP=01 NID=01,进行软件的编译和烧录, (GRP=0l NID=0l 的意思是将当前的点烧录为第一组,第一号)。9. 烧录成功后,将ATOS多模汇聚节点的编程开关关闭,然后打开WIFI节点的开关,并将其 对应的编程开关打开。10. 执行 make antc5 reinstall GRP=01 NID=02。11. 打开串口助手,设置波特率与串口号。12. 重启ATOS多模汇聚节点,串口助手中

7、有如下的内容:14. 通过电脑在串口助手窗口中输入2,点回车键,当出现“* To Send:”后,输入“hello”,再点 击回车键。15. 当WIFI节点和ATOS多模汇聚节点通讯成功的情况如下图:四、实验过程1) 详细的调试步骤1. 将J-Link对应端插入ATOS多模汇聚节点的CN3引脚,将ATOS多模汇聚节点上的STM322. 同电脑连接起来。3. 打开 SEGGER/J-Link arm v4.081/J-flash arm 软件,点击 target/connect,连接成功后,点击 file/open,按照路径光盘 A/02演示中心/STM32相关 HEX 打开 M3GW-PC.h

8、ex,再点击 target/program,其烧录到ATOS多模汇聚节点的STM32芯片中。烧录成功后,最后点击 target/start application在多模汇聚节点的STM32芯片上运行程序。4. 用串口线将ATOS多模汇聚节点和PC机器连接起来。5. 将ATOS多模汇聚节点与任一 WIFI节点插上天线。6. 将ATOS多模汇聚节点同电脑用烧录线连接好,打开ATOS多模汇聚节点的开关,同时将7. ATOS多模汇聚节点的编程开关打开。8. 打开 Cygwin 开发环境。9. 在 Cygwin 开发环境中执行/opt/atos/apps/Demos/RFDemos/1_P2P。10.

9、在点对点通讯目录下执行make antc5 install GRP=01 NID=01,进行软件的编译和烧录,11. (GRP=01 NID=01 的意思是将当前的点烧录为第一组,第一号)。12. 烧录成功后,将ATOS多模汇聚节点的编程开关关闭,然后打开WIFI节点的开关,并将其13. 对应的编程开关打开。14. 执行 make antc5 reinstall GRP=01 NID=02。15. 打开串口助手,设置波特率与串口号。16. 重启ATOS多模汇聚节点,串口助手中有如下的内容:17. 重启刚刚烧录的WIFI节点的开关。18. 通过电脑在串口助手窗口中输入2,点回车键,当出现“*To

10、 Send:”后,输入“hello”,再点 击回车键。19. 当WIFI节点和ATOS多模汇聚节点通讯成功的情况如下图:2) 实验现象1.通过电脑在串口助手窗口中输入2,点回车键,当出现“*To Send:”后,输入“hello”,再点 击回车键。2.当WIFI节点和ATOS多模汇聚节点通讯成功的情况如下图:3) 必要的实验数据/配置组件 configuration P2PC implementationcomponents P2PM;components MainC;P2PM.Boot - MainC.Boot;/* 串口收发组件*/ components PlatformSerialC;P

11、2PM.UartStdControl - PlatformSerialC; P2PM.UartStream - PlatformSerialC; /*活动消息组件*/ components new PlatformMacC(123); components AtosMacC;P2PM.AtosControl - AtosMacC; P2PM.AMPacket - PlatformMacC; P2PM.Packet - PlatformMacC; P2PM.AMSend - PlatformMacC; P2PM.Receive -PlatformMacC;/模块组件#define DBG_LEV

12、 1000module P2PMuses interface Boot;interface AtosControl;interface StdControl as UartStdControl;interface UartStream; interface AMSend; interface Receive; interface AMPacket; interface Packet;implementationenumMAX_ADDRESS_LEN = 5,INPUT_ADDRESS = 0, INPUT_DATA = 1,;message_t m_msg;uint8_t m_len = 0;

13、char m_address_strMAX_ADDRESS_LEN = 0;uint8_t m_address_index = 0;uint8_t m_input_type = 0;/* 显示菜单*/task void showMenu()if( m_input_type = INPUT_DATA) /*等待输入欲发送的数据*/ADBG_APP( rn* To Send:rn); else /*等待输入欲发送的地址*/ADBG_APP( rn#rn* MY NodeId = 0x%x, Group=0x%x, destination ?rn,ADBG_N(call AMPacket.addre

14、ss(), ADBG_N(TOS_IEEE_PANID);m_input_type = INPUT_ADDRESS; m_address_index = 0;/*将从串口输入的地址字符串转化为真实地址*/uint16_t getDestAddress()uint16_t address = 0; uint8_t i = 0;if(m_address_index MAX_ADDRESS_LEN)m_address_index = MAX_ADDRESS_LEN -1;for ( i=0; i = A & digital = a & digital = 0 & digital = 9)digital = digital - 0;address = address*16 +digital;return address;/* 发送数据*/task void sendData()uint8_t i;uint8_t* payload = call Packet.getPayload(&m_msg, NULL);uint16_t address = call AMPacket.address();uint16_t dest_address =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号