Low Power Listening 低功耗侦听

一、实验目的

  1. 学习低功耗侦听的机理
  2. 掌握 TinyOS 中 LowPowerListening 接口和组件的使用
  3. 理解 LPL 协议实现的方法
  4. 掌握 LPL 协议相关接口的使用

 

二、实验要求

  1. 节点之间通信并进行低功耗侦听;
  2. 节点上两个 LED 灯点亮和熄灭的状态变化,串口调试助手显示状态变化的信息。

 

三、实验设备

  1. 装有 VMware Ubuntu 虚拟机的宿主 PC 机一台;
  2. 下载器一个;
  3. 物联网实验综合箱一套(2 个节点)。

 

四、实验原理

  通过研究发现,芯片在工作时期,最大的能耗在于射频上,射频收发时的能耗是不开射频模块时 4 倍左右。因此控制射频模块的使用可以极大的降低功耗。若节点需要发送数据,则发送时射频模 块必定是开的,所以发送时降低功耗是有限。而射频的功耗主要是损失在哪呢?射频的功耗主要浪费 在侦听上。众所周知,射频在接收和发送数据时都需要开着射频模块,而实际射频接收数据的时间很 短,大部分的时间仅是处于侦听状态,因此浪费了大量的能量。通过以上的分析,只要能够尽量的缩 短侦听的时间,则浪费的能量会大大减少,功耗必将大幅降低。为了降低功耗,使用了 LPL 机制,实 际上是一种间歇式侦听机制:节点会休眠一段时间,然后再起来侦听射频,若有数据发送给自己,则 接收完数据再休眠,否则直接又进入休眠状态,按此周期进行侦听。这样的一个周期,我们称之为一 个侦听周期。保持一定的休眠唤醒占空比,则可以大幅地减少能量浪费。

但是上述侦听机制对发送方有一定的要求,为了保证数据发送成功,则必须恰好在侦听节点唤醒 的过程中发送数据。怎样保证这一点呢?必须保证节点发送数据的时间大于侦听节点的一个侦听周 期。这种情况下,只要侦听节点正常工作,是肯定可以收到数据的。

Tt 为发送数据时间,Tra 为接收者唤醒时间,Trs 为接收者睡眠时间,Tr 为接收者侦听周期。

LPL 低功耗侦听实验是对 low-power-listening 的简单测试,每 32 秒进入一种不同的低功耗侦 听设置。

LPL 实验,节点每发送一个消息包就闪烁一下 LED0,每接收到一个消息包就翻转 LED1 的状 态。如果实验正确进行,你会发现两个节点 LED1 点亮和熄灭状态的翻转。

 

五、实验步骤

  1. VScode 显示 opt/tinyos-2.x/apps/cc2530_app/目录下创建项目目录,并新建 makefile, TestLplAPPC.nc,TestLplC.nc。
  2. 修改节点的 Makefile 文件,将 CC2530RadioC 的路径信息添加到 Makefile 文件里:如下图所示:

 

 

 

 

 

3、编译程序 用终端进入 opt/tinyos-2.x/apps/cc2530_app/TestLpl 目录下,执行 make cc2530zn install 命令,直 接编译下载,如图所示:

 

 

 

 

六、实验现象

节点收发信息都进行一次闪烁;

 

 

 

 

串口输出:

 

 

 

 

 

 

七、思考、测试、回答

  1. 简述 nextLplState()函数六种模式基本含义。

答:

Mode 0:接收:完全打开;发送:每秒钟发送一次,以完全打开侦听器

Mode 1:接收:完全打开;发送:每隔100ms发送给低功耗侦听器。

Mode 2:接收:低功耗监听,间隔250ms;发送:每隔250ms发送给低功耗侦听器。

Mode 3:接收:低功耗监听,间隔250ms;发送:每秒钟发送一次,以完全打开侦听器。

Mode 4:接收:低功耗监听,间隔10ms;发送:每隔10ms发送给低功耗侦听器。

Mode 5:接收:低功耗监听,间隔2000ms;发送:每7秒,以2000ms的间隔发送给低功耗侦听器。

  1. 思考 if (!locked && ((counter & sendSkip) == sendSkip))代表含义?

答:消息是否一直没被接收到。

  1. 观察串口显示信息对比 0-32s,33-64s,65-96s,96-128s,128-160s,160-192s 之间的异同点?

答:如1,他们处于不同的mode,串口输出的receive个数也不同,有每秒输出一个(0-32s33-64s,也有整个期间都未输出(96-128s),也有只输出几个的(65-96s128-190s

  1. 串口输出代替 LED 闪烁显示,例如输出一个 LED 提示

答:只需要在下面三处添加输出代码;

 

 

 

  1. 思考能否优化侦听机制,更低功耗更高效率的工作?

答:我认为根据发送时间间隔规律来测试出最优的接收时间间隔,在以这个时间间隔休眠。

 

 

 

八、实验总结

通过这次实验,我了解了LPL 协议实现,并通过观察不同模式下的测试,更加认清lpl协议的优劣,整个实验执行并不难,关键是代码有点难理解,缺少注释,这给实验带来了一些困扰。

posted @ 2022-12-06 20:00  安良  阅读(360)  评论(0编辑  收藏  举报