<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式移動(dòng)終端內置WIFI 的低功耗設計

嵌入式移動(dòng)終端內置WIFI 的低功耗設計

——
作者: 時(shí)間:2010-01-13 來(lái)源:電子產(chǎn)品世界 收藏

  1 引言

本文引用地址:http://dyxdggzs.com/article/104903.htm

  嵌入式設備是無(wú)線(xiàn)通信最重要的應用領(lǐng)域。自2007 年開(kāi)始,全球Wi-Fi(Wireless Fidelity) 市場(chǎng)高速持續增長(cháng),銷(xiāo)量達到2.8 億套。低功耗的無(wú)線(xiàn)通信軟硬件設計是嵌入式移動(dòng)設備重要的研究?jì)热?。仍以Wi-Fi 為例,若采用飛思卡爾(Freescale)的 模組和嵌入式微處理器MCF5249 ,考慮通常手機的電池容量,則通話(huà)時(shí)間僅為1~2 小時(shí),待機時(shí)間也僅有20~26 小時(shí)。而從現實(shí)應用看,嵌入式移動(dòng)設備中電池能量有限,在充電后至少應該保障一天的使用時(shí)間。因此,解決功率消耗對提高嵌入式 移動(dòng)設備的可用性具有重要意義。

  本文提出了一種在嵌入式移動(dòng)設備中 子系統的低功耗設計思路,芯片采用恩智浦公司的BGW200 模塊,通過(guò)合理的設計系統硬件、WIFI 底層的軟件驅動(dòng)方面、節點(diǎn)管理模式等手段實(shí)現了低功耗的WiFi 系統。

  2 WIFI 硬件與射頻電路低功耗設計

  本設計采用LPC2220 微控制器作為主機端微控制器,它基于一個(gè)支持實(shí)時(shí)仿真和嵌入跟蹤的ARM7TDMI-S CPU。BGW200 是一款WIFI 低功耗系統化封裝(SiP) 芯片組,具備“主機零負荷”性能,MAC 通信協(xié)議可以利用內置嵌入的ARM7 核來(lái)執行,所以不會(huì )對主處理器HOST 造成任何負荷。只有當BGW200 接收到有效數據封包時(shí),才會(huì )觸發(fā)主處理器工作。

  圖1 顯示了WIFI 子系統為實(shí)現低功耗目標的硬件電路設計框圖,主要包括BGW200、系統時(shí)鐘、低頻睡眠時(shí)鐘、和1.8V/3.0V 電源供應、帶通濾波器、天線(xiàn)和“與門(mén)”電路。其中用虛線(xiàn)標注的低頻睡眠時(shí)鐘和輔助RF 電路在設計中屬于可選項。設計具體細節如下:SPI2接口:考慮到SDIO 對主機資源消耗較大,設計采用SPI 接口。BGW200 分SPI1 和SPI2兩種接口,其中SPI2 是高度從接口(Slave),通過(guò)管腳設置CSR0/SCR1 為0/0。兩個(gè)SPI 接口共享相同的數據線(xiàn)和時(shí)鐘信號線(xiàn),但是具有不同的片選信號,SPI1 使用GPIO[10] 作為片選信號,SPI2 使用SPI_SS_N(GPIO[6])。SPI2 接口操作獨立于總線(xiàn)時(shí)鐘,最高可以工作到66MHz 。SPI2 的IO 接口采用VDD3.3 供電(2.7V 到3.6V)。

  

 

  圖1 WIFI 子系統硬件框圖

  供電單元設計采用了LDO 降壓芯片,由于BGW200 分兩種電壓:射頻部分電壓范圍值(2.7V-3.6V),基帶內核電壓范圍值(1.65V-1.95V)。因此設計依據的因素考慮了芯片的成本、電平值和最大電流負荷、電源輸入輸出效率和噪聲、輸入電壓范圍、輸出電壓精度以及保護特性,采用了TPS73630(3.0V,400mA )和TPS73218(1.8V,250mA)??紤]到陶瓷電容有最優(yōu)的ESR 特性過(guò)濾脈動(dòng)電壓抖動(dòng)影響,設計中同時(shí)采用了陶瓷電容匹配LDO 芯片。另外,為加強低功耗設計實(shí)現,設計用了LPC2220 主控制器的一個(gè)GPIO 口來(lái)控制BGW200 的開(kāi)/關(guān)狀態(tài)來(lái)降低功耗。

  主系統時(shí)鐘和睡眠時(shí)鐘。BGW200 工作要求兩個(gè)時(shí)鐘,主系統時(shí)鐘44MHz(10ppm) 和32KHz 的睡眠時(shí)鐘。在嵌入式設計中都可以共享主處理器LPC2220 的時(shí)鐘資源,其中BGW200 的GPIO[4]通過(guò)并聯(lián)電容直接連到睡眠時(shí)鐘。

  2.4GHz 射頻匹配電路。理想狀態(tài)下,由于BGW200 的RF 端口已經(jīng)是50 的標準阻抗,

  2.45GHz 的天線(xiàn)能夠通過(guò)50 的微帶線(xiàn)直接連接到BGW200 的天線(xiàn)端口。在設計中,借助網(wǎng)絡(luò )分析儀工具的幫助,設計了LC 匹配電路以達到更高帶寬性能的射頻信號接收性能和最佳的駐波比(回波損耗),具體的LC 參數值取決于PCB(FR4) 介材特性和電子料的布板。天線(xiàn)設計采用了Johanson 公司的型號2450AT45A100,(最大輸入功率:500mW ;天線(xiàn)峰值增益:0.5dBi ;回波損耗:9.5dB)。

  3 WIFI 底層驅動(dòng)移植與節電模式算法

  BGW200 芯片提供WinCE5.0 和Linux2.4 內核的標準程序代碼,分別基于TI OMAP/ Intel Bulverde/ 嵌入式平臺。它的底層軟件架構分主機(Host) 和從機(Target) 兩個(gè)部分,其中Target 是指BGW200 的MAC 層,相關(guān)的MAC 協(xié)議已經(jīng)固化在芯片內部。

  3.1 底層驅動(dòng)架構分析

  

 

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

  客戶(hù)機端的驅動(dòng)(Client Driver)該層主要提供主機的操作系統OS、上層運行程序、以及主機端硬件抽象層(HHAL: Host Hardware Abstraction Layer )之間的連接,它將調用HHAL層的API 參數,對于不同的操作系統OS,該部分驅動(dòng)要做重新移植。主機端硬件抽象層(HHAL) 該層是服務(wù)于SPI/SDIO 接口的主機端抽象接口,它分為兩個(gè)部分,通用部分(Common) 和平臺(Platform)相關(guān)部分。通用部分對所有的平臺都是相同的,提供高層次的數據處理。而平臺相關(guān)部分則依具體的硬件平臺而定,需要提供底層對通信接口(SPI)的讀、寫(xiě)等操作,需要設計具體的硬件相關(guān)資源,如硬件中斷、DMA通道等。

  可配置效用層(Configuration Utilities) 針對不同的平臺,提供了WLAN的相應配置工具,例如在WinCE上的ZeroConfig ,或者Linux平臺的Wireless Extension 包。

  主機操作系統抽象層(HOSAL) 該層是一個(gè)主機側操作系統的抽象接口,它提供了給HHAL的通用部分與操作系統無(wú)關(guān)的能力。該層以統一的接口支持不同的具體操作系統,目前主要有Linux和WinCE兩類(lèi)。該模塊主要包含支持HHAL運行的相關(guān)OS的API。具體包括:OS相關(guān)的結構體初始化、內存管理、定時(shí)器、隊列、中斷、線(xiàn)程、事件和互斥鎖。

  3.2 WIFI軟件驅動(dòng)與節電模式設計

  本設計OS采用Linux2.4 內核,具體實(shí)現分以下幾個(gè)部分:

  3.2.1 初始化(Initialization)

  首先在驅動(dòng)裝載的過(guò)程中由HostDriver 調用PhgOsalRegInit()請求HOSAL層執行initialize 任務(wù)來(lái)完成內存的分配,然后執行回調函數,在回調函數中傳遞硬件相關(guān)的資源,并且注冊事件入口,創(chuàng )建事務(wù)線(xiàn)程。準備工作一旦就緒,通過(guò)調用PhgHhalInitialize() 立刻轉入HHAL 通用層的處理,在通用層中調用HhalPlatformInitPreBoot()執行硬件相關(guān)的代碼如平臺資源初始化、注冊中斷處理函數、創(chuàng )建直接內存訪(fǎng)問(wèn)通道等。這樣HHAL通用層就具備了同Target 進(jìn)行數據交換的能力。然后將Firmware 下載到Target 中,并向Target 的內部寄存器寫(xiě)入START 指令,等待Target 的ACK確認信息,初始化工作即宣告完成。

  3.2.2 建立連接(Connection)

  在HHAL通用層中已經(jīng)定義了大量MIB命令字來(lái)與Target 的Firmware 執行相匹配,HOST通過(guò)PhgHhalQueueMgmtReq() 給TargetT 發(fā)起一個(gè)請求,對于簡(jiǎn)單的命令與回應,通過(guò)設置和讀取TargetT 的內部寄存器來(lái)完成。如果有數據需要傳輸,Target 向HOST請求中斷,并通過(guò)直接內存訪(fǎng)問(wèn)通道DMA把數據傳輸到HOST ,再由HOST 提交給操作系統上層。建立連接的過(guò)程HOST向Target 發(fā)起SCAN、JOIN、AUTH 、ASSOC 等請求,等待Target 執行完成并返回確認,HOST收到確認后轉入在初始化階段注冊的相應事件入口,通知上層系統已經(jīng)完成連接的建立。

  3.2.3 數據通訊(Communication)

  數據通訊實(shí)際上通過(guò)M2S 和S2M 兩個(gè) DMA 通道來(lái)完成。發(fā)送數據同樣是調用PhgHhalQueueMgmtReq() 發(fā)起請求,待Target 準備就緒,調用HhalPlatformM2SDma()將數據發(fā)送到Target 中,再由Target 轉換為RF 信號向無(wú)線(xiàn)連接點(diǎn)AP 發(fā)送。接收數據則是Target 由連接點(diǎn)收到RF 信號,解析為MAC 數據包,向HOST 發(fā)出中斷請求,待HOST 準備就緒,調用HhalPlatformS2MDma() 從Target 中接收數據。

  3.2.4 節電算法軟件設計(Power Management)

  根據移動(dòng)終端的具體運用場(chǎng)景,在底層驅動(dòng)中開(kāi)發(fā)了ACTIVE 、Max POWER_SAVE 、Fast POWER_SAVE 、POWER_SLEEP四種電源管理模式。工作模式(Active Mode )時(shí),電源管理關(guān)閉,芯片處于完全上電狀態(tài);最大功耗節電模式(Max POWER_SAVE )時(shí),滿(mǎn)足在用戶(hù)可以選擇的偵聽(tīng)間隔最大程度內,達到功耗節省最優(yōu)??焖俟墓濍娔J?Fast POWER_SAVE )時(shí),滿(mǎn)足在用戶(hù)固定的偵聽(tīng)間隔,達到良好的功耗節省最優(yōu)。睡眠模式(POWER_SLEEP) 時(shí), 芯片處于關(guān)機狀態(tài),用戶(hù)需要人工操作重新回到芯片工作狀態(tài)。本設計中驅動(dòng)裝載后默認的是ACTIVE, 同時(shí)在事務(wù)線(xiàn)程中對電源模式進(jìn)行檢測,當上層軟件需要轉換為POWER_SAVE, 驅動(dòng)仍然通過(guò)PhgHhalQueueMgmtReq() 向Target 發(fā)起請求,使得Target 切換到POWER_SAVE 工作模式,在這種模式下,BGW200 只消耗很少的電能,同時(shí)仍進(jìn)行MAC層的處理,上層軟件可以根據數據傳輸的需求來(lái)實(shí)時(shí)切換Target 的工作模式,以達到有效節能的目標。

  4 測試結果

  本設計的WIFI 子系統在實(shí)際環(huán)境下進(jìn)行了功耗測試,測試用的無(wú)線(xiàn)連接點(diǎn)AP 用的是Linksys 公司的WRT54G, 無(wú)線(xiàn)鏈路的距離是1 米,軟件設置到最大發(fā)射功率為+16dBm,同時(shí)按照802.11b 協(xié)議規范的要求,分別在四種不同速率1M/2M/5.5M/11M 情況下測量出發(fā)射和接收功耗。測試結果如表1 所示。

 

  表1 BGW200 在LPC2220/Linux2.4 系統平臺上的功耗測試

  WIFI 子系統的待機功耗為6.36 毫瓦(100 毫秒信標間隔)和2.23 毫瓦(300 毫秒信標間隔),實(shí)現了對WIFI 的低功耗設計要求。加上在本論文設計的包括LPC2220 微控制器作為主機端的整個(gè)系統平均待機電流為15mA, 通話(huà)的平均電流為300mA ,通常以設備采用650mA 的電池能耗下,系統的待機時(shí)間可以到48 小時(shí),連續通話(huà)時(shí)間為3 小時(shí)。

  5 結束語(yǔ)

  本文作者創(chuàng )新點(diǎn)在于:通過(guò)實(shí)際的設計研究與實(shí)驗測試對比,提出在嵌入式移動(dòng)設備中WIFI 子系統的低功耗設計方法,其中與WIFI 連接的HOST 主機端(嵌入式微處理器)并不局限于特定的型號。本文的低功耗設計到了多個(gè)技術(shù)層面,包括芯片分析選擇、硬件系統外圍電路架構、電源管理設計優(yōu)化、PCB 布板與射頻電路、軟件驅動(dòng)的四個(gè)節電模式。它為廣大嵌入式移動(dòng)設備企業(yè)及相關(guān)科研機構設計最終WIFI 產(chǎn)品的設計提供一種參考思路,并倡導應用節能技術(shù),研發(fā)生產(chǎn)低能耗型產(chǎn)品當作提高企業(yè)核心競爭力的有效途徑。



關(guān)鍵詞: WIFI MCU

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>