移动通信系统中按照无线电链路协议发送可变长度数据的装置和方法

文档序号:7582758阅读:253来源:国知局
专利名称:移动通信系统中按照无线电链路协议发送可变长度数据的装置和方法
技术领域
本发明涉及本发明一般涉及CDMA(码分多址)移动通信系统,具体涉及无线电环境中按照用于有效数据发送的无线电链路协议(RLP),发送数据的装置和方法。
2.相关技术说明总的来说,CDMA移动通信系统已经从主要提供话音服务的IS-95标准发展为既提供高速数据服务又提供话音服务的CDMA-2000标准。CDMA-2000标准可提供高质量的话音服务、运动图像服务以及因特网搜索服务。
图1表示了由CDMA-2000标准定义的分组数据服务示例。在图1中,移动台(MS)包括终端设备(TE)和移动终端(MT)。基站由BS/MSC(基站/移动交换中心)表示,并且互通功能块(IWF)将BS/MSC与数据网络(例如,因特网)连接起来。IWF块是在使用不同协议时用于在不同协议之间进行转换的设备。在图1中,移动台的上层服务(或Web(网络)服务)处理器与IWF块形成了经过网络协议(例如,因特网协议(IP))处理器和链路协议(例如,点对点协议(PPP))处理器进行传递的消息。然后,以链路协议包的形式将由上层服务处理器组装的数据最终发送给下层,并且下层采用适当的协议(例如,EIA-232,RLP,等)来发送数据。
图1表示了在TE与MT之间使用EIA-232控制器的示例。按照IS-2000标准通过连接的物理信道对生成的RLP帧进行发送,IS-2000标准是CDMA-2000标准的一部分。将通过连接的物理信道在基站接收到的RLP包恢复为链路协议包,并将恢复后的包通过中继层发送给IWF块。一般地讲,按照IS-658标准来运行基站与IWF块之间的接口。在IWF块中,链路协议层从链路协议包读取数据并将数据发送给网络协议处理器,最终将数据发送给上层服务处理器。本发明的目的之一是通过RLP将链路协议包分配到无线电链路协议(RLP)帧。
以上说明了将数据从移动台发送到基站的过程,应当指出的是,可以以相同的方式将数据从基站发送到移动台。为了提供各种服务,CDMA-2000标准支持各种与图1中不同的方案。但是,不同的方案具有一个共同的特征,即通过RLP经物理无线电信道来发送具有上层服务数据的链路协议包。
RLP类型-3规范只生成具有适当大小的RLP帧,从而填充当前RateSet(速率集)1的9.6Kbsp或19.2Kbsp的物理信道帧,或者生成具有适当大小的RLP帧,从而填充Rate Set 2的14.4Kbsp或28.8Kbsp的物理信道帧。因此,当物理信道以153.6Kbsp的或230.4Kbsp的较高速率运行时,采用一种方法来填充一个物理信道帧中的几个RLP帧。如果物理信道支持高于153.6Kbsp或230.4Kbsp(是RLP类型-3规范中支持的最大速率)的速率,例如,如果物理信道支持307.2Kbsp、460.8Kbsp、614.4Kbsp以及1036.8Kbsp的速率,那么在一个物理信道帧中可以填充更多的RLP帧。但是,与采用一个大的RLP帧来填充一个物理信道的方法相比,这种方法会在帧首标上引起不断增大的负荷,并产生无用的帧部分,从而减小帧效率。因此,需要采用新的方法来发送比当前的RLP类型-3帧更大的RLP帧。
RLP类型-3执行的重要操作是创建并分析一个分段帧。也就是说,当要发送的重发帧的大小比可发送的数据块的大小大时,RLP将要发送的重发帧的数据部分(或部分)分段为几个分段帧。RLP类型-3规范按下列步骤执行分段过程。
首先,RLP类型-3最多可创建3个分段。各个分段分别以FIRST、SECOND和LAST这3个值来进行区分。当需要有多于3个的分段时,RLP类型-3则不发送重发帧,直到能够采用3个分段帧来发送重发帧为止。
其次,只有在接收到所有的分段后,才执行分段帧的重新组装过程。也就是说,如果没有接收到FIRST、SECOND和LAST分段帧中的任意一个,那么就需要重新发送所有的分段。
RLP类型-3规范创建具有以填充到Rate Set 1的9.6Kbsp或19.2Kbsp的物理信道帧的大小的RLP帧,以及具有填充到Rate Set 2的14.4Kbsp或28.8Kbsp的物理信道帧的大小的RLP帧,从而即使是在9.6Kbsp或19.2Kbsp这样的最低发送速率下,也能够发送最多的3个分段。但是,当物理信道在较高的发送速率下使用较大的RLP帧来提高发送效率时,则需要采用与现有的分段方法不同的新的分段方法。
发明概述本发明的一个目的是在移动通信系统中,创建不同长度的RLP帧,并通过采用块单元中的序列号和数据字节单元中的序列号来发送数量增加的数据。
本发明的另一个目的是在移动通信系统中,采用块单元中的序列号和数据字节单元中的序列号来发送RLP帧,以减小RLP帧首标的大小,从而提高发送效率。
本发明的另一个目的是在移动通信系统中,采用块单元中的序列号和数据字节单元中的序列号来发送RLP帧,以有效地创建用于请求重发RLP块或数据段的NAK(否定确认)帧,从而采用一个NAK帧来执行数量增加的重发请求。
为了实现上述或其他目的,提供了一种在移动通信系统中发送数据的方法。所述方法包括以下步骤将数据流分段为至少一个具有可变数据长度的连续帧、将数据流分段为多个具有可变数据长度的连续块、将每个所述的连续块分段为多个具有字节长度的子连续块、在连续帧的每个头部附加首标,该首标包括用于指明对应于头部的连续块序列号的第一组比特以及用于指明对应于头部的子连续块的序列号的第二组比特、以及发送附有首标的连续帧。
附图的简要说明通过参照附图以及下面的详细说明,将会更清楚地理解本发明的上述和其它目的、特征和优点,附图中图1是表示用于执行包数据服务的一般CDMA通信系统的示意图;图2是表示可应用本发明的根据RLP的发送和接收数据的设备的示意图;图3是表示按照本发明的实施例,数据发送器的示意图;图4是表示按照本发明的实施例,数据接收器的示意图;图5A到5D是表示按照本发明的实施例,生成的帧的格式的示意图;图6A到6C是表示按照本发明的实施例,生成的LTU(逻辑发送单元)的格式的示意图;图7是表示按照本发明的实施例,数据块和RLP帧的格式的示意图;图8A到8F是表示当通过基本信道来发送和接收按照本发明的实施例生成的RLP帧时,所用的各种帧格式的示意图;图9A到9B是表示当通过辅助信道来发送和接收按照本发明的实施例生成的RLP帧时,所用的各种帧格式的示意图;图10是表示按照本发明的实施例,发送基本信道的过程的流程图;图11是表示按照本发明的实施例,接收基本信道的过程的流程图;图12是表示按照本发明的实施例,发送辅助信道的过程的流程图;以及图13是表示按照本发明的实施例,接收辅助信道的过程的流程图;优选实施例的详细说明下面将参照


