專利名稱:使用循環碼的錯誤控制裝置與方法
(技術領域)本發明涉及使用通信中的循環碼的錯誤控制裝置與方法,尤其,涉及使用能夠切換并使用利用數據交錯的通信和不利用數據交錯的通信的通信方式的錯誤控制裝置與方法。
(技術背景)近年來,便攜電話等使用無線通信的通信裝置正在普及。使用無線通信的通信不需要通常的電話系統的電話線等,通過把基站設置在適當的場所來進行,因此最適合用于認為鋪設電話線成本過大的地區中。不僅如此,由于不必限定進行通信的地點,將來可望更普及。
這樣的無線通信中,主要利用數字通信。尤其,使用無線的通信中,為確保例如電話的通話的保密性,最好使用數字通信。
數字通信中,有時應用組合了使用糾錯碼的編碼方式和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日
發明者児玉幸夫, 京本丈司 申請人:三菱電機株式會社