相关申请的交叉引用
本申请要求于2018年11月19日提交的美国临时专利申请62/769,351的权益,其公开内容通过引用合并于此。
本公开总体上涉及无线通信,并且具体地涉及用于填充触发帧以满足接收器的最小处理时间要求的方法和系统。
背景技术:
一些无线局域网(wlan)通信系统支持用于与多个用户同时通信的多用户方案。来自多个客户站的同时的上行链路传输可以通过接入点(ap)向这些客户站发送合适的触发帧来发起。触发帧应当由接收方接收器处理,以便客户站可以用同时的上行链路传输进行响应。ap应当控制触发帧的长度,以允许在客户站的接收器处留出足够的处理时间。wlan中的上行链路多用户操作例如在2018年的题为“p802.11axtm/d3.3-ieeedraftstandardforinformationtechnology-telecommunicationsandinformationexchangebetweensystemslocalandmetropolitanareanetworks-specificrequirementspart11:wirelesslanmediumaccesscontrol(mac)andphysicallayer(phy)specifications,amendmentenhancementsforhighefficiencywlan”(p802.11axtm/d3.3-ieee信息技术标准草案-系统局域网和城域网之间的电信和信息交换-特定要求第11部分:无线lan媒体访问控制(mac)和物理层(phy)规范,针对高效wlan的修订增强)的ieee802.11ax标准草案中规定,其通过引用合并于此。
以上描述是本领域中相关技术的一般概述,并且不应当被解释为承认其包含的任何信息构成本专利申请的现有技术。
技术实现要素:
本文中描述的实施例提供了一种包括媒体访问控制(mac)处理器和物理层(phy)处理器的无线局域网(wlan)接入点(ap)。mac处理器被配置为:生成触发帧,该触发帧至少包括(i)目的地为一个或多个相应wlan客户站(sta)的一个或多个用户信息字段,以及(ii)包括一个或多个填充位的填充字段;确定在被插入到填充字段中并且触发帧被编码以用于传输之后满足由sta施加的处理时间约束的所需要的填充位数;并且将所确定的所需要的数目的填充位插入填充字段中。物理层(phy)处理器被配置为:从触发帧生成分组,包括根据纠错码(ecc)将包含填充字段的触发帧编码为具有取决于填充字段中的填充位数的cw长度的一个或多个码字(cw);从分组的一个或多个cw生成多个调制符号;并且向sta传输调制符号。
在一些实施例中,mac处理器被配置为在生成触发帧之前,从参与要由触发帧触发的同时上行链路传输的一个或多个相应sta接收多个处理时间约束值,并且基于多个所接收的处理时间约束值中的最长值来确定所需要的填充位数。在其他实施例中,mac处理器被配置为在选择最长值之前,基于sta的用户信息字段在触发帧中的相应位置来调节一个或多个所接收的处理时间约束值。
在实施例中,phy处理器被配置为用应用了二进制卷积码(bcc)的ecc对触发帧进行编码。在另一实施例中,mac处理器被配置为通过计算到达最后的用户信息字段的最后的bcc编码位被映射到的符号的远边界所需要的部分填充位数,来确定所需要的填充位数。在又一实施例中,phy处理器被配置为用应用了低密度奇偶校验(ldpc)码的ecc对触发帧进行编码。在又一实施例中,mac处理器被配置为通过计算到达对最后的用户信息字段的最后一位进行编码的ldpc码字的最后的编码位被映射到的符号的远边界所需要的部分填充位数,来确定所需要的填充位数。
在一些实施例中,mac处理器被配置为通过评估对编码方案的预期修改来确定所需要的填充位数,该编码方案使用通过添加填充位而导致的ecc而被应用,该修改改变触发帧的长度。在其他实施例中,处理时间约束指示sta所需要的附加处理时间,并且mac处理器被配置为独立于处理时间约束来确定所需要的部分填充位数。
在实施例中,mac处理器被配置为使用迭代过程来确定所需要的填充位数,该迭代过程迭代地增加所需要的填充位数,直到满足处理时间约束为止。在另一实施例中,ap支持空时块编码(stbc)操作模式,并且mac处理器被配置为根据stbc模式来确定所需要的填充位数。
根据本文中描述的实施例,还提供了一种用于通信的方法,该方法包括:在包括媒体访问控制(mac)处理器和物理层(phy)处理器的无线局域网(wlan)接入点(ap)中,由mac处理器生成触发帧,该触发帧至少包括(i)目的地为一个或多个相应wlan客户站(sta)的一个或多个用户信息字段,以及(ii)包括一个或多个填充位的填充字段。由mac处理器确定在被插入到填充字段中并且触发帧被编码以用于传输之后满足由sta施加的处理时间约束的所需要的填充位数,并且将所确定的所需要的数目的填充位插入到填充字段中。由phy处理器从触发帧生成分组,包括根据纠错码(ecc)将包含填充字段的触发帧编码为具有取决于填充字段中的填充位数的码字(cw)长度的一个或多个cw。由phy处理器从分组的一个或多个cw生成多个调制符号,并且向sta传输调制符号。
通过以下结合附图对实施例的详细描述,可以更全面地理解本公开,在附图中:
附图说明
图1是示意性地图示根据本文中描述的实施例的无线通信系统的框图,其中接入点(ap)填充触发帧,该触发帧触发多个客户站(sta)的同时上行链路传输,以用于满足客户站(sta)的处理时间约束;
图2a和图2b是示意性图示包括触发帧的部分分组、以及通过使用二进制卷积码(bcc)或低密度奇偶校验(ldpc)编码方案对部分分组进行编码而得到的对应的编码位和ofdm符号的图;
图3是示意性地图示根据本文中描述的实施例的用于填充触发帧以满足处理时间约束的方法的流程图;以及
图4是示意性地图示根据本文中描述的实施例的用于迭代地确定触发帧中满足处理时间约束所需要的填充长度的方法的流程图。
具体实施方式
本文中描述的实施例提供了用于通过确定触发帧中满足接收器的最小处理时间要求所需要的填充位数来填充目的地为多个接收器的触发帧的方法和系统。触发帧可以由无线lan(wlan)设备的发射器广播,以用于发起客户站的同时上行链路传输。确定触发帧中的填充位数基于由每个客户站报告的该客户站处理触发帧所需要的持续时间。触发帧长度可以通过适当地选择填充位数来控制。当填充位数太小时,由于接收触发帧的至少一个客户站将无法按时准备就绪,因此同时上行链路传输可能会失败。另一方面,使用比必要的更多的填充位数会降低带宽使用效率。
在一些wlan通信系统中,接入点(ap)与一个或多个wlan客户站(sta)通信。从ap到sta的传输方向称为下行链路(dl),而从sta到ap的传输方向称为上行链路(ul)。上述ieee802.11ax标准使用正交频分多址(ofdma)技术来规定dl和ul传输,在该技术中,为传输分配了被称为资源单元(ru)的子载波子集。
ieee802.11ax标准支持来自多个sta的协调ul传输,这些ul传输是由ap广播包含触发帧的特殊类型的分组来发起的。触发帧包括sta生成响应ul传输所需要的信息,诸如ul分组的持续时间、ru分配、调制方法、有效负载长度等。
接收触发帧的每个sta处理触发帧以提取其生成ul响应传输所需要的信息。由于sta可以具有不同的处理和存储能力,因此不同的sta可能需要不同的持续时间来处理触发帧以及生成响应分组。
在一些实施例中,在广播触发帧之前,ap从参与同时ul传输的多个sta接收相应处理时间要求,从这些处理时间要求中,ap可以例如基于由sta报告的最长时间要求来导出共同的处理时间约束。通过在触发帧中插入一个或多个填充位,触发帧的传输持续时间增加,这允许为sta提供更长的处理时间。然而,为了有效地使用通信链路,期望添加仍然满足处理时间约束的最小填充位数。
确定所需要的填充位数并非易事。触发帧通常根据纠错码(ecc)被编码为一个或多个码字(cw)。然而,向触发帧添加填充位可以导致修改应用于包括填充位的触发帧的ecc编码方案,这可能导致违反处理时间约束。例如,当码字长度取决于帧长度并且因此还取决于所添加的填充位数时,编码方案可以取决于填充。作为另一示例,填充位数可以影响作为编码方案的一部分而应用的增信删余(puncturing,又译为穿孔)和/或缩短方案。
在一些实施例中,ap包括媒体访问控制(mac)处理器和物理层(phy)处理器。mac处理器生成触发帧,该触发帧至少包括(i)目的地为一个或多个相应sta的一个或多个用户信息字段,以及(ii)包括一个或多个填充位的填充字段。mac处理器确定在填充位被插入到填充字段中并且触发帧被编码以用于使用ecc进行传输之后满足由sta施加的处理时间约束的所需要的填充位数。mac处理器将所确定的所需要的数目的填充位插入到填充字段中。phy处理器从触发帧生成分组,包括根据基础ecc对包含填充字段的触发帧进行编码。phy处理器从分组的一个或多个cw生成多个调制符号,并且向sta传输调制符号。
在一些实施例中,在生成用于触发客户站的同时ul传输的触发帧之前,mac处理器从一个或多个相应sta接收多个处理时间约束值,并且基于多个所接收的处理时间约束值中的最长处理时间约束值来确定所需要的填充位数。
在一些实施例中,phy处理器被配置为用二进制卷积码(bcc)对触发帧进行编码。在这样的实施例中,mac处理器通过计算到达最后的用户信息字段的最后的bcc编码位被映射到的符号的远边界所需要的部分填充位数,来确定所需要的填充位数。
在其他实施例中,phy处理器被配置为用低密度奇偶校验(ldpc)码对触发帧进行编码。在这些实施例中,mac处理器通过计算到达对最后的用户信息字段的最后一位进行编码的ldpc码字的最后的编码位被映射到的符号的远边界所需要的部分填充位数,来确定所需要的填充位数。
在实施例中,例如由于在一个或多个cw中省略了一个或多个编码位的传输,mac处理器通过评估对使用ecc而应用的编码方案的预期修改来确定所需要的填充位数。例如,可以通过对编码位应用增信删余、缩短或两者来省略编码位。
在一些实施例中,处理时间约束指示sta所需要的附加处理时间,并且mac处理器独立于处理时间约束来确定所需要的部分填充位数。例如,如上所述,部分填充位数对于到达某个符号可能是必需的。在一些实施例中,mac处理器使用迭代过程来确定所需要的填充位数,该迭代过程迭代地增加所需要的填充位数,直到满足处理时间约束为止。在迭代过程中,添加的填充位数可以相同或不同。
在一些实施例中,ap支持空时块编码(stbc)操作模式,其中ap经由多个天线传输数据流的多个副本。在这样的实施例中,mac处理器可以取决于ap是否以stbc模式进行操作来确定所需要的填充位数。
在所公开的技术中,将填充位添加到触发帧以满足由客户端sta施加的处理时间约束。触发帧的目的地为多个客户站,这些客户站响应于触发帧而传输同时ul传输。描述了用于计算足以满足约束的填充位数的几种方法。一些公开的技术直接或间接地考虑了由于添加的位而导致的对所应用的编码方案的可能修改。在评估所需要的最小填充位数时,不同的方法可能导致不同的精度。
图1是示意性地图示根据本文中描述的实施例的无线通信系统20的框图,其中接入点(ap)24填充触发帧,该触发帧触发多个客户站(sta)28的同时上行链路传输,以用于满足客户站(sta)的处理时间约束。
在示例实施例中,通信系统20包括根据ieee802.11系列标准(例如,上述ieee802.11ax标准)进行操作的无线局域网(wlan)通信系统。
ap24包括基带(bb)处理器30,bb处理器30包括mac处理器32和phy处理器36。mac处理器32和phy处理器36中的每个包括各种元件,如下所述。在下面的描述中,mac处理器32在本文中也被称为“mac模块”,并且phy处理器36在本文中也被称为“phy模块”。ap24还包括耦合到一个或多个天线42的射频前端(rf-fe)40。在一些实施例中,ap24以分层方案处理数据,其中mac处理之后是在下行链路方向上的phy处理,并且phy处理之后是在上行链路方向的mac处理。mac模块32和phy模块36在本文中也分别称为“mac处理器”和“phy处理器”。
在下面的描述中,在mac层进行处理的数据单元称为“帧”,而稍后在phy进行处理的数据单元称为“分组”。在ieee802.11系列标准中,例如使用mac模块32在mac层进行处理的帧称为mac协议数据单元(mpdu)。例如由phy模块36在phy层进行处理的分组称为plcp协议数据单元(ppdu)。plcp指的是phy层的物理层会聚过程(plcp)子层。plpc子层以相当于mpdu的plcp服务数据单元(psdu)的形式处理数据,并且通过将前导码和phy报头信息附加到psdu来生成ppdu。前导码通常在接收器处用于同步和信道估计。前导码还包含处理分组所需要的信息,诸如所使用的调制编码方案(mcs)、空间流的数目nss、带宽信息等。
在通信系统20中,ap24与其附近的一个或多个sta28无线通信。在一些实施例中,例如,如在ieee802.11ax标准中规定的,ap24通过在下行链路方向上广播dl触发帧44来发起多个sta28的同时上行链路传输。ap24通常在下行链路ppdu(未示出)内传输dl触发帧44。响应于接收到dl触发帧,参与ul传输的sta28同时传输相应上行链路ppdu48。dl触发帧44携带sta用来生成上行链路ppdu48的信息,如下所述。
在一些实施例中,mac模块32包括生成mac触发帧52的触发帧构造器50。注意,dl触发帧52是mac触发帧52的传输版本。在图1的示例中,触发帧构造器50根据在ieee802.11ax标准中规定的触发帧格式来生成mac触发帧52。在一些实施例中,触发帧构造器50支持在mac层生成各种类型的帧。
mac模块32向phy模块36提供触发帧52,phy模块36包括纠错(ecc)模块56和正交频分复用(ofdm)模块58。在一些实施例中,ecc模块56支持多个可选择的ecc方案。在图1的示例中,ecc模块56支持二进制卷积码方案和低密度奇偶校验(ldpc)编码方案。备选地,也可以使用任何其他合适的ecc方案。例如在ieee802.11ax标准中,规定了在phy模块36中适用的bcc方案和ldpc方案。所采用的实际ecc方案通常取决于各种参数,诸如要编码的有效负载位数、传输数据速率、所使用的调制方案等。
在下行链路方向上,phy模块36从mac模块32接收诸如mac触发帧52等mac帧以进行处理。phy模块通常将信息附加到mac层帧,以产生包括报头和有效负载部分的分组。ecc模块56根据所选择的基础ecc方案对分组有效负载(有效负载部分包括例如mac触发帧52)进行编码。ofdm模块58接收具有编码的有效负载的分组,并且将分组位映射为ofdm符号序列。在一些实施例中,ofdm模块首先将分组位映射为预定义星座图(constellation)中的各个点,例如,正交幅度调制(qam)星座图,并且然后将星座点映射为ofdm符号。在当前上下文中,位与符号之间的映射也称为“调制”操作。在一个实施例中,ofdm模块58还使用数模转换器(dac)(未示出)将ofdm符号转换为模拟信号。rf-fe40将模拟信号上变频到期望的rf频带,并且经由一个或多个天线42传输上变频后的信号。
在上行链路方向上,rf-fe40经由天线42从一个或多个sta28接收rf信号。例如,rf信号可以携带由sta使用通过ecc模块56可解码的ecc编码的ppdu48。rf-fe40将所接收的rf信号下变频到基带(或某个中间频率),并且使用模数转换器(adc)(未示出)将下变频后的信号转换为数字形式。ofdm模块58对下变频后的信号中携带的ofdm符号进行解调以恢复编码的ppdu。ecc模块56对编码的ppdu的ecc进行解码以恢复ppdu数据,phy模块36将该ppdu数据提供给mac模块32。
为了清楚起见,已经将上述的mac和phy下行链路和上行链路处理简化为仅包括理解所公开的技术所需要的任务。在实践中,mac模块和phy模块可以应用各种附加的处理、任务,诸如加扰、交织、编码后填充等。
在一些实施例中,mac模块32还包括处理时间约束60和mac填充模块64。处理时间约束60保存指示客户端sta处理dl触发帧44所需要的处理时间的值(例如,在存储器或寄存器中,未示出)。在一些实施例中,在广播给定触发帧(例如,dl触发帧44)之前,ap24从参与即将进行的同时ul传输的sta28接收这些sta的相应处理持续时间。在一个实施例中,为了允许在所有参与的sta处提供足够的处理时间,mac模块32将处理时间约束60的值计算为所报告的多个处理持续时间中的最长持续时间。
基于处理时间约束60,mac填充模块确定满足处理时间要求所需要的填充位数。触发帧构造器50将由mac填充模块64确定的填充位数插入到mac触发帧的填充字段66中。如上所述构造并且作为dl触发帧44广播的mac触发帧52用多个填充位来填充,该多个填充位允许每个参与的sta提供对触发帧的足够的处理时间,以使得sta用同时ul传输来进行响应。
mac触发帧52可以以各种方式来格式化。在图1的示例中,mac触发帧52根据ieee802.11ax规范进行格式化,其中mac触发帧包括mac报头,该mac报头包括帧控制字段、持续时间字段、以及指定寻址信息的ra和ta字段。mac触发帧52还包括公共信息字段、一个或多个用户信息字段62、填充字段66以及用作错误检测码的帧检查序列(fcs)字段。mac模块例如通过在mac触发帧52的所选择的先前字段上计算合适的循环冗余校验(crc)码来计算fcs字段的值。例如,crc计算通常不包括服务(service)位字段,该字段由phy模块稍后添加。
公共信息字段包括寻址到所有客户端sta的信息,诸如上行链路ppdu48的长度(以微秒为单位)、要用于传输上行链路ppdu48的带宽等。每个用户信息字段62包括寻址到特定sta的信息,诸如针对该sta的ru分配、所使用的ecc方案(诸如bcc或ldpc)、和调制编码方案(mcs)。填充字段66包含由mac填充模块64计算的一个或多个填充位。备选地,在零填充的情况下,可以从mac触发帧52中省略填充字段。
注意,通过添加填充位,在用户信息字段之后的mac触发帧部分的传输时间增加,这允许客户端sta有更多时间来处理dl触发帧以及生成上行链路响应ppdu。下面将详细描述用于确定满足处理时间约束所需要的填充位数的方法。
基于ieee802.11ax标准的图1中的mac触发帧52的格式以示例的方式给出,并且还可以使用其他合适的mac触发帧格式。在描述mac触发帧52的格式时,为了清楚起见,已经省略了与理解所公开的技术无关的细节。
mac模块与phy模块之间的任务划分以示例的方式给出。在备选实施例中,也可以使用其他任务划分。
响应于接收到由ap24广播的dl触发帧44,每个sta28处理所接收的触发帧以提取生成相应上行链路ppdu48所需要的信息。具体地,sta28从相关用户信息字段(62)中提取用户特定信息。注意,每个sta可以具有不同的处理和存储能力,并且因此不同的sta可能需要不同的持续时间来处理触发帧以及生成响应ppdu。此外,考虑到mac触发帧52中的用户信息字段62的序列,用户信息字段在该序列中出现得越晚,与其他sta相比,针对对应sta剩余的处理时间越少。
对于同时上行链路响应,例如在ppdu48的上行链路传输开始之前,要求所有sta完成对dl触发帧的处理并且按时产生ppdu。在一些实施例中,mac模块32基于由参与同时ul传输的sta报告的最长时间要求来确定用于满足所有sta的处理时间要求的处理时间约束60。
图1的通信系统20和ap24的配置以示例的方式给出,并且可以使用其他通信系统和ap配置。为了清楚起见,已经从图中省略了对于理解所公开的技术不是必需的ap的元件。
在图1所示的示例ap配置中,mac处理器32和phy处理器36被实现为分离的集成电路(ic)。然而,在备选实施例中,mac处理器和phy处理器可以集成在单个多芯片封装(mcp)或片上系统(soc)中的分离的半导体管芯上(例如,作为bb处理器30的一部分),并且可以通过内部总线互连。
在一些实施例中,ap24的一些或全部元件(诸如mac处理器32和phy处理器36)用硬件实现,诸如使用一个或多个现场可编程门阵列(fpga)或专用集成电路(asic)。在备选实施例中,某些元件(诸如触发帧构造器50、mac填充模块64、ecc模块56和ofdm模块58中的一个或多个)在可编程处理器中实现,该可编程处理器用软件编程以执行本文中描述的功能。该软件可以例如通过网络以电子形式下载到处理器,或者可以备选地或附加地提供和/或存储在诸如磁性、光学或电子存储器等非瞬态有形介质上。
上述ieee802.11ax标准在第27.5.3.2.3节中规定了一种朴素填充方案,在该方案中,表示为“mintrigproctime”的时间约束可以被配置为0、8或16微秒或者等效于0、2或4个ofdm符号(假定ofdm符号持续时间为4微秒)。这种朴素填充方案基于通过将对应ofdm符号数乘以每个符号的位数来将mintrigproctime的值转换为填充位数。
如将在下面详细描述的,就编码位被映射到的ofdm符号而言,“b_sym”表示包含以下各项的ppdu的ofdm符号:(i)当使用bcc方案时,最后的用户信息字段(62)的最后的编码位,或者(ii)当使用ldpc方案时,对用户信息字段的最后一位进行编码的ldpc码字的最后的编码位。在当前上下文中,将使用bcc方案进行编码的位统称为单个码字。
与朴素填充方案不同,在所公开的实施例中,在确定填充长度时考虑通过添加填充位而导致的对编码方案的修改,如本文中解释的。在上述朴素填充方案中,做出如下假定,可以在添加任何填充位之前,直接从要编码的有效负载位数来确定b_sym。然而,例如当基础编码方案取决于待编码的总有效负载位数(包括填充位的数目)时,该假定并不总是有效。例如,与不进行增信删余的编码相比,应用增信删余的编码方案在用ecc进行编码之后去除一些奇偶校验位,这可能导致b_sym在ofdm符号序列中的位置不同。作为另一示例,在将ldpc编码为多个码字时,码字长度、对最后的用户信息字段的最后一位进行编码的码字的索引以及b_sym可以取决于要编码的总有效负载位数(包括填充位,其位数尚未确定)。
下面详细描述在上述朴素填充方案之上进行改进的填充方案。
图2a和图2b是示意性地图示包括触发帧52的部分分组70、以及通过使用二进制卷积码(bcc)或低密度奇偶校验(ldpc)编码方案对部分分组进行编码而得到的对应的编码位72和ofdm符号74的图。例如,部分分组70每个可以是包括mac触发帧的ppdu的一部分。
在图2a中,部分分组70a包括16位服务位字段76、mac触发帧52和6位尾部(tail)字段78。部分分组70使用bcc编码方案进行编码,以产生被映射为ofdm符号74a的bcc编码位72a。在一些实施例中,bcc编码和将编码位映射为ofdm符号的任务分别使用ecc模块56和ofdm模块58来执行。
如图2a所示,mac触发帧52的最后的用户信息字段62的最后一位被映射为被表示为b_sym的ofdm符号80a。时间段dt82表示满足处理时间约束dt>mintrigproctime所需要的附加时间。在一些实施例中,可以将满足约束所需要的总填充位数划分为包含相应填充位数“np1”和“np2”的子组。到达b_sym80a的远边界需要np1个填充位,而将ppdu持续时间增加dt82需要np2个填充位。总填充位数由总和npad=np1+np2给出。
在图2b中,部分分组70b包括16位服务位字段76和mac触发帧52。部分分组70b使用ldpc方案进行编码,以产生一个或多个ldpc码字72b形式的编码位。ldpc码字的编码位被映射为ofdm符号74b。在一些实施例中,ldpc编码和将ldpc码字的编码位映射为ofdm符号的任务分别使用ecc模块56和ofdm模块58来执行。
如图2b所示,mac触发帧52的最后的用户信息字段62的最后一位被编码为被表示为cwn的第n个ldpc码字84。cwn的最后一位被映射为ofdm符号b_sym80b。dt82表示满足处理时间约束dt>mintrigproctime所需要的附加时间。在图2b中,可以将满足约束条件所需要的总填充位数划分为如下三个子组:到达cwn的远边界需要“np0”个填充位,到达b_sym80b的远边界需要“np1”个填充位,而将ppdu持续时间增加dt82需要“np2”个填充位。总填充位数由总和npad=np0+np1+np2给出。
图3是示意性地图示根据本文中描述的实施例的用于填充触发帧以满足处理时间约束的方法的流程图。该方法将被描述为由图1的ap24的mac模块32执行。
在图3的方法中,与总填充位数的三个相应子组相对应的部分填充位数表示为np0、np1和np2,如上面参考图2a和图2b所述。如图2a和图2b所示,np0(仅在图2b中)包括到达相关ldpc码字的远边界所需要的填充位数,np1(在图2a和图2b中)包括到达b_sym的远边界所需要的填充位数,并且np2(在图2a和图2b中)包括用于将ppdu持续时间增加mintrigproctime个时间单位以满足处理时间约束所需要的填充位数。例如,通常以诸如微秒等合适时间单位来指定处理时间约束mintrigproctime(其值对于参与同时ul传输的sta28是公共的)。备选地,可以以其他类型单位来规定处理时间约束,如将在下面进一步描述的。
该方法开始于mac模块32在时间约束设定操作100中确定处理时间约束60。在一些实施例中,在启动触发帧之前,ap24从一个或多个sta28中的每个接收指示sta处理dl触发帧44所需要的处理时间的相应时间要求。在一个实施例中,基于从多个sta接收的时间要求,mac模块32例如根据所请求的sta的最长时间要求来确定处理时间约束60。
在一些实施例中,给定sta所需要的处理时间取决于其用户信息字段62在触发帧(52)中的位置。例如,与其用户信息字段在触发帧中先前出现的其他sta相比,其用户信息字段在触发帧中稍后出现的sta具有更少的时间来处理包括其自己的用户信息字段的触发帧。在这样的实施例中,mac模块32基于从sta接收的时间要求请求以及用户信息字段在触发帧中的相应位置两者来确定处理时间约束60。在一个实施例中,mac处理器被配置为基于sta的用户信息字段在触发帧中的相应位置来调节从sta接收的一个或多个时间要求请求,并且例如选择调节后的时间要求请求中的最长时间要求请求。
在编码类型查询操作104中,mac模块32检查ecc模块被配置为应用bcc编码方案还是ldpc编码方案。当ecc模块56被配置为bcc方案时,该方法继续进行以从操作108开始计算bcc的填充位数。否则,该方法继续进行以从操作124开始计算ldpc的填充位数。
在np1(bcc)计算操作108中,mac填充模块64针对bcc情况计算np1。在下面给出的描述和等式中,可以使用以下标记:
·“n_dbps”表示每个ofdm符号的数据位数。
·“n_cbps”表示每个ofdm符号的编码位数。
·“b_sym”表示ofdm符号74a或74b序列内的b_sym80a或80b的索引。
·“nx”表示字段中包括的mac触发帧52的有效负载位数——直到并且包括最后的用户信息字段62的帧控制。
·“nsv”表示服务位字段76中的位数。在ieee802.11系列中,nsv包括16位。
·“ntl”表示尾部字段78中的位数。在ieee802.11系列中,ntl包括6位。
对于ieee802.11a/n分组、非高吞吐量(非ht)和htppdu,mac填充模块64如下计算b_sym:
等式1:
b_sym=ceil[(nx+nsv+ntl)/n_dbps]
并且进一步如下计算np1:
等式2:
np1=b_sym·n_dbps-(nx+nsv+ntl)。
上面的等式1(以及下面的一些等式)中的“ceil[]”运算符表示四舍五入到最接近的整数的舍入(round-up)运算符。
在np2(bcc)计算操作112中,mac填充模块如下计算np2:等式3a:
np2=ceil(mintrigproctime/t_sym)·n_dbps
其中t_sym表示ofdm符号的持续时间(例如,以微秒为单位)。在等式3a中,根据ieee802.11ax标准,t_sym被假定为例如16微秒。备选地,例如,在ieee802.11a/n/ac标准中,t_sym为4微秒,并且np2以四微秒符号进行定义并且如下计算:
等式3b:
np2=ceil(mintrigproctime/4)·n_dbps。
另外,备选地,mac填充模块64可以使用在上述ieee802.11ax标准中规定的朴素填充方案来计算np2。
在bcc填充位计算操作116中,mac填充模块64如下针对bcc情况计算总填充位数npad(四舍五入为字节):
等式4:
npad=8·ceil[(np1+np2)/8]。
在一些实施例中,例如,当使用符合ieee802.11ac超高吞吐量(vht)或ieee802.11ax高效(he)标准的ppdu时,编码流包括对后续ofdm符号(或者在ieee802.11ax标准的情况下为ofdm段)的填充阶段。在这样的实施例中,可以省略上面的np1计算,并且由物理层基于所接收的mpdu来计算b_sym的索引和预fec填充因子(也表示为a_factor)。如上所述,例如在等式3a中,由mac填充模块计算填充位数np2。
在填充操作120中,触发帧构造器50从mac填充模块64接收总填充位数npad,并且当npad>0时,将npad个填充位插入到mac触发帧52的填充字段66中。触发帧构造器50可以使用任何合适的方法插入填充位。在一个实施例中,触发帧构造器通过相对于用户信息字段62的最后一位将fcs字段定位在npad位的间隙之后来插入填充位。在一些实施例中,触发帧构造器可以随机地设置填充位的二进制值,或者将填充位的二进制值设置为预定义位值。备选地,触发帧构造器将npad填充位留给未确定的位值。
如上所述,当在操作104中,ecc模块被配置为应用ldpc方案时,该方法进行到np0计算操作124。在操作124中,mac填充模块64计算用于到达其最后的编码位被映射为b_sym80b的ldpc码字84的远边界的np0。在一些实施例中,mac填充模块如下计算np0:
等式5:
np0=ceil[(nx+nsrv)/(lldpc·r)]·(lldpc·r)-(nx+nsrv)。
在等式5中,lldpc表示ldpc码字的长度(以位为单位),r表示所使用的ldpc码的速率,并且(lldpc·r)包括ldpc码字中的消息位数。
在一些实施例中,例如,当根据ieee802.11n/ac/ax标准处理ppdu时,在ldpc编码流内使用的ldpc码字长度lldpc取决于包括填充位在内的总有效负载位数。这可能引起问题,因为例如如等式5中给出的mac层填充是基于lldpc的,lldpc取决于尚未确定的填充位数。
在一个实施例中,为了克服这个问题,mac填充模块使用等式5计算np0,其中lldpc被选择为所支持的最大值,例如lldpc=1944位。在另一实施例中,mac填充模块选择小于所支持的最大值的lldpc值,例如,当期望在包括填充位之后ldpc码字长度保持不变时。这可能与短帧(小的nx值)和/或使用小的mcs有关。
在np1(ldpc)计算操作128中,mac填充模块64针对ldpc情况计算np1。令表示为nb的中间位数由下式给出:
等式6:
nb=ceil[(nx+nsrv)/(lldpc·r)]·(lldpc·r)。
对于根据ieee802.11n/ac标准格式化的分组,mac填充模块如下计算b_sym80b:
等式7:
b_sym=ceil[nb/n_dbps]
并且如下计算np1:
等式8:
np1=b_sym·n_dbps-nb。
对于根据ieee802.11ax标准格式化的分组,需要np1来填充直到后续ofdm段,其作为编码流的一部分而给出。
在一些实施例中,不是分离地计算np0和np1,而是mac填充模块64如下计算np0和np1之和:
等式9:
np01=ceil[nb/nbs]·nbs-nb
其中nbs由下式给出:
等式10:
nbs=(n_dpbs·lldpc·r)。
在ldpcnp2计算操作132中,mac填充模块例如使用在上面的等式3a中给出的表达式来计算np2。
在ldpc填充位计算操作136中,mac填充模块如下针对ldpc情况计算总填充位数npad(四舍五入为字节):
等式11:
npad=8·ceil[(np0+np1+np2)/8]。
该方法然后进行到操作120以如上所述将npad个填充位插入到填充字段66中。在操作120之后,该方法终止。
在一些实施例中,使用ecc模块56应用的编码方案包括增信删余、缩短或两者,这减小了码字的长度。在增信删余方案中,一些码字位不被传输。在缩短方案中,将插入“0”位代替一些数据位,并且不传输这些位。作为增信删余/缩短的结果,包含最后的用户信息字段的最后的符号b_sym现在可以是(bsym+1),因此减少了关于(bsym+1)所需要的处理时间的有效持续时间,这可能导致违反处理时间约束。在一些实施例中,为了防止这种冲突,mac填充模块将附加填充位插入到填充字段66,例如,与一个或多个ofdm符号的持续时间相对应的多个附加填充位。
在一些实施例中,增信删余/缩短位数和ldpc码字长度取决于总有效负载位数,并且因此可以由于添加填充位而改变。例如,添加填充位可以增加在编码期间使用的缩短位数,这可能违反处理时间约束。
令np3表示除上述np0、np1和np2填充位之外所需要的填充位数。令ncw=ncw0+1,其中ncw0表示在添加填充位之前的ldpc码字数。为了满足处理时间约束,应当满足以下表达式:
等式12:
在等式12中,lldpc表示在添加填充位之前的ldpc码字长度。
在一些实施例中,基于等式12,mac填充模块使用以下表达式计算np3:
等式13:
在这些实施例中,mac填充模块如下计算上述操作136中的npad:
等式14:
npad=np0+np1+np2+np3。
在一些实施例中,ap24被配置为以空时块编码(stbc)模式进行操作。在stbc模式下,ap24经由多个天线42传输数据流的多个副本。在这样的实施例中,mac填充模块64在考虑到ap是否以stbc模式进行操作的情况下计算部分填充位数np0、np1、np2和/或np3。令stbcon=0/1分别表示stbc模式的关闭/开启配置。此处给出了用于在假定16位服务位字段的情况下计算np0、np1、np2和np3的等式:
等式15:
n′=n_dbps·(stbcon+1)
在上述等式15的示例中,与上述等式3a相比,np2的计算包括与一个附加ofdm符号相对应的额外填充位。在一些实施例中,为了增加满足处理时间约束的可能性,mac填充模块64使用例如lldpc=1944位的所支持的最大码字长度来计算等式15中的表达式。
注意,在计算np2中的ceil[·]操作可能会导致附加ldpc码字,这可能会影响ldpc编码流,从而可能违反处理时间约束,如上所述。在一些实施例中,为了减小违反处理时间约束的可能性,mac填充模块将np2增加与两个ofdm符号(而不是等式15中的一个ofdm符号)相对应的位数。发明人使用计算机模拟发现,即使在插入与两个ofdm符号相对应的附加填充位时,在某些调制方案(诸如mcs10/11)中,也可能会发生违反处理时间约束。在一些实施例中,当使用这些调制方案时,mac填充模块通过添加与三个ofdm符号数相对应的填充位数来计算np2。
在一些实施例中,mac填充模块64基于诸如mac触发帧的长度、所使用的mcs等参数在上述用于计算np0......np3的方法中选择一种或多种方法。此外,在一些实施例中,mac模块通过对部分填充位数np0......np3的仅一部分求和来计算npad。例如,为了满足使用80mhz或160mhz信道的8微秒或16微秒的处理时间约束,npad可以被计算为npad=np0+np2+np3,即,省略np1的计算。在该实施例中,修改np2的计算,例如使用上述等式15,以在8微秒约束的情况下将填充位数增加与两个ofdm符号相对应的位数,而在16微秒约束的情况下将填充位数增加与三个ofdm符号相对应的位数。在16微秒约束和20mhz或40mhz信道的情况下,npad可以被计算为npad=np0+np1+np2+np3,其中np2被扩展了与三个ofdm符号相对应的填充位数。在一些实施例中,mac填充模块针对所有情况添加与三个ofdm符号相对应的填充位数,这简化了上述计算,但是降低了使用可用带宽的效率。在一些实施例中,当带宽被配置为80mhz或160mhz时,可以排除np1位。
就与一个或多个ofdm符号相对应的附加填充位数而言,上述方法可能导致较大的开销。接下来,描述一种用于精确地确定满足处理时间约束所需要的填充位数的备选方法。该备选方法将被描述为由mac填充模块64作为一系列操作来执行。
在一些实施例中,mac填充模块64设置由n_pld_init=nx+16给出的初始长度值,并且如下计算表示为n1的部分填充位数:
等式16:
其中n′=n_dbps·(stbcon+1)。mac填充模块如下计算部分填充位数n2:
等式17:
并且如下计算n_pld:
等式18
n_pld=n_pld_init+n1+n2。
mac填充模块如下计算初始符号数nsym_init和初始可用位数:等式19:
navbits_init=n_cbps·nsym_init
其中n_cbps表示每个ofdm符号的编码位数。mac填充模块计算ldpc码字数n_cw和码字长度lldpc,如例如在第19.3.11.7.5节-ldpcppdu编码过程中在“part11:wirelesslanmediumaccesscontrol(mac)andphysicallayer(phy)specifications,ieeestd802.11tm-2016”(ieee标准802.11tm-2016第11部分:无线lan媒体访问控制(mac)和物理层(phy)规范)(ieeestd802.11-2012的修订版)中规定的,并且如下计算由填充字段占用的ldpc码字数:等式20:
mac模块计算:
等式21:
ncw′=(ncw_cond-n_cw+n_cw_nopad)。
等式21中的参数n_cw_nopad表示在假定没有预fec填充的情况下的ldpc码字数、以及n_pld_init位有效负载。
mac填充模块检查条件0<ncw′是否为真,如果是,则如下计算部分填充位数n3:
等式22:
mac填充模块更新以下变量:n_cw=n_cw_nopad+ncw_cond、n_pld=n_pld+n3和overflow=1。
当上述条件o<ncw′为假时,mac填充模块设置n3=0,并且如下计算overflow参数:
等式23:
在一个实施例中,n_cw和lldpc满足:n_cw=1和lldpc≤1296,在这种情况下,mac填充模块设置lldpc=1296。由于lldpc=648和n_cw=2的组合无效,因此mac填充模块如下计算overflow和n3:等式24:
n3=1944·r-n_pld+1
overtlow=max[0,1944·r-n_pld-n3+1]。
在等式23和24中,省略了n_cw_nopad。
接下来,mac填充模块计算表示为n4的另一部分填充位数,以用于确保初始有效负载n_pld_init不会由于填充、编码和应用缩短、增信删余或两者的结果而溢出到后续码字(n_cw_nopad+1)中。条件表示为:
等式25:
并且mac填充模块相应地如下计算n4:
等式26:
等式27:
n4=max[0,(n4′+n_cw)]。
在缩短位数不是n_cw的整数倍的情况下,需要等式27中的附加位数。总填充位数由npad=n1+n2+n3+n4给出。mac填充模块更新总有效负载长度:
等式28:
n_pld=n_pld+n4。
上述备选方法可能违反20mhz信道、mcs0星座、nss7的处理时间约束(七个空间流在触发帧中被多路复用和传输,mintrigproctime=16微秒,并且n_pld_init在1到20字节之间)。在这种情况下,mac填充模块使用以下表达式计算n2:
等式29:
本文中描述了另一种填充方法。从添加与两个额外ofdm符号数相对应的填充位的意义上来说,该方法是保守的。
该方法开始于mac填充模块64基于n_pld的当前值(nx+16)计算b_sym,并且基于n_pld的当前值和b_sym的计算值来计算码字数n_cw。例如,mac填充模块计算b_sym=ceil[n_pld/n_dbps]·n_dbps。然后,mac填充模块如下计算包括与两个额外ofdm符号相对应的填充的表示为npd1的第一填充长度:
等式30:
npd1=ceil(mintrigproctime/t_sym+2)·n_dbps。
mac填充模块如下计算更新后的有效负载长度:
等式31:
n_pld′=nx+16+npd1
并且基于n_pld′计算更新后的值b_sym′,并且基于n_pld′和b_sym′计算更新后的值n_cw′。
mac填充模块将表示为npd2的第二填充长度初始化为零值npd2=0,并且可能如下根据处理时间约束是包括8微秒还是16微秒来修改npd2:
等式32:
formintrigproctime=8:
if(n_cw′-n_cw<2,npd2=1944·r)
formintrigproctime=16:
if(n_cw′-n_cw<3,npd2=2916·r)。
mac填充模块如下计算总填充位数:
等式33:
npad=npd1+npd2。
接下来,描述一种使用迭代过程计算所需要的填充位数的方法。迭代过程提出了精度与收敛时间之间的权衡。以高分辨率(高达单个位分辨率)搜索所需要的填充位数通常将需要较高的迭代次数,反之亦然。
图4是示意性地图示根据本文中描述的实施例的用于迭代地确定触发帧中满足处理时间约束所需要的填充长度的方法的流程图。
该方法开始于mac填充模块64在时间约束设置操作200中确定处理时间约束60。操作200本质上类似于以上参考图3描述的操作100。
在初始化操作204中,mac填充模块初始化各种参数:迭代索引i=1,填充位数npad=0以及初始有效负载长度npld(i)=nx+16。
在符号位置计算操作208中,mac填充模块基于当前有效负载长度npld(i)来计算用于第i次迭代的ofdm符号b_sym(例如,80b)的索引b_sym(i)。例如,mac填充模块计算:
等式34:
b_sym(i)=ceil[npld(i)/n_dbps]·n_dbps。
在持续时间计算操作212中,mac填充模块计算在ppdu起始点和与b_sym的远边界相对应的时间点之间的表示为td(i)的持续时间。在时间约束检查操作216中,mac填充模块检查是否满足处理时间约束,如果不满足,则进行到填充操作220。在操作220中,mac填充模块向npad添加npad(i)>0个填充位,即npad=npad+npad(i)。mac填充模块可以选择要在第i次迭代中添加的任何合适数目的填充位npad(i)。通常,通过在迭代中添加大量的填充位,可以用少量的迭代来满足时间约束。在一个实施例中,mac填充模块在每次迭代中添加相同数目的填充位。在另一实施例中,mac模块可以在不同的迭代中添加不同数目的填充位。在示例实施例中,当在第一迭代中,操作216中的条件为真时,mac填充模块添加由npad(1)=ceil(mintrigproctime/t_sym)·n_dbps给出的填充位数。
在有效负载更新操作224中,mac填充模块64通过计算npld(i+1)=npld(i)+napd(i)来更新有效负载长度。在迭代更新操作228中,mac填充模块更新迭代索引i=i+1,并且循环回到操作208以基于更新后的有效负载长度来重新计算b_sym的索引。
当操作216中的条件为假时,mac填充模块进行到舍入操作232,在舍入操作232中,mac填充模块将填充位数npad四舍五入为字节,例如,通过计算npad=ceil(npad/8)·8,其中npad在操作220中在一个或多个迭代上累积。
在填充插入操作236中,mac填充模块将操作232的(向上舍入为字节)位数npad插入到mac触发帧52的填充字段66中。在操作236之后,该方法终止。
在上述实施例中,通常以诸如微秒等时间单位来定义处理时间约束。例如,如ieee802.11ax标准中规定的,处理时间约束具有三个可能的值:0、8或16微秒。备选地,处理时间约束可以以ofdm符号持续时间为单位来指定。例如,在ieee802.11a/n/ac标准中,处理时间约束可以指代0、2或4个ofdm符号的持续时间。在ieee802.ax标准中,处理时间约束可以设置为零或一个“长”ofdm符号、或者用于覆盖两个“短”ofdm段的附加填充位(将预fec填充因子a-factor增加2)。在其中处理时间约束以表示为mintrigprocnumsym的ofdm符号(和/或ofdm段)为单位来指定的实施例中,mac填充模块将所需要的对应部分填充位数计算为n_dbps·(mintrigprocnumsy′m)。备选地,mac填充计算n_dbps·(mintrigprocnumsym+b),其中b>0表示在用增信删余和/或缩短进行编码的情况下所需要的附加ofdm符号数,例如,将b设置为b=2。
在其他实施例中,处理时间约束可以直接根据所需要的填充位数来指定。
在一些实施例中,为了确保足够的填充以满足处理时间约束,mac模块仅在其中ecc模块56被配置为使用bcc方案的情况下才支持这种填充。
上述实施例仅作为示例给出,也可以使用其他合适的实施例。例如,以上实施例不仅适用于在ieee802.11ax标准中规定的触发帧,而且适用于包括可变长度填充字段的其他类型的帧。作为示例,上述实施例适用于包含触发响应调度(trs)控制子字段的帧。
注意,上述实施例仅作为示例被引用,并且本发明不限于以上已经具体示出和描述的内容。而是,本发明的范围包括上述各种特征的组合和子组合、以及本领域技术人员在阅读前述说明之后将能够想到的并且在现有技术中未公开的其变型和修改。通过引用并入本专利申请的文档应当被认为是本申请的组成部分,除非如果在这些并入文档中以与本说明书中明确或隐含做出的定义相抵触的方式定义了任何术语,则仅应当考虑本说明书中的定义。