赤外線リモコンを理解する

赤外線リモコンとの出会い(1996年10月)
私の家のテレビは十数年前に購入したSHARP製の旧式です。今でもテレビ本体は現役バリバリで活躍していますが、リモコンの効きが悪くなってしまいました。そこでリモコン中がどうなっているのか分解してみました。リモコンボタンが当たる基板の接点部分には黒いカーボンらしきものが付いていました。今まで電池ボックスの接点の接触不良をカーボン等の汚れを取り除いてメンテナンスをしたことがあるので、同じ要領で黒いカーボンらしきものを剥がしました。これが悪かった...。リモコンのスイッチというのはカーボン膜が塗布してあって、これが接点になっていたんですね。リモコンボタンはみごと完全に効かなくなりました。

14社対応リモコン
リモコンが無くてもテレビ本体に付いているボタンで何とかテレビを操作することができましたが、リモコン生活に慣れてしまっているので何と不便なことでしょう。そこで、電器店でテレビ・ビデオ用の「14社対応リモコン」が安価で入手出来るのを知って、さっそく購入しました。しかし下表に示すとおり、購入したリモコンは各社のテレビに共通のボタンしか付いておらず、SHARP製テレビ固有の機能が操作できません。常時使わない機能なのですが、二度と操作できないとなると悲しいものです。二度と消せなくなってしまった画面右上に表示されるチャンネル番号が妙にうっとおしく感じてしまいます。

  SHARP製純正リモコン 14社対応リモコン
電源
音量調整(+-)
消音
チャンネル送リ(+-)
チャンネル選局(1ch〜12ch)
チャンネルスキャン
チャンネル表示
テレビ/ビデオ切換
音声モード切換
サラウンド
時刻表示
オフタイマー

赤外線リモコンはどんなしくみになっているの?
赤外線リモコンは一体どのようにしてテレビやビデオをコントロールしているのだろう。赤外線リモコンから出ている赤外線ってのも肉眼では見えないので想像もつかない(後で、ビデオカメラやデジカメで光が見れることを知ったのだが)。赤外線リモコンは、こんなにも一般家庭に普及しているのに赤外線リモコンの技術は一般公開されていないのだろうか。

シリアルデータなんだ!
秋月電子通商に「シンプル赤外線リモコンキット」という電子工作キットがあるのを見つけました。
完成品のリモコン送信機と受信回路キットのセットで1000円と安価だったのでダメモトで買ってみました。添付の説明書には以下の様に書かれていました。

「このキットでは、シリアルデータには手をつけずに、赤外線データを受信したという情報のみをON/OFF信号に変換しています。従いまして、送信機のどのキーを押しても同じ動作をします。アマチュア的に市販のリモコン送信機をフルに活用するためには、シリアルデータを取り扱う関係上パソコンなど、大がかりなシステムでの解析作業が必要となります。」
このキットでは赤外線データを受信したらLEDを点灯させるという機能だけの魅力がないものです。しかし、赤外線受光モジュールのデータシートから赤外線リモコン信号の技術情報が得られたことと、上記の説明から赤外線リモコンがシリアルデータであることを知ることができたのが大きな収穫でした。つまり、「シリアルデータならTRN-Jrで解析できるのでは...」と考えました。

失われたSHARP製テレビの専用機能を求めて...
「TRN−Jrを使ってSHARP製テレビリモコンのデータが解析できれば、操作できなくなった機能のデータを探す糸口が見つかるのではないだろうか。」このかすかな可能性を信じて、赤外線リモコンを調べることになったのです。しかし、この頃はマイコンもアセンブラプログラミングも電子工作も始めたばかりで何の基礎知識もない超初心者です。探求心のみで突き進んで行きました。

STEP1:赤外線受信基板の製作
赤外線リモコンがRS232Cとおなじシリアルデータあることが分かったので、赤外線受光モジュールをシリアルインターフェイスRS232Cに繋いでデータを取り込んで解析すればよいのだろうと思いました。しかし、RS232Cの信号電圧は±25Vに対し、赤外線受光モジュールの信号出力電圧は+5Vだったのです。これでは直接接続できません。

