一、实验目的
- 学习低功耗侦听的机理
- 掌握 TinyOS 中 LowPowerListening 接口和组件的使用
- 理解 LPL 协议实现的方法
- 掌握 LPL 协议相关接口的使用
二、实验要求
- 节点之间通信并进行低功耗侦听;
- 节点上两个 LED 灯点亮和熄灭的状态变化,串口调试助手显示状态变化的信息。
三、实验设备
- 装有 VMware Ubuntu 虚拟机的宿主 PC 机一台;
- 下载器一个;
- 物联网实验综合箱一套(2 个节点)。
四、实验原理
通过研究发现,芯片在工作时期,最大的能耗在于射频上,射频收发时的能耗是不开射频模块时 的 4 倍左右。因此控制射频模块的使用可以极大的降低功耗。若节点需要发送数据,则发送时射频模 块必定是开的,所以发送时降低功耗是有限。而射频的功耗主要是损失在哪呢?射频的功耗主要浪费 在侦听上。众所周知,射频在接收和发送数据时都需要开着射频模块,而实际射频接收数据的时间很 短,大部分的时间仅是处于侦听状态,因此浪费了大量的能量。通过以上的分析,只要能够尽量的缩 短侦听的时间,则浪费的能量会大大减少,功耗必将大幅降低。为了降低功耗,使用了 LPL 机制,实 际上是一种间歇式侦听机制:节点会休眠一段时间,然后再起来侦听射频,若有数据发送给自己,则 接收完数据再休眠,否则直接又进入休眠状态,按此周期进行侦听。这样的一个周期,我们称之为一 个侦听周期。保持一定的休眠唤醒占空比,则可以大幅地减少能量浪费。
但是上述侦听机制对发送方有一定的要求,为了保证数据发送成功,则必须恰好在侦听节点唤醒 的过程中发送数据。怎样保证这一点呢?必须保证节点发送数据的时间大于侦听节点的一个侦听周 期。这种情况下,只要侦听节点正常工作,是肯定可以收到数据的。
Tt 为发送数据时间,Tra 为接收者唤醒时间,Trs 为接收者睡眠时间,Tr 为接收者侦听周期。
本 LPL 低功耗侦听实验是对 low-power-listening 的简单测试,每 32 秒进入一种不同的低功耗侦 听设置。
本 LPL 实验,节点每发送一个消息包就闪烁一下 LED0,每接收到一个消息包就翻转 LED1 的状 态。如果实验正确进行,你会发现两个节点 LED1 点亮和熄灭状态的翻转。
五、实验步骤
- 在 VScode 显示 opt/tinyos-2.x/apps/cc2530_app/目录下创建项目目录,并新建 makefile, TestLplAPPC.nc,TestLplC.nc。
- 修改节点的 Makefile 文件,将 CC2530RadioC 的路径信息添加到 Makefile 文件里:如下图所示:
3、编译程序 用终端进入 opt/tinyos-2.x/apps/cc2530_app/TestLpl 目录下,执行 make cc2530zn install 命令,直 接编译下载,如图所示:
六、实验现象
节点收发信息都进行一次闪烁;
串口输出:
七、思考、测试、回答
- 简述 nextLplState()函数六种模式基本含义。
答:
Mode 0:接收:完全打开;发送:每秒钟发送一次,以完全打开侦听器
Mode 1:接收:完全打开;发送:每隔100ms发送给低功耗侦听器。
Mode 2:接收:低功耗监听,间隔250ms;发送:每隔250ms发送给低功耗侦听器。
Mode 3:接收:低功耗监听,间隔250ms;发送:每秒钟发送一次,以完全打开侦听器。
Mode 4:接收:低功耗监听,间隔10ms;发送:每隔10ms发送给低功耗侦听器。
Mode 5:接收:低功耗监听,间隔2000ms;发送:每7秒,以2000ms的间隔发送给低功耗侦听器。
- 思考 if (!locked && ((counter & sendSkip) == sendSkip))代表含义?
答:消息是否一直没被接收到。
- 观察串口显示信息对比 0-32s,33-64s,65-96s,96-128s,128-160s,160-192s 之间的异同点?
答:如1,他们处于不同的mode,串口输出的receive个数也不同,有每秒输出一个(0-32s,33-64s),也有整个期间都未输出(96-128s),也有只输出几个的(65-96s,128-190s)。
- 串口输出代替 LED 闪烁显示,例如输出一个 LED 提示
答:只需要在下面三处添加输出代码;
- 思考能否优化侦听机制,更低功耗更高效率的工作?
答:我认为根据发送时间间隔规律来测试出最优的接收时间间隔,在以这个时间间隔休眠。
八、实验总结
通过这次实验,我了解了LPL 协议实现,并通过观察不同模式下的测试,更加认清lpl协议的优劣,整个实验执行并不难,关键是代码有点难理解,缺少注释,这给实验带来了一些困扰。
标签:低功耗,发送,实验,Low,Listening,侦听,节点,射频 From: https://www.cnblogs.com/dhyyds/p/16960368.html