基于ARM平台的远程唤醒技术
2019-09-24张希弓
张希弓
摘要:本文介绍了一种基于ARM(RK3188)平台的远程唤醒功能实现技术,包括具体实现原理和方法。
关键词:远程唤醒;WOL;Magic Packet
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)19-0271-03
开放科学(资源服务)标识码(OSID):
远程唤醒(WOL,Wake-on-LAN)是由网卡配合其他软硬件,通过给处于待机状态的网卡发送特定的数据帧,实现电脑从停机状态启动的一种技术。
WOL标准最早由AMD公司提出,它对硬件的要求主要体现在电源、主板和网卡上。首先需要有Standby电源,保证在主要电源停止工作后,能够通过Standby电源对主板和网卡供电;其次要确保主板在供电上支持远程唤醒;最后网卡也要支持WOL标准才行。
WOL是实现对电脑远程操控的一项技术。随着现代信息技术不断发展,它将给办公网络化和智能化提供极大便利,也是学校机房、网吧等场景管理的重要支撑。
目前的远程唤醒大都是基于X86平台,很少有针对ARM平台的实现方案。而以ARM平台为基础的各种瘦终端设备已经层出不穷,在很多场景下对远程唤醒功能也有迫切需求。本文将详细介绍一种基于ARM(RK3188)平台的WOL实现方法。
1 基于ARM平台的WOL
该ARM平台基于瑞芯微的RK3188主芯片,电源方案采用PMU芯片ACT8846,同时RTL8201F作为网卡PHY芯片。
1.1 WOL基本过程
RTL8021F支持WOL功能,它由系统的Standby电源供电,在正确接收到远程设备发来的WOL数据帧后,PMEB引脚输出一个低电平有效的脉冲信号。该信号通过MOS管和三极管转换后连接到ACT8846,就可以作为一个开启信号控制PMU输出相应的系统电源,从而将系统从待机状态唤醒开机。具体过程如图1所示。
1.2 WOL实现原理
WOL技术的核心是Magic Packet,基本格式为:6*FFh+16*目标MAC。网卡只有接收到Magic Packet后,才能执行相应的WOL功能。
根据Magic Packet白皮书规定,网卡需要支持以下3个基本特性:Magic Packet使能、侦测和关闭。首先,网卡需要将内部WOL使能开关打开,配置MAC地址以及相关寄存器。接着,当远程主机通过网络广播发送Magic Packet时,如果网卡侦测到其中的MAC与自身相符,则启动WOL动作,唤醒本地主机。最后,当本地主机已完成唤醒,或者不需要WOL功能时,也可以通过改变网卡中的寄存器配置来关闭。
如前文所述,网卡PHY芯片RTL8201F支持WOL功能,不过有两个前提条件:第一,RTL8201F要处于上电状态;第二,WOL使能已经打开。前者要求Standby电源供电,后者需要对相关寄存器进行配置(包括MAC寄存器,因为RTL8201F内部没有ROM用于保存MAC地址)。这就需要CPU(RK3188)在关机之前完成对RTL8201F的配置,或者利用专门的MCU对其进行配置。
该流程说明如下:
? 存在三种开机方式:上电自启动、按键启动、WOL远程唤醒。其中是否上电自启动是软件可配置的(默认配置为上电自启动);
? 上电开机需要判断是否自启动。所以如果不进行上电自启动,则需要进行PHY的相关配置,然后再控制关机;
? 上电自启动的标记信息存储在Flash中的某个字节,该字节=0xAA表示不允许上电自启动(配置完MAC并使能WOL后自动关机),否则自启动;
? 通过MAC寄存器是否已配置来判断开机事件来自接通电源,还是按键或WOL。如果是刚接通电源,PHY处于未配置的默认状态,MAC寄存器默认为00:00:00:00:00:00(设备的MAC地址存储在Flash中,需要CPU读取后再写入MAC寄存器);
? 在正常开机后如果选择关机(power-off),需要先进行WOL配置;
? 如果开机事件来自按键或WOL,则需要进行关闭WOL配置;
? 关于PHY的配置,详见下文。
1.3 WOL流程和PHY寄存器配置
2 结论
本文介绍了一种基于ARM平台的远程唤醒实现方法。它采用支持WOL的网卡PHY芯片RTL8201F,在接收到WOL数据帧Magic Packet后,其PMEB管脚输出低电平脉冲信号来控制系统上电,从而实现远端设备通过以太网对本地设备的远程唤醒。该方法对WOL功能在ARM相关平台的应用具有很好的借鉴意义。
参考文献:
[1]Magic Packet Technology White Paper [EB/OL]. Advanced Micro Devices, Inc,1998.
[2] RTL8201F_FL_FN_FR-VB_WOL_App_Note_V1.3 [EB/OL].Realtek Semiconductor Corp,2012-7-24.
[3] Understanding Wake On LAN [EB/OL]. https://community.landesk.com/support/docs/DOC-1866. 2015-10-28.
【通聯编辑:闻翔军】