嵌入式移动终端内置WIFI 的低功耗设计

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

摘 要: 目前嵌入式移动终端设备加入WIFI 技术实现无线传输数据与语音是技术热点,并具备巨大的商业价值。在既定的电池能耗限定条件下,降低WIFI 子系统 的功耗,延长设备的工作和待机时间是嵌入式WIFI 内置设计的技术瓶颈。本文采用ARM7 系列的LPC2220 作为微处理器的嵌入式开发平台,重点 分析NXP(恩智浦) 半导体公司的高集成度BGW200WIFI 芯片, 系统提出了WIFI 硬件与射频电路设计、WIFI 底层软件驱动开发的设计 思路,尤其是四种低功耗节电管理模式,并最后给出了WIFI 系统功耗的实际测试结果。

1 引言

嵌 入式设备是无线通信最重要的应用领域。自2007 年开始,全球Wi-FiWireless Fidelity) 市场高速持续增长,销量达到2.8 亿套。低功耗的无线通信软硬件设计是嵌入式移动设备重要的研究内容。仍以Wi-Fi 为例,若采用飞思卡尔(Freescale)的WIFI 模组和嵌入式微处理器MCF5249 ,考虑通常手机的电池容量,则通话时间仅为12 小时,待机时间也仅有2026 小时。而从现实应用看,嵌入式移动设备中电池能量有限,在充电后至少应该保障一天的使用时间。因此,解决功率消耗对提高嵌入式WIFI 移动设备的可用性具有重要意义。

本文提出了一种在嵌入式移动设备中WIFI 子系统的低功耗设计思路,芯片采用恩智浦公司的BGW200 模块,通过合理的设计系统硬件、WIFI 底层的软件驱动方面、节点管理模式等手段实现了低功耗的WiFi 系统。

2 WIFI 硬件与射频电路低功耗设计

本 设计采用LPC2220 微控制器作为主机端微控制器,它基于一个支持实时仿真和嵌入跟踪的ARM7TDMI-S CPUBGW200 是一款WIFI 低功耗系统化封装(SiP) 芯片组,具备“主机零负荷”性能,MAC 通信协议可以利用内置嵌入的ARM7 核来执行,所以不会对主处理器HOST 造成任何负荷。只有当BGW200 接收到有效数据封包时,才会触发主处理器工作。

1 显示了WIFI 子系统为实现低功耗目标的硬件电路设计框图,主要包括BGW200、系统时钟、低频睡眠时钟、和1.8V/3.0V 电源供应、带通滤波器、天线和“与门”电路。其中用虚线标注的低频睡眠时钟和辅助RF 电路在设计中属于可选项。设计具体细节如下:SPI2接口:考虑到SDIO 对主机资源消耗较大,设计采用SPI 接口。BGW200 SPI1 SPI2两种接口,其中SPI2 是高度从接口(Slave),通过管脚设置CSR0/SCR1 0/0。两个SPI 接口共享相同的数据线和时钟信号线,但是具有不同的片选信号,SPI1 使用GPIO[10] 作为片选信号,SPI2 使用SPI_SS_NGPIO[6])。SPI2 接口操作独立于总线时钟,最高可以工作到66MHz SPI2 IO 接口采用VDD3.3 供电(2.7V 3.6V)。

                                 图1  WIFI 子系统硬件框图

供 电单元设计采用了LDO 降压芯片,由于BGW200 分两种电压:射频部分电压范围值(2.7V-3.6V),基带内核电压范围值(1.65V-1.95V)。因此设计依据的因素考虑了芯片的成本、电平值和 最大电流负荷、电源输入输出效率和噪声、输入电压范围、输出电压精度以及保护特性,采用了TPS736303.0V400mA )和TPS732181.8V250mA)。考虑到陶瓷电容有最优的ESR 特性过滤脉动电压抖动影响,设计中同时采用了陶瓷电容匹配LDO 芯片。另外,为加强低功耗设计实现,设计用了LPC2220 主控制器的一个GPIO 口来控制BGW200 的开/关状态来降低功耗。