トラ技SP29号の54頁にRS232CシリアルインターフェイスはMAX232CというICで±25Vの信号電圧を+5V/0Vに変換して、MPUに入れていることが書かれていました。そうか!、MAX232Cを介さずに、MPUのSIO端子に直接接続すればいいではないか。・・・と喜んではみたものの、TRN−Jr本体にはあまり手を加えたくない、ましてや、失敗してMPUを壊したくはない。

TRN−Jrの拡張I/O基板に「シリアルI/O基板」があることに気が付きました。この基板のMAX232Cの部分は不要なのでこの部分に赤外線受光モジュールを取り付けました。そして、赤外線受光モジュールの駆動電圧は都合良く+5Vだったので、TRN−Jr本体から本拡張基板に出ている電源を使うことにしました。

「シンプル赤外線リモコンキット」の部品のうち赤外線受信基板の製作に使用した部品は以下の通りです。
※受光モジュールだけでも OKです。受光モジュール以外の部品は受信確認用LEDのドライブ用です。

製作した赤外線受信基板を以下に示します。

赤外線受信基板
(TRN-Jrの「シリアルI/O基板」を改造)

赤外線受信基板写真

基板上のシリアルコントローラμPD71051(8251A同等品)により、シリアル通信フォーマットのデータを処理し1バイトデータとして取得します。通信速度は基板上のジャンパピンで設定します。本基板はTRN-Jrの拡張I/Oコネクタに接続して使用します。

(結線)シリアルI/O基板のMAX232Cとその受動部品を、赤外線受光モジュールに変更します。

	[μPD71051C]              [受光モジュール]
	        RxD・------------・OUT
	                   +5V---・Vcc
	                   GND---・GND
	        TxD・---未結線
	       ~CTS・---未結線
	       ~RTS・---未結線
		
(特徴)本基板は専用ハードウェアにより、手軽にシリアル通信フォーマットのデータを取得できます。しかしソフトウェアで制御できる部分はシリアル通信手順のみです。

STEP2:製作した赤外線受信基板の動作確認(1)
さて、製作した赤外線受信基板の動作確認ですが、赤外線受信基板に設定したI/Oアドレスからデータを取り込み、そのデータを7セグメントLEDに表示させるという下記のような動作確認用の簡単なプログラムを書きました。
	LOOP:  IN   A,(RSIO)  ;赤外線受信基板(RSIO)から取り込んだ赤外線リモコンデータを
	       LD   (DATA),A  ;表示バッファ(DATA)に入れ、
	       CALL DISP1     ;表示用7セグメントデータに変換し7セグLEDに表示する。
	       JP   LOOP      ;以上を繰り返す。
	
とりあえず、プログラムを実行してみると、TRN-Jrの7セグメントLEDに”FF”が表示されました。次に、基板の赤外線受光モジュールに向けおそるおそるリモコン送信機のボタンを押してみました。しかし、表示は”FF”のまま変化しません。受光モジュールの出力側に、受信確認用として取り付けたLEDはフラッシュしているので、受光モジュールはリモコンデータを受信し正常に働いているようです。

STEP3:製作した赤外線受信基板の動作確認(2)
なぜ7セグLEDにデータが表示されないのか、さっぱり分りません。あまりにも自分の知識が乏しすぎます。とりあえず手元にあったトラ技SP29号の53ページ以降のシリアル通信(RS232CインターフェイスやMPU内蔵SIO)の説明を読みました。そうすると、どうやらシリアルコントローラLSI(μPD71051C)を使うには、データ通信の方式やデータフォーマット等の初期設定が必要なのだろうということが分ってきました。

そして本屋さんでμPD71051Cの使い方の解説本を捜しました。その中で初期設定の手順やレジスタの内容がわかりやすく書かれたトラ技SP8号「データ通信技術のすべて」を見つけました。赤外線受光モジュールのデータシートに、モジュールの性能テスト条件で1データが12波(ビット)と書いてあったので、とりあえず非同期通信としスタートビットが1、データビットが8、パリティビットが1、ストップビットが2の合計12ビットに設定するようプログラムに追加し、再度走らせました。

