1-Wire:シンプルで汎用性の高い低速バス規格
1-Wireは、マキシム・インテグレーテッド(旧ダラス・セミコンダクタ)が開発した、1本の信号線と接地線のみで通信を行う低速バス規格です。I²Cと似た仕組みですが、データ転送速度は低く、より長距離の通信が可能です。そのシンプルさと低コストから、デジタル
温度計などの小型
センサデバイスとの接続に広く利用されています。
1-Wireの利点:シンプルさと小型化
1-Wireの最大の特徴は、わずか2本の線でデバイスを接続できる点にあります。デバイスは、バスラインから電力供給を受けるため、電源を内蔵する必要がなく、非常に小型化できます。特にiButtonと呼ばれる、ボタン電池のような形状のデバイスは、その小型さを象徴しています。
この小型化のメリットは、様々な用途に活かされています。プリント基板への実装はもちろんのこと、ノートパソコンや携帯電話のバッテリーパックなど、さまざまな機器に組み込まれています。また、実験機器やデータ収集システムなどでも、その簡便性から採用されています。この場合、電話用のモジュラーコネクタやカテゴリー5ケーブルなどを用いて接続されることが多く、1-Wireデバイスが直接ソケットに内蔵されていることもあります。
MicroLan:1-Wireセンサネットワーク
複数の1-Wireデバイスを接続したネットワークをMicroLanと呼びます。
温度センサ、タイマ、
電圧・電流
センサ、バッテリーモニタ、メモリなど、様々な
センサやデバイスを接続でき、USB、
シリアルポート、
パラレルポートなどを介してPCと接続することが可能です。接続には、PC側のインタフェースから1-Wireに変換するマスターチップが必要です。
MicroLanは、
マイクロコントローラとの接続も容易です。汎用
マイクロコントローラのオープンドレインI/Oポートからプルアップすることで、簡単に接続できます。Parallax BASIC StampやMicrochip PICファミリーなど、多くの
マイクロコントローラに対応しています。
iButton:ボタン電池型1-Wireデバイス
iButtonは、1-Wireデバイスをボタン電池状のステンレスパッケージに収めたものです。ソケットにタッチするだけで簡単に1-Wireバスに接続でき、クレジットカードリーダーのような感覚で使用できます。長時間の接続には、はめ込むタイプのソケットが使用されます。
JavaOne 1998では、iButtonをリング状にマウントしたJavaRingが発表されました。これはJava仮想マシン(Javaカード2.0互換)を内蔵しており、セキュリティトークンとしての利用などが期待されました。
1-Wireデバイスのユニークな識別
各1-Wireチップには64ビットのユニークなシリアル番号が割り当てられています。このシリアル番号を利用することで、iButtonを鍵として使用したり、警報装置の設定/解除などに利用できます。
MicroLanでは、PCや
マイクロコントローラがマスターデバイスとしてネットワーク全体を制御します。マスターは一度に1つのスレーブデバイスとしか通信しません。通信は、マスターデバイス上の
ソフトウェアで制御されます。マスターは、プルアップ抵抗を通じてバスに電力を供給します。
通信は、まずマスターがリセットパルスを送信することで開始されます。その後、スレーブデバイスは存在を知らせるパルスを送信します。データの送受信は、短いパルス("1")と長いパルス("0")で表現されます。パルスの長さは、スレーブデバイス内の単安定マルチバイブレータの動作時間に基づいています。
データ受信時は、マスターは各ビット受信前に短いパルスを送信します。スレーブが"0"を送信する場合は、データ線を一定時間ローレベルに保ちます。"1"の場合は何もしません。
基本的なシーケンスは、リセットパルス、8ビットコマンド、データの送受信、そして8ビットCRCによるエラーチェックです。16ビットCRCも対応しています。
多数のデバイスを接続する場合でも、各デバイスのユニークなシリアル番号によって個別にアクセスできます。シリアル番号の上位バイトはデバイスの種類、下位バイトはCRCです。マスターは、選択コマンドとシリアル番号を送信することで、特定のデバイスのみを選択的に制御できます。
バス上のデバイスを検出するには、enumerationコマンドを使用します。マスターは、デバイスのシリアル番号を1ビットずつ送信し、各ビットに対してスレーブから応答を受け取ります。応答がない場合は、そのビット以降の探索を打ち切ることができるため、効率的なデバイス探索が可能です。
バス上のデバイスの位置が重要な場合、パススルーや切断を行う特殊デバイスも存在します。