主系统时钟和睡眠时钟。BGW200 工作要求两个时钟,主系统时钟44MHz10ppm) 和32KHz 的睡眠时钟。在嵌入式设计中都可以共享主处理器LPC2220 的时钟资源,其中BGW200 GPIO[4]通过并联电容直接连到睡眠时钟。

2.4GHz 射频匹配电路。理想状态下,由于BGW200 RF 端口已经是50? 的标准阻抗,

2.45GHz 的天线能够通过50? 的微带线直接连接到BGW200 的天线端口。在设计中,借助网络分析仪工具的帮助,设计了LC 匹配电路以达到更高带宽性能的射频信号接收性能和最佳的驻波比(回波损耗),具体的LC 参数值取决于PCBFR4) 介材特性和电子料的布板。天线设计采用了Johanson 公司的型号2450AT45A100,(最大输入功率:500mW ;天线峰值增益:0.5dBi ;回波损耗:9.5dB)。

3 WIFI 底层驱动移植与节电模式算法

BGW200 芯片提供WinCE5.0 Linux2.4 内核的标准程序代码,分别基于TI OMAP/ Intel Bulverde/ 嵌入式平台。它的底层软件架构分主机(Host) 和从机(Target) 两个部分,其中Target 是指BGW200 MAC 层,相关的MAC 协议已经固化在芯片内部。

3.1 底层驱动架构分析


  
2 表示了Host 主要的功能模块:

客 户机端的驱动(Client Driver)该层主要提供主机的操作系统OS、上层运行程序、以及主机端硬件抽象层(HHAL: Host Hardware Abstraction Layer )之间的连接,它将调用HHAL层的API 参数,对于不同的操作系统OS,该部分驱动要做重新移植。主机端硬件抽象层(HHAL) 该层是服务于SPI/SDIO 接口的主机端抽象接口,它分为两个部分,通用部分(Common) 和平台(Platform)相关部分。通用部分对所有的平台都是相同的,提供高层次的数据处理。而平台相关部分则依具体的硬件平台而定,需要提供底层对通 信接口(SPI)的读、写等操作,需要设计具体的硬件相关资源,如硬件中断、DMA通道等。

可配置效用层(Configuration Utilities) 针对不同的平台,提供了WLAN的相应配置工具,例如在WinCE上的ZeroConfig ,或者Linux平台的Wireless Extension 包。

主 机操作系统抽象层(HOSAL) 该层是一个主机侧操作系统的抽象接口,它提供了给HHAL的通用部分与操作系统无关的能力。该层以统一的接口支持不同的具体操作系统,目前主要有 LinuxWinCE两类。该模块主要包含支持HHAL运行的相关OSAPI。具体包括:OS相关的结构体初始化、内存管理、定时器、队列、中断、线 程、事件和互斥锁。

 3.2 WIFI软件驱动与节电模式设计
本设计OS采用Linux2.4 内核,具体实现分以下几个部分:

