← tkurume.work トップへ戻る

DMX512 の波形をオシロで見る

88µs のブレークに同期をかける | USBオシロスコープでの実測手順

先に結論

DMX の信号をオシロにつないでも、普通のトリガ設定では波形は読めません。画面が流れるだけです。DMX は同じような見た目のビット列を毎秒数十回送り続けているので、立ち上がりエッジでは毎回違う場所に引っかかるからです。

正解は 「88µs 以上の Low」に同期をかけることです。フレームの先頭にあるブレークという長い Low で、これはデータ部には絶対に現れません。オシロのパルス幅トリガで「50µs より長い負パルス」を指定すれば、毎回きっちり同じ位置に止まります。

このページは、その理由と設定値、サンプリング間隔の決め方、そして非絶縁のUSBオシロを DMX ラインに当てるときの安全境界までを図でまとめたものです。

1. なぜ「見えない」のか

DMX512 は 250 kbit/s、つまり 1 ビットが 4µs のシリアル信号です。1 チャンネル分(1 スロット)は スタートビット 1 + データ 8 + ストップ 2 の 11 ビット=44µs。これが最大 513 個並んで 約 23ms のパケットになり、それを毎秒 40 回前後、延々と繰り返しています。

ここでオシロを「立ち上がりエッジでトリガ」に設定すると、どうなるか。エッジは 1 パケットの中に数千個あります。どのエッジで止まるかは毎回変わるので、画面上では波形が横に流れ続けます。止まって見えないものは読めません。

そこで、1 パケットに 1 回しか現れない、他と見間違えようのない目印を探します。それがブレークです。

START SLOT 1 SLOT 2 SLOT 512 H L BREAK 88µs 以上 MAB 8µs 以上 最大 513 スロット = 約 23ms ここに同期をかける
図1. DMX512 パケットの構造。先頭のブレークだけが飛び抜けて長い Low になる。

2. なぜ 88µs で引けるのか ― 数字で確かめる

「ブレークで引く」と言われても、データ部にたまたま長い Low が現れないのかが気になります。ここは計算で確定できます。

1 スロットは スタートビット(必ず Low)+ データ 8 ビット + ストップビット 2 個(必ず High)です。つまり Low が続くのは、スタートビットとデータ 8 ビットが全部 0 のときが最長で、その次は必ず High のストップビットが 2 個来ます。

スタート D0 D1 D2 D3 D4 D5 D6 D7 ストップ ストップ データ 8 ビットは LSB から送る(図は値 0 の場合) 連続 Low は最長でも 9 ビット = 36µs 1 スロット = 11 ビット = 44µs
図2. 1 スロットの中身。データが全部 0 でも、Low は 36µs で必ず切れる。

つまり データ部の Low は、どんな値を送っても 36µs を超えません。対してブレークは 88µs 以上。この 2 つの間には 52µs もの余裕があります。

データ部の最長 Low 36µs ブレーク(規格の下限) 88µs 以上(青天井) しきい値 50µs = ここで切る
図3. 36µs と 88µs の間ならどこでもよい。50µs にしておけば両側に余裕がある。
だから「50µs より長い負パルスでトリガ」で確実に引けます。 データ部には絶対に該当するパルスが無く、ブレークには必ず該当します。1 パケットにつき 1 回、必ず同じ位置で止まります。

3. オシロの設定

使う機能は パルス幅トリガ(Pulse Width / Advanced Trigger)です。単純なレベルトリガしか無い機種では、この方法は使えません。

項目設定値理由
トリガ種別パルス幅(Pulse Width)エッジトリガでは位置が定まらない
極性負パルス(Low の幅)ブレークは Low 側
条件「より長い」(Greater Than)ブレークは 88µs 以上で上限が無い
50µsデータ部 36µs とブレーク 88µs の中間
トリガ位置画面の左端寄り(10% 前後)ブレークの後ろ=データ側を長く見たい
結合DC直流分を含めて見る
レンジ±5V 前後EIA-485 の差動振幅は数 V
ブレークの前を見たい場合は、トリガ位置を右寄り(プリトリガを長く)にします。 「前のパケットの最後」と「今のブレーク」の関係、つまりパケット間の間隔を確認したいときはこちらです。
「88µs ちょうど」で引いてはいけません。「〜より長い」で引きます。

ブレークの長さは 88µs 以上 1 秒以下と規格の幅が非常に広く、実際の長さは送信側の機器によってまちまちです。卓が変われば長さも変わります。

そしてこの「幅が広すぎる」ことこそが、DMX でメーカー間の相性問題が起きる代表的な原因でした。ブレークと MAB の解釈が送信側と受信側で食い違うと、受信側がパケットの先頭を見失います。規格が DMX512-A に改められた際、推奨値が設定されたのはこのためです。

