CN110620639B - 一种用于数据子帧聚合重传的硬件重传电路及方法 - Google Patents
一种用于数据子帧聚合重传的硬件重传电路及方法 Download PDFInfo
- Publication number
- CN110620639B CN110620639B CN201910957026.8A CN201910957026A CN110620639B CN 110620639 B CN110620639 B CN 110620639B CN 201910957026 A CN201910957026 A CN 201910957026A CN 110620639 B CN110620639 B CN 110620639B
- Authority
- CN
- China
- Prior art keywords
- retransmission
- subframe
- descriptor
- frame
- circuit
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种用于数据子帧聚合重传的硬件重传电路,包括:寄存器,寄存器中存储有N个初传子帧对应的N个描述符,N为大于1的正整数;单块确认BA帧分析电路,用于对接收的当前BA帧进行分析,得出与重传子帧关联的第一信息;重传聚合电路,用于根据所述第一信息,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新;***内存读取模块,用于根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。本发明解决了现有技术BA帧的分析及子帧的聚合重传利用控制层处理,效率较低,对***整体的吞吐率有较大的影响并且增加了主处理器的负载的缺陷。
Description
技术领域
本发明涉及无线通信技术领域,尤其涉及一种用于数据子帧聚合重传的硬件重传电路及方法。
背景技术
为保证控制层对高吞吐率的支持,减小数据包分开传输而导致的控制层开销,在802.11n标准中,提出了聚合媒体层协议数据单元(Aggregation Media Protocal DataUnit,A-MPDU)和单块确认(Block Acknoledgement,BA)帧技术。所谓聚合媒体层协议数据单元(A-MPDU)和单块确认(BA)帧技术,就是控制层将多个具有相同接收端地址的媒体层协议数据单元(Media Protocol Data Unit,MPDU)聚合成一个聚合帧发送给PHY,PHY将聚合帧发送给接收端,接收端会返回一个携带起始序列控制信号(Starting SequenceControl,SSC)号和64位比特序列(bitmap)信息的BA帧,来表示接收端是否正确收到了之前的数据帧,64位的bitmap信息里面每一位表示一个MPDU子帧的接收情况,正常情况为“1”,出错情况为“0”,控制层对接收端返回的BA帧进行分析,是否有子帧没有正确地传输。对于传输失败的子帧,控制层需要对其重新聚合,然后再次发送。
然而,重传子帧的聚合重传相比于正常子帧的聚合处理规律性较差,现有的无线网络传输中,BA帧的分析及子帧的聚合重传利用控制层处理,效率较低,对***整体的吞吐率有较大的影响并且增加了主处理器的负载。
发明内容
本申请实施例通过提供一种用于数据子帧聚合重传的硬件重传电路及方法,解决了现有技术BA帧的分析及子帧的聚合重传利用控制层处理,效率较低,对***整体的吞吐率有较大的影响并且增加了主处理器的负载。
一方面,本申请通过本申请的一实施例提供如下技术方案:
一种用于数据子帧聚合重传的硬件重传电路,包括:寄存器,所述寄存器中存储有N个初传子帧对应的N个描述符,N为大于1的正整数;单块单块确认BA帧分析电路,用于对接收的当前BA帧进行分析,得出与重传子帧关联的第一信息,所述当前BA帧用于表征上次发送的聚合帧中各子帧的传输情况,所述初传子帧包含所述重传子帧;重传聚合电路,用于根据所述第一信息,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新;***内存读取模块,用于根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。
在一个实施例中,还包括状态机,所述状态机用于当接收到所述当前BA帧,控制所述BA帧分析电路对所述当前BA帧进行分析,得出与所述重传子帧关联的第一信息,并控制所述重传聚合电路根据所述第一信息,对所述重传子帧对应的描述符进行更新;当所述重传子帧对应的描述符更新完成后,控制所述***内存读取模块根据更新后的所述重传子帧对应的描述符,从所述主存储区中读取所述重传子帧并发送;当所述重传子帧完成后,控制所述BA帧分析电路等待接收下一BA帧。
在一个实施例中,所述状态机还用于当接收到特定描述符信息时,控制所述***内存读取模块根据所述特定描述符信息,将所述N个描述符存入所述寄存器;当所述N个描述符存储完成后,控制所述***内存读取模块根据所述N个描述符从所述主存储区中获取所述N个初传子帧并发送;当所述N个初传子帧发送完成后,控制所述BA帧分析电路等待接收所述当前BA帧。
在一个实施例中,所述特定描述符信息为起始描述符的起始地址信息,所述起始描述符为所述N个描述符中存储地址最靠前的描述符,所述描述符存储于所述主存储区中,单个所述描述符中包括下一个描述符起始地址信息;所述***内存读取模块,还用于根据所述起始描述符的起始地址信息及所述下一个描述符起始地址信息,依次从所述主存储区中读取出包含所述起始描述符在内的所述N个描述符并存入所述寄存器。
在一个实施例中,所述***内存读取模块,具体用于当存完第i个描述符后,根据所述第i个描述符的第一字段信息判断所述第i个描述符是否为最后一个子帧描述符;若所述第i个描述符是最后一个子帧描述符,则N个描述符存储完成;若所述第i个描述符不是最后一个子帧描述符,根据所述第i个描述符中的下一个描述符起始地址信息,读取第i+1个描述符,i依次递增,直至读取到所述最后一个子帧描述符并存储后,则所述N个描述符存储完成,其中,i为小于或等于N的正整数。
在一个实施例中,所述BA帧分析电路包括:错误判断电路,用于根据所述当前BA帧的SSC号、所述上次发送的聚合帧的起始序列号及结束序列号,确定出所述重传子帧对应的第一序列号以及未确定传输情况的子帧对应的第二序列号;其中,所述当前BA帧包括所述SSC号及bitmap信息,所述SSC号为所述bitmap信息所对应的第一个子帧的序列号,所述起始序列号为所述上次发送的聚合帧中第一个子帧的序列号,所述结束序列号为所述上次发送的聚合帧中最后一个子帧的序列号,所述序列号为所述N个初传子帧按照发送的顺序编排的号数,所述N个描述符中存储有所述序列号,单个所述序列号与单个所述描述符一一对应;排序运算电路,用于根据所述当前BA帧的SSC号及所述起始序列号,将所述bitmap信息所在的序列与所述上次发送的聚合帧的各子帧的序列对齐;移位判断电路,用于对经过对齐的所述bitmap信息进行移位,对所述未确定传输情况的子帧的传输情况进行判断,确定出所述重传子帧对应的第三序列号,其中,所述第一信息包括所述第一序列号及所述第三序列号。
在一个实施例中,所述重传帧聚合电路还用于根据所述第一序列号及所述第三序列号,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新。
在一个实施例中,所述重传帧聚合电路具体用于当确定出第j个重传子帧对应的序列号后,对所述第j个重传子帧对应的第一描述符进行更新,其中,j为小于或等于N的正整数。
在一个实施例中,所述重传帧聚合电路还具体用于当确定出所述第j个重传子帧对应的序列号后,根据所述第一描述符内的子帧长度信息对所述第一描述符的聚合帧长度信息及第二描述符的聚合帧长度信息进行更新;其中,所述第二描述符为第j-1个重传子帧对应的描述符,所述聚合帧长度信息用于表征待发送的聚合帧的长度信息,更新后的所述聚合帧长度信息用于表征本次发送的聚合帧的长度信息。
另一方面,基于相同的发明构思,本申请通过本申请的一实施例,提供如下技术方案:
一种用于数据子帧聚合重传的硬件重传方法,应用于上述任一实施例所述的硬件重传电路,包括:对接收的所述当前BA帧进行分析,得出与重传子帧关联的第一信息,所述当前BA帧用于表征上次发送的聚合帧中各子帧的传输情况,所述初传子帧包含所述重传子帧;根据所述第一信息,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新;根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明通过由***内存读取模块、寄存器、BA帧分析电路及重传聚合电路组成的硬件重传电路,实现了对接收端返回的当前BA帧的分析以及重传子帧的发送,将传统技术中由上层软件完成的重传分析工作,替换为由硬件重传电路实现,相比于软件处理而言,本方案处理速度更快,减小了***由于聚合重传而导致的额外时间开销,提升了传输吞吐率,并大大减小了***主处理器的负载。并且本方案通过寄存器存储N个初传子帧对应的N个描述符,并通过重传聚合电路对重传子帧对应的描述符进行更新,后续从主存储区中读取重传子帧时仅需根据更新过的重传子帧对应的描述符进行读取即可,而无需重新从主存储区中去读取重传子帧的描述符,进一步加快了处理速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请较佳实施例提供的一种用于数据子帧聚合重传的硬件重传电路的电路结构图;
图2为本申请较佳实施例提供的一种用于数据子帧聚合重传的硬件重传方法的流程图。
具体实施方式
本申请实施例通过提供一种用于数据子帧聚合重传的硬件重传电路及方法,解决了现有技术BA帧的分析及子帧的聚合重传利用控制层处理,效率较低,对***整体的吞吐率有较大的影响并且增加了主处理器的负载。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种用于数据子帧聚合重传的硬件重传电路,包括:寄存器,所述寄存器中存储有N个初传子帧对应的N个描述符,N为大于1的正整数;单块确认BA帧分析电路,用于对接收的当前BA帧进行分析,得出与重传子帧关联的第一信息,所述当前BA帧用于表征上次发送的聚合帧中各子帧的传输情况,所述初传子帧包含所述重传子帧;重传聚合电路,用于根据所述第一信息,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新;***内存读取模块,用于根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。本发明通过由***内存读取模块、寄存器、BA帧分析电路及重传聚合电路组成的硬件重传电路,实现了对接收端返回的当前BA帧的分析以及重传子帧的发送,将传统技术中由上层软件完成的重传分析工作,替换为由硬件重传电路实现,相比于软件处理而言,本方案处理速度更快,减小了***由于聚合重传而导致的额外时间开销,提升了传输吞吐率,并大大减小了***主处理器的负载。并且本方案通过寄存器存储N个初传子帧对应的N个描述符,并通过重传聚合电路对重传子帧对应的描述符进行更新,后续从主存储区中读取重传子帧时仅需根据更新过的重传子帧对应的描述符进行读取即可,而无需重新从主存储区中去读取重传子帧的描述符,进一步加快了处理速度。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
如图1所示,本实施例提供了一种用于数据子帧聚合重传的硬件重传电路,包括:
寄存器13,所述寄存器13中存储有N个初传子帧对应的N个描述符,N为大于1的正整数,寄存器13仅仅存储描述符,相比于直接存储初传子帧,更加节省寄存器13规模。所述寄存器13存储的N个初传子帧对应的N个描述符可以由控制层给定。
单块确认BA帧分析电路11,用于对接收的当前BA帧进行分析,得出与重传子帧关联的第一信息,所述当前BA帧用于表征上次发送的聚合帧中各子帧的传输情况,所述初传子帧包含所述重传子帧;需要说明的是,所述当前BA帧可以是对N个初传子帧进行反馈,也可以是对重传子帧进行反馈,也就是说上次发送的聚合帧由所述N个待聚合子帧聚合或上次传输失败的子帧聚合而成,本方案不局限于是第一次重传、还是第几次重传,只要N个初传子帧中仍存在传输失败的任何一个子帧,均需要重传。
重传聚合电路12,用于根据所述第一信息,对存储在所述寄存器13中的所述重传子帧对应的描述符进行更新;需要说明的是,实际实施过程中,本领域技术人员在本实施例的基础上,无需付出创造性劳动即可获知,除了仅更新重传子帧对应的描述符,也可对传输成功的子帧对应的描述符进行更新,均是以区分出重传子帧为目的,均应视为在本发明的保护范围内。
***内存读取模块14,用于根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。对应的,本领域技术人员在本实施例的基础上,无需付出创造性劳动即可获知,除了根据更新后的重传子帧对应的描述符读取,也可根据更新后的传输成功的子帧对应的描述符读取,均是以区分出重传子帧为目的,均应视为在本发明的保护范围内。
需要说明的是,本实施例中的硬件重传电路之间的控制逻辑是由控制器控制完成的,该控制器可以内置于BA帧分析电路、重传聚合电路、***内存读取模块各个电路模块中,进行交互控制。作为一种可选的实施例,本实施例中的硬件重传电路之间的控制逻辑是由状态机控制完成。
具体的,单个所述描述符中存储有子帧地址信息、第一信息及第二信息;重传聚合电路12,用于根据所述第一信息,对存储在所述寄存器13中的所述重传子帧对应的描述符中存储的第二信息进行更新,所述第二信息用于标识所述重传子帧;***内存读取模块14,用于根据所述第二信息,确定所述重传子帧对应的描述符,并根据所述重传子帧对应的描述符中存储的所述子帧地址信息,从主存储区中读取所述重传子帧并发送,发送给基带电路进行信号处理,最终通过射频电线模块发送给接收端。
更进一步的,所述子帧地址信息包括子帧起始地址信息和子帧长度信息。
需要说明的是,通过寄存器13存储有N个初传子帧对应的N个描述符,并通过重传聚合电路12对重传子帧对应的描述符进行更新,当需要硬件重传的时候不需要再次读取主存储区中的描述符,而是根据寄存器13内重新更新的第二信息确定重传子帧对应的描述符,进而读取各子帧。需要处理的数据量大大减少,处理速度大大提升。
作为一种可选的实施例,所述硬件重传电路还包括状态机,所述状态机用于:
当接收到所述当前BA帧,控制所述BA帧分析电路11对所述当前BA帧进行分析,得出与重传子帧关联的第一信息,并控制所述重传聚合电路12根据所述第一信息,对所述重传子帧对应的描述符进行更新;需要说明的是,若BA帧分析电路11对所述当前BA帧进行分析后,发现所有的子帧均发送成功,控制硬件重传电路回到初始状态,准备下一个初传聚合帧的传输;
当所述重传子帧对应的描述符更新完成后,控制所述***内存读取模块14根据更新后的所述重传子帧对应的描述符,从所述主存储区中读取所述重传子帧并发送;
当所述重传子帧完成后,控制所述BA帧分析电路11等待接收下一BA帧,下一BA帧用于表征本次发送的聚合帧中各子帧的传输情况。如果下一BA帧表征本次发送的聚合帧中各子帧均传输成功,则控制硬件重传电路回到初始状态,准备下一个初传聚合帧的传输,若下一BA帧表征本次发送的聚合帧中存在传输失败的子帧,则进入下一次重传。
本实施例中的硬件重传电路之间的控制逻辑是由状态机控制完成。
作为一种可选的实施例,所述状态机还用于:
当接收到特定描述符信息时,控制所述***内存读取模块14根据所述特定描述符信息,将所述N个描述符存入所述寄存器13;实际实施过程中,特定描述符信息可以直接为N个初传子帧对应的N个描述符本身;也可以为N个描述符的起始地址信息。
当所述N个描述符存储完成后,控制所述***内存读取模块14根据所述N个描述符从所述主存储区中获取所述N个初传子帧并发送;
当所述N个初传子帧发送完成后,控制所述BA帧分析电路11等待接收所述当前BA帧。
需要说明的是,本实施例将初传子帧的聚合发送也放到硬件重传电路发送,能够进一步减小了***由于聚合重传而导致的额外时间开销,提升了传输吞吐率,并大大减小了***主处理器的负载。
作为一种可选的实施例,所述特定描述符信息为起始描述符的起始地址信息,所述起始描述符为所述N个描述符中存储地址最靠前的描述符,所述描述符存储于所述主存储区中,单个所述描述符中包括下一个描述符起始地址信息;
所述***内存读取模块14,还用于根据所述起始描述符的起始地址信息及所述下一个描述符起始地址信息,依次从所述主存储区中读取出包含所述起始描述符在内的所述N个描述符并存入所述寄存器13。
需要说明的是,控制层将具有相同接收端地址的N个初传子帧对应的N个描述符配置好,并将N个描述符的下一个描述符起始地址信息配置好,本实施例中,起始描述符的起始地址信息及N个描述符中的下一个描述符起始地址信息所形成的描述符链,为控制层给定的需要聚合的N个初传子帧对应的N个描述符,此N个初传子帧具有相同的接收端地址。
作为一种可选的实施例,所述***内存读取模块14,具体用于当存完第i个描述符后,根据所述第i个描述符的第一字段信息判断所述第i个描述符是否为最后一个子帧描述符;其中,单个所述描述符中存储有所述第一字段信息,所述第一字段信息用于表征所述描述符对应的子帧是否为最后一个子帧描述符;
若所述第i个描述符是最后一个子帧描述符,则N个描述符存储完成;
若所述第i个描述符不是最后一个子帧描述符,根据所述第i个描述符中的下一个描述符起始地址信息,读取第i+1个描述符,i依次递增,直至读取到所述最后一个子帧描述符并存储后,则所述N个描述符存储完成,其中,i为小于或等于N的正整数。
作为一种可选的实施例,所述BA帧分析电路11包括:
错误判断电路,用于根据所述当前BA帧的SSC号、所述上次发送的聚合帧的起始序列号及结束序列号,确定出所述重传子帧对应的第一序列号、未确定传输情况的子帧对应的第二序列号以及上次发送成功的子帧对应的第四序列号;其中,所述当前BA帧包括所述SSC号及bitmap信息,所述SSC号为所述bitmap信息所对应的第一个子帧的序列号,所述起始序列号为所述上次发送的聚合帧中第一个子帧的序列号,所述结束序列号为所述上次发送的聚合帧中最后一个子帧的序列号,所述序列号为所述N个初传子帧按照发送的顺序编排的号数,所述N个描述符中存储有所述序列号,单个所述序列号与单个所述描述符一一对应;
具体的,当收到BA帧后,首先需要读取BA帧中提供的SSC号和64位的bitmap信息,其中SSC就提供了bitmap信息所代表的64个子帧中序列号最前面的那个子帧的序列号;而bitmap信息中的每一位则代表了一个子帧的接收情况,为“0”代表未接收或接收异常,为“1”代表接收成功。因此如果BA帧内的SSC为1,即表示64位的bitmap分别代表序列号为1至64的接收情况。
此外由于子帧的序列号是循环使用的,从0开始递增到4095循环使用。因此如果SSC号为4090,则bitmap信息代表的就是序列号位4090至4095,以及序列号0至57的64个子帧的接收情况。另外需要注意的是BA帧中的SSC号未必与上次发送的聚合帧的起始序列号相同,BA帧反馈的仅是接收端当前接收到的子帧的情况。举例来说,如果发送的聚合帧中各个子帧的序列号为100至163,但是BA帧内的SSC号可能为100,也可能为90,甚至可能为36。因此需要根据实际发送的子帧的序列号和收到的SSC号对bitmap进行处理后,才能用于具体的子帧传输情况判断。在具体电路实现中,需要分为以下几种情况:
情况1:bitmap信息内最后一个子帧的序列号(SSC号+64)小于发送的最后一个子帧的序列号(结束序列号)。这种情况下发送的子帧中序列号小于bitmap信息内最后一个子帧的序列号的子帧为未确定传输情况的子帧,对应的序列号为未确定传输情况的子帧对应的第二序列号,需要根据bitmap信息进行判断;而大于bitmap信息内最后一个子帧的序列号的子帧全部判断为传输失败的子帧,即重传子帧,对应的序列号为重传子帧对应的第一序列号。例如发送的子帧的序列号为11至74,而回复的BA帧中SSC号为0,因此bitmap信息代表的是序列号0至63的子帧的接收情况,因此11至63的接收情况要根据bitmap对应位的信息来判断,11至63即为第二序列号,而64至74的子帧判断为传输失败,64至74即为第一序列号。
情况2:BA帧的SSC号大于发送的第一个子帧的序列号(上次发送的聚合帧的起始序列号)。这种情况下认为序列号小于SSC号的子帧均已发送成功,即确定为上次发送成功的子帧,对应的序列号为上次发送成功的子帧对应的第四序列号;而大于SSC号的子帧为未确定传输情况的子帧,对应的序列号为未确定传输情况的子帧对应的第二序列号,则根据bitmap信息进行判断。例如发送的子帧的序列号为11至74,而回复的SSC号为20,因此20至74的子帧为未确定传输情况的子帧,20至74为第二序列号,20至74的的发送情况,根据bitmap内的具体信息来判断,而11至19为第四序列号,已经发生成功。
情况3:bitmap信息内最后一个子帧的序列号小于发送的第一个子帧的序列号(上次发送的聚合帧的起始序列号)。这种情况下认为所有的子帧均为发送失败,所有的子帧确定为重传子帧对应的第一序列号,对应的序列号确定为重传子帧对应的第一序列号。例如发送的子帧的序列号为11至74,而回复的SSC号为4040,因此bitmap信息代表的是4040至4095,以及0至8的子帧的接收情况,在这种情况下认为发送的所有子帧均失败,即11-74为第一序列号。
其他情况下,均确定为未确定传输情况的子帧,对应的序列号为未确定传输情况的子帧对应的第二序列号。
需要说明的是,BA帧的SSC号、上次发送的聚合帧的起始序列号及结束序列号、bitmap信息内最后一个子帧的序列号之间的比较需要在同一个循环内。例如:发送的子帧的序列号为11至74,而回复的SSC号为4040,因此bitmap信息代表的是4040至4095,以及0至8的子帧的接收情况,在这种情况下认为发送的所有子帧均失败。8所在的循环与11所在的循环为同一个循环,如果SSC号回复的是4010至4073(为上一个循环),此时,bitmap信息内最后一个子帧的序列号显然大于上次发送的聚合帧的起始序列号,但是实际的情况是4073代表的是之前的子帧的接收情况。
排序运算电路,用于根据所述当前BA帧的SSC号及所述起始序列号,将所述bitmap信息所在的序列与所述上次发送的聚合帧的各子帧的序列对齐,便于获取bitmap信息对应的位所代表的发送端的子帧的序列号;实际实施过程中,排序运算电路由计算逻辑单元搭建。
例如:发送的子帧的序列号为11至74,而回复的BA帧中SSC号为0,bitmap信息代表的是序列号0至63的子帧的接收情况,此时BA帧的SSC号与起始序列号之间相差11位,排序运算电路将bitmap信息向左移动11位,使bitmap信息的第12位对齐上次发送的序列号为11的子帧,便于获取聚合帧的各子帧的序列号对应的接收情况,即表示bitmap信息的第12位的信息对为上次发送的聚合帧中序列号为11的发送情况。
移位判断电路,用于对经过对齐的所述bitmap信息进行移位,对所述未确定传输情况的子帧的传输情况进行判断,确定出所述重传子帧对应的第三序列号及所述上次发送成功的子帧对应的第五序列号,其中,所述第一信息包括所述第一序列号及所述第三序列号。实际实施过程中,移位判断电路包括移位寄存器13。
作为一种可选的实施例,所述重传帧聚合电路还用于:
根据所述第一序列号及所述第三序列号,对存储在所述寄存器13中的所述重传子帧对应的描述符进行更新。
作为一种可选的实施例,所述重传帧聚合电路具体用于:
当确定出第j个重传子帧对应的序列号后,对所述第j个重传子帧对应的第一描述符进行更新,其中,j为小于或等于N的正整数。目的在于,每确定出一个传输失败的子帧,就将该重传子帧对应的描述符进行更新,那么,待完成所有帧的BA结果分析后,重传子帧的描述符也完成更新,进一步加快了处理速度。
作为一种可选的实施例,所述重传帧聚合电路还具体用于:
当确定出所述第j个重传子帧对应的序列号后,根据所述第一描述符内的子帧长度信息对所述第一描述符的聚合帧长度信息及第二描述符的聚合帧长度信息进行更新;其中,所述第二描述符为第j-1个重传子帧对应的描述符,所述聚合帧长度信息用于表征待发送的聚合帧的长度信息,更新后的所述聚合帧长度信息用于表征本次发送的聚合帧的长度信息。
需要说明的是,bitmap信息是按照序列号顺序对各子帧的传输情况进行表征的,因此,第j-1个重传子帧对应的序列号在第j个重传子帧对应的序列号之前被确定,因此,第二描述符在第一描述符之前进行更新。
具体的,每确定出一个传输失败的子帧,表示本次发送的聚合帧的长度有变化,就根据此传输失败的子帧对应的描述符中的子帧长度信息,对此传输失败的子帧对应的描述符中的聚合帧长度信息进行累加。实际实施过程中,以聚合帧长度信息作为第二信息,定位重传子帧对应的描述符,即确定重传子帧。本领域技术人员在本实施例的基础上,无需付出创造性劳动即可获知,除了利用聚合帧长度信息定位重传子帧对应的描述符外,还可以单独对需要重传的重传子帧对应的描述符建立个字段,以表示是否是需要重传的子帧,或者将需要重传的子帧存储在寄存器13特特定区域等,均是以区分出重传子帧为目的,均应视为在本发明的保护范围内。
具体的,描述符可以按照下表进行配置。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
本发明通过由***内存读取模块、寄存器、BA帧分析电路及重传聚合电路组成的硬件重传电路,实现了对接收端返回的BA帧的分析以及重传子帧的发送,将传统技术中由上层软件完成的重传分析工作,替换为由硬件重传电路实现,相比于软件处理而言,本方案处理速度更快,减小了***由于聚合重传而导致的额外时间开销,提升了传输吞吐率,并大大减小了***主处理器的负载。并且本方案通过寄存器存储N个初传子帧对应的N个描述符,并通过重传聚合电路对重传子帧对应的描述符进行更新,后续从主存储区中读取重传子帧时仅需根据更新过的重传子帧对应的描述符进行读取即可,而无需重新从主存储区中去读取重传子帧的描述符,进一步加快了处理速度。
实施例二
基于相同的发明构思,如图2所示,本实施例提供了一种用于数据子帧聚合重传的硬件重传方法,应用于实施例一中任一所述的硬件重传电路,包括:
步骤S101:对接收的BA帧进行分析,得出与重传子帧关联的第一信息,所述当前BA帧用于表征上次发送的聚合帧中各子帧的传输情况,所述初传子帧包含所述重传子帧;
步骤S102:根据所述第一信息,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新;
步骤S103:根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。
作为一种可选的实施例,所述硬件重传方法还包括:
当接收到所述当前BA帧,状态机控制所述BA帧分析电路对所述当前BA帧进行分析,得出与重传子帧关联的第一信息,并控制所述重传聚合电路根据所述第一信息,对所述重传子帧对应的描述符进行更新;
当所述重传子帧对应的描述符更新完成后,状态机控制所述***内存读取模块根据更新后的所述重传子帧对应的描述符,从所述主存储区中读取所述重传子帧并发送;
当所述重传子帧完成后,状态机控制所述BA帧分析电路等待接收下一BA帧。
作为一种可选的实施例,所述硬件重传方法还包括:
当接收到特定描述符信息时,状态机控制所述***内存读取模块根据所述特定描述符信息,将所述N个描述符存入所述寄存器;
当所述N个描述符存储完成后,状态机控制所述***内存读取模块根据所述N个描述符从所述主存储区中获取所述N个初传子帧并发送;
当所述N个初传子帧发送完成后,状态机控制所述BA帧分析电路等待接收所述当前BA帧。
作为一种可选的实施例,所述特定描述符信息为起始描述符的起始地址信息,所述起始描述符为所述N个描述符中存储地址最靠前的描述符,所述描述符存储于所述主存储区中,单个所述描述符中包括下一个描述符起始地址信息;
所述步骤S103,包括:
根据所述起始描述符的起始地址信息及所述下一个描述符起始地址信息,依次从所述主存储区中读取出包含所述起始描述符在内的所述N个描述符并存入所述寄存器。
作为一种可选的实施例,当存完第i个描述符后,根据所述第i个描述符的第一字段信息判断所述第i个描述符是否为最后一个子帧描述符;
若所述第i个描述符是最后一个子帧描述符,则N个描述符存储完成;
若所述第i个描述符不是最后一个子帧描述符,根据所述第i个描述符中的下一个描述符起始地址信息,读取第i+1个描述符,i依次递增,直至读取到所述最后一个子帧描述符并存储后,则所述N个描述符存储完成,其中,i为小于或等于N的正整数。
作为一种可选的实施例,所述步骤S101,包括:
根据所述当前BA帧的SSC号、所述上次发送的聚合帧的起始序列号及结束序列号,确定出所述重传子帧对应的第一序列号以及未确定传输情况的子帧对应的第二序列号;其中,所述当前BA帧包括所述SSC号及bitmap信息,所述SSC号为所述bitmap信息所对应的第一个子帧的序列号,所述起始序列号为所述上次发送的聚合帧中第一个子帧的序列号,所述结束序列号为所述上次发送的聚合帧中最后一个子帧的序列号,所述序列号为所述N个初传子帧按照发送的顺序编排的号数,所述N个描述符中存储有所述序列号,单个所述序列号与单个所述描述符一一对应;
根据所述当前BA帧的SSC号及所述起始序列号,将所述bitmap信息所在的序列与所述上次发送的聚合帧的各子帧的序列对齐;
对经过对齐的所述bitmap信息进行移位,对所述未确定传输情况的子帧的传输情况进行判断,确定出所述重传子帧对应的第三序列号,其中,所述第一信息包括所述第一序列号及所述第三序列号。
作为一种可选的实施例,所述步骤S102,包括:
根据所述第一序列号及所述第三序列号,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新。
作为一种可选的实施例,所述根据所述第一序列号及所述第三序列号,对存储在所述寄存器13中的所述重传子帧对应的描述符进行更新,包括:
当确定出第j个重传子帧对应的序列号后,对所述第j个重传子帧对应的第一描述符进行更新,其中,j为小于或等于N的正整数。
作为一种可选的实施例,所述当确定出第j个重传子帧对应的序列号后,对所述第j个重传子帧对应的第一描述符进行更新,包括:
当确定出所述第j个重传子帧对应的序列号后,根据所述第一描述符内的子帧长度信息对所述第一描述符的聚合帧长度信息及第二描述符的聚合帧长度信息进行更新;其中,所述第二描述符为第j-1个重传子帧对应的描述符,所述聚合帧长度信息用于表征待发送的聚合帧的长度信息,更新后的所述聚合帧长度信息用于表征本次发送的聚合帧的长度信息。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
本发明通过由***内存读取模块14、寄存器13、BA帧分析电路11及重传聚合电路12组成的硬件重传电路,实现了对接收端返回的BA帧的分析以及重传子帧的发送,将传统技术中由上层软件完成的重传分析工作,替换为由硬件重传电路实现,相比于软件处理而言,本方案处理速度更快,减小了***由于聚合重传而导致的额外时间开销,提升了传输吞吐率,并大大减小了***主处理器的负载。并且本方案通过寄存器13存储N个初传子帧对应的N个描述符,并通过重传聚合电路12对重传子帧对应的描述符进行更新,后续从主存储区中读取重传子帧时仅需根据更新过的重传子帧对应的描述符进行读取即可,而无需重新从主存储区中去读取重传子帧的描述符,进一步加快了处理速度。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种用于A-MPDU数据帧聚合重传的硬件重传电路,其特征在于,包括:
寄存器,所述寄存器中存储有N个初传子帧对应的N个描述符,N为大于1的正整数;
单块确认BA帧分析电路,用于对接收的当前BA帧进行分析,得出与重传子帧关联的第一信息,所述当前BA帧用于表征上次发送的聚合帧中各子帧的传输情况,所述初传子帧包含所述重传子帧;
重传聚合电路,用于根据所述第一信息,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新;
***内存读取模块,用于根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。
2.如权利要求1所述的硬件重传电路,其特征在于,还包括状态机,所述状态机用于:
当接收到所述当前BA帧,控制所述BA帧分析电路对所述当前BA帧进行分析,得出与所述重传子帧关联的第一信息,并控制所述重传聚合电路根据所述第一信息,对所述重传子帧对应的描述符进行更新;
当所述重传子帧对应的描述符更新完成后,控制所述***内存读取模块根据更新后的所述重传子帧对应的描述符,从所述主存储区中读取所述重传子帧并发送;
当所述重传子帧完成后,控制所述BA帧分析电路等待接收下一BA帧。
3.如权利要求2所述的硬件重传电路,其特征在于,所述状态机还用于:
当接收到特定描述符信息时,控制所述***内存读取模块根据所述特定描述符信息,将所述N个描述符存入所述寄存器;
当所述N个描述符存储完成后,控制所述***内存读取模块根据所述N 个描述符从所述主存储区中获取所述N个初传子帧并发送;
当所述N个初传子帧发送完成后,控制所述BA帧分析电路等待接收所述当前BA帧。
4.如权利要求3所述的硬件重传电路,其特征在于,所述特定描述符信息为起始描述符的起始地址信息,所述起始描述符为所述N个描述符中存储地址最靠前的描述符,所述描述符存储于所述主存储区中,单个所述描述符中包括下一个描述符起始地址信息;
所述***内存读取模块,还用于根据所述起始描述符的起始地址信息及所述下一个描述符起始地址信息,依次从所述主存储区中读取出包含所述起始描述符在内的所述N个描述符并存入所述寄存器。
5.如权利要求4所述的硬件重传电路,其特征在于,所述***内存读取模块,具体用于当存完第i个描述符后,根据所述第i个描述符的第一字段信息判断所述第i个描述符是否为最后一个子帧描述符;
若所述第i个描述符是最后一个子帧描述符,则N个描述符存储完成;
若所述第i个描述符不是最后一个子帧描述符,根据所述第i个描述符中的下一个描述符起始地址信息,读取第i+1个描述符,i依次递增,直至读取到所述最后一个子帧描述符并存储后,则所述N个描述符存储完成,其中,i为小于或等于N的正整数。
6.如权利要求1所述的硬件重传电路,其特征在于,所述BA帧分析电路包括:
错误判断电路,用于根据所述当前BA帧的SSC号、所述上次发送的聚合帧的起始序列号及结束序列号,确定出所述重传子帧对应的第一序列号以及未确定传输情况的子帧对应的第二序列号;其中,所述当前BA帧包括所述SSC号及bitmap信息,所述SSC号为所述bitmap信息所对应的第一个子帧的序列号,所述起始序列号为所述上次发送的聚合帧中第一个子帧的序列号,所述结束序列号为所述上次发送的聚合帧中最后一个子帧的序列号,所述序列号为所述N个初传子帧按照发送的顺序编排的号数,所述N个描述符中存储有所述序列号,单个所述序列号与单个所述描述符一一对应;
排序运算电路,用于根据所述当前BA帧的SSC号及所述起始序列号,将所述bitmap信息所在的序列与所述上次发送的聚合帧的各子帧的序列对齐;
移位判断电路,用于对经过对齐的所述bitmap信息进行移位,对所述未确定传输情况的子帧的传输情况进行判断,确定出所述重传子帧对应的第三序列号,其中,所述第一信息包括所述第一序列号及所述第三序列号。
7.如权利要求6所述的硬件重传电路,其特征在于,所述重传聚合电路还用于:
根据所述第一序列号及所述第三序列号,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新。
8.如权利要求7所述的硬件重传电路,其特征在于,所述重传帧聚合电路具体用于:
当确定出第j个重传子帧对应的序列号后,对所述第j个重传子帧对应的第一描述符进行更新,其中,j为小于或等于N的正整数。
9.如权利要求8所述的电路,其特征在于,所述重传帧聚合电路还具体用于:
当确定出所述第j个重传子帧对应的序列号后,根据所述第一描述符内的子帧长度信息对所述第一描述符的聚合帧长度信息及第二描述符的聚合帧长度信息进行更新;其中,所述第二描述符为第j-1个重传子帧对应的描述符,所述聚合帧长度信息用于表征待发送的聚合帧的长度信息,更新后的所述聚合帧长度信息用于表征本次发送的聚合帧的长度信息。
10.一种用于数据子帧聚合重传的硬件重传方法,应用于权利要求1-9中任一权项所述的硬件重传电路,其特征在于,包括:
对接收的所述当前BA帧进行分析,得出与重传子帧关联的第一信息,所述当前BA帧用于表征上次发送的聚合帧中各子帧的传输情况,所述初传子帧包含所述重传子帧;
根据所述第一信息,对存储在所述寄存器中的所述重传子帧对应的描述符进行更新;
根据更新后的所述重传子帧对应的描述符,从主存储区中读取所述重传子帧并发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957026.8A CN110620639B (zh) | 2019-10-09 | 2019-10-09 | 一种用于数据子帧聚合重传的硬件重传电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957026.8A CN110620639B (zh) | 2019-10-09 | 2019-10-09 | 一种用于数据子帧聚合重传的硬件重传电路及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110620639A CN110620639A (zh) | 2019-12-27 |
CN110620639B true CN110620639B (zh) | 2022-01-21 |
Family
ID=68925287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910957026.8A Active CN110620639B (zh) | 2019-10-09 | 2019-10-09 | 一种用于数据子帧聚合重传的硬件重传电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110620639B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113866502B (zh) * | 2021-12-02 | 2022-02-22 | 深圳市鼎阳科技股份有限公司 | 频谱分析仪及其数据扫描和处理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7551638B2 (en) * | 2005-03-31 | 2009-06-23 | Intel Corporation | Network interface with transmit frame descriptor reuse |
CN101754272B (zh) * | 2008-12-12 | 2013-05-15 | 北京中电华大电子设计有限责任公司 | 一种802.11n块传输机制的实现方法 |
CN102790668B (zh) * | 2011-05-18 | 2016-08-03 | 中兴通讯股份有限公司 | 一种处理重传数据的方法及基站 |
US9560594B2 (en) * | 2013-05-15 | 2017-01-31 | Qualcomm Incorporated | Access point response to PS-Poll |
CN104065452B (zh) * | 2014-04-30 | 2017-10-13 | 魅族科技(中国)有限公司 | 一种无线通信方法、相关设备及*** |
CN106161583B (zh) * | 2015-05-12 | 2020-02-21 | 华为技术有限公司 | 一种块确认帧的传输方法及设备 |
CN105471549B (zh) * | 2015-11-17 | 2018-09-11 | 西安电子科技大学 | 基于a-mpdu子帧位置信息控制的块确认***及方法 |
-
2019
- 2019-10-09 CN CN201910957026.8A patent/CN110620639B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110620639A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1139219C (zh) | 通过使用奇偶校验组合实施混合自动重复请求的方法和设备 | |
CN102761509A (zh) | Ofdm***的接收***及降低接收***内存的方法 | |
JPH1132077A (ja) | 送信制御装置、受信制御装置、通信制御システム及び通信制御方法 | |
CN102082649B (zh) | 使用针对选择性重传的滑动窗口协议进行数据通信的***和方法 | |
CN114244780B (zh) | 一种数据传输方法、数据传输装置和相关设备 | |
WO2018171641A1 (zh) | 网络管理信息的收发方法、装置、发送设备和接收设备 | |
USRE43151E1 (en) | Acknowledging data transmissions in the presence of multiple shared-communications channels | |
CN103188059A (zh) | 快速通道互联***中数据包重传方法、装置和*** | |
US5875292A (en) | Packet transmission method without sending serial numbers | |
CN111641638A (zh) | 一种数据传输方法及相关装置 | |
CN110620639B (zh) | 一种用于数据子帧聚合重传的硬件重传电路及方法 | |
CN101507318A (zh) | 移动通信***中使用的无线通信装置及方法 | |
US5958080A (en) | Method and apparatus for detecting and recovering from errors occurring in a transmission of digital information | |
EP4096195B1 (en) | Acknowledgement coalescing module utilized in content addressable memory (cam) based hardware architecture for data center networking | |
US7436777B2 (en) | Failed link training | |
CN112532359B (zh) | 接收端基于数据重传数据进行内容合并的方法及装置 | |
CN107359972A (zh) | 一种数据接收方法及装置 | |
US7363402B2 (en) | Data communications architecture employing parallel SERDES channels | |
CN107257265A (zh) | 实时传输数据流前向纠错方法、设备及存储介质 | |
JPH0621923A (ja) | 無線通信方法 | |
US20050160328A1 (en) | Corrupt data | |
US20050152386A1 (en) | Successful transactions | |
US7672222B2 (en) | Link failures | |
CN103873192A (zh) | 数据处理方法及装置 | |
US7310762B2 (en) | Detection of errors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220523 Address after: 310051 Room 502, floor 5, building 9, No. 19, Jugong Road, Xixing street, Binjiang District, Ningbo City, Zhejiang Province Patentee after: Zhejiang Kerui Microelectronics Technology Co.,Ltd. Address before: Room 210-045, 2 / F, building 003, 750 Chuangyuan Road, high tech Zone, Ningbo, Zhejiang 315000 Patentee before: Zhongke Rui micro (Ningbo) Electronic Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |