1-Wire通信を使ってIoTエンドポイントのセンサに効率的に接続する方法
DigiKeyの北米担当編集者の提供
2021-06-17
モノのインターネット(IoT)や産業用モノのインターネット(IIoT)のエンドポイントでは、制御領域が局所化されているのが一般的ですが、中にはホストマイクロコントローラの設置場所から1メートル超離れた場所にあるシンプルなセンサに接続する必要があるエンドポイントもあります。従来、これらのセンサとの通信には、簡単に配線できるSPIまたはI²Cシリアルインターフェースが使用されていました。しかし、制御アルゴリズムがより複雑になり、より多くのセンサを配置する必要が出てくるにつれて、マイクロコントローラをこれらのセンサに接続するために使用するSPIまたはI²Cラインを増やす必要が生じています。そのため、配線が複雑になって、構成やメンテナンスのコストがかさんでいます。特に、距離が長くなる場合にはそうです。
この記事では、Maxim Integratedの1-Wireプロトコルを使用して、1本のワイヤと接地線のみで低コストでIoTセンサに接続する方法を開発者に紹介します。その後で、1線式プロトコルの利点である、センサの検出範囲の大幅な拡大、電源とデータの同じワイヤでの伝送などについて説明します。さらに、1線の信号をSPIまたはI²Cに変換するブリッジデバイスと、設計をすぐに開始できるようにするソフトウェアを備えた開発キットを紹介します。
IoT/IIoTセンサの利用が拡大中
IoTやIIoTネットワークが拡大するということは、単に機能が拡大するだけでなく、システムや製造プロセスも効率化するということです。これには、センサを使ってデータを収集することも含まれます。家庭では温度センサを内蔵したサーモスタットが部屋に1つあるのが一般的であるのに対し、自動化されたビルやIIoTネットワークでは、部屋の中やビル・施設全体に多数の温度・湿度センサが配置されます。たとえば、暖房換気空調(HVAC)ダクト内に、圧力センサだけでなく他のセンサを設置することも可能です。セキュリティシステムには、様々な種類のセンサが使用され、その設置場所も複数の箇所になる場合があります。
また、製造業のシステムやベルトコンベアシステムでは、センサを使ってプロセスを監視したりデータを記録したりして、システムの効率化による省エネ方法を分析したり、安全性を改善したりするケースが増えています。
これらの用途に最もよく使用されているセンサは、温度、湿度、圧力センサなどの環境センサ、可視光や静電容量型近接センサなどの視覚センサ、マイクロエレクトロメカニカルシステム(MEMS)の加速度計、MEMSジャイロスコープ、振動センサなどの位置センサです。小型化とMEMS技術の進歩により、親指の爪ほどのパッケージに数百ミリアンペア(mA)の電流を流すだけのセンサが実現しました。これらのセンサの多くには、ほとんどのマイクロコントローラに搭載されているSPIまたはI²C通信インターフェースで簡単にアクセスできます。このようなシンプルなセンサに接続する場合、温度をサンプリングするためだけにIoTやIIoTのエンドポイントや子ノードをゼロから構築するのは現実的ではないので、SPIまたはI²Cの通信回線を直接配線する方が通常、簡単迅速です。
また、高温の熱電対や一部の圧力センサなどのアナログセンサを使用する場合もあります。このような場合、マイクロコントローラは、ローカルでアナログセンサからデータをサンプリングするSPIまたはI²C A/Dコンバータ(ADC)とセンサ位置で接続します。これにより、アナログセンサラインでの電圧降下が回避され、精度が向上します。
リモートSPIおよびI²Cセンサとの接続
マイクロコントローラは、SPIやI²Cのデータラインの届く範囲を延ばすことで、これらのセンサと通信します。しかし、I²Cは1メートル以下の範囲までしか延ばせず、SPIも同様です。さらに、全二重SPIでは4本のピンが必要で、それぞれに個別のペリフェラルセレクト信号が必要です。このため、バス上の4つのSPIペリフェラルに接続するには、7本のピンに電源と接地線を加えた合計9本のピンが必要になります。半二重のI²Cでは、ペリフェラルには、2本のピンと電源、接地線を加えた計4本のラインが必要となります。同時に、多くの高速信号により電磁妨害(EMI)が増加するため、クロストークが発生するので、信号の完全性が低下したりシステムの信頼性が低下したりします。
求められているのは、既存のI²CおよびSPIセンサとの互換性を保ちつつ、電源やデータの配線を最小限に抑え、操作を簡単にするソリューションです。
Maxim Integratedは、遠くまで離れているリモートセンサに、少ない配線数で接続するという問題を解決するために、ほとんどのSPIまたはI²Cセンサに1本のワイヤと接地線で接続できる1-Wireプロトコルを開発しました。このプロトコルでは、SPIの6本、I²Cの4本の配線をどちらも2本に減らし、データと電力を100m先まで伝送することができます。
1-Wireの適用
1-Wireを使用する場合、リモートセンサには1-Wire通信ブリッジがあり、1線式プロトコルを互換性のあるSPIまたはI²C信号に変換して、センサに送信します。1-Wireブリッジとセンサはともに、1-Wire信号と接地線だけで寄生的に給電されます。これにより、狭い範囲への配線で1-Wireの信号を伝送できるため、使用するワイヤが少なくなるのでコストを削減することができます。
SPIやI²Cでは専用のクロック信号を使用するのに対し、1-Wireではクロックをデータ信号に埋め込みます。SPIは各ペリフェラルごとに個別のセレクト信号を用いて特定のペリフェラルをアドレス指定し、I²Cはデータラインに沿って送信される7ビットのバスアドレスを使用します。これらに対し、1-Wireは固定配線により個々の通信ブリッジ内に実装された56ビットのアドレスを使用します。この広いアドレス範囲により、バス上で使用できる一意のペリフェラルの数が増えるだけでなく、攻撃者が1-Wireバス上で使用されているペリフェラルのアドレスを推測しにくくなるので、セキュリティが向上します。
1-Wireペリフェラルバスのワードサイズは8ビットです。マイクロコントローラの1-Wireバスホストは、1-Wireプロトコルをビットバンできますが、シンプルなUARTドライバでもサポートされています。これにより、8ビットのマイクロコントローラでも1ビットのバスホストになることができます。1ビットのバスでは、SPIペリフェラルまたはI²Cペリフェラルを使用できますが、両方を使用することはできません。このような一貫性があるおかげで、バス上での競合や衝突が防止され、プロトコルを使った設定が簡単になります。
1-WIREソリューションの実例
1-WireバスでSPIまたはI²Cペリフェラルに接続することを検討している設計者向けに、Maxim Integratedはコマンドシーケンサ付きの1-Wire対I²C/SPIブリッジ「DS28E18Q+T」を提供しています(図1)。
図1:コマンドシーケンサ付きDS28E18Q+T 1-Wire対I²C/SPIブリッジは、1-WireバスのIOおよびGNDピンに接続します。(画像提供:Maxim Integrated)
図1を参照すると、IOがハイレベルのときに、寄生電力がバスから取り出されて、SENS_VDDピンからペリフェラルに供給されています。ブリッジは、1-Wireのコマンドをバッファし、該当するI²CまたはSPIのコマンドに変換します。
IOピンとGNDは1-Wireバスに接続され、フロントエンドとそのステートマシンに送られます。各デバイスを識別する56ビットのROM IDの前には、DS28E18Q+Tのリビジョンを示す8ビットの1-Wireファミリコードが付いています。これにより、マイクロコントローラのファームウェアで特定のDS28E18Q+Tを一意に識別できるようになるので、デバイスファミリの変更にも柔軟に対応できるようになります。デバイスには48ビットの一意のシリアル番号があり、8ビットのCRC(巡回冗長検査)コードが付いています。
フロントエンドは、IOバスからの128バイトのデータと内部処理用の16バイトからなる144バイトのコマンドバッファを使って、変換されたデータをコマンドシーケンサに送ります。コマンドシーケンサはコマンドを処理し、最大512バイトのI²CまたはSPIコマンドをバッファに格納し、後でペリフェラルに送信することができます。これにより、1-Wireバスが1つずつコマンドを処理せずに済みます。
また、この512バイトのバッファによりDS28E18Q+Tが自身の内部電源動作を調整できるため、ペリフェラルとの通信のタイミングにより寄生電力を維持できるようになります。コマンドシーケンサは、このタイミングを維持したまま、I²C/SPIマスターとGPIOコントローラに命令を送ります。GPIOコントローラは、このデータをI²CとSPIの規格に準拠するように処理します。
CEXTピンに接続されている470ナノファラッド(nF)の外付けコンデンサは、1-Wireバス動作時にDS28E18Q+Tの電力リザーブとして機能します。接続されたペリフェラルは、SENS_VDDピンから寄生電力を得ることができます。SPIの動作では、SS#、MISO、MOSI、SCLKの4つのピンが、接続されたペリフェラルとの全二重通信を行います。I²Cの動作では、MOSIおよびSCLKの2つのピンのみと代替機能ピンであるSDAとSCLを使用します。SPIの動作用のSS#とMISOピンは、I²Cの動作では使用しないので、代替機能GPIOAとGPIOBを持つ汎用I/O(GPIO)として使用できます。これにより、柔軟に、センサの位置で診断用LEDを点灯させたり、デバイスの動作を変更するようにセンサやADCの設定ピンを管理したりできるようになります。
Maxim IntegratedのDS28E18Q+Tを使用すると、マイクロコントローラ上の1つのUARTが、共通の1線と接地バス上で使用できる多数のセンサと、わずか2本の線で通信することができます。各センサは、最大100m離れたDS28E18Q+Tに接続されているものとします。これは、2本のワイヤだけをエアダクトに通して、その長さに沿って各通気口で温度と湿度を監視できるHVACシステムでは、特に有効です。これにより、障害物に起因するホットスポットやコールドスポットがないかどうかを監視できるので、システムの効率が向上します。
1-Wireの開発
1-Wireプロトコルでの開発を始めるために、Maxim IntegratedではDS28E18EVKIT#評価システムをご用意しています。これは、ハードウェア開発ボード(図2)とソフトウェアで構成されています。
図2:Maxim DS28E18EVKIT#評価ボードを使用すると、開発者はSPIまたはI²Cペリフェラルを1-Wireバスに簡単に接続することができます。同梱のソフトウェアを使用して、バスやペリフェラルの動作を設定して監視したり、マイクロコントローラのデバイスドライバを生成したりすることができます。(画像提供:Maxim Integrated)
この評価ボードを使用すると、開発者がDS28E18Q+Tを設定し、監視することができます。開発用に、ボードをWindowsパソコンのUSBポートに接続するためのUSBアダプタが付属しています。開発者は、開発を支援するDS28E18EVKIT#評価キットソフトウェアをダウンロードして実行する必要があります。図3に示すように、この評価用ソフトウェアでは、DS28E18Q+Tとそれに接続されたペリフェラルを設定し、監視することができます。
図3:DS28E18EVKIT#評価ソフトウェアにより、開発者はUSBアダプタを使用してオンボードのDS28E18Q+Tを設定し、その動作を監視することができます。データを入力した512バイトのコマンドシーケンサメモリをペリフェラルに送信することで、センサの動作を実行することができます。(画像提供:Maxim Integrated)
このソフトウェアは、DS28E18Q+T評価ボードにコマンドを送信し、対象となるSPIまたはI²Cペリフェラル用に評価ボードを設定することができます。また、ペリフェラルのアドレスレンジを選択し、512バイトのコマンドシーケンサメモリに実行すべきペリフェラルコマンドを書き込むことができます。また、このソフトウェアは、ターゲットとなるマイクロコントローラのUARTドライバを設定できるようにしているので、1-Wire通信プロトコルの詳細をすべて学ばなくても済むようになります。また、開発者は、この評価ボードを自分のアプリケーションで使用することもできるので、センサノードの構築と設定にかかる時間と労力を節約することもできます。
まとめ
IoTおよびIIoTシステムでセンサの数が増えるにつれて、センサへの配線が複雑になり、コストが高くなっています。距離が長い場合は特にそうです。また、センサへの電力供給も、センサネットワークの設定を複雑にする要因の一つです。見てきたように、Maxim Integratedの1-Wire®プロトコルと関連ハードウェアは、データと電源を1本のワイヤと接地線だけで伝送することにより、センサネットワークへの接続を簡素化、効率化します。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

