嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

无线个人区域网络(Wireless Personal Area Network,WPAN)(四):WiFi

之前的两编Blog都说了一些关于Zigbee和蓝牙的示范及技术信息之后,相信大家都会无线传输技术有一定的了解,可能你会观察得到虽然蓝牙各方面都比Zigbee优胜 (这样说可能会有些不公平,因为Zigbee设计的目标与蓝牙不一样,产品的表现当然都会不相同),例如蓝牙会比Zigbee更方便于连接,因为有更多的设备支持蓝牙技术;而且速度更快,可以用来传输图片等的细小档案。但是无论是Zigbee或蓝牙技术,它们的传输速度和传输距离都追不上现时的要求,例如视讯串流等,所以WiFi就用以填补这个技术需求。

WiFI

WiFi(Wireless Fidelity,无线保真技术)即IEEE 802.11标准,是一种短程无线传输技术,能够在数百米范围内支持互联网接人的无线电信号。IEEE 802.11的设备已安装在市面上的许多产品,如个人计算机,游戏机,MP3播放器,智能型手机,打印机以及其他外围设备,和新笔记本电脑。

Wi-Fi联盟成立于1999年,当时的名称叫做Wireless Ethernet Compatibility Alliance(WECA)。在2002年10月,正式改名为Wi-Fi Alliance。WiFi的第一个版本发表于1997年,其中定义了介质访问接入控制层(MAC层)和物理层。1999年又增加了IEEE 802.11a和IEEE 802.11g标准。其传输速率最高可达54 Mb/s。能够广泛支持数据、图像、语音和多媒体等。

802.11标准和补充

    • 802.11,1997年,原始标准(2Mbit/s,2.4GHz频道)。
    • 802.11a,1999年,物理层补充(54Mbit/s,5GHz频道)。
    • 802.11b,1999年,物理层补充(11Mbit/s,2.4GHz频道)。*

2007年

    • 802.11c,符合802.1D的媒体接入控制层(MAC)桥接(MAC Layer Bridging)。
    • 802.11d,根据各国无线电规定做的调整。
    • 802.11e,对服务等级(Quality of Service, QoS)的支持。 Clause 9
    • 802.11f,基站的互连性(Interoperability)。
    • 802.11g,物理层补充(54Mbit/s,2.4GHz频道)。 Clause 18
    • 802.11h,DFS /TPC,信道(5GHz频段)。
    • 802.11i,安全和鉴权(Authentication)方面的补充。 Clause 8

2008年以后

    • 802.11k,
    • 802.11n,2009年,导入多重输入输出(MIMO)和40Mbit信道宽度(HT40)技术,基本上是802.11a/g的延伸版。
    • 802.11r,
    • 802.11t,
    • 802.11u,
    • 802.11v,
    • 802.11w,
    • 802.11z,

2011年以后

      • 802.11ac,物理层补充(1×1 MIMO,433Mbit/s,5GHz频道),80Mbit信道宽度。

WiFi不是只是用来上网吗?

大家可以会有一个疑问:WiFi明明就是大家常用想上网,游览youtube等网站的技术,与WPAN有什么关系呢?虽然Wi-Fi在一般消费者的心目中还是无线局域网络技术,但其实WiFi亦都拥有组成WPAN的能力,近年Wi-Fi联盟亦都制订了一套可以建立点对点(Peer-to-peer, P2P)连接的标准协议Wi-Fi Direct(但说穿了这亦都是基于IEEE 802.11技术之一),直接与蓝牙直接竞争。

WiFi优势

蓝牙的电波覆盖范围很小,半径大约只有15 m,而WiFi的半径可达100 m,甚至可以覆盖整栋大楼。WiFi的传输速度很快:最高可达54Mb/s,符合现时的需求。在网络覆盖范围内,允许用户在任何地点登入网络,并随时随地享受网上服务、视频串流、视频会议、网络游戏等服务。其次,IEEE 802.11规定的发射功率不可超过100 mW,而手机的发射功率约200 mW~1 W,手持式对讲机高达5 W。与后者相比,WiFi产品的辐射更小。现时WiFi应用现在已经非常普遍,支持WiFi的电子产品越来越多,像手机、MP4、计算机等,基本上已经成为了主流标准配置。

Wi-Fi Direct

提到WiFi与蓝牙的关系,尤其是在WiFi推出WiFi Direct技术之后,两者之间的火药味便更浓。


蓝牙与Wi-Fi Direct技术比较


特性


Bluetooth


Wi-Fi Direct


距离


10~20米


100米以上


带宽


3Mbit/s(BT3.0+HS虽然利用WLAN传输较大档案, 但因只支持802.11g,目前只能达到54Mbit/s)


300Mbit/s


耗电量


较小


较大


配对方式


PIN码或配对钮


WPS、PIN码或配对钮


搜寻服务


SDP


Bonjour、UPnP


应用程序


Bluetooth Profile如FTP、A2DP、HFP等等


TCP/IP网络应用程序如FTP、HTTP、DLNA等等

 

