巡回冗長性検査 (CRC) は、通信ネットワークやデータストレージで使用されるエラー検出メカニズムです。C2000 MCU で CRC を計算するために利用できるデバイス・リソースは次第に増えてきました。TIDM-1011 は、デバイスの機能と、データを送信するか受信するかに応じて、さまざまなリソースを使用します。リソースの使用状況の要約を、表 2-10 に示します。
表 2-10 CRC の計算に使用されるリソース
デバイス |
受信データ CRC |
送信データ CRC |
F2837xD |
C28x plus のルックアップ・テーブル |
C28x plus のルックアップ・テーブル |
F28004x |
構成可能なロジック・ブロック |
C28x のルックアップ・テーブル |
その他すべて |
構成可能なロジック・ブロック |
C28x への VCRC 拡張機能 |
- C28x ルックアップ・テーブル は、すべての C28x デバイスで利用できます。ただし、この方法は最も低速で、ルックアップ・テーブルを格納するための RAM メモリが必要です。TIDM-1011 は、他の機能がないデバイスでのみルックアップ・テーブルを使用します。
- 構成可能ロジック・ブロック (CRC) は、CLB タイプ 2、またはそれ以降のデバイスで利用できます。CLB は、リニア・フィードバック・シフト・レジスタ (LFSR) として構成されたカウンタを使用して CRC を計算します。この方法は、データ受信時のエンコーダ応答の CRC を計算するために使用されてきました。これにより、追加の計算が不要になるため、C28x の帯域幅が解放されます。C28x は、カウンタ・レジスタから CRC 結果を直接読み取ります。この方法のコストは、CLB タイル・リソースと、タイルを構成するためのコードです。CLB CRC の実装については、セクション 2.3.7 に記載されています。
- VCRC は、特に CRC 計算用に C28x 命令セットを拡張したものです。この実装は、長いメッセージの場合、C28x ルックアップ・テーブルよりも高速です。さらに、VCRC にはルックアップ・テーブルを格納するための RAM 領域は必要ありません。VCRC モジュール付きのデバイスでは、EEPROM の読み取り / 書き込みトランザクションで使用される送信データの CRC を計算するため、この方法が使用されてきました。
注: CRC 方式は、 T フォーマット・ライブラリのヘッダー・ファイルで選択できます。