3.2.1
初始化(Initialization

首 先在驱动装载的过程中由HostDriver 调用PhgOsalRegInit()请求HOSAL层执行initialize 任务来完成内存的分配,然后执行回调函数,在回调函数中传递硬件相关的资源,并且注册事件入口,创建事务线程。准备工作一旦就绪,通过调用 PhgHhalInitialize() 立刻转入HHAL 通用层的处理,在通用层中调用HhalPlatformInitPreBoot()执行硬件相关的代码如平台资源初始化、注册中断处理函数、创建直接内存 访问通道等。这样HHAL通用层就具备了同Target 进行数据交换的能力。然后将Firmware 下载到Target 中,并向Target 的内部寄存器写入START 指令,等待Target ACK确认信息,初始化工作即宣告完成。

 3.2.2 建立连接(Connection

HHAL通用层中已经定义了大量MIB命令字来与Target Firmware 执行相匹配,HOST通过PhgHhalQueueMgmtReq() TargetT 发起一个请求,对于简单的命令与回应,通过设置和读取TargetT 的内部寄存器来完成。如果有数据需要传输,Target HOST请求中断,并通过直接内存访问通道DMA把数据传输到HOST ,再由HOST 提交给操作系统上层。建立连接的过程HOSTTarget 发起SCANJOINAUTH ASSOC 等请求,等待Target 执行完成并返回确认,HOST收到确认后转入在初始化阶段注册的相应事件入口,通知上层系统已经完成连接的建立。

 3.2.3 数据通讯(Communication

数 据通讯实际上通过M2S S2M 两个 DMA 通道来完成。发送数据同样是调用PhgHhalQueueMgmtReq() 发起请求,待Target 准备就绪,调用HhalPlatformM2SDma()将数据发送到Target 中,再由Target 转换为RF 信号向无线连接点AP 发送。接收数据则是Target 由连接点收到RF 信号,解析为MAC 数据包,向HOST 发出中断请求,待HOST 准备就绪,调用HhalPlatformS2MDma() Target 中接收数据。

 3.2.4 节电算法软件设计(Power Management

根 据移动终端的具体运用场景,在底层驱动中开发了ACTIVE Max POWER_SAVE Fast POWER_SAVE POWER_SLEEP四种电源管理模式。工作模式(Active Mode )时,电源管理关闭,芯片处于完全上电状态;最大功耗节电模式(Max POWER_SAVE )时,满足在用户可以选择的侦听间隔最大程度内,达到功耗节省最优。快速功耗节电模式(Fast POWER_SAVE )时,满足在用户固定的侦听间隔,达到良好的功耗节省最优。睡眠模式(POWER_SLEEP) 时, 芯片处于关机状态,用户需要人工操作重新回到芯片工作状态。本设计中驱动装载后默认的是ACTIVE, 同时在事务线程中对电源模式进行检测,当上层软件需要转换为POWER_SAVE, 驱动仍然通过PhgHhalQueueMgmtReq() Target 发起请求,使得Target 切换到POWER_SAVE 工作模式,在这种模式下,BGW200 只消耗很少的电能,同时仍进行MAC层的处理,上层软件可以根据数据传输的需求来实时切换Target 的工作模式,以达到有效节能的目标。

测试结果
本 设计的WIFI 子系统在实际环境下进行了功耗测试,测试用的无线连接点AP 用的是Linksys 公司的WRT54G, 无线链路的距离是米,软 件设置到最大发射功率为+16dBm,同时按照802.11b 协议规范的要求,分别在四种不同速率1M/2M/5.5M/11M 情况下测量出发射和接 收功耗。测试结果如表所示。

1  BGW200 LPC2220/Linux2.4 系统平台上的功耗测试


 WIFI 
子 系统的待机功耗为6.36 毫瓦(100 毫秒信标间隔)和2.23 毫瓦(300 毫秒信标间隔),实现了对WIFI 的低功耗设计要求。加上在本论文 设计的包括LPC2220 微控制器作为主机端的整个系统平均待机电流为15mA, 通话的平均电流为300mA ,通常以设备采用650mA 的电池能 耗下,系统的待机时间可以到48 小时,连续通话时间为小时。
结束语
本文作者创新点在于:通过实际的设计研究与实验测试对 比,提出在嵌入式移动设备中WIFI 子系统的低功耗设计方法,其中与WIFI 连接的HOST 主机端(嵌入式微处理器)并不局限于特定的型号。本文的 低功耗设计到了多个技术层面,包括芯片分析选择、硬件系统外围电路架构、电源管理设计优化、PCB 布板与射频电路、软件驱动的四个节电模式。它为广大嵌 入式移动设备企业及相关科研机构设计最终WIFI 产品的设计提供一种参考思路,并倡导应用节能技术,研发生产低能耗型产品当作提高企业核心竞争力的有效 途径。

参考文献: 
[1] BGW200 Linux / Mainstone2 / SPI Release 03.02.04.78. 2006
.  
[2]
王树奇,孙弋.基于S3C2410 的井下WiFi 便携终端的设计[J]. 微计算机信息,20074-2186-188. 
[3] 
何津津,陈奇,杨莲兴. 802.11b 标准MAC 子层的低功耗设计【J微电子学 36 卷第一期(105-107),2006

 

你可能感兴趣的:(工作,测试,嵌入式,平台,终端,WinCE)