專利名稱:檢測帶逆序校驗(yàn)位的循環(huán)冗余校驗(yàn)碼中的錯誤的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于檢測CRC(循環(huán)冗余校驗(yàn))碼中的錯誤的裝置和方法,特別涉及一種用于在發(fā)送器發(fā)送CRC編碼的情況下檢測接收器中CRC碼的任何發(fā)送錯誤的裝置和方法。與傳統(tǒng)方式不同,該CRC碼由對逆序使用發(fā)生多項(xiàng)式(generator polynomial)產(chǎn)生的校驗(yàn)位進(jìn)行排列并將其添加在消息位后產(chǎn)生。本申請以韓國專利申請NO.2000-66860為基礎(chǔ),該專利引用于此以資參考。
數(shù)字通信系統(tǒng)中,為了讓接收器檢測發(fā)送錯誤,通常使用在要發(fā)送的承載信息的消息位上添加校驗(yàn)位的方法。在接收器中對校驗(yàn)位單獨(dú)進(jìn)行檢查或與消息位一并檢查以確定是否出現(xiàn)了發(fā)送錯誤。使用這類校驗(yàn)位的錯誤檢測方法中,CRC方法被認(rèn)為是最有效的方法。
背景技術(shù):
圖1說明了傳統(tǒng)CRC(循環(huán)冗余校驗(yàn))碼的結(jié)構(gòu)。參照圖1,n位CRC碼中包括k個消息位(mk-1~m0)和n-k個校驗(yàn)位(Pn-k-1~P0)。
該CRC碼可由某個多項(xiàng)式表示,校驗(yàn)位也可由包含消息位多項(xiàng)式除以發(fā)生多項(xiàng)式得到的余數(shù)多項(xiàng)式的多項(xiàng)式來表示。
k個消息位的多項(xiàng)式表示為m(X)=m0+m1X1+m2X2+…+mk-1Xk-1和,用于產(chǎn)生校驗(yàn)位的發(fā)生多項(xiàng)式的多項(xiàng)式表示為g(X)=g0+g1X1+g2X2+…+gn-kXn-k和,n-k個校驗(yàn)位的多項(xiàng)式表示為p(X)=p0+p1X1+p2X2+…+pn-k-1Xn-k-1這樣,CRC碼可由下式表示c(X)=Xn-km(X)+p(X)其中,p(X)=Xn-km(X)mod g(X)
這一用于檢測是否有發(fā)送錯誤出現(xiàn)的CRC編碼方法將接收到的CRC碼除以發(fā)生多項(xiàng)式并檢測除法的余數(shù)是否為零。該檢測CRC碼發(fā)送錯誤的方法可由以下方程式證明。
如上所述,由于p(X)是Xn-km(X)除以g(X)的余數(shù),因此可定義如下方程。
Xn-km(X)=g(X)Q(X)+p(X)將p(X)移項(xiàng)到左邊得到Xn-km(X)-p(X)=g(X)Q(X)這里,與普通運(yùn)算不同,因?yàn)椤?p(X)”與“+p(X)”在二進(jìn)制伽羅瓦域里的運(yùn)算中等價(jià),所以Xn-km(X)+p(X)=g(X)Q(X)。
以上方程式中,因?yàn)樽筮叺扔赾(X),所以c(X)除以g(X)的商和余數(shù)分別是Q(X)和“0”。圖2示意了用所述原理檢測CRC編碼錯誤的傳統(tǒng)裝置。參見圖2,相關(guān)裝置包括用于將接收到的CRC碼除以發(fā)生多項(xiàng)式的除法裝置11,和根據(jù)除法裝置11的輸出判斷是否有錯誤出現(xiàn)的判定裝置13。除法裝置11包括n-k個1位寄存器11a,n-k個乘法器11b,和n-k個異或(X-OR)門11c。判定裝置13包括用于對除法裝置11中寄存器11a的輸出進(jìn)行或非運(yùn)算的或非(NOR)門13a。
當(dāng)數(shù)字通信系統(tǒng)中的發(fā)送器發(fā)送具有圖1所示結(jié)構(gòu)的CRC編碼位(mk-1,mk-2,…m0,pn-k-1,…,p0)時(shí),CRC編碼位順序地通過適當(dāng)?shù)男诺垒斎爰拇嫫?1a,寄存器中CRC碼的每一位都隨著每一次的輸入從左向右移位一個位置。而且,乘法器11b將依次經(jīng)由最右邊的寄存器11a轉(zhuǎn)移過來的CRC碼位乘以發(fā)生多項(xiàng)式的系數(shù)信號g0,g1,g2,…,gn-k-1,11c的每一個X-OR門按位對從乘法器11b輸出的每一個結(jié)果位和相繼輸入的CRC編碼位進(jìn)行異或運(yùn)算。所有n位都輸入到寄存器11a并經(jīng)過上述運(yùn)算處理后,CRC碼除以發(fā)生多項(xiàng)式的最后余數(shù)保存在寄存器11a。如果沒有產(chǎn)生發(fā)送錯誤,寄存器11a的所有結(jié)果內(nèi)容將變成“0”。這樣,只有當(dāng)CRC碼沒有發(fā)送錯誤時(shí),用于對從寄存器11a輸入的n-k個輸入位執(zhí)行NOR運(yùn)算的判定裝置13a才提供一個“1”輸出。另一方面,如果整個NOR運(yùn)算的結(jié)果是“0”,判定裝置13a將判定CRC編碼中有發(fā)送錯誤。
最近,在有關(guān)下一代移動電信的全球移動電信系統(tǒng)(UMTS)中提出了一種被稱為IMT-2000的數(shù)據(jù)發(fā)送方法,該方法使用校驗(yàn)位產(chǎn)生CRC碼的方法與上述方法不同。即,與傳統(tǒng)技術(shù)不同,UMTS采用了一種新的使用校驗(yàn)位的方法,該校驗(yàn)位由按逆序?qū)ο⑽怀园l(fā)生多項(xiàng)式的余數(shù)位進(jìn)行排列產(chǎn)生。
下面將詳細(xì)解釋該新方法。
圖3示意了逆序添加校驗(yàn)位的CRC碼的結(jié)構(gòu)。該CRC碼按mk-1,mk-2,…m0,p0,…,pn-k-1的順序發(fā)送。該CRC碼可由多項(xiàng)式表示c(X)=Xn-km(X)+p⊥(X)其中,令p(X)=Xn-km(X)mod g(X),定義p⊥(X)為p⊥(X)=Xdegp(X)p(X-1)。
然而,傳統(tǒng)的錯誤檢測裝置只能檢測按圖1所示正常順序添加校驗(yàn)位的傳統(tǒng)的CRC編碼的錯誤。因?yàn)樾碌腃RC編碼多項(xiàng)式c(X)除以發(fā)生多項(xiàng)式g(X)的余數(shù)在傳統(tǒng)檢測裝置中不會變?yōu)椤?”,所以傳統(tǒng)的錯誤檢測裝置不能檢測按圖3所示的逆序添加校驗(yàn)位的新的CRC碼的發(fā)送錯誤。相應(yīng)地,也就需要檢測具有逆序校驗(yàn)位的CRC碼的發(fā)送錯誤。
發(fā)明內(nèi)容
本發(fā)明的目的是要提供一種用于檢測接收到的其校驗(yàn)位流按逆序添加的CRC碼的發(fā)送錯誤的裝置和方法。
根據(jù)本發(fā)明目的的一個方面,提供了一種用于檢測CRC碼中的錯誤的裝置,該裝置包括用于相繼接收具有消息位及逆序添加在消息位后的校驗(yàn)位的CRC碼和用于切換消息位和校驗(yàn)位以便分別傳送的開關(guān)裝置;用于接收從上述轉(zhuǎn)換裝置傳送過來的消息位以及用于將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以獲得余數(shù)的除法裝置;用于接收從上述開關(guān)傳送過來的校驗(yàn)位以及用于相繼對校驗(yàn)位進(jìn)行緩沖的緩沖裝置;用于比較從上述除法裝置過來的余數(shù)位和從上述緩沖裝置過來的校驗(yàn)位的比較裝置;和,用于根據(jù)上述比較裝置的結(jié)果判斷CRC碼中是否出現(xiàn)了發(fā)送錯誤的判定裝置。
比較裝置最好包括若干用于比較余數(shù)位和校驗(yàn)位的X-OR門。
根據(jù)本發(fā)明目的的另一方面,提供了一種用于檢測CRC碼錯誤的方法,該方法包括以下步驟接收具有消息位和逆序排列附加在消息位后面的校驗(yàn)位的CRC碼;將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以形成余數(shù);相繼對校驗(yàn)位進(jìn)行緩沖;比較余數(shù)位和相繼經(jīng)過緩沖的校驗(yàn)位;和,根據(jù)上述比較步驟的結(jié)果判斷接收到的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
根據(jù)本發(fā)明目的的另一個方面,提供了一種用于檢測CRC編碼中的錯誤的裝置,該裝置包括用于相繼接收具有消息位及逆序排列并附加在消息位后的校驗(yàn)位的CRC碼和用于切換消息位與校驗(yàn)位以分別傳送的開關(guān)裝置;用于接收從上述開關(guān)裝置傳送過來的消息位、將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以獲得余數(shù)以及按逆序相繼輸出余數(shù)位的除法裝置;用于比較相繼從上述除法裝置過來的余數(shù)位和相繼從上述開關(guān)裝置過來的校驗(yàn)位的比較裝置;和,用于根據(jù)上述比較裝置的結(jié)果判斷在接收的CRC碼中是否出現(xiàn)了發(fā)送錯誤的判定裝置。
除法裝置最好包括若干個相互串行連接的用于存儲消息位除以發(fā)生多項(xiàng)式所得到的余數(shù)位的一位的寄存器;若干個前向移位開關(guān),該前向移位開關(guān)用來被切換以使得上述若干寄存器向前移位,直到從上述開關(guān)裝置輸入的最后一個消息位通過上述若干個寄存器;若干個后向移位開關(guān),該后向移位開關(guān)用來被切換以使得上述若干個寄存器向后移位,從而將存儲在上述若干寄存器中的余數(shù)位相繼提供給上述比較裝置。
根據(jù)本發(fā)明的另一方面,提供了一種用于檢測CRC碼錯誤的方法,該方法包括以下步驟接收具有消息位和逆序排列附加在消息位后面的校驗(yàn)位的CRC碼;將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以形成余數(shù),并相繼按逆序輸出余數(shù)位;比較相繼接收到的逆序余數(shù)位和相繼接收到的的校驗(yàn)位;和,根據(jù)上述比較步驟的結(jié)果判斷接收到的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
根據(jù)本發(fā)明目的的另一個方面,提供了一種用于檢測CRC碼中的錯誤的裝置,該裝置包括除法裝置,該除法裝置用于通過使用若干一位寄存器來相繼接收和移位輸入的CRC碼、將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以獲得余數(shù)、并將余數(shù)位存儲在上述若干個一位寄存器中,其中所述輸入的CRC碼包括消息位及逆序排列并附加在消息位后的校驗(yàn)位;比較裝置,該比較裝置用于從最外兩位到最里兩位對順序存儲在上述若干個寄存器中的余數(shù)的對稱成對的兩個對應(yīng)位作比較;和,判定裝置,該判定裝置用于根據(jù)上述比較裝置的結(jié)果判斷在輸入的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
比較裝置最好包括若干個X-OR門,其數(shù)量應(yīng)等于上述若干寄存器的數(shù)量除以2的商的整數(shù)部分。如果上述若干寄存器的數(shù)量為奇數(shù),存儲在上述若干寄存器的中心寄存器中的余數(shù)的中間位就直接輸入給判定裝置。
根據(jù)本發(fā)明的另一方面,提供了一種用于檢測CRC碼錯誤的方法,該方法包括以下步驟相繼接收輸入的CRC碼,并將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以形成余數(shù),其中所述輸入的CRC碼包括消息位及逆序排列并附加在消息位后的校驗(yàn)位;從最外兩位到最里兩位,余數(shù)的若干個對稱成對的對應(yīng)位中的每對余數(shù)位互相比較;和,根據(jù)上述比較步驟的結(jié)果判斷接收到的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
圖1是說明傳統(tǒng)CRC碼位流結(jié)構(gòu)的原理圖;圖2是說明用于檢測圖1所示CRC碼中的錯誤的傳統(tǒng)裝置的結(jié)構(gòu)的原理圖;圖3是說明校驗(yàn)位按逆序附加在消息位后面的CRC碼位流結(jié)構(gòu)的原理圖;圖4是說明根據(jù)本發(fā)明第一個實(shí)施例的用于檢測圖3所示的具有逆序校驗(yàn)位的CRC碼中的錯誤的裝置的結(jié)構(gòu)的原理圖;圖5是說明根據(jù)本發(fā)明第二個實(shí)施例的用于檢測具有逆序校驗(yàn)位的CRC碼中的錯誤的裝置的結(jié)構(gòu)的原理圖;圖6是說明根據(jù)本發(fā)明第三個實(shí)施例的用于檢測具有逆序校驗(yàn)位的CRC碼中的錯誤的裝置的結(jié)構(gòu)的原理圖;圖7是說明當(dāng)除法的余數(shù)位的個數(shù)為偶數(shù)時(shí)的圖6所示裝置的典型模式的原理圖;圖8是說明當(dāng)除法的余數(shù)位的個數(shù)為奇數(shù)時(shí)的圖6所示裝置的另一個典型模式的原理圖。
具體實(shí)施例方式
現(xiàn)在將對照附圖詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。以下說明中類似的參考標(biāo)號指代類似的元器件。
如前面所述,參看圖3,CRC碼包括消息位與附加在消息位后面的校驗(yàn)位,該校驗(yàn)位是由消息位除以確定的發(fā)生多項(xiàng)式的按逆序排列的余數(shù)位構(gòu)成。
圖4是說明根據(jù)本發(fā)明第一個實(shí)施例的用于檢測CRC碼中的錯誤的裝置的結(jié)構(gòu)的原理圖。參看圖4,用于檢測所接收的CRC碼中的錯誤的裝置包括除法裝置402,用于將輸入的消息位除以檢驗(yàn)位發(fā)生多項(xiàng)式并存儲該除法的余數(shù)位;緩沖裝置403,用于緩沖輸入的校驗(yàn)位;開關(guān)裝置401,用于在除法裝置402和緩沖裝置403之間選擇性地切換輸入的CRC碼;比較裝置404,用于比較除法裝置402的輸出和存儲在緩沖裝置403中的校驗(yàn)位;判定裝置405,用于根據(jù)比較裝置404的結(jié)果判斷CRC碼中是否出現(xiàn)了發(fā)送錯誤。
開關(guān)裝置401在消息位輸入期間將CRC碼切換至除法裝置402。另一方面,開關(guān)裝置401在校驗(yàn)位輸入期間將CRC碼切換至緩沖裝置403。
除法裝置402包括n-k個一位的寄存器402a、n-k個乘法器402b和n-k個異或門402c。根據(jù)開關(guān)裝置401的切換操作,在CRC碼的消息位輸入期間,消息位相繼輸入給除法裝置402。通過將寄存器402a的每個寄存器中的內(nèi)容從左向右移位一個位置來將消息位相繼輸入給寄存器402a。
當(dāng)消息位輸入給除法裝置402時(shí),除法裝置將消息位除以發(fā)生多項(xiàng)式。信息,也就是輸入消息位在乘法器402b中被乘以發(fā)生多項(xiàng)式,然后其結(jié)果在異或門402c中被異或,從而完成除法運(yùn)算。除法的余數(shù)位存儲在寄存器402a中。余數(shù)位的MSB(最高有效位)存儲在寄存器402a最右邊的寄存器中,而余數(shù)位的LSB(最低有效位)存儲在寄存器402a最左邊的寄存器中。
所有消息位輸入給除法裝置402后,開關(guān)裝置401將輸入的CRC碼切換至緩沖裝置403以將輸入的校驗(yàn)位相繼存儲在緩沖裝置403中。緩沖裝置403包括n-k個一位寄存器,即與校驗(yàn)位的位數(shù)一樣多。緩沖裝置403中的每一個寄存器存儲一個校驗(yàn)位。
比較裝置404包括若干個X-OR(異或門)門404a,其中的各個門分別完成一位從除法裝置402輸出的余數(shù)位與存儲在緩沖裝置403中的相應(yīng)的那個校驗(yàn)位的按位異或運(yùn)算。異或門404a的數(shù)量為n-k,等于校驗(yàn)位的位數(shù)。異或門404a的每個異或門的一個輸入為除法裝置402的寄存器402a中一個寄存器的輸出,而另一個輸入則為緩沖裝置403的一個寄存器的輸出。校驗(yàn)位流中的第一個輸入校驗(yàn)位與從除法裝置402中輸出的余數(shù)的LSB比較,而校驗(yàn)位流中的最后一個輸入校驗(yàn)位與從除法裝置402中輸出的余數(shù)的MSB比較。這樣就完成了逆序排列的校驗(yàn)位與從除法裝置402輸出的余數(shù)位之間的比較。
因?yàn)樾r?yàn)位是原先在CRC碼的發(fā)送方通過將消息位除以發(fā)生多項(xiàng)式的方式來產(chǎn)生的,所以在接收方將接收到的CRC碼再次除以發(fā)生多項(xiàng)式以產(chǎn)生余數(shù),并將余數(shù)與逆序排列的校驗(yàn)位流進(jìn)行比較就可檢測發(fā)送錯誤。也就是說,通過按位比較除法裝置402的輸出位流與緩沖裝置403逆序排列的位流是可以檢測CRC碼的發(fā)送錯誤的。若CRC碼中沒有出現(xiàn)發(fā)送錯誤,比較裝置404的所有X-OR門都將輸出‘0’。
判定裝置405包括一個具有若干個從比較裝置404輸出的輸入的NOR門405a。相應(yīng)地,只有當(dāng)所有的X-OR門404a都輸出‘0’時(shí),判定裝置405才會輸出‘1’來指出無差錯CRC碼。
根據(jù)前面提到的實(shí)施例,在消息位輸入期間執(zhí)行消息位除以發(fā)生多項(xiàng)式的除法運(yùn)算以產(chǎn)生余數(shù)位,而在校驗(yàn)位輸入期間存儲輸入的校驗(yàn)位并將其逆序地與余數(shù)位比較。并且,如果參加比較的兩個位流完全相同,則可判定所接收到的CRC碼中沒有發(fā)送錯誤。因此,所接收到的包括逆序校驗(yàn)位的CRC碼中是否出現(xiàn)了發(fā)送錯誤是可檢測的。
圖5是說明根據(jù)本發(fā)明第二個實(shí)施例的用于檢測CRC碼中的錯誤的裝置的結(jié)構(gòu)的原理圖。在第二個實(shí)施例中,錯誤檢測裝置包括除法裝置502,用于將輸入消息位除以校驗(yàn)位發(fā)生多項(xiàng)式并輸出該除法的余數(shù)位;比較裝置504,用于一位一位地按位比較從除法裝置502相繼輸出的余數(shù)位與相繼輸入的校驗(yàn)位;開關(guān)裝置501,用于選擇性得將輸入的CRC碼切換至除法裝置502和比較裝置504;和判定裝置505,用于根據(jù)比較裝置505的結(jié)果判斷CRC碼中是否出現(xiàn)了發(fā)送錯誤。
除法裝置502包括n-k個一位寄存器502a,n-k乘法器502b,n-k個前向移位開關(guān)503a,n-k個后向移位開關(guān)503b,和n-k個X-OR(異或門)門502c。寄存器502a之間相互串聯(lián),且寄存器502a的每個存儲一個從除法裝置輸出的一個余數(shù)位。在消息位輸入期間,消息位相應(yīng)于開關(guān)裝置501的切換操作相繼輸入除法裝置502。輸入的消息位相繼輸入到寄存器502a并從左向右移位一個位置。
消息位輸入給除法裝置502時(shí),除法裝置502將消息位除以發(fā)生多項(xiàng)式。該除法運(yùn)算與前面提到的參見圖4的除法運(yùn)算類似。相應(yīng)地,該除法的最終余數(shù)位存儲在寄存器502a。特別地,該余數(shù)位的MSB(最高有效位)存儲在最右邊的寄存器中,而該余數(shù)位的LSB(最低有效位)則存儲在最左邊的寄存器中。
最終余數(shù)位存儲進(jìn)寄存器502a時(shí),分別地,寄存器502a中內(nèi)容的每一個隨著每個時(shí)鐘信號相繼左移一個位置,且移出的位相繼輸入給比較裝置504 。
在消息位輸入期間,開關(guān)裝置501被切換以將CRC碼輸入給除法裝置502。另一方面,在校驗(yàn)位輸入期間,開關(guān)裝置501被切換以將CRC碼輸入給比較裝置504。
開關(guān)裝置501與前向移位開關(guān)503a和后向移位開關(guān)503b協(xié)同操作。特別地,當(dāng)開關(guān)裝置501將消息位切換至除法裝置502時(shí),所有前向移位開關(guān)503a被設(shè)為開(ON)狀態(tài),所有后向移位開關(guān)503b被設(shè)為關(guān)(OFF)狀態(tài)。另一方面,當(dāng)開關(guān)裝置501將校驗(yàn)位切換至比較裝置504時(shí),所有前向移位開關(guān)503a被設(shè)為關(guān)狀態(tài),所有后向移位開關(guān)503b被設(shè)為開狀態(tài)。當(dāng)消息位輸入給除法裝置502時(shí),除法裝置502將消息位除以發(fā)生多項(xiàng)式。所有消息位輸入完畢后,除法的余數(shù)位存儲在除法裝置502的寄存器502a中。并且,每一個校驗(yàn)位相繼輸入給比較裝置504時(shí),每一個存儲在除法裝置502的寄存器502a中的余數(shù)位就相繼按逆序輸入給比較裝置504。相應(yīng)地,該逆序校驗(yàn)位相繼按位與校驗(yàn)位比較。
比較裝置504包括X-OR門(異或門)504a,該異或門具有兩個輸入端,其中一個輸入端接從最后一個后向移位開關(guān)移出的余數(shù)位,而另一個接從開關(guān)裝置501過來的校驗(yàn)位。這樣,比較裝置504比較逆序余數(shù)位與相繼輸入的校驗(yàn)位,并且只有在該兩個位流完全相同時(shí)才輸出“1”。
判定裝置505包括OR(或)門505a和延時(shí)寄存器505b。比較裝置504的輸出輸入給OR門505a,OR門505a的輸出存儲在延時(shí)寄存器505a中并在一個時(shí)鐘周期后往回輸入給OR門505a。這樣,只有比較裝置504中的X-OR門504a連續(xù)地輸出“0”時(shí),判定裝置505的輸出才會變?yōu)椤?”來指出無差錯CRC碼。
根據(jù)前面提到的實(shí)施例,在消息位輸入期間,消息位被除以發(fā)生多項(xiàng)式以形成余數(shù),而在校驗(yàn)位的輸入期間,輸入的校驗(yàn)位相繼與逆序排列的余數(shù)位比較。因此,所接收的包含逆序校驗(yàn)位的CRC碼中是否出現(xiàn)了發(fā)生錯誤是可檢測的。
圖6示意了根據(jù)本發(fā)明第三個實(shí)施例的用于檢測CRC碼中的錯誤的裝置的結(jié)構(gòu)的原理圖。第三個實(shí)施例中,錯誤檢測裝置包括除法裝置601,用于將消息位除以發(fā)生多項(xiàng)式并將該除法的余數(shù)位分別存儲在寄存器601a;比較裝置602,用于將存儲在寄存器601a中的最終余數(shù)位從最外頭兩位到最里頭兩位進(jìn)行相互之間的比較;和判定裝置603,用于根據(jù)比較裝置602的結(jié)果判斷CRC碼中是否出現(xiàn)了發(fā)送錯誤。
參看圖6,觸發(fā)裝置601包括n-k個寄存器601a,n-k個乘法器601b,n-k個X-OR(異或門)門601c。
各器件的操作與前面提到的實(shí)施例中各器件的操作類似。然而在第三個實(shí)施例中,包括消息位與校驗(yàn)位的整個CRC碼都輸入給除法裝置601。相應(yīng)地,除法裝置601將整個CRC碼除以發(fā)生多項(xiàng)式并將該除法的余數(shù)位存儲在寄存器601a里。
比較裝置602包括若干個X-OR門602a,其數(shù)量等于將寄存器601c的數(shù)量除以2的商的整數(shù)部分。例如,若除法裝置601有4個圖7所示的寄存器601a,則除法裝置602就提供2個X-OR門602a。若除法裝置601有3個圖8所示的寄存器601a,則除法裝置602就提供1個X-OR門602a。
各X-OR門602a的輸入按如下方式?jīng)Q定。也就是說,最終余數(shù)位的對稱的兩個對應(yīng)位,即從最終余數(shù)位的最外兩位到該余數(shù)位最里兩位,是成對的。各成對的兩位分別相互之間比較。換言之,余數(shù)位的MSB即最右邊的位與余數(shù)位的LSB即最左邊的位比較。類似地,余數(shù)位最右邊的第二位與余數(shù)位最左邊的第二位比較。相應(yīng)地,各對稱成對的兩位成對地輸入給各X-OR門602a。并且,比較裝置602中所有X-OR門602a的輸出都輸入給判定裝置603。
同時(shí),若寄存器601a的數(shù)量為奇數(shù),則存儲在中間寄存器601a中的余數(shù)的中間位就如圖8所示進(jìn)一步直接輸入給判定裝置603。
判定裝置603包括NOR門603a。若寄存器601a的數(shù)量如圖7所示為偶數(shù),則該NOR門603a具有從比較裝置602的所有X-OR門602a輸出的若干個輸入。若寄存器601a的數(shù)量如圖8所示為奇數(shù),則除了從比較裝置602的所有X-OR門602a輸出的若干個輸入外,該NOR門603a還具有一個從中間寄存器601a輸出的輸入。
若判定裝置603的所有輸入為“0”,則所接收的CRC碼無差錯并且從判定裝置603的NOR門603a輸出一個“1”。
根據(jù)本發(fā)明該實(shí)施例的CRC編碼算法的更為詳細(xì)的說明提供如下。
正如先前所述,具有逆序校驗(yàn)位的CRC碼的多項(xiàng)式表達(dá)為c(X)=Xn-km(X)+p⊥(X)式中,令p(X)=Xn-km(X)mod g(X),定義p⊥(X)為
p⊥(X)=Xdegp(X)p(X-1)。
其中,Xn-km(X)mod g(X)=p(X),且p⊥(X)mod g(X)=p⊥(X),(∴deg p⊥(X)<deg g(X))。
這樣,c(X)mod g(X)=p(X)+p⊥(X)=(p0+pn-k-1)+(p1+pn-k-2)X+……++…+(pn-k-2+p1)Xn-k-2+(pn-k-1+p0)Xn-k-1從最后那個等式可以看出,CRC碼多項(xiàng)式c(X)除以發(fā)生多項(xiàng)式g(X)的余數(shù)多項(xiàng)式的系數(shù)是對稱形成的。這樣,如果將余數(shù)位分成兩半,將其中一半的位流的位按逆序排列后按位比較其中一半位流與另一半位流,那么,只要所接收的CRC碼中沒有出現(xiàn)發(fā)送錯誤,每兩個連在每個X-OR門602a的輸入都必定相同。因此,所有X-OR門602a都輸出“0”,相應(yīng)地判定裝置603輸出“1”以指示無差錯CRC碼。
同時(shí)如圖8所示,從最后那個等式可以看出若c(X)除以g(X)的余數(shù)的位數(shù)為奇數(shù),余數(shù)的中間項(xiàng)的系數(shù)就變成兩相等數(shù)的和。
也就是說余數(shù)多項(xiàng)式的中間項(xiàng)變成(p(n-k-1)/2+p(n-k-1)/2)X(n-k-1)/2(其中n-k是一個奇數(shù))。
正如前面提到的,由于在二進(jìn)制伽羅瓦域中兩相等數(shù)相加得“0”,正常情況下余數(shù)的中間項(xiàng)的系數(shù)會變成“0”。因此,既然只要所接收的CRC碼中沒有出現(xiàn)發(fā)送錯誤,余數(shù)的中間項(xiàng)就會變成“0”,那么NOR門603a的所有輸入就會變成“0”,并且判定裝置603也會相應(yīng)地輸出“1”來指示無差錯CRC碼。
根據(jù)本發(fā)明的第三個實(shí)施例,沒有必要提供開關(guān)裝置401或501來分別地切換消息位流和校驗(yàn)位流,而且這樣一來,CRC碼的錯誤檢測裝置比第一和第二實(shí)施例簡單、簡潔。
而且,與圖4所示的第一個實(shí)施例相比,比較裝置602包括的X-OR門602a更少,錯誤檢測裝置的結(jié)構(gòu)變得更為簡單。
還有,與圖5所示的第二個實(shí)施例相比,沒有必要讓開關(guān)裝置501與前向移位開關(guān)503a和后向移位開關(guān)503b協(xié)同操作。而且,有可能簡單地使用傳統(tǒng)除法裝置而不需使用雙向移位寄存器就能實(shí)施本發(fā)明。這樣結(jié)構(gòu)更加簡單。更有甚者,與圖5所示的第二個實(shí)施例所采用的相繼全部按位比較原理相比,第三實(shí)施例提供了更快速的比較原理來節(jié)省錯誤檢測時(shí)間。
這里說明的根據(jù)本發(fā)明的檢測CRC碼錯誤的裝置和方法的優(yōu)點(diǎn)在于在接收端解碼所接收的CRC碼的過程中能有效地檢測發(fā)送錯誤,其中CRC碼包含了不按傳統(tǒng)的正序排列而按逆序排列消息位除以發(fā)生多項(xiàng)式所得余數(shù)位從而產(chǎn)生的校驗(yàn)位。
盡管本發(fā)明以一些典型實(shí)施例為目標(biāo)進(jìn)行詳細(xì)說明,本領(lǐng)域的技術(shù)人員會注意到可在不背離本發(fā)明的范圍和實(shí)質(zhì)的前提下對這些實(shí)施例的各種修改和改型。要理解的是本發(fā)明包括了落在所附權(quán)利要求范圍內(nèi)的各種修改和改型。
權(quán)利要求
1.一種用于檢測CRC碼錯誤的裝置,包括開關(guān)裝置,用于相繼接收具有消息位和逆序排列并附加在消息位后面的校驗(yàn)位的CRC碼以及用于切換消息位與逆序排列的校驗(yàn)位以分別傳送;除法裝置,用于接收經(jīng)過所述開關(guān)裝置傳送過來的消息位以及用于將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式(generator polynomial)以獲得余數(shù);緩沖裝置,用于接收經(jīng)過所述開關(guān)裝置傳送過來的逆序校驗(yàn)位以及用于相繼緩沖逆序校驗(yàn)位;比較裝置,用于比較從所述除法裝置輸出的余數(shù)的余數(shù)位和從所述緩沖裝置輸出的逆序校驗(yàn)位;和判定裝置,用于根據(jù)所述比較裝置的結(jié)果判斷CRC碼中是否出現(xiàn)了發(fā)送錯誤。
2.根據(jù)要求1的檢測CRC碼錯誤的裝置,其中所述比較裝置包括若干個用于比較余數(shù)位和逆序校驗(yàn)位的X-OR(異或)門。
3.一種用于檢測CRC碼中的錯誤的方法,包括以下步驟接收具有消息位和逆序排列并附加在消息位后的校驗(yàn)位的CRC碼;將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以形成余數(shù);相繼緩沖逆序校驗(yàn)位;比較余數(shù)的余數(shù)位和經(jīng)過相繼緩沖的逆序校驗(yàn)位;和根據(jù)所述比較步驟的結(jié)果判斷接收的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
4.一種用于檢測CRC碼中的錯誤的裝置,包括開關(guān)裝置,用于相繼接收具有消息位和逆序排列并附加在消息位后的校驗(yàn)位的CRC碼以及用于切換消息位與逆序排列的校驗(yàn)位以分別傳送;除法裝置,用于接收經(jīng)過所述開關(guān)裝置傳送過來的消息位、用于將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以獲得余數(shù)以及用于相繼按逆序輸出余數(shù)的余數(shù)位;比較裝置,用于比較從所述除法裝置相繼收到的逆序的余數(shù)位和經(jīng)過所述開關(guān)裝置相繼傳送過來的逆序校驗(yàn)位;和判定裝置,用于根據(jù)所述比較裝置的結(jié)果判斷收到的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
5.根據(jù)權(quán)利要求4的檢測CRC碼中的錯誤的裝置,其中所述除法裝置包括若干個相互串行連接的一位的寄存器,用于存儲消息位除以發(fā)生多項(xiàng)式所得到的余數(shù)位;若干個前向移位開關(guān),用于被切換以使得上述若干寄存器向前移位,直到從上述開關(guān)裝置輸入的最后一個消息位通過所述的若干個寄存器;和若干個后向移位開關(guān),用于被切換以使得上述若干個寄存器向后移位,從而將存儲在上述若干寄存器中的余數(shù)位相繼提供給上述比較裝置。
6.根據(jù)權(quán)利要求4的檢測CRC碼中的錯誤的裝置,其中所述比較裝置包括X-OR門。
7.根據(jù)權(quán)利要求4的檢測CRC碼中的錯誤的裝置,其中所述判定裝置包括OR(或)門,該OR門有一個輸入用于接收從所述比較裝置的輸出;和延時(shí)寄存器,用于接收上述OR門的輸出和用于將所述OR門的輸出在一個時(shí)鐘周期后反饋給該OR門。
8.一種用于檢測CRC碼中的錯誤的方法,包括以下步驟接收具有消息位和逆序排列并附加在消息位后的校驗(yàn)位的CRC碼;將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以形成余數(shù)并相繼按逆序輸出余數(shù)的余數(shù)位;比較相繼接收到的逆序余數(shù)位和相繼接收到的逆序校驗(yàn)位;和根據(jù)所述比較步驟的結(jié)果判斷所接收的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
9.根據(jù)權(quán)利要求8的用于檢測CRC碼中的錯誤的方法,其中所述除法步驟包括前向移位輸入的消息位直到獲得余數(shù)位;和后向移位余數(shù)位以使得移出的余數(shù)位相繼在上述比較步驟中參加比較。
10.用于檢測CRC碼中的錯誤的裝置,包括除法裝置,該除法裝置用于通過使用若干一位寄存器來相繼接收和移位輸入的CRC碼、將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以形成余數(shù)、并將余數(shù)的余數(shù)位存儲在上述若干個一位寄存器中,其中所述CRC碼包括消息位及逆序排列并附加在消息位后的校驗(yàn)位;比較裝置,用于從最外兩位到最里兩位對順序存儲在上述若干個寄存器中的余數(shù)的對稱成對的若干兩個對應(yīng)位作比較;和判定裝置,用于根據(jù)上述比較裝置的結(jié)果判斷是輸入的CRC碼中否出現(xiàn)了發(fā)送錯誤。
11.根據(jù)權(quán)利要求10的用于檢測CRC碼中的錯誤的裝置,其中所述比較裝置包括若干個X-OR門,其數(shù)量等于上述若干寄存器的的數(shù)量除以2的商的整數(shù)部分。
12.根據(jù)權(quán)利要求11的用于檢測CRC碼中的錯誤的裝置,其中若上述若干寄存器的數(shù)量為奇數(shù),存儲在上述若干寄存器的中間寄存器中的余數(shù)的中間位就直接輸入給判定裝置。
13.一種用于檢測CRC碼中的錯誤的方法,包括以下步驟相繼接收輸入的CRC碼并將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式以形成余數(shù),其中所述CRC碼包括消息位及逆序排列并附加在消息位后的校驗(yàn)位;從最外兩位到最里兩位,余數(shù)的若干個對稱成對的對應(yīng)位中的每對余數(shù)位互相比較;和根據(jù)上述比較步驟的結(jié)果判斷接收到的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
14.根據(jù)權(quán)利要求13的用于檢測CRC碼中的錯誤的方法,其中判斷步驟包括以下步驟若余數(shù)位為奇數(shù)個,根據(jù)所述比較步驟的結(jié)果和余數(shù)中間位的值判斷接收到的CRC碼中是否出現(xiàn)了發(fā)送錯誤。
全文摘要
一種在發(fā)送方發(fā)送排序校驗(yàn)位所產(chǎn)生的CRC碼的情況下,用于在接收方檢測所收到的CRC碼中是否出現(xiàn)任何發(fā)送錯誤的裝置,其中校驗(yàn)位使用發(fā)生多項(xiàng)式產(chǎn)生并按逆序附加在消息位后。該裝置包括用于將消息位除以校驗(yàn)位發(fā)生多項(xiàng)式從而形成余數(shù)的除法裝置、用于按位比較余數(shù)位與逆序校驗(yàn)位的比較裝置和根據(jù)比較裝置的結(jié)果判斷CRC碼中是否出現(xiàn)發(fā)送錯誤的判定裝置。根據(jù)本發(fā)明,CRC碼包括與傳統(tǒng)正序排列不同的逆序排列的校驗(yàn)位時(shí),接收的CRC碼中的發(fā)送錯誤能被有效地檢測。
文檔編號G06F11/10GK1353521SQ01125828
公開日2002年6月12日 申請日期2001年8月29日 優(yōu)先權(quán)日2000年11月10日
發(fā)明者金宰弘, 孔駿鎮(zhèn), 催圣漢 申請人:三星電子株式會社