首页> 中国专利> 利用突发状态下的数据包的ARQ和选择性重传流式无线电通信

利用突发状态下的数据包的ARQ和选择性重传流式无线电通信

摘要

一种用于数据包流式传输的系统,包括具有无线电收发器(10)的源设备(2),和具有无线电收发器(14)的接收设备(4)。所述源设备(2)被配置为以一码流率接收或产生数据包流;并通过无线电发送连续的数据帧,每个数据帧包括来自之前没有被发送的所述流的一个或多个数据包(22a)的连续的集合。所述接收设备(4)被配置为接收数据帧,并确定在所述数据帧中的一个或多个数据包(22a)是否已被正确或不正确地接收;并配置为通过无线电发送确认消息(22c),所述确认消息(22c)表示所述数据包(22a)中的一个或多个已被正确地接收,和/或被配置为通过无线电发送确认消息,所述确认消息表明所述数据包中的一个或多个没有被正确地接收。所述源设备(2)被配置成:如果该源设备(2)确定数据包(22a)没有正确地被接收设备接收,那么所述源设备将随后的数据帧中的数据包(24b)与以前没有发送的来自流的一个或多个数据包(24a)一起重新发送。所述源设备(2)还被配置成:如果该源设备发送了数据帧后,没有在确认时间段内接收到确认消息(24c),那么所述源设备(2)会将来自随后的一个或多个数据帧中的数据帧的一个或多个数据包(26b)与相应的以前没有发送的来自流的一个或多个数据包(26a)一起重新发送。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-22

    未缴年费专利权终止 IPC(主分类):H04L1/16 授权公告日:20170825 终止日期:20190606 申请日:20120606

    专利权的终止

  • 2017-08-25

    授权

    授权

  • 2014-06-25

    实质审查的生效 IPC(主分类):H04L1/16 申请日:20120606

    实质审查的生效

  • 2014-04-16

    公开

    公开

说明书

技术领域

本发明涉及通过无线电进行的数据包流的通信。

背景技术

有时需要通过无线电将短期数据包由从发射器可靠地流式传输到接收器。

例如,无线麦克风可以通过一条数字无线电链路连接到公共广播系统。来自所述麦克风的音频数据必须以最小的延时接收、解码和放大,以提供可接受的用户体验。另一个例子是通过无线电链路将音频数据流式传输到家庭影院系统的无线低音炮,其中来自低音炮的信号必须与来自其他(可能是有线的)扬声器的音频信号同步。另一个例子是,在现场直播的情况下,电视摄像机通过无线电链路将视听数据流式传输到处理中心。

在所有这些例子中,只能容忍非常小的数据接收缓冲区(例如,在几毫秒或几十毫秒的级别,例如,约25毫秒)。

数字无线电链路可能受到来自其他附近无线电发射器和环境噪声的干扰,造成传输中多个数据包中的一个损坏或丢失。这可能会导致接收器处的信息遗漏,导致不完美的输出。在音频情况中,接收器的编解码器在面对丢失的数据时,不得不引入静默时间段。

当在数字无线电链路上流式传输数据时,已知的是接收器缓冲接收到的数据包,并对任何由于干扰已损坏的数据包请求重传。如果无线链路上有足够的备用容量,所述音频发射器将重传指定的数据包。

发明内容

然而,在干扰很显著或是长期的时候,这种机制仍然容易承受缓冲区下溢。本发明提供一个更可靠的方案。

一方面,本发明提供了一种用于流式传输数据包的系统,所述系统包括具有无线电收发器的源设备和具有无线电收发器的接收设备,其特征在于:

所述源设备被配置为以一码流率接收或产生数据包流;

所述源设备被配置为通过无线电发送连续的数据帧,每个数据帧包括来自之前没有被发送的流的一个或多个数据包的连续的集合;

所述接收设备被配置为接收数据帧,并确定在所述数据帧中所述一个或多个数据包是否已被正确地或没有被正确地接收;

