引言
Wi-Fi無線接入技術(shù)基于IEEE802.11協(xié)議,是目前無線通信中最常用的無線接入技術(shù)。然而,Wi-Fi無線接入技術(shù)有一個致命弱點——功耗高。因此,如何降低Wi-Fi無線接入技術(shù)的功耗成為了急需解決的問題。移動終端通過無線路由器提供的Wi-Fi信號接入互聯(lián)網(wǎng)或者進行定位服務,然而由于Wi-Fi的高功耗使得無線路由器必須一直連接電源才能保持正常工作,這就嚴重限制了人們的使用范圍。我們希望在沒有電源接入的地方(比如古老景區(qū)、歷史遺跡)也可以使用無線路由器,為移動終端提供服務。
1 IEEE802.11協(xié)議
IEEE802.11協(xié)議是由美國電氣與電子工程師學會(IEEE)開發(fā)的一組無線傳輸協(xié)議。這些協(xié)議定義了無線站點(或接入點)之間兩個或多個無線站點之間的通信的接口。該協(xié)議主要包含物理層和MAC層,主要工作在ISO協(xié)議的最低兩層上,本文主要研究該協(xié)議的MAC層。
IEEE802.11協(xié)議定義幀包含以下幾個部分:
◆MAC頭部。包含幀控制、持續(xù)時間、地址和排隊控制信息。
◆有效長度的幀體。包含幀信息、幀類型。
◆FCS。包含CRC校驗的信息。
控制幀:主要用于協(xié)助數(shù)據(jù)幀的傳遞,所有控制幀都使用相同的Frame Control字段。
管理幀:負責在工作站和AP之間建立初始的通信,提供認證和連接服務,包括連接請求/響應、輪詢請求/響應、Beacon幀等。
Beacon幀:主要聲明網(wǎng)絡的存在。定期傳送的信標可以讓移動式工作站得知該網(wǎng)絡的存在,從而調(diào)整加入該網(wǎng)絡所必需的參數(shù)。在基礎(chǔ)結(jié)構(gòu)網(wǎng)絡中,接入點負責傳送Beacon幀。
由圖1的IEEE802.11協(xié)議幀結(jié)構(gòu)可以看出,如果僅僅保留IEEE802.11協(xié)議廣播Beacon幀功能的話,則只需發(fā)送很少的數(shù)據(jù),可以大大地降低功耗,而且我們還可以通過開源路由技術(shù)修改IEEE802.11協(xié)議來達到降低功耗的目的。
2 開源路由技術(shù)
圖2為TCP/IP與OSI參考模型的對應關(guān)系,可以看出路由器是工作在OSI模型中的第3層,即網(wǎng)絡層。同時也是TCP/IP協(xié)議的第3層,即網(wǎng)際層。路由器利用網(wǎng)絡層定義的“邏輯”網(wǎng)絡地址(即IP地址)來區(qū)別不同的網(wǎng)絡,實現(xiàn)網(wǎng)絡的百聯(lián)和隔離,保持各個網(wǎng)絡的獨立性。路由器不轉(zhuǎn)發(fā)廣播消息,而把廣播消息限制在各自的網(wǎng)絡內(nèi)部。發(fā)送到其他網(wǎng)絡的數(shù)據(jù)均被送到路由器,再由路由器轉(zhuǎn)發(fā)出去。
無線路由器是基于開源的Linux操作系統(tǒng),然而商業(yè)路由器為了保護自己的技術(shù)是不會把固件源碼公開的,因此不能由第三方軟件開發(fā)者直接對其固件進行開發(fā)。自從Linksys釋放WRT54G/GS的源碼后,開源軟件愛好者開發(fā)出很多不同版本的固件,以增強原有的功能或者增加原來沒有的功能。下面是主流的無線路由的Linux發(fā)行版:
①Open-WRT。國內(nèi)最早興起刷固件行動的人基本上都是將自己的設(shè)備刷新成Open-WRT,由此可見Open-WRT具有極大的影響力。該固件通過SSH加密協(xié)議來配置,與Cisco設(shè)備在很多指令和操作上類似。
②DD-WRT。該固件是國內(nèi)外目前最為流行的固件之一,它是在Open-WRT固件的基礎(chǔ)上改進后發(fā)布的,很多功能都是取自O(shè)pen-WRT。存應用范同上DD-WRT支持極多的硬件平臺,并且新版本的發(fā)布也很及時。
③Hyper-WRT。該固件是以穩(wěn)定著稱的第三方同件,不過功能上要比前兩種稍遜一籌。從核心代碼上看,它是最接近Linksys官方固件的固件。對很多用戶來說,新功能、新應用的出現(xiàn)是他們刷新同件的主要動力,如果只是要求單一的穩(wěn)定,那么直接使用官方默認固件即可。
④Tomato。這是一款逐漸流行的固件,個頭比較小,實際使用起來非常穩(wěn)定,而且基于SVG的圖形化流量圖非常有特色。它是由Hyper-WRT研發(fā)團隊中的一個組員開發(fā)的。
本文選用的第三方固件是Open-WRT,之所以選擇Open-WRT是因為它是完全開源的,方便編譯和配置,有對應路由器所需要的固件,重新刷固件也很方便。
3 低功耗無線路由器的實際應用
眾所周知,在古老歷史遺跡和古老景區(qū)內(nèi)是很難實現(xiàn)網(wǎng)絡接入的,主要原因是布線困難,因為布線會對歷史遺跡產(chǎn)生損害。這時候就需要離線的導游導覽系統(tǒng)來實現(xiàn)智慧景點的建設(shè)。本文研究的系統(tǒng)就是基于離線移動互聯(lián)網(wǎng)沒備(Mobile Internet Device,MID)的導游導覽系統(tǒng)。在這個系統(tǒng)中,無線路由器所要實現(xiàn)的功能是以固定間隔發(fā)送廣播幀,游客在游玩的時候,MID會根據(jù)廣播幀的信號強度和SSID號來判斷游客所在的位置,同時自動播放游客所到景點的視頻和語音介紹信息。
在這個系統(tǒng)中無線路由器只需要提供以同定間隔發(fā)送廣播幀的功能即可。由路由器的工作原理和IEEE802.11協(xié)議幀結(jié)構(gòu)可以看出,無線路由器的功耗主要在數(shù)據(jù)傳輸和實現(xiàn)其路由功能上面,而發(fā)送廣播幀的功耗很低。由此想到,如果將路由器的路由功能禁止并且不讓其傳輸數(shù)據(jù),只讓其以固定間隔發(fā)送廣播幀,那么將會大大降低功耗,而我們需要的這些功能是可以通過修改第三方固件Open-WRT實現(xiàn)的。
4 無線路由器和Open-wRT固件的選擇
經(jīng)調(diào)查研究各種路由器,最終選擇了中興公司的H118B路由器,使用的是BCM5354芯片,支持DD-WRT、Open-WRT等主流第三方固件,此款路由器的硬件配置是:8 MB Flash、32 MB ROM、BCM5354 CPU。
從Open-WRT官網(wǎng)上查得支持BCM5354芯片的固件是openwrt-brcm47xx-squashfs. trX。準備好路由器和固件之后,就是將固件刷入路由器以覆蓋原來的固件,使用tftp方式進行刷機。當刷機成功后,用telnct登錄路由器會顯示結(jié)果。刷機成功界面如圖3所示。
刷機成功之后是鋰電池的準備,選擇的是輸入電壓12.6 V、輸出電壓12 V、容量為5000 mAh的鋰電池進行測試。
5 Open-WRT固件的修改和測試
5.1 Open-WRT固件配置的修改
首先,Open-WRT固件的SSID廣播是默認隱藏的,需要修改其顯示為SSID。修改方式如下:
◆執(zhí)行vi/etc/config/wireless命令;
◆將option disabled 1改為option disabled 0;
◆修改過之后發(fā)現(xiàn)筆記本的無線網(wǎng)絡列表里面顯示的路由器的SSID名稱為openwrt。
然后需要做的事情是禁止路由器的路由功能。修改方式如下:
◆輸入vi/etc/sysctl.conf命令;
◆將net.ipv4.ip_forward=1改為net.ipv4.ip_for ward=0。
最后需要做的就是改變路由器發(fā)送廣播幀的間隔時間,路由器的默認發(fā)送廣播幀的間隔是100ms,而對于我們的導覽系統(tǒng)是不需要這么頻繁地發(fā)送廣播幀的。對于游客來說在100ms之內(nèi)移動的距離太短了,所以經(jīng)過研究最終決定將發(fā)送廣播幀的間隔改為2 s。在實際的游覽景區(qū)中游客行走的很慢,2 s的時間只能行走很短的距離,恰好符合系統(tǒng)的需求。通過給Open-WRT固件的無線配置文件加上控制幀,可以改變發(fā)送的間隔。
修改方式如下:
◆輸入vi/etc/config/wireless命令;
◆在配置文件中加入option beacon_int 2000,次命令行是將Beacon幀的發(fā)送間隔設(shè)置為2 s。
5.2 修改過程中的測試結(jié)果
測試過程共分為兩次:第一次是在刷入固件后不做任何修改的情況下測試無線路由器的使用時間,在12 V、5 000 mAh供電的情況下,路由器可以使用約8 h。第二次是禁止路由功能只發(fā)送廣播幀的情況下,經(jīng)測試路由器可以持續(xù)工作約42 h。
可以得出結(jié)論:在禁止路由功能并且默認發(fā)送廣播幀的時間間隔為100 ms的情況下,路由器可以持續(xù)工作約42 h;在把路由器發(fā)送廣播幀的時間間隔改為2 s的情況下,路由器大約可以持續(xù)工作800h,固件修改過程中的無線路由器工作時間對比如圖4所示。
按照景區(qū)一天開放時間為10 h計算,一塊電池可以給路由器供電80天,這樣基本達到了我們的要求,因為兩三個月給路由器電池充一次電還是比較方便的。
評論
查看更多