数バイト程度のデータをマイクロコントローラに送りたい場合、ケーブル接続を行わなくて済む手法が欲しくなることがある。そのような手法の1つが、赤外線(IR:infrared rays)を用いる方法である。例えば、テレビやビデオレコーダではIRリモコンがよく使われている。
こうしたIRリモコンには、受信器としてフォトモジュール「TSOP17xx」(ドイツVishay Electronic社製)などがよく使用される。通常、この種のIR受信器は周波数が38kHzのキャリア(搬送波)光を用いたバーストデータを受信する。また、受信信号の増幅、ゲインの自動制御、復調などの機能も備えており、これ以外の外部部品をほとんど使用する必要がない。
一方、送信器は簡単な構成でも、始動/停止が可能な38kHzの発振器、電源、ミリ秒以下の時間を単位とする変調用パルス信号の発生器が必要になる。こうした機能をパソコンのOSによってコントロールするのは容易ではない。それに対し、パソコンのシリアルポートを利用すれば、その38.4キロビット/秒の標準的な伝送速度と、簡単な周波数逓倍回路、2個の赤外線LEDを使用して38.4kHzのキャリアデータを生成できる。
図1に示したのが、パソコンのシリアルポートを利用したIRリモコンの構成例である。図のTX端子に対して、パソコンのシリアルポートから、例えば0と1が交互に継続する55H(16進の55)の1バイトデータにスタートビットとエンドビットを付け加え、それを2回を出力する(これは、IRリモコンで用いられる典型的な信号パターンの例である)。この出力によってLEDを駆動すると、38.4kHzキャリアによるパルス光がバースト状に継続する発光パターンが得られる。同様のバイトデータを継続して送れば、より長いバースト信号も生成できる。
IR受信器が正常に動作するには、送信データは10〜70個のバースト状キャリアパルスならびにこれとほぼ同等のキャリアパルス休止期間で構成しなければならない。このデータの生成方法は簡単で、例えば短い休止期間であれば、シリアルポートから複数バイトの0Hデータを出力することにより生成できる(0H出力時に付加されるスタートビットとエンドビットの2個のパルスは、受信器側で処置可能である)。受信器のタイプによってはより長い休止期間を要することもあるが、その場合には必要な時間だけ通信を停止すればよい。このようにして所定のプロトコルにのっとって信号を生成/送信することで、所要のデータ伝送を実現できる。
図1の回路では、コンデンサC1(ならびにパソコンのシリアルポートの出力インピーダンス)によってハイパスフィルタを構成している。シリアルポートからのパルス出力は、ハイパスフィルタによってDC成分がカットされ、正負のパルスに変換される。正のパルスは一方の赤外線LEDを駆動し、負のパルスが他方のLEDを駆動する。LEDはいずれもIR受信器の方向に指向させる。C1の値は、IR受信器の動作マージンが大きいことから多くの場合1nF〜10nF程度でよい。また、パソコンのシリアルポートは通常、最大電流が5mA〜20mA、最大電圧が±15Vなので、出力抵抗はキロオームのレベルになる。この程度の出力抵抗があれば、LEDの電流を制限するための外付け抵抗は必要ない。なお、マイクロコントローラなど、パソコン以外のシリアルポートを利用する場合には、その出力インピーダンスが低いため、コンデンサの値を変更する必要がある。
LEDが確実にIR受信器の方向に指向するようにしておけば、5mA程度の小さいLED電流でも2m〜4mの距離に対し信頼性の高い伝送が実現できる。
Copyright © ITmedia, Inc. All Rights Reserved.