DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2747|回复: 1
打印 上一主题 下一主题

[待整理] 基于开源路由技术的低功耗无线路由器研究

[复制链接]
跳转到指定楼层
楼主
发表于 2015-5-1 19:16:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  摘要: 移动终端通过基于IEEE 802.11协议的WiFi无线通信技术与互联网相连。本文深入研究了IEEE802.11协议,利用开源路由技术对无线路由器刷入第三方开源固件OpenWRT,并对该固件进行相应的协议修改来降低WiFi功耗,并且将降低功耗后的无线路由器应用于具体的智慧旅游项目。
  关键词: 移动互联网;Wi-Fi;无线路由器;开源路由技术
  Research of Low-power Wireless Routing Based on Open Source Router Technology
Information Engineering College,Shanghai Maritime University, Shanghai 201306,China
Abstract: Mobile terminal is connected to Internet through WiFi wireless communication technology based on IEEE802.11 protocol. IEEE802.11 protocol is studied deeply. Thirdparty open source firmware OpenWRT is put into wireless router using open source routing technology,and the corresponding protocol of the firmware is modified so as to reduce the power consumption of WiFi.The wireless router with low power consumption is applied to the smart tourism projects.
  Key words: mobile Internet; Wi-Fi; wireless router; open source routing technology

  引言
  WiFi无线接入技术基于IEEE802.11协议,是目前无线通信中最常用的无线接入技术。然而,WiFi无线接入技术有一个致命弱点——功耗高。因此,如何降低WiFi无线接入技术的功耗成为了急需解决的问题。
  移动终端通过无线路由器提供的WiFi信号接入互联网或者进行定位服务,然而由于WiFi的高功耗使得无线路由器必须一直连接电源才能保持正常工作,这就严重限制了人们的使用范围。我们希望在没有电源接入的地方(比如古老景区、历史遗迹)也可以使用无线路由器,为移动终端提供服务。
  1 IEEE802.11协议
  IEEE802.11协议是由美国电气与电子工程师学会(IEEE)开发的一组无线传输协议。这些协议定义了无线站点(或接入点)之间两个或多个无线站点之间的通信的接口。该协议主要包含物理层和MAC层,主要工作在ISO协议的最低两层上,本文主要研究该协议的MAC层。
  IEEE802.11协议定义帧包含以下几个部分:
  ◆  MAC头部。包含帧控制、持续时间、地址和排队控制信息。
  ◆ 有效长度的帧体。包含帧信息、帧类型。
  ◆  FCS。包含CRC校验的信息。
  控制帧:主要用于协助数据帧的传递,所有控制帧都使用相同的Frame Control字段。
  管理帧:负责在工作站和AP之间建立初始的通信,提供认证和连接服务,包括连接请求/响应、轮询请求/响应、Beacon帧等。
  Beacon帧:主要声明网络的存在。定期传送的信标可以让移动式工作站得知该网络的存在,从而调整加入该网络所必需的参数。在基础结构网络中,接入点负责传送Beacon帧。
  由图1的IEEE802.11协议帧结构可以看出,如果仅仅保留IEEE802.11协议广播Beacon帧功能的话,则只需发送很少的数据,可以大大地降低功耗,而且我们还可以通过开源路由技术修改IEEE802.11协议来达到降低功耗的目的。



图1 IEEE802.11协议帧结构


  2 开源路由技术
  图2为TCP/IP与OSI参考模型的对应关系,可以看出路由器是工作在OSI模型中的第3层,即网络层。同时也是TCP/IP协议的第3层,即网际层。路由器利用网络层定义的“逻辑”网络地址(即IP地址)来区别不同的网络,实现网络的互联和隔离,保持各个网络的独立性。路由器不转发广播消息,而把广播消息限制在各自的网络内部。发送到其他网络的数据均被送到路由器,再由路由器转发出去。



