しかしながら、上記従来技術は次のような問題点を有している。すなわち、特開平4-302525号公報の方法では、問題となる時間短縮は行えるものの、遅延時間が0とはならので、根本的な解決とならない。この方法によれば、多段階の中継では誤差が蓄積されていき、問題が生じるおそれがある。
また、特開2001-145184号公報の方法を用いた場合では、問題となる上記部分の短縮化はあきらめる代わりに、開始時間をその問題となる時間と同じ時間だけ遅らせることによって“H”レベルの期間をリモコンの送信側が意図した時間と同じようになる工夫をしている。
しかしながら、この方法では、開始時間の遅れ調整を行うために、コンデンサ、抵抗、及び基準電圧という3つの値を調整することが必要である。しかも、このような調整は、アナログ的な手法のため、デジタル化された製品には親和性が高くなく、部品点数の増加も懸念される。
また、リモコン信号の解読は、一般に、CPUもしくは専用ICを用いて行なわれる。これらのデバイスはデジタルICであり、これらのデバイスに内蔵する機能としてコンデンサや抵抗は不向きであるので、製造コストも高くなる。
加えて、半導体に内蔵した場合には、特性が一定せず、しかも調整が困難で、赤外線を受信して電気信号に変換する光電変換素子の多様化されている現在、それぞれに応じた対応は困難を伴う。
本発明は、上記問題点に鑑みなされたものであり、その目的は、本来の波形をできる限り再現し、簡易な方法で多段の伝送にも耐え得る赤外線受光ユニットを構成できるリモコン信号受信回路、リモコン信号受信方法、リモコン信号受信プログラム、及びそれを記録したコンピュータ読み取り可能な記録媒体を提供することにある。
本発明のリモコン信号受信回路は、上記課題を解決するために、入力データ信号を、該入力データ信号の周波数より高い第1のサンプリング周波数でサンプリングして量子化した結果を記憶手段に格納する第1のサンプリング手段と、上記の記憶手段に格納された量子化した結果に基づいて、この量子化した結果を補正し、量子化データとして出力する補正手段とを備えている。
前記補正手段は、前記量子化した結果がローレベルの場合、ローレベルを前記量子化データとして出力すると共に、前記量子化した結果がハイレベルの場合、その後ハイレベルからローレベルへの変化を検出すると、この検出直前の前記第1のサンプリング手段による所定のサンプリング回数分に対応する上記量子化した結果をローレベルに補正し、これらを前記量子化データとして出力することが好ましい。
本発明の他のリモコン信号受信回路は、上記課題を解決するために、複数のフリップフロップがカスケードに接続され、第1のサンプリング周波数を有するクロック信号に基づいて入力データ信号を、該入力データ信号の周波数より高い第1のサンプリング周波数でサンプリングし、最終段のフリップフロップの出力信号を量子化データとして出力するサンプリング回路と、初段のフリップフロップの出力信号を反転したもの、及び2段目以降のフリップフロップの各出力信号に対して論理積演算を行い、初段のフリップフロップがローレベルを出力すると共に2段目以降のフリップフロップがハイレベルを出力したときに上記の各フリップフロップをリセットする論理積演算回路とを備えている。
本発明の更に他のリモコン信号受信回路は、上記課題を解決するために、入力データ信号を、該入力データ信号の周波数より高い第1のサンプリング周波数でサンプリングし、量子化した結果を量子化データとして出力する第1のサンプリング手段と、上記の量子化データがローレベルからハイレベルに変化したことを検出すると、この検出直後の上記の第1のサンプリング手段による所定のサンプリング回数分だけ上記の量子化データをローレベルに補正して出力する補正手段とを備えている。
前記補正手段は、前記量子化データがローレベルからハイレベルに変化するとカウント動作を開始し、カウント中はハイレベルを出力すると共にカウント終了時にローレベルを出力するプリセット可能なカウンタと、前記量子化データ及びローレベルを入力し、上記カウンタのカウント中はローレベルを出力すると共に、それ以外は前記量子化データを出力するマルチプレクサと、上記カウンタの出力信号、及び前記量子化データを入力して論理積演算を行い、上記カウンタがカウント動作を終了すると共に前記量子化データがハイレベルからローレベルに変化したときに上記カウンタをリセットする論理積演算回路とを備えていることが好ましい。
上記リモコン信号受信回路において、前記第1のサンプリング周波数を設定する第1サンプリング周波数設定手段を更に備えていることが好ましい。
上記リモコン信号受信回路において、前記補正手段による補正量を設定する補正量設定手段を更に備えていることが好ましい。
上記リモコン信号受信回路において、前記入力信号データの周波数より高く、第1のサンプリング周波数より低い第2のサンプリング周波数で前記補正手段から出力される量子化データを更にサンプリングし、これを量子化データとして出力する第2のサンプリング手段を更に備えていることが好ましい。
上記リモコン信号受信回路において、前記第2のサンプリング周波数を設定する第2サンプリング周波数設定手段を備えていることが好ましい。
上記リモコン信号受信回路において、システムクロックを分周して前記第1のサンプリング周波数を生成するサンプリング周波数生成手段を更に備えていることが好ましい。
上記リモコン信号受信回路において、前記第2のサンプリング周波数は、前記第1のサンプリング周波数の整数分の1であることが好ましい。
本発明のリモコン信号受信方法は、上記の課題を解決するために、入力データ信号を、該入力データ信号の周波数より高い第1のサンプリング周波数でサンプリングして量子化した結果を格納する第1のサンプリング工程と、上記の格納された量子化した結果に基づいて、この量子化した結果を補正し、量子化データとして出力する補正工程とを備えている。
前記補正工程は、前記量子化した結果がローレベルの場合、ローレベルを前記量子化データとして出力すると共に、前記量子化した結果がハイレベルの場合、その後ハイレベルからローレベルへの変化を検出すると、この検出直前の前記第1サンプリング工程による所定のサンプリング回数分に対応する上記量子化した結果をローレベルに補正し、これらを前記量子化データとして出力することが好ましい。
本発明の他のリモコン信号受信方法は、上記の課題を解決するために、複数のフリップフロップをカスケードに接続し、第1のサンプリング周波数を有するクロック信号に基づいて入力データ信号を、該入力データ信号の周波数より高い第1のサンプリング周波数でサンプリングし、最終段のフリップフロップの出力信号を量子化データとして出力するサンプリング工程と、初段のフリップフロップの出力信号を反転したもの、及び2段目以降のフリップフロップの各出力信号に対して論理積演算を行い、初段のフリップフロップがローレベルを出力すると共に2段目以降のフリップフロップがハイレベルを出力したときに上記の各フリップフロップをリセットする論理積演算工程とを備えている。
本発明の更に他のリモコン信号受信方法は、上記の課題を解決するために、入力データ信号を、該入力データ信号の周波数より高い第1のサンプリング周波数でサンプリングし、量子化した結果を量子化データとして出力する第1のサンプリング工程と、上記の量子化データがローレベルからハイレベルに変化したことを検出すると、この検出直後の上記の第1のサンプリング工程による所定のサンプリング回数分だけ上記の量子化データをローレベルに補正して出力する補正工程とを備えている。
前記補正工程は、前記量子化データがローレベルからハイレベルに変化するとカウント動作を開始し、カウント中はハイレベルを出力すると共にカウント終了時にローレベルを出力するプリセット可能なカウント工程と、前記量子化データ及びローレベルを入力し、上記カウント中はローレベルを出力すると共に、それ以外は前記量子化データを出力するマルチプレクシング工程と、上記カウント結果、及び前記量子化データを入力して論理積演算を行い、上記カウント動作を終了すると共に前記量子化データがハイレベルからローレベルに変化したときに上記カウント動作をリセットする論理積演算工程とを備えていることが好ましい。
上記のリモコン信号受信方法は、前記第1のサンプリング周波数が設定可能であることが好ましい。
上記のリモコン信号受信方法は、前記補正工程による補正量が設定可能であることが好ましい。
上記のリモコン信号受信方法において、前記入力信号データの周波数より高く、第1のサンプリング周波数より低い第2のサンプリング周波数で前記補正工程において出力される量子化データを更にサンプリングし、これを量子化データとして出力する第2のサンプリング工程を更に備えていることが好ましい。
上記のリモコン信号受信方法において、前記第2のサンプリング周波数が設定可能であることが好ましい。
上記のリモコン信号受信方法において、システムクロックを分周して前記第1のサンプリング周波数を生成することが好ましい。
上記のリモコン信号受信方法において、前記第2のサンプリング周波数は、前記第1のサンプリング周波数の整数分の1であることが好ましい。
本発明のリモコン信号受信プログラムは、上記の課題を解決するために、前記のいずれかに記載のリモコン信号受信回路を動作させるプログラムであって、コンピュータを上記の各手段または各回路として機能させるものである。
本発明のコンピュータ読み取り可能な記録媒体は、上記の課題を解決するために、上記のリモコン信号受信プログラムを記録したものである。
本発明に係るリモコン信号受信回路は、以上のように、第1のサンプリング手段と、記憶手段に格納された量子化した結果に基づいて、この量子化した結果を補正し、量子化データとして出力する補正手段とを備えている。
上記の発明によれば、入力データ信号を受けると、第1のサンプリング手段は、第1のサンプリング周波数で入力データ信号をサンプリングして量子化する。この量子化された結果は記憶手段に格納される。補正手段は、記憶手段内の量子化された結果に基づいて、量子化された結果に対して補正を行い、量子化データとして出力する。
このように、記憶手段内の量子化された結果に基づいて、量子化された結果に対する補正が行われるので、この補正処理はデジタル処理となる。
したがって、補正をアナログ処理で行う従来の場合に必要な複数の煩雑な調整が不要となると共に、デジタル化された製品には親和性が高く、部品点数の増加も回避できる。加えて、一般にリモコン信号の解読はCPUもしくは専用ICを用いて行なわれるが、これらのデバイスはデジタルICであるので、上記発明のデジタル処理結果をそのまま用いることができ、しかもアナログ処理する場合と比較して製造コストを低く抑えることが可能となる。さらに、半導体に内蔵した場合に特性が一定し、調整も容易であり、赤外線を受信して電気信号に変換する光電変換素子が多様化されている現在、それぞれに応じて適切な対応が可能となる。
それゆえ、赤外線受信信号が素子の特性によって正しく送信側のデータを伝えられないときでも、それを正しく補正し後段のデコーダに送信側が本来意図したデータにより近いデータに変換して受渡すことができると共に、離れた場所にあって本来赤外線リモコンでは直接操作できないような装置に対して、リモコン信号を中継するような装置にも応用可能で、その場合には受信信号の誤差の蓄積が生じることを確実に回避できるという効果を併せて奏する。
前記補正手段は、前記量子化した結果がローレベルの場合、ローレベルを前記量子化データとして出力すると共に、前記量子化した結果がハイレベルの場合、その後ハイレベルからローレベルへの変化を検出すると、この検出直前の前記第1のサンプリング手段による所定のサンプリング回数分に対応する上記量子化した結果をローレベルに補正し、これらを前記量子化データとして出力することが好ましい。
この場合、補正手段は、記憶手段に格納されている量子化した結果がローレベルの場合には、補正をすることなく、そのままローレベルを量子化データとして出力する。これに対して、記憶手段に格納されている量子化した結果がハイレベルの場合、その後、該量子化した結果がハイレベルからローレベルへ変化したことを検出すると、補正手段は、この検出直前の前記第1のサンプリング手段による所定のサンプリング回数分に対応する上記量子化した結果をハイレベルからローレベルに補正し、これらを前記量子化データとして出力する。このように簡単な構成で、デジタル補正処理が可能となる。
上記リモコン信号受信回路は、サンプリング回路と、初段のフリップフロップの出力信号を反転したもの、及び2段目以降のフリップフロップの各出力信号に対して論理積演算を行い、初段のフリップフロップがローレベルを出力すると共に2段目以降のフリップフロップがハイレベルを出力したときに上記の各フリップフロップをリセットする論理積演算回路とを備えた構成が好ましい。
この場合、各フリップフロップは記憶手段の機能を果たすと共に、クロック信号に同期して入力データ信号を第1のサンプリング周波数でサンプリングを行い、最終段のフリップフロップから量子化データが出力される。論理積演算回路により各フリップフロップがリセットされるので、入力データ信号がローレベルになったとき、それより以前の量子化データにおいて、フリップフロップの段数より1だけ少ないサンプリング回数分だけハイレベルからローレベルに補正される。このように、非常に簡単な回路構成で上述と同様の効果を奏する。
本発明に係る他のリモコン信号受信回路は、以上のように、第1のサンプリング手段と、上記の量子化データがローレベルからハイレベルに変化したことを検出すると、この検出直後の上記の第1のサンプリング手段による所定のサンプリング回数分だけ上記の量子化データをローレベルに補正して出力する補正手段とを備えている。
上記の発明によれば、第1のサンプリング手段によって、入力データ信号が第1のサンプリング周波数でサンプリングされて量子化され、量子化データとして出力される。量子化データがローレベルからハイレベルに変化したことを検出すると、補正手段は、この検出直後の上記の第1のサンプリング手段による所定のサンプリング回数分だけ上記の量子化データをローレベルに補正して出力する。
このように、量子化データに対する補正が行われるので、この補正処理はデジタル処理となる。したがって、補正をアナログ処理で行う従来の場合に必要な複数の煩雑な調整が不要となると共に、デジタル化された製品には親和性が高く、部品点数の増加も回避できる。加えて、一般にリモコン信号の解読はCPUもしくは専用ICを用いて行なわれるが、これらのデバイスはデジタルICであるので、上記発明のデジタル処理結果をそのまま用いることができ、しかもアナログ処理する場合と比較して製造コストを低く抑えることが可能となる。さらに、半導体に内蔵した場合に特性が一定し、調整も容易であり、赤外線を受信して電気信号に変換する光電変換素子が多様化されている現在、それぞれに応じて適切な対応が可能となる。
それゆえ、赤外線受信信号が素子の特性によって正しく送信側のデータを伝えられないときでも、それを正しく補正し後段のデコーダに送信側が本来意図したデータにより近いデータに変換して受渡すことができると共に、離れた場所にあって本来赤外線リモコンでは直接操作できないような装置に対して、リモコン信号を中継するような装置にも応用可能で、その場合には受信信号の誤差の蓄積の発生を確実に回避できる。
しかも、補正すべき量に関係なく、量子化データを格納する記憶手段が不要であるので、構成の簡素化を図ることが可能となるという効果を併せて奏する。
上記補正手段は、プリセット可能なカウンタと、マルチプレクサと、論理積演算回路とを備えていることが好ましい。
この場合、量子化データがローレベルからハイレベルに変化したことを検出すると、カウンタはカウント動作を開始し、プリセット値になるまでローレベルがマルチプレクサから出力されて、量子化データがローレベルに補正される。プリセット値までカウントし、且つ量子化データがハイレベルからローレベルに変化すると、論理積演算回路によってカウンタはリセットされる。このように、カウンタを設けることによって、補正すべき量に関係なく、量子化データを格納するための記憶手段を設けることが不要となり、その分、構成を大幅且つ確実に簡素化できる。
上記リモコン信号受信回路は、前記第1のサンプリング周波数を設定する第1サンプリング周波数設定手段を更に備えていることが好ましい。この場合、第1のサンプリング周波数を外部からも設定できると共に、入力データ信号供給側の回路仕様が変更された場合にも柔軟に対応できるというという効果を併せて奏する。
上記リモコン信号受信回路は、前記補正手段による補正量を設定する補正量設定手段を更に備えていることが好ましい。この場合、補正量を外部からも設定できると共に、入力データ信号供給側の回路仕様が変更された場合にも柔軟に対応できるというという効果を併せて奏する。
上記リモコン信号受信回路は、前記入力信号データの周波数より高く、第1のサンプリング周波数より低い第2のサンプリング周波数で前記補正手段から出力される量子化データを更にサンプリングし、これを量子化データとして出力する第2のサンプリング手段を更に備えていることが好ましい。
上記の量子化データは、第1のサンプリング周波数が高くなるほどデータ量が多くなるので、リモコンパススルー機能などを利用するために信号を中継する場合等には不具合が生じる場合がある。そこで、上記のように、第2のサンプリング手段を更に設けることによって、単に補正後のデータを伝送する場合に比べて、第2のサンプリングの分だけデータ量を確実に削減でき、上記のような不具合を確実に克服できるという効果を併せて奏する。
上記リモコン信号受信回路は、前記第2のサンプリング周波数を設定する第2サンプリング周波数設定手段を備えていることが好ましい。この場合、第2のサンプリング周波数を外部からも設定できると共に、入力データ信号供給側の回路仕様が変更された場合にも柔軟に対応できるというという効果を併せて奏する。
上記リモコン信号受信回路は、システムクロックを分周して前記第1のサンプリング周波数を生成するサンプリング周波数生成手段を更に備えていることが好ましい。この場合、既存のシステムクロックを分周することによって第1のサンプリング周波数が生成されるので、基準クロック信号を生成する回路を別途設けることが不要となるという効果を併せて奏する。
前記第2のサンプリング周波数は、前記第1のサンプリング周波数の整数分の1であることが好ましい。この場合、第1のサンプリング周波数を利用して第2のサンプリング周波数を生成することが可能となる。これにより、第2のサンプリング周波数生成のために基準クロック信号を生成する回路を別途設けることが不要となるという効果を併せて奏する。
本発明に係るリモコン信号受信方法は、以上のように、第1のサンプリング工程と、上記の格納された量子化した結果に基づいて、この量子化した結果を補正し、量子化データとして出力する補正工程とを備えている。
上記の発明によれば、入力データ信号を受けると、第1のサンプリング工程において、第1のサンプリング周波数で入力データ信号がサンプリングされて量子化される。この量子化された結果は格納される。補正工程においては、格納済みの量子化された結果に基づいて、量子化された結果に対して補正が行われ、量子化データとして出力される。
このように、格納済みの量子化された結果に基づいて、量子化された結果に対する補正が行われるので、この補正工程においてはデジタル処理が行われることになる。
したがって、補正をアナログ処理で行う従来の場合に必要な複数の煩雑な調整が不要となると共に、デジタル化された製品には親和性が高く、部品点数の増加も回避できる。加えて、一般にリモコン信号の解読はCPUもしくは専用ICを用いて行なわれるが、これらのデバイスはデジタルICであるので、上記発明のデジタル処理結果をそのまま用いることができ、しかもアナログ処理する場合と比較して製造コストを低く抑えることが可能となる。さらに、半導体に内蔵した場合に特性が一定し、調整も容易であり、赤外線を受信して電気信号に変換する光電変換素子が多様化されている現在、それぞれに応じて適切な対応が可能となる。
それゆえ、赤外線受信信号が素子の特性によって正しく送信側のデータを伝えられないときでも、それを正しく補正し後段のデコーダに送信側が本来意図したデータにより近いデータに変換して受渡すことができると共に、離れた場所にあって本来赤外線リモコンでは直接操作できないような装置に対して、リモコン信号を中継するような装置にも応用可能で、その場合には受信信号の誤差の蓄積が生じることを確実に回避できるという効果を併せて奏する。
前記補正工程は、前記量子化した結果がローレベルの場合、ローレベルを前記量子化データとして出力すると共に、前記量子化した結果がハイレベルの場合、その後ハイレベルからローレベルへの変化を検出すると、この検出直前の前記第1サンプリング工程による所定のサンプリング回数分に対応する上記量子化した結果をローレベルに補正し、これらを前記量子化データとして出力することが好ましい。
この場合、補正工程においては、格納済みの量子化した結果がローレベルの場合には、補正をすることなく、そのままローレベルを量子化データとして出力する。これに対して、格納済みの量子化した結果がハイレベルの場合、その後、該量子化した結果がハイレベルからローレベルへ変化したことを検出すると、この検出直前の前記第1のサンプリング工程において行われる所定のサンプリング回数分に対応する上記量子化した結果をハイレベルからローレベルに補正し、これらを前記量子化データとして出力する。このように簡単な工程で、デジタル補正処理が可能となる。
上記リモコン信号受信回路は、サンプリング工程と、初段のフリップフロップの出力信号を反転したもの、及び2段目以降のフリップフロップの各出力信号に対して論理積演算を行い、初段のフリップフロップがローレベルを出力すると共に2段目以降のフリップフロップがハイレベルを出力したときに上記の各フリップフロップをリセットする論理積演算工程とを備えた構成が好ましい。
この場合、各フリップフロップはクロック信号に同期して入力データ信号を第1のサンプリング周波数でサンプリングを行い、最終段のフリップフロップから量子化データが出力される。論理積演算工程において各フリップフロップがリセットされるので、入力データ信号がローレベルになったとき、それより以前の量子化データにおいて、フリップフロップの段数より1だけ少ないサンプリング回数分だけハイレベルからローレベルに補正される。このように、非常に簡単に上述と同様の効果を奏することが可能となる。
本発明に係る他のリモコン信号受信方法は、以上のように、第1のサンプリング工程と、上記の量子化データがローレベルからハイレベルに変化したことを検出すると、この検出直後の上記の第1のサンプリング工程による所定のサンプリング回数分だけ上記の量子化データをローレベルに補正して出力する補正工程とを備えている。
上記の発明によれば、第1のサンプリング工程において、入力データ信号が第1のサンプリング周波数でサンプリングされて量子化され、量子化データとして出力される。量子化データがローレベルからハイレベルに変化したことを検出すると、補正工程において、この検出直後の上記の第1のサンプリング手段による所定のサンプリング回数分だけ上記の量子化データがローレベルに補正されて出力される。
このように、量子化データに対する補正が行われるので、この補正処理はデジタル処理となる。したがって、補正をアナログ処理で行う従来の場合に必要な複数の煩雑な調整が不要となると共に、デジタル化された製品には親和性が高く、部品点数の増加も回避できる。加えて、一般にリモコン信号の解読はCPUもしくは専用ICを用いて行なわれるが、これらのデバイスはデジタルICであるので、上記発明のデジタル処理結果をそのまま用いることができ、しかもアナログ処理する場合と比較して製造コストを低く抑えることが可能となる。さらに、半導体に内蔵した場合に特性が一定し、調整も容易であり、赤外線を受信して電気信号に変換する光電変換素子が多様化されている現在、それぞれに応じて適切な対応が可能となる。
それゆえ、赤外線受信信号が素子の特性によって正しく送信側のデータを伝えられないときでも、それを正しく補正し後段のデコーダに送信側が本来意図したデータにより近いデータに変換して受渡すことができると共に、離れた場所にあって本来赤外線リモコンでは直接操作できないような装置に対して、リモコン信号を中継するような装置にも応用可能で、その場合には受信信号の誤差の蓄積の発生を確実に回避できる。
しかも、補正すべき量に関係なく、量子化データを格納する工程が不要であるので、工程の簡素化を図ることが可能となるという効果を併せて奏する。
上記補正工程は、プリセット可能なカウント工程と、前記量子化データ及びローレベルを入力し、上記カウント中はローレベルを出力すると共に、それ以外は前記量子化データを出力するマルチプレクシング工程と、上記カウント結果、及び前記量子化データを入力して論理積演算を行い、上記カウント動作をリセットする論理積演算工程とを備えていることが好ましい。
この場合、量子化データがローレベルからハイレベルに変化したことを検出すると、カウント動作が開始され、プリセット値になるまでローレベルがマルチプレクシング工程において出力されて、量子化データがローレベルに補正される。プリセット値までカウントすると、論理積演算工程においてカウント動作はリセットされる。このように、カウント工程を設けることによって、補正すべき量に関係なく、量子化データを格納する工程を設けることが不要となり、その分、工程を大幅且つ確実に簡素化できるという効果を併せて奏する。
上記リモコン信号受信方法は、前記第1のサンプリング周波数が設定可能であることが好ましい。この場合、第1のサンプリング周波数を外部からも設定できると共に、入力データ信号供給側の回路仕様が変更された場合にも柔軟に対応できるというという効果を併せて奏する。
上記リモコン信号受信方法は、前記補正工程において補正量が設定可能であることが好ましい。この場合、補正量を外部からも設定できると共に、入力データ信号供給側の回路仕様が変更された場合にも柔軟に対応できるというという効果を併せて奏する。
上記リモコン信号受信方法は、前記入力信号データの周波数より高く、第1のサンプリング周波数より低い第2のサンプリング周波数で前記補正工程において出力される量子化データを更にサンプリングし、これを量子化データとして出力する第2のサンプリング工程を更に備えたことが好ましい。
上記の量子化データは、第1のサンプリング周波数が高くなるほどデータ量が多くなるので、リモコンパススルー機能などを利用するために信号を中継する場合等には不具合が生じる場合がある。そこで、上記のように、第2のサンプリング工程を更に設けることによって、単に補正後のデータを伝送する場合に比べて、第2のサンプリングの分だけデータ量を確実に削減でき、上記のような不具合を確実に克服できるという効果を併せて奏する。
上記リモコン信号受信方法は、前記第2のサンプリング周波数が設定可能であることが好ましい。この場合、第2のサンプリング周波数を外部からも設定できると共に、入力データ信号供給側の回路仕様が変更された場合にも柔軟に対応できるというという効果を併せて奏する。
上記リモコン信号受信方法は、システムクロックを分周して前記第1のサンプリング周波数を生成することが好ましい。この場合、既存のシステムクロックを分周することによって第1のサンプリング周波数が生成されるので、基準クロック信号を生成する工程を別途設けることが不要となるという効果を併せて奏する。
前記第2のサンプリング周波数は、前記第1のサンプリング周波数の整数分の1であることが好ましい。この場合、第1のサンプリング周波数を利用して第2のサンプリング周波数を生成することが可能となる。これにより、第2のサンプリング周波数生成のために基準クロック信号を生成する工程を別途設けることが不要となるという効果を併せて奏する。
本発明のリモコン信号受信プログラムは、以上のように、上記のいずれか一つのリモコン信号受信回路を動作させるプログラムであって、コンピュータを上記の各手段または各回路として機能させるものである。
上記のプログラムによれば、コンピュータで上記リモコン信号受信回路の各手段または各回路を実現することによって、上記リモコン信号受信回路を実現することができる。
本発明の記録媒体は、以上のように、上記リモコン信号受信プログラムを記録したコンピュータ読み取り可能な記録媒体である。
上記の構成によれば、上記記録媒体から読み出されたリモコン信号受信プログラムによって、上記リモコン信号受信回路をコンピュータ上に実現することができる。
本発明の一実施の形態について以下で詳細に説明する。
図1に従来のリモコン信号受信方法を用いた場合の主要部の波形の一部を示し、またその説明も前述したとおりであるが、その波形と本発明を適用した場合に得られる波形とを対照させると、本発明の特徴が明らかになるので、この図を参照しながら以下に説明する。
参照符号100は、リモコン送信機が送出した赤外線パルスの波形であり、一般的には38kHz程度(通常38kHz〜40kHz程度)の周波数のキャリアが利用されている。これをコンデンサによる平滑回路(図示しない)を利用して平準化すると、参照符号101で示す波形が得られる。
上記の平滑回路の出力電圧(参照符号101で示す波形)において、上記赤外線パルスの谷に対応する部分で徐々に出力の電圧降下を起こしているが、参照符号103で示される閾値(一定電圧)以下になる前に次のパルスが来るように上記閾値が設定される。赤外線パルスが停止すると、ある時定数でコンデンサが放電するため、すぐに“L”レベル(ローレベル)には落ちてしまわない。
参照符号102は、参照符号103で示される上記の閾値との大小比較に基づいて、平滑回路の出力電圧を二値化した波形を表している。前述したように、上記コンデンサの特性により出力電圧が上記の閾値以下になるには、参照符号104で示される一定の時間が必要なため、赤外線パルスの波形(参照符号100の波形)と比較して、参照符号104で示される時間だけ“H”レベル(ハイレベル)にすべき時間が伸びている(参照符号104は誤差に対応する。)ことを表わしている。
さて、参照符号104で表わされる誤差の部分については、赤外線パルスの受光素子の機種選択によってさまざまな特性がある。受光素子は多くのメーカーによってさまざまな特性のものが製造されており、この誤差が一概にどの程度であるかを特定することはできない。
しかしながら、同一機種においては、受光素子の特性はほぼ同じであり、また併せて用いられる平滑回路に使用されるコンデンサの特性も設計者が併せて決めることができる。このため、赤外線リモコンの受信部分を備えるテレビやビデオなどの同一製品機種については、機種ごとに上記誤差はほぼ同じ程度にすることが可能である。
ここで、本発明に係るリモコン信号受信回路について説明する。まず、図1における参照符号105は、参照符号102で示される波形を有する信号(平滑回路の出力電圧を二値化したもの)を別途設定されたサンプリング周波数1で量子化(第1のサンプリング)したものを表し、量子化した結果がハイレベルの場合には“H”の文字で、またはローレベルの場合には“L”の文字でそれぞれ表記されている。
なお、上記のサンプリング周波数1の周期(説明の便宜上、以下、サンプリング周期(1)と称す。)は、参照符号105における“H”または“L”の文字幅とする。このサンプリング周期(1)は、もとの信号(入力データ信号)の周期や参照符号104で示される誤差を考慮して決定する必要がある。
例えば、もとの信号の周期が非常に長い、つまりデータレートが低速の場合には、参照符号102においてハイレベルで示される1つの“H”レベルの期間全体のうち、参照符号104で示される誤差部分の割合は小さくなる。このときには、多少の誤差はデータレートの遅さのために無視できるようになる。また、無視できない場合でも、厳密な測定が不要であるため、サンプリング周期は粗いものでよい。
これに対して、もとの信号の周期が非常に短い、つまりデータレートが高速の場合、情報と誤差の割合が近く、誤認識を起こしやすいため、より厳密に誤差を取り除くことが必要となる。サンプリング周期がこの誤差よりも十分に小さくないと、この誤差の測定および補正が正しく行えない。
たとえば、1ビットの“H”(ハイレベル)を伝送する際、“H”の期間が1000msの場合、参照符号104で表される誤差の部分を仮に100msとすると、10パーセントだけ“H”期間が延長されるが、これは厳密には取り除く必要はない。
これに対して、“H”の期間が200msの場合、参照符号104で表される誤差の部分を同じく100msとすると、“H”の期間を含めて300msとなる。この場合、1ビット時間であるのか、又は2ビット時間であるのかを厳密に判定しないと、もとの信号に正確にデコードできなくなる。
また、上記誤差の部分である100msを10ms単位で10個とするのか、あるいは50ms単位で2個とするのかは、この誤差の部分自体の大きさにも依存するが、上述のように情報自体のデータ伝送時間にも依存する。高速であればあるほど厳密に誤差の測定は可能であるが、場合によってはオーバースペックとなり、高速なCPUや回路が必要となってしまう。このため、適宜、実験によって適切なサンプリング周期を決定することが好ましい。
また、あらかじめ、参照符号104で示される誤差の部分が、サンプリング周期(1)で量子化された信号に基づいてどの程度の回数かを計測しておく。この方法として、受光素子の特性等から計算で求めたり実験したりする方法があるが、例えば実験する場合であれば、既知のリモコン波形を送信し、平準化しデジタル化された参照符号102で示される信号を得る。これと送信に用いた既知の波形とを比較し、容易に参照符号104で示される誤差の量を得ることが可能である。それをサンプリング周期(1)で割れば、この誤差をいくら分修正すればよいかがわかる。
図1で示す例の場合では、参照符号104でしめされる誤差が、このサンプリング周期(1)×11に相当する時間であることが実験によってわかっているものと仮定し、以下に説明する。
上記誤差がサンプリング周期(1)を基準として11回分であるということ(“H”レベルから“L”レベルへの補正を11回行うこと)を補正量設定部(図3の参照符号304を参照)に設定する。このように、補正量を実行前に外部から設定可能な回路であってもよいし、あるいは特性が既知のものであれば、あらかじめ設定された値に基づく動作を行うものであってもよい。なお、補正量設定部を設ける場合、入力データ信号の供給側の回路仕様が変更された場合にも柔軟に対応できる。
上記の補正量設定部からの補正量に基づいて、補正部(図3の参照符号303を参照)は、サンプリング周期(1)で量子化された信号が“H”レベルから“L”レベルへ変化したことを検出すると、ここで示す例では、上記量子化されたデータにおいて上記変化の検出の直前の11個分の“H”レベルを“L”レベルに補正(変更)する。
上記補正の結果が、図1において参照符号106で示される。参照符号106で示される信号は、サンプリング周期(1)の精度に依存するものの、もとのリモコン送信機が伝送しようとした信号にほぼ近いものとなる。明らかなように、このサンプリング周期(1)が短ければ短いほど、参照符号104で示される誤差の部分の推定が正確になり、リモコン送信機が意図した波形により近いものになる。
なお、上記のサンプリング周波数1は、サンプリング周波数生成手段によってシステムクロックを分周して生成されることが好ましい。この場合、既存のシステムクロックを分周することによってサンプリング周波数1が生成されるので、基準クロック信号を生成する回路等を別途設けることが不要となる。
また、サンプリング周波数1の値は、特性に応じて固定でもよいし、可変にしておき(図3の第1周期設定部302参照)、外部から設定することも可能である。この場合、入力データ信号の供給側の回路仕様が変更された場合にも柔軟に対応できる。
補正後の量子化データをそのままのデータ量で送出することも可能であるが、この場合、サンプリング周波数1が高くなれば高くなるほどデータ量が多くなり、要する記憶容量が増大してしまう。したがって、例えば、前述したリモコンパススルー機能などを利用するために信号を中継する等の場合に、補正後の量子化データをそのままのデータ量で送出することは好ましくない。
そこで、リモコンパススルー機能などを利用するために信号を中継する等の場合には、補正後の量子化データをサンプリング周波数2で更にサンプリングして(第2のサンプリング)量子化を行うことを導入することが好ましい。サンプリング周波数2の値は、特性に応じて固定でもよいし、可変にしておき(図3の第2周期設定部306参照)、外部から設定することも可能である。この場合、入力データ信号の供給側の回路仕様が変更された場合にも柔軟に対応できる。
さて、このサンプリング周波数2の決定方法であるが、以下のような基準で考える必要がある。まず、データ量を削減するためにサンプリング周波数1より低いこと。次にもとの信号(入力データ信号)の周波数よりも高いこと。元の信号の周波数をできるだけ正しく伝えようとすることと、データ量を削減することはトレードオフの関係になるため、十分に検討し、元の信号を正しく伝えることができるような周波数とすることが望ましい。
つまり、サンプリング周波数2の決定は、もとの信号(リモコン信号データ)の伝送レートから大きく影響を受けると共に、この第2サンプリングを行った後のデータ量をどの程度にしたいかに依存する。
第1サンプリングと補正の結果、非常に厳密にもとの波形とほぼ同じもの(参照符号305の第2サンプリング回路に対する入力)が第2サンプリング前に得られたとし、第2サンプリング後のデータをなんらかの通信路を通してリモコン信号再生側に送出したいとする(たとえば、従来技術としてあげているリモコンパススルー機能)。
このとき、この通信路の帯域以上のデータにしてしまうと、データの伝送は不可能になるので、実際問題としてリモコン信号を正しく再生できなくなる。かといって、あまりにデータ量が少なすぎる、つまり粒度が粗いとデータ伝送の意味がなくなる。標本化定理を考慮すると、これより粗いと、もとのデータが落ちてしまう可能性があるので、ここが上限ということはできる。
結論としては、もとのリモコン信号データ(入力データ信号)の周波数、必要であれば、第2サンプリング処理後の記憶量もしくは通信路の帯域、及び元のデータに対してどれだけ類似度を維持する必要があるかということが考慮されるべきポイントになる。
ここで示す例では、サンプリング周波数2はサンプリング周波数1の1/4倍としている。このように、整数分の1倍とすることによってサンプリング周波数1の量子化データ(参照符号106参照)を容易に利用することが可能である。もちろん、上記の量子化データを再度連続したデータに変換し、これをサンプリング周波数1と整数分の1倍などの関係にないサンプリング周波数で第2のサンプリングしてもよい。
図1の参照符号107は、サンプリング周波数1の1/4倍の周波数であるサンプリング周波数2で参照符号106のデータを更に量子化したものである。サンプリング周波数1の整数分の1の周波数を用いているため、量子化したデータを4つおきに1つ残すという非常に簡単な措置を講ずることによって、2回目のサンプリングを容易に実現できることがわかる。図1の参照符号107において、サンプリング結果が“H”レベル又は“L”レベルで表記されているが、これらサンプリング結果間の“−”は、あるサンプリングからその次のサンプリングまでの期間において、上記のあるサンプリングのサンプリング結果が連続していることを意味する。
第2のサンプリングにより得られた量子化データ(参照符号107)を復元すると、図1の参照符号108で示される波形となる。参照符号102が表す復元結果と比較してわかるように、参照符号108で示される波形は、本来送出しようとしていた波形(参照符号100)に非常に近い。この復元精度は、サンプリング周波数1とサンプリング周波数2によって決まるものであり、これらを必要に応じて調整することで、もとの波形により近いものやデータ量を削減するものなど、非常に容易に変化させることができる。
サンプリング周波数1及び2の調整方法の例について説明する。ここで説明する例としては、後述の図8に示しているものを前提としている。図8の構成は図4に比べて記憶領域が少なくすむため、回路規模が小さくなり有利である。図4をもとにした構成の場合、結局補正すべきビット数分だけDフリップフロップが[O(n)]必要であるが、図8の構成の場合、カウンタが[O(log n)]必要なだけであり、上記のように回路規模が確実に小さくなる。
第1のサンプリング:他の機能も含めて本ブロックをインテグレーションする全体回路のシステムクロックを若干分周した程度の高速なものを用いる。
これは、図8の構成の場合、補正量が多少増えても上述のようにフリップフロップの数が極端に増加するわけではない(たとえば、256まで補正するにしても8ビットカウンタでよい。)ので、補正量が増える(=第1のサンプリングが高速になる)ことが問題にならないこと、及び最初の段階でデータを落とすと、あとで再現するのにデータが不足しても対応できないことに基づいている。たとえば、サンプリング周波数1として、システムクロックを所定の分周比で分周したものを用いてもよいし、その整数倍(遅くなる方向)で可変にしてもよい。
補正量:所定範囲(たとえば、0から255)の補正量を設定できる補正量設定レジスタを設けておき、第1のサンプリングをできるだけ高速にしておいて、測定した遅延時間104を第1のサンプリングの周期で割り、それが補正量設定レジスタ(図示しない)に収まらなければ、第1のサンプリングの周波数を下げる。こうすることで、より正しく補正を行うことができる。なお、第1のサンプリングの周波数が固定されていれば、最初から補正量を測定しておき、それにあわせた設定が必要となる。
第の2サンプリング:リモコンパススルーと同様の機能を実現することを前提とすると、映像受信側で操作されたリモコン信号と同じものを映像送信側で再生する必要がある。ちなみに、機器間では電波が利用されており、映像のすきまに逆方向の信号としてリモコンの信号を送出する。この信号の帯域は、当然ある程度決まっており(映像も送出しないといけないし、時間の遅れも許されない)、無限のデータをリモコン信号として送出することができない。所望のバンド幅(データの送出速度(データレート):bps)が決定すると、これより若干少なめの値になるように第2のサンプリングでデータを落とすことが好ましい。
第2のサンプリングの周波数は、第1のサンプリングの周波数と独立に設定することが可能ではあるが、実際問題として、わざわざ関係のない周波数を用いる利点も少なく、回路の簡素化という観点から補正結果を数個に1つずつ抜きとって利用するのが簡単で好ましい。
以上より、上記所望の送出速度になるように、第1のサンプリングの周波数の何分の1にするかを決めることになる。帯域に十分余裕があるのであれば、あまり圧縮する必要はなく、より厳密なデータを送出することができる。
なお、リモコン信号自体のデータレートが高速であり情報量が多いのであれば、この段階で帯域にあわせて削りすぎると、再生できなくなる。
ところで、赤外線のリモコンを受信し受信機内で処理するだけであれば、参照符号106に示すように誤差を補正したものか、あるいは参照符号107に示すようにデータ量を削減したものを利用することになる。これを上記のリモコンパススルー機能に適用した場合について以下に説明する。
映像受信機でリモコン信号を受信し、上記の手順により参照符号107で示される量子化データを得たとする。これは送出するデータ量を削減するためにも適したものである。これを映像送信機でどのように利用するかであるが、以下のような方法を用いる。
まず、参照符号107で示される量子化データを受けとり、参照符号108で示される制御信号を生成する。その後、この制御信号と、例えば38kHzの赤外線キャリア(図示しないが、赤外線キャリアは、リモコンパススルーブロックの送信側で生成される。)とに対して論理積演算(AND)を行うと、参照符号109のような波形が得られる。これは、もとの波形(リモコン送信機が送出した赤外線パルス100の波形)と非常に近く、本発明の有効性を示している。
なお、参考のために、従来どおり参照符号102の信号を制御信号として同様に赤外線キャリアとの間で論理積演算(AND)を行うと、参照符号110のような波形となる。もとの波形(参照符号100の波形)と比較すると、“H”レベルの後端部が伸びてしまっていることがわかる。
映像送信機が参照符号109の信号を映像送出元の機器、例えばビデオなどに送出しても、参照符号100の波形に非常に近いため、誤動作するおそれや動作しないおそれが少ないと考えられる。これに対して、参照符号110の信号をビデオ等の映像送出元の機器に送出しても、映像送出元が予想している誤差よりもさらにもう1段分の誤差を多く含んでいるため、リモコンの種類などの条件によって動作しなくなるおそれが高くなる。
また、図1によれば、参照符号108の信号(制御信号)は、もとの波形(リモコン送信機が送出した赤外線パルス100の波形)に対して、多少の誤差を含んでいる。この誤差は、参照符号105や参照符号107での量子化のサンプリング周期が影響していることにより生じている。サンプリング周波数を高くすることによって、より精緻な量子化は可能である反面、データ量や処理時間が増加する。このため、信号速度、赤外線ユニットの特性、及び/又はリモコン信号伝送に許されるデータ量等を勘案してこれらのサンプリング周期を決定する必要がある。
なお、赤外線ユニットが小さい遅延しか発生しない場合、補正を行うためには、第1のサンプリングを高いサンプリング周波数で行う必要がある。これは、補正が正しく行えないからである。また、リモコン信号のデータレートが遅いときには、(第1サンプリング×第2サンプリング)の時間は長くてもよい。これは、細かくサンプリングしたところで情報が変わらないからである。
本発明に係るリモコン信号受信回路の構成例を図3に示す。本リモコン信号受信回路は、図3に示すように、まず、復調部300に赤外線パルス(図1の100)が入力される。復調部300は、赤外線リモコン受信装置においては非常に一般的なものであり、たとえば図5に示すように、ダイオード500、コンデンサ501、抵抗502、ヒステリシスコンパレータ503等から構成されている。ヒステリシスコンパレータ503を通過することによって、図1の参照符号101の信号が参照符号102のデジタル信号に変換される。
復調部300の出力信号は、第1サンプリング回路301に送られ、ここで、図1の参照符号105の量子化データが生成される。既定のサンプリング周期(サンプリング周波数)以外でサンプリングを行う場合には、第1周期設定部302を追加しサンプリング周期を外部から変更することも可能である。
上記量子化データは、補正部303に送られ、ここで、“H”レベルが“L”レベルに補正され、参照符号105のデータが参照符号106のデータのようになる。補正部303における補正量を既定のもの以外に変更したい場合には、補正量設定部304が設けられ、外部からこれを制御することも可能となる。
補正済みの上記量子化データは、第2サンプリング回路305へ送られ、ここで、データ量が参照符号107で示すように削減され、第2のサンプリングが行われる。図3中の第2周期設定部306はオプションで設けられるものあり、必要に応じて周期を変える構成の場合に採用される。
例えば、リモコンパススルー機能のようにリモコン信号を伝送するのではなく、単純にリモコン信号を受信するような場合であれば、データ量の削減はそれほど必要ないかもしれない。そのような場合には補正部303の出力を量子化データとして利用すれば、従来復調部300の出力を利用していた場合に比べ“H”レベルがより正確なリモコン信号をリモコン信号のデコーダに送ることができる。つまり、本発明は、リモコンパススルー機能を利用する場合だけでなく、一般的な従来のリモコン受信においても有効に利用できるものである。
ここで、上記リモコン信号受信回路におけるデータの処理順序について説明する。本発明のリモコン信号受信回路においては、もとの信号の波形に非常に近いものを得ることができるが、データの処理にあたっては、それぞれの部分が並列に動作できるため、メモリの消費量も少なくてすむという特徴がある。以下にそれを説明する。
リモコン信号が受信されるタイミングというのは一般には予測不可能であるため、復調部300は連続して動作している。つまり、復調部300の出力信号も連続的に出力され、また第1サンプリング回路301のサンプリングも連続的に行なわれる。
補正部303は、(補正量設定部304で設定される補正量+1)ビットのみを記憶することで、1(ハイレベル)から0(ローレベル)への変化を検知することができるとともに、第1サンプリング回路301のサンプリング結果を補正することもできる。
つまり、上記補正を行うために必要なFIFO(先入れ先出しメモリ)の段数は非常に少なくてよく、結果として、ハードウェアで実装した場合には回路規模の縮小化が図れると共に、ソフトウェアで実装した場合にはデータ保存メモリの縮小化が図れる。
以上はハードウェアで実装する回路例として構成したが、復調部300以降の処理をソフトウェアによって実行することも全く同様の手順で可能である。この場合には各部がソフトウェアの各ステップに対応する。
図2で示されるのは、前記のリモコンパススルー機能を備えた映像システムの構成例である。ここでは、映像元(映像ソース)としてビデオデッキを用いた場合を示している。ビデオデッキ200は、映像送信機202と接続されており、映像送信機202にデータを送出する。また、映像送信機202には赤外線送信機201が接続されており、映像送信機202から信号を送出することによって赤外線パルスをビデオデッキ200に向けて送信できる。
一方、場所は問わないが受像側がある。映像受信機203と映像送信機202は、光ファイバや電線、無線など何らかの媒体で接続され映像を伝送できるようになっている。先の例では2.4GHz帯の電波を媒体として利用しており、上記機器を離れた部屋などにも設置できる。赤外線は直進性が高いため、壁などで遮られている場合では、直接、赤外線リモコン206を用いてビデオデッキの操作が不可能である。
さて、映像受信機203は映像表示装置204と接続されている。映像表示装置204としてはテレビや液晶パネル等が考えられる。映像受信機203には、また、赤外線受信機205も信号処理部207を経由して接続されており、赤外線リモコン206から送出された赤外線信号を受信できるようになっている。映像受信機203、信号処理部207、及び赤外線受信機205は別々に設置してもよいし、いくつかをまとめて構成しても構わない。信号処理部207は本発明で説明されている部分である。
ここで、赤外線リモコン206から送出された赤外線信号がいかにしてビデオデッキ200に伝送されるかを説明する。テレビ等の映像表示装置204を見ている人が何らかの指示をビデオデッキ200に与えたい場合、赤外線リモコン206が操作される。その信号は赤外線受信機205によって受信され、信号処理部207により、信号が処理されて映像受信機203に届く。信号処理部207で特別な処理を行わなければ、赤外線受信機205で生じた誤差(赤外線リモコン206の信号との差)が生まれ映像受信機203には誤差も含まれて伝送されてしまう。しかしながら、上述した本発明の方法や回路によって処理を行えば、発生する誤差は最小限に抑えることが可能となる。
映像受信機203の出力信号は、映像送信機202に送出され、赤外線送信機201を経由して赤外線信号としてビデオデッキ200に送出され、これにより、上記指示内容の所望の動作が行われる。赤外線送信機201から送信された赤外線が赤外線リモコン206の信号と近ければ、ビデオデッキ200は正しく動作するが、赤外線受信機205で誤差が発生すると赤外線送信機201からの信号には誤差が含まれ、ビデオデッキ200が補正できる誤差を越えてしまう。その結果としてビデオデッキ200は正しく動作しない。
ここで、第1サンプリング回路301と補正部303の回路構成例について説明する。
図4は第1サンプリング回路301と補正部303の構成例を示す回路図である。復調部300(図3参照)からの出力信号、つまり図1の参照符号102で示される信号がエッジトリガ型フリップフロップ(以下、単に、フリップフロップと称す。)400に入力される。
図が複雑になるため図示することを省略しているが、エッジトリガ型フリップフロップ400〜404のそれぞれには、サンプリング周波数1で決められた周期でクロック信号がCK端子(クロック入力端子)を介して入力されている。このクロック信号に同期して、前記の参照符号100の信号(赤外線パルス)はサンプリングされ、各フリップフロップに値が保持(格納)されていく。図4からも明らかなように、これらのフリップフロップ400〜404は、FIFO(参照符号406)として構成されている。このように、フリップフロップ400〜404は、記憶手段としての機能を果たす。
また、ここでのFIFOの段数は5段としているが、これは補正量設定部304を省略し、既定値として補正量4を指定した場合に対応する(補正量が4であるためFIFOの段数はそれに1を加えた5となる)。
一方、補正量設定部304を用いる場合、FIFOを必要なだけ余裕を持たせて段数を組んでおき、途中のフリップフロップの出力端子Qから補正部303の出力信号としてバイパスできる構成と、各FIFOに対応した出力選択信号を連動させ、またAND回路への入力を考慮することによって、容易に補正量設定部304の機能を実現できる。この構成例については後述する。また、上記構成例においては、上記クロック信号が各フリップフロップのCK端子に印加されるようになっているが、第1のサンプリングの周期が任意に設定できるようにすれば、第1周期設定部302が実現されたことになる。
上記のクロック信号に同期して、通常は、フリップフロップ404の出力端子Qより順にデータがそのまま出力されるが、フリップフロップ400の出力端子Qが“L”レベル、フリップフロップ401〜404の各出力端子Qが“H”レベルになった場合には、AND回路405(論理積演算回路)の出力が“H”レベルとなり、各フリップフロップのリセット端子RSTがアサートされ全てのフリップフロップがリセットされる。これは、上記の参照符号102の信号が“L”レベルになったときに、その直前の4サンプリング分の“H”レベルが“L”レベルに補正される動作を行うことを意味する。このように、本実施の形態によれば、非常に簡単な回路構成で上記補正動作が実現可能となる。
ここで、上記の補正量設定部304の構成例について述べる。図4で示される回路をもとに、図10のように回路を変更する。図10において、参照符号1000〜1004(図中、Dで示される。)は、それぞれ、参照符号1021で示される構成を持つDフリップフロップ(エッジトリガ型フリップフロップ)である。
また、参照符号1011〜1014(図中、Mで示される。)は、マルチプレクサであり、セレクト信号Eが“H”レベルのときには入力信号をそのまま出力し、セレクト信号Eが“L”レベルのときには“H”レベルを出力する。また、マルチプレクサ1011〜1014の各セレクト信号入力端子は、補正量設定レジスタ1020のE1〜E4の各設定ビットに対応するように接続されている。
図10は、補正量が4以下で可変の補正部をもつシステムの構成例である。補正量設定レジスタ1020は、例えば補正量を2としたいときにはE1とE2を1に設定すると共に、E3とE4を0に設定する。図10では補正量を2とした場合を示している。
なお、補正量を1としたいときには、E1のみ1に設定し他は0に設定する。また、補正量を4にする場合にはE1〜E4の全てを1にする。つまり、補正量をnとすると設定ビットEn以下のビットを1に設定すると共に、Enより大きいビットは0になるようにレジスタを設定する。このようにすれば、補正量が4以上の場合でも簡単に回路を拡張できる。
マルチプレクサ1011〜1014の各出力端子MoutをそれぞれQ1〜Q4とする。また、初段のDフリップフロップ1000の出力端子をQ0とする。また、Dフリップフロップに入力されているクロック信号は全て共通で、設定可能な周期または固定の周期で第1のサンプリングを行うものとする。更に、Dフリップフロップの各リセット端子RSTには共通でRST=(not Q0)&Q1&Q2&Q3&Q4で表される信号が印加されるとする。なお、RST中、"not"は、それに続く端子の出力信号を反転したものを意味し、"&"は、論理積演算を行うことを意味する。
このとき、補正後の信号である出力信号OUTは、次の式で表される。すなわち、OUT=S0&Q0+S1&Q1+S2&Q2+S3&Q3+S4&Q4で表され、S0からS4は以下のような式でそれぞれ表される信号である。S0=(not E1)&(not E2)&(not E3)&(not E4)、S1=E1&(not E2)&(not E3)&(not E4)、S2=E1&E2&(not E3)&(not E4)、S3=E1&E2&E3&(not E4)、及びS4=E1&E2&E3&E4をそれぞれ満足する。なお、OUT及びS0〜S4中、"&"は、論理積演算を行うことを意味し、"not"は、それに続く設定ビットのレベルを反転したものを意味する。
つまり、Snのnは補正量を示しており、上述の構成で補正量設定レジスタ1020が設定されていれば、Snのうち1つだけが1となり、あとは0となる。その結果としてOUTはその補正量を示すnに対応したQnとなり、所望の中間部分(所望段のマルチプレクサ)から出力できる。
ここで、図10の例について詳細に説明する。この場合、図4と基本的な動作は同じであるが、Q3とQ4の値はマルチプレクサの働きにより、常に1となるため、RSTの信号生成には寄与しない。
つまり、Dフリップフロップがリセットされるのは、Q0=0且つQ1=Q2=1となるときである。このとき、出力OUTはSnのうちS2だけが1となり、Q2がOUTとなる。これは補正量設定レジスタ1020の値を変更しない限り継続するので、Q2の値が出力されつづけることになる。Q3やQ4の信号はRSTにより“L”レベルに変化することもあるが、これらの結果は捨てられるので影響はない。Q0やQ1の値はS0やS1が0であるので、これらもOUTの結果には影響しない。
これは、あくまで一実装例であるので、他の方法により補正量の設定機能を実現してもかまわない。また今回は4以下の補正量の場合について述べたが、単純な拡張により容易に5以上の補正量にも拡張できる。
また、補正部303から出力された信号を例えば2回に1回、つまりCK端子に与えられる周期の倍の周期でフリップフロップによってサンプリングし、必要に応じてレジスタ等としてCPUからアクセスできるようにしておけば、第2サンプリング回路305も容易に実現できることになる。ここでは説明の便宜上2倍としたが、本発明はこれに限定されるものではなく、これを設定可能としておけば、第2周期設定部306が実現できることはいうまでもない。また、この回路例はあくまで一つの構成方法であり、同様の目的を別の構成で実現し、同じ目的を果たす構成であればよい。
図5は、前記の復調部300の回路構成例である。入力された赤外線信号(図1の参照符号100参照)が、ダイオード500を通過し、501のコンデンサ、502の抵抗の効果により平準化され101のような波形を得られる。このあと、503のヒステリシスコンパレータを通り、図1の参照符号102で示すようなデジタル信号を得ることができる。
図6は図4の概念を説明したものである。参照符号600、601、602の3つから構成されるものは、段数が可変長のFIFOを示している。参照符号600は説明の為に付した各段を示すための番号で、最初に全てのデータは1段目に入り、順に次のデータが入力されることにより、次段に移動される。参照符号601はFIFOの各段のイネーブル信号で、1がイネーブル、0がディスエーブルを示している。この例では1段目か4段目までがイネーブルにされている。
図6は、“H”レベルから“L”レベルへ補正する補正量を3とした場合を示しており、この3に1を加えた4段のFIFOが許可されている。この場合4段許可という意味は、1から4までの全てを許可し、それ以外は全て不許可を意味しており、許可の中に不許可、またその逆が混在することはない。参照符号602はFIFOに入力されたデータで、この例では時間的により先に入力されたデータから“L”、“L”、“H”、及び“H”となっている。
また参照符号603で示されるように次のサンプリング周波数1により、つまりFIFOへのクロック信号入力により全てがシフトされるようになっている。この意味では、シフトレジスタであるともいえる。
参照符号604は参照符号601と連動して、FIFOのどの部分から出力を抜き出すかを示している。段数を多めに設計しておき、外部回路から段数を指定(設定)できるようにすれば、任意の補正量を決定することができる。参照符号604は、図6の場合、4段目のデータを順に出力する。1回前のデータが参照符号606の記憶手段に格納されており、これをそのまま利用するか、もしくはサンプリング周波数2により、量子化データをさらにふるいにかけて、いくつかに1つ抽出することができることは前述のとおりである。参照符号604のイネーブルされた最終段から以外の出力経路は606に接続されないようになっている(図6中、点線で表す出力経路は接続されない。)。参照符号605はFIFOをリセットするためのものである。
ここでいうリセットとは、参照符号602のデータフィールドを全て“L”にするものであり、参照符号602のデータにより条件を決定し、FIFOをリセットする。この条件は1段目以外が全て“H”レベルで1段目のみが“L”レベルであるという条件であることはAND回路405と同じである。
図4や図6は概念をわかりやすくするためにシフトレジスタを用いた実装例を示したが、これをカウンタ回路等でも実現可能である。たとえば、カウンタに補正量を先に設定(プリセット)しておき、105のサンプリングで“L”レベルから“H”レベルに変化したことを検知したら、それ以降、そのカウンタが0になるまで出力するデータをL”レベルにする(参照符号106に対応する。)。カウンタが0になれば、カウンタをまた補正量でリセットし、入力された値をそのまま出力すればよい。このようにすることによって、データを記憶するメモリ量を補正量に関係なく削減できる。
上記カウンタを用いた例を図9に示す。図9の参照符号900は、図1の参照符号105で示される入力に対応し、参照符号901は補正量を3とした場合に“L”レベルから“H”レベルへの変化を検出したとき、その検出から補正量に対応するカウント分だけ“H”レベルを“L”レベルに補正する様子を示している。1回の補正が終了すると、カウンタは再度設定された補正量(この場合は3)にリセットされる。参照符号901のデータは、この補正動作を繰り返し行った結果を説明している。なお、図9中、参照符号902のデータは参照符号901を補正量分だけ左にシフトさせてわかりやすく示した図である。これからもわかるように、本来意図した“H”レベルの後端部を削るという効果が得られている。
図9の補正動作を実現するための回路構成として、たとえば図8に示すような構成が考えられる。図8の構成は、図3の補正部303と補正量設定部304とをカウンタ800で実装した場合を示している。
図8に示すように、マルチプレクサ804の一方の入力端子には量子化データが供給されている一方、他方の入力端子には“L”レベルが供給されている。通常は、上記量子化データがマルチプレクサ804から出力される。これに対して、上記量子化データが“L”レベルから“H”レベルへ変化したことを検出した場合、カウンタ800は、カウント動作を開始し、カウント動作中は1(“H”レベル)を出力する。この場合、マルチプレクサ804からは“L”レベルが出力される。
また、カウンタ800には初期値レジスタ801を有しており、これは既定値もしくは外部からの値によってプリセットされるようになっている。カウンタ800は、更に、リセット入力端子も有している。このリセット入力端子には、AND回路802の出力信号が供給され、AND回路802に供給されるカウンタ800の出力信号が“L”レベルであり、且つ、上記量子化データが“H”レベルから“L”レベルへ変化すると、上記リセット入力はアクティブとなり、上記カウンタ800はリセットされる。
ここで、上記カウンタ800の動作を詳細に説明する。入力信号である量子化データが“L”レベルの期間は、マルチプレクサ804からは入力信号と同じもの、つまり“L”レベルが出力される。量子化データが“L”レベルから“H”レベルに変化すると、カウンタ800がダウンカウントする間は、カウンタの値が0(“L”レベル)ではないのでカウンタ800の出力は1(“H”レベル)となり、結果としてブロック全体の出力(マルチプレクサ804の出力)も“L”レベルが選ばれる。
量子化データがプリセットされた補正量(初期値)に対応する分だけ入力されると、カウンタ800はカウントダウンしていき、やがて0(“L”レベル)を出力する。このとき、マルチプレクサ804からは上記量子化データがそのまま、つまり、この場合には“H”レベルが出力される。この時点では未だAND回路802がアクティブになる条件は整っていないが、量子化データがやがて“H”レベルから“L”レベルに変化すると、AND回路802の出力信号、つまりカウンタ800のリセット端子がアクティブとなり、カウンタ800がリセットされる。その結果、また当初のように、量子化データが“L”レベルから“H”レベルに変化するのを待つ状態となる。これらの動作を繰り返すことで、容易に補正部303が実現できる。
図7には、本発明をプログラムとして実装した場合のフローチャートを示す。実装の方法としては、メインプログラム内で第1のサンプリングが実行されるまで待って実行する方法と、割り込みルーチンとして実装する方法などがあるが、この例では、別途タイマにて第1のサンプリング周期ごとに継続して定期的に割り込みを発生し、その割り込み信号により、本プログラム(割り込み処理ルーチン)が駆動されるものとし、その割り込み処理ルーチン例を以下に示す。
また、入力としては、図5の出力結果を得ることのできる入力端子(その波形は図1の参照符号102に示すようなもの)で与えられるものとし、“H”レベルを“L”レベルに補正する量としては、タイマで指定された第1のサンプリング周期の何周期分かを示す補正量Mがプログラム実行前に与えられているとする。また、第2のサンプリング機能も有効であるとし、その周期は同様に第1のサンプリング周期を基準にそのデータの何個に1個を出力するかという量Sがプログラム実行前に与えられ、MとSを割り込みルーチン実行前の初期ルーチンで設定済みであるとする。また、初期化ルーチン内でカウンタCは0で初期化され、データを保存するFIFO形式のデータ構造(サイズは補正量M+1)が初期化済みであるとする。
まず、割り込みルーチン内では、ステップ701にて復調された入力信号の値をサンプリングして“H”レベルを1、“L”レベルを0として記憶する。この値をyとする。次にステップ702でカウンタCを1だけインクリメントする。これは、第2のサンプリング周期の測定に用いる。上述したように、第2のサンプリングは、第1のサンプリング回数の数回に一度、決められた回数で行なわれる。この回数かどうかを判断する値をCで記憶しているのである。
ステップ703ではステップ701で取得した値yをFIFOの最後尾に入れ、先頭の値xを得る。FIFOの段数は、補正量M+1と同じであることは先に述べたとおりである。ステップ704では、先ほどのyが0、それ以外のFIFOのデータが1かどうかを調べる。この判断は、つまり“H”レベルから“L”レベルへの入力信号の変化を検出していることになる。
もし、この条件にあてはまるのであれば、FIFOのデータを全て0でクリアする。これで補正は完了する。ステップ705では、先程ステップ702でインクリメントしたCが第2のサンプリング周期を示すSと同じかどうかを比較している。同じでないときは何もせず、xの値を捨てる。同じであるときは、このデータは必要なものであるので、カウンタCを0でリセットし、xを次の処理部にわたすようにする。なお、ここにはxが渡される次の処理部については述べていないが、以下のようなものが考えられる。
すなわち、例えば、上述のリモコンパススルー機能の参照符号203で表わされる映像受信機(図2参照)である。このフローチャートは信号処理部207にあたるが、ここで補正し映像受信機203から映像送信機202に赤外線リモコンデータを送る際には、サンプリング結果をそのまま送るのはデータ量の増加という点からは好ましくない。そこで、リモコン信号の伝達に必要十分なレートに落とし、送信情報量を削減することでスムースなデータ転送を行うことができる。そのため、ステップ701のサンプリングレートより低速なサンプリングをここでさらに行い、データを削減するのである。
なお、リモコン信号受信回路の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、本発明のリモコン信号受信回路は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit )、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるリモコン信号受信プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記リモコン信号受信回路に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、リモコン信号受信回路を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された搬送波あるいはデータ信号列の形態でも実現され得る。
本発明では、以上のように、入力された信号をその入力信号のデータ速度よりも高速なサンプリングクロックでサンプリングし、その結果を量子化して一時保存する。その結果が“L”レベルを示すものであれば、補正の必要がないためそのまま出力し、Hレベルで示すものであれば、その後“H”レベルから“L”レベルに変化する部分を検出し、その直前の設定された部分を“H”レベルではなく“L”レベルであると修正し、それを量子化結果とすることを特徴としている。
量子化データをどれだけ記憶しておくかは、補正量とサンプリングクロックに依存する。補正量が多い場合には、それを保持できるだけの一時記憶領域もしくはれを記憶するカウンタが必要であることはいうまでもない。ここで述べたようにサンプリング周波数もしくは、“H”レベルから“L”レベルへの補正量、もしくはその両方を変化させることも可能である。前段の回路の特性が明らかである場合には、特性に応じた固定値でもよいが、設定可能にすることにより、前段の回路を変更した場合などにも柔軟に対応することができる。
また、補正したあとの量子化データをそのまま保持または出力するのではなく、再度第1のサンプリング周波数より低く、赤外線リモコン信号よりも高い第2のサンプリング周波数にて量子化されたデータをサンプリングすることもできる。
これにより、単純に補正後のデータを出力するのに比べ、第2のサンプリングの分だけデータ量を削減することができる。これにより入力信号に比べて信号に誤差が含まれるが、リモコン信号伝送に必要な周波数を適切に設定すれば第2のサンプリングの導入の利点がある。これもまた、既定値だけでなく外部から周期を設定できるようにすれば、柔軟性が高まる。
これら3つのパラメーターを設定できるようにしておけば、さまざまな信号伝送をより正しく、また少ないデータ量にして伝送すること、またデジタル化することが可能である。これら3つのパラメーターを設定するにあたり、第1のサンプリングをシステムクロックから分周して生成し、その周期の整数倍にて補正量を決め、また同様に第2のサンプリング周波数を第1のサンプリング周波数の整数分の1にすることもできる。この利点は補正以降の処理を非常に単純にすることができることである。
上記の手法をプログラムとし、コンピュータに実行させることも可能である。
上記の方法や回路を実現するときに、“L”レベルの期間を検出する場合、ノイズなどにより、リモコン信号に比べて短いローレベルの期間をまちがって補正してしまうことも考えられる。これを避けるために、ある量以下の短いローレベルの期間はノイズとして無視し、ハイレベルの期間が連続しているものとして処理する方法や回路も実現可能である。これにより、少量のノイズが拡大しないように処理することもできる。同様に信号より短いH期間を排除することも可能である。これらのしきい値はパラメーター化し外部から設定することで柔軟な対処が可能である。
以上のように、本発明によれば、“H”レベルの期間の調整をデジタル的に処理でき、赤外線受信信号が素子の特性によって正しく送信側のデータを伝えられないときでも、それを正しく補正し後段のデコーダに送信側が本来意図したデータにより近いデータに変換して受渡すことができる。
また、離れた場所にあって本来赤外線リモコンでは直接操作できないような装置に対して、リモコン信号を中継するような装置にも応用可能で、その場合には受信信号の誤差の蓄積が発生しない。