与蓝牙相比,Wi-Fi Direct除了耗电量较大的问题外,在距离、带宽两个项目上均有极大的优势。另外,蓝牙对于上层的应用程序有各种的标准定义,例如文件传输使用FTP,立体声传输使用立体声音讯传输协议(2DP),Wi-Fi Direct并未规范上层应用程序的标准,而是直接采用各种TCP/IP网络应用程序。Wi-Fi Direct除了改善以往Wi-Fi联机不方便的问题外,因为装置之间可以直接联机而不必透过AP转送封包。  

Wi-Fi联盟希望藉由市场上庞大的装置量及Wi-Fi Direct标准的制定,让Wi-Fi技术能更顺利地进入消费电子市场,但在这之前仍然有一些障碍必须克服。第一个是耗电量较大的问题,这会限制Wi-Fi Direct在可携式电子装置上的应用范围,例如手机的电池能否支持连续两个小时的影片传输并播放到电视上。第二个是Wi-Fi Direct需要更多的运算资源,因此利用Wi-Fi模块本身来实现整个Wi-Fi Direct的协议,对于许多运算能力有限的电子产品是是必要的。最后一个问题就是因为Wi-Fi Direct对于上层的应用程序没有标准规范,完全开放让公司自行发展,虽然弹性很大,但是容易造成不兼容,使用者无法像蓝牙一样很简单地传送档案。由目前各家芯片公司的发展来看,这个混乱的情况可能会继续下去。

Wifly RN-XV示范

这款RN-XV WiFly 模块是一款WiFi模块,是专门为那些想将他们现有的802.15.4架构转移到TCP/IP平台而不需要重新设计现有的硬件的客户设计的。换句话说,如果你的项目是之前是设置为XBee的,而你现在想将它移到WiFi网络标准,你只要将它插在同样的插座里而不需要其他硬件设备。

今次的示范将会基于WebClient范例,这个功用就是将在Google.com上找到的搜索结果透过串行端口传送到你的计算机。

首准备的硬件有:一块面包板,一块Arduino及一块RN-XV WiFly 模块。之后就要汇入WiFly Serial Library以及NewSoftSerial, Streaming, Time and PString libraries(http://arduino.cc/en/Reference/Libraries)到你的Arduino library文件夹内并重开Arduino IDE,现在你应该可以看到library 和一些范例。

下一步将会说明一下硬件的接驳方法:

接驳WiFly Tx 引脚到Arduino的 Rx引脚,接驳WiFly Rx 引脚到Arduino的 Tx引脚,接驳WiFly VDD-BATT引脚到Arduino的3.3v引脚,WiFly GND引脚与Arduino GND引脚连接起来。

接下来的工作比教简单,就是将以下的程序代码写入Arduino,运行后开启串行端口就会见到回传的结果。


#include "WiFly.h"
#include "Credentials.h"
#include
SoftwareSerial SerialRNXV(2, 3);

byte server[] = { 74, 125, 224, 50}; // Google的ip

// client(server, 80);

WiFlyClient client("google.com", 80);

void setup() {
  Serial.begin(9600);
  SerialRNXV.begin(9600);
 
  WiFly.setUart(&SerialRNXV);
  Serial.println("begin");
  WiFly.begin();
  Serial.println("began");
  
   //if (!WiFly.join(ssid, passphrase, WEP_MODE)) {
   if (!WiFly.join(ssid
   )) {

     Serial.println("Association failed.");
    while (1) {
      // Hang on failure.
    }
  }  

  Serial.println("connecting...");

  if (client.connect()) {
    Serial.println("connected");
    client.println("GET /search?q=arduino HTTP/1.0");//搜索”arduino HTTP/1.0”
    client.println();
  } else {
    Serial.println("connection failed");
  }
  
}

void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);//将结果传回计算机
  }
  
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
      ;
  }
}

Hello everyone! :) I’m 3rd-year undergraduate student from the Department of Electronic & Computer engineering, at the Hong Kong University of Science and Technology. During my studies, I have taken electronics courses such as Electro-Robotics and Embedded System Design and found it fascinating to learn how to get all of the components of such systems, a robotic car in my case, to work together. It is very satisfying to see my car follow the track and perform its task perfectly. It’s like seeing my creation come alive! Through this Designspark Blog, I would like to share what I have learnt in the field of electronics with all of you and also introduce you to some cool electronics news and products. As a student, I understand how painful it is to read through papers that I can barely understand a word of it. I will try to explain everything is a simple way so that anyone can understand it. I hope everyone can share my joy in building electronics gadgets. If you find my blog useful, please share it with your friends! 大家好!:) 我是来自香港科技大学,电子及计算器工程学系三年级的学生。在我过去两年多的学习中,我选修了不少电子课程,当中包括电子机械人及嵌入式系统设计。我发觉在学习如何使不同零件去拼凑成一个嵌入式系统,例如一辆智能电动车,的过程中,不单只令我获益良多并且在完成后更能获得很大的满足感,所以在这一方面我一直都很感兴趣。 透过Designspark博客,我想分享我在电子领域内所学到的点滴,也想为您介绍一些很酷的电子新闻和产品。作为一名学生,我非常明白钻研一份堆满难明生字的文章是多么痛苦,我会尝着用简单明了的字眼去解释,使任何人都可以理解。 我希望我能透过这个管道去分享制作电子小手作的有趣之处。如果你觉得我的博客有趣又或者很有用,请与您的朋友分享!
DesignSpark Electrical Logolinkedin