图2 TCP/IP与OSI参考模型的对应关系


  无线路由器是基于开源的Linux操作系统,然而商业路由器为了保护自己的技术是不会把固件源码公开的,因此不能由第三方软件开发者直接对其固件进行开发。自从Linksys释放WRT54G/GS的源码后,开源软件爱好者开发出很多不同版本的固件,以增强原有的功能或者增加原来没有的功能。下面是主流的无线路由的Linux发行版:
  ① OpenWRT。国内最早兴起刷固件行动的人基本上都是将自己的设备刷新成OpenWRT,由此可见OpenWRT具有极大的影响力。该固件通过SSH加密协议来配置,与Cisco设备在很多指令和操作上类似。
  ② DDWRT。该固件是国内外目前最为流行的固件之一,它是在OpenWRT固件的基础上改进后发布的,很多功能都是取自OpenWRT。在应用范围上DDWRT支持极多的硬件平台,并且新版本的发布也很及时。
  ③ HyperWRT。该固件是以稳定著称的第三方固件,不过功能上要比前两种稍逊一筹。从核心代码上看,它是最接近Linksys官方固件的固件。对很多用户来说,新功能、新应用的出现是他们刷新固件的主要动力,如果只是要求单一的稳定,那么直接使用官方默认固件即可。
  ④ Tomato。这是一款逐渐流行的固件,个头比较小,实际使用起来非常稳定,而且基于SVG的图形化流量图非常有特色。它是由HyperWRT研发团队中的一个组员开发的。
  本文选用的第三方固件是OpenWRT,之所以选择OpenWRT是因为它是完全开源的,方便编译和配置,有对应路由器所需要的固件,重新刷固件也很方便。
  3 低功耗无线路由器的实际应用
  众所周知,在古老历史遗迹和古老景区内是很难实现网络接入的,主要原因是布线困难,因为布线会对历史遗迹产生损害。这时候就需要离线的导游导览系统来实现智慧景点的建设。本文研究的系统就是基于离线移动互联网设备(Mobile Internet Device,MID)的导游导览系统。在这个系统中,无线路由器所要实现的功能是以固定间隔发送广播帧,游客在游玩的时候,MID会根据广播帧的信号强度和SSID号来判断游客所在的位置,同时自动播放游客所到景点的视频和语音介绍信息。
  在这个系统中无线路由器只需要提供以固定间隔发送广播帧的功能即可。由路由器的工作原理和IEEE802.11协议帧结构可以看出,无线路由器的功耗主要在数据传输和实现其路由功能上面,而发送广播帧的功耗很低。由此想到,如果将路由器的路由功能禁止并且不让其传输数据,只让其以固定间隔发送广播帧,那么将会大大降低功耗,而我们需要的这些功能是可以通过修改第三方固件OpenWRT实现的。
  4 无线路由器和OpenWRT固件的选择
  经调查研究各种路由器,最终选择了中兴公司的H118B路由器,使用的是BCM5354芯片,支持DDWRT、OpenWRT等主流第三方固件,此款路由器的硬件配置是:8 MB Flash、32 MB ROM、BCM5354 CPU。
  从OpenWRT官网上查得支持BCM5354芯片的固件是openwrtbrcm47xxsquashfs.trx。准备好路由器和固件之后,就是将固件刷入路由器以覆盖原来的固件,使用tftp方式进行刷机。当刷机成功后,用telnet登录路由器会显示结果。刷机成功界面如图3所示。



图3 刷机成功界面


  刷机成功之后是锂电池的准备,选择的是输入电压12.6 V、输出电压12 V、容量为5000 mAh的锂电池进行测试。
5 vOpenWRT固件的修改和测试
5.1 OpenWRT固件配置的修改
  首先,OpenWRT固件的SSID广播是默认隐藏的,需要修改其显示为SSID。修改方式如下:
  ◆ 执行vi/etc/config/wireless命令;
  ◆ 将option disabled 1改为option disabled 0;
  ◆ 修改过之后发现笔记本的无线网络列表里面显示的路由器的SSID名称为openwrt。
  然后需要做的事情是禁止路由器的路由功能。修改方式如下:
  ◆ 输入vi /etc/sysctl.conf命令;
  ◆ 将net.ipv4.ip_forward=1改为net.ipv4.ip_forward=0。
  最后需要做的就是改变路由器发送广播帧的间隔时间,路由器的默认发送广播帧的间隔是100 ms,而对于我们的导览系统是不需要这么频繁地发送广播帧的。对于游客来说在100 ms之内移动的距离太短了,所以经过研究最终决定将发送广播帧的间隔改为2 s。在实际的游览景区中游客行走的很慢,2 s的时间只能行走很短的距离,恰好符合系统的需求。通过给OpenWRT固件的无线配置文件加上控制帧,可以改变发送的间隔。
  修改方式如下:
  ◆ 输入vi/etc/config/wireless命令;
  ◆ 在配置文件中加入 option beacon_int 2000,次命令行是将Beacon帧的发送间隔设置为2 s。
  5.2 修改过程中的测试结果
  测试过程共分为两次:第一次是在刷入固件后不做任何修改的情况下测试无线路由器的使用时间,在12 V、5 000 mAh供电的情况下,路由器可以使用约8 h。第二次是禁止路由功能只发送广播帧的情况下,经测试路由器可以持续工作约42 h。
  可以得出结论:在禁止路由功能并且默认发送广播帧的时间间隔为100 ms的情况下,路由器可以持续工作约42 h;在把路由器发送广播帧的时间间隔改为2 s的情况下,路由器大约可以持续工作800 h,固件修改过程中的无线路由器工作时间对比如图4所示。



图4 固件修改过程中的无线路由器工作时间对比


  按照景区一天开放时间为10 h计算,一块电池可以给路由器供电80天,这样基本达到了我们的要求,因为两三个月给路由器电池充一次电还是比较方便的。

参考文献
[1] 李雅娴.移动互联网业务扩散模型及其应用研究[D].北京:北京邮电大学,2011.
[2] Mattbew S Gast. 802.11无线网络权威指南[M].南京:东南大学出版,2007.
[3] 黄毓琦.基于FPGA技术的802.11MAC层协议软硬件设计与实现[D].武汉:华中科技大学,2007.
[4] Linux论坛.开源无线路由器知识简介[第十四期]. [EB/OL].(200912)[201203].  

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-13 15:49 , 耗时 0.095648 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表