だから、ブレークを実測すること自体が診断になります。 「特定の卓のときだけ、特定の器具が誤動作する」という切り分けの難しいトラブルでは、 その卓のブレークと MAB が実際に何µs 出ているかを測ると、原因が一発で見えることがあります。 カタログにも取扱説明書にも書いていない値です。測るしかありません。

4. サンプリング間隔の決め方 ― ここで詰まる

同期がかかっても、次にバッファの壁に当たります。安価な USB オシロは取り込み点数が限られており、「全部を細かく」は物理的に無理です。何を見たいかで間隔を決めます。

下表はバッファ 8,000 点の機種の場合です。1 ビットが 4µs なので、ビットを読むには最低でも 1µs 間隔(1 ビットあたり 4 点)が要ります。

見たいもの間隔取り込める時間実際に見えるもの
エッジの品質・反射10ns約 82µs立ち上がりの鈍り、リンギング。ブレーク 1 個も入らない
ビットを読む1µs約 8.2msブレーク+MAB+先頭 180 ch 前後。実用上いちばん使う
パケット全体の形2.8µs約 23msパケット 1 個分ちょうど。ビットは読めないが長さは測れる
パケットの繰り返し10µs約 82ms3〜4 パケット分。送出周期・欠落の確認に使う
「最速で撮れば間違いない」は逆効果です。 100MS/s(10ns 間隔)で撮ると、8,000 点では 82µs しか記録できません。ブレーク 1 個すら入りません。 速くするほど、見える時間は短くなります。
512 チャンネル全部をビット単位で読みたい場合は、この方式では足りません。 23ms を 1µs 間隔で取ると 23,000 点が必要で、バッファを超えます。 その場合はストリーミング取得(USB 経由で連続転送する動作モード)に切り替えるか、 素直に DMX 対応のロジックアナライザやプロトコルアナライザを使う方が早いです。 オシロの役目は「電気的にどうなっているか」を見ることで、値の一覧を読むことではありません。

5. つなぎ方と、非絶縁オシロの落とし穴

DMX は EIA-485 の平衡伝送です。信号は 2 本の線ので表されます。XLR のピン配置は次のとおりです。

1 2 3 XLR 3 ピン(DMX 出力側から見た図) 1番 = コモン → プローブの GND クリップ(両ch とも) 3番 = Data + → CH A(まずはここだけで十分) 2番 = Data − → CH B(差動で見るとき) 2ch あるなら演算 A−B で差動波形になる
図4. 結線。まず 3番(Data+)と 1番(コモン)だけで、信号の有無と波形は確認できる。

「信号が来ているか」「ブレークが出ているか」を見るだけなら、3番と 1番の 2 本で足ります。2 チャンネル機なら 2番も測って A−B の演算を出すと、実際に受信側が見ている差動波形になります。片線が死んでいるトラブルは、この A と B を並べて見ると一目で分かります。

安全上、ここだけは必ず守ってください。

安価な USB オシロは非絶縁です。プローブの GND クリップは、USB ケーブル経由でパソコンのグランドに直結しています。

6. よくある失敗

  1. フリーラン(即時取り込み)で撮る — パケットの途中がランダムに写るだけで、何を見ているか分かりません。まずトリガを決めてから撮ります
  2. 立ち上がりエッジでトリガする — エッジは 1 パケットに数千個あります。毎回違う場所で止まるので波形が流れます
  3. 最速レートで撮る — バッファが数十µs 分しか無くなり、ブレークすら入りません。速さと時間は必ずトレードオフです
  4. Data − 側だけを見て「反転していておかしい」と判断する — 平衡伝送なので当たり前です。基準は 3番(Data +)側で見ます
  5. 自動設定(オートセットアップ)任せにする — DMX のような間欠的なバースト信号は自動設定が苦手で、まず合いません。手で決めます
  6. ソフト側でサンプリング間隔を明示しない — 自作の取り込みプログラムで最速の設定を自動選択させたところ、間隔 0 という異常値が返り、周波数が数十億 Hz と表示されたことがあります。間隔は必ず明示的に指定します

7. 使った機材

ここでの説明は PicoScope 2000 系(2ch・USB接続の PC オシロ)を前提にしています。当方の実機は 2205A ですが、下記の 2204A も同系統で、パルス幅トリガを含む付属ソフトは共通です。

