Art-Netの規格の解説とRaspberryPiで扱った記録です。

 執筆中です。

目次

 

Art-Netとは?

Art-Netの規格

物理規格

 IPv4のEtherNetです。俗に言うLANです。

 ネットワーク装置はIPv4のEtherNetが通れば何でも構わないようです。十分な通信速度があれば、インターネット経由でもwi-fiでもいけると思います。

IPアドレス

 IPv4を用います。Aクラスと呼ばれるプライベートアドレスの一部を用います。

IPアドレスの範囲

IPアドレスの割り当て

 原則として範囲内であれば任意のアドレスを用いて構わないが、ネットワーク内での重複は避けなければならない。

 割り当ての方法は2つある。

注意点

Universeのナンバリング

Art-Netのパケットプロトコル

 Art-NetはUDP/IPを用いて送受信されますのでEtherNet内ではパケットという単位でデータが扱われます。そのパケットの中身について説明します。

 次の「ArtDmx」以外にもパケットプロトコルが幾つかありますが、これらはユニキャストやネットワーク管理で用いられます。

 今回はマルチキャストを使いますので、扱うのは「ArtDmx」だけです。

パケットプロトコル:ArtDmx
フィールドNo.名前データ種類サイズビット説  明
初代Art-Net
Art-Net2
Art-Net3,4
11IDASCII
テキスト
8byte-8バイトのASCIIテキストでArt-Netのパケットだと宣言する。
'Art-Net'+0x00
文字コード:0x41 0x72 0x74 0x2d 0x4e 0x65 0x74 0x00
22OpCodeInt16
2バイト整数
2byte-別表に定義されたOpCodeを用いてパケットの種類を宣言する。
ArtDmxでは 0x5000 を用いる。
リトルエンディアンなので、0x00 0x50 の順で送信される。
33ProVerHiInt8
1バイト整数
1byte-Art-Netプロトコルリビジョン番号の上位バイト
※ データとしては次のフィールド<ProVerLow>と合わせた2バイト整数である。
44ProVerLowInt8
1バイト整数
1byte-Art-Netプロトコルリビジョン番号の下位バイト
※ ProVerの送信は、フィールド<ProVerHi>とフィールド<ProVerLow>を合わせ、ビッグエンディアンの2バイト長のデータだと考えていい。
※ 現在値は14(0x000E)である。フィールド<ProVerHi>は0x00、フィールド<ProVerLow>は0x0Eとなる。
55SequenceInt8
1バイト整数
1byte-パケットの順番を0x00から0xFFの範囲でローテーションでカウントする。パケットが順番通りに届かない場合に補正をするためのカウンタ。
1バイトのインクリメント・カウンタなので0xFFの次は0x00となる。
用いなくても構わないらしく、その場合は固定値(0x00)とする。
66PhysicalInt8
1バイト整数
1byte-DMX512のデータが入力された物理ポートの番号を表す。
Art-NetのNet(ネット)/SubNet(サブネット)/Universe(ユニバース)を表す物ではない。
※ 受信機にとってはNet/SubNet/Universeが絶対であり、送信機側のハードウェアの都合を受信機が認識する必要は無いと思うので、個人的には意味が無い「蛇足データ」の様に思える。
※ 今後の検証によるが、0x00を用いれば良いと思われる。
77SubUniInt8
1バイト整数
1byte7-44bit(0-15の数)でSubNet(サブネット)を表す。
3-04bit(0-15の数)でUniverse(ユニバース)を表す。
-8NetInt8
1バイト整数
1byte7※ 使用しない。常に0。
6-07bit(0-127の数)でNet(ネット)を表す。
※ Art-Net3以降で使われるフィールド。初代Art-NetおよびArt-Net2ではフィールドが存在しない。
89LengthHiInt8
1バイト整数
1byte-フィールド<Data>のデータ長を表す。フィールド<Length>と合わせた2バイト整数の上位バイト。
データ長が512スロットなら0x02となる。512=0x0200
910LengthInt8
1バイト整数
1byte-フィールド<Data>のデータ長を表す。フィールド<LengthHi>と合わせた2バイト整数の下位バイト。
データ長が512スロットなら0x00となる。ビッグエンディアンの2バイト長のデータと考えていい。
1011DataInt8
1バイト整数
1-512
byte
-DMX512のスロットデータ。可変長。
StartCodeは含まれない(?)。

 ※ 実質2バイト数として扱うフィールドが幾つかありますが、エンディアンが統一されていないので注意が必要です。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS