赤外線リモコン

赤外線リモコンのメモです
上のページに戻る
赤外線リモコン(私の独自の調査にようるもので、間違いがあるかもしれません)
 さて、赤外線リモコンについてですが、赤外線リモコンのコードについてはもっともポピュラーな家電製品協会フォーマットについて書きます。
さて、家電製品協会フォーマットって何?と言うと、どもうこれについては私の推測ですが、赤外線リモコン創生期に各家電メーカーが勝手に赤外線リモコンを作ってしまった為、通信フォーマットが乱立してしまった。
そこで、業界団体として、家電製品協会が統一フォーマットを作ったって事だと思います。
と前置きはこのぐらいにして、いよいよ信号についてです。
・信号はPPMである。PPMってのは信号変調方式の一つで、(Pulse Position Modulation)と言う事で、日本語にすると「パルス位置変調」方式となります。
PPMを図にすると左のようになり、パルス幅と同じ時間の無信号時間の場合、「0」パルス幅の3倍の無信号時間の場合「1」と判断すると言うお約束です。
でこのパルス幅は、家電製品協会フォーマット場合、0.35ms〜0.5msとなっている。
って事は、この逆数が周波数となりキャリア周波数は33k〜40kHzって事です
キャリア周波数は33k〜40kHzです。
で、これは基本の基本、次は家電製品協会フォーマットってのは何?
***注意***
パルス幅とキャリア周波数はそれぞれが計算できるような関係はありません。
家電製品協会フォーマットは、
1)「リーダー部」通信の始まりを示す部分
2)「カスタム・コード部」2 Byte(メーカー名、商品名などを表し家電製品協会にて管理されるコード
3)「パリティ部」4 bit パリティチェック用
4)「データ・コード部」4 bit
5)「データ部」任意 Byte
6)「トレイラ部」つまり、通信の終わりを示す部分
から構成される。
上の2)から5)のデータ部分が48bitではこんな感じらしい
1Byte2Byte3Byte4Byte 5Byte6Byte
メーカーコードメーカーコード メーカーコードパリティシステムコード 機器コードコマンドデータコマンドデータパリティ
1)「リーダー部」通信の始まりを示す部分
信号部8T、無信号部4Tとなる。このブロックを受信したら、信号開始だと判断するわけですね。
6)「トレイラ部」通信の終わりを示す部分
信号部T、無信号部8ms以上となる。このブロックを受信したら、信号終了だと判断するわけですね。
実際に東芝製リモコンSE-R0083(DVDレコーダのチャンネルUP/DOWNの信号)を測定してみました。先頭のリーダー部が12〜14ms程あるようです。(ちとピンボケですね)
更に詳細です。若干Low期間が長いような気がするんですけど・・・オシロの性能の問題かな(笑)
こちらはシャープ製リモコンG0898SAの音量UPの信号です。はじめこちらで測定したのですが、リーダー部が無い事に気づきました。多分、10年以上前の機種なので、家製協のフォーマットではないのでしょう。
ただ、こちらは信号全体で20ms程度ですから、上の東芝の信号がおよそ80ms程度の信号に比べて短時間で信号が送れる点はメリットがあったのかもしれません。
さてここからはおまけ、505APIの使い方、でもまだ実際に動かしてないので間違ってるかも(^^ゞ
通信上の設定項目は
1)キャリア周波数、(setCarrier)家製協フォーマットでは33k〜40kHz
  setCarrierの引数はなぜかHi期間とLo期間を与えるようになっています。
  一般論では周波数の逆数が周期となります。ここで周期と言うのはHi期間とLo期間の全周期になりますので、Hi期間とLo 期間を加えた物が周期となります。だからfreqを周波数とするとsetCarrier( (10000/freq)/2 , (10000/freq)/2 );デューティ50%ならこうなります。
2)制御信号上の論理値0波形の設定(setCode0)つまり、PPMのHigh区間とLow区間の長さ
  家製協フォーマットではHigh1,Low1
3)制御信号上の論理値1波形の設定(setCode1)つまり、PPMのHigh区間とLow区間の長さ
  家製協フォーマットではHigh1,Low3
4)スタート部の形式(setStaertHighDuration,setStaertLowDuration)
スタート部のHigh区間、Low区間の長さの設定
家製協フォーマットではHigh8、Low4
5)ストップ部の形式(setStopHighDuration)ストップ部のHigh区間の長さの設定
  家製協フォーマットではHigh1,Low期間8ms以上
6)ビットデータの値(setFrameData),byte配列またはlong値の形で最大48bitを設定できる。
  家製協フォーマットの場合はこれで、カスタムコード部、パリティ部、データコード部、データ部を設定するわけだね
7)データフレームの送信間隔(setFrameDuration)の設定
8)データフレームの繰り返しし送信回数(setrepeatCount)の設定

しかし、こうみると、家製協フォーマットだけに対応しているわけではないようですね。
やっぱり、輸出を見て海外フォーマットにも対応しようとしてるのかな〜?

Last update: 2006/04/05
変更履歴
2006/04/05 t_sさんのご指摘により、パルス幅とキャリア周波数の関係の誤記を訂正。ついでに通信上の設定項目のキャリア周波数についての説明を追記