本發(fā)明屬于計算機技術及通信技術領域,尤其是涉及一種快速的CRC校驗方法及裝置。
背景技術:
在數據通信的過程中,由于各種因素的干擾,無論傳輸系統(tǒng)設計的多么完美,錯誤總會發(fā)生。這種錯誤可能只是一比特的錯誤(由于某種干擾使得某比特數據由1變?yōu)榱?,或者由0變?yōu)榱?)。但是,就僅僅這一比特的錯誤就會導致整個傳輸數據的一幀或者多幀數據的錯誤。所以,為了盡量提高接收端收到數據的正確率,一般會在接收端使用接收到的數據之前對數據進行差錯檢驗,當且僅當檢驗的結果為正確時接收端才真正接收此次傳輸數據。檢驗的方式有很多種,其中最常見的就是CRC循環(huán)冗余校驗。
一般的CRC產生方法每次運算只能產生一比特數據的CRC校驗碼,這在需要大量數據傳輸的通信系統(tǒng)中,這個效率是遠遠不能滿足系統(tǒng)校驗需求的。
技術實現要素:
有鑒于此,本發(fā)明旨在提出一種快速的CRC校驗方法,以實現在高速的通信系統(tǒng)中來檢驗傳輸的數據是否正確,從而舍棄校驗失敗的數據,提高系統(tǒng)傳輸的正確性。
為達到上述目的,本發(fā)明的技術方案是這樣實現的:
一種快速的CRC校驗方法,包括如下步驟:
一種快速的CRC校驗方法,包括如下步驟:
(1)每個時鐘周期產生8比特數據的初始CRC校驗碼;
(2)將接收到的數據按字節(jié)的形式進行整理,形成8比特位寬的數據;
(3)將接收的8比特數據中的某些比特和初始CRC校驗碼的某些比特進行異或操作,然后按比特進行翻轉,最后取反得到最終的CRC校驗碼,最終將數據和最終的CRC校驗碼一起發(fā)送;
(4)在接收端對接收到的數據和最終的校驗碼一起做校驗,將結果與固定在系統(tǒng)內部的常值作比較,如果一致,則說明傳輸正確,否則,傳輸錯誤。
進一步的,所述步驟(4)中的校驗過程為將接收到數據和最終的CRC校驗碼中的某些特定比特和初始CRC校驗碼中的某些特定比特做異或運算。
進一步的,所述步驟(4)中所述常值為將初始CRC校驗碼通過傳統(tǒng)的除法取余得到的數據,經過按比特翻轉,再取反獲得。
相對于現有技術,本發(fā)明所述的一種快速的CRC校驗方法具有以下優(yōu)勢:本發(fā)明提出一種快速的CRC校驗方法,相對于傳統(tǒng)的通過除法取余,每次產生1比特數據的32位校驗碼;本發(fā)明通過特定的算法,每次使用8比特的數據和原始的初始CRC校驗碼按照特定的規(guī)則進行異或運算,可以在一個時鐘周期內產生8比特數據的32位CRC校驗碼;這樣一來,大大的提高了CRC校驗碼的產生效率,進而提升了整個通信系統(tǒng)的性能。
本發(fā)明的另一目的在于提出一種快速的CRC校驗裝置,在不怎么增加硬件面積的條件下,提高CRC校驗碼的產生效率,進而提升整個通信系統(tǒng)的性能。
為實現上述目的,本發(fā)明的技術方案是這樣實現的:
一種快速的CRC校驗裝置,其特征在于:包括
用于產生初始CRC校驗碼的CRC校驗碼產生裝置;
用于將接收到的數據按字節(jié)的形式進行整理,形成8比特位寬的數據的數據接收裝置;
用于將接收的8比特數據中的某些比特和原始CRC校驗碼的某些比特進行異或操作,并按比特翻轉然后取反得到最終的CRC校驗碼的CRC最終處理裝置;
在接收端對接收到的數據和最終的校驗碼一起做校驗,將結果與固定在系統(tǒng)內部的常值作比較的CRC比較裝置。
所述一種快速的CRC校驗裝置與上述一種快速的CRC校驗方法相對于現有技術所具有的優(yōu)勢相同,在此不再贅述。
附圖說明
構成本發(fā)明的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1為本發(fā)明實施例所述一種快速的CRC校驗方法的結構示意圖。
具體實施方式
需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
在本發(fā)明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內”、“外”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。此外,術語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”等的特征可以明示或者隱含地包括一個或者更多個該特征。在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通。對于本領域的普通技術人員而言,可以通過具體情況理解上述術語在本發(fā)明中的具體含義。
下面將參考附圖并結合實施例來詳細說明本發(fā)明。
如附圖1所示,一種快速的CRC校驗方法,具體包括如下步驟:
(1)每個時鐘周期產生8比特數據的初始CRC校驗碼;
(2)將接收到的數據按字節(jié)的形式進行整理,形成8比特位寬的數據;
(3)將接收的8比特數據中的某些比特和初始CRC校驗碼的某些比特進行異或操作,然后按比特進行翻轉,最后取反得到最終的CRC校驗碼,最終將數據和最終的CRC校驗碼一起發(fā)送;
(4)在接收端對接收到的數據和最終的校驗碼一起做校驗,將結果與固定在系統(tǒng)內部的常值作比較,如果一致,則說明傳輸正確,否則,傳輸錯誤。
校驗過程為將接收到數據和最終的CRC校驗碼中的某些特定比特和原始的CRC校驗碼中的某些特定比特做異或運算。
常值為將初始CRC校驗碼通過傳統(tǒng)的除法取余得到的數據,經過按比特翻轉,再取反獲得。
由此可見,通過使用本發(fā)明的一種快速的CRC校驗方法,每次運算可以產生8比特數據的CRC校驗碼(綜合速度和面積的因素),相對于原來的一比特數據校驗碼的產生,這就大大的提高了CRC校驗碼的產生效率,進而提升了整個通信系統(tǒng)的性能。
本發(fā)明所述的快速CRC校驗裝置包括
CRC校驗碼產生單元,用于產生初始校驗碼以及存儲每8比特數據經過運算后得到的初始CRC校驗碼;
數據接收裝置,本裝置用來接收需要發(fā)送的數據,所需要發(fā)送的數據以word(32比特位寬)的形式發(fā)送到本單元,本單元接收到所需要傳輸的數據,并將其以字節(jié)(8比特位寬)的形式發(fā)送出去,發(fā)送的順序為由高字節(jié)到低字節(jié);
CRC最終處理裝置,用于將接收的8比特數據中的某些比特和初始CRC校驗碼的某些比特進行異或操作,然后按比特進行翻轉,最后取反得到最終的CRC校驗碼;
CRC比較裝置,用于將接收到的數據和最終CRC校驗碼進行計算,并且和內置好的數據進行比較,如果一致,則證明接收到的數據正確,則系統(tǒng)可以接受本次傳輸的數據,否則,則傳輸錯誤,系統(tǒng)放棄本次接收的數據比較裝置。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。