歩き遍路 平成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では送られてきたデータを入力するだけにするようにしました。



ホームへ戻る