所述接收设备被配置为通过无线电发送确认消息,所述确认消息表明所述数据包中的一个或多个已被正确地接收,和/或被配置为通过无线电发送确认消息,所述确认消息表明所述数据包中的一个或多个没有被正确地接收;

所述源设备被配置为使得,如果该源设备已经确定数据包没有被接收设备正确地接收,那么所述源设备会将随后的数据帧中的数据包与以前没有发送的来自所述流的一个或多个数据包一起重新发送;以及

所述源设备被配置为使得,如果该源设备发送了数据帧后,没有在确认时间段内接收到确认消息,那么所述源设备会将来自随后的一个或多个数据帧中的数据帧的一个或多个数据包与相应的以前没有发送的来自所述流的一个或多个数据包一起重新发送。

另一个方面,本发明提供一种从具有无线电收发器的源设备到具有无线电收发器的接收设备的数据包通信的方法,所述方法包括:

所述源设备以一码流率接收或产生数据包流;

所述源设备通过无线电发送连续的数据帧,每个数据帧包括来自之前没有被发送的所述流的一个或多个数据包的连续的集合;

所述接收设备接收数据帧,并确定在所述数据帧中的所述一个或多个数据包是否已被正确或没有被正确地接收;

所述接收设备通过无线电发送确认消息,所述确认消息表明所述数据包中的一个或多个已被正确地接收,和/或通过无线电发送确认消息,所述确认消息表明所述数据包中的一个或多个没有被正确地接收;

其中,如果所述源设备已经确定数据包没有正确地被所述接收设备接收,那么所述源设备会将随后的数据帧中的数据包与来自以前没有发送的流的一个或多个数据包一起重新发送;以及

其中,如果所述源设备发送了数据帧后,没有在确认时间段内接收到确认消息,那么所述源设备会将来自随后的一个或多个数据帧中的数据帧的一个或多个数据包与相应的以前没有发送的来自流的一个或多个数据包一起重新发送。

本发明还扩展到具有无线电发射器的源设备,并且被配置成:

以一码流率接收或产生数据包流;

通过无线电发送连续的数据帧,每个所述数据帧包括来自之前没有被发送的数据流的一个或多个数据包的连续集合;

确定数据包没有被接收设备正确地接收,作为回应,将随后的数据帧中的数据包与来自以前没有发送的所述流的一个或多个数据包一起重新发送;以及

如果所述源设备发送了数据帧后,没有在确认时间段内接收到确认消息,那么该源设备会将来自随后的一个或多个数据帧中的数据帧的一个或多个数据包与相应的以前没有发送的来自所述流的一个或多个数据包一起重新发送。

本发明进一步扩展到具有无线电发射器的接收设备,其中:

所述接收设备被配置为:通过无线电接收数据帧,所述数据帧包括之前没有被发送的来自数据包流的一个或多个数据包;确定在所述数据帧中的一个或多个数据包是否已被正确或没有被正确地接收;

所述接收设备被配置为通过无线电发送确认消息,所述确认消息表明一个或多个数据包已被正确地接收,和/或被配置为通过无线电发送确认消息,所述确认消息表明一个或多个数据包没有被正确地接收;

所述接收设备被配置成接收在随后的数据帧中重新发送的数据包以及以前没有发送的来自所述流的一个或多个数据包;以及

所述接收设备被配置为输出所接收的数据包流。

因此,本技术领域的技术人员将会看到,根据本发明,所述接收设备可以请求重传损坏的数据包,但如果确认消息没有到达源设备,所述源设备仍将重传所有受影响的数据包。与某些以前的方案相反,在以前方案中,损坏的数据包将永远不会被重传;对于音频流应用程序,这可能在可闻输出中导致不希望的假象。

优选地,每个数据包包括或是伴随有标识符,例如数字。所述源设备可以按数据包从流中通过的顺序,为每个数据包标记一个序列号。所述源设备可以包括计数器,所述计数器配置成产生将成为标识符的一系列序列号。所述序列号可在达到最大数目后循环,例如,所述源设备可以使用6位计数器来产生从0到63一个循环的序列号。所述最大计数优选与所述系统的延时至少一样大,所述系统的延时被表述为在所述码流率时数据包的数目。

