歩き遍路 平成19年春(J1) 記録の準備

Tokenパケット用の
      CRC5を発生する

 USBの誤り検出は、CRC5とCRC16が使われています。
 ここでは、Tokenパケットで使われているCRC5について検討します。

●USB転送のフレーム、パケットとCRC5の関係
 USB転送は1ms毎のフレームに同期したパケットでデータを転送します。
 フレームは、1ms毎にSOFパケットを先頭にトランザクション群が続く構成で次に図を示します。


 このSOFパケットは、Tokenパケットの一つで次の様な構成で、CRC5は、11ビットのデータから発生します。
 SOFパケットではフレーム番号のデータから。OUT,IN,SETUPパケットではADDRとENDPから。





●CRC5の原理
 CRC5の原理を説明する能力が無いので規格やWEBを参考にして次の式と構成図を得ました。

 

 構成図を見ると、シフトレジスタを排他的ORの構成です。

●CRC5のプログラム化
 CRC5の原理図を元にプログラム用構成を次の様にします。




 Visual C#で構成図をそのままプログラムしました。ダサイし誤りのあるコメントですがご容赦願います。



 CRC5計算のボタン押下で計算します。左が計算値、右が入力値。




●CRC5計算値の検証
 正しいCRC5の値をパソコンからのSOFパケットをUSBモニタで取得して計算値と比べました。
 表の左がパソコンからのSOFパケットをUSBモニタで取得したCRC5の値です。
 真中がプログラムで計算した値です。
 右はEXCELの関数で比較した結果です。TRUEを得ました。







ホームへ戻る