具体实施方式
下面描述本发明的各个方面。应当理解的是,本文的教导可以以多种形式来实现,并且本文公开的任何具体结构、功能或者这两者都仅仅是代表性的。根据本文的教导,本领域技术人员应该理解的是,本文公开的一个方面可独立于任何其它方面来实现,并且这些方面中的两个或更多个可以以多种方式来组合。例如,可以使用本文所述的任何数量的方面来实现一种装置或者实现一种方法。此外,除了本文所述的方面中的一个或多个以外,或者不同于本文所述的方面中的一个或多个,还可以使用其它结构、功能、或者结构和功能来实现这种装置或者实现这种方法。此外,一个方面可以包括权利要求的至少一个要素。
图1是示出在传统的使用SACK机制的通信系统中移动台的接入程序的示意图。移动台10发起接入尝试过程,以便接入基站20。当一个移动台想接入基站时,这个移动台就会发起一次接入尝试。在一次接入尝试中,移动台向基站发送第一个接入试探。如果第一个接入试探未被基站成功解码,则移动台会发送第二个、第三个……第N个接入试探,直到有一个接入试探成功解码为止。直到有一个接入试探成功解码为止。移动站使用增强接入信道(Enhanced Access Channel,EACH)和反向增强接入信道(Reverse Enhanced AccessChannel,REACH)来发送这些增强接入试探。在步骤110中,移动台10在REACH上向基站20发送第一个增强接入试探,该接入试探包括多个数据帧。在该实施例中,在一个增强接入试探中包括六个REACH帧,帧0、1、2、3、4、5。但是,根据实际需要,在一个增强接入试探中可以有任何数量的数据帧。在CDMA2000系统中,尤其是在遵从1x Rev.F及以上标准的M2M通信系统中,引入了SACK机制。如图2中所示,根据现有的SACK标准,在数据帧前有前导和SACK标头。SACK标头包括一个2比特的域,其设置为“01”,以便指示这是一个标头,而不是数据帧,并且指示出使用了SACK。因此,增强接入试探的第一次传输(1st probe)中,存在前导、SACK标头(header)、全部六个帧,帧0、1、2、3、4、5。在步骤120中,假设在基站20处只有帧0、2、5成功解码。根据现有SACK机制,基站20应发送回SACK指令(SACK order),以便指示在收到这个试探后,哪些数据帧没有成功解码。所以,在步骤130中,基站20向移动台10发送第一个SACK指令,以便指示数据帧1、3、4在传输中失败。从而,在步骤140中,移动台10应该准备包括前导、SACK标头以及数据帧1、3、4的第二个接入试探。然后,在步骤150,移动台10应将这第二个接入试探发送到基站20。但是,在步骤140中,当移动台10根据传统SACK机制准备第二个接入试探时,会引发很多问题。这些问题将在下文中详细介绍。
图3是根据本发明一实施例的协议栈的示意图。协议帧300包括物理层(PHY层)310、媒体接入控制层(MAC层)320、链路接入控制层(LAC层)330以及第三层340。
接下来将参照图4a到图4c对如何发送SACK头进行描述。第一个问题将参照图4a到图4c进行描述。图4a是示出在传统的使用SACK机制的通信系统中,移动台的MAC层和PHY层之间传输信息的示意图。图4a是图1中步骤140的详细说明图。如图4a中所示,目前,SACK是在移动台10的PHY层中管理。在图1的步骤130中,SACK指令由移动台10接收。在图4a的步骤410中,PHY层340送出这个SACK指令。之后,在步骤420a,移动台10的MAC层320应该向PHY层340发送一个叫做原语(primitive)的指令。原语是包括激活一组特定操作的数个指令参数的指令,这些指令参数用于在不同的层之间交换信息。通常,REACH数据帧传输是由MAC层通过引入原语PHY-EACH.Request来控制的。原语PHY-EACH.Request用于从MAC层向PHY层发送数据帧。PHY-EACH.Request中的参数包括:pwr_lvl,fpch_id,each_id,base_id,slot_offset,sdu,frame_duration,num_bits,详细介绍如下:
pwr_lvl表示发射机的功率等级;
fpch_id表示寻呼信道的ID;
each_id表示EACH的ID;
base_id表示基站的ID;
slot_offset表示传输时间偏置;
sdu表示要发送的数据帧;
frame_duration表示帧的持续时间;以及
num_bits表示数据帧的比特数。
由于原语PHY-EACH.Request中的参数“sdu”表述要发送的数据帧,所以,MAC层330仅向PHY层340发送数据帧,而不是SACK标头。例如,在步骤140,移动台10需要准备第二次试探,其中在REACH前导后面应该包括SACK标头。但是,根据传统的原语PHY-EACH.Request,MAC层330会在REACH前导之后发送数据帧。这一步骤在图4a中更详细的描述。在步骤420a中,通过原语PHY-EACH.Request中的参数sdu,向PHY层340发送了数据帧,而PHY层认为是SACK标头,从而,在步骤430a中,PHY层会混乱。所以,需要一种将SACK标头从MAC层发送到PHY层的方法。
下面介绍问题的解决方案。图4b是示出根据本发明一实施例,移动台的MAC层和PHY层之间传输信息的示意图。如图4b中所示,第一个解决方案是使MAC层330向PHY层340发送原有的PHY-EACH.Request原语,但是其中的一些参数修改为表示SACK标头。在这个实施例中,依然使用原有的原语PHY-EACH.Request。修改的参数为sdu,将其修改为表示SACK标头。从而,在发送了前导之后,可以通过原语PHY-EACH.Request直接将SACK标头从MAC层发送到PHY层。
如图4c中所示,第二种解决方案是引入新的原语。图4c是示出根据本发明另一实施例,移动台的MAC层和PHY层之间传输信息的示意图。在步骤410中接收到SACK指令之后,在步骤420c中将这个新的原语PHY-EACHSACKheader.Request从MAC层330发送到PHY层340。新的原语PHY-EACHSACKheader.Request用于指示在需要的时候再前导之后将发送SACK标头。使用这个新原语之后,MAC层就知道在前导之后将要发送SACK标头。在新的原语中可以有多个参数。在一个实施例中,这些参数是:PHY-EACHSACKheader.Request(pwr_lvl,fpch_id,each_id,base_id,slot_offset,frame_duration):
pwr_lvl表示发射机的功率等级;
fpch_id表示寻呼信道的ID;
each_id表示EACH的ID;
base_id表示基站的ID;
slot_offset表示传输时间偏置;
frame_duration表示帧的持续时间。
在图4c的例子中,在步骤410中接收到SACK指令之后,MAC层330向PHY层340发送PHY-EACHSACKheader.Request(pwr_lvl,fpch_id,each_id,base_id,slot_offset,frame_duration),以指示MAC层330之后要发送SACK标头。在步骤430c中,SACK标头发送到PHY层340。
同时,根据现有的标准,移动台10中的PHY层340负责保存先前增强接入试探中的所有的REACH帧,即,前导、SACK标头、所有的数据帧0、1、2、3、4、5。在上述的两种解决方案中,SACK标头可以从PHY层转移到MAC层中,这样可以缓解PHY层实体有限的存储空间。并且,MAC层可以适当的设置SACK标头,并传送到PHY层。
通过使用上面的解决方案,图1步骤140中关于如何发送SACK标头的问题已经完全解决了,MAC层能够成功地将SACK标头发送到PHY层。上述实施例可以应用于任何使用SACK机制的CDMA20001x系统中。
然而,还存在第二个问题,就是怎样只发送失败的帧。在现有的规范中,MAC层330不知道怎样仅将失败的帧发送到PHY层340。例如,在图1的步骤150中,根据SACK,移动台10需要向基站20发送帧1、3,而不发送0、2、5。但是,根据现有的标准,MAC层还是会将全部六个帧0、1、2、3、4、5发送到PHY层340,这样会在PHY层340引起极大的混乱。
为了解决这第二个问题,MAC层可以在一次接入尝试期间设置一个向量,其长度等于第一个增强接入试探中包括的REACH帧的数量。例如,在一次接入尝试中,可将该向量命名为SACK[i]。SACK[i]的长度为第一次增强接入试探中包括的REACH帧数。开始时,即,在发送第一个试探之前,将整个向量设置为0,即,SACK[i]=0(i=0,1…N-1),N为第一次增强接入试探中包括的REACH帧数。在发送了试探之后,移动台检查是否收到新的SACK指令。如果收到了SACK指令,则移动台中的MAC层将根据SACK指令设置SACK[i]的值。如果SACK[i]=1(i=0,1…N-1),就意味着第一次试探中的第i帧已经成功接收,并且不需要再发送到PHY层了。否则,MAC层还要再一次将这个帧发送到PHY层。在标准中,SACK指令中的SELECTIVE_ACK_BIT_MASK指示相应的帧是否正确解码。在接收到新的SACK指令之后,MAC层根据SELECTIVE_ACK_BIT_MASK设置SACK[i],如下所示:
图5是示出根据本发明一实施例在使用SACK机制的通信系统中的接入尝试过程的流程图。在步骤510中,移动台开始接入基站。在步骤520中,移动台的MAC层判断是不是接入尝试中的第一次增强接入试探。如果是,则在步骤521中,MAC层初始化SACK[i]=0,i=0,1,…N-1,其中N是接入尝试的第一次试探中包括的帧数,过程进入步骤530。如果步骤520的判断结果为“否”,则步骤直接进入530。在步骤530中,移动台判断是否接收了新的SACK指令。如果在步骤530中,判断结果为“是”,则在步骤531中,MAC层根据SACK指令来设置SACK[i],过程进入步骤532。如果在步骤530的判断结果为“否”,则过程直接进入步骤532。在步骤532中,移动台向基站发送REACH前导。在步骤540,移动台判断是否接收了SACK指令。如果是,则在步骤541中,MAC层向PHY层发送SACK标头。如果步骤540的判断结果为“否”,则过程直接进入步骤550。在步骤550中,MAC层判断SACK[i]中的那个参数的值是零,即,SACK[i]=0,i=0,1,…,N-1是否成立。在步骤551,MAC层将第i帧发送到PHY层,其中SACK[i]=0,并且移动台在REACH上将该帧发送出去。如果在步骤550中,SACK[i]中的所有值都不等于零,即,SACK[i]≠0,i=0,1,…,N-1,则在步骤560中,移动台判断所有的帧是不是都发送了。如果所有的帧没有都发送,则过程进入步骤550,再次进行判断,直到全部帧都发送出去。过程在步骤570结束。
图6是示出根据本发明一实施例在使用SACK机制的通信系统中的接入尝试过程的示意图。为了解释这一机制,还以图1中的例子为准,在接入尝试的第一个试探中还包括六个REACH帧,帧0,1,2,3,4,5。请注意,根据实际需要,在增强接入试探中可以包含任何数量的数据帧。在步骤610中,在发送第一次试探之前,MAC层初始化SACK[i],将其中的每个值设置为零,即,SACK[i]=0,i=0,1,…5,如图5中的步骤521一样。在步骤620中,移动台发起第一个增强接入试探。在步骤621中,基站成功解码帧0、2、5。从而,基站向移动台发送第一个SACK指令,其中的SELECTIVE_ACK_BIT_MASK设置为101001。在步骤622中,移动台接收到第一个SACK指令,并且,MAC层根据第一个SACK指令设置SACK[i]中相应的值,即,将SACK[i]设置为101001,如图5中的步骤531。随后,在步骤630中,移动台准备发送第二次增强接入试探,MAC层将SACK标头(SH)发送到PHY层,以便指示下面的帧用于SACK传输。MAC层随后根据向量SACK[i]将最初的帧1、3、4发送到PHY层,并且PHY层在REACH上发送它们。在步骤631中,对第二个增强接入试探中的帧进行重新排号。在步骤632中,基站成功接收帧1,即最初的帧3。从而,基站向移动台发送第二个SACK指令,其中SELECTIVE_ACK_BIT_MASK设置为010。在步骤633中,在接收了第二个SACK指令之后,MAC层知道最初的帧3已经被基站成功接收,并根据第二个SACK指令将SACK[i]设置为101101。随后,在步骤640中,移动台准备发送第三个增强接入试探,如步骤640中所示,其中,根据SACK[i],MAC层将SACK标头(SH)以及最初的帧1、4发送到PHY层,并且PHY层在REACH上发送它们。在步骤641中,第三个增强接入试探中的帧被重新排号。之后,基站成功接收全部的帧,并向移动台发送ACK消息。在步骤642中,移动台接收了ACK消息,并且接入过程成功。
这样就解决了发送失败帧的问题,MAC层能够仅向PHY层发送失败的帧。这个新的处理机制可用于所有使用SACK机制的CDMA20001x通信系统中,以保护这些系统不产生混乱。
第三个问题在于,如果在第一个试探的尾部的一些数据帧由于不好的通信环境而丢失,则这些数据可能永久的丢失。基站不知道由移动台发送的试探中的数据帧总数,从而,对于这些丢失帧的准确情况,基站不能正确地响应移动台。例如,如图6的例子中所示,第一个试探包括6个REACH数据帧。在步骤621,在第一个试探之后,基站成功地解码帧0和2,帧1和3失败,而帧4、5丢失。这样一来,基站认为数据帧的总数是4。从而,基站根据4个帧的数据长度来设置SACK指令:1010。在步骤622,在接收到第一个SACK指令之后,移动台再次发送帧1和3。移动台不知道怎样处理帧4和5。如果帧4和5没有重发,则这两个帧就永远丢失了。如果帧4和5重发并再次丢失,则,如果帧1和3成功解码,基站就会认为SACK指令是正确的。所以,让基站知道第一个接入试探中REACH数据帧的准确数量是很重要的。
为了解决上述问题,引入新的标头来指示接入尝试的第一个接入试探的REACH数据帧总数。这个新的标头可命名为SACK标头类型II,而传统标准中使用的传统SACK标头称为SACK标头类型I。SACK标头类型II在移动台接收第一个SACK指令之后,在REACH前导之后发送。基站仅在正确解码了SACK标头类型II之后,才发送第一个SACK指令,即,基站知道第一个试探中的帧总数这个信息之后才发送。在移动台接收了第一个SACK指令之后,移动台在之后的试探中发送SACK标头类型I替代SACK标头类型II,从而完成SACK传输。
MAC层可使用下面的消息形式来组成SACK标头类型I。
域 |
长度(比特) |
SRT_HEADER_ID |
2 |
SACK_CODE |
8 |
RESERVED |
按需要设定 |
表1.选择重传标头类型I的格式
其中:
SRT_HEADER_ID:标识符,用于指示这个帧是选择重传标头类型I。移动台将其设置为“10”。
SACK_CODE:来自基站的代码,其唯一地识别EACH选择重传操作的接入尝试。移动台将其设置为SACK_CODES。
RESERVED:预留的比特,移动台根据这个标头的消息比特数要求来设置这个域。移动台可将这个预留比特位全部设置为“0”。
在本发明的另一个实施例中,MAC层可使用下面的消息格式来组合SACK标头类型II。
域 |
长度(比特) |
HEADER_IND |
2 |
FRAME_NUM |
6 |
其中:
HEADER_IND:标识符,用于指示这个帧是选择重传标头类型II。移动台将其设置为“11”。
HEADER_IND:指示试探中包括的REACH数据帧总数。移动台将这个域设置为REACH数据帧的总数。
将HEADER_IND域设置为“11”,以便与SACK标头类型I的“10”和数据帧的“00”以及“01”进行区分。新的标头SACK类型II可以在PHY或者MAC层中定义。但是最好是在MAC层中定义。如果新的标头SACK标头类型II在MAC层中定义,则可以使用原有的原语PHY-EACH.Request,并将其sdu参数设置为新的标头SACK标头类型II。或者引入新的原语来把新的标头发送到PHY层。
如果移动台确定使用SACK机制,其在接收第一个SACK指令之前,在增强接入试探中,紧接着REACH前导之后,发送新的标头SACK标头类型II。并且,在接收SACK指令之前,在试探中发送所有的帧。直到新的标头被解码之后,基站才向移动台发送SACK指令。在解码了新的标头之后,基站根据其设置SACK指令。在接收到SACK指令之后,移动台就在REACH前导之后,替代新的标头SACK标头类型II,而发送传统的标头,SACK标头类型I。接下来的处理过程如上面参照图4到图6中描述的那些实施例。上述过程将参照图7做详细描述。
图7是示出根据本发明另一实施例在使用SACK机制的通信系统中的接入尝试过程的示意图。为了方面说明,在接入尝试的第一个试探中还是如图1和图6中那样有六个REACH帧(帧0,1,2,3,4,5)。请注意,在增强接入试探中可以有任何数量的数据帧。在步骤710中,在发送第一个试探之前,MAC层设置SACK[i],即SACK[i]=0,i=0,1,…5.,并且移动台发起第一个增强接入试探,其中第一个增强接入试探包括REACH前导(P)、SACK标头类型II(SHII)以及数据帧。在步骤711中,基站仅成功接收了帧1,也就是基站没有接收到SHII,并且基站不知道第一个接入试探中包括多少个数据帧。所以,基站就不会向移动台发送SACK指令。在步骤720中,移动台发起第二个增强接入试探,其还是包括REACH前导(P)、SACK标头类型II(SHII)以及数据帧。在步骤721中,基站成功接收SHII以及帧3,从而,基站知道在试探中包括六个数据帧,并且其中的一些丢失了。从而,基站有两种选择来设置第一个SACK指令中的SELECTIVE_ACK_BIT_MASK。第一种选择是将SELECTIVE_ACK_BIT_MASK设置为010100,其指示在第一个和第二个试探中成功接收的帧。第二种选择是将SELECTIVE_ACK_BIT_MASK设置为000100,其仅表示在第一个试探中成功接收到的帧。在步骤730中,移动台接收第一个SACK指令,并据此重新设置SACK[i],并随后发起第三次增强接入试探。由于基站已经知道第一个试探中的帧数,所以第三次试探包括SACK标头类型I(SHI)。后续的过程如图6中所示那样。
还有另一实施例来通知基站第一个试探中的帧数,即,移动台不断将SACK指令中SELECTIVE_ACK_BIT_MASK的长度于先前帧中的数据帧数进行比较。在接收到SACK指令之后,移动台对SELECTIVE_ACK_BIT_MASK的长度和先前帧中的数据帧数进行比较。如果不相符,则移动台知道有一些帧丢失了,并且移动台忽略SACK指令,并重传先前的试探。基站可重新确定试探中的数据帧数量。如果匹配,就意味着基站知道帧数。移动台重传SACK指令中指示的失败帧。
现在,基站能够知道第一个试探中的数据帧总数。这种新的处理机制可以应用在任何使用SACK机制的CDMA20001x通信系统中,以防止混乱的产生。
虽然上文的具体实施方式已经示出、描述和指出应用于各个方面的本发明新颖特征,但应当理解的是,在不脱离本发明的保护范围基础上,本领域的普通技术人员可以对上文说明的设备或处理的形式和细节进行各种省略、替代和改变。人们将认识到的是,由于可以独立于其它部分使用或实现一些特征,所以可以在没有提供本申请阐述的所有特征和优点的构件中实现本发明。本发明的保护范围由权利要求书、前述的说明书或二者进行界定。对在与权利要求书等价的含意或延伸范围内的所有改变都包括在本发明的保护范围之内。