同一个外部中断的Arduino随机睡眠与唤醒*

2015-12-21 05:12:49刘贤锴
单片机与嵌入式系统应用 2015年11期

刘贤锴

(1.山东政法学院 山东省高校证据鉴识重点实验室,济南 250014;2.山东政法学院 信息学院)

* 基金项目:山东省高校证据鉴识重点实验室开放课题(信息隐蔽技术鉴定研究,KFKT-201410)。



同一个外部中断的Arduino随机睡眠与唤醒*

刘贤锴1,2

(1.山东政法学院 山东省高校证据鉴识重点实验室,济南 250014;2.山东政法学院 信息学院)

* 基金项目:山东省高校证据鉴识重点实验室开放课题(信息隐蔽技术鉴定研究,KFKT-201410)。

摘要:为了控制Arduino的随机睡眠与唤醒,不采用“预定睡眠-随机唤醒”的常规设计模式,而是通过一个外部中断随机使Arduino进入睡眠,并且通过同一个外部中断随机唤醒Arduino。首先使用开源Enerlib和LowPower库对Arduino Pro Mini进行实验,然后应用于实际的工程设计中,取得了很好的效果。该方法可以作为成熟的方案推广到工程设计的实际应用当中。

关键词:Arduino;随机睡眠;随机唤醒;外部中断

引言

“预定睡眠-随机唤醒”是嵌入式系统设计中常用的方法。例如,在完成规定的数据发送或接收任务后,MCU立即进入休眠以节约电力,这就是“预定睡眠”的含义;当有新的数据发送和接收任务时,通过各种方式唤醒MCU执行前述任务,这就是“随机唤醒”的含义。在实际工程中,完成该功能主要使用软件,首先整合系统功能,执行完功能模块后马上执行预定的睡眠指令,而唤醒功能则直接在中断服务程序中体现。很多教科书、论坛中广泛介绍的也都是这种方法,该方法能够满足一般工程设计的需要[1]。但“预定睡眠”在某些工程中并不适合使用,例如在无线传感网络构成的系统中,某个节点或分系统的睡眠时机不是由自己决定的,而是远程随机控制的。……

登录APP查看全文