メディア

CRC(Cyclic Redundancy Check:巡回冗長検査)って何?Q&Aで学ぶマイコン講座(83)(3/3 ページ)

» 2023年08月08日 10時00分 公開
前のページへ 1|2|3       

実際の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規格の範囲内で、フラッシュメモリ書き込みにおけるデータの整合性を確認する手段として使われます。

<strong>図3:STM32F4シリーズのCRC計算ユニット</strong> STM32F429-439□STM32F4シリーズリファレンスマニュアルから抜粋■ 図3:STM32F4シリーズのCRC計算ユニット[クリックで拡大]
STM32F4シリーズリファレンスマニュアルから抜粋

 また、実行時にソフトウェアのシグネチャ計算をサポートしています。リンク時に生成されて、特定のメモリ領域に保存されたリファレンスシグネチャと、計算されたソフトウェアシグネチャを比較できます。

 主な機能は次の通りです。

  • 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シリーズ

⇒次の記事を読む

Q&Aで学ぶマイコン講座:過去の質問一覧はこちら

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.