なんと今度は、リモコン送信機のボタンを押すと、TRN−Jrの7セグメントLEDが高速にフラッシュしているではありませんか。最初これが何を意味するのか分かりませんでした。というのは、赤外線リモコンの信号は1種類(1バイト)のデータが繰り返し送信されており、そのため7セグメントLEDには一定のデータが表示されるはずと思い込んでいたのです。しかし、フラッシュするということは、たぶんリモコンの1つのボタンに対し2種類(2バイト)以上のデータが送信されており、次々と受信したデータの値が変化するので高速に表示が変わるのではないかと考え直しました。

STEP4:製作した赤外線受信基板の動作確認(3)
さて、本当にそうなのか早く確認したく、急いでプログラムに"CALL KEYIN"を追加して、キーを押すと表示を止めるようにしたところ、とうとうデータが見えたのです。「バンザーイ!!」。キーを操作するたびに表示データが次々と変わるのを見ていると、何種類かのデータがランダムに繰り返されているようなのです。受信データはいちおうTRN−Jrに取り込まれているようなので、これでやっと赤外線受信基板の動作確認は完了です。

STEP5:赤外線リモコンデータ受信プログラムの開発
ハードウェアは整ったので、いよいよ本格的な赤外線リモコンデータ受信用ソフトウェアの開発です。前段で、キーイン毎に表示を止め、断片的なデータを見ることができたのですが、(断片的であるためランダムに見えていた)高速?で順次送られてくる連続したデータが見えるようにする必要があります。そこで、受信データを1バイトも漏らすことなく順次RAMに書き込みます。RAMに書き込んだデータをパソコンに転送し、HEXデータのテキストファイルとして見ることにしました。受信データをRAMに書き込むプログラムの主要部分は次の通りです。
	       LD    HL,9000H  ;RAMアドレス9000Hから
	       LD    B,256     ;256バイト分書き込む。
	LOOP:  IN    A,(RSIO)
	       LD    (HL),A
	       INC   HL
	       DJNZ  LOOP
	
プログラム実行後、TRN−Jrのキー操作でRAMに書き込まれたデータを7セグメントLEDに表示させ確認してみると、うまくいっているようです。それでは、SHIFT、STORE、1というお決まりのキー操作でRAMのデータをパソコンに転送します。ドキドキしながらパソコンで転送ファイルを開いてみると、感動!!!。なんと、4バイトで1組となったデータが繰り返され、きれいに並んでいるではありませんか。所々、データが化けているようですが、4バイト1組のデータが読めます。次に、リモコン送信機のボタンを変えてやってみました。4バイトの1バイト目は同じで、2バイト目以降が変化しました。見てはいけない秘密のデータを見てしまったような、興奮を感じました。

STEP6:赤外線リモコンデータ表示プログラムの開発
これまでの過程を踏まえて受信した赤外線リモコンデータの表示プログラムを書きました。受信データの仕様は4バイト以内としました。これは、手元にあったリモコンがたまたま4バイトだったのと、TRN−Jrの7セグメントLEDが4バイト分一度に表示できるためです。プログラムをRUNすると、LED表示が消えて受信データ待ち状態となります。赤外線受光モジュールに向け任意のリモコンボタンを押すと、リモコンボタンに応じて4バイトの受信データが表示されます。TRN−Jrの何かのキーを押すと再度、表示が消え受信データ待ちとなります。

STEP7:赤外線リモコンデータの調査
家の中にある赤外線リモコンをかき集め、赤外線リモコンデータ表示プログラムでリモコンデータを調査しました。調査結果は以下の通りです。1バイト目は各リモコンでほぼ固定なので、たぶんメーカ毎の識別データのようです。(1メーカで2種類以上あるのかも?)そして、2バイト目以降は不定であることから、リモコンボタン毎に自由に決められているデータのようです。なお、受信速度は基板のジャンパピンで600bpsに設定しました。(根拠はないのですが、600bpsに設定した場合が一番安定していて、もっともらしいデータが表示されたので)また、受信出来ないリモコンも多くありました。受信速度を変えてみると受信できそうなものもありましたが、不安定で信頼性はかなり低いので「受信不能」としました。