所述系统的延时可以被看成是在所述源设备发送数据包流和所述流的内容被输出或是被所述接收设备处理之间的固定或平均延迟。忽略发送和接收的延迟,所述系统的延时可以通过在接收设备中的缓冲区的大小来确定。在输出之前,所接收的数据可作为接收数据流被缓冲或者进行其他处理。这个延时值是可配置的,较高的延时,通常会降低接收的数据流中的错误概率,但在某些情况下,从发送到输出的较高延时可能是不理想的。

所述接收设备还可以包括计数器。该计数器可以在达到最大数目后循环,就像源设备中的计数器一样。这两种计数器在初始化过程中可同步(例如,都设置为零)。

所述接收设备可以为每个接收的数据帧递增其计数器。优选的,所述源设备发送恒定数目的从每个数据帧中所述流的前端取得的数据包。在这种情况下,所述接收设备可以用其接收的每个数据帧的恒定数目的数据包来递增其计数器。即使数据帧的部分或全部内容都没有被正确地接收,例如因为干扰而损坏,都可以这样做。以这种方式,可以在源设备和接收设备的计数器之间保持同步,只要数据帧没有完全丢失。如果数据帧完全丢失,可能会需要重新初始化的过程,除非接收设备也是或者可替代地,被配置为基于时间的流逝来递增其来计数器,如下面描述。

数据帧可能以不规则的时间间隔发送,但最好是以恒定的帧速率周期性地发送。所述帧速率通常与每帧中的数据包的数量的码流率相关。

在数据帧内,数据包可以用任何顺序发送。特别是,新数据包可以在重传的数据包之前或之后发送。数据包可以包括头信息、源地址、目的地址、序列号、数据负载、以及校验和中的一个或多个。数据负载可包括流数据或命令数据或两者兼有。例如,它可以包括音频数据或指令,如音量增加/减小,停止/播放,静音等。

在数据帧中的任何校验和,标识符等的位置和性质并不仅限于任何特定的配置。在一些实施例中,这样的信息甚至可以通过不同的信道发送,如对于数据包而言另外的无线电频率上。

如果使用恒定的帧速率,所述接收设备可以被配置为依赖所述帧速率随着时间的推移递增其计数器,即使它没有接收到特定数据帧。以这种方式,所述接收设备能与源设备的计数器保持同步,即使一个或多个数据帧在传输中完全丢失(例如,如果在一帧中的所有的数据包丢失)。类似地,如果所述接收设备接收了数据帧,其中,标识符与在最后接收的数据帧中的标识符不连续,它可能会将其计数器与新的标识符重新校准(意指数据帧已完全丢失)。

数据包优选地包括或是伴随有一种信息,所述接收设备可以用这种信息来检测所接收的数据包的内容是正确或不正确。这种信息可能是校验和或散列值。

所述确认消息可以包括标识一个或多个数据包已被正确地接收的信息。可替换地或附加地,它可包括标识一个或多个数据包被错误地接收(例如,由于干扰而损坏)的信息。

所述确认消息可以是,例如,包括没有被正确地接收(或已被正确地接收)的数据包的标识符的列表。然而,当其导致潜在的冗长确认消息时,这不是非常有效率的。因此,在一些优选的实施例中,所述确认消息包括与相应数据包关联的标志(例如,布尔值)的集合,其中,每个标志表明是否已经正确收到相应的数据包。

所述标志集合可以作为所述确认消息内的比特数组进行通信,如,在特定位置的“0”比特表示相应的数据包已经正确收到,以及“1”比特表示它没有被接收到或已经接收到被损坏的(或反之亦然)。

所述确认消息可能包含通用的,恒定数目的这种标志。在一些优选的实施例中,它与应用到数据包的特定的标识符相同,如,和在所述源设备中的计数器所产生的特定的值的数目相同(例如,6位计数器的64个标志)。这样的安排允许接收设备特别有效地构造确认消息,因为每个标志位置能总是对应于特定的计数器值(例如,数据包的标识符0占据比特数组的最左边位置和数据包标识符63占据比特数组的最右边位置)。

