産業用オートメーション・システムでは、ロータリー・エンコーダがよく使われます。この種のエンコーダを、電気機械の回転軸に接続することにより、フィードバック制御システムを実現するというのが典型的な例です。当初は、ロータリー・エンコーダは、位置(角度)と速度を計測するために使われていました。しかし、現在ではシステムの診断やパラメータの設定といったことに利用されるケースが増えています。図 1 に示したのは、AC モーターのクローズドループ制御に使用するシグナル・チェーンです。RS-485 に対応するトランシーバーとマイクロプロセッサを使用し、マスターとなる産業用サーボ・ドライバと、スレーブとなるアブソリュート・エンコーダ(ABS エンコーダ)の間のインターフェースを構築しています。
サーボ・ドライバと ABS エンコーダの間は、RS-485 の通信リンクで接続されています。通常、この部分には、最高で 16 MHz の高いデータ・レートと伝搬遅延を小さく抑えることが求められます。RS-485 では、ケーブル長は最長 50 m ですが、150 mまで延長できる場合もあります。モーター制御用のエンコーダ・アプリケーションでは、厳しい環境下でデータ通信を行うことになります。なぜなら、電気的ノイズや長いケーブル長がRS-485 の信号のインテグリティ(品位)に影響を及ぼすからです。本稿では、アナログ・デバイセズの製品を使って構成したモーター制御システムによって得られるメリットについて説明します。使用する主な製品は、データ・レートが 50 Mbps(25MHz)の RS-485 対応トランシーバー「ADM3065E」と、ミックスド・シグナルに対応する制御用プロセッサ「A D S P -CM40x」です。
ADM3065E は、モーター制御用のエンコーダが使われる過酷な環境でも確実に動作するように設計されています。ノイズに対する耐性と IEC 61000-4-2 で規定された静電気放電(ESD)にも耐えられるだけの堅牢性を兼ね備えています。
ノイズ耐性
RS-485 における信号の送受信は平衡型/差動型で行われます。そのため、本質的にノイズに対する耐性は低くはありません。システムのノイズは、RS-485 のツイストペア・ケーブルにおいて、各ワイヤに対して均等に加わります。各ケーブルは互いに対称な信号を送出するので、RS-485 のバスに加わる電磁界は相殺されます。そのため、システムの電磁妨害(EMI)が軽減されます。また、ADM3065E ではバスの差動電圧を 2.1 V に高めることができるので、通信における S/N 比を向上させることが可能です。ADM3065E の信号に絶縁を施したい場合には、「ADuM141D」を使用するとよいでしょう。ADuM141D はアナログ・デバイセズの iCoupler® 技術を採用したクワッドチャンネルのデジタル・アイソレータです。最高 150 Mbps のデータ・レートに対応できるので、50 Mbps の ADM3065E と問題なく組み合わせられます(図 2)。デバイスの電源または入力ピンに注入されるノイズを除去する能力を示す指標に、DPI(ダイレクト・パワー・インジェクション)があります。ADuM141D で採用されている絶縁技術については、IEC 62132-4 規格が定める DPI 法によってテストを実施済みです。ADuM141D のノイズ耐性は類似する製品よりも優れています。同 IC はあらゆる周波数に対して優れた性能を示しますが、他の絶縁製品では 200 MHz ~ 700MHz の周波数帯でビット・エラーが発生することがあります。
IEC 61000-4-2 の ESD 規格への対応
RS-485 の露出されたコネクタと、エンコーダとモーター・ドライバをつなぐケーブルでは、ESDが発生する可能性があります。これは、システムに障害が生じる一般的な要因だと言えます。IEC 61800-3 は、可変速電気駆動システムにおける EMC(電磁両立性)の要件に関連するシステム・レベルの規格です。同規格は、最低でも IEC 61000-4-2 で規定された ESD 保護に対応することを求めています。IEC 61000-4-2 では、接触放電については ± 4 kV、気中放電については ± 8 kV に耐えられるようにすることを規格として定めています。ADM3065E は、±12 kV の接触放電、± 12 kV の気中放電に耐えられるように設計されています。つまり、IEC 61000-4-2 で定められた ESD 保護の規格を上回る性能を備えているということです。
図 3 は、IEC 61000-4-2 の規格から引用したものです。8 kV の接触放電による電流の波形と、人体モデル(HBM: Human BodyModel)による 8 kV の ESD の波形を比較しています。この図から、2 つの規格がそれぞれに異なる波形とピーク電流を規定していることがわかります。IEC 61000-4-2 の 8 kV のパルスによるピーク電流は 30 A です。それに対し、HBM による ESD では、それに相当するピーク電流は 1/5 未満の 5.33 A となります。
もう 1 つの違いは、最初の電圧スパイクの立上がり時間です。IEC61000-4-2 の ESD 規格で定められた波形では立上がり時間はわずか 1 ナノ秒です。これは、HBM による ESD 波形の 10 ナノ秒と比べてかなり短いと言えます。IEC 規格 の ESD 波形に関連する電力量は、HBM の ESD 波形よりもかなり大きくなります。HBM の ESD 規格では、テストの対象となる装置に対してプラス側で 3 回、マイナス側で 3 回の放電を行うと定めています。それに対し、IEC の ESD 規格では、プラス側で 10 回、マイナス側で 10 回の放電を行うよう求めています。上述したように、ADM3065E は、IEC 61000-4-2 の ESD 規格を上回る性能を備えています。そのため、HBM のさまざまなレベルの ESD に対応可能だとうたっている他の RS-485 対応トランシーバー製品に比べて、過酷な環境での動作により適していると言えます。
通信プロトコル「EnDat」の概要
エンコーダを使用する場合には、EnDat、BiSS、HIPERFACE、Tamagawa などの通信プロトコルが使われることになります。それぞれの通信プロトコルは異なるものですが、実装については類似点があります。これらのプロトコルのインターフェースは、双方向、シリアル型で、RS-422 または RS-485 の電気的仕様に準拠しています。ハードウェアのレイヤには共通点がありますが、各プロトコルの実行に必要なソフトウェアはそれぞれに異なります。通信プロトコル・スタックとアプリケーション用のコードは、どちらも各プロトコルに固有のものになります。本稿では、EnDat 2.2 のマスター側のハードウェアとソフトウェアの実装に着目することにします。
遅延の影響
遅延は 2 種類に分けられます。1つはケーブルによる伝送で発生する遅延です。もう 1 つは、トランシーバーで発生する伝搬遅延です。ケーブルで生じる遅延は、光速とケーブルの誘電率によって決まります。一般的には 6 ナノ秒/m ~ 10 ナノ秒/m となります。全体の遅延がクロック周期の 1/2 を超えると、マスター‐スレーブ間で通信を行うのは不可能になります。その場合、設計者の対応としては以下の選択肢が存在することになります。
- データ・レートを下げる
- 伝搬遅延を低減する
- マスター側に遅延を補償する仕組みを導入する
上記の 3 つ目の選択肢は、ケーブルによる遅延とトランシーバーによる遅延の両方を補償するというものになります。そのため、システムで長いケーブルを使用しつつ、高いクロック・レートで確実な動作を実現したい場合には非常に有効な手法になります。
ただ、この手法には欠点もあります。それは、遅延を補償する仕組みを導入することによってシステムが複雑化することです。遅延の補償が不可能なシステムやケーブル長の短いシステムでは、伝搬遅延の小さいトランシーバーを使用することが有効な選択肢になります。伝搬遅延が小さければ、システムに遅延を補償する仕組みを導入することなくクロック・レートを高めることができます。
マスターの実装
マスターの実装は、シリアル・ポートと通信プロトコル・スタックから成ります。エンコーダのプロトコルは、UART のような標準ポートには対応していません。そのため、ほとんどの汎用マイクロコントローラが備える周辺回路は使用できません。そこで、FPGA のプログラマブル・ロジックを使う方法が有力な選択肢になります。FPGA により、ハードウェアにおける専用の通信ポートを実装するということです。その場合、遅延の補償といった高度な機能を同時に実現することもできます。FPGA を使用する方法は柔軟性が高く、個々のアプリケーションに適応させることが容易です。ただし、この方法には欠点もあります。汎用のマイクロコントローラと比較すると、FPGA は高価で消費電力が多く、市場投入までにより長い時間が必要になります。
本稿の例では、モーター制御ドライバ用のプロセッサであるADSP-CM40x を使用して、EnDat に対応するインターフェースを実装します。ADSP-CM40x は、PWM(パルス幅変調)タイマーや、A/D コンバータ(ADC)、SINC フィルタといったモーター制御用の周辺回路のほか、柔軟性の高いシリアル・ポート(SPORT)を備えています。
SPORT を使えば、EnDat や BiSS のようなエンコーダ用のプロトコルなど、数多くのプロトコルをエミュレーションすることができます。ADSP-CM40x は豊富な周辺回路を備えているため、高度なモーター制御に使用できます。また、それ単体でエンコーダに対するインターフェースを構築することも可能です。つまり、FPGA を使わなくて済むということです。
テスト用の構成
図 4 に、EnDat 2.2 のテストを行うための構成を示しました。EnDat のスレーブとなるのは、EnDat に対応するエンコーダ(ENC1113)を軸に据え付けた Kollmorgen の標準的なサーボ・モーター(AKM22)です。エンコーダは、3対のワイヤ(データ、クロック、電源)によってトランシーバーの基板に接続されています。EnDat の PHY(物理層)上には、エンコーダ用の 2 個のトランシーバーと電源があります。トランシーバーの1 つはクロック用、もう 1 つはデータ・ライン用に使用されます。EnDat のマスターは、ADSP-CM40x の標準的な周辺回路とソフトウェアによって実現します。送信ポートと受信ポートとしては、柔軟性の高い SPORT を使用しています。
EnDat のプロトコルは、長さが異なる多くのフレームで構成されます。しかし、それらのフレームは、図 5 に示すように、すべて同じシーケンスに基づいています。まず、マスターがスレーブに対してコマンドを発行します。それを受けてスレーブはコマンドを処理し、必要な演算を実行します。最後に、スレーブは結果をマスターに送り返します。
送信用のクロック(Tx CLK)は ADSP-CM40x によって生成されます。システムで生じる遅延により、エンコーダからのデータは、プロセッサに戻る際には送信用のクロックとは位相の異なる信号になります。伝搬遅延 tDELAY を補償するために、プロセッサは、送信用のクロックよりも tDELAY の分だけ遅れた受信用のクロック(Rx CLK)も発行します。伝搬遅延の補償には、スレーブから受信したデータと同じ位相の受信用クロックを適用します。
EnDat のプロトコルでは、通信を行っている際にはエンコーダに対してクロックを供給しなければならないと規定されています。ただ、プロセッサからのクロック信号は連続して送信されます。他のすべての期間は、クロック・ラインをハイに保持しなければなりません。
これに対処するために、プロセッサによってクロックのイネーブル信号 CLK EN を生成し、それを ADM3055E のデータ・イネーブル・ピンに入力するようにしています。厳密に 2 クロック(2T)分の時間が経過した後、マスターは Tx DATA に対してコマンドを出力し始めます。
コマンドの長さは 6 ビットで、その後に 2 個の 0(ビット)が続きます。トランシーバーを介してデータの方向を制御するために、プロセッサは、送信中は Tx EN/Rx EN をハイに設定します。
スレーブが応答の準備を行う間、システムは待ち状態に移行します。このとき、マスターはクロックを供給し続けますが、データ・ラインは動きを停止します。スレーブの応答の準備ができたら、データ・ラインの受信データはハイに設定され、応答がその後すぐに送られます。n ビットの応答を受け取った後、マスターは CLK EN をローに設定することによってクロックを停止します。同時に、ENC CLK をハイに設定します。データ・フローは半二重で、統合されたデータ・ライン上のトラフィックは ENC Data として示されます。
テストの結果
図 6 に示したのは、EnDat に対応するシステムのテスト結果です。このテストではクロック周波数を 8 MHz としました。遅延の補償は受信クロックの位相をシフトすることによって実現します。いちばん下の信号は、EnDat のマスターからのコマンドです。この例では、「send position(位置の送信)」というコマンドが使われています。2 個の 0 の後、6 個の 1 が送られ、2個の 0 で終了します。コマンドの長さは全体で 10 ビットです。エンコーダからの応答は上から 3 番目の信号です。上から 2 番目は、統合されたデータ・ラインの信号です。いちばん上の信号はエンコーダに供給されたクロックです。