赤外線リモコンデータ調査結果
メーカ 機種 リモコンボタン 受信データ
秋月電子 リモコンキット送信機(A) FUNCTION 86,02,95,AA
      PLAY 86,92,54,92
      STOP 86,A2,A9,29
      REWIND 86,A2,54,8A
      F・FWD 86,22,2A,4A
      PAUSE/STILL 86,2A,54,21
秋月電子 リモコンキット送信機(B) 電源 86,02,95,AA
      再生 86,92,54,92
      停止 86,A2,A9,29
      巻戻し 86,A2,54,8A
      早送り 86,22,2A,4A
      一時停止/静止画 86,2A,54,21
コルチナ テレビデオ 電源 16,02,4A,55
      再生 86,49,95,49
      停止 86,51,2A,0A
      巻戻し 86,51,95,45
      早送り 86,11,25,A9
      一時停止/静止画 86,95,2A,48
ナショナル ビデオデッキ(1CH) 電源 26,A0,55,95
      再生 26,12,AA,A9
      停止 26,40,55,D5
      巻戻し 26,82,55,D5
      早送り 26,05,2A,D5
      一時停止/静止画 26,0A,AA,AA
ナショナル ビデオデッキ(2CH) 電源 56,81,4A,95
      再生 56,49,94,A9
      停止 56,01,A5,D5
      巻戻し 56,09,4A,D5
      早送り 56,15,14,D5
      一時停止/静止画 56,29,94,AA
ナショナル 扇風機 運転入/切 56,05,84,95
      風量 56,55,85,80
      リズム 56,45,21,85
      タイマー 56,A5,21,41
      首振り 56,95,21,42
シャープ テレビ    −− 受信不能 −−
ヤマハ ステレオ    −− 受信不能 −−
ビクター ラジカセ    −− 受信不能 −−
サンヨー エアコン    −− 受信不能 −−
三菱 エアコン    −− 受信不能 −−

STEP8:データフォーマットがまったく違っていた!!!
赤外線リモコンデータを調査した翌月に発売されたトラ技1996/11月号の「赤外線リモコンを理解する」の記事を読んで、赤外線リモコンのデータフォーマットが自分の想像していたものとまったく違っていたことを知ってショックをうけました。赤外線リモコンデータはPPMという方式で符号化されているらしいのです。

これだとシリアル通信用IC(SIO)では対応できないではないではないか!自分が今までやっていたのは、赤外線リモコンデータをSIOで無理やりシリアル通信フォーマットとして処理して喜んでいただけのようです。赤外線リモコンデータを正しく解析するためには、赤外線リモコンデータをそのままPIOの1ビットで取り込みPPM方式として処理する必要があります。このデータを処理するプログラムは少々難しそうなのでアセンブラプログラミングの腕を磨いて今後じっくりとやることにしました。

STEP9:ノイズ対策
「赤外線リモコンでTRN−Jrをコントロールする」というだけあれば、なにも赤外線リモコンデータを正しく処理しなくても、リモコンのボタン毎にユニークなデータが取得出来ればリモコンの各ボタンを識別することが十分可能であることに気が付きました。しかし、受信したデータは、かなりデータ化けしているのです。このため、安定したデータが得られず、実用になりません。ソフト的に対処しようとかなり苦労しましたが、とうとうできませんでした。

それから4カ月ほど、「7セグ・テトリス」や「FM音源音色エディタ」等のプログラミングに夢中になり、赤外線リモコンのことは忘れ去っていました。何げなしに、ある回路図を見ていて超初心者的な疑問がわきました。そして、友人に「このコンデンサは何のためについているの?」と聞いてのです。「パスコンやろ」「何それ?」「バイパスコンデンサゆうて、ノイズをとるんや」と、教えて貰いました。

「ノイズ」と聞いて、なぜか「赤外線リモコンのデータ化け」を思い出しました。「もしかして、コンデンサを付けたらデータ化けがましになるのでは?」素人考えと思いながら試してみることにしました。結果は、寒気が走るほど大成功でした。データ化けが完全に無くなったのです。データ化けは、ノイズが原因だったようです。コンデンサを付ける前と付けた後のデータの比較を以下に示します。これでやっと、赤外線リモコンでTRN−Jrをコントロールすることが可能となったのです。

