CN102468915B - 一种串口802.11n无线网卡芯片发送通路实现方法 - Google Patents
一种串口802.11n无线网卡芯片发送通路实现方法 Download PDFInfo
- Publication number
- CN102468915B CN102468915B CN201010546848.6A CN201010546848A CN102468915B CN 102468915 B CN102468915 B CN 102468915B CN 201010546848 A CN201010546848 A CN 201010546848A CN 102468915 B CN102468915 B CN 102468915B
- Authority
- CN
- China
- Prior art keywords
- polymerization
- tid
- buffer memory
- abd
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提出了一种串口802.11n无线网卡发送通路实现方法。本发明通过让串口为每个TID维护一个下行通道,每个帧分为聚合描述符和帧数据块两个数据块独立下行,使得一个帧在仅仅聚合描述符下行后就可以参与聚合,在聚合帧发送过程中,还可以有子帧的帧数据下行。从而可以实现串口802.11n无线网卡发送通路中每个TID聚合帧最大子帧数能够达到芯片的发送缓存个数,并且可以一直将性能维持在这种状态附近,从而保证了性能成本比最高。
Description
技术领域
本发明属于无线局域网领域,作为一种串口802.11n无线网卡芯片发送通路结构,特别适用于串口的802.11n无线网卡芯片设计领域,尤其为USB主机接口的802.11n无线网卡芯片设计。也适用于其他具有类似MAC协议的无线通信领域的芯片设计。采用本发明提出的串口802.11n无线网卡芯片发送通路结构,可以增加802.11nA-MPDU聚合深度,从而大幅提高串口802.11n无线网卡的通信吞吐量。
背景技术
802.11n协议定义了A-MPDU聚合,通过将多个普通MAC帧聚合在一个A-MPDU中,从而在很大程度上,节省了这些MAC帧之间的帧间隔等协议开销,提高了信道利用率,从而可以提高无线网络的通信吞吐量。容易知道,每个A-MPDU聚合的MAC帧越多,则在同样物理层速率下,对于无线网络的通信吞吐量提高越大。
一般的串口无线网卡,都是作为主机的设备,主机方作为串口的Master,在串口上的通信全部由主机发起。包括本无线网卡要发送的数据帧的下行。
802.11n协议规定,一个A-MPDU内的子帧必须带QoS控制域,且接收MAC地址和TID必须一样。考虑到主要应用为无线网卡,本发明假设本设备仅仅作为站点(Station),不作为无线接入点(Access point),或者是在本设备作为无线接入点模式时,本发明不适用。作为站点,即使是处于直链状态,在同一时段,一个TID发送的帧,都是具有同样的接收MAC地址的。TID域有4bits,取值为0~15,但考虑到应用模式,0~7和8~15分为两种模式使用,所以不会同时使用。所以本发明从硬件角度上,仅支持8个取值的TID,但也适用于其他TID取值个数的情况。
802.11n定义的A-MPDU的结构如图2所示,A-MPDU内的两个子帧之间,有Padding和Delimiter,如果前面的子帧不足4bytes的整数倍,则使用Padding补够4bytes的整数倍。其次两帧之间可以根据AP的要求,填充一定个数的Delimiter,每个Delimiter为4bytes长。
一般作为串口的802.11n无线网卡发送通路结构,芯片内部需要设计足够大的缓存,由主机通过串口将各个TID的发送数据下行到这个发送缓存中,芯片内部的控制电路将发送缓存内部的帧进行A-MPDU聚合,802.11n MAC根据信道竞争的结果,将竞争成功的TID的A-MPDU发送出去。由于发送缓存要被多个TID的数据共用,所以一般情况下,每个TID的能够发送的A-MPDU聚合的最多子帧个数,远小于发送缓存能够缓存的子帧个数。而采用本发明,可以使得每个TID能够发送的A-MPDU聚合的最多子帧个数,达到发送缓存能够缓存 的子帧个数。而且在一般情况下,能够大大增加信道竞争成功的TID的A-MPDU长度,从而提高了通信吞吐率。
发明内容
本发明提出了一种串口802.11n无线网卡发送通路结构。串口为每个TID设计一个下行通道(譬如USB接口的端点,Endpoint),每个下行通道下行对应TID的发送数据。将每个帧下行的信息分成两个数据块间隔下行,第一块为一个简单的描述符,下面的控制电路可以根据这个描述符信息进行A-MPDU聚合,称之为聚合描述符。第二块为MAC发送描述符和帧数据,称之为帧数据块。一个帧的聚合描述符先下行,帧数据块后下行,二者下行之间可以插入其他帧的数据块下行。按照802.11协议,每个TID的下行帧,严格按照sequence number(SN)的顺序下行。由于每个帧分两个数据块,所以单纯从聚合描述符来看,是按照SN的顺序下行,单纯按照帧数据块来看,也是按照SN的顺序下行。
如果芯片内部的发送缓存能够缓存m帧,为所有TID共用,即是有m帧发送缓存。芯片需要为每个TID设计2m个聚合描述符缓存。关于聚合描述符和帧数据块的下行,如图1所示,如果一个聚合描述符(SN=a)在前,后紧随一个帧数据块(SN=b),则有如下限制:0≤a-b≤m;如果一个帧数据块(SN=c)在前,后紧随一个聚合描述符(SN=d),则有如下限制:1≤d-c≤m+1。按照这种限制,串口和缓存及聚合控制电路的接口避免了聚合描述符缓存不足的现象发生,使得仅仅会在串口下行帧数据块时,可能会出现帧发送缓存不足,导致此帧数据块下行暂时堵塞的情况。而聚合描述符下行,保证会有足够的聚合描述符缓存,也保证了串口通信的带宽效率。
每个TID的聚合描述符相对于帧数据块,可以最多提前下行m个到此TID聚合描述符缓存;8个TID中,只要其聚合描述符缓存中有新的聚合描述符,就参与信道竞争。MAC会在完成一次发送传输之后信道刚刚开始空闲时,马上进行8个TID的退避预测,退避预测成功的TID将进行下一次发送传输。退避预测成功的TID,将根据其缓存中的聚合描述符,进行A-MPDU聚合,聚合从最先下行的聚合描述符开始。能够聚合的总帧数,参数在表1中有列举:
表1 聚合总帧数相关参数
Minimum(Nframe+Nempty,Nagg) | 当前要聚合的TID,能够聚合的总帧数 |
具体为Minimum(Nframe+Nempty,Nagg)。也就是说当前还没有占据的帧数据缓存,在进行聚合开始,将被锁定,仅允许退避预测成功的TID对应的数据下行通道将帧数据块下行进来。此锁定可以在参与聚合的帧数据都完全下行完毕解除。具体步骤如下:
(1).串口为芯片所支持的每个TID维护一个下行通道,每个下行通道对应TID的发送数据,下行通道对应TID的发送数据内容分为聚合描述符ABD和帧数据块FB,聚合描述符ABD和帧数据块FB独立下行,聚合描述符ABD先下行,帧数据块FB后下行;
具体步骤如下:
(2).无线网卡芯片下行m个TID聚合描述符ABD到缓存,m个聚合描述符ABD参与信道竞争;MAC根据信道竞争的结果,将竞争成功的TID的A-MPDU进行发送传输;
(3).MAC在完成一次发送传输之后进行退避预测,退避预测成功的TID将进行下一次发送传输;
(4).退避预测成功的TID,将根据其缓存中的聚合描述符ABD,进行A-MPDU聚合,A-MPDU聚合从最先下行的聚合描述符ABD开始;
(5).没有被占据的帧数据块FB缓存,在进行A-MPDU聚合开始后将被锁定,仅允许退避预测成功的TID对应的数据下行通道将帧数据块FB下行;
(6).待参与A-MPDU聚合的帧数据块FB都完全下行完毕后锁定解除;
(7).重复步骤(1)-(5)。
通过聚合描述符先下行,根据聚合描述符做A-MPDU聚合,然后根据将空的发送缓存进行锁定的机制,可以大大提高A-MPDU的聚合的子帧个数。其次为每个TID,都设计2m个聚合描述符缓存,可以在此TID的A-MPDU发送过程中,下行本TID的新的聚合描述符,以便于此A-MPDU发送完后,可以马上进行下次A-MPDU聚合。
附图说明
图1下行顺序说明
图2 A-MPDU结构
具体实施方式
从串口下行的每个发送帧对应两个数据块:帧数据块(FB,Frame Block);聚合描述符(ABD,Aggregation Descriptor)。FB内有两部分内容:(1),MAC发送描述符(TXBD,Transmit Block Descriptor),用来控制MAC进行数据获取和发送;(2),发送帧内容。
ABD的内容参照表2。
表2 聚合描述符内容及描述
内容 | 描述 |
Frm_len[11:0] | 发送帧长,即发送给基带的帧长 |
Pad_delim[7:0] | 此帧后,聚合时插入的Delimiter个数 |
Try_times[7:0] | 因为传输失败,此帧允许的传输次数 |
Agg_ena | 此帧是否允许A-MPDU聚合 |
为了支持每个A-MPDU可以最多聚合m个子帧,芯片内必须有能存放m个最大长度FB的发送缓存,为所有下行通道共用。其次需要为每个下行通道维护2m个ABD缓存。
串口支持8个下行通道(对应USB接口的端点,Endpoint),每个下行通道对应一个TID。对应一个帧的FB和ABD是分开下行的,且ABD先下行,FB后下行。一个TID的下行参看图1。每帧对应一个顺序号(Sequence Number,SN),按照下行顺序,SN加1递增。一个帧的ABD,和FB下行时中间,允许有其他帧的ABD和FB下行。但不同帧的ABD下行和FB下行,分别按照顺序进行。如图1所示,ABD(SN=a)在前,FB(SN=b)紧随其后,则有如下限制:0≤a-b≤m;如图FB(SN=c)在前,ABD(SN=d)紧随其后,则有如下限制:1≤d-c≤m+1。
一次发送传输,可以认为从退避预测开始,或者在802.11 burst传输完成之前上一次传输完成开始,到退避成功的TID的聚合帧,或新聚合帧的帧序列结束。如果需要进行退避预测,则所有TID中,在聚合描述符缓存中,拥有聚合描述符的TID都参与退避竞争预测。每个聚合描述符缓存的结构如表3所示:
表3 一个聚合描述缓存的结构及说明
内容 | 描述 |
Frm_len[11:0] | 发送帧长,即发送给基带的完整帧长 |
Pad_delim[7:0] | 此帧后,聚合时插入的Delimiter个数 |
Try_times[7:0] | 因为传输失败,此帧允许的传输次数 |
Agg_ena | 此帧是否允许A-MPDU聚合,位宽为1bit |
Buf_ID | 此ABD对应的FB存入的发送缓存的ID号,位宽取决于m的大小。 |
This_ABD_valid | 位宽1bit,指示此聚合描述符缓存是否存有有效聚合描述符。 |
This_FB_ready | 位宽1bit,指示此有效聚合描述符对应的FB是否已经下行到发送缓存。 |
Agg_finish | 位宽1bit,指示此有效聚合描述符是否被聚合进A-MPDU。 |
下行一个ABD,则将2m个ABD缓存往前移动一个(也可以通过指针移动来实现),将新来的ABD存入ABD缓存入口处的那一个ABD缓存。存入时,将还需要将此ABD缓存中 的[Buf_id,This_FB_ready,Agg_finish]三个域清零,将[This_ABD_valid]置1。
其次为每个通道维护一下ABD_SN,和FB_SN,ABD_SN对应最新下行的ABD的SN,FB_SN对应最新下行的FB的SN,有FB_SN≤ABD_SN。每新下行一个ABD,ABD_SN加1;每新下行一个FB,FB_SN加1。ABD_SN和FB_SN都做溢出保护。
为m个发送缓存,维护m bits位宽的FB_bitmap,每个发送缓存对应1bit。一个发送缓存中存入了FB,对应FB_bitmap中的位置1。每新下行一个FB,则将根据(ABD_SN-FB_SN)找到相应的ABD缓存,将其[FB_ready]位置1。
每次为一个TID做A-MPDU聚合时,从ABD缓存的出口端开始选择[This_ABD_valid]为1的ABD进行聚合,聚合的最长帧数为Minimum(Nframe+Nempty,Nagg)。聚合完全依据ABD缓存的内容,相关内容有[Frm_len,Pad_delim,Agg_ena,This_ABD_valid],如果遇到This_ABD_valid有效,而Agg_ena无效,则聚合到此帧时终止,此帧并不参与聚合。其后此帧将以单帧形式发出。
在完成聚合之后,聚合内的子帧对应的FB,如果有还没有下行到发送缓存的,则继续下行,考虑到其他TID的下行通道下行FB都被锁定,所以一般能够保证在MAC发送这个FB前,完成这个FB的下行。如果无法完成,则MAC取走TXBD时,在TXBD填充使能位,使能MAC发送添加错误FCS的空白帧。
在此次A-MPDU传输结束后,MAC会根据收到的Immediate BlockAck帧的情况,反馈是否得到正确响应的bitmap信息,ABD和FB控制电路会据此进行ABD和FB的控制和释放。如果得到正确响应,则将此帧对应的ABD缓存和FB缓存释放,清除其所有域,包括FB_bitmap的对应位。如果没有得到正确响应,则判断此帧对应的ABD缓存的try_times是否为1,如果为1,则表示此帧传输次数达到限制,也将此帧对应的ABD缓存和FB缓存释放;如果大于1,则将try_times减1,然后清除本ABD缓存的agg_finish标志位,以便于其下次重新聚合。
Claims (3)
1.一种串口802.11n无线网卡芯片发送通路实现方法,其特征在于:串口为芯片所支持的每个TID维护一个下行通道,每个下行通道拥有对应此TID的发送数据,下行通道对应TID的发送数据内容分为聚合描述符ABD和帧数据块FB,同一帧的聚合描述符ABD和帧数据块FB独立下行,聚合描述符ABD先下行,帧数据块FB后下行,二者之间会插入其他帧的数据块;具体步骤如下:
(1).无线网卡芯片下行聚合描述符ABD到ABD缓存,ABD缓存中拥有ABD的TID参与信道竞争;MAC根据信道竞争的结果,将竞争成功的TID的A-MPDU进行发送传输;
(2).MAC在完成一次发送传输之后进行退避预测,退避预测成功的TID将进行下一次发送传输;
(3).退避预测成功的TID,将根据其缓存中的聚合描述符ABD,进行A-MPDU聚合,A-MPDU聚合从最先下行的聚合描述符ABD开始;
(4).没有被占据的帧数据块FB缓存,在进行A-MPDU聚合开始后将被锁定,仅允许退避预测成功的TID对应的数据下行通道将帧数据块FB下行;
(5).待参与A-MPDU聚合的帧数据块FB都完全下行完毕后锁定解除;
(6).重复步骤(1)-(5)。
2.如权利要求1所述一种串口802.11n无线网卡芯片发送通路实现方法,其特征在于芯片为所有TID的帧数据块FB共设计m个缓存,为每个TID的聚合描述符ABD设计2m个缓存,一个TID的A-MPDU发送传输过程中,下行此TID新的聚合描述符ABD,此A-MPDU发送完后,能进行下次A-MPDU聚合,如果一个聚合描述符(SN=a)在前,后紧随一个帧数据块(SN=b),则有如下限制:0≤a-b≤m;如果一个帧数据块(SN=c)在前,后紧随一个聚合描述符(SN=d),则有如下限制:1≤d-c≤m+1。
3.如权利要求1所述一种串口802.11n无线网卡芯片发送通路实现方法,其特征在于每个TID的一次聚合时,能够聚合的总帧数,最大为Minimum(Nframe+Nempty,Nagg),Nframe为m个发送缓存中,被当前要聚合的TID的帧数据块已经占据的缓存个数,Nempty为m个发送缓存中,还没有被任何TID的帧数据块占据的缓存个数,Nagg为当前要聚合的TID的聚合描述符缓存中,已经被占据的缓存个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010546848.6A CN102468915B (zh) | 2010-11-16 | 2010-11-16 | 一种串口802.11n无线网卡芯片发送通路实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010546848.6A CN102468915B (zh) | 2010-11-16 | 2010-11-16 | 一种串口802.11n无线网卡芯片发送通路实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102468915A CN102468915A (zh) | 2012-05-23 |
CN102468915B true CN102468915B (zh) | 2014-07-02 |
Family
ID=46072139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010546848.6A Active CN102468915B (zh) | 2010-11-16 | 2010-11-16 | 一种串口802.11n无线网卡芯片发送通路实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102468915B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656429B (zh) * | 2015-11-03 | 2020-06-02 | 华为技术有限公司 | 无线通信方法和设备 |
WO2017076069A1 (zh) * | 2015-11-03 | 2017-05-11 | 华为技术有限公司 | 无线通信方法和设备 |
KR102549027B1 (ko) | 2016-05-11 | 2023-06-29 | 주식회사 윌러스표준기술연구소 | Ack를 전송하는 무선 통신 방법 및 이를 사용하는 무선 통신 단말 |
CN109314882B (zh) * | 2016-06-14 | 2022-03-22 | 韦勒斯标准与技术协会公司 | 使用聚合mpdu的无线通信方法和使用该方法的无线通信终端 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290364A (zh) * | 1997-11-17 | 2001-04-04 | 西加特技术有限责任公司 | 接收帧的方法和专用帧缓冲器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070258384A1 (en) * | 2006-03-03 | 2007-11-08 | Interdigital Technology Corporation | Method and system for enhanced basic service set transition for a high throughput wireless local area network |
-
2010
- 2010-11-16 CN CN201010546848.6A patent/CN102468915B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290364A (zh) * | 1997-11-17 | 2001-04-04 | 西加特技术有限责任公司 | 接收帧的方法和专用帧缓冲器 |
Also Published As
Publication number | Publication date |
---|---|
CN102468915A (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103081542B (zh) | 在移动通信系统中发送和接收上行链路数据的方法和装置 | |
CN104012121B (zh) | 用于数据信道传输和接收的系统和方法 | |
US20060227801A1 (en) | Method and apparatus for an ad-hoc wireless communications system | |
CN102025461B (zh) | 频域调度方法与装置 | |
CN107171997B (zh) | 一种全双工通信的数字域自干扰消除方法及一种基站 | |
CN106464354A (zh) | 用于发送帧的方法和设备 | |
CN102468915B (zh) | 一种串口802.11n无线网卡芯片发送通路实现方法 | |
US20070291913A1 (en) | Systems and arrangements for determining communication parameters in a network environment | |
JP2011193444A (ja) | 搬送波集約システムにおける拡張搬送波処理方法、基地局及びユーザ設備 | |
WO2012151971A1 (zh) | 具有跳频功能的资源位置分配方法及装置 | |
JP4981908B2 (ja) | アップリンクタイミング制御信号 | |
CN106817725A (zh) | 无线通信的方法和装置 | |
CN102469529B (zh) | 一种资源分配的方法及多模控制器 | |
CN112994759B (zh) | 一种基于ofdm的协作中继d2d通信方法 | |
WO2011082533A1 (zh) | 一种多载波通信的方法 | |
CN108811143A (zh) | 基于用户活跃度的上行免授权scma的ctu分配方法 | |
CN102571261A (zh) | 一种空间流的mcs指示方法和装置 | |
CN102246442A (zh) | 用于多带时分双工系统的通信方法及装置 | |
CN106936540A (zh) | 用户设备及上行数据传输方法 | |
KR101403047B1 (ko) | 멀티포트 주파수 영역 자원 위치 할당 정보를 표시하는 방법, 장치 및 단말기 | |
CN101572590B (zh) | 帧控制消息的发送方法 | |
US10305713B2 (en) | Trigger information exchange between wireless systems | |
CN102781045B (zh) | 空分复用方法及装置 | |
CN107431949A (zh) | 基站、终端、无线通信系统和无线通信方法 | |
CN101184073A (zh) | 基于正交频分复用的多发射天线系统的导频信号发送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
Address after: 102209 Beijing, Beiqijia, the future of science and technology in the south area of China electronic network security and information technology industry base C building, Patentee after: Beijing CEC Huada Electronic Design Co., Ltd. Address before: 100102 Beijing City, Chaoyang District Lize two Road No. 2, Wangjing science and Technology Park A block five layer Patentee before: Beijing CEC Huada Electronic Design Co., Ltd. |