然而,在其它实施例中,在所述确认消息中的标志的数目可以等于所述系统的固定或最大延时。如果延时小于特定标识符的数目,这能够导致较短的确认消息,但它可能需要更多的处理工作,用于所述接收设备构造确认消息。例如,在比特数组最右边的位置对应于最近发送的数据帧中的最新的数据包,而最左边的位置对应于在历史延时期间内最早的数据包;然而,数据包标识符将不会与所述比特数组中任何特定位置有固定关系,除非计数器的最大值恰好等于延时周期(表示为数据包的数目)。

所述接收设备可维护一个主标志集合,如在RAM或在寄存器中,它在接收每个数据帧后更新。然后,每个确认消息可包含部分或全部主标志集合的副本。

所述源设备最好也维护一个标志集合,如在RAM或在寄存器中,它在接收每个数据帧后更新,以便与在确认消息中的标志值对应。

当源设备发送的数据帧包含一个或多个数据包时,所述源设备可以就被传送的数据包更新其标志集合,以表明所述数据包(还)没有被正确地接收。为此,它可能在每次数据帧发送期间这样做,可以在发送数据帧前后,或者仅仅当它在确认时间段内没有收到数据帧的确认消息时才这么做。

在这种方式中,如果相应的确认消息没有正确地到达源设备,以及如果源设备接收到的确认消息表明一个或多个数据包没有正确到达时,数据包将被标记用于重传。

不仅表明一个或多个数据包已正确或不正确接收,确认消息还可以包括头信息、源地址、目的地址、序列号、数据负载、校验和中的任何一个或多个。所述数据负载可包括命令数据,例如音量增高/降低,停止/播放,静音等的指令。甚至可能包括流式数据,如音频数据。

所述确认时间段可以有恒定的时长,所述恒定的时长可由源设备定时。它可以短于或长于帧的时长。然而,优选地,它由数据帧的端点确定,例如该端点位于所述源设备开始组装或发送下一个数据帧时,或其不久之前。在实施例中优选的是,无线电收发器在半双工中进行通信。

在接收到确认消息时,源设备确定哪些数据包应该被重传,如果有的话。

每个数据帧可以具有用于仅仅是有限数量的重传的数据包(即,在所述流的前端新获取的数据包之外的数据包)的空间。该重传容量可能会小于该系统的延时,这意味着,在严重干扰的情况下,需要在超过一个的数据帧之间划分重传的数据包。

在一些优选的实施例中,用于重传的优先权被给予待重传的最早的数据包,只要它仍然在延时(缓冲)期间,标志用于重传的最新数据包被给予最低优先级。所述源设备可以将数据包按优先级的降序置于数据帧中,直到达到了用于数据帧的重传容量。

在重传过程中数据包可能损坏,该系统因此多次重传同一数据包(在数据包的延时存期内)。

如果源设备维护一个标志集合,如前所述,那么,在组装数据帧时,它优选确定k个最近发送的数据包中的哪些标记用于重传,其中k是该系统的延时(表示为数据包的数量)。所述源设备于是包括在数据帧中这些数据包中最早的m,其中m是数据帧的重传容量。

通过忽略比延时时间段更老的数据包相关的标志,信道容量不会浪费在已过期的重传数据包上。

以这种方式的优先重传被认为是特别有益于性能,避免接收设备的缓冲区低效运行。

数据帧可以具有不同的重传容量,但通常每个数据帧具有相同的重传容量(例如,用于14个重传的数据包的容量,在所述流的前端附加4个新数据包)。

所述数据包可包含任何类型的信息,但在一些实施例中,它们包括音频或视频数据。所述源设备可以接收数据流,并将其转换成数据包流。所述接收设备可以将接收到的数据包(例如,从缓冲中读取出来)组合,并输出一个数据流。所述输出数据流与所述源设备接收到的数据流应该是相同的,除非已经发生严重的干扰,缓冲区的低效运行已经不可避免。

