X10 (工業規格)

X10 はホームオートメーションでの機器間通信に関する国際オープン工業規格である。屋内の電力配線を使って制御信号を送る。また、電波による通信も定義されている。

X10 は1975年、スコットランド Glenrothes にある Pico Electronics 社が家電製品の遠隔制御のために開発した。ホームオートメーション技術としては最も古くからあり、現在でも欧米を中心に利用されている。

より帯域幅の広い代替規格として、KNX、INSTEON、BACnet、LonWorks などが登場しているが、X10 は家庭用としては最も広く利用されている。

1. 電力線搬送制御の概要
-------------

屋内の電力配線が X10 機器間のデジタルデータ送信に使われる。このデジタルデータは 120 kHzの搬送波で符号化され、50/60 Hzの交流波形がゼロ近辺にあるときにバースト転送される。交流波形が1回ゼロ近辺にあるときに1ビットの情報が転送される。

データの中身はアドレスと命令であり、コントローラから制御対象機器に送られる。中にはクエリをコントローラから送って、機器がそれに応答して状態を返すものもある。この場合の状態とは、電源のON/OFFのような単純なものや、照明などの明るさのレベル、温度などのセンサの読み取り値などがある。なお、アメリカでは照明として白熱電球の方が一般的で、調光器で明るさを調節するようになっていることが多い。

搬送波の周波数は比較的高いため、変圧器などを通過できない。また電圧波形がゼロ点を通過するときにデータを送るようになっているため、三相交流などではうまく同期できない。

X10 の制御信号が隣家の家電製品に伝わってしまうのは好ましくないため、コイルを使ったフィルタ回路で減衰させて X10 信号が屋外に出ないようにすることがある。

2. X10プロトコル
-----------

X10 制御プロトコルのパケットは、4ビットの "house code"、4ビットの "unit code"、4ビットの "command" で構成される。"house code" は一般に A から P の1文字で表され、"unit code" は 1 から 16 の数で表される。

システムインストール時、各制御対象機器に256種類のアドレスを割り当てる。これにより、各機器は自分のアドレスが付いた制御パケットのみを受け付けるようになる。

メッセージは例えば「house code は A」、「unit は 3」、「電源ONせよ」という内容であれば、アドレス "A3" の機器が電源をONにする。unit code を複数並べて指定し、同じコマンドをそれら機器で同時に実行させることもできる。例えば、「house code は A」、「unit は 3」、「unit は 5」、「unit は 4」、「電源ONせよ」というメッセージを送信すれば、A3、A4、A5 の全てが同時に電源ONとなる。

もちろん、house code を1つの家庭内で使い分けることも可能であり、例えば部屋ごとに house code を設定すれば、部屋単位での操作が可能となる。

