openwifi · 2022年08月12日 · 北京市

WiFi芯片的维密(7)WiFi6 -- 本来只关注发射机的标准终于开始考虑接收机的感受

众所周知通信标准主要规定发射端的格式,至于怎么接收和解调是看各厂自己的本事。从WiFi6开始,协议开始从数据填充机制和信号格式进行设计,以允许接收机有合理的解码延迟,保证解码性能和足够时间进行后续操作。

这可能是WiFi协议较为特有的现象。不像移动通信系统,比如LTE,接收机给发射机的ACK被调度在4ms之后,接收机可以在4ms期间内从容解码并准备ACK。WiFi协议并不像移动通信那样有集中式控制,其分布式的设计哲学要求接收机在极短的SIFS时间(10us或16us)内就要把ACK发出来,即要求接收机解码和解析延迟非常小。

从本系列前几篇文可知,如果发送的有效数据大小合适,它会恰好占满WiFi包的最后一个OFDM符号(车厢)。此时接收机的Viterbi解码器需要一直工作到最后一个OFDM符号内的最后一个bit。

根据Viterbi解码器原理,由于回朔长度(trace back length)的存在,输出bit存在一定的延迟。减小回朔长度可以降低这个解码延迟,但误码率会增大。误码率和解码延迟是一对矛盾。

WiFi6为了使接收机可以从容解码并进行后续处理,同时又不想改动已经存在了20多年的SIFS等关键MAC层参数,在标准中做了如下改进:

1. 卷积编码前的填充bit和6个0的尾bit不再像之前一样总是试图填满最后一个OFDM符号的最后一个bit,而是根据有效数据长度填至4个规定容量:最后一个OFDM符号的1/4,2/4,3/4,4/4子载波处。即解码器可以终止在最后一个OFDM符号的1/4,2/4,3/4,4/4子载波处,而不是必须工作完所有子载波。

可当填充在4/4处时不还是全部子载波吗?这时留给接收机的时间还是捉急啊。别急,还有第二个手段:包扩展(packet extension)

2. 根据最后一个OFDM符号有多满(1/4,2/4,3/4,4/4),在WiFi包之后继续发一些和WiFi包等功率的噪声信号(0/4/8/12/16us)。这样正在监听信道的其他节点以为包还没有发完,而正在解码这个包的节点在这个真正的WiFi包之后的噪声期间获得了更多的处理时间。

以上就是WiFi6中更为复杂的填充bit和解码终止位置的基本情况。

==============前方硬核,非技术人员尽快撤离。===============

举例:802.11ax,20MHz带宽,SU PPDU,单天线,RU大小242 tone(子载波),MCS 7(64QAM,5/6码率)

242 tone其中8个为导频子载波,剩下234个数据子载波。64QAM情况下,每个数据子载波承载6个编码后bit,即总共N\_CBPS=234*6=1404个编码后bit。5/6编码意味着编码前为N\_DBPS=1404*5/6=1170 bit。

标准中规定对于这种234个子载波(可承载234个QAM符号)的情况,每隔60个QAM符号为一个OFDM符号内的“4等分点”。即第60、120、180、234个QAM符号处即此OFDM符号的1/4、2/4、3/4和4/4子载波处。对应的编码后bit数分别为6*(60、120、180、234)=360、720、1080、1404,编码前bit数分别为(5/6)*6*(60、120、180、234)=300、600、900、1170。

假设要传输的AMPDU长度APEP_LENGTH=1500字节(不包括最后的EOF pading域,参见:WiFi芯片的维密(6)WiFi5时代物理层接收机Viterbi译码终止方法 - 纸飞机的文章 - 知乎https://aijishu.com/a/1060000000346165)。则进入最后一个OFDM符号的剩余有效数据数:N_excess=322 bit(16+8*1500+6-10*1170),前10个OFDM符号都满载1170个数据bit,第11个OFDM符号包含322个数据bit(等待进入编码器)。322 bit意味着它已超过1/4处(300编码前bit),填充目标设定为最接近的下一个,即2/4处,即600编码前bit。

对于这最后一个(第11个)OFDM符号,编码前填充目标为600 bit,其中包含N\_excess=322个数据bit,意味着还需要填充600-322=278 bit。278 bit包含34个整数字节(272个bit),34字节即是AMPDU的APEP\_LENGTH之后的EOF padding域所需要的构建的长度,因为MAC只负责填充整数字节。还剩278-272=6个bit需要PHY来填充。

当卷积码编码器把最后一个OFDM符号内的600个数据bit(含填充和6个0的尾bit)编码为720个编码bit,并映射为120个64QAM符号后,只能生成120个tones/子载波,还需要随机生成114个64QAM符号以凑成完整OFDM符号所需的234个tones/子载波。此即after FEC padding(编码后填充)。由于这些编码后填充已经与编码器无关,将来在接收机也不能(无需)输入解码器。

接下来就是决定这个WiFi包最后一个OFDM符号之后跟着发多长的噪声信号,即包扩展(packet extension),来假装这个WiFi包还没完。

首先允许一些牛b的厂家的高性能接收机不使用这个选项,即扩展为0。即使最后一个OFDM符号全填满有效数据,那些高性能接收机依然可以及时完成工作。因此PE属于芯片能力的一部分(当然芯片能力不止PE,包括非常多的参数)。在WiFi节点和其他节点通信之初,会互相报告芯片能力,决定发给对方时选用何种包扩展长度。

在WiFi6中,提供了一下包扩展(PE)能力/选项供选择:

a=1、2、3、4行分别代表最后一个OFDM符号填充至1/4、2/4、3/4、4/4时。

0us那一列即表示扩展始终为0。

8us那一列表示当填充至1/4、2/4时包扩展为0us,填充至3/4时发送4us的噪声扩展信号,填充至4/4时发送8us的噪声扩展信号。

16us那一列则为从前到后4种填充位置分别添加4、8、12、16us噪声扩展信号。

总的原则是:最后一个OFDM符号填的越满,则扩展信号越长,留给对方接收机的解码和后续处理时间越多。

作者: 纸飞机
原文链接:知乎

推荐阅读

更多IC设计技术干货请关注开源芯片/FPGA设计技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
2174
内容数
35
开源Wi-Fi芯片openwifi项目相关技术进展,欢迎加入
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息