DMX512のCRC拡張

DMX512 with CRC

標準的なDMX512-Aは通信上のエラーが発生してもそれを知るすべがない。
エラーは現場での灯体のちらつきやカクつきという症状を起こしている。
CRCを付加することによりエラーを検出できるようにし、これを解決することを試みる。

調光卓や中間のスプリッター等でCRCを付加して調光データを送信、 灯体側(パーライトやムービングライト等)では受信したデータのCRCを検査するようにする。

標準的な DMX512-A (拡張前)

スロット 0スタートコード (0x00)
スロット 1~512データ 1~512 (調光値)

CRCを付加した DMX512 (拡張後)

スロット 0スタートコード (0x00)
スロット 1~510データ 1~510 (調光値)
スロット 511スロット 1~255 のCRC
スロット 512スロット 256~510 のCRC
  • CRC-8-ATM (x8+x2+x1+1) の XOR 0xFF
  • スロット 1~255 と 256~510 とで2つのCRCを設けているのは、どちらかのグループに問題が起きたとしてもすべてのデータを破棄しなくていいようにするため。
  • RDMにはもともとチェックサムが備わっているため、この拡張では手を加えない。
  • スロット511,512をCRCへ転用しているだけのため、普通の灯体は影響を受けない。(2チャンネル分が使えなくはなるがそれによる問題は少ないだろう)
  • スロット数は513固定(スタートコード+データx512)。短縮するならやはり最後にCRCを付けるのがよいだろう。(要検討)

メモ

  • オレオレプロトコルなので試しに勝手に実装してみるのがよかろう。
  • そもそも一般的な灯体にはそのような機能はなく改造するのも難しいため、今後作るDMX機器や、配線の途中へ挿入するアダプター等により実現するのが現実的かと思う。

文書の先頭へ
dmx512-crc.txt · 最終更新: 2022/10/04 10:59 by sugakoubou