优选地,所述源设备是一个集成电路,例如,无线电芯片。它可具有集成的或外部的天线。同样,所述接收设备最好是一个集成电路,例如,无线电芯片,并且可具有集成的或外部的天线。

附图说明

现在将参考附图描述本发明的某些优选实施例,所述实施例仅作为示例,其中:

图1是体现本发明的无线电通信系统的概略图;

图2是示例性的数据交换的时序图。

具体实施方式

图1示出了无线麦克风设备2,所述无线麦克风设备通过无线电链接到远程公共广播系统4。所述无线麦克风设备2包括麦克风元件6,该麦克风元件6连接到一个模拟-数字转换器(ADC)8。所述ADC8的数字输出馈入到无线音频发射器芯片(ATX)10。该ADC8和ATX10由微控制器(MCU)12控制,微控制器(MCU)12也容纳在所述无线麦克风设备2中。

公共广播系统4包括无线音频接收器芯片(ARX)14,其输出被连接到数字-模拟转换器(DAC)18。所述ARX14和DAC18由微控制器(MCU)16控制。所述DAC18的模拟输出被连接到在公共广播系统4中的扬声器20。

诸如放大器,滤波器,电源等的附加部件为了清楚起见未示出,但以传统的方式布置和操作。

在使用时,可闻的声音由麦克风6连续接收。该信号由ADC8数字化,并作为数据流发送到ATX10。所述ATX10将数据流划分成离散的数据包流,所述数据包流通过无线电传输。在下面给出数据传输协议的详情。

一旦所述数据包被在公共广播系统4中的ARX14接收,它们以正确的顺序组装,并且,在所述数据包内的数据被提取出来,以形成数据流,所述数据流镜像于无线麦克风设备2中的ADC8所产生的原始数据流。在极端的干扰情况下,数据流可能会损坏,但所述数据交换协议被设计成使其很少发生。所述数据流通过DAC18传输以给出连续的模拟输出,该模拟输出被放大并通过扬声器20播放。

图2示出了沿着时间线的三个连续的数据帧,时间由左向右流动。所述线上的矩形代表由ATX10发送的数据,而线下的矩形表示由ARX14发送的数据。该图不是按比例绘制的。

以一个特定的数据帧率(或突发率),传统的无线电初始化过程被用于在ATX10和ARX14之间建立时间锁定的无线电链路。例如,长度为3毫秒的数据帧可以333Hz频率发送。

所述ATX10和ARX14都具有内部计数器,所述内部计数器在初始化时同步为零。这两个计数器在达到最高值后,例如111111二进制(63)后,返回到零。

在ARX14中的用户可配置的寄存器确定了用于所述数据流的延时时间段,即,在被输出到DAC18之前有多少数据包被缓冲在ARX14中。在这个例子中,延时时间段是9个数据帧,但也可以是七个或任何其它合适的值。这个值将被ATX10共享,ATX10使用它来确定何时重传太老的数据包。

在正常无干扰的运行情况下,所述ATX10在每个数据帧发送4个数据包22a。这些数据包包含了最近从ADC8输出的数据。作为最低要求,每个数据包包含:音频数据的负载,校验和,以及在ATX10中的计数器所产生的数据包序列号。

当它发送了所述四个数据包,所述ATX10为每个数据在寄存器或内存中设置相应标志,表示它尚未从ARX14安全收到每个那些数据包的确认。所述数据包因此被有效地标记用于默认重传,下面将更详细地解释。

所述ARX14接收应该包含四个数据包22a的该数据传输。它检查每个数据包的校验和,并使用数据包的序列号或其内部计数器(例如,如果序列号被损坏)设置比特位标志,以示出它应接收的所述4个数据包是否已被正确地接收。其内部的计数器增加四。

维护了64个二进位标志,对应于被发送的最后64个数据包。通过具有与计数器的特定值数目相同的标志,每个标志都可以很方便地通过其相应的数据的数据包序列号来编址。

接收到的数据包被存储在ARX14中的缓冲存储器中。如果相同的数据包被正确地接收一次以上,后面的副本可以丢弃,或者可以将前面的覆盖。