プロトコルの完全な説明は[ftp://ftp.x10.com/pub/manuals/xtdcode.pdf こちら]にある。

3. 電力線プロトコルの物理層
---------------

60 Hz の交流電源では、電圧波形がゼロと交差するポイントで 120kHz のバーストを 1ミリ秒間乗せることで '1' を表現し、直後にパルスのない期間を設ける。'0' を表す場合は逆にゼロ交差ポイントでパルスのない期間を設け、その直後にパルスを乗せる。さらに確実性を増すため、メッセージは常に2回送信される。ライン制御なども考慮すると、データ転送レートは約 20 ビット毎秒となる。このように X10 は非常に低速であるため、機器の電源ON/OFFなどの非常に簡単な制御だけを行うようになっている。

メッセージの開始を示すため、データフレームの前には必ず start code と呼ばれるパルス列が送られる。その直後に letter code/house code  が送られ、function code が送られる。function code は unit code を指定する場合と command を指定する場合があり、最後のビットが '0' ならば unit code、'1' ならば command を表す。start code、letter code、function code の列が X10 の frame であり、データパケットの最小単位となる。

メッセージは常に2回送られ、ノイズによって受信できない場合に対処している。

アドレスからアドレス、アドレスからコマンド、コマンドからコマンドへと移る際、データフレームは 6 個のゼロで明確に分離される。これにより受信側デコーダのシフトレジスタがリセットされる。

4. 無線プロトコル
----------

ワイヤレスのコントローラ、遠隔スイッチなどのために無線プロトコルも定義されている。アメリカ合衆国では 310 MHz、ヨーロッパでは 433 MHz が使われる。無線で使われるプロトコルも電力線とほぼ同じである。受信機は無線のパケットを電力線のパケットに変換するブリッジとして働く。

無線プロトコルを使う機器としては、次のようなものがある。

キーパッド型コントローラ
キーホルダー型コントローラ
侵入者警報モジュール
赤外線受光型スイッチ

5. 機器モジュール
----------

制御対象に対応して、様々なモジュールが利用される。白熱電球の場合、//lamp module// や //wall switch// がある。トライアックという半導体スイッチが使われており、一般に調光機能を備えていることが多い。接続可能な電球は500ワット程度までである。

その他の制御対象では lamp module と同じ仕組みは使えず、//appliance module// が使われる。この場合、リレーを使って電源を制御する。アメリカでは、接続可能な負荷は最大でも 15 アンペア程度までである。

いずれの場合もローカル制御が可能となっていることが多い。つまり、モジュールのスイッチがOFFになっているとき、制御対象機器や電球のスイッチをONにすると自動的にモジュールの電源もONになる。この場合、手近の機器の電源を入れるのにX10コントローラのところまで行くという手間が省ける。

wall switch の場合、ローカル調光が可能なものもある。通常、ボタンを押すことで電源ON/OFFとなるが、ローカル調光が可能な場合、ボタンを押し続けることで明るさの調節ができる。

中にはカスタマイズやプログラムが可能なモジュールや、コントローラとしての機能も持つものもある。

6. コントローラ
---------

X10コントローラは単純なものから高機能なものまで様々である。

最も単純なコントローラは連続したアドレスのX10機器だけを制御する。この場合、次のようなボタンがある。

ユニット1 ON/OFF
ユニット2 ON/OFF
ユニット3 ON/OFF
ユニット4 ON/OFF
調光
全ユニット ON/OFFより洗練されたコントローラでは、制御対象が多いのはもちろんのこと、タイマ機能を持っていて、設定した時間に設定したコマンドを実施することができる。赤外線で動きを検出して他の機器の電源ON/OFFを制御したり、フォトレジスタで外界の明るさを検知して他の機器のON/OFFをするといったものもある。

完全にプログラム可能なコントローラや、コンピュータに接続してコンピュータから制御可能なコントローラもある。

7. 弱点と制限
--------

北アメリカでは単相3線式が一般的だが、X10 の信号が急激に減衰してしまう場合がある。120Vの機器はどちらか一方の電圧線に接続されるが、両方の電圧線にX10信号が届くには、途中で変圧器を通らなければならない。しかし、X10信号は変圧器を通して伝播することは期待できない。特に240Vのストーブやドライヤーといった機器をON/OFFしたときに状態が変化して信号が途切れる。これに対処するには、2つの電圧線の間にコンデンサを接続してX10信号がそこを通るようにすればよい。三相交流の場合も似たような対処が必要になる。

漏電遮断器によってX10信号が減衰することもある。

また、ノイズをX10データフレームと誤認して機器の電源が不意にON/OFFされることがある。ノイズフィルタでノイズを除去できる可能性はあるが、X10に対応していないノイズフィルタではX10信号も除去されてしまう。また、コンピュータなどの電源回路ではコンデンサで2本の線が繋がっていることがあり、X10信号がそこで折り返してしまってそこから先の機器に届かないことがある。

コントローラが複数ある場合、それらが同時に送信すると衝突が発生し、受信側がデコードできなくなる。

X10プロトコルは低速である。一回のコマンド送信に4分の3秒ほどかかる。そのため、コンピュータで制御する場合などにその遅延時間を考慮する必要がある。

8. 関連項目
-------

電力線搬送通信

9. 外部リンク
--------

[1] 各種トラブルシューティングなど
[2] X10プロトコルの詳細
[3].
制御用ソフトウェア:
[4]
[5] - X10 Automation for Linux, Unix, and Mac OS X;
[6] - Linux によるホームオートメーション全般。X10以外も扱っている。
[7] Mac OS X上で稼働する、グラフィカルなX10コントローラ。
[ftp://ftp.x10.com/pub/manuals/technicalnote.pdf X10 interfaces] 
[8]
[9] by Kevin Boone