(対策前)1996/09/26
	868125558681255586A049E58681255586812595868125958681259586812555
	86A049E58681255586812595868125958681259586A049E586A049E586A049E5
	8681259586812595868125558681255586812555868125558681255586812555
	868125558681255586A049E586A049E586812595868125958681255586A04995
	8681255586812555868125958681255586812555868125558681255586812555
	8681259586812555868125558681255586812555868125558681255586812555
	868125558681255586812555868125958681259586A049E586A049E586A049E5
	868125958681259586A0499586A049E586A049E586A049E58681259586812595
(対策後)1997/02/11 パスコン追加
	8681255586812555868125558681255586812555868125558681255586812555
	8681255586812555868125558681255586812555868125558681255586812555
	8681255586812555868125558681255586812555868125558681255586812555
	8681255586812555868125558681255586812555868125558681255586812555
	8681255586812555868125558681255586812555868125558681255586812555
	8681255586812555868125558681255586812555868125558681255586812555
	8681255586812555868125558681255586812555868125558681255586812555
	8681255586812555868125558681255586812555868125558681255586812555
STEP10:赤外線リモコンシステムの開発
赤外線リモコンでTRN−Jrをコントロールするため、以下のプログラムとサブルーチンをつくりました。

・赤外線リモコンデータ登録プログラム(F000H)
リモコンデータを15個(01H〜0FH)分登録できる。登録データはRS232Cを介してパソコンへストア、およびパソコンからロードができる。

・赤外線リモコンSCANルーチン(F006H)
上記のプログラムで登録したデータを使用しユーザープログラムのなかでキー入力サブルーチンの代用として使用する。モニタサブルーチンSCANの赤外線リモコン版で、名付けてRSCAN。コールすれば登録されている赤外線リモコンデータの受信がある場合、対応するリモコン番号(01H〜0FH)をAレジスタに返す。登録データ以外または受信データがない場合は00Hを返す。なお、本ルーチン使用前に、1度だけRINI(F003H)をコールしておくこと。

STEP11:赤外線送受信モジュールの製作
次に赤外線リモコンデータを正しく処理してデータを解析するために、赤外線受光モジュールからのシリアルデータをそのままPIOの1ビットで取り込むための「赤外線送受信モジュール」を製作しました。TRN-Jrの拡張 IOコネクタを使用せず、ROMライタソケットを利用したのがミソです。これにより以下の部品を ICソケットに全て配置しモジュール化することができました。

(使用した部品)

赤外線送受信モジュール
(ICソケットベース)

赤外線送受信モジュール写真

本モジュールのハードウェアは基本的には赤外線受光モジュールのみで超シンプルです。TRN-Jrのロムライタソケットに差して使用するので、予めロムライタソケットを汎用I/Oポートに設定しておきます。赤外LEDにより送信も可能です。

(結線)

	[TRN-JrのROMソケット]      [受光モジュール]
	    O0(11)・----------・OUT
	    Vcc(28)・----------・Vcc
	    GND(14)・----------・GND
                               [赤外LED]
	    A0(10)・----------・OUT
	    GND(14)・----------・GND

	( )内はピン番号
(特徴)本モジュールは受光モジュールから生の信号(high/low)が得られるので、通信速度とデータフォーマットはソフトウェアで任意に制御が可能です。ソフトウェアしだいでPPM方式にもシリアル通信フォーマットにも対応できます。また赤外LED(ジャンク品のリモコンから部品取り)により送信も可能です。赤外LEDが直結であるため、送信信号の変調についてはソフトウェアでつくる必要があります。本格的に赤外線リモコン信号を解析したり、学習リモコンを作ったりするためには本モジュールが必要となります。

STEP12:赤外線リモコンデータの解析
赤外線リモコンデータを正しく処理し解析するために、赤外線送受信モジュールの製作と「赤外線リモコン解析用データサンプリングプログラム」を開発し、赤外線リモコンの送信信号がどのようなものなのか調べることができました。以下に解析例を示します。

リモコンデータ:日本電気社製テレビの1チャンネル

サンプリング速度:0.1ms