本发明的优选实施例。在下面的说明中,没有详细说明公认的功能或结构,以避免出现不必要的细节而混淆本发明。
图2表示可应用本发明的根据RLP发送和接收数据的移动通信系统的结构。
参照图2,物理层处理器150和250按照IS-2000规范,分别同移动台与基站之间的一个物理信道相连接,分别通过连接的物理信道将由相关RLP处理器130和230提供的RLP帧发送给其他方的物理层,并且将通过物理信道接收的RLP帧分别发送给RLP处理器130和230。多路复用/多路分解控制器140和240内置于各个RLP与物理层处理器之间。
多路复用/多路分解控制器140和240具有将目的地和大小的信息附加在从RLP处理器130和230接收到的RLP帧的头部,并且将多路复用后的RLP帧发送给物理层处理器150和250的多路复用功能。此外,多路复用/多路分解控制器140和240具有检测从物理层处理150和250接收到的RLP帧的目的地和大小的信息,然后将检测结果发送给上层RLP处理器130和230的多路分解功能。发送数据缓冲器122和222是用于存储从链路协议(即PPP)处理110和210接收到的数据的存储设备。发送数据缓冲器122和222分别根据RLP处理器130和230的请求顺序地按所需的大小对存储的包进行分段。接收数据缓冲器124和224分别顺序地存储由RLP处理器130和230提供的数据。EIA-232控制器或IS-658控制器将存储的数据发送给PPP处理器或IWF块。EIA-232控制器或IS-658控制器分别按照EIA-232规范或IS-658规范进行操作,并执行数据缓冲器122、124、222和224与链路协议处理器110和210之间的数据交换。对于当前的CDMA-2000分组服务,可采用EIA-232控制器和IS-658控制器之外的控制器。基于此原因,在图2中没有表示控制器。
图3表示了按照本发明的实施例的数据发送器。参照图3,用于发送RLP帧的RLP处理器130包括RLP控制器131、L_V(S)寄存器132以及前向重排序(resequencing)缓冲器(或重发缓冲器)133。RLP控制器131通过从发送数据缓冲器122接收数据来生成RLP帧,并将填充了生成的RLP帧的数据块发送给多路复用/多路分解控制器140。前向重排序缓冲器133是用于存储重排序数据的存储设备。L_V(S)寄存器132通过RLP控制器131将存储在发送数据缓冲器122中的发送数据分段为几个块,为每个块分配一个序列号(“块序列号”),并在为每个数据字节附加序列号时,计算所用的序列号(“数据序列号”)。
图4表示了按照本发明的实施例的数据接收器。参照图4,用于接收RLP帧的RLP处理器130包括RLP控制器131、E寄存器134、L_V(N)寄存器135、L_V(R)寄存器136、NAK列表137以及重排缓冲器138。RLP控制器131从多路复用/多路分解控制器140接收RLP帧,并检查是否是按顺序接收数据。如果是按顺序地接收数据,那么RLP控制器131将数据存储在接收数据缓冲器124中。否则,RLP控制器131将数据存储在重排缓冲器138中,并将被要求重发的部分记录在NAK(否定确认)列表137中,并且在发送下一个控制帧时,将存储在NAK列表137中的部分填充到控制帧中。
E寄存器134记录破坏的(或坏的)数据块的数目。当多路复用/多路分解控制器140将破坏的数据块通知给RLP控制器131时,RLP控制器131将该值记录在E寄存器134中,以便在需要进行重新建立时使用。L_V(N)寄存器135存储要接收的数据字节中第一个接收失败的数据字节的序列号。L_V(R)寄存器136存储下一个要接收的新的数据字节的序列号。例如,如果接收1到7的序列号的数据字节,其中3和4的序列号的数据字节被破坏(或接收失败),那么L_V(N)寄存器135存储第一个接收失败的数据字节的序列号3,而L_V(R)寄存器136存储下一个要接收的新的数据字节序列号8。
按照本发明的实施例生成可变长度的RLP帧以及发送/接收生成的RLP帧的操作,大致可分为由多路复用/多路分解控制器140和240执行的操作,和由RLP处理器130和230执行的操作。因为多路复用/多路分解控制器140与240具有相同的操作,而RLP处理器130与230也具有相同的操作,所以为简化起见,按照本发明的实施例的操作说明,将仅限于对多路复用/多路分解控制器140和RLP处理器130进行说明。
A.按照本发明的一个实施例多路复用/多路分解控制器的Tx/Rx操作1.多路复用/多路分解控制器的Tx(发送)操作通过当前连接的物理信道,不仅可以同时发送分组数据,也可以同时发送各种其他类型的信息,包括话音数据。因此,任何提供要发送给多路复用/多路分解控制器的数据的过程都视作一个“服务”或“服务块”。此外,将多路复用/多路分解控制器140与物理层处理器150相互交换的发送单元称作“信息比特”或称作“物理帧的净荷”,并且将上层服务块,包括RLP处理器130,与多路复用/多路分解控制器140相互交换的发送单元称作“RLP帧”或视作“数据块”。
发送方的多路复用/多路分解控制器140应该生成要发送给物理层处理器150的信息比特,并在每个设置时间(例如20ms)发送生成的信息比特。也就是说,多路复用/多路分解控制器140应该生成要被填充在将通过对应于所有当前连接的物理信道的物理信道进行发送的帧的净荷中的信息比特,并发送生成的信息比特。IS-2000规范定义了基本信道(FCH)、专用控制信道(DCC)以及辅助信道(SCH)。在将生成的信息比特发送给物理层处理器150以便通过基本信道、专用控制信道和辅助信道中的任意一个进行发送时,多路复用/多路分解控制器140发送下列字段。
-SDU采用要实际发送的信息比特填充该字段。如果没有要发送的信息比特,那么采用在多路复用/多路分解控制器与物理层之间先前确定的空值来填充该字段。
-FRAME_SIZE采用填有信息比特的物理信道帧的大小信息来填充该字段。当SDU字段中填充的是空值时,在物理层忽略该字段值。
-FRAME_RATE该字段指明填有信息比特的物理信道帧的发送速率。当SDU字段中填充的是空值时,在物理信道中忽略该字段值。
当发送方的多路复用/多路分解控制器140将上述字段值发送给物理层处理器150时,物理层处理器150以指定的编码和解调的方法对提供的值进行处理,然后将处理后的结果发送给接收方。
为了生成要发送给物理信道的逻辑发送单元的净荷或信息比特,发送方的多路复用/多路分解控制器140使用将在对应于逻辑信道当前连接的物理信道的服务中发送的数据块。对应于逻辑信道连接的物理信道的服务,参照能够将其数据块发送给将要发送当前生成的信息比特的物理信道的服务。采用IS-2000规范定义的信令消息和信令过程,可用用于连接移动台与基站之间的服务以及连接服务的逻辑信道与物理信道的过程。
当决定为对应于逻辑信道当前连接的物理信道的服务而发送数据块时,按照优先级顺序,发送方的多路复用/多路分解控制器140从服务接收适当长度的数据块(参见图5A)。多路复用/多路分解控制器140创建服务标识符和多路复用帧MuxPDU(参见图5B),在多路复用帧MuxPDU中,长度信息附加在数据块上,从而当从服务接收数据块时,能够知道用于发送从接收方的多路复用/多路分解控制器接收到的数据块的服务。多路复用帧MuxPDU可以包括由几个服务提供的几个数据块和信令消息。可以在每一个或每几个MuxPDU上附加用于检查错误的CRC(循环冗余码)。如图5C所示,当附加了用于检查在每几个MuxPDU上的错误的CRC时,将一个CRC和由CRC保护的信息比特的一部分称为“逻辑发送单元(LTU)”。当插入CRC以便将要发送给物理层的信息比特分段为几个部分并在每个分段部分执行错误检查时,即为“使用逻辑发送单元”。此处,分段后的信息比特的每个部分被称作“逻辑发送单元”,并且除了CRC以外,由CRC保护的逻辑发送单元的剩余部分被称作“逻辑发送单元的净荷”(图5C)(一个或几个MuxPDU)。该逻辑发送单元成为一个基本单元,用于确定在接收方,多路复用/多路分解控制器是否正确地接收了物理帧。如果没有使用逻辑发送单元,用于确定是否正确地接收了物理帧的基本单元就成为信息比特。
发送方的多路复用/多路分解控制器140应该预先知道对应于当前发送的物理信道的可能的发送速率和信息比特的大小,并且还应该知道是否使用逻辑发送单元,如果使用,那么应该知道逻辑发送单元的大小是多少,以及CRC生成方法。这种配置既用于按照物理层提供的物理信道的当前条件来确定由多路复用/多路分解控制器140生成的信息比特的大小,也用于在移动台与基站之间的预先确定的限制范围内,确定生成逻辑发送单元的方法。如果决定使用逻辑发送单元,那么发送方的多路复用/多路分解控制器140在逻辑发送单元的净荷中填充包括数据块的MuxPDU,将填充MuxPDU或填充比特模式填充在剩余部分中,然后产生用于生成的逻辑发送单元的净荷的CRC。发送方的多路复用/多路分解控制器140按照逻辑发送单元的数目所要求的次数重复上述过程,顺序地在信息比特中填充逻辑发送单元,在剩余部分中填充0,然后为物理层处理器150提供得到的信息比特。
如果决定不使用逻辑发送单元,那么多路复用/多路分解控制器140在信息比特中填充包括数据块的MuxPDU,将填充MuxPDU或填充比特模式填充在剩余部分中,然后将生成的信息比特发送给物理信道。
当没有更多的要发送的数据块时,多路复用/多路分解控制器140采用附加有由接收方的多路复用/多路分解控制器预先指定的特定服务标识符的MuxPDU,或采用由接收方的多路复用/多路分解控制器预先指定的常规比特模式,以便填充信息比特的剩余部分。此处,附加了特定服务标识符的MuxPDU被称作“填充MuxPDU”,并且常规比特模式被称作“填充比特模式”。
在上述过程中,当没有从对应于与逻辑信道连接的物理信道的服务以及信令消息发生器中接收到信令消息或数据块时,多路复用/多路分解控制器140根据当前要发送的物理信道而进行不同的操作。也就是说,对于专用控制信道或辅助信道,多路复用/多路分解控制器140向SDU发送一个空值。对于基本信道,多路复用/多路分解控制器140将由接收方的多路复用/多路分解控制器预先指定的常规比特模式作为信息比特向物理信道发送。此处,常规比特模式被称作“空业务”。
发送“空数据块”表明服务没有要向发送方的多路复用/多路分解控制器发送的数据块。空数据块是指没有内容的数据块,并且只能用于特殊的用途。
2.多路复用/多路分解控制器的Rx(接收)操作如图2所示,接收方的物理层处理器150采用指定的解码和解调方法对接收到的信号进行分析,并将填充在接收到的物理帧中的信息比特发送给接收方的多路复用/多路分解控制器140。当将分析后的信息比特发送给接收方的多路复用/多路分解控制器140时,物理层处理器150发送下列信息。
-SDU采用要实际发送的信息比特填充该字段。如果没有接收到信息比特或者接收了已破坏的帧,那么在多路复用/多路分解控制器与物理层处理器150之间采用先前确定的空值来填充该字段。
-FRAME_QUALITY该字段指明接收到的帧是否是有效帧。
-FRAME_SIZE采用接收到的物理信道帧的大小信息来填充该字段。按照接收到的物理信道帧的发送速率确定该字段的值。
-FRAME_RATE采用接收到的物理信道帧的发送速率填充该字段。
接收方的多路复用/多路分解控制器140应该预先知道对应于当前接收到的物理信道的信息比特的发送速率和大小(长度和数目),并且还应该知道是否使用了逻辑发送单元,如果使用了,那么应该知道逻辑发送单元的大小是多少,以及CRC生成方法。按照在移动台与基站之间的预先确定的限制范围内由物理信道处理器150提供的上述信息,可确定这种配置。
如果接收方的多路复用/多路分解控制器140判断出没有接收到物理信道帧,在SDU中填充了空值,并填充了FRAME_QUALITY字段以指明接收到有效帧,那么接收方的多路复用/多路分解控制器140将没有接收到帧的消息通知给对应于逻辑信道连接的物理信道的所有服务。
当接收方的物理层处理器150没有在SDU中填充空值,或者没有填充FRAME_QUALITY字段以指明接收到已破坏的帧时,那么基于接收方的物理层处理器150提供的配置和信息,接收方的多路复用/多路分解控制器140判断对于接收到的帧是否使用逻辑发送单元。
如果使用逻辑发送单元,那么接收方的多路复用/多路分解控制器140确定逻辑发送单元的长度、CRC检查方法以及逻辑发送单元的数量。多路复用/多路分解控制器140将接收到的信息比特分为数量与逻辑发送单元数量相同的逻辑发送单元。由于多路复用/多路分解控制器140预先知道逻辑发送单元的长度和数量,因此通过将接收到的信息比特分为数量与逻辑发送单元的数量相同的组,它能够分开逻辑发送单元。
当分配的物理信道发送接收到的信息比特时,接收方的多路复用/多路分解控制器140基于从物理信道发送的FRAME_QUALITY字段,判断接收到的信息是否被破坏。如果接收到的信息比特已被破坏并且接收到的信息比特被分段为几个逻辑发送单元,那么,多路复用/多路分解控制器140对按上述过程划分的每个逻辑发送单元的CRC进行重新分析,从而确定是否存在无错误逻辑发送单元。
如果存在错误逻辑发送单元,那么对应于错误的逻辑发送单元,多路复用/多路分解控制器140将通知给对应于与逻辑信道连接的物理信道的所有服务接收到坏数据块。
当接收到的信息比特被破坏,并且接收到的信息比特不具有用于检查每一个或每几个MuxPDU的错误的CRC时,接收方的多路复用/多路分解控制器140将接收到坏数据块的消息通知给对应于与逻辑信道连接的物理信道的所有服务。
当接收到无错误的逻辑发送单元或信息比特时,接收方的多路复用/多路分解控制器140从LTU的填充比特模式或信息比特中将无错误的MuxPDU分离出来。如果分离出的MuxPDU不是空业务或填充MuxPDU,那么多路复用/多路分解控制器140将包含在MuxPDU中的数据块和数据块的长度发送给由MuxPDU的服务标识符指定的服务。
在完成接收过程后,如果接收了无错误的逻辑发送单元或信息比特,并且在逻辑信道对应于物理信道的服务中,存在有不能接收数据块的服务,那么接收方的多路复用/多路分解控制器140通知接收到空数据块。
B.按照发明的实施例的多路复用/多路分解控制器的Tx/Rx操作通过下面的详细描述,将会更清楚地理解按照本发明的实施例,多路复用/多路分解控制器140的发送/接收操作。IS-2000标准规定了几种专用的业务信道,如基本信道、辅助信道以及专用控制信道。因此,可以分两种情况来描述按照发明的实施例的多路复用/多路分解控制器140的发送/接收操作。一种情况是应用于基本信道,另一种情况是应用于辅助信道。由于专用控制信道可应用于基本信道仅在96.Kbps或14.4Kbps下操作的特殊情况,所以这里不再对专用控制信道进行单独的描述。此外,可以对使用逻辑发送单元的情况以及不使用逻辑发送单元的其他情况进行单独的描述。这里,使用逻辑发送单元的情况与在发送和接收数据之前采用卷积码对数据进行编码的情况相对应,并且不使用逻辑发送单元的情况与在发送和接收数据之前采用turbo(快速)码对数据进行编码的情况相对应。
1.基本信道和辅助信道的信息比特数在按照本发明的实施例描述操作之前,首先在图1到4中显示了由IS-2000标准规定的基本信道的信息比特数以及辅助信道的信息比特数。更具体地说,表1和2表示了由IS-2000标准规定的基本信道的信息比特数,而表3和4表示了由IS-2000标准规定的辅助信道的信息比特数。表1和3表示了基于9600bps的发送速率时Rate Set 1的信息比特数,表2和4表示了基于14400bps的发送速率时Rate Set 2的信息比特数。表1IS-2000基本信道的信息比特数(Rate Set 1)
表2IS-2000基本信道的信息比特数(Rate Set 2)
表3IS-2000辅助信道的信息比特数(Rate Set 1)
表4IS-2000辅助信道的信息比特数(Rate Set 2)
应该注意的是表1到4没有显示IS-2000规定的所有信息比特的大小。
当对应于具有足够多表3和4中所显示的比特的信息比特数使用LTU(逻辑发送单元)时,可按下面的表5和6来计算LTU的大小和数量。此处,可通过将LTU的大小与LTU的数量相乘后加上剩余的比特的方法,来计算信息比特数。另外,LTU的净荷大小是从表5和6中减去16得到的值,其中16是CRC的大小。表5应用于辅助信道的LTU(Rate Set 1)
表6应用于辅助信道的LTU(Rate Set 2)
应该注意,在表5和6中,对于最初的两个发送速率,不使用LTU。也就是说,当连接了具有这样的发送速率的辅助信道时,发送方和接收方的多路复用/多路分解控制器遵循信息比特处理规则。
下面表7到12中显示了本发明的实施例中提出的用于填充信息比特的MuxPDU格式。表7和8表示了用于基本信道(FCH)的信息比特的MuxPDU格式。表9和10表示了在使用了LTU的情况下,用于辅助信道(SCH)的信息比特的MuxPDU格式。表10和12表示了在没有使用LTU的情况下,用于辅助信道的信息比特的MuxPDU格式。如上所述,在下面的表7和8中,专用控制信道应用于辅助信道只接受9600bps或144600bps的发送速率的特殊情况,专用控制信道只接受对应于9600bps或144600bps的发送速率的MuxPDU格式。表7用于FCH的信息比特的MuxPDU格式(Rate Set 1)
表8用于FCH的信息比特的MuxPDU格式(Rate Set 2)
在表7和8中,附加在MuxPDU上的是MuxPdu首标,该MuxPdu首标是用于对包含在MuxPDU中的数据块进行分段的信息。MuxPDU首标置于MuxPDU的尾部以便按字节排放数据块。表9用于SCH的信息比特的MuxPDU格式(Rate Set 1,使用LTU)
表10用于SCH的信息比特的MuxPDU格式(Rate Set 1,未使用LTU)
首先,比较第4层与第3层的分配码,如果第3层的分配是0,则使用上面描述的5级分组加n位增强机制对整个第4层流编码所量化的样本;如果第3层分配不是0,则在分配码中的差异用于确定为第4层流要被编码的增强位数。对第3层与第2层重复进行该过程以产生相应的编码流。对于第1层,一个非零的分配以一个5级分组编码开始。
该过程产生4个独立的量化流集合,这些可以在编码器中累积(build up)以产生4个所要求编码的样本序列,其中每个编码的样本序列解码以给出一个特定的标准样本层。
多路复用器46利用该位分配、调整因子和量化的样本参数建立4个输出流,所得到的子流分配示于表3中,其中针对调整因子的数据(figure)是基于这些位被分配给所有可用的子带的假设。如果该子带样本量化不能使用所有的被分配的位,则多路复用器利用0位值进行包装。
表13服务标识符
在表13中,“空服务”是预先确定的专用服务标识符,用于将MuxPDU是填充MuxPDU的消息通知给接收方的多路复用/多路分解控制器。可从表13看出,表7和12的MuxPDU格式就可以识别由最多的6个服务提供的数据块。
表7和8表示了在基本信道上发送的MuxPDU格式。此处,在没有服务标识符的情况下,只基于MuxPDU首标就可以识别第一服务,因为MuxPDU首标是‘0’的情况与第一服务相对应。基于表7和8的服务标识符,可以确定对应于第二到第六服务的数据块。因此,表7或8的服务标识符可以具有从‘010’到‘110’的值。当采用表7或8的MuxPDU格式将基本信道中的第一服务的数据块全部填充为1时,接收方的多路复用/多路分解控制器指定空业务,该空业务不与发送方的多路复用/多路分解控制器中的任何业务相对应。所以,当从基本信道接收到的MuxPDU只有第一服务的数据块并且数据块全部填充为1时,接收方的多路复用/多路分解控制器确定数据块是空业务。
如上所述,在表7和8中,可以在专用控制信道上发送9600bps或14400bps的发送速率时允许的MuxPDU格式。基于表7或8所示的服务标识符,可确定对应于第二到第六服务的数据块。应该注意的是专用控制信道不需要业务。
表7和8中,在9600bps或14400bps的发送速率时允许的MuxPDU格式中,当在9600bps或14400bps下的发送速率连接辅助信道时,可发送只包含一个服务数据块而不是信令消息的MuxPDU格式。如上所述,基于表7或8所示的服务标识符,可确定对应于第二到第六服务的数据块。
表9到12表示了在以19200bps、28800bps或更高的发送速率连接辅助信道时发送的MuxPDU格式。基于表9或12所示的服务标识符,可确定对应于第一到第六服务的数据块。因此,表9到12所示的服务标识符可以具有从‘010’到‘110’的值。对于‘000’的长度标记,表9到12的MuxPDU格式包括具有对应于表中的发送速率的长度的服务块。在表9到12的MuxPDU格式中,当长度标记设置为‘100’、‘101’或‘110’时,可采用长度字段来计算MuxPDU的大小。也就是说,当长度标记设置为‘100’时,表9到12的MuxPDU格式含有具有通过从对应于表中的发送速率的长度中减去一个值来确定长度的服务块,所述值是通过将长度字段中指明的值与8相乘来确定的。例如,如果通过以614400bps的发送速率连接并且不使用LTU的辅助信道而接收到的MuxPDU具有设置为‘100’的长度标记和设置为‘00000010’的长度字段,那么包含在接收到的MuxPDU中的服务块的长度为表9中的12250-(2×8)=12234比特。当长度标记设置为‘101’或‘110’时,表9到12的MuxPDU格式含有具有通过从一个值中减去6比特来确定长度的服务块,其中,所述值是通过将8与长度字段中指明的值加1后相乘得到的值,6比特是MuxPDU的大小。也就是说,如果通过以614400bps的发送速率连接并且不使用LTU的辅助信道而接收到的MuxPDU具有设置为‘110’的长度标记和设置为‘0000 0101 1111 1001’(十进制为1529)的长度字段,那么包含在接收到的MuxPDU中的服务块的长度为(1529+1)×8-6=12234。
2.FCH上多路复用/多路分解控制器的Tx操作假设连接了采用RLP的6个服务,那么发送方的多路复用/多路分解控制器的操作如下所述。该操作按照图10所示的过程来执行。
首先,图3的多路复用/多路分解控制器140按照QoS(服务质量)保证规则,确定服务的发送次序和数据块的大小。也就是说,多路复用/多路分解控制器向信令LAC层询问一个可能的大小(图10的步骤S10),并对信令LAC层的数据块确定一个具有适当大小的数据块(步骤S11)。多路复用/多路分解控制器确定发送服务的次序(步骤S12),请求第一服务提供具有确定大小的数据块(步骤S13),并从第一服务接收在确定的大小范围内的数据块(步骤S14)。对于将要发送给基本信道的数据块,应该按照表7和8中MuxPDU允许的数据块的大小和数量以及其组合,请求RLP处理器生成具有适当大小的数据块。此后,多路复用/多路分解控制器累加要发送的数据块,并计算可被发送的剩余数据块(步骤S15)。然后,多路复用/多路分解控制器确定是否能采用累加的数据块来组装MuxPDU。如果不能组装MuxPDU,那么多路复用/多路分解控制器返回步骤S12,以请求相应的服务提供数据块,并且得到请求的数据块。否则,如果能够组装MuxPDU,那么多路复用/多路分解控制器采用累加的数据块对MuxPDU进行组装(步骤S17)。多路复用/多路分解控制器从表4选择适当的比特模式,并将选中的比特模式附加在MuxPDU首标上。多路复用/多路分解控制器以信息比特将生成的MuxPDU发送给物理信道(步骤S18)。
对于在上述过程中未能生成数据块的RLP处理器,多路复用/多路分解控制器请求RLP处理器生成一个空的数据块,以便能够使RLP处理器知道它不能生成数据块。另外,如果在上述过程中每个RLP处理器都未能提供数据块,那么多路复用/多路分解控制器RLP对空业务进行组装并将其作为信息比特发送给物理信道。
3.FCH上多路复用/多路分解控制器的Rx操作对于通过基本信道发送的信息比特,接收方的多路复用/多路分解控制器操作方法如下。该操作是按照图11所示的过程执行的。多路复用/多路分解控制器分析接收到的信息的发送速率和MuxDPU首标(图11的步骤S20),并基于分析的结果,区分数据块(步骤S21和S22)。为了区分数据块,需要根据Rate Set创建参照表7和8。如果接收到的信息比特的最后1位设置为‘0’,那么除最后1位以外的所有信息比特构成第一服务的数据块,从而将该数据块与数据块的长度信息一起发送给第一服务(步骤S23)。
否则,当在上述过程中接收到的信息比特的最后1位设置为‘1’时,接收方的多路复用/多路分解控制器将最后4比特作为用于Rate Set 1的MuxPDU,并将最后5比特作为用于Rate Set 2的MuxPDU。从表7和8中搜索具有MuxPDU的比特模式的组合。如果没有具有相同比特模式的组合,那么接收方的多路复用/多路分解控制器将接收到的信息比特视作坏比特。否则如果存在具有相同比特模式的组合,那么多路复用/多路分解控制器按照表7和8中指定的数据块的大小和位置来分离数据块和服务标识符。例如,对于Rate Set 1,如果是以9600bps的速率接收信息比特并且MuxPDU首标是‘0011’,那么接收到的MuxPDU的前80比特构成第一服务的数据块,接下来的85比特构成其它服务的数据块,并且剩余的3比特是服务标识符。按照表7和8中规定的组合,可以没有服务标识符。
参照表7和8,将上述过程中分离的数据块发送给相应的服务。可在不分析服务标识符的情况下,将数据块和数据块的长度信息一起发送给第一服务和信令层。但是,如果存在服务标识符,那么服务标识符与表13进行比较以将数据块和数据块的长度信息一起发送给相应的服务。在这个示例中,接收方的多路复用/多路分解控制器将80-比特数据块及其长度信息发送给第一服务,将85-比特数据块连同长度信息一起发送给由服务标识符指明的服务。如果服务标识符的值设置为‘000’、‘001’或‘111’,那么接收方的多路复用/多路分解控制器将接收到的信息比特视作坏的比特。如果接收到的信息比特是坏比特,那么多路复用/多路分解控制器通知所有在基本信道上有逻辑信道的服务已接收了坏的数据块,并通知各个服务可以发送的数据块的最大长度。例如,对于表7中用于Rate Set 1的MuxPDU格式,向第一服务发送171比特,向第二到第六服务发送165比特。
否则,如果接收到的信息比特没有被破坏,只有一个数据块并且与第一服务相对应的数据块全部填充为1,那么接收方的多路复用/多路分解控制器丢弃信息比特,将其视作空业务,并通知所有在基本信道上有逻辑信道的服务没有接收数据块。当信息比特没有被破坏,并且在基本信道上有逻辑信道的服务中的一个或多个服务没有接收数据块时,接收方的多路复用/多路分解控制器通知这些服务接收了空数据块。应该注意的是,对于空业务,根据服务,通知没有接收到数据块和通知接收到空数据块有不同的含义。
4.SCH上多路复用/多路分解控制器的Tx操作在生成辅助信道的信息比特时,多路复用/多路分解控制器按照发送速率来生成与表5或6中所示的数量相同的LTU。LTU具有表5或6所示的大小。由于LTU具有16-比特的CRC,因此能够通过LTU实际发送的MuxPDU的最大容量根据发送速率而变化。
例如,在使用307.2Kbps的辅助信道并生成了LTU时,LTU的净荷包括MuxPDU,这样MuxPDU的最大容量为744比特(从LTU净荷的760比特中减去16 CRC比特而得)。当多路复用/多路分解控制器在生成辅助信道的信息比特的同时生成LTU时,根据Rate Set的可能的MuxPDU格式如表9和11所示。如果多路复用/多路分解控制器生成MuxPDU以填充LTU的净荷,那么多路复用/多路分解控制器生成用于LTU净荷的16-比特CRC。这里生成16-比特CRC的方法与用于辅助信道中生成16-比特CRC的方法相同。以这种方式,多路复用/多路分解控制器生成数量与表5或6中规定的数量相同的LTU,并顺序地将其置于信息比特中,然后在向物理层处理器发送之前将剩余部分填充为0。
如果在生成辅助信道的信息比特时没有生成LTU,那么多路复用/多路分解控制器根据发送速率来生成表3或4中指定的大小的辅助信道信息比特。在这种情况下,对于9600bps或14400bps的发送速率,信息比特只能运载只填充了由表7和8指定的一个服务数据块的MuxPDU。多路复用/多路分解控制器生成MuxPDU,从而采用生成的MuxPDU来填充信息比特,然后将生成的信息比特/MuxPDU发送给物理层处理器。
如果没有生成LTU,那么对于19200bps或28800bps或更高的发送速率,多路复用/多路分解控制器可以使用表10和12中的MuxPDU格式。多路复用/多路分解控制器生成MuxPDU,从而采用生成的MuxPDU来填充信息比特,然后将生成的信息比特/MuxPDU发送给物理层处理器。
按照图12所示的过程执行辅助信道中的发送操作。多路复用/多路分解控制器按照QoS保证规则确定发送服务的次序以及数据块的大小。然后,多路复用/多路分解控制器按照优先级次序向各个服务的RLP发送数据块请求(表12的步骤S30)。也就是说,多路复用/多路分解控制器向具有最高优先级的第一服务的RLP处理器发送可能的数据块请求(步骤S30),并从第一服务的RLP处理器接收相应的数据块或空数据块(步骤S31)。当接收到不是空数据块而不是数据块时,多路复用/多路分解控制器采用接收到的数据块生成MuxPDU(步骤S32)。生成的MuxPDU组装在信息比特中。
如果在生成辅助信道的信息比特时生成了LTU,那么多路复用/多路分解控制器应该请求RLP处理器按照表9或11中MuxPDU允许的数据块以及当前正在生成的LTU剩余部分的大小来生成具有适当大小的数据块。也就是说,当接收到数据块时,多路复用/多路分解控制器计算LTU或信息比特的剩余部分的大小(步骤S33),并确定计算出的大小是否大于或等于MuxPDU可能的大小(步骤S34)。如果计算出的大小是大于或等于MuxPDU可能的大小,那么多路复用/多路分解控制器向具有第二最高优先级的第二服务的RLP处理器请求具有可能大小的数据块(步骤S35),并从第二服务的RLP处理器接收相应的数据块或空数据块(步骤S36)。在所有服务的RLP处理器上重复执行该操作。
如果在生成辅助信道的信息比特时没有生成LTU,那么对于9600bps或14400bps的发送速率,多路复用/多路分解控制器请求各个服务按照优先级顺序生成能够发送给表7和8中指定的辅助信道的数据块,以便生成在表7和8指定的MuxPDU格式中能够发送给辅助信道的一个MuxPDU格式。如果任何一个服务生成了数据块,多路复用/多路分解控制器就将其组装在MuxPDU中。
对于19200bps或28800bps的发送速率,如果在生成辅助信道的信息比特时没有生成LTU,那么多路复用/多路分解控制器应该请求RLP处理器按照表10或12中MuxPDU允许的数据块以及当前正在生成的LTU剩余部分的大小来生成具有适当大小的数据块(步骤S32到S38)。
如果多路复用/多路分解控制器在生成辅助信道的信息比特时填充了LTU净荷或信息比特,那么多路复用/多路分解控制器应该知道还没有填充的LTU净荷以及信息比特的剩余部分的长度。多路复用/多路分解控制器请求服务生成用于剩余部分的数据块。如果从某个服务接收到不是空数据块的数据块,那么多路复用/多路分解控制器按如下所述根据该数据块的长度进行操作。
首先,如果接收到的数据块的长度比LTU净荷或信息比特的剩余部分短4比特,那么基于表13,多路复用/多路分解控制器按照由其接收数据块的服务,通过在数据块首标处附加3-比特的服务标识符和设置为‘0’的长度标记来对MuxPDU进行组装。多路复用/多路分解控制器将生成的MuxPDU置于LTU净荷或信息比特的剩余部分中,从而完成LTU净荷或信息比特。
其次,如果发送的数据块的长度比LTU净荷或信息比特的剩余部分短14比特或更多,那么多路复用/多路分解控制器创建一个如表9或12所示的具有8-比特或16-比特长度字段的MuxPDU。也就是说,当创建的数据块等于或小于2034比特时,多路复用/多路分解控制器基于表13根据发送服务附加一个3-比特的服务标识符,并将3-比特长度标记设置为‘101’,将8-比特长度字段设置为通过从表示为字节的将服务标识符、长度标记、长度类型字段、长度字段以及数据块相加而得的MuxPDU的总长度中减去1所得的值。如果创建的数据块大于2034比特,那么多路复用/多路分解控制器基于表13根据发送服务附加一个3-比特的服务标识符,并将3-比特长度标记设置为‘110’,将16-比特长度字段设置为通过从表示为字节的将服务标识符、长度标记、长度类型字段、长度字段以及数据块相加而得的MuxPDU的总长度中减去1所得的值。多路复用/多路分解控制器可以生成表8到12所示的具有8-比特长度字段和‘100’长度字段的MuxPDU。也就是说,通过在按字节指明与表9到12所示的数据块的最大值相比小多少的8-比特长度字段中进行填充,可以创建MuxPDU。当创建的MuxPDU的大小不是整数时,即当MuxPDU的长度不是以字节的形式表示时,多路复用/多路分解控制器丢弃数据块。如果创建的MuxPDU的大小是整数时,多路复用/多路分解控制器在数据块的头部附加服务标识符、长度标记、长度类型字段以及长度字段,从而创建MuxPDU。多路复用/多路分解控制器将创建的MuxPDU填充在LTU净荷或信息比特的剩余部分中。
在顺序地将生成的MuxPDU置于LTU的净荷中后,重复对剩余部分执行上述过程。在该过程中,如果没有更多的具有适当大小的数据块,则多路复用/多路分解控制器通过将服务标识符设置为‘111’并将长度标记设置为‘000’来填充前剩余部分中的前6个比特,然后在剩余部分中全部填充0,从而填充LTU净荷或信息比特。
在生成LTU的情况下,如果生成的LTU的数量与表5或6中指定的数量相同,那么多路复用/多路分解控制器顺序地将所有生成的LTU置于信息比特中。如表5或6所示,多路复用/多路分解控制器将剩余部分全部填充为0,并将其发送给物理信道处理器。
在没有生成了LTU的情况下,如果在上述过程填充了表3或4中指定的所有信息比特,那么多路复用/多路分解控制器将其发送给物理层处理器。
图6A到6C表示了按本发明的实施例生成的LTU格式。LTU构成一个通过物理信道发送的信息帧(物理帧或信息比特),并且每个LTU是由多路复用帧MuxPDU和CRC组成的。尽管下面将描述信息帧是由LTU组成的情况,但信息帧可以仅由MuxPDU组成而不含CRC。包含在LTU中连续的多路复用帧MuxPDU可具有给定的长度(例如,如图5C所示的744比特),并且每个多路复用帧MuxPDU是由图5B所示的首标和顺序的RLP帧(或数据块)组成。RLP帧包括发送数据。至少有一个多路复用帧MuxPDU是由多个子多路复用帧组成的,并且每个子多路复用帧是由包括RLP服务标识符字段和指明发送数据长度的长度指示字段的首标以及顺序数据块组成的。也就是说,多路复用帧MuxPDU可以是由用于特殊服务的数据块和指明数据块的首标组成,也可以是由多个子多路复用帧组成的,其中每个子多路复用帧是由用于特殊服务的数据块和指明数据块的首标组成的。图6A表示多路复用帧MuxPDU是由一个子多路复用帧组成的情况,即只包括一个数据块。图6B表示多路复用帧MuxPDU是由多个子多路复用帧组成的情况,即包括多个数据块。生成数据块(或RLP帧)的操作由图3的RLP控制器131执行,生成多路复用帧MuxPDU的操作由图3的多路复用/多路分解控制器140执行,并且生成信息帧(物理帧)的操作由图2的物理层处理器150执行。
参照图6A,第一LTU与从第一服务接收738-比特数据块的情况相对应,该数据块正好比LTU净荷(744比特)短6个比特,这样服务标识符就设置为第一服务‘001’,长度标记设置为‘000’,然后LTU的净荷中填充接收到的数据块。此处,服务标识符和长度标记构成多路复用帧MuxPDU的首标。如表9到13所示,‘001’的服务标识符指明后续数据块的长度。例如,参照表9,假设采用LTU并且发送速率在Rate Set 1时是307200bps,如果多路复用帧只包括一个数据块并且长度标记为‘000’,那么服务数据块的长度是728比特。
参照图6B,第二LTU与从第二服务接收330-比特数据块的情况相对应,该数据块比剩余的LTU净荷(744比特-330比特=414比特)短大于14的比特,并且比2034比特短,2034比特是表12所示的每个发送速率都可用的服务数据块的最大长度,所以,服务标识符就设置为第二服务‘010’,长度标记设置为‘101’,然后长度字段设置为从MuxPDU的总长度43字节(344比特)中减去1而得的值‘00101010(=42)’。剩余的50字节(400比特)的LTU净荷部分与没有从服务接收到数据块的情况相对应。在这种情况中,生成填充MuxPDU并将其置于该部分中。此处,服务标识符与长度标记组成多路复用帧MuxPDU的首标。LTU,即多路复用帧是由两个子多路复用帧组成的。在第一子多路复用帧中,‘010’的服务标识符表明后续数据块是用于第二服务。‘010’的长度标记和‘00101010’的长度字段表明用于第二服务的包含于MuxPDU中的数据块的长度。
第二子多路复用帧是通过对第二服务进行数据块填充和将填充MuxPDU填充在LTU净荷中来组装的。如表13所示,‘111’的服务标识符表明后续数据块是用于空服务,而‘000’的长度标记表明用于空服务的数据块的长度。
参照图6C,第三LTU与在生成LTU时服务没有提供数据块的情况相对应。在这种情况下,生成填充MuxPDU并将其置于LTU中。通过在信息比特中填充图6A到6C所示的LTU并将剩余的比特设置为‘000’,来完成信息比特(或信息帧)的生成。
5.SCH上多路复用/多路分解控制器的Rx操作接收方的多路复用/多路分解控制器按下列方法对通过辅助信道(SCH)发送信息比特进行操作。该操作按图13所示的过程执行。
对于使用LTU的信息比特,按照表5或6所示的发送速率划分LTU。例如,对于通过在307.2Kbps下连接的辅助信道接收的信息比特,LTU分段为表5所示的760比特的单元。如果信息比特没有错误,多路复用/多路分解控制器将MuxPDU从每个LTU或信息比特中分离(图13的步骤S40)。在分离了MuxPUD后,多路复用/多路分解控制器确定将被发送数据块的服务的RLP(步骤S41),并将接收到的数据块发送给相应服务的RLP。此处,连同接收到的数据块一起发送数据块的长度信息(步骤S42和步骤S43)。在每个单独的MuxPDU上,都执行将接收到的数据块以及数据块的长度信息发送给相应服务的RLP的操作。
否则,如果信息比特有错误,那么多路复用/多路分解控制器在每个LTU上执行CRC检查。对于没有错误的LTU,多路复用/多路分解控制器分离MuxPDU。而对于有错误的LTU,多路复用/多路分解控制器通知所有在辅助信道上具有逻辑信道的服务接收了坏的数据块,并通知那些具有最大数据块长度的服务各个服务可以以LTU发送,然后丢弃信息比特。例如,如图6A到6C所示,在通过以307.2Kbps连接的辅助信道接收到LTU中发送的数据块的最大长度是738比特。
对于接收到的没有使用LTU生成的信息比特,对于9600bps或14400bps的发送速率,按照表7或8分离MuxPDU。MuxPDU分离方法与基本信道中的方法相同。但是,在辅助信道中,由于只有一个从具有对应于辅助信道的逻辑信道的服务接收的数据块能够在MuxPDU中存在,所以认为具有不同MuxPDU首标的信息比特已被破坏。
对于接收到的没有使用LTU生成的信息比特,对于19200bps或28800bps的发送速率,在所有信息比特上分离MuxPDU。如果信息比特有错误,那么多路复用/多路分解控制器通知所有在辅助信道上具有逻辑信道的服务接收了坏的数据块,并丢弃信息比特。
如下所示,在从LTU净荷或信息比特中分离MuxPDU时,基于服务标识符、长度标记和长度字段,可以知道MuxPDU的数据块应发送给哪个服务,并且知道接收到的MuxPDU的全部长度。
首先,接收方的多路复用/多路分解控制器在LTU净荷或信息比特的头部开始进行MuxPDU分离。
第二,如果正在被分析的MuxPDU的服务标识符,按表13所示被设置为‘111’,那么接收方的多路复用/多路分解控制器丢弃LTU净荷或信息比特的所有剩余部分。
第三,如果正在被分析的MuxPDU的服务标识符,按表13所示被设置为‘000’,那么接收方的多路复用/多路分解控制器将认为LTU净荷或信息比特已被破坏。
第四,如果正在被分析的MuxPDU的服务标识符按表13所示被设置为‘001’和‘110’之间的一个值,以表示在辅助信道上具有逻辑信道的服务之一,那么将分析下一个3-比特长度标记。如果服务标识符没有指明在辅助信道上具有逻辑信道的服务之一,那么多路复用/多路分解控制器将认为LTU净荷或信息比特已被破坏。
第五,如果3-比特长度标记设置为‘000’,那么LTU净荷或信息比特的剩余部分构成一个MuxPDU。因此,MuxPDU的数据块将发送给上层服务,其中MuxPDU具有从剩余部分的长度中减去6比特而得的长度。
第六,如果3-比特长度标记设置为‘100’、‘101’或‘110’,那么将分析下一个3-比特长度字段。如果3-比特长度字段不是设置为‘000’、‘101’或‘110’,那么接收方的多路复用/多路分解控制器将认为LTU净荷或信息比特已被破坏。
第七,如果3-比特长度类型字段设置为‘100’,那么对应于通过从可以填充在LTU净荷或信息比特中的MuxPDU的最大容量中减去8-比特长度字段值与8的乘积而得到的长度的部分组成一个MuxPDU。因此,排除了14-比特首标的MuxPDU的部分将作为数据块同数据块的长度信息一起被发送给上层服务。
第八,如果3-比特长度类型字段设置为‘101’或‘110’,那么将分析下一个8-比特或16-比特长度字段。如果将该长度字段值加1得到的值比以字节表示LTU净荷或信息比特的剩余部分而确定的值,那么接收方的多路复用/多路分解控制器将认为LTU净荷或信息比特已被破坏。
第九,如果将长度字段值加1得到的值小于或等于以字节表示LTU净荷或信息比特的剩余部分而确定的值,那么得到的值是MuxPDU的长度。因此,由从以具有LTU净荷或信息比特的剩余部分确定的长度值的MuxPDU中减去14-比特或22-比特首标而得到的剩余部分将作为数据块与其长度信息一起被发送给上层服务。
最后,如果在确定MuxPDU后存在LTU净荷或信息比特的剩余部分,那么在剩余部分上将再次执行上述过程。
C.按照发明的实施例的RLP控制器的Tx/Rx操作按照本发明的实施例执行的图3和4中所示的RLP控制器131的操作将按下述分解。
1.RLP控制器的数据发送操作RLP控制器131接收存储在发送数据缓冲器122中的数据流,并且在多路复用/多路分解控制器140请求数据块时,生成具有所请求的数据块大小的RLP帧。存储在发送数据缓冲器122中的数据流被视作具有无限大的长度。因此,RLP控制器131发送数据流时不需要区分开始部分和结尾部分。
RLP控制器131将存储在发送数据缓冲器122中的数据流分段为具有适当长度的块。这些块既可以具有相同的大小也可以具有不同的大小。但是,在任意一种情况下,这些块都具有超过一个字节的大小并且最大为NDATA字节。
RLP控制器131将0到(NBLOCK-1)的序列号分配给块。在下列描述中,分配给块的序列号被视作“块序列号”。RLP控制器131将序列号0分配给第一个生成的块。当生成新块时,RLP控制器131将通过对先前块的序列号加1后所得的序列号分配给新块。如果分配给先前块的序列号为(NBLOCK-1),那么RLP控制器131将序列号0分配给新块。
此外,RLP控制器131将从0到(NDATA-1)的序列号分配给新块中的数据字节。在下列描述中,分配给数据字节的序列号被视作“数据序列号”。RLP控制器131将序列号0分配给块中的第一数据字节。RLP控制器131将通过对先前字节的序列号加1后所得的序列号分配给下一个字节。由于块能够具有NDATA的最大容量,所以0到(NDATA-1)的序列号足够用于数据序列号。
通过使用块序列号和数据序列号,就可以指定特定的数据字节。在下列描述中,使用块序列号和数据序列号来指定特定数据字节的方法被视作“双向寻址”。
当多路复用/多路分解控制器140请求数据块时,RLP控制器131采用具有适当大小的数据从第一个块中的第一字节创建RLP帧。RLP控制器131将数据段中的块序列号和数据序列号填入RLP帧中,从而接收方的RLP控制器可以知道包含于接收到的RLP帧中的相应数据段是对应于哪个块中的哪个数据字节。
当RLP帧中块的大小比NDATA字节小时,RLP控制器131将创建RLP帧,从而接收方的RLP控制器就可以知道被发送块的结束。也就是说,当发送的数据块具有小于NDATA字节的数据时,RLP控制器131向接收方的RLP控制器指明块的结束,这样接收方的RLP控制器将等待下一个块。为此,本发明定义了“块结束标记”。也就是说,发送方的RLP控制器将块结束标记与RLP帧一起发送。在发送其大小小于NDATA字节的块的最后部分时,RLP控制器131将1-比特的块结束标记设置为‘1’,否则将1-比特的块结束标记设置为‘0’。当接收到块结束标记设置为‘1’的RLP帧时,RLP控制器131等待具有下一个序列号的块中的第一数据字节。
此过程以示例的方式显示在图7中。在图7中,NDATA假定为6。在图7中,RLP控制器131按多路复用/多路分解控制器140的请求创建5个RLP帧。当多路复用/多路分解控制器140请求其中可填充6个数据字节的数据块时,RLP控制器131创建图7所示的第一RLP帧A。因为具有序列号0的第一个块有6-字节数据,所以RLP控制器131可以只采用BLOCK_0创建RLP帧。由于是采用从序列号为0的块中序列号为0的数据字节开始的数据段来创建RLP帧,所以RLP控制器131在RLP帧首标中指明了块序列号0和数据序列号0。此外,由于序列号为0的块的大小是预定大小NDATA字节(6字节),所以RLP控制器131将块结束标记设置为‘0’。
当多路复用/多路分解控制器140请求其中可填充4-字节数据的数据块时,RLP控制器131创建图7所示的第二RLP帧B。由于在图7中已经发送了第一个块,所以RLP控制器131采用序列号为1的第二个块来创建RLP帧。在图7中,由于序列号为1的块具有4-字节数据,所以RLP控制器131可以只采用BLOCK_1来创建RLP帧。由于是采用从序列号为1的块中序列号为0的数据字节开始的数据段来创建RLP帧,所以RLP控制器131在RLP帧首标中指明了块序列号1和数据序列号0。此外,由于序列号为1的块的大小是小于6字节的4字节,并且填充了BLOCK_1的最后部分(数据字节#3),所以RLP控制器131将块结束标记设置为‘1’。
当多路复用/多路分解控制器140再次请求其中可填充4-字节数据的数据块时,RLP控制器131创建图7所示的第三RLP帧C。由于在图7中已经发送了第一和第二个块,所以RLP控制器131采用序列号为2的第三个块来创建RLP帧。在图7中,由于序列号为2的块具有6-字节数据,所以RLP控制器131采用BLOCK_2的最前面的4个字节来创建RLP帧。由于是采用从序列号为2的块中序列号为0的数据字节开始的数据段来创建RLP帧,所以RLP控制器131在RLP帧首标中指明了块序列号2和数据序列号0。此外,由于序列号为2的块的大小是6个字节,所以RLP控制器131将块结束标记设置为‘0’。
当多路复用/多路分解控制器140再次请求其中可填充4-字节数据的数据块时,RLP控制器131创建图7所示的第四RLP帧D。由于在图7中已经发送了序列号为2的块中最前面的4个字节(数据字节#0到数据字节#3),所以RLP控制器131创建起始于序列号为2的第三个块中的第5个数据字节(数据字节#4)的RLP帧。在图7中,由于序列号为2的块有2-字节未发送的数据,所以RLP控制器131不能够只采用BLOCK_2中的数据来填充RLP帧。因此,RLP控制器131也采用序列号为3的下一个块中的数据来创建RLP帧。也就是说,RLP控制器131采用序列号为2的块中的最后2字节和序列号为3的块中的最后的2字节来创建具有4-字节数据的RLP帧。由于是采用从序列号为2的块中序列号为4的数据字节开始的数据段来创建RLP帧,所以RLP控制器131在RLP帧首标中指明了块序列号2和数据序列号4。此外,由于序列号为2的块的大小是6字节,并且没有填充序列号为3的块的最后部分(数据字节#4),所以RLP控制器131将块结束标记设置为‘0’。
当多路复用/多路分解控制器140再次请求其中可填充4-字节数据的数据块时,RLP控制器131创建图7所示的第五RLP帧E。由于在图7中已经发送了序列号为3的块中最前面的2个字节(数据字节#0和数据字节#1),所以RLP控制器131创建起始于序列号为3的第四个块中的第3个数据字节(数据字节#2)的RLP帧。在图7中,由于序列号为3的块有3-字节未发送的数据(数据字节#2到数据字节#4),并且没有更多的数据,所以RLP控制器131只采用BLOCK_3中的数据来创建RLP帧。也就是说,RLP控制器131采用序列号为3的块中的最后3字节来创建具有3-字节数据的RLP帧。由于是采用从序列号为3的块中序列号为2的数据字节开始的数据段来创建RLP帧,所以RLP控制器131在RLP帧首标中指明了块序列号3和数据序列号2。此外,由于序列号为3的块的大小是小于6字节的5个字节,并且填充了序列号为3的块的最后部分(数据字节#4),所以RLP控制器131将块结束标记设置为‘1’。
如上所述,按照本发明的实施例,RLP控制器131将数据流分段为多个如图7所示的RLP帧(连续帧)。将数据流分为多个具有可变长度的连续块BLOCK0-BLOCK3,并且每个连续块被再次分段为多个具有字节长度的子连续块。例如,将连续块BLOCK0分段为0到5的每个都具有字节长度的子连续块。RLP控制器131通过将数据流分段为多个RLP帧来进行发送,其中首标附加在每个RLP帧的头部。首标是由块序列号、数据序列号以及块结束标记组成的。块序列号是指明包含于相应RLP帧中子连续块所属的连续块的唯一号的第一组比特。此处,块序列号是相应RLP帧的第一子连续块所属的连续块的号。数据序列号是指明相应RLP帧的第一子连续块的号的第二组比特。块结束标记指明包含于一个或多个RLP帧中的连续块的大小是否小于预定大小(NDATA字节)以及是否包含块的最后部分。
当没有数据发送时,RLP控制器131发送空数据块。
当以上述方法创建块时,RLP控制器131填充(创建的块的序列号、包含于创建的块中的数据段的大小以及包含于创建的数据块中的数据段)发送项目(entry),并将发送项目存储在前向重排序缓冲器133中。前向重排序缓冲器133将重发项目保持一段预定时间,并且当RLP控制器131从接收方的RLP控制器接收到重新发送的请求时,将存储的重发项目中具有所请求的序列号的重发项目发送给RLP控制器131。RLP控制器131采用存储在已发送的重发项目中的数据段中接收方RLP控制器所请求的数据部分,来创建要发送的重发RLP帧。RLP控制器131以与创建发送新数据的RLP帧的方式来创建RLP帧,即使当创建重发RLP帧时也是如此。也就是说,RLP控制器131将数据段的块序列号和数据序列号填充到RLP帧中,从而使得接收方的RLP控制器可以知道包含于接收到的RLP帧中的相应数据段是与哪个块中的哪个数据字节相对应。此外,当RLP帧中发送的块的大小小于NDATA字节时,RLP控制器131应创建RLP帧,以便接收方的RLP控制器可以知道发送块的结束,例如,在发送新数据时。另外,RLP控制器131应向接收方的RLP控制器指明至少填充在接收到的RLP帧中的数据段的第一数据字节是重发的数据字节。为此,本发明定义了“重发标记”。例如,当包含于RLP帧中的第一字节是重发字节时,发送方的RLP控制器将重发标记设置为‘1’,否则,将重发标记设置为‘0’。当接收到其中重发标记为‘1’的RLP帧时,接收方的RLP控制器执行用于处理重发数据的过程。
2.RLP控制器的数据接收操作每当多路复用/多路分解控制器140提供接收到的RLP帧时,RLP控制器131都检测接收到的RLP帧中是否填充了新数据或重发数据。可基于重发标记来执行该操作。如果接收方的RLP帧的重发标记被设置为‘0’,则意味着RLP帧中填充了新数据,这样RLP控制器131就检测接收到的RLP帧的块序列号和数据序列号。如果序列号与当前等待的块序列号和数据序列号相等,则意味着没有丢失新数据。因此,RLP控制器131将接收到的数据段存储在接收数据缓冲器124中。否则,如果序列号不相等,RLP控制器131则请求发送方的RLP控制器对应于丢失的序列号来重发块和数据,并将接收到的新块的数据段存储在重排缓冲器138中。
RLP控制器131按以下所述来确定丢失的序列号。在双向寻址中,RLP控制器131认为存在于块序列号和数据序列号之间希望被接收的序列号以及接收到的新数据段的第一字节的块序列号和数据序列号为丢失的序列号。因此,RLP控制器131将希望被接收的块序列号和数据序列号作为NAK项目存储在NAK列表137中,并确定具有以上块序列号和数据序列号的数据字节的下一个数据字节的块序列号和数据序列号。当确定的下一个数据字节的块序列号和数据序列号不等于接收到的新数据段的第一字节的块序列号和数据序列号时,RLP控制器131将确定的块序列号和数据序列号作为NAK项目存储在NAK列表137中,并再次确定下一个数据字节的块序列号和数据序列号,然后重复以上过程。否则,如果下一个数据字节的块序列号和数据序列号等于接收到的新数据段的第一字节的块序列号和数据序列号,那么RLP控制器131将结束NAK项目的添加过程。
在双向寻址中,当存在具有块序列号B_SEQ和数据序列号D_SEQ的数据字节时,采用下面的等式1来确定该数据字节的下一个字节的块序列号B_SEQNEXT和数据序列号D_SEQNEXT。D_SEQNEXT=D_SEQ+1(当D_SEQ不等于(NDATA-1)时)或0(当D_SEQ等于(NDATA-1)时)B_SEQNEXT=B_SEQ+1(当D_SEQ不等于(NDATA-1)时)或(B_SEQ+1)模NBLOCK(当D_SEQ等于(NDATA-1)时)在等式1中,执行模操作以计算用‘模’符号左边的项目值除以右边的项目值后所得的余数。
RLP控制器131采用丢失数据字节的块序列号、丢失数据字节的数据块序列号、指明是否接收了丢失的数据字节的标记、重发定时器以及故障定时器来创建NAK项目,并将创建的NAK项目存储在NAK列表137中。
在完成了对丢失数据字节进行的NAK项目添加过程后,RLP控制器131采用等式1,为接收到的块的数据段的每个数据字节分配唯一的块序列号和数据序列号。也就是说,RLP控制器131将接收到的块序列号和数据序列号分配给接收到的数据段的第一数据字节。然后,RLP控制器131采用等式1和先前数据字节的块序列号和数据序列号,为接收到的数据段的数据字节分配块序列号和数据序列号。
在给接收到的块的数据字节分配了序列号后,RLP控制器131将由接收到的数据字节的块序列号组成的重排序缓冲器项目、接收到的数据字节的数据序列号、接收到的数据字节以及用于指明接收到数据字节是否是块的最后数据字节的标记存储在重排缓冲器138中,从而在出现丢失数据时,对整个数据字节进行重新排序。特别是,如果发送方的RLP控制器指出了接收到的块的大小是小于NDATA字节的,并且此时接收到的RLP帧中的块的最后部分已被填充,那么RLP控制器131在创建接收到的最后数据字节的重排序缓冲器项目时,相应地对块结束标记进行设置。
在处理了填充有新数据的RLP帧后,RLP控制器131按以下所述来计算下一个新数据的块序列号和数据序列号。也就是说,如果发送方的RLP控制器指出接收到的块的大小是小于NDATA字节的,并且此时接收到的RLP帧中的块的最后部分已被填充,那么RLP控制器131将块序列号设置为下一个新块的序列号,并将数据序列号设置为‘0’。如上所述,下一个新块的序列号是通过将前面的块的序列号加1得到的。如果前面块的序列号分配为(NBLOCK-1),那么新块的序列号将为0。如果发送方的RLP控制器指出接收到的块的大小是等于NDATA字节的,并且此时接收到的RLP帧中的具有小于NDATA字节大小的块的最后部分没有被填充,那么RLP控制器131将保留块序列号,并仅将数据序列号增加到与接收到的数据段的一样大。如果增加后的数据序列号大于NDATA,则认为已接收了该块的所有数据。因此,RLP控制器131将块序列号设置为下一个新块的块序列号,并将数据序列号设置为增加后的数据序列号与NDATA之间的差值。
如果接收到的RLP帧控制器中的重发标记设置为‘1’,那么接收到的RLP帧具有重发的数据段,这样,RLP控制器131就可以采用等式1为接收到的块中的数据段的每个数据字节分配块序列号和数据序列号。也就是说,RLP控制器131将接收到的块序列号和数据序列号分配给接收到的数据段的第一数据字节。然后,RLP控制器131采用等式1及先前数据字节的块序列号和数据序列号,将块序列号和数据序列号分配给接收到的数据段的每个数据字节。
在该过程之后,RLP控制器131在NAK列表137中搜索NAK项目,在该NAK项目时接收到的数据字节的块序列号和数据序列号是一致的。如果已经接收了搜索到的NAK项目,RLP控制器131就丢弃数据字节。如果搜索到的NAK项目是还没有接收到的项目中最早的项目之一,则意味着已经接收了至所接收数据字节的所有数据字节。然后,RLP控制器131对接收到的存储在重排缓冲器138中的连续数据按照序列号的顺序进行重新排序,接着将其发送给接收数据缓冲器124,并且RLP控制器131对用于指明是否接收丢失的数据字节的标记进行设置,以指明接收丢失的数据字节。如果NAK项目不是还没有接收到的最早项目之一,则RLP控制器131对用于指明是否接收丢失的数据字节的标记进行设置,以指明接收丢失的数据字节,并将接收到的数据字节存储在重排缓冲器138中。RLP控制器131创建重排序缓冲器项目并将其存储在重排缓冲器138中,该重排序缓冲器项目是由接收到的数据字节的块序列号、接收到的数据字节的数据序列号以及指明接收到的数据字节是否是用于数据字节的块的最后数据字节的标记组成的。当出现先前丢失的数据字节并且接收了具有连续序列号的数据帧时,如上所述,将存储的数据提供给接收数据缓冲器124。
在处理了接收到的RLP帧后,对于NAK列表137中每个NAK项目上的重发请求,RLP控制器131执行调整定时器的操作。也就是说,如果确定了接收到的RLP帧具有新发送的数据字节或者发送方的RLP控制器没有发送任何数据,则意味着发送方的RLP控制器没有重发请求,从而RLP控制器131应再次请求重发。因此,RLP控制器131将还没有接收到的NAK项目的重发定时器或故障定时器减去1,并且当该值为‘1’时,再次产生重发请求,否则,丢弃重发请求,仅将接收到的剩余部分发送给接收数据缓冲器124。
3.数据发送之前RLP控制器的操作在开始进行操作之前,RLP控制器131将图3和4所示的L_V(S)寄存器132、L_V(R)寄存器136、L_V(N)寄存器135以及E寄存器134初始化为0。在开始进行操作之前,RLP控制器131将前向重排序缓冲器133、NAK列表137以及重排缓冲器138清空。最后,RLP控制器131将所有与重发相关的定时器的状态钝化。
图8A到8F和图9A到9B中显示了RLP控制器131能够发送给多路复用/多路分解控制器的数据块的类型。更具体地说,图8A到8F显示了可以通过基本信道发送的RLP帧,图9A到9B显示了可以通过辅助信道信道发送的RLP帧。在下面的描述中,将认为RLP帧为下列所述。将图8A到8F或下面表14中所示的SYNC、SYNC/ACK、ACK或NAK帧视作“控制帧”,并且将填充了数据的帧视作“数据帧”。将数据帧分为填充了新发送的数据部分的新数据帧以及只填充了重发数据部分的重发数据帧。将只具有12-比特SEQ字段的帧视作“空闲帧”。
在图8A到8F中,通过基本信道发送的数据块可用控制帧、数据帧或空闲帧。在图9A和9B中,通过辅助信道发送的数据块只可用数据帧。
RLP控制器131在发送数据之前执行重建过程。RLP控制器131连续地将SYNC帧作为数据块发送给多路复用/多路分解控制器140。
RLP控制器131从多路复用/多路分解控制器140接收SYNC帧,并连续地将SYNC/ACK帧发送给多路复用/多路分解控制器140,直到接收既不是空数据块也不是SYNC帧的物理信道帧为止。
当接收到SYNC/ACK帧时,RLP控制器131将ACK帧发送给多路复用/多路分解控制器140。RLP控制器131连续地发送ACK帧,直到从多路复用/多路分解控制器140接收既不是空数据块也不是SYNC/ACK帧的物理信道帧。当接收了物理信道帧,并且接收到的数据块不是空数据块而且具有不是SYNC/ACK帧的RLP帧时,RLP控制器131开始数据发送。
当接收到ACK帧时,RLP控制器131开始数据发送。RLP控制器131可以将除SYNC、SYNC/ACK、ACK帧以外的其它帧发送给多路复用/多路分解控制器140。
4.RLP控制器的FCH数据发送操作发送方的多路复用/多路分解控制器140向RLP控制器131发送要通过基本信道发送的数据块的请求,从而使得RLP控制器131生成帧。在向RLP控制器131发送数据块请求时,发送方的多路复用/多路分解控制器140也发送要由RLP控制器131进行创建的数据块的大小信息T。这里假设发送方的多路复用/多路分解控制器140所请求的数据块的大小T在Rate Set 1时总是171比特,在Rate Set 2时总是266比特。
RLP控制器131按照以下的优先级顺序来创建要通过基本信道发送的数据块。
1.控制帧(SYNC、SYCN/ACK、ACK、NAK)2.重发数据帧3.数据帧4.空闲帧当存在要发送的控制帧时,RLP控制器131按如下所述创建控制帧。对于SYNC、SYCN/ACK和ACK帧,RLP控制器131将SEQ字段设置为‘00000000’,按照帧类型设置CTL字段,并附加FCS字段,如图8A所示。FCS字段是由RFC-1662规定的多项式创建的16-比特帧检查序列。FCS字段是为所有前面的比特而创建的。RLP控制器131根据多路复用/多路分解控制器140提供的大小信息,将FCS字段后的部分全部设置为‘0’。RLP控制器131将作为数据块的最后1比特的TYPE字段设置为‘1’,然后将生成的数据块发送给多路复用/多路分解控制器140。
当存在要重发的数据时,RLP控制器131生成NAK帧,并将其发送给多路复用/多路分解控制器。NAK帧具有下面表14中所示的结构。表14NAK帧
在表14中,RLP控制器131按以下所述创建NAK帧。表14的SEQ字段设置为‘00000000’,CTL字段设置为‘00011100’,并且TYPE字段设置为‘1’。RLP控制器131将NAK_COUNT字段设置为由从包含于NAK帧中的重发请求数中减去1而得到的值。
RLP控制器131执行(NAK_COUNT+1)重发请求。正如表14中可见的,重发请求是按照NAK_TYPE_AND_UNIT字段的值,由NAK_TYPE_AND_UNIT字段与FIRST和LAST或与NAK_MAP_SEQ和NAK_MAP字段组成的。当重发请求的NAK_TYPE_AND_UNIT字段设置为‘0001’时,RLP控制器131采用不断请求重发的第一个块的第一序列号填充FIRST字段,采用最后的块的块序列号填充LAST字段。
当RLP控制器131将NAK_TYPE_AND_UNIT字段设置为‘0010’时,以NAK_MAP的方法在具有NAK_MAP_SEQ字段和NAK_MAP字段的块上执行重发请求。当请求重发几个不连续的块时,RLP控制器131将NAK_TYPE_AND_UNIT字段设置为‘0010’并按以下所述填充NAK_MAP字段。NAK_MAP的方法在NAK_MAP_SEQ字段中填充重发请求的第一个块的块序列号,并且当需要请求重发对应于序列号为(NAK_MAP_SEQ+n)模212的块时,将从NAK_MAP字段的最高有效位(MSB)开始的第n个比特设置为‘1’,其中n可以为1到8的值。例如,对于设置为‘0010’的NAK_TYPE_AND_UNIT字段和Rate Set 1,如果(NAK_MAP_SEQ)字段设置为‘0’并且NAK_MAP字段设置为‘10000000’,那么RLP控制器在接收到字段值时,应该对块序列号为0的块和块序列号为1的块进行重发。
当请求重发块的部分段时,RLP控制器131可以按下面表15或16所示来设置NAK_TYPE_AND_UNIT字段。当RLP控制器131按表15或16所示来设置NAK_TYPE_AND_UNIT字段时,以NAK_MAP的方法在具有NAK_MAP_SEQ字段和NAK_MAP字段的块的部分段上执行重发请求。表15NAK_TYPE_AND_UNIT字段(Rate Set 1)
表16NAK_TYPE_AND_UNIT字段(Rate Set 2)
RLP控制器131基于表15或16填充NAK_MAP字段和NAK_MAP_SEQ字段。在NAK_MAP_SEQ字段中填充请求重发块的块序列号,在NAK_MAP字段中填充表15或16所示单元中被请求重发的块中数据段的数据序列号。每当从NAK_MAP字段的最高有效位(MSB)开始的第n个比特设置为‘1’,则通过使用NAK_MAP,RLP控制器131就请求重发属于对应于从((n-1)*U)到(n*U-1)数据序列号的块的数据字节,其中U表示由NAK_TYPE_AND_UNIT字段确定的单元。数值‘n’可以是从1到8的中的一个值。例如,对于Rate Set 1,当NAK_TYPE_AND_UNIT字段设置为‘0011’、NAK_MAP_SEQ字段设置为‘0’并且NAK_MAP字段设置为‘10000000’时,RLP控制器131应该重发块序列号为0的块的数据部分中数据序列号为0到18的数据字节。即,在接收字段值时,重发第1到第19数据字节。
当请求重发属于块的数据字节时,RLP控制器131可以将NAK_TYPE_AND_UNIT字段设置为‘1111’。当RLP控制器131将NAK_TYPE_AND_UNIT字段设置为‘1111’时,重发请求包括NAK_MAP_SEQ字段、FIRST字段以及LAST字段。RLP控制器131将填充有请求重发的数据段的块的块序列号填充在NAK_MAP_SEQ字段中,将请求重发的数据段的第一字节的数据序列号填充在FIRST字段中,将最后字节的数据序列号填充在LAST字段。
RLP控制器131创建(NAK_COUNT+1)发送请求以将其填充在NAK帧中,在FCS字段中填充0用于字节校准,并填充FCS字段。FCS字段是由RFC-1662规定的多项式创建的16-比特帧检查序列。FCS字段是为所有前面的比特而创建的。在填充了FCS字段后,RLP控制器131在数据块的剩余部分中填充0。
为了创建要通过基本信道发送的新数据帧,RLP控制器131按如下所示进行操作。
在发送了先前定义的或在最先创建新数据帧时定义的块中的所有数据字节后,RLP控制器131定义用于数据流的剩余部分的新块。其中,将定义新块的方法分为模式A和模式B。在模式A中,定义新块以使得数据段的大小与多路复用/多路分解控制器140所请求的数据块中可填充的数据大小相同。在模式B中,定义新块,以使得无论多路复用/多路分解控制器140所请求的数据块的大小是多少,新块都有NDATA字节。在定义新块时,RLP控制器131可以选择模式A或模式B。在实施例中,NBLOCK和NDATA分别定义为28和29。
图8A到8F表示了可通过基本信道发送的可用格式。图8A表示了控制帧如SYNC、SYNC/ACK和ACK帧的发送格式。图8B到8E表示了数据帧的发送格式。最后,图8F表示了空闲帧的发送格式。通过下面的描述,将会清楚地了解每种发送格式的结构。
在创建填充有新数据的基本信道RLP帧时,RLP控制器131使用21-比特序列号寄存器L_V(S)132。RLP控制器131将序列号寄存器L_V(S)132中21-比特值的高12位定为块序列号B_SEQ,并将低9位定为数据序列号D_SEQ。
如果D_SEQ值不是0,RLP控制器131确定块中具有还没有发送的数据部分。也就是说,RLP控制器131确定应发送对应于块序列号为B_SEQ的块中的具有D_SEQ到(NDATA-1)的数据序列号的数据字节。因此,RLP控制器131采用图8D到8E的帧格式以发送数据段。当满足下列条件时,可以采用图8D的格式。
首先,还没有发送的数据流中的数据字节的数量大于可采用图8D的格式发送的B,即在Rate Set 1时为19字节或更大,而在Rate Set 2时为31字节或更大。
第二,D_SEQ值是可采用图8D的格式发送的数据字节的数量B的几倍,即在Rate Set 1时为多个19,而在Rate Set 2时为多个31。
在采用图8D的格式发送新数据时,RLP控制器131首先采用作为数据部分的块序列号的B_SEQ值的低8位来设置SEQ字段。此外,RLP控制器131采用通过将以图8D的格式发送的数据字节的数量B除以D_SEQ值而得到的商来设置SEG字段。
在采用图8D的格式发送新数据时,RLP控制器131将TYPE字段设置为‘1’,将重发标记REXMIT字段设置为‘0’,将CTL字段设置为‘01’,然后采用发送数据来填充DATA字段。
在采用图8E的格式发送新数据时,RLP控制器131首先采用作为数据部分的块序列号的B_SEQ值的低8位来设置SEQ字段。此外,RLP控制器131采用D_SEQ值来设置SEG字段。
在采用图8E的格式发送新数据时,RLP控制器131将TYPE字段设置为‘1’,将重发标记REXMIT字段设置为‘0’,将CTL字段设置为‘01’,采用发送数据来填充DATA字段,然后将LEN字段设置为填充在DATA字段中的数据字节的数。
在采用图8D或8E的格式发送新数据时,RLP控制器131在满足下列条件时将块结束标记END字段设置为‘1’,否则将END字段设置为‘0’。
首先,在发送以后,数据流中没有其它还未发送的数据。
第二,将发送的数据字节的数量N与D_SEQ值相加得到的值不等于NDATA或几倍的NDATA。
在发送了新数据帧后,REP控制器131按以下所述更新L_V(S)寄存器132。首先,当块结束标记END字段设置为‘0’时,如果在以上过程中发送的新数据的大小是N,那么RLP控制器131将L_V(S)寄存器132加上N值。其次,在以上过程中,当块结束标记END字段设置为‘1’时,RLP控制器131将L_V(S)寄存器132的高12位的值加上1,并将L_V(S)寄存器132的低9位的值设置为‘0’。
当D_SEQ值为0时,RLP控制器131定义新块。如上所述,对于模式A和模式B,该操作具有不同的过程。如果RLP控制器131按照模式B对新块进行定义,那么RLP控制器131将如下所述进行操作。
在模式A中,RLP控制器131确定新块大小的最小值M为可采用图8B的格式发送的数据字节的数量B,即在Rate Set 1时为20字节,在Rate Set 2时为32字节,并确定还没有发送的数据流中的数据字节的数量。当确定的最小值M与可采用图8B的格式发送的数据字节的数量B相等时,RLP控制器131采用图8B的格式,否则采用图8C的格式。
在采用图8B的格式发送新数据时,RLP控制器131首先采用数据部分的块序列号B_SEQ值的低8位来设置SEQ字段。由于采用图8B的格式发送的数据总是从数据序列号0开始并且具有小于NDATA的大小,所以总是将块结束标记设置为‘1’。因此,尽管图8B的格式不包括数据序列号和块结束标记,但是接收方的RLP控制器在接收到图8B的格式时,将数据序列号视作‘0’,将块结束标记视作‘1’。
在采用图8B的格式发送新数据时,RLP控制器131将TYPE字段设置为‘0’,将重发标记REXMIT字段设置为‘0’,然后采用发送数据填充DATA字段。
在采用图8C的格式发送新数据时,RLP控制器131首先采用数据部分的块序列号B_SEQ值的低8位来设置SEQ字段。由于采用图8C的格式发送的数据总是从数据序列号0开始并且具有小于NDATA的大小,所以总是将块结束标记设置为‘1’。因此,尽管图8C的格式不包括数据序列号和块结束标记,但是接收方的RLP控制器在接收到图8C的格式时,将数据序列号视作‘0’,将块结束标记视作‘1’。
在采用图8C的格式发送新数据时,RLP控制器131将TYPE字段设置为‘1’,将重发标记REXMIT字段设置为‘0’,将CTL字段设置为‘001’,采用发送数据填充DATA字段,然后将LEN字段设置为填充在DATA字段中的数据字节的数量。
在发送了新数据帧后,RLP控制器131按以下所述更新L_V(S)寄存器132。RLP控制器131将L_V(S)寄存器132加上NDATA值。
如果RLP控制器131按照模式B对新块进行定义,那么RLP控制器131将如下所述进行操作。在模式B中,RLP控制器131设置新块的大小为NDATA字节与还没有发送的数据流中数据字节的数量中的最小值M。在确定了新块的大小后,RLP控制器131定义新块具有与由还没有发送的数据流中数据字节确定的块大小相同的数据。在定义了新块后,RLP控制器131如上所述,执行用于发送块的剩余部分的过程。
RLP控制器131将新定义的块存储在前向重排序缓冲器133中,为接收方的重发请求做准备。RLP控制器131在重发项目中填充生成块的块序列号、包含于生成块中的数据段的大小以及包含于生成块中的数据段,并将其存储在前向重排序缓冲器133中。在从接收方接收到重发请求时,RLP控制器131应该从前向重排序缓冲器133中检测对应于所请求的块序列号和数据序列号的数据字节,并重发检测到的数据字节。RLP控制器131将请求重发的块序列号定为块序列号B_SEQ,将发送数据段中第一字节的数据序列号确定为数据序列号D_SEQ。
在发送重发的数据帧时,RLP控制器131可以采用图8B到8E的格式。在满足下列条件时,RLP控制器131采用图8B或8C的格式。
首先,对整个块发出重发请求。
其次,重发块的大小等于或小于能够采用图8B的格式发送的数据字节的数量B,即在Rate Set 1时为20字节,在Rate Set 2时为32字节。
在采用图8B或8C的格式重发块时,如果块的大小等于能够采用图8B的格式发送的数据字节的数量B,那么RLP控制器131采用图8B的格式,否则,就采用图8C的格式。
在采用图8B的格式重发块时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。
在采用图8B的格式重发块时,RLP控制器131将TYPE字段设置为‘0’,将REXMIT字段设置为‘1’,并采用重发数据填充DATA字段。
在采用图8C的格式重发块时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。
在采用图8C的格式重发块时,RLP控制器131将TYPE字段设置为‘1’,将REXMIT字段设置为‘1’,将CTL字段设置为‘001’,采用重发数据来填充DATA字段,并且采用填充在DATA字段中的数据字节的数量来填充LEN字段。
当不满足上述条件时,RLP控制器131采用图8D或8E的格式。在满足下列条件时,RLP控制器131可以采用图8D的格式。
首先,重发块中数据段的大小是大于能够采用图8D的格式发送的数据字节的数量B的,即在Rate Set 1时为19字节或更大,在Rate Set 2时为31字节或更大。
其次,重发块中数据段的第一数据字节的数据序列号D_SEQ是能够采用图8D的格式发送的数据字节的数量B的几倍,即在Rate Set 1时为多个19,在Rate Set 2时为多个31。
在采用图8D的格式重发块中的数据段时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。此外,RLP控制器131采用通过由使用图8D的格式发送的数据字节的数量B除以D_SEQ值而得到的商来设置SEG字段。
在采用图8D的格式重发块中的数据段时,RLP控制器131将TYPE字段设置为‘1’,将REXMIT字段设置为‘1’,将CTL字段设置为‘01’,并采用重发数据来填充DATA字段。
在采用图8E的格式重发块中的数据段时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。此外,RLP控制器131采D_SEQ值设置SEG字段。
在采用图8E的格式重发块中的数据段时,RLP控制器131将TYPE字段设置为‘1’,将REXMIT字段设置为‘1’,将CTL字段设置为‘1’,采用重发数据来填充DATA字段,并且采用填充在DATA字段中的数据字节的数量来填充LEN字段。
在采用采用图8D或8E的格式重发数据时,如果满足下列条件,RLP控制器131将块结束标记END字段设置为‘1’,否则将END字段设置为‘0’。
首先,在发送后,块中的数据段中没有其他还未重发的数据。
其次,通过将发送的数据字节的数量N与D_SEQ相加得到的值不等于NDATA或多个NDATA。
当多路复用/多路分解控制器140请求具有16、20或32比特的长度的数据块时,并且当没有新的发送数据或没有新的重发数据,并且没有要发送的控制帧时,RLP控制器131可以采用图8F的格式发送空闲帧。为了组装空闲帧,RLP控制器131采用L_V(S)寄存器132的高12位填充SEQ字段。RLP控制器131向多路复用/多路分解控制器140发送数据块,该数据块是填充了0的剩余部分。
5.RLP控制器的FCH数据接收操作多路复用/多路分解控制器140为RLP控制器131提供数据块和接收到的数据块的大小信息T。
在接收到控制帧中的SYNC、SYNC/ACK和ACK帧时,RLP控制器131执行重建过程。在接收到控制帧中的NAK帧时,RLP控制器131根据表14分析NAK帧,从而重发请求的块或块的数据段。
当以图8B到8E的格式接收了新数据时,RLP控制器131采用21-比特序列号寄存器L_V(R)136。RLP控制器131将序列号寄存器L_V(R)136中21-比特值的高12位定为等待发送的块序列号B_SEQR,并将低9位定为等待发送的数据序列号D_SEQR。首先,RLP控制器131按照下列的等式2,采用接收到的帧的8-比特SEQ字段和序列号寄存器L_V(R)136来计算块序列号B_SEQ。B_SEQ=[B_SEQR+{28+SEQ-(B_SEQR模28)}模28]模212(2)在以图8B或8C的格式接收新数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号定为‘0’。在以图8B或8C的格式接收新数据帧时,RLP控制器131认为块结束标记END字段为‘1’。
在以图8D的格式接收新数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为通过将接收到的帧的5-比特SEG字段值与可采用图8D的格式发送的数据字节的数量B相乘后得到的值。
在以图8E的格式接收新数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为接收到的帧的9-比特SEG值。
在以图8D或8E的格式接收新数据帧时,RLP控制器131将END字段值定为接收到的帧的1-比特END字段值。
在以图8B到8E的格式接收了重发数据帧时,RLP控制器131应该具有图4所示的NAK列表137。如上所述,NAK列表137中的每个NAK项目是由丢失数据字节的块序列号、丢失数据字节的数据序列号、指明是否接收了丢失数据字节的标记、重发定时器以及故障定时器组成的。RLP控制器131检测12-比特块序列号值的低8位与填充在接收到的重发帧的8-比特SEQ字段中的相一致的NAK项目。如果有检测到的NAK项目,RLP控制器131将存储在NAK项目中的块序列号B_SEQ定为接收到的数据段的块序列号。否则,如果没有检测到的NAK项目,RLP控制器131则丢弃接收到的帧。
在以图8B或8C的格式接收重发数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为‘0’。
在以图8B或8C的格式接收重发数据帧时,RLP控制器131将END字段定为‘1’。
在以图8D的格式接收重发数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为通过将接收到的帧的5-比特SEG字段值与可采用图8D的格式发送的数据字节的数量B相乘后得到的值。
在以图8E的格式接收重发数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为接收到的帧的9-比特SEG字段值。
在以图8D或8E的格式接收重发数据帧时,RLP控制器131将END字段值定为接收到的帧的1-比特END字段值。
在接收到图8B到8E所示的格式时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号定为按上述过程确定的D_SEQ字段值。在确定了接收到的数据段中第一数据字节的块序列号B_SEQ和数据序列号D_SEQ以后,RLP控制器131采用等式1计算剩余数据字节的序列号。
在处理接收到的数据段中的数据字节时,RLP控制器131采用L_V(N)寄存器135,L_V(N)寄存器135是12-比特序列号寄存器。RLP控制器131将序列号寄存器L_V(N)135中21-比特值的高12位定为等待发送的块序列号B_SEQN,并将低9位定为等待发送的数据序列号D_SEQN。基于下面的表17,RLP控制器131确定接收到的数据段中各个数据字节的块序列号和数据序列号。
表17
RLP控制器131按如下所述采用表17将接收到的数据段中每个数据字节的块序列号和数据序列号的<B,D>对与<B_SEQR,D_SEQR>和<B_SEQN,D_SEQN>进行比较。此处,SEQR是存储在用于存储接下来所需的块序列号和数据序列号的L_V(R)寄存器136中的21-比特序列号值B_SEQR是SEQR的高12位的序列号,D_SEQR是SEQR的低9位的序列号。SEQN是存储在用于存储应首先重发的块序列号和数据序列号的L_V(N)寄存器135中的21-比特序列号值B_SEQN是SEQN的高12位的序列号,D_SEQN是SEQN的低9位的序列号。
首先,如果<B,D>等于或大于<B_SEQN,D_SEQN>并小于<B_SEQR,D_SEQR>,那么RLP控制器131将其视作重发的数据。
第二,如果<B,D>等于或大于<B_SEQR,D_SEQR>并且B值小于通过在B_SEQR与E寄存器134相加的和上执行模28的操作而得到的值,那么RLP控制器131认为其是新数据。
第三,如果<B,D>等于或大于通过在<B_SEQR,D_SEQR>与E寄存器134相加的和上执行模28的操作而得到的值,那么RLP控制器131认为其是复制数据。
RLP控制器131将丢弃认为是复制数据的数据字节,因为复制数据是先前已接收到的数据。
如果认为接收到的数据字节是新数据字节或是重发数据字节,那么RLP控制器131执行下列操作。
首先,如果接收到的数据字节的<B,D>大于或等于<B_SEQN,D_SEQN>并小于<B_SEQR,D_SEQR>,那么RLP控制器131创建重排序缓冲器项目并将接收到的数据字节存储在重排缓冲器138中,其中,重排序缓冲器项目是由接收到的数据字节的块序列号、接收到的数据字节的数据序列号以及指明接收到的数据字节是否是块中的最后数据字节的标记组成的。当数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’时,设置用于指明接收到的数据字节是否是块中的最后数据字节的标记以便指明‘LAST’。此处,如果<B,D>等于<B_SEQN,D_SEQN>,那么RLP控制器131向接收数据缓冲器顺序地发送存储在重排缓冲器138中的重排序缓冲器项目中的、从具有<B_SEQN,D_SEQN>序列号的重排序缓冲器项目到具有可连续发送的序列号的重排序缓冲器项目的存储的数据字节。如果将用于指明接收到的最后发送的数据字节所属的重排序缓冲器项目的数据字节是否是块的最后数据字节的标记设置为指明最后字节的值,那么RLP控制器131将L_V(N)寄存器135的高12位设置为存储在重排序缓冲器项目中的块序列号的下一个块序列号,并将低9位设置为‘0’。否则,如果没有设置标记以指明最后字节,那么RLP控制器131采用表1设置<B_SEQN,D_SEQN>以指明最后发送的数据字节的下一个数据字节,然后分别将L_V(N)寄存器135的高12位和低9位设置为B_SEQN值和D_SEQN值。RLP控制器131记录下在具有与那些接收到的数据字节相同的块序列号和数据序列号的NAK项目处接收到等待的数据帧的情况。
第二,如果接收到的数据字节的<B,D>等于<B_SEQR,D_SEQR>并且<B_SEQR,D_SEQR>等于<B_SEQN,D_SEQN>,那么RLP控制器131采用等式1增加<B_SEQR,D_SEQR>和<B_SEQN,D_SEQN>两者以指明下一个字节。此处,如果数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’,那么RLP控制器131将L_V(N)寄存器135的高12位设置为B_SEQN值的下一个块序列号,将低9位设置为‘0’,并且类似地,将L_V(R)寄存器136的高12位设置为B_SEQR值的下一个块序列号,将低9位设置为‘0’。否则RLP控制器131分别将L_V(N)寄存器135的高12位和低9位设置为B_SEQN值和D_SEQN值,分别将L_V(R)寄存器136的高12位和低9为设置为B_SEQR值和D_SEQR值。RLP控制器131将接收到的数据字节提供给接收数据缓冲器。
第三,如果接收到的数据字节的<B,D>等于<B_SEQR,D_SEQR>并且<B_SEQR,D_SEQR>不等于<B_SEQN,D_SEQN>,那么RLP控制器131采用等式1增加<B_SEQR,D_SEQR>以指明下一个字节。此处,如果数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’,那么RLP控制器131将L_V(R)寄存器136的高12位设置为B_SEQR值的下一个块序列号,将低9位设置为‘0’。否则RLP控制器131分别将L_V(R)寄存器136的高12位和低9为设置为B_SEQR值和D_SEQR值。在这种情况下,RLP控制器131将接收到的数据字节创建为重排序缓冲器项目并将接收到的数据字节存储在重排缓冲器138中,其中重排序缓冲器项目是由接收到的数据字节的块序列号、接收到的数据字节的数据序列号、接收到的数据字节以及指明接收到的数据字节是否是块中的最后数据字节的标记组成的。当数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’时,设置用于指明接收到的数据字节是否是块中的最后数据字节的标记以便指明‘LAST’。
第四,如果接收到的数据字节的<B,D>大于<B_SEQR,D_SEQR>,那么RLP控制器131为NAK列表137中的每个数据字节创建一个项目,从而请求重发<B_SEQR,D_SEQR>的数据字节到先前的<B,D>的数据字节。如上所述,每个项目是由丢失数据字节的块序列号、丢失数据字节的数据序列号、指明是否接收丢失数据的标记、重发定时器以及故障定时器组成的。此外,RLP控制器131将接收到的数据字节存储在重排缓冲器138中,并采用等式1增加<B_SEQR,D_SEQR>以指明下一个数据字节。如果数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’,那么RLP控制器131将L_V(R)寄存器136的高12位设置为B_SEQR值的下一个块序列号,将低9位设置为‘0’。否则RLP控制器131分别将L_V(R)寄存器136的高12位和低9为设置为B_SEQR值和D_SEQR值。
同时,在以图8F的格式接收到空闲帧时,RLP控制器131将块序列号B_SEQ设置为12-比特SEQ字段值并将数据序列号D_SEQR设置为‘0’。如果接收到的空闲帧的<B_SEQ,D_SEQ>大于<B_SEQR,D_SEQR>,那么RLP控制器131为NAK列表137中的每个数据字节创建一个项目,从而请求重发先前的<B_SEQR,D_SEQR>的数据字节到先前的<B_SEQ,D_SEQ>的数据字节。如上所述,每个项目是由丢失数据字节的块序列号、丢失数据字节的数据序列号、指明是否接收丢失数据的标记、重发定时器以及故障定时器组成的。此外,RLP控制器131将L_V(R)寄存器136的高12位设置为B_SEQR值的下一个块序列号,将低9位设置为‘0’。如果接收到的空闲帧的<B_SEQ,D_SEQ>小于<B_SEQR,D_SEQR>,那么RLP控制器131执行重建过程。
如果多路复用/多路分解控制器140通知RLP控制器131接收了坏的数据块,则RLP控制器131将存储在E寄存器134中的值加1并将得到的结果值存储在E寄存器134。如果通过在将增加后的E寄存器134的值与B_SEQR相加的和上执行模28操作得到的值大于B_SEQN值,那么RLP控制器131执行重建过程。
如果存在正确接收的并且不是空数据块的任何数据块,或者如果多路复用/多路分解控制器140通知RLP控制器131没有接收到帧,那么RLP控制器131将E寄存器134设置为‘0’。
6.RLP控制器的SCH数据发送操作发送方的多路复用/多路分解控制器140向RLP控制器131发送要通过辅助信道发送的数据块的请求,使得RLP控制器131生成帧。发送方的多路复用/多路分解控制器140还向RLP控制器131发送RLP控制器131应创建的数据块的大小信息T。
RLP控制器131按照下列的优先级次序创建要通过辅助信道发送的数据块。
1.重发数据帧2.数据帧RLP控制器131按如下所述创建要通过辅助信道发送的新数据帧。
当首次创建新数据帧时或当已经发送了先前定义的块中的数据字节时,RLP控制器131定义用于数据流的剩余数据的新块。其中,与基本信道中的一样,将定义新块的方法分为模式A和模式B。在模式A中,定义新块以使得数据段的数据大小与多路复用/多路分解控制器140所请求的数据块中可填充的数据大小相同。在模式B中,定义新块以使得无论多路复用/多路分解控制器140所请求的数据块的大小是多少,新块都有NDATA字节。在定义新块时,RLP控制器131可以选择模式A或模式B。
图9A到9B表示了可在模式A或模式B中通过辅助信道发送的帧格式。在模式B中创建的新数据帧可以具有图9A的格式。在模式A创建的新数据帧可以具有图9B的格式。在创建填充有新数据帧的辅助信道RLP帧时,RLR控制器131使用21-比特序列号寄存器L_V(S)132。RLP控制器131将序列号寄存器L_V(S)132中21-比特值中的高12位定为块序列号B_SEQ,并将低9位定为数据序列号D_SEQ。
参照图9A,可通过辅助信道发送的数据帧是由1-比特的TYPE字段、1-比特REXMIT(重发标记)字段、8-比特SEQ(序列号)字段以及DATA字段组成的。
参照图9B,可通过辅助信道发送的数据帧是由1-比特的TYPE字段、1-比特REXMIT字段、9-比特SEG(数据序列号)字段、1-比特END(块结束标记)字段、6-比特RSVD(保留)字段、8-比特SEQ(序列号)字段以及DATA字段组成的。
如果确定的D_SEQ值不是0,那么RLP控制器131确定块中具有还没有发送的数据部分。也就是说,RLP控制器131确定应发送对应于块序列号B_SEQ的块中的具有D_SEQ到(NDATA-1)的数据序列号的数据字节。因此,RLP控制器131采用图9B的格式以发送数据段。
在采用图9B的格式发送新数据时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。此外,RLP控制器131将SEG字段设置为D_SEQ值。
在采用图9B的格式发送新数据时,RLP控制器131将TYPE字段设置为‘1’,将REXMIT字段设置为‘0’,然后采用重发数据来填充DATA字段。
在采用图9B的格式发送新数据时,如果满足下列条件,RLP控制器131将块结束标记END字段设置为‘1’,否则,将END字段设置为‘0’。
首先,在发送以后,数据流中没有余留还未发送的数据。
第二,将发送的数据字节的数量N与D_SEQ值相加得到的值不等于NDATA或几倍的NDATA。
在发送了新数据帧后,RLP控制器131更新L_V(S)寄存器132。如果发送的新数据的大小是N,那么RLP控制器131按如下所述将L_V(S)寄存器132的值加上N值。
首先,在以上过程中,当块结束标记END字段设置为‘0’时,如果发送的新数据的大小是N,那么RLP控制器131将L_V(S)寄存器132加上N值。
其次,在以上过程中,当块结束标记END字段设置为‘1’时,RLP控制器131将L_V(S)寄存器132的高12位的值加上1,并将L_V(S)寄存器132的低9位的值设置为‘0’。
如果D_SEQ值为0,那么RLP控制器131定义新块。如上所述,该操作在模式A和模式B中的执行过程是不同的。如果RLP控制器131按照模式B对新块进行定义,那么RLP控制器131将按如下所述进行操作。
在模式B中,RLP控制器131确定新块的大小为可采用图9A的格式发送的数据字节的数量与还没有发送的数据流中数据字节的数量中的最小值M。
在采用图9A的格式发送新数据时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。由于采用图9A的格式发送的数据总是从数据序列号0开始并且具有小于NDATA的大小,所以总是将块结束标记设置为‘1’。因此,尽管图9A的格式不包括数据序列号和块结束标记,但是接收方的RLP控制器在接收到图9A的格式时,将数据序列号视作‘0’,将块结束标记视作‘1’。
在采用图9A的格式发送新数据时,RLP控制器131将TYPE字段设置为‘0’,将重发标记REXMIT字段设置为‘0’,然后采用发送数据来填充DATA字段。
在发送了新数据后,RLP控制器131按如下所述更新L_V(S)寄存器132。RLP控制器131将L_V(S)寄存器132的值加上NDATA值。
如果RLP控制器131按照模式B对新块进行定义,那么RLP控制器131将按如下所述进行操作。在模式B中,RLP控制器131确定新块的大小为NDATA字节与还没有发送的数据流中数据字节的数量中的最小值M。在确定了新块的大小后,RLP控制器131定义新块具有大小与还没有发送的数据流中数据字节的块大小相同的数据。在定义了新块后,RLP控制器131如上所述地执行用于发送块的剩余部分的过程。
RLP控制器131将新定义的块存储在前向重排序缓冲器133中,为接收方的重发请求做准备。
在发送重发数据帧时,RLP控制器131可以采用图9A或9B的格式。在满足下列条件时,RLP控制器131采用图9A的格式。
首先,对整个块发出重发请求。
其次,重发块的大小等于或小于能够采用图9A的格式发送的数据字节的数量B,即通过从多路复用/多路分解控制器140请求的数据块的大小T中减去RLP首标的10比特而得到的值。
在采用图9A的格式重发块时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。在采用图9A的格式重发块时,RLP控制器131将TYPE字段设置为‘0’,将REXMIT字段设置为‘1’,并采用重发数据来填充DATA字段。当不满足上述条件时,RLP控制器131采用图9B的格式。
在采用图9B的格式重发块中的数据段时,RLP控制器131首先采用数据部分的块序列号B_SEQ的低8位来设置SEQ字段。此外,RLP控制器131采D_SEQ值设置SEG字段。
在采用图9B的格式重发数据时,RLP控制器131将TYPE字段设置为‘1’,将REXMIT字段设置为‘1’,并采用重发数据来填充DATA字段。
在采用图9B的格式重发数据时,如果满足下列条件,RLP控制器131将END字段设置为‘1’,否则将END字段设置为‘0’。
首先,在发送后,块中的数据段中没有其他还未重发的数据。
其次,通过将发送的数据字节的数量N与D_SEQ相加得到的值不等于NDATA或多个NDATA。
当没有要发送的新数据、重发数据或控制帧时,RLP控制器131向多路复用/多路分解控制器140发送空数据块。
7.RLP控制器的SCH数据接收操作多路复用/多路分解控制器140向RLP控制器131提供数据块和有关接收到的数据块的大小T的信息。
当以图9A和9B的格式接收到新数据帧时,RLP控制器131采用21-比特序列号寄存器L_V(R)136。RLP控制器131将序列号寄存器L_V(R)136的21-比特值的高12位定为等待发送的块序列号B_SEQR,将低9位定为等待发送的数据序列号D_SEQR。首先,RLP控制器131按照等式2采用接收到的帧的8-比特SEQ字段和序列号寄存器L_V(R)136来计算块序列号B_SEQ。
在以图9A的格式接收到新数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为‘0’。在以图9A的格式接收到新数据帧时,RLP控制器131将块结束标记END字段设置为‘1’。
在以图9B的格式接收到新数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为接收到的帧的9-比特SEG字段值。在以图9B的格式接收到新数据帧时,RLP控制器131将END字段值定为接收到的帧的1-比特END字段值。
在以图9A或9B的格式接收到重发数据帧时,RLP控制器131应同在基本信道中一样具有NAK列表137。RLP控制器131检测其中12-比特块序列号值的低8位与填充在接收到的重发帧中8-比特SEQ字段中的值相一致的NAK项目。如果存在检测到的NAK项目,那么RLP控制器131将存储在NAK项目中的块序列号B_SEQ定为接收到的数据段的块序列号。否则,如果没有检测到的NAK项目,RLP控制器131则丢弃接收到的帧。
在以图9A的格式接收到重发数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为‘0’。在以图9A的格式接收到重发数据帧时,RLP控制器131将END字段值定为‘1’。
在以图9B的格式接收到重发数据帧时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号D_SEQ定为接收到的帧的9-比特SEG字段值。在以图9B的格式接收到重发数据帧时,RLP控制器131将END字段值定为接收到的帧的1-比特END字段值。
在接收到图9A或9B所示的格式时,RLP控制器131将接收到的数据段中第一数据字节的数据序列号设置为上述过程中确定的D_SEQ字段值。在确定了接收到的数据段中第一数据字节的块序列号B_SEQ和数据序列号D_SEQ以后,RLP控制器131采用等式1计算剩余数据字节的序列号。
在处理接收到的数据段中的数据字节时,RLP控制器131采用L_V(N)寄存器135,L_V(N)寄存器135是21-比特序列号寄存器。RLP控制器131将序列号寄存器L_V(N)135的21-比特值的高12位定为等待发送的块序列号B_SEQN,将低9位定为等待发送的数据序列号D_SEQN。基于表17,RLP控制器131确定接收到的数据段中各个数据字节的块序列号和数据序列号。
如下所述,RLP控制器131采用表17将接收到的数据段中每个数据字节的一对块序列号和数据序列号<B,D>对与<B_SEQR,D_SEQR>和<B_SEQN,D_SEQN>进行比较。
首先,如果<B,D>等于或大于<B_SEQN,D_SEQN>并且小于<B_SEQR,D_SEQR>,那么RLP控制器131将其视作重发的数据。
第二,如果<B,D>等于或大于<B_SEQR,D_SEQR>并且B值小于通过在B_SEQR与E寄存器134相加的和上执行模28的操作而得到的值,那么RLP控制器131将其视作新数据。
第三,如果<B,D>等于或大于通过在<B_SEQR,D_SEQR>与E寄存器134相加的和上执行模28的操作而得到的值,那么RLP控制器131将其视作复制数据。
RLP控制器131将丢弃认为是复制数据的数据字节,因为复制数据是先前已接收到的数据。
如果认为接收到的数据字节是新数据字节或是重发数据字节,那么RLP控制器131执行下列操作。
首先,如果接收到的数据字节的<B,D>大于或等于<B_SEQN,D_SEQN>并小于<B_SEQR,D_SEQR>,那么RLP控制器131创建重排序缓冲器项目并将接收到的数据字节存储在重排缓冲器138中,其中,重排序缓冲器项目是由接收到的数据字节的块序列号、接收到的数据字节的数据序列号以及指明接收到的数据字节是否是块中的最后数据字节的标记组成的。当数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’时,设置用于指明接收到的数据字节是否是块中的最后数据字节的标记以指示‘LAST’。此处,如果<B,D>等于<B_SEQN,D_SEQN>,那么RLP控制器131将存储在重排缓冲器138中的重排序缓冲器项目中、从具有<B_SEQN,D_SEQN>序列号的重排序缓冲器项目到具有可连续发送的序列号的重排序缓冲器项目的存储的数据字节,向接收数据缓冲器顺序地发送。如果将用于指明接收到的最后发送的数据字节所属的重排序缓冲器项目的数据字节是否是块的最后数据字节的标记设置为指明最后字节的值,那么RLP控制器131将L_V(N)寄存器135的高12位设置为存储在重排序缓冲器项目中的块序列号的下一个块序列号,并将低9位设置为‘0’。否则,如果没有设置标记以指明最后字节,那么RLP控制器131采用表1设置<B_SEQN,D_SEQN>以指明最后发送的数据字节的下一个数据字节,然后分别将L_V(N)寄存器135的高12位和低9位设置为B_SEQN值和D_SEQN值。RLP控制器131记录下在具有同那些接收到的数据字节一样的块序列号和数据序列号的NAK项目处接收到等待的数据帧的情况。
第二,如果接收到的数据字节的<B,D>等于<B_SEQR,D_SEQR>并且<B_SEQR,D_SEQR>等于<B_SEQN,D_SEQN>,那么RLP控制器131采用等式1增加<B_SEQR,D_SEQR>和<B_SEQN,D_SEQN>以指明下一个字节。此处,如果数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’,那么RLP控制器131将L_V(N)寄存器135的高12位设置为B_SEQN值的下一个块序列号,将低9位设置为‘0’,并且类似地,将L_V(R)寄存器136的高12位设置为B_SEQR值的下一个块序列号,将低9位设置为‘0’。否则RLP控制器131分别将L_V(N)寄存器135的高12位和低9位设置为B_SEQN值和D_SEQN值,分别将L_V(R)寄存器136的高12位和低9为设置为B_SEQR值和D_SEQR值。RLP控制器131将接收到的数据字节提供给接收数据缓冲器。
第三,如果接收到的数据字节的<B,D>等于<B_SEQR,D_SEQR>并且<B_SEQR,D_SEQR>不等于<B_SEQN,D_SEQN>,那么RLP控制器131采用等式1增加<B_SEQR,D_SEQR>以指明下一个字节。此处,如果数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’,那么RLP控制器131将L_V(R)寄存器136的高12位设置为B_SEQR值的下一个块序列号,将低9位设置为‘0’。否则RLP控制器131分别将L_V(R)寄存器136的高12位和低9为设置为B_SEQR值和D_SEQR值。在这种情况下,RLP控制器131将接收到的数据字节创建为重排序缓冲器项目并将接收到的数据字节存储在重排缓冲器138中,其中重排序缓冲器项目是由接收到的数据字节的块序列号、接收到的数据字节的数据序列号、接收到的数据字节以及指明接收到的数据字节是否是块中的最后数据字节的标记组成的。当数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’时,设置用于指明接收到的数据字节是否是块中的最后数据字节的标记以指示‘LAST’。
第四,如果接收到的数据字节的<B,D>大于<B_SEQR,D_SEQR>,那么RLP控制器131为NAK列表137中的每个数据字节创建一个项目,从而请求重发<B_SEQR,D_SEQR>的数据字节到先前的<B,D>的数据字节。如上所述,每个项目是由丢失数据字节的块序列号、丢失数据字节的数据序列号、指明是否接收丢失数据的标记、重发定时器以及故障定时器组成的。此外,RLP控制器131将接收到的数据字节存储在重排缓冲器138中,并采用等式1增加<B_SEQR,D_SEQR>以指明下一个数据字节。如果数据字节是接收到的数据段的最后数据字节并且END值设置为‘1’,那么RLP控制器131将L_V(R)寄存器136的高12位设置为B_SEQR值的下一个块序列号,将低9位设置为‘0’。否则RLP控制器131分别将L_V(R)寄存器136的高12位和低9为设置为B_SEQR值和D_SEQR值。
如果多路复用/多路分解控制器通知RLP控制器131接收了坏的数据块,RLP控制器131则将存储在E寄存器134中的值加1并将得到的结果值存储在E寄存器134中。如果通过在增加后的E寄存器134的值与B_SEQR值相加的和上执行模28操作而得到的值大于B_SEQN值,那么RLP控制器131执行重建过程。
如果存在正确接收的并且不是空数据块的数据块,或者如果多路复用/多路分解控制器指出没有接收到帧,那么RLP控制器131将E寄存器134设置为‘0’。
8.数据发送之后RLP控制器的操作在处理了所有接收到的帧后,RLP控制器131执行下列操作。当接收到的数据块包括新数据帧或者没有从接收方的RLP控制器接收帧时,RLP控制器131按照旧项目的次序对NAK列表137中的NAK项目执行下列过程。
首先,如果故障定时器没有溢出并且已经将包含于NAK项目中的序列号发送了三次,那么RLP控制器131将故障定时器的值减1。如果故障定时器的值变为‘0’,那么RLP控制器131执行下列操作。如果RLP控制器131已经接收了对应于NAK项目已具有的序列号的重发数据字节,那么RLP控制器131删除NAK项目。否则,如果RLP控制器131还没有接收到对应于NAK项目已具有的序列号的重发数据字节,那么考虑到没有接收到对应于NAK项目的序列号的数据字节,RLP控制器131顺序地发送接收到的数据字节,接收到的数据字节大于存储在重排缓冲器138中的NAK列表的块序列号和数据序列号,并且接收到的数据字节可以被连续地发送给上层链路协议。然后,RLP控制器131删除NAK项目。RLP控制器131将L_V(N)寄存器135设置为下一个将接收的数据字节的序列号。
其次,如果故障定时器没有计满并且NAK项目具有的序列号包含在已发送了两次的NAK中,那么RLP控制器131将故障定时器的值减1。如果故障定时器的值变为‘0’,那么RLP控制器131执行下列操作。如果RLP控制器131已经接收了对应于NAK项目已具有的序列号的重发数据字节,那么RLP控制器131删除NAK项目并将L_V(N)寄存器135设置为下一个将接收的数据帧的序列号。否则,如果RLP控制器131未能接收到数据字节,那么RLP控制器131将NAK项目的故障定时器设置为适当的值。RLP控制器131包括接下来要发送的三个NAK帧中NAK项目的块序列号和数据序列号。
对于应新添加的NAK项目,RLP控制器131将重发定时器设置为适当的值,并包括接下来要发送的两个NAK帧中NAK项目的序列号。
如上所述,新的移动通信系统采用用于指明包含于RLP帧中的服务的连续块的块序列号和用于指明连续块的子连续块的数据序列号,对RLP帧进行发送和接收。对于多个服务,通过采用双向寻址来使用块序列号和数据序列号,可以有效地发送或重发数量增加的数据字节。
尽管本发明是参照其特定的优选实施例来描述的,但本领域的技术人员应该理解,在不脱离由所附权利要求限定的本发明特定精神和范围的情况下,可以对其进行形式和细节的各种修改。
权利要求
1.一种在移动通信系统中用于发送数据的方法,所述方法包括下列步骤将数据流分段为至少一个具有可变数据长度的连续帧,数据流被分段为多个具有可变数据长度的连续块,每个所述连续块被分段为多个具有字节长度的子连续块;在每个连续帧的头部附加首标,所述首标包括用于指明对应于头部的连续块的序列号的第一组比特以及用于指明对应于头部的子连续块的序列号的第二组比特;以及发送附加了首标的连续帧。
2.如权利要求1所述的方法,其中,包含于每个连续帧中的每个连续块的大小小于预定大小,并且所述首标包括用于指明是否包括连续块的最后子连续块的标记。
3.如权利要求1所述的方法,其中,将包含于每个连续帧中的每个连续块的大小确定为所要求的大小。
4.如权利要求1所述的方法,其中,包含于每个连续帧中的每个连续块的大小彼此相等。
5.一种在移动通信系统中用于发送数据的装置,所述装置包括数据缓冲器,用于存储将要发送的数据流,数据流被分段为多个连续块,每个所述的块被分段为多个具有字节长度的子连续块;寄存器,用于存储连续块的块序列号和子连续块的数据序列号;控制器,用于附加对应于无线电链路协议(RLP)帧的头部的首标,并发送附加了首标的RLP帧,所述RLP帧包括指明对应于头部的连续块的序列号的块序列号以及指明对应于头部的子连续块的序列号的数据序列号。
6.如权利要求5所述的装置,其中,包含于相应的RLP帧中的每个连续块的大小小于预定大小,并且所述首标包括用于指明是否包括连续块的最后子连续块的标记。
7.如权利要求6所述的装置,还包括前向重排序缓冲器,用于存储已发送的RLP帧的以重发已发送的RLP帧。
8.如权利要求5所述的装置,其中,将包含于每个连续帧中的每个连续块的大小确定为所要求的大小。
9.如权利要求5所述的装置,其中,包含于每个连续帧中的每个连续块的大小彼此相等。
全文摘要
一种在移动通信系统中用于发送数据的方法。所述方法包括:将数据流分段为至少一个具有可变数据长度的连续帧,数据流被分段为多个具有可变数据长度的连续块,每个所述连续块被分段为多个具有字节长度的子连续块;在每个连续帧的头部附加首标,所述首标包括用于指明对应于头部的连续块的序列号的第一组比特以及用于指明对应于头部的子连续块的序列号的第二组比特:以及发送附加了首标的连续帧。
文档编号H04L29/08GK1319300SQ00801541
公开日2001年10月24日 申请日期2000年5月27日 优先权日1999年5月27日
发明者张勋 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1