然后,在所述数据帧的末端,ARX14将确认消息22c返回到ATX10。此消息22c最少包含64位的布尔标志(例如为二进制的数组)副本和校验和。

在正常操作情况下,所述ATX10接收确认消息22c。假设校验和是有效的,然后以包含在确认消息22c中的值更新本地的64位标志集合。

如果正确地接收了所有的数据包22a,并且也正确接收了确认消息22c,那么,将重复该过程,ATX10发送来自下一个数据帧中的流中的接下来的4个数据包,并依此类推。所述ARX14以同样的平均数据率读出缓冲存储器的数据,并将其输出到DAC18。

如果有任何的数据包22a没有被正确地接收,所述ARX14将在确认消息22c中做标志。在下一个数据帧,所述ATX10然后发送来自输入的流的前端的接下来的4个数据包24a,但是,此外,重传在其二进制标志副本中被表示为没有被正确地接收的前36个数据包24b。36个数据包是系统延时的长度(9个数据帧,每个数据帧有4个数据包)。

所述数据帧可总共只有比方说18个数据包的容量,这意味着,用于重传的空间能胜任14个数据包以及4个新的数据包24a。如果超过14个数据包被标志用于重传,那么最后36个数据包的最早的14个数据帧在数据帧中被传输。

在接收重传数据包时,所述ARX14检查其校验和,如果正确接收,那么设置相应的二进制标志来表示它。它使用所述数据包的序列号,将所述数据包(或其数据负载)插入到缓冲存储器中的适当位置。

在确认消息24c没有被所述ATX10正确接收的情况下,例如,因为干扰使消息被损坏,本系统表现得尤其好。如果所述ATX10在超时期间内,例如,在开始组装下一个数据帧之前,没有收到特定数据帧的确认消息24c,或者如果它仅接收到损坏的确认消息(例如,校验和无效),在ATX10中的二进位标志都不会更改。

因此,所述ATX10中的标志集合将反映来自成功接收的最后确认消息22c的标志的值,对于所有在最后成功确认消息22c之前发送的数据包,所有数据包的标志被发送,因为最后消息22c表明,这些数据包(即标记用于重传)的接收确认到尚未到达。因此,在下一个数据帧中,除了来自流的前部的4个新的数据包26a之外,所述ATX10将发送标记用于重传的最早数据包26b。除非达到了数据帧的容量,所述重传的数据包26b将包括所述“新的”和来自以前数据帧的重传的数据包24a,24b。

在一个极端的情况,其中丢失了9个连续的确认消息,所述ATX10将不得不停止最早数据包的重传,因为他们落到36个包宽度的滑动窗口的端之外,所述滑动窗口围绕所述64位二进制标志移动。然而,这并不一定意味着在ARX14中发生缓冲器下溢。因为每个数据帧以所述码流率包括了4个新的数据包,所以尽管确认消息被丢失了,所有的数据包还是可以到达。

该算法的伪代码形式的概要如下所示,其中

NPF=每帧新数据包的数量(如4);

PID2=流的前面包的包ID。在流传输开始时,在ATX和ARX中PID2相等,并且,因为在流传输期间ATX和ARX被时间锁定,在ATX和ARX中的PID2将等同地递增。PID2可以使用可行数量的比特位(例如,6比特)来实现;

ACK=数组,该数组对每个包ID包含一个条目,通过ARX(例如64位的数组),表示所述数据包是否成功接收(或没有成功接收);

TD=用于所述链接的预先定义的传输延迟,单元为数据包(例如:36);

MPS=在一个帧期间可以传输的数据包的最大数目(例如18);

PID1=最早的包(PID1=PID2-TD);以及

nps=在当前帧中的包的数量。

一个帧包括:ATX发送/ARX接收--暂停--ARX发送/ATX接收--暂停。

为了便于理解,所述n位数据包ID计数器的过零翻转已被忽略。在实践中,会需要模运算,本领域的技术人员会很好理解。

因此,可以看出,已经描述了一种流式无线通信系统,该流式无线通信系统对在数据行程的两个方向上的干扰影响都是稳健的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号