サンプリングデータ
  11111111111111111111111111111111111111111111111111111111111111111111111111111
  11111000000000000000000000000000000000000000000011111110000111111100001111111
  00001111111000000000000000011111100000000000000001111110000011111100000111111
  00000111111100000000000000011111110000000000000000111111000000000000000011111
  10000011111100000111111000000000000000011111110000000000000001111111000000000
  00000001111110000011111100000111111000001111110000011111100000000000000001111
  11100000111111000001111110000011111100000000000000001111110000000000000000111
  11100000000000000001111111000000000000000011111100000111111000000000000000011
  11110000000000000000111111000000000000000011111100000000000000000000000000000
  00000000000000000000000000000000000000000000000000000000000000000000000000000
  00000000000000000000000000000000000000000000000000000000000000000000000000000
  00000000000000000000000000000000000000000000000000000000000000000000000000000
  00000000000000000000000000000000000000000000000000000000000000000000000000000
  00000000000000000000000000000000000000000000000000000000000000000000000000000
		
解読結果
 2進表示
  00011000:11100111:00001000:11110111
 16進表示
  18:E7:10:EF

SHARP製テレビリモコンのデータフォーマットとコード化ルールも解明できました。SHARP製テレビリモコンデータのサンプルとして「Ch1」のコード部を以下に示します。先頭の4ビット分がカスタムコード部、続く8ビット分がデータコード部、末尾の2ビットは送信信号の回数のようです。送信信号は2回分で一組になっています。2回目のデータコード部は1回目の反転データとなっており、データの誤りチェック用と考えられます。

[1回目のコード] 0000-10000000-10
[2回目のコード] 0000-01111111-01

STEP13:SHARP製テレビ用リモコンハッキングプログラムの開発
赤外線送受信モジュールの送信部(赤外LED)を使って、SHARP製テレビ用リモコンのデータコード部の値を任意に変えてリモコン信号を送信できるソフトを開発しました。SHARP製TVリモコンコードの調査結果を下表に示します。下表の灰色部分はSHARP製テレビの純正リモコンにも存在しない隠れたコードです。テレビ/ビデオ切換えが単独で指定できるコードですが利用価値は低いです。メーカーがテレビの設計段階で用意したのでしょうがリモコンの設計段階で結局不要と判断したのでしょうか。

SHARP製TVリモコンコード調査結果
  上位
下位
      サラウンド
Ch1 チャンネル送り
(+)
  テレビ
Ch2 チャンネル送り
(−)
  ビデオ1
Ch3 テレビ/ビデオ
切換え
  ビデオ2
Ch4 音量調整
(+)
   
Ch5 音量調整
(−)
   
Ch6 電源    
Ch7 消音    
Ch8 音声モード
切換え
  チャンネル
スキャン
Ch9      
Ch10 オフタイマー    
Ch11 チャンネル
表示
   
Ch12      
  時刻表示    
       
       

