動作原理

このページではirMagicianの動作原理について解説します。

  • 赤外線リモコンのフォーマット
     主に家電製品の制御に多く用いられる赤外線リモコンですが、歴史的な経緯から以下のフォーマットに集約されます。

    • NEC フォーマット
    • 家電協フォーマット
    • SONYフォーマット
    • その他のフォーマット

  • 現状の学習リモコンの問題点
     日本では民生家電メーカが強いので、上記のフォーマットに収斂される場合が多いですが、エアコンなどは通常の学習リモコンでは制御しにくい製品になります。また、それ以外でもシステムとして赤外線リモコンを俯瞰した時にシステムの構成要素であるUSBなどもネックになる場合もあります。

    • 決め打ちなフォーマット
       学習型の赤外線リモコンを製作する場合、上記のフォーマットに依存すると設計しやすいですが、いまひとつ実用的ではありません。

    • USBによる電流制限
       PCなどのホストに接続した赤外線リモコンシステムの場合、給電方法はUSBが一般的です。USB3.0 から900mAの給電能力がありますが、後方互換性を考慮するとUSB2.0の500mAでの設計が前提になります。あまり言及しているWeb-Pageは見当たりませんが、特にエアコンなどの長いデータの再生時に電流が流れすぎて、USBのリセットがかかってしまう場合があります。これは赤外線信号の飛びと連続して動作させられる電流の大きさとのトレードオフになります。

  • irMagicianの仕組み
    • 1chip構成
       irMagicianで利用されているマイコンはPIC18F2550になります。USB機能を内蔵しているので、PCとのインターフェイスが用意です。また、タイマも複数保持しているので、赤外線リモコンに必要な各種のタイミングの生成も可能です。ただ、irMagicianII ではUSBのフレームワークの関係から、別チップによる変調周波数の生成を行っています。

    • UBW(CDC-ACM)
       UBW は USB Bit Wacker の略称で、PIC18F2550系列のマイコンをHIDとCDC-ACMとして利用するためのフレームワークです。HIDをサポートしたブートローダにより、その上位で動作するファームウェアがUSB経由で書き込めるようになります。これにより今回のように新しいリモコンや機能を後から容易に追加する事が可能になります。CDC-ACM は見かけ上、シリアルデバイスになります。PCのターミナルソフト経由でコマンドを投入する事が可能になります。このUBWをベースに赤外線リモコンの機能を付けたものが、irMagicianと言えます。ただ、後述するCapture/Compare機能を利用するため、ボタンとLEDのポートをオリジナルのUBWから変更しています。

    • irMagic : 赤外線ハンドリングエンジン
       irMagicianの最大の特徴が赤外線の学習と再生を行うirMagicです。赤外線リモコンのフォーマットを前提に学習を行わずに純粋に特定パターンを持ったデジタル信号として読み取り、それを再生する事により学習リモコンを構成しています。このためフォーマットに関係なく各種のリモコン信号を学習する事が可能です。

      • Capture/Compare機能
         赤外線の学習に関してはPIC18F2550が持つ機能をフル活用しています。中でもCapture/Compare機能はそれぞれ、赤外線信号の学習と再生に利用しています。

        • Capture

           リモコン用の赤外線受光器を通った赤外線リモコン信号は一定のパターンのパルスとなります。フリーランニングカウンタを動作させて、このパルス信号の立上り/立下り信号の度に割込を発生させフリーランニングカウンタの値を取り込みます。例えるとそれぞれのパルスはストップウオッチのラップタイムとなります。これをメモリに順番に格納していきます。つまりこれが赤外線リモコンの学習となります。現在、このメモリの容量は640Byteありますので、比較的長い赤外線リモコン信号もそのまま学習する事が可能です。

        • Compare

           このCompare機能の活用により赤外線リモコン信号が赤外線LEDから発生します。Capture機能によりメモリに格納された赤外線リモコンの波形の値を順番に読み出します。読み出した値の格納先のレジスタと先に述べたフリーランニングカウンタの値を比較(Compare)させ、一致(Match)したら赤外線LEDの信号を反転させます。これを繰返す事によりパルスとなります。さらにこのパルスのオンになっている場合に38KHz近傍でOn/Offします。これを変調周波数といいます。irMagicianでは変調周波数の生成にもタイマを利用しています。irMagicianIIでは処理が間に合わないため、変調周波数は別チップで生成しています。この出力をトランジスタで構成されたパワーステージに送り、赤外線LEDに電流を流し実際の信号として出力します。

         以上のようにCapture/Compare機能を活用し、ハードウェアを活かした構成により高い学習/再生機能が実現出来ています。

    • ステートマシンとコマンド
       irMagicianは他の赤外線学習リモコンに比べて豊富なコマンドを用意しています。また、簡単に拡張出来るようになっています。赤外線リモコン信号の再生と出力はそれぞれワンコマンドで操作出来るようになっています。これはコマンドの投入で状態遷移のみを行わせる事により実現しています。