項目内容
機種PicoScope 2204A(Pico Technology)
入手先秋月電子通商 — USBオシロスコープ Picoscope2204A
チャンネル2ch(差動を演算で出せる)
帯域 / 最高レート10MHz / 100MS/s
バッファ8k サンプル(§4 の表はこの値で計算)
接続USB(PC で波形を見る形式)
DMX を見るだけなら、この価格帯で十分です。 DMX は 250 kbit/s なので、帯域 10MHz は必要量に対して 40 倍あります。 足りなくなるのはバッファ長の方で、そこは §4 のとおり「何を見たいか」で割り切ります。

なお当方では、同じオシロを DMX 線の波形を見るのにも、その先の LED 駆動波形を測るのにも使っています。後者は自動化してあります(次章)。

8. 自動で撮る ― 人が張り付かない測定

波形観測でいちばん時間を食うのは、「値を変えて、撮って、読んで、記録する」の繰り返しです。ここは機械にやらせられます。当方では PC オシロを C# のプログラムから直接叩いて、DMX 値を振りながら駆動波形を無人で採る仕組みを作ってあります。

やっていることは単純です。

  1. DMX を 1 段階送る(送出側も API 経由で自動化)
  2. 整定を待つ(0.3 秒程度)
  3. 波形を取り込む(1 万点・2µs 間隔)
  4. その場で数値化する — 周波数・デューティ比・リップル率を算出
  5. CSV に 1 行追記して次の値へ

これで 32 点のスイープが、人の手を介さずに 1 本の CSV になります。実測の精度は次のとおりでした。

項目結果照合対象
周波数の誤差約 0.07%マイコンの分周設定から算出した理論値
デューティ比の線形性全点 ±0.4pt 以内調光カーブを Linear にしたときの理論値
連続実行の安定性120 回で失敗 0
長時間の連続取得16 秒 / 53 万点 / 取りこぼし 0フェード中の波形をそのまま記録
ここまで来ると、測定が「作業」ではなく「データ」になります。 調光カーブを 4 種類切り替えて比較する、といった作業が現実的な時間で終わり、 後から何度でも再分析できます。実際にこの仕組みで採ったデータは 調光カーブ設計 のページで使っています。

自動化で踏んだ罠

同じことをやろうとする方のために、実際に引っかかった点を挙げておきます。

症状原因対処
プログラムから機器が見つからない付属の GUI ソフトが起動しているとデバイスを占有する。「未接続」と同じエラーになり区別が付かないGUI を終了してから実行する
周波数が数十億 Hz と表示されるサンプリング間隔を指定せず自動任せにすると、間隔 0 という異常値が返ることがある間隔は必ず明示的に指定する
取り込みが失敗する要求点数が機体のバッファ上限(実測 1〜2 万点)を超えている点数を減らすか、連続転送モードに切り替える
レンジ設定が拒否される最小レンジ(10mV・20mV)に非対応の機体だった50mV 以上を使う
デューティ比が暴れる単一しきい値でエッジ判定するとノイズで誤検出するヒステリシス付きのしきい値にし、周期は中央値を取る
ブレーク同期の自動化だけは、まだ手作業です。 自作の取り込みプログラムに実装してあるのはレベルトリガまでで、§3 のパルス幅トリガは入っていません。 DMX のブレークに同期させたい場合は、付属の GUI ソフトで設定して撮るのが現状いちばん確実です。 自動化は「値を振りながら駆動波形を数値化する」用途で使い分けています。

9. 規格の原典

ここに書いた数値の出どころです。現場判断で迷ったら原典に戻ってください。

項目備考
ビットレート250 kbit/s1 ビット=4µs
ブレーク88µs 以上 1 秒以下送信側の推奨は 92µs 以上。上限が広いのでトリガは「〜より長い」で引く
MAB(ブレーク後のマーク)8µs 以上 1 秒以下送信側の推奨は 12µs 以上
スタートビット4µs必ず Low
データ4µs × 8 ビットLSB から送る
ストップビット4µs × 2 ビット必ず High
1 スロット(フレームタイム)44µsスタート 1 + データ 8 + ストップ 2 = 11 ビット
スロット間の間隔0 秒以上 1 秒以下詰めて送るとは限らない
最大パケット513 スロット=約 23msスタートコード+512 チャンネル
最大リフレッシュ約 44 Hzフル 512 チャンネル送出時
アイドル時MARK(High)無信号と区別が付かない点に注意
上表の「1 秒以下」という上限に注目してください。 ブレークも MAB もスロット間隔も、規格上の幅が桁違いに広いのが DMX の特徴です。 §3 で触れた相性問題は、この広さから来ています。「規格内だが機器ごとに違う」ことを前提に測るのが実務です。

10. まとめ

「原因の分からない DMX トラブル」でお困りでしたら、ご相談ください。
照明制御45年。波形を見て切り分けるところから、方式の選定・変換・改修までご相談に応じます。
お問い合わせ

関連ページ