一件落着!
上記ハッキングプログラムにより、念願であったテレビ画面右上に表示されるチャンネル番号を消すことができました。チャンネル番号が消えると21インチの画面が少し大きくなったように感じます。テレビのリモコンを壊してしまったことがきっかけとなり、赤外線リモコンをなんとか理解することができました。(赤外線リモコンおたくになってしまったかもしれない...(^^;)

赤外線リモコンの送信信号

製作した赤外線送受信モジュールとTRN-Jrを使って赤外線リモコンデータを解析した結果、赤外線リモコンのデータフォーマットとコード化ルールが確認できました。参考にした情報は、トラ技1996年11月号P.261「赤外線リモコンを理解する」という特集記事です。この記事が赤外線リモコンについての私のバイブルです。

シリアル通信のデータフォーマット(参考)
赤外線リモコンのデータフォーマットと対比させて説明するために参考として非同期方式シリアル通信データフォーマットを下図に示します。

	             |S |D0|D1|D2|D3|・・|Dn|P | T  |
	
	High---------+  +--+--+--+--+-//-+--+--+    +------//------+  +--+--+-
	             |  |  |  |  |  |    |  |  |    |              |  |  |  |
	Low          +--+--+--+--+--+-//-+--+--+----+              +--+--+--+-
	
	S:スタートビット
	D0〜Dn:データビット(n = 5〜8)
	P:パリティビット(NONE, ODD, EVENの三通り)
	T:ストップビット(1, 1.5, 2ビットの三通り)
	
赤外線リモコンのデータフォーマット
下図に赤外線リモコン送信信号の光パルスのデータフォーマットを示します。シリアル通信フォーマットと大きく異なる部分は各ビットが符号化されているところです。

	             | Leader  |       Code        |     Trailer   | 
	
	             +------+  +--+  +--+    +--+  +--+            +------+
	             |      |  |  |  |  |    |  |  |  |            |      |
	-------------+      +--+  +--+  +-//-+  +--+  +-----//-----+      +--
	
	・リーダ部:シリアル通信のスタートビットに相当します。
	・コード部:シリアル通信のデータビットに相当します。(ビット数は既定がありません)
	・トレーラ部:シリアル通信のストップビットに相当します。
	
コード部の構造は以下のようになってます。

−日本電気フォーマットの例

    |C0|C1|D |~D|

      C0,C1:カスタムコード(8ビット)
      D:データコード(8ビット)
      ~D:データコードの反転

−家電製品協会フォーマットの例

    |C0|C1|P |D0|D1|D2|・・・|Dn|

      C0,C1:カスタムコード(8ビット)
      P:カスタムコードのパリティ(4ビット)
      D0:データコード(4ビット)
      D1〜Dn:データコード(8ビット)

赤外線リモコンの符号化方式
私の知るところでは、以下の3種類です。

・PPM方式(1)(Pulse Position Modulation):日本電気をはじめ一般のメーカが広く採用
	  |Bit1 |Bit2 | Bit3  | Bit4  |
	      0     0      1       1
	  +--+  +--+  +--+    +--+    +
	  |  |  |  |  |  |    |  |    |
	--+  +--+  +--+  +----+  +----+ <--- 無信号部の長さでデータ0とデータ1を表現します。
	
・PPM方式(2):ソニーが採用
	  |Bit1 |Bit2 | Bit3  |  Bit4 |
	   0     0      1       1
	  +--+  +--+  +----+  +----+  + <--- 信号部の長さでデータ0とデータ1を表現します。
	  |  |  |  |  |    |  |    |  |
	--+  +--+  +--+    +--+    +--+
	
・マンチェスター方式:フィリップスが採用
	  |Bit1 |Bit2 |Bit3 |Bit4 | 
	     0     0     1     1
	  +--+  +--+     +--+  +--+
	  |  |  |  |     |  |  |        <--- 信号の立ち上がりと立ち下がりでデータ0とデータ1を表現します。
	--+  +--+  +--+--+  +--+
	

番外「謎のリモコン」

大阪日本橋のシリコンハウス共立で「謎のリモコン」として100円で売られていたのを買ってきました。中央部の丸くて大きなボタンの左上にマウスの絵が書かれています。この大きなボタンとマウスの絵が「謎」とされる部分なのでしょうか。このリモコンの送信信号を解析し、その「謎?」を解明しました。送信信号は家電製品の赤外線リモコンで使われているPPM方式ではなく、なんとシリアル通信フォーマットだったのです。そして大きなボタンは8方向のカーソルパッドとなっているようです。解析にはTRN-JrのシリアルI/O基板を改造した赤外線受信基板が使えました。


謎のリモコン写真 謎のリモコン拡大写真 謎のリモコン超拡大写真

品名:MIND PATH IR55
製造:台湾

解析実施日:1997/07/27
解析ツール:TRN-Jr + 赤外線受信基板
解析結果:
データフォーマット形式:非同期方式シリアル通信データフォーマット
ボーレート:1200ボー
データ長:8ビット
ストップビット:1
パリティ:なし

[送信コード表]
ボタン 送信コード ASCII表示
31h 1
32h 2
33h 3
34h 4
35h 5
中央 5Ah Z
61h a
62h b
63h c
64h d
右上 65h e
右下 66h f
左上 67h g
左下 68h h
2Dh -
2Bh +
INDEXに戻る

Copyright(C) 2000 Kiyoshi Izumi