图1 系统的总体结构
终端设备通过UART(Universal Asynchronous Receiver/Transmitter)向AP发送指令,AP根据指令向ED发送命令,ED接收到AP发送的命令后,立即从深度睡眠状态被唤醒进入到工作状态,然后将自己的MAC地址通过CC1101发送给AP,AP对收到的MAC信息进行处理后通过UART发送给终端设备显示出来。整个过程实现的是AP发送数据,ED接收数据,然后ED发送数据,AP接收数据,进而实现最终的显示。
2 系统的硬件设计与实现
图2为电磁波唤醒的部分硬件结构[3?4]。MCU采用的是TI公司的MSP430系列单片机, 通过CC1101无线射频收发芯片实现无线数据的接收和发送,然后通过有线或者无线方式与终端设备进行连接。
图2 电磁波唤醒部分硬件结构图
3 系统的软件设计与实现
智能终端ED和AP是以无线射频信号方式进行数据通信的。AP先发送包含MAC信息的WOR指令,当收到AP发送过来的指令时,ED被唤醒,发送自己的MAC地址给AP,然后AP判断接收到的MAC是否符合要求。如果符合,那么就让相应的ED闪灯,如果不符合要求,则AP发送使ED继续进入睡眠状态的指令,即进入低功耗模式。图3和图4分别是AP和ED的软件流程图。
4 系统的低功耗设计
本系统的MCU采用MSP430,当其处于等待指令的LPM3低功耗模式时,此时ED的电流大约是10 μA,因此整个系统低功耗设计的关键是对CC1101的WOR的使用。当它处于接收状态时,其工作电流为12.5 mA左右;如果始终处于接收状态,整个系统的供电电池会很快耗尽。为了解决这个问题,可以将系统的工作模式设置为定时工作模式,在持定的工作时间段内,启用WOR,系统会自动处于侦听状态(即接收状态)。这样,就需要两个时间参数T0(最长工作周期)和T1(最长接收时间)以及接收的占空比d(Duty Cycle)。降低功耗的关键就是降低占空比。设定每2 s醒一次,每次持续3.5 ms。唤醒ED时要先发送前导字,时长要保证唤醒终端CC1101的时间周期2 s,并且,在连续两个周期(7 ms)内没有收到同步字和帧起始码,则认为是无效的数据,重新进入WOR状态。如此设定后,整个系统的平均工作电流为35 μA左右。这样一来普通的500 mAh纽扣电池就能使用很长时间。
图3 AP软件流程图
图4 ED软件流程图
经过实验验证,本文设计的基于MSP430和CC1101的电磁波唤醒系统能够保证在低功耗下进行数据的无线传输。结合实际需要对该系统进行改造,在仓储及寻货等方面有重要的现实意义。