連載
CRC(Cyclic Redundancy Check:巡回冗長検査)って何?:Q&Aで学ぶマイコン講座(83)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「CRC(巡回冗長検査)」についてです。
実際のCRC計算ユニット
ここでは、STの汎用32ビットマイコン「STM32F4シリーズ」*3)に搭載されている「CRC計算ユニット」を例に解説します。
STM32F4シリーズには、CRC計算ユニットが2種類搭載されています。1つはCRC計算機能だけの単独のCRC計算ユニットで、もう1つはSPIのモジュールに含まれているCRC機能です。
1.CRC計算ユニット
CRC計算ユニット(図3参照)は、32ビットデータワードと、ある一定の生成多項式から、CRCコードを得ることができます。さまざまな通信用アプリケーションで使用できますが、特にEN/IEC 60335-1規格の範囲内で、フラッシュメモリ書き込みにおけるデータの整合性を確認する手段として使われます。
また、実行時にソフトウェアのシグネチャ計算をサポートしています。リンク時に生成されて、特定のメモリ領域に保存されたリファレンスシグネチャと、計算されたソフトウェアシグネチャを比較できます。
主な機能は次の通りです。
- CRC-32(Ethernet)多項式を使用します。0x4C11DB7
x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+x0 - シングル入力/出力 32ビットデータレジスタ
- CRC計算は、4 AHB クロックサイクル(HCLK)で完了
- 汎用8ビットレジスタ(一時ストレージとして使用可能)
2.SPIモジュールに実装されているCRC計算機能
基本的な機能は、CRC計算ユニットと同じです。主な特徴は次の通りです。
- 送信データと受信データに対して、別々のCRC計算機がある。
- CRCは、各ビットに対してプログラミング可能な多項式を連続的に使用して計算される。
- SPIが提供する2種類のCRC計算は、送受信用に選択されたデータフレームフォーマットに直接依存する。
8ビットデータでは CRC-8、16ビットデータではCRC-16。 - 受信側の動作は、最終データの受信後にCRCが受信された後、CRCチェックが行われる。チェックの結果、エラーが検出された時は、エラーフラグが立つ。
*3):STM32F4シリーズ
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコンに搭載されているAESって何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、上級者の方からよく質問される「マイコンに搭載されているAESって何?」についてです。 - USARTって何?(非同期式/同期式のシリアルインタフェース)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「USARTって何?」についてです。 - 仮想COMポート(Virtual COM Port)の使い方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「仮想COMポート(Virtual COM Port)」についてです。 - LCDドライバ/コントローラー非搭載のマイコンでLCD表示する方法
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。58回目は、中級者の方からよく質問される「マイコンにLCDドライバ/コントローラーが搭載されていない場合のLCD表示(グラフィックを含む)の方法」についてです。 - マイコンのメモリマップの読み方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。52回目は、初心者の方からよく質問される「マイコンのメモリマップの読み方」についてです。 - 割り込みハンドラとは?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「割り込みハンドラ/ハンドラモードとは?」です。