涨知识了!Wi-Fi背后的原理揭秘!
最新更新时间:2022-05-09 19:21
阅读数:
来源:内容由半导体行业观察(ID:icbank)转载自公众号鲜枣课堂,作者:唐欣,谢谢。
Wi-Fi和4G/5G蜂窝网络,是我们上网时最常用的两种接入方式。
这两种接入方式,平时在上网时似乎没感觉到有什么区别。然而,它们却是完全不同的设计哲学。
蜂窝网络以基站为小区中心,基站承担了小区的中央控制、用户授权和调度。
以5G为例,基站在每个帧中广播同步信号块SSB。SSB包含了小区的PCI(物理小区标识)、基站的同步时间信息、空口信息、接入控制等参数。
手机在确认同步信号后,通过随机接入信道PRACH,发送接入前导序列Preamble,以此获取基站授权接入。不同的用户,采用不同的ZC正交序列来区分。
在接入后,无线信道分配好上下行时隙(这里特指TDD网络),基站和所有终端都在固定的时间内进行数据发送或接收。这种设计理念以基站作为小区中心,采用中心规划的设计哲学。
而Wi-Fi网络则不同。
Wi-Fi在设计时,将AP接入点(这里AP的功能等同于5G中的基站)和用户终端放在同等的位置考虑。基于802.11协议的AP和终端,采用了载波侦听多路访问/碰撞避免(CSMA/CA)的方式,来平等竞争占用无线信道。
AP和终端、终端与终端之间,在接入网络时先进行无线信道侦听。在确保信道没被占用的情况下,接入网络。设备之间并不分层级,而是采用自协调竞争接入的模式,访问网络。
从某种意义上,Wi-Fi网络是一种去中心化的设计哲学。
这两种设计哲学,各有千秋。
蜂窝网络考虑的侧重点,是多设备接入时的容量和效率。而Wi-Fi,由于其使用非授权频谱以及成本上考量,设计时更加侧重于抗干扰、低成本等特性。
两种方案都能让信道得到充分的利用。参考Aruba Networks发布的测试结果可以看出,LTE和Wi-Fi 6在MAC层面的频谱使用效率非常接近,单流、256QAM的情况下,都能到5bps/Hz以上的频谱使用效率。
图 1 LTE与Wi-Fi在频谱使用效率上的对比(勘误:图中Mbps应为bps)
接入过程与漫游
那么,没有中心控制的Wi-Fi,具体是怎么协作接入的呢?
首先第一步,是寻找Wi-Fi网络。
由于Wi-Fi网络中AP没有广播功能,终端是不可能预先知道是否有可用的网络资源以及AP参数的。
这里,终端采用了一种主动探针的方式来进行请求。
终端会在Wi-Fi的第一个20MHz频道上,发送一系列探针序列,然后等待AP回应。
如果20ms后AP没有回应的话,终端将切换到下一个20MHz频道,重复上述动作,直到收到AP的回应,确认AP的工作频段和接入参数才能接入网络。
图 2 手机进行主动扫探针搜寻信道过程
写到这里,你可能会想到,如果室内有多个Wi-Fi AP,当用户在移动,终端从一个AP切换到另一个AP时,还要重复上述的AP搜寻过程吗?
每个频道20ms,搜索一圈信道下来,需要较长时间,连接岂不是会中断?那还怎么确保视频会议或者微信语音的通信质量呢?
现在的办公室甚至现在很多家庭无线局域网,都会采用多AP mesh组网的方式,来提高网络覆盖性能。
如果每次终端切换AP时,都重新做上述的主动探针搜寻信道过程,将是会非常低效的。好在802.11工作组考虑到了小区切换的问题,在802.11k中开发了“邻居报告”的协议。
设备在接入AP后,该AP会将其附近AP的BSSID和频道信息发送给用户。这样一来,用户在需要切换到另一个AP时,就不用再扫描一遍频道了。
这样做的好处,一来是极大节省了切换时间,保证通信不出现中断。二来是给用户设备省电,设备不再需要发送一个个探针。第三,就是无线信道也得到了更加有效的利用,AP不需要频繁占用无线信道来不断回应终端的请求。
图 3 AP通过802.11k协议回应终端设备其邻近AP的信息
自我协调,信道竞争接入,避免冲突
接入网络后,AP和终端们便开始竞争无线信道的使用。
在Wi-Fi系统中,终端和AP的空口时间统一被分为空闲(Idle)和机会发送(TXOP)时段。没有数据时,设备属于空闲期,不会发送任何信息。
当设备收到数据发送请求时,设备开始进入争夺无线信道的“仲裁”(Arbitration)过程。没有中央调度器,所有设备按照数据优先级采用“公平竞争”模式来赢得信道仲裁。赢得信道的设备,将会得到6ms的机会发送窗,然后进入下一个仲裁期。
图 4 802.11中的空口时间分配
进入仲裁过程的Wi-Fi设备,首先开启信道侦听模式,RF接收机对无线信道中的802.11信号进行监测(Signal Detection)。如果侦听到的信号强度低于其SD阈值(以下图思科的方案为例,阈值为-82dBm)时,设备判定目前信道没有其他Wi-Fi设备在使用。
由于Wi-Fi使用的频段属于免授权频段,需要与非802.11设备共享使用,比如蓝牙,遥控器,微波炉等等。那么,在判断信道占用情况时,不仅仅需要能对自身802.11协议的信号进行监测,还需要对不明通信协议的功率进行检测。
这里就引出了第二个检测机制——能量检测(Energy Detection)。
ED的作用,是判断无线信道没有被其他非Wi-Fi设备占用,防止发送的有用Wi-Fi信号被淹没在噪声中,通常ED的门限比SD高20dB。
图 5 思科无线设备的SD,ED设定
细心的用户可能会发现,在网络环境不好的情况下,视频通话时经常有能听到声音但图像被卡住的现象。这其实是Wi-Fi的一种发送优化措施,用于保障最基本的服务。
Wi-Fi将数据分为四种不同的优先级,从上到下分别为语音(VO),视频(VI),最大努力(BE)和背景(BK)。每一个级别,都会附上不同的AIFS值。AIFS值越低,发送优先级越高。
在AIFS时间结束之后,设备便进入了竞争窗口(CW),设备开始侦听无线信道,同时开始倒计时准备发送。
当CW倒计时结束时,如果设备发现信道正在占用,设备便自动进入下一个仲裁期。如果设备发现信道处于空闲状态,便开始占用信道,发送数据。
下图这个例子,在第一个仲裁期中,IPad的CW时间最短,竞争信道成功,获得了发送权。在IPad数据发送后,一轮新的仲裁开始,手机在CW结束后,发现信道没有被占用,获得了发送权。最终,无线AP赢得了第三轮仲裁,获得发送权。
图 6 多设备信道竞争过程
读到这里,你可能会发现,这个竞争过程在设备增多的情况下,效率会明显降低,每个设备的等待发送时间将会变长很多。
实际体验中,你可能也注意到了,在Wi-Fi设备多的公共环境,比如商场、学校中,经常需要等待很长时间,才能发送或接收数据。
那么,很有可能是网络还没有升级到最新的Wi-Fi 6。
Wi-Fi 6可以说是Wi-Fi行业过去十多年中最大的一次革新。具体Wi-Fi 6是通过哪些新特性来解决多设备下网络阻塞的问题呢?我会在下一期的文章中给大家一一道来。
(全文完)
本文作者唐欣博士,目前担任Spectrum Lab技术总监。
参考文献
[1] Aruba Networks Blog – Understanding 802.11 medium contention.
[2] Cisco White Paper- IEEE 802.11ax: The Sixth Generation of Wi-Fi.
[3] Extreme Networks – The Road to AP discovery
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第3035内容,欢迎关注。
推荐阅读
半导体行业观察
『半导体第一垂直媒体』
实时 专业 原创 深度
识别二维码,回复下方关键词,阅读更多
晶圆|集成电路|设备|汽车芯片|存储|台积电|AI|封装
回复 投稿,看《如何成为“半导体行业观察”的一员 》
回复 搜索,还能轻松找到其他你感兴趣的文章!
推荐帖子
- DSP2812的软件锁相方法
- 1.锁相锁相的意义是相位同步的自动控制,能够完成两个电信号相位同步的自动控制闭环系统叫做锁相环,简称PLL.3种软件锁相的方法:指针归零法,先调频后调相法,调频调相同时进行法。2.指针归零法:指针归零法是最简单的软件锁相方法,在捕获输入电压信号过零点的Cap1中断内,直接将发正弦点的指针归零,以保证在输入电压信号过零时DSP发出的输出基准也正好过零,从而实现相位同步。指针归零法适用于输入频率稳定的情况。3.先调频后调相法:正弦基准表由n
- 灞波儿奔 微控制器 MCU
- 求助无线发送接收
- 我毕业设计做一个无线接收检测温度和压力信号,可不知道无线模块怎么做,有大侠帮忙吗?求助无线发送接收去市场买个433M的无线模块,有串口形式的,直接像操作串口一样的操作。也可以自己买芯片,一般用的都是SPI接口,看看资料就行,其实不难,但是传输的数据量不大,而且距离也不远,最多几百米;如果距离很远,数据量很大那就只能用GPRS/CDMA了NRF2401NRF24L01NRF905CC1100CC2500无线收发模块编程指南RF903特点:(1)433Mhz开放ISM频
- sucuiqin 嵌入式系统
- 嵌入式ARM开发环境下,设置堆栈指针和清理BSS段的意义
- 以前稍微写过操作系统上的C程序,感受不出来:BSS段,堆栈的意义。到了在单片机上写程序也没有考虑这些问题。但是到了ARM上环境似乎没有那么简单了,C的环境要自己来创建,不然就不能用。这也深刻的感受到了C语言中原来难以理解的概念。裸机建立C语言环境-设置堆栈指针这个是使用C语言的首要条件,不过这个就是指定一个sp指针就可以了,很简单的。ldrsp,=4096。裸机建立C语言环境-清理BSS段如果C语言中用到的全局变量或者静态变量,这个编译的时候是把它们放到了BSS段,这个段在内存
- xyd2018 嵌入式系统
- io端口lvbo
- modulexc609_in_lvbo(clk_in,pin_n,pin_n_lvbo);//inputclk_in,pin_n;outputregpin_n_lvbo;reglvbo_cont;always@(posedgeclk_in)beginlvbo_cont={lvbo_cont,pin_n};case(lvbo_cont)4'b1111:pin_n_lvbo=1'b1;
- gotofly21 FPGA/CPLD
- altera soc hps-to-fpga 操作问题
- #./led_testUnhandledfault:externalabortonnon-linefetch(0x018)at0x76101040Buserrorarm端执行程序出现以上错误,求指导。C程序在gsrdfpga工程中能正常使用,自己新建fpga工程测试错误。alterasochps-to-fpga操作问题总线错误,是不是地址访问错了?检查自已的设备树 谢谢,你好设备树需要做什么设置吗 这个地址是根据手册上映射的,就是很简单的
- tc317891209 Altera SoC
- 集成电路基础知识
- ++集成电路++ 自本世纪初,真空电子管发明后,至今电子器件至今已经历了五代的发展过程。集成电路(IC)的诞生,使电子技术出现了划时代的革命,它是现代电子技术和计算机发展的基础,也是微电子技术发展的标志。 集成电路规模的划分,目前在国际上尚无严格、确切的定义。在发展过程中,人们逐渐形成一种似乎比较一致的划分意见,按芯片上所含逻辑门电路或晶体管的个数作为划分标志。一般人们将单块芯片上包含100个元件或10个逻辑门以下的集成电路称为小规模集成电路;而将元件数在100个以上、1000
- zdr 嵌入式系统