パラレル出力を備えるデジタル入力モジュールの設計、シリアル出力の産業用デジタル入力ICを活用
要約
本稿では、シリアル出力を備える産業用デジタル入力ICを利用し、パラレルのロジック出力を得る方法を紹介します。その方法を用いれば、各ICが備える多くの特徴や機能を活かしつつ、パラレル出力を得ることができます。なお、本稿はRockwell Automationの協力を得て執筆しました。
はじめに
アナログ・デバイセズは、「MAX22190」や「MAX22199」といった産業分野向けのデジタル入力ICを提供しています。これらの製品は、デフォルトではSPI(Serial Peripheral Interface)を利用して、シリアル化されたデータを出力します。具体的には、SPIまたはピンベース(LATCH)のタイミング制御の下、8本/24Vの電流シンク入力の状態をサンプリング/シリアル化します。両ICの出力を受け取る側は、SPIを介して変換結果となる8つの状態を読み出すことになります。シリアル・インターフェースを使用すれば、アイソレーションを必要とするロジック信号の数を最小限に抑えることができます。そのため、シリアル・インターフェースはチャンネル数の多いデジタル入力モジュールにおいては特に有用です。しかし、リアルタイム対応、小さなレイテンシ、高速性が重視されるシステムも少なくありません。その場合、デジタル入力ICの各チャンネルの信号にレベル変換を施したロジック信号をリアルタイムで供給する方が望ましいケースがあります。
背景
シリアル化は、あるタイミングで複数のロジック信号を同時にサンプリング(量子化)することで実現されます。つまり、シリアル化を利用する場合にはリアルタイムの情報が失われることになります。システムによってはこのことが問題になるかもしれません。例えば、インクリメンタル・エンコーダやカウンタなどでは、スイッチングする信号間のタイミングの差が問題になります。そうしたアプリケーションでシリアル化を利用する場合には、サンプリングを高速に行って、シリアル・データを高速に読み出す必要があります。あるいは、シリアル化の利用は断念し、デジタル入力ICとして「MAX22195」などを使用することになるでしょう。同ICは、シリアル化されていないパラレル・データを出力する製品です。本稿では、もう1つの方法として、MAX22190/MAX22199によりパラレル出力を生成する方法を紹介します。特に、その場合の特性、制限事項、設計時に考慮すべき事柄について詳しく説明します。この方法を採用した場合、両ICが備える診断機能や設定機能を利用できるというメリットが得られます。
設計の詳細
MAX22190/MAX22199は、LEDを駆動するための8本の出力を備えています。LEDを使用する目的は、デジタル入力の状態を視覚的に表示することです。この表示は、システムの設置、メンテナンス、運用時に役に立ちます。産業用入力ICの特性と仕様は、IEC 61131-2という規格で明確に定義されています。その出力の状態は、基本的にオンまたはオフのバイナリで表現されます。本稿で紹介する手法では、それら8本の出力ピンをLEDの駆動ではなく別の用途で使用します。すなわち、ロジック信号をパラレル形式で出力するために使用します。
ここで、上述したLEDの駆動機能について詳しく説明しておきます。MAX22190/MAX22199は、エネルギーレスLEDドライバを備えています。LEDにはフィールド側のセンサー/スイッチから電力を供給するので、デジタル入力モジュールの電源では電流/電力は消費されません。また、これらのICは入力電流を制限する機能を備えています。その制限値は、REFDIピンに接続した抵抗値によって決まります。これも、モジュール内の消費電力を最小限に抑えるための仕組みです。Type 1/Type 3の一般的なデジタル入力については、入力電流が約2.3mA(代表値)のレベルに設定されます。これは、IECの規格で定められた最小値である2.0mAよりも大きな値です。MAX22190/MAX22199では、フィールド入力ピン(IN1ピン~IN8ピン)の約2.3mAの入力電流の大部分を、LEDを駆動するための出力ピン(LED1ピン~LED8ピン)に送出します。両ICの消費電流はわずか約160μAです。なお、以下では、フィールド入力ピン(IN1ピン~IN8ピン)をINピン、LEDの駆動用の出力ピン(LED1ピン~LED8ピン)をLEDピンと表記することにします。
LEDドライバは、電圧出力ではなく電流出力の形で機能します。そのため、デジタル・アイソレータやマイクロコントローラといった他のロジック・デバイスとLEDピンとのインターフェースを実現するには、電流を電圧に変換する必要があります。そのためには、図1に示すように、最もシンプルなトランス抵抗素子(図中のR)を使用します。
このようなLEDピンの使用方法は、製品のデータシートには記載されていません。以下では、LEDピンの特性や考えられる制限事項について説明します。
LEDピンの特性
上述したように、本稿で紹介する方法ではLEDピンとグラウンドの間に抵抗を接続して電圧出力を生成します。その場合、以下のようなことについて考慮する必要があります。
- LEDピンが許容可能な最大電圧の値は?
- LEDピンからINピンへの相互作用/フィードバックは存在するのか?
- 特に、LEDピンの電圧によってINピンの入力電流は変化しないのか?(IECの規格で最小電流のレベルが規定されているため)
- LEDピンの出力電流は、オーバーシュートが発生したり、立ち上がり/立下がり時間が長かったりといった望ましくない過渡応答を示さないか?
- 入力が高速に切り替わる場合、LEDピンの出力を高速ロジック信号として使用できるのか?
- LEDピンの出力はフィルタリングされているか?(SPIによってプログラム可能)
MAX22190/MAX22199のデータシートを見ると、LEDピンの最大許容電圧(絶対最大定格)は6Vと規定されています。したがって、LEDピンは5V(および3.3V)のロジック出力として使用するのに適していると言えます。もちろん、LEDピンの電圧が6Vを超えることがないように注意を払う必要があります。
LEDピンの電圧が他の重要な特性に対して及ぼす影響について評価しなければなりません。特に懸念されるのは、LEDピンの電圧が高い場合にINピンの入力電流が変化しないのかということです。この入力電流の値は規格で定められているので注意しなければなりません。重要なのは、フィールド入力の電圧が、11Vというオンの状態のスレッショルド電圧に近い場合です。このスレッショルド電圧は、規格においてType 3のデジタル入力に対して定められています。
図2は、LEDピンの電圧とINピンの入力電流の関係を示したものです。フィールド入力の電圧が9V、10V、11Vの場合について測定を行いました。9Vと10Vを選択したのは、いずれもType3の入力の遷移領域内にあり、その入力電流の最小値が定義されていないからです。一方、入力が11Vの場合の入力電流については2mAという最小値が規定されています。
青色の曲線は、フィールド電圧が11V(スレッショルド)の場合の測定結果です。ご覧のように、LEDピンの電圧が約5.8Vを超えるとINピンの電流が減少し始めることがわかります。ただ、LEDピンの電圧が6Vである場合でも電流の減少量はわずか0.6%です。また、電流値が定義されていない9V/10V(遷移状態)の場合、LEDピンの電圧が5.5Vまでなら入力電流を2mA以上に維持できることがわかります。
結論として、MAX22190/MAX22199のLEDピンを使えば、5Vのロジック出力(または3.3Vなどの低電圧のロジック出力)を生成できます。その一方で、Type 3のデジタル入力との互換性が得られます。なお、Type 1のデジタル入力の場合、オンに対応するスレッショルドは15Vという非常に高い値です。そのため、INピンの入力電流に影響を与えることなく、LEDピンを5Vのロジック・レベルに対応させることができます。
ここで図3をご覧ください。これは、LEDピンの出力の過渡応答を示したものです。フィールド入力が10kHzでスイッチングするという条件の下、オシロスコープによって取得しました。LEDピンから出力される電流は、1.5kΩの抵抗を使用して電圧に変換しています。これを見ると、LEDピンの出力には、ロジック信号を受け取るデバイスに損傷を与え得る過渡的なオーバーシュートやアンダーシュートは発生していないことがわかります。立ち上がり時間と立下がり時間は短く、信号の歪みも生じていません。
SPIの利用
先述したように、MAX22190/MAX22199の本来の使い方では、SPIを介してシリアル・データを出力します。このSPIは、両ICの制御に利用することもできます。例えば、MAX22190/MAX22199にはフィルタが用意されています。それらのフィルタは、SPIを介して構成することが可能です。チャンネルごとにフィルタを適用し、信号のグリッチ/ノイズを低減することができます。以下、このフィルタをグリッチ・フィルタと表記することにします。グリッチ・フィルタの時定数としては8種の値を使用できます(最大20ミリ秒のレベル)。また、高速な応答が必要なアプリケーションでは、グリッチ・フィルタをバイパスすることも可能です。なお、選択したグリッチ・フィルタはLEDピンの出力にも適用されます。そのため、電気信号の状態によりマッチした視覚的な表現が得られます。
SPIを利用すれば、各種の診断機能の設定も行えます。具体的には、電源電圧が低下したときのアラーム、過熱に対する警告、REFDI/REFWBピンの短絡の検出、フィールド入力用の断線の検出などの機能を利用できます。
電源を投入した際、レジスタ・ビットのデフォルトの状態は以下のようになります。
- 8つの入力のすべてがイネーブル
- すべての入力フィルタはバイパス
- 断線の検出機能はディスエーブル
- REFDIピンとREFWBピン(MAX22199のみ)の短絡検出機能はディスエーブル
本稿で紹介する方法を、グリッチ・フィルタを必要としないアプリケーション(高速信号を扱うものなど)や診断機能を必要としないアプリケーションに適用する場合にはSPIを使用する必要はありません。チャンネルごとにグリッチ/ノイズをフィルタリングしたい場合や診断機能を利用したい場合だけSPIを使用すればよいということです。
パラレル動作の例
ここで、前掲の図3をもう一度ご覧ください。この画面には、10kHzでスイッチングするフィールド入力(黄色)とそれに対応するLEDピンの出力(青色)が表示されています。LEDピンの出力には1.5kΩの抵抗を適用し、3.3Vのロジック信号が出力されるようにしました。グリッチ・フィルタはディスエーブルの状態(デフォルトのバイパス・モード)に設定しています。
LEDピンの出力波形には、オーバーシュートやオンの状態における電圧の変動といった望ましくない事象は現れていません。これは、LEDピンの出力を電圧出力として適切に使用できるということを意味します。以下、その特性や制限について詳しく説明します。
グリッチのフィルタリング
先述したように、MAX22190/MAX22199はチャンネルごとに選択が可能なグリッチ・フィルタを備えています。ここでは、同フィルタの時定数を800マイクロ秒に設定し、200Hzでスイッチングするフィールド信号を入力するケースを考えます。LEDピンの出力にグリッチ・フィルタを適用し、その影響を確認してみましょう。グリッチの幅の定義に関しては、デューティ・サイクルを変化させてエミュレートを実施しました。また、正のグリッチと負のグリッチの両方を対象にすることにします。
まずは図4をご覧ください。これは、750マイクロ秒の正のパルスに時定数が800マイクロ秒のグリッチ・フィルタを適用した例です。それにより、正のパルスが除去されていることがわかります。正のグリッチのフィルタリングは、LEDピンの出力とSPIのデータ(通常の使い方における出力)の両方に作用します。
一方、負のグリッチのフィルタリング結果は図5に示すようなものになります。ご覧のように、LEDピンの出力はフィルタリングされず、750マイクロ秒の立下がりパルスがLEDピンの出力にそのまま伝播しています。SPIのデータを読み出す場合には正負両方のグリッチが適切にフィルタリングされるので、それとは異なる結果が得られていることになります。
続いて図6をご覧ください。この例では、時定数が800マイクロ秒のグリッチ・フィルタをイネーブルに設定しています。そして、入力信号は50%のデューティ・サイクルでスイッチングさせています。図6のLEDピンの出力はこの条件で取得しました。これを見ると、立ち上がりエッジには約770マイクロ秒の遅延が生じていることがわかります。一方、立下がりエッジには遅延は見られません。つまり、LEDピンの出力に対してグリッチ・フィルタは適切に機能していないということになります。
高い周波数でのスイッチング
アプリケーションによっては、スイッチングの周波数が高く、伝搬遅延やスキューを小さく抑えなければならないことがあるでしょう。その場合、グリッチ・フィルタはディスエーブルの状態にすべきです。同フィルタをバイパスして100kHzの信号を入力した場合、LEDピンの出力は図7に示すようなものになります。これを見ると、立下がりエッジには約60ナノ秒という小さな伝搬遅延しか生じていません。それに対し、立ち上がりエッジには大きな伝搬遅延とジッタが発生していることがわかります。立ち上がりエッジのジッタは±0.5マイクロ秒で、平均伝搬遅延は約1マイクロ秒です。この立ち上がりの遅延とジッタは、データシートに記載されている約1MHzのサンプリングによって生じます。立下がりエッジではサンプリングは行われないため、高速な応答を示します。
図7から、LEDピンの出力では立ち上がり時間/立下がり時間のスキューが最大約1.5マイクロ秒に達し、ジッタも伴うことがわかります。チャンネル間のスキューは立下がりエッジでは小さく抑えられますが、立ち上がりエッジのスキューはそれよりはるかに大きくなります。このような理由から、アプリケーションによってはLEDピンの出力を使用できない可能性があります。
設計時に考慮すべき事柄
最後に、LEDピンを電圧出力用のピンとして使用する場合に考慮すべきいくつかの事柄について説明します。
MAX22190/MAX22199のLEDピンは、もともとLEDを電流で駆動するためのものです。電圧出力の形で使う場合には、その値が、駆動の対象となるロジック入力が許容できないレベルに達することがないように注意しなければなりません。INピンの入力電流は、REFDIピンに接続する抵抗によって標準的なレベルに設定します。ここで、INピンの電流にはデータシートに規定されているように±10.6%の許容誤差が存在します。したがって、抵抗の両端の電圧も±10.6%の範囲でずれる可能性があります。通常、ロジック入力についてはVL + 0.3Vのような形で最大定格が厳密に規定されています。ここで、VLはロジック用の電源電圧の値です。2つのロジック信号のインターフェースを構築する場合、確実なマッチングを得るために共通のVLを使用するケースが少なくありません。というのも、ロジック出力の形式は、標準的にはプッシュプルまたはオープンドレインであり、その最大出力電圧はロジック用の電源電圧であるVLによって定義/制限されるからです。LEDピンの標準的な出力電圧を低く設定すれば、それを受け取るロジック入力側の絶対最大定格を超えないようにすることができます。また、LEDピンの出力電流が約2.3mAであれば、ロジック入力に損傷が及ぶことはないと考えることもできます。一般に、ロジック入力は50mA~100mAというはるかに大きいラッチアップ電流に耐えられるように規定されているからです。但し、これについては採用を検討中のICを使って検証を実施する必要があります。あまり魅力的なものではありませんが、選択肢はもう1つ存在します。それはクランプ回路によって電圧を制限するというものです。
上述したように、標準的なロジック出力はインピーダンスの低いプッシュプル型で実現されます。そのため、ロジック入力を駆動するに当たっては高い柔軟性が得られます。一方、LEDピンはオープンドレイン出力を採用しています。そのため、プルダウン抵抗と寄生容量によってスイッチング速度が決まります。
コンデンサを追加しなければ、100kHz以上のスイッチング・レートを使用することが可能です。
まとめ
本稿で紹介したMAX22190/MAX22199は、産業用途向けのデジタル入力ICです。そのデータシートを見るとシリアル・データを出力する製品だと説明されています。しかし、実際には8つのパラレル出力を備えるオクタル入力のICとして使用することも可能です。その場合、本来は信号の状態を視覚的に示すために使われるLEDドライバを、電圧ベースまたは電流ベースのロジック出力として使用します。この方法によってパラレル出力を得る場合、シリアル・データの出力を担うSPIは使用しなくても構いません。一方、SPIを制御用のインターフェースとして用いれば、いくつかの制限はあるものの、両ICがもともと備えるすべての診断機能や構成機能を利用できます。
謝辞
本稿の執筆を支援してくれたRockwell Automationのシニア・スタッフ・エンジニアHWであるChin Chia Leong氏に感謝します。