歩き遍路 平成19年春(J1) 記録の準備
Dataパケット用の
CRC16を発生する
USBのデータパケットではCRC16が誤り検出用に使われています。
ここでは、データパケットで使われているCRC16について検討します。
●USB転送のデータパケットとCRC16の関係
データパケットは次の様な構成で、0バイトから複数バイトデータの後に付く16ビットの誤り検出コードです。データ数の最大は、フルスピードでは64バイト、ハイスピードでは1024バイトです。

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

16ビットののシフトレジスタと3つの排他的ORの構成です。
●CRC16のプログラム化
CRC16の原理図を元にVisual C#でプログラムを作り、実行しました。
CRC16_2Byte計算 のボタン押下で計算します。左が計算値、右が入力値です。

●CRC16計算値の検証
正しいCRC16の値をパソコンからUSBモニタで取得して計算値と比べました。
現在は、データが1バイトの場合の全結果と、データが2バイトの場合の一部分を人手で比べて正しいことを確認しました。
パソコンからCRC16の値を取得するため、パソコンから1バイトデータや2バイトデータを送り、PIC18F4550では送られてきたデータを入力するだけにするようにしました。
ホームへ戻る