专利名称:使用循环码的错误控制装置与方法
(技术领域)本发明涉及使用通信中的循环码的错误控制装置与方法,尤其,涉及使用能够切换并使用利用数据交错的通信和不利用数据交错的通信的通信方式的错误控制装置与方法。
(技术背景)近年来,便携电话等使用无线通信的通信装置正在普及。使用无线通信的通信不需要通常的电话系统的电话线等,通过把基站设置在适当的场所来进行,因此最适合用于认为铺设电话线成本过大的地区中。不仅如此,由于不必限定进行通信的地点,将来可望更普及。
这样的无线通信中,主要利用数字通信。尤其,使用无线的通信中,为确保例如电话的通话的保密性,最好使用数字通信。
数字通信中,有时应用组合了使用纠错码的编码方式和CRC码的错误控制方式。尤其,如在最近的便携电话系统的规格的一部分中所见的那样,从基站向移动站发送时,根据路线状况变化CRC码的方式,有查看移动站的通信状况,如果无线路线品质良好,对数据附加由不进行交错的CRC得到的CRC码来发送,若无线线路品质不好,向数据附加由进行了交错的CRC得到的CRC码来发送等,根据线路的状况,有时需要改变CRC码的方式。
如图9的接收数据120所示,未交错的数据包括数据D0~D223的224位(中间的数据是D0~D207的208位、CRC位是D208~D223的16位),这些数据位根据各自的顺序被发送出去。数据以该顺序被存储在接收缓冲器中,以该顺序读出并进行用于CRC进行错误控制的解码。这里,例如,假设码长为224位,16位的CRC、16级的交错。
参考
图10,交错的接收数据130不以D0~D223的顺序而以D0、D16、D32、...、D209、D1、D17、D33、...、D210、...、D222、D15、D31、D47、...、D207、D223这样的顺序被交错发送,如箭头132所示那样,以该顺序被读出,并实施用于CRC进行错误控制的解码。尤其,这样的交错在路线状况差时,附加纠错信号来进行。
有/没有这样的交错的数据格式化在基站侧进行。移动机不知道从基站接收的数据是否有交错。因此,原来移动机首先假定接收的数据有交错,用CRC电路进行错误检查,没有错误时,判断为接收的数据是有交错的格式,照样处理,有错误时,判断为接收的数据是没有交错的格式,再次作为没有交错,用CRC电路进行错误检查。若通过这样的处理仍是有CRC误差,进行例如数据的再次输送等的适当错误处理。附加纠错码时,此时也进行由纠错码实施的纠错。附加纠错码发送数据的技术叫作FEC(Forward Error Correction-前向纠错),其电路叫作FEC电路。本发明与CRC解码处理相关,由于不涉及FEC,因此在下面的说明中,为使说明明确,不考虑FEC。
实现上述的CRC处理的电路的一个例子在图7中示出。参考图7,原来的错误控制解码部90包括接收数据缓冲器50,用于存储从基站接收的数据;去交错器52,假定在接收数据缓冲器50中存储的数据是被交错(交错格式的)的数据,通过以规定的顺序读出数据来进行数据的去交错;FEC54,接收去交错器52的输出;FEC56,接收从接收数据缓冲器50直接读出的数据;选择器100,选择FEC56和FEC54的任何一个的数据来输出;CRC电路58,接收选择器100的输出,计算数据的CRC。
参考图11,CRC电路58如众所周知的那样,包括串联连接以顺序移动数据的多个1位寄存器CR0~CR15(该个数由CRC的生成多项式确定);加法器142、加法器144,插入在对应于CRC生成多项式中的各项系数中除了0以外的系数的位置的1位寄存器之前,对经数据线140提供的数据和紧靠前面的1位寄存器的输出作两个两个的相加后提供给紧靠后面的1位寄存器;加法器146,对输入数据和最后1位寄存器CR15的输出作以2为除数地相加后经数据线140提供给最前的1位寄存器CR0、加法器142和加法器144。图11所示的是对应于生成多项式g(x)=x16+x12+x5+1的CRC电路。CRC电路实际上是除法电路。
CRC电路中,最初对各个1位寄存器设定规定的初始值,作为输入数据一个位一个位地提供接收数据,并在各个1位寄存器之间移动值。输入完全部的位时,保存在1位寄存器CR0~CR15中的值是除法计算的剩余,即CRC位。通常CRC位为0时,没有错误,除了0以外,则判断为有错误。
使用该电路的检错用图12所示的流程图表示的处理进行。即,启动移动机,接收单元(步骤S2)后,假定最初接收数据被交错,经图7所示的去交错器52用选择器100选择去交错的数据并由CRC电路58进行CRC处理(步骤S30)。结果若没有CRC错误,控制进行到步骤S8、若有CRC错误,控制进行到步骤S34(步骤S32的判定)。
没有CRC错误时,证明从基站发送来的数据被交错,下面以此为前提进行接收处理。即,首先在步骤S8中,判断步骤S2接收的单元是否为最前的单元。若不是最前的单元,在步骤S14放弃该单元,控制返回到步骤S2。
在步骤S8中,当判断步骤S2接收的单元为最前的单元时,步骤S10中作为有交错接收后继单元来进行CRC处理。即,此后的处理中选择器100选择FEC54的输出。接着,在步骤S12中判断是否有后继单元,如果有的话,把控制返回步骤S10,继续后继单元的接收处理。步骤S12中若判断为没有后继单元,则控制返回步骤S2。
另一方面,步骤S32中判断为有CRC错误时,判断为没有交错,因此在步骤S34中假定没有交错来进行CRC处理。在图7所示的例子中,再次从接收数据缓冲器50读出数据,这次由选择器100选择经FEC56的数据来提供给CRC电路58。CRC电路58的CRC处理结果在步骤S36中判定是否有CRC错误。若没有CRC错误,判断步骤S2接收的数据没有交错,控制进行到步骤S18。若有CRC错误,什么都不作(即放弃接收单元)控制返回步骤S2。
步骤S36判断为没有CRC错误时进行的步骤S18~S24的处理与步骤S8~14的处理相同,这里不反复对其进行说明。但是,就步骤S20中作为接收数据中没有进行交错来进行CRC处理这一点与步骤S10不同。
与图7所示的已有错误控制解码部90进行同样的处理的其他已有的错误控制解码部110在图8示出。该例子中,假定最初接收数据中加了交错,经过EC54用CRC电路58ACRC处理从接收数据缓冲器50读出通过去交错器52去交错的数据。其结果若有CRC错误,判断为没有交错并进行改变从接收数据缓冲器50读出数据,这次经FEC56用与CRC电路58不同的CRC电路58BCRC处理没有去交错的数据。图7所示的例子是把该图8所示的2个电路CRC电路58A、58B集中到1个CRC电路58中而成的。
但是,如上所述,接收的数据中是否加了交错必须通过进行CRC处理来判断,首先必须对假定附加交错而读出的数据进行去交错处理,实际上,由于有时数据中没有附加交错,必须暂时从接收数据缓冲器读出数据进行CRC处理。结果有时必须把数据从接收数据缓冲器读出2次,需要相当2次的处理时间。而且,CRC计算也进行2次。因此,移动机的系统负载增大,进而有移动机的消耗功率增加的问题。由于移动机的电源有限,最好是抑制其消耗功率。
因此,本发明的目的是提供一种错误控制电路与方法,在对预先不知道有/无交错的数据进行循环码检查的错误控制装置与方法中,可降低消耗功率。
本发明的另一目的是通过仅从接收数据缓冲器把数据读出一次就能判断有/无交错的错误控制电路与方法。
本发明的又一目的是通过仅从接收数据缓冲器把数据读出一次就能高速判定有/无交错的错误控制电路与方法。
(发明概述)本发明的错误控制装置,包括去交错器,用于对由预先规定的循环码编码的、预定以规定交错顺序交错的规定位数的数据去交错;第一循环码检查电路,接收去交错器的输出,根据对应于循环码的编码方式的检查方式进行规定位数的数据的循环码检查;第二循环码检查电路,接收去交错器的输出,与第一循环码检查电路进行循环码检查同时并且实质上在相同的时间里,边取消去交错器带来的交错效果,边根据对应于循环码的编码方式的检查方式进行规定位数的数据的循环码检查。
与第一循环码检查电路对去交错的数据进行循环码检查同时并且实质上在相同的时间里,由第二循环码检查电路边取消去交错器带来的交错效果,边进行循环码检查。这样,去交错前的数据若被交错,可通过第一循环码检查电路作CRC检查,去交错前的数据若未被交错,可通过第二循环码检查电路作CRC检查。由于数据的读出仅用去交错时的1次就可进行上述2种循环码检查,缩短了循环码检查需要的时间,并且计算的负载减轻。其结果错误控制装置的消耗功率也降低了。
较好是第二循环码检查电路包括连接于去交错器的输出的输入数据线;包括对应于循环码的生成多项式的最高次数的数目的数据信号线的数据总线;对应于循环码的生成多项式的最高次数而设置的多个部分检查位计算电路,分别连接于输入数据线和数据信号线的各个,通过对从输入数据线提供的数据和数据信号线上的数据进行根据循环码的编码方式和交错方式确定的规定运算序列来计算循环码的规定位置的检查位;运算控制部,连接于多个部分检查位计算电路的各个,用于控制多个部分检查位计算电路应进行的运算序列。
更好是多个部分检查位计算电路的各个包括运算器,连接于运算控制部、输入数据线和数据信号线,对输入数据线上的数据和数据信号线上的规定数据线上的数据,进行由从运算控制部提供的运算指定信号确定的运算;数据寄存器,具有连接于运算器的输出的输入和连接于数据总线的规定的数据线的输出,保持运算器输出的数据并输出到规定的数据线;运算结果寄存器,连接于数据寄存器的输出,运算序列中,每当结束仅对应于规定位数除以交错的级数的数目的次数的运算时,就对自己的保持数据和数据寄存器的输出进行以2为除数的运算,保存结果。
本发明的另一方面的错误控制方法,包括步骤,对由预先规定的循环码编码的预定以规定交错顺序交错的规定位数的数据去交错;步骤,接收去交错步骤去交错的数据,根据对应于循环码的编码方式的检查方式进行规定位数的数据的第一循环码检查;步骤,接收去交错的数据,与进行第一循环码检查的步骤同时并且实质上在相同的时间里,边取消去交错的步骤带来的交错效果,边根据对应于上述循环码的编码方式的检查方式进行规定位数的数据的第二循环码检查。
与对去交错的数据进行第一循环码检查同时并且实质上在相同的时间里,边取消去交错器带来的交错效果,边进行第二循环码检查。这样,去交错前的数据若被交错,可通过第一循环码检查作CRC检查,去交错前的数据若未被交错,可通过第二循环码检查作CRC检查。由于数据的读出仅用去交错时的1次就可进行上述2种循环码检查,缩短了循环码检查需要的时间,并且计算的负载减轻。其结果错误控制装置的消耗功率也降低了。
更好是进行上述第二循环码检查的步骤包括步骤,初始化对应于循环码的生成多项式的最高次数的数目的多个临时循环检查数据寄存器;步骤,对于由去交错的步骤去交错的数据,通过边使用上述多个临时循环检查数据寄存器边进行根据循环码的编码方式和交错方式确定的多个时钟循环运算构成的运算序列来计算循环码的各个位置的检查位。
(附图概述)
图1是本发明的一个实施例的无线电话系统中的移动机的框图;图2是本发明的一个实施例的无线电话系统中的错误控制解码部36的框图;图3是说明新CRC电路60的原理的图;图4是表示新CRC电路60的结构的框图;图5是使用新CRC电路60的部分CRC计算电路的框图;图6是表示用本发明的一个实施例的错误控制解码部36进行的处理的流程图;图7是原来的错误控制解码部90的框图;图8是原来的错误控制解码部110的框图;图9是表示没有交错的数据的图;图10是表示有交错的数据的图;图11是表示CRC计算电路的框图;图12是表示用原来的错误控制解码部进行的处理的流程图。
(发明详述)参考图1,本发明的最佳实施例中的移动机20包括在与基站之间进行无线通信的RF部30、解调由RF部30接收的来自基站的信号的解调部32、连接于解调部32的输出进行信道解码处理的信道解码部34、对于信道解码处理后的数据利用CRC检查等进行检错以及利用纠错码进行纠错等的错误控制解码部36、控制移动机20的整体的也包括未图示的其他电路的基本动作的CPU38、对从CPU输出的向基站发送的数据进行CRC码附加等的错误控制编码处理的错误控制编码部40、对从错误控制编码部40输出的由错误控制码编码的数据进行信道编码的信道编码部42、把信道编码部42的输出用无线频率调制的调制部44。
参考图2,错误控制解码部36包括接收数据缓冲器50,用于存储从基站接收的数据;去交错器52,通过按规定的顺序(用图10的箭头132表示的)从接收数据缓冲器50读出数据来进行数据的去交错;FEC54,连接于去交错器52的输出;CRC电路58,连接于FEC54的输出;FEC56,连接于去交错器52的输出;新CRC电路60,连接于FEC56的输出,具有即使在去交错的数据在接收数据缓冲器50内为没有交错的格式时,也能与CRC电路58并行地在相同时间实施CRC处理的功能。
CRC电路58与图11所示的相同。新CRC电路60是本发明有关的部分,新CRC电路60在数据没有交错时,可得到与即使对于该数据进行去交错处理也以没有交错形式输入数据时相同的结果。通过设置该新CRC电路60,对于从接收数据缓冲器50读出的数据用去交错器52进行去交错,也可与CRC电路58对交错的~行CRC检查并行地进行新CRC电路60对没有交错的数据的CRC检查。由于1次完成从接收数据缓冲器50的读出,减少CRC计算的负担,降低消耗功率。
在说明新CRC电路60之前,说明新CRC电路60进行的处理的原理。
没有交错时的数据格式如图9所示,CRC接收多项式F如下式(1)表示。
F=D0x223+D1x222+D2x221+....+D207x16+D208x15+D209x14+....+D223x0....(1)另一方面,有交错时的数据格式如图10所示,CRC接收多项式如下式(1)表示。
D0x223+D16x222+D32x221+....+D208X210+D1x209+D17x208+D33x207+....+D209x196+D2x195+D18x194+D34x193+....+D210x182+D14x29+D30x28+D46x27+....+D190x16+D206x15+D222x14+D15x13+D31x12+D47x11+D223x0...........................(2)这里,把式(1)作为处于交错16级)格式的表示时,如下所示,可分解为16个部分数据F1~F16。F=Σi=116Fi------(3)]]>Fi=Σj=015D(j×16+i-1)x223-(j×16+i-1)------(4)]]>这里,应求出的CRC(对应没有交错的格式)是用CRC多项式除式(3)的剩余。把该应求出的CRC(对应没有交错的格式)作为CRC(x)时,由于CRC码是线性码,根据分配规则,下面的式(5)成立。
CRC(x)=F(x)modG(x))=Σi=116Fi(x)mosG(x)------(5)]]>从x的最高次看去,上述的式Fi(i=1~16)的各项系数D0~D223的出现顺序与有交错的式(2)的各项系数D0~D223的出现顺序相同。其中,对应的项的x的次数在(1)式和(2)式中不同。注意到式(2)中x的次数每一项减去1,而式(1)中x的次数则按作为交错级数的16递减。
这里,为更明确本发明原理,把式F1如下展开。
F1=D0·x223+0·x222+0·x221+0·x220+0·x219+0·x218+0·x217+0·x216+0·x215+0·x214+0·x213+0·x212+0·x211+0·x210+0·x209+0·x208+D16x207+....+D192x31+D208x15....(1)比较式(3)和式(2)时,在式(2)中,具有与式(3)的形式一致的形式,即输入第一项D0后直到输入去交错的第二项数据D16的15个时钟里,输入“0”数据,下面同样,从输入各项数据Di后直到输入下一个数据Di+1的15个时钟里,输入“0”数据。
对于F2~F16也是一样。其中仅需要对F2~F16的最终一项作下面的调整。例如,查看F2的最终一项D209x14,变为如下所示。
D209x14=D209x14+0·x13+0·x12+0·x211+0·x10+0·x9+0·x8+0·x7+0·x6+0·x5+0·x4+0·x3+0·x2+0·x1+0·x0这里,全部15项中的最前面的项是D209x14,剩余14项中,可认为输入0数据。同样,例如查看F15的最终一项D222x1和F16的最终一项D223x0,变为如下所示。
D222x1=D222x1+0·x0D223x0=D223x0考虑F15中仅D222的后1个时钟循环中输入数据“0”,F16中考虑D223后不输入数据,那么,可进行与式(2)中的CRC计算相同的形式的计算。
即,式F1~F16的最后一项的计算中,如果将各个最前面的数据作为D209~D203,将在接着的15时钟~0时钟(F1是15时钟,F2是14时钟,F3是13时钟,下面同样,F15是1时钟,F16是0时钟)时的输入作为固定的“0”数据,就可以分别进行与式(2)相同的计算。这样,对于这些数据部分的每一个可计算CRC位。
因此从原理上讲,如果对上述的F1~F16用式(2)分别计算,之后求出那些剩余的和,就可作为本来没有交错的数据,由去交错器52把去交错处理的数据以该顺序接收,进行CRC计算。
但是,此时,式(2)的计算由图11所示的CRC计算电路进行时,F1的计算中为208个循环、F2的计算中有207个循环、F3的计算中有206个循环等,各个计算时间变为与CRC电路58所进行的有同种程度的大小,整体占用接近CRC计算有交错的数据需要的时间的16倍。这不能同时进行有交错的数据和没有交错的数据的CRC计算。因此,需要想办法。
这里,本发明人在上述的F1~F16的计算中,着眼于在成为计算对象的各项之间插入的数据是格式对应的,必定为“0”。尤其着眼于,将第1项中为数据、接着的15项中连续为“0”这样形式的16个时钟循环连续进行时,在对应于生成多项式的CRC电路中,若已知最初的状态,则可把该16个循环进行实施后的各个CRC寄存器的内容作为最初的各CRC寄存器的内容的函数以简单形式预先计算并表现。利用这样的性质,可使用上述函数用1个循环计算在CRC电路中使用16个时钟循环所进行的全部16项(最前面的项是数据,接着的15个项是“0”)的运算的处理结果。本说明书中,把这样在原来的CRC电路中花费16个时钟循环所进行的处理根据预先求出的预定函数用1个时钟循环所作的计算叫作“16个时钟循环运算”。
参考图3说明如何对16个时钟循环运算进行预先计算。图3的最上面表示对应于已经叙述的生成多项式x16+x12+x5+1的CRC计算电路的结构。这样,根据对应于生成多项式的CRC计算电路的结构,按照如下所述的顺序考虑CRC计算电路内的CRC寄存器的各个状态漂移时,可求出上述的16个时钟循环运算的表达。
首先,第0时钟(初始状态)的各个CRC寄存器(全部共16个)的内容为C0~C15。最初输入的数据为P0。首先通过位于输入部的加法器在该数据上相加CRC寄存器15的内容(以2为除数)。这样一来,第1时钟的各个CRC寄存器的内容在图3中的记载为“1时钟”的级中表示出来。例如,CRC寄存器0的值表示为“C15※P0”(这里记号※表示以2为除数的相加,注意与图中的标记不同)。同样,CRC寄存器1、2、3、4的值分别为C0、C1、C2、C3。CRC寄存器5的内容成为对输入数据P0和CRC寄存器的以2为除数地相加结果C15※P0再与CRC寄存器4的内容C4进行以2为除数的相加的结果,因此,成为C4※C15※P0。下面同样可由最初的CRC寄存器的值和输入数据P0表达全部CRC寄存器的内容。
2时钟以下也同样。输入第2时钟的数据设为P1时,CRC寄存器0的内容为C14※P1,CRC寄存器1的内容为C15※P0,CRC寄存器2、3、4的内容分别为C0、C1、C2。CRC寄存器5、6的内容分别为C3※C14※P1和C4※C15※P0。下面同样全部CRC寄存器的内容由第0时钟的各个CRC寄存器的值和输入的数据P0和P1确定。
下面同样,通过前一个时钟循环的各个CRC寄存器的内容和该时钟循环输入的数据的值,可表达下一个时钟循环的各个CRC寄存器的内容,通过反复直到16时钟循环,16时钟循环后的CRC寄存器的内容可由全部的CRC寄存器的初始值和输入的数据P0~P15表达。此时,若使用P0~P15为“0”,容易进行该计算。
这样一来,根据16时钟循环运算,如获知P1~P15全部为0,则能够在P0输入时刻以1时钟循环计算上述16时钟循环后的全部CRC寄存器的内容,这对于本领域人员是容易理解的。
使用该16时钟循环运算时,例如对于上述的式F1,由在1个循环里执行的16时钟循环运算进行全部数据的计算,可求出Flmod G(x)。由于式F1中包含的项(数据)数为14项(D0,D16,D32,....,D208),式F1的计算结果可用总共14个时钟循环计算。是前述的CRC电路计算时的208个时钟循环的1/16。
接着考虑F2,在F2中对最初的13项用上述的16时钟循环运算来计算。但是最后的一项在其后仅有14个“0”(并非15个)。因此,输入最后的“0”并非在16个循环后而是在第15个循环。此时,可以使用上述的16时钟循环运算。
但是,参考图3的求出上述的16时钟循环运算的过程时,在求出16时钟循环运算的过程中,同样可知道已经求出在15个时钟循环后各个CRC寄存器的内容是怎样的。与16时钟循环运算同样可将其叫作15时钟循环运算。这样,F2时,作为数据边向每个循环提供D1,D17,....,D193,D229边在最初的13个顺序中各进行1次总共13次的16时钟循环运算,通过在最后的1个时钟循环中进行1次15时钟循环运算求出F2modG(x)。
下面同样,对F3通过13次16时钟循环运算和1次14时钟循环运算求出F3mod G(x),对F4通过13次16时钟循环运算和1次13时钟循环运算求出F4modG(x),下面同样,对Fi通过13次16时钟循环运算和1次m(m=17-i)时钟循环运算求出Fimod G(x)。如前所述,通过总计这些Fimod G(x)(i=1~16)的值,可计算Fmod G(x)。这需要的时钟循环数为14x16=224,与有交错的数据的CRC计算需要的时钟循环数一致。
通过实现这样的原理的电路,可在与有交错的数据的CRC计算需要的相同的时间里并行进行没有交错的数据的CRC计算。
上述的16时钟循环运算、15时钟循环运算、...1时钟循环运算与提供的数据内容无关,仅依赖于循环码的生成多项式和预定的交错的交错级数来确定。这样,如果把该确定了内容的运算叫作“时钟循环运算”时,则时钟循环运算的种类只存在相当交错级数的数目。
图4中表示上述的新CRC电路60的一个结构例。参考图4,把新CRC电路60仅设置对应于CRC循环码的生成多项式的最高次数(16)的数目的个数,包括保持进行CRC的各位计算的结果的部分CRC计算电路A0~A15;向这些部分CRC计算电路A0~A15提供输入数据的输入数据线70;构成这些部分CRC电路之间的数据供给路径的C总线74;提供通过对这些部分CRC电路指定进行上述的16时钟循环运算、15时钟循环运算等中的哪一个的运算来指定运算序列的循环控制信号的循环控制信号线72。
参考图5,部分CRC计算电路A0连接于输入数据线70、循环控制信号线72和C总线74,包括系数器80,根据循环控制信号线72上的循环控制信号,选择16时钟循环运算~1时钟循环运算中的一个并对经C总线74上的规定CRC位和经输入数据线70提供的进行去交错处理的输入数据进行该运算,并把结果输出;CRC寄存器82,具有连接于系数器80的输出的输入和连接于C总线74的1根信号线的输出,保持与部分数据相对的部分CRC检查位中的系数器80输出的1位并向C总线74上的对应的信号线上输出;临时CRC寄存器84,把由该部分CRC计算电路A0计算的CRC位计算的中间结果仅运算对应于交错接收数据的级数(图10所示的例子中为16)的次数(式5的i的次数)的结果存储起来;加法器86,在CRC寄存器82的内容与临时CRC寄存器84的内容之间进行以2为除数地相加而作为CRC计算的中间结果提供给临时CRC寄存器84。
其他部分CRC计算电路A1~A15,除C总线74中CRC寄存器82连接的信号线不同这一点外,具有与部分CRC计算电路A0相同的结构。因此,这里不对其进行详细说明。
系数器80可执行已经描述的16位运算~1位运算的任何一个,根据循环控制信号线72上的循环控制信号指示选择并执行其中哪个运算。此时,使用输入数据线70上的输入数据和C总线74上的哪个数据因该部分CRC计算电路执行哪种位数的计算以及此时根据循环控制信号线72上的循环控制信号指示的运算是几位运算而不同。
总之,系数器80在时钟信号的1个循环期间向CRC寄存器82提供进行循环控制信号线72上的循环控制信号指示的运算的结果。CRC寄存器82保持该输出的同时输出到C总线74。对于前述的F1~F16的每一个把16时钟循环运算进行13次并把对应于剩余的数据数的16时钟循环运算~1时钟循环运算中的一个进行1次后,在CRTC寄存器82中存储对于F1~F16之一求出的CRC(Fimod G(x))中的对应于该部分CRC计算电路的位。对把该位存储在临时CRC寄存器84中的值进行以2为除数的运算后再次存储到临时CRC寄存器84中,从而CRC运算的中间结果被存储在临时CRC寄存器84中。
图1~图2、图4和图5所示的本发明的实施例的移动机20如下动作。接收时,RF部30从基站接收电波,提供给解调部32。解调部32把该接收信号解调后提供给信道解码部34。信道解码部34对于信道解调的数据进行信道解码处理,把解码的数据提供给错误控制解码部36。此时,接收的数据不能直接判断有无交错。
错误控制解码部36如下进行该数据的CRC检查。参考图2,接收数据缓冲器50中一次存储的数据由去交错器52按图10的箭头132所示的顺序从接收数据缓冲器50读出(即去交错处理),提供给FEC54和FEC56。为简化说明,该数据作为经FEC54和FEC56原样提供给CRC电路58和新CRC电路60在下面说明。
CRC电路58对于以和原来相同的状态提供的数据假定有交错,从而进行与原来相同的CRC计算处理。与此并行且同时,新CRC电路60根据图3所示的原理通过假定没有交错进行CRC计算。新CRC电路60的动作在后面说明。CRC电路58的CRC计算和新CRC电路60的CRC计算基本同时进行。CRC电路58的CRC计算在没有CRC错误时向CPU 38提供CRC电路58的输出,例如进行声音的再现等。通过CRC电路58的CRC计算在有CRC错误时查看新CRC电路60的CRC计算结果,若没有CRC错误,则把新CRC电路60的结果提供给CPU 38。有CRC错误时,进行例如向基站请求再次发送数据等必要的出错处理。
参考图6,该错误控制解码部36的CRC控制根据以下的控制结构进行。首先,启动移动机,接收单元(步骤S2)后,最初经图2所示的去交错器52把去交错的数据提供给CRC电路58和新CRC电路60,同时进行CRC处理(步骤S4)。结果CRC电路58处理若没有CRC错误(步骤S6的判断为是),控制进行到步骤S8,CRC电路58处理若有CRC错误(步骤S6的判断为否),控制进行到步骤S16。
通过CRC电路58的CRC处理内有CRC错误时,从基站发送来的数据有交错,下面以其为前提进行接收处理。即,首先在步骤S8中,判断步骤S2接收的单元是否为最前的单元。若不是最前的单元,在步骤S14放弃该单元,控制返回到步骤S2。
在步骤S8中,判断步骤S2接收的单元为最前的单元后,步骤S10中作为有交错接收后继单元并进行CRC处理。接着,在步骤S12中判断是否有后继单元,如果有的话,把控制返回步骤S10,继续后继单元的接收处理。步骤S12中若判断为没有后继单元,则控制返回步骤S2。
另一方面,步骤S6中根据CRC电路58的CRC处理判断为有CRC错误时,判断步骤S16由新CRC电路60进行的CRC处理的结果是否有CRC错误。此时,实际上该判断已经在步骤S4得到,不必要重新以没有交错来从接收数据缓冲器50读出数据。新CRC电路60的CRC处理的结果如果是没有CRC错误,则步骤S2接收的数据判断为没有交错,控制进行到步骤S18。若有CRC错误,什么都不作(即放弃接收单元),控制返回步骤S2。
由于在步骤S16判断为没有CRC错误时进行的步骤S18~S24的处理与步骤S8~14的处理相同,这里不反复对其进行说明。
因此,在该控制结构中,与图12所示的已有例不同,即使由CRC电路58的处理判断为有CRC错误,也不必要重新从接收数据缓冲器50读出接收数据。处理时间缩短,处理负担也减轻。
参考图4和图5,新CRC电路60如下来动作。正如首先说明的那样,去交错的接收数据若有16级交错,以D0、D16、...、D192、D208、D1、D17、...D193、D209、D2、D18、...、D194、D210、...、D15、D31、...、D207、D223顺序从接收数据缓冲器50读出。这些如上所述被分解成F1、F2、F3~F15的形式。
首先如下求出对F1的临时CRC。最初把全部部分CRC计算电路A0~A15的CRC寄存器82的内容用规定值初始化,清空全部临时CRC寄存器84。经输入数据线70输入最初的数据D0时,在循环控制信号线72上输出指示执行16时钟循环运算的循环控制信号。各部分CRC计算电路A0~A15的系数器80对输入数据线70上的输入数据D0和C总线74上的CRC寄存器82的值中的规定部分进行对应于16时钟循环运算的运算,输出结果。CRC寄存器82存储对应的系数器80的运算结果。到此的处理用1个循环进行。
接着,输入数据D1。此时,同样在循环控制信号线72上输出指示执行16时钟循环运算的循环控制信号。各部分CRC计算电路A0~A15的系数器80对输入数据线70上的输入数据D1和C总线74上的CRC寄存器82的值中的规定部分进行对应于16时钟循环运算的运算,输出结果。CRC寄存器82存储对应的系数器80的运算结果。该处理也用1个循环进行。即到此的处理总共用2个循环进行。
下面同样,到最终项D208之前都进行16时钟循环运算。结果,在输入该最终项D208的时刻在部分CRC计算电路A0~A15的CRC寄存器82上存储作为对于F1的临时CRC的CRC1(x)。将其输送到临时CRC寄存器84。
接着输入数据D1、D17、D193、D209与F2有关。首先,仅初始化部分CRC计算电路A0~A15的系数器80。输入最初的数据D1时,在循环控制信号线72上输出指示执行16时钟循环运算的循环控制信号。响应于此在输入数据D1和系数器80中存储的值之间在部分CRC计算电路A0~A15的每个中用1个时钟循环进行16时钟循环运算,把结果存储在各个系数器80中。接着,输入下一个数据D17时,同样,进行16时钟循环运算。后面同样进行直到最后一项(D209)的前面一项(D193)的运算。
对于最后一项(D209),如前所述,在其后仅后续14个固定的“0”。因此,对于该最后一项,向循环控制信号线72输出指示15时钟循环运算的循环控制信号。在各部分CRC计算电路A0~A15中,使用输入数据D209和各系数器80的值用1个循环进行上述15时钟循环运算,结果存储在各个系数器80中。这样,在结束最后一项数据的运算的时刻在系数器80中整体存储作为对F2的临时CRC的CRC2(x)。通过在其和作为对已经存储在临时CRC寄存器84中的F1的临时CRC的CRC1(x)之间进行以2作为除数相加,求出CRC1(x)+CRC2(x)=(F1((x)+F2(x)modG(x)。
下面同样,对于F3~F16边仅在最后一项的运算时进行14时钟循环~1时钟循环运算边求出各临时CRC,将其以2作为除数加到临时CRC寄存器84中,在全部数据的运算结束时刻在临时CRC寄存器84中作为整体求出(F1(x)+F2(x)+F3(x)+...+F15(x)+F16(x)mod G(x),即求出没有交错的格式的数据的CRC。通过读出该值,可判定有无没有交错格式的数据的CRC错误。
以上的新CRC电路60的处理如已经说明的那样可以在与CRC电路58对没有交错格式的数据的CRC计算相同的时间进行。因此,通过在假定数据为交错格式的基础上由去交错器52从接收数据缓冲器50读出的数据,可同时得到没有交错的CRC检查结果和有交错的CRC检查结果。CPU38使用该结果进行发送数据的再现等,另外,对基站发送的数据经错误控制编码部40、信道解码部42、调制部44从RF部30来发送。
如上所述,根据该实施例,即使不知道从基站发送来的数据是否为交错格式,通过假定有交错仅进行一次读出,就能同时得到没有交错的CRC检查结果和有交错的CRC检查结果。不管接收数据是否有交错,都可通过仅一次的运算判断是否被交错。因此,降低了运算负担,进而实现抑制移动机的功率消耗的效果。
以上公开的实施例在所有方面都是例示的表示,应考虑为不作为限制。本发明的范围并非由上面的实施形式和实施例而由权利要求的范围来表示,包括在权利要求的范围和等价意义的范围内的全部修改和变形。
如上所述,根据本发明的错误控制电路,通过仅读出一次接收数据就可判断接收的数据是否被交错,并且其需要的时间与接收的数据被交错时进行该判定需要的时间相同。因此,本发明的错误控制电路适合用于基站根据线路状况切换以有交错的格式还是以没有交错的格式发送数据并且适用于对接收数据来附加表示有无交错的数据的通信系统中。
权利要求
1.一种错误控制电路(36),包括去交错器(52),用于对由预先规定的循环码编码的,预定以规定交错顺序交错的规定位数的数据(130)去交错;第一循环码检查电路(58),接收上述去交错器(52)的输出,根据对应于上述循环码的编码方式的检查方式进行上述规定位数的数据的循环码检查;第二循环码检查电路(60),接收上述去交错器(52)的输出,与上述第一循环码检查电路(58)进行循环码检查同时并且实质上在相同的时间里,边取消上述去交错器(52)带来的交错效果,边根据对应于上述循环码的编码方式的检查方式进行上述规定位数的数据的循环码检查。
2.根据权利要求1的错误控制电路,上述第二循环码检查电路(60)包括连接于上述去交错器的输出的输入数据线(70);包括对应于上述循环码的生成多项式的最高次数的数目的数据信号线的数据总线(74);对应于上述循环码的生成多项式的最高次数而设置的多个部分检查位计算电路(A0~A15),分别连接于上述输入数据线(70)和上述数据信号线(74)的各个通过对从上述输入数据线(70)提供的数据和上述数据信号线(74)上的数据进行根据上述循环码的编码方式和上述交错方式确定的规定运算序列来计算上述循环码的规定位置的检查位;运算控制装置(72),连接于上述多个部分检查位计算电路(A0~A15)的各个,用于控制上述多个部分检查位计算电路(A0~A15)应进行的运算序列。
3.根据权利要求2的错误控制电路,上述多个部分检查位计算电路(A0~A15)的各个包括运算装置(80),连接于上述运算控制装置(72)、上述输入数据线(70)和上述数据信号线(74),对于上述输入数据线(70)上的数据和上述数据信号线(74)上的规定数据线上的数据,进行由从上述运算控制装置(72)提供的运算指定信号确定的运算;数据保持装置(82),具有连接于上述运算装置(80)的输出的输入和连接于上述数据信号线(74)的规定的数据线的输出,保持上述运算装置(80)输出的数据并输出到上述规定的数据线(74);运算结果保持装置(84,86),连接于上述数据保持装置(82)的输出,上述运算序列中,每当结束仅对应于上述规定位数除以上述交错的级数的数目的次数的运算时,就对自己的保持数据和上述数据保持装置(82)的输出进行以2为除数的运算,保存结果。
4.根据权利要求3的错误控制电路,上述运算装置(80)可进行仅对应于上述交错的交错级数的数目的种类的由上述生成多项式确定的时钟循环运算。
5.根据权利要求4的错误控制电路,上述运算指定信号指定上述时钟循环运算中的任何一个。
6.根据权利要求1的错误控制电路,上述循环码是16位CRC码。
7.根据权利要求1的错误控制电路,上述交错是16级交错。
8.一种错误控制方法,包括步骤(52),对由预先规定的循环码编码的预定以规定交错顺序交错的规定位数的数据(130)去交错;步骤(58),接收上述去交错步骤去交错的数据,根据对应于上述循环码的编码方式的检查方式进行上述规定位数的数据(130)的第一循环码检查;步骤(60),接收上述去交错的上述数据(130),与进行上述第一循环码检查的步骤同时并且实质上在相同的时间里,边取消去交错的步骤带来的交错效果,边根据对应于上述循环码的编码方式的检查方式进行上述规定位数的数据的第二循环码检查。
9.根据权利要求8的错误控制方法,进行上述第二循环码检查的上述步骤(60)包括步骤,初始化对应于上述循环码的生成多项式的最高次数的数目的多个临时循环检查数据保持装置(84);步骤,对于由上述去交错的步骤去交错的数据,通过边使用上述多个临时循环检查数据保持装置(84)边进行根据上述循环码的编码方式和上述交错方式确定的多个时钟循环运算构成的运算序列来计算上述循环码的各个位置的检查位。
10.根据权利要求9的错误控制方法,用把上述规定位数除以上述交错的交错级数的数目表示交错级内的数据数目,所述规定位数的数据在上述交错级内的每个数据上被分割为多个部分数据,计算上述各个位置的检查位的步骤包括进行在上述多个部分数据的每一个上计算临时循环检查数据的处理的步骤;通过把在上述部分数据的每一个上计算的临时循环检查数据相加求出上述规定位数的数据的循环检查数据的步骤。
11.根据权利要求10的错误控制方法,多个种类的时钟循环运算包括从1个时钟循环运算到对应于上述交错的级数的最高数目的时钟循环运算,在上述多个部分数据的每一个上附加对应于上述规定位数的位置的序号,计算上述临时循环检查数据的处理包括用预先规定的初始值初始化对应于上述循环码的生成多项式的最高次数的数目的多个数据保持装置的步骤;对于输入的数据和上述多个数据保持装置保存的数据,把进行上述最高数目的时钟循环运算、将结果保持在上述多个数据保持装置的各位中的处理反复进行比上述交错的级数仅少1的次数的步骤;对于输入的数据和上述多个数据保持装置保存的数据,进行由在上述部分数据上附加的序号确定的上述时钟循环运算,把结果保持在上述多个数据保持装置的各位中的处理。
12.根据权利要求11的错误控制方法,上述求出规定位数的数据的循环检查数据的步骤包括一结束上述每一个部分数据的循环检查数据的计算,就在上述多个数据保持装置的各个保持内容和对应的上述多个临时循环检查位保持装置的保持内容之间进行以2为除数的相加,把结果保存在上述对应的临时循环检查位保持装置中的步骤。
13.根据权利要求8的错误控制方法,上述循环码是16位CRC码。
14.根据权利要求8的错误控制方法,上述交错是16级交错。
全文摘要
错误控制装置包括:去交错器(52),用于对由预先规定的循环码编码的预定器以规定交错顺序交错的规定位数的数据去交错;第一循环码检查电路(58),接收去交错器(52)的输出,根据对应于循环码的编码方式的检查方式进行规定位数的数据的循环码检查;第二循环码检查电路(60)接收去交错器的输出,与第一循环码检查电路进行的循环码检查同时并且实质上在相同的时间里,边取消去交错带来的交错效果,边根据对应于循环码的编码方式的检查方式进行规定位数的数据的循环码检查。
文档编号H03M13/27GK1333950SQ99815450
公开日2002年1月30日 申请日期1999年11月15日 优先权日1999年11月15日
发明者児玉幸夫, 京本丈司 申请人:三菱电机株式会社