(57)【特許請求の範囲】
【請求項１】
ヘッダ部、及び押下されたリモコンボタンに応じたデータ部を有するリモコン信号を受信するリモコン受信回路と、該リモコン受信回路を制御して、該リモコン受信回路において受信したリモコン信号をデコードするＣＰＵと、からなるリモコン受信システムにおいて、
前記リモコン受信回路は、
前記リモコン信号の立上りエッジと立下りエッジを検出するエッジ検出回路と、
前記リモコン信号の立上りエッジから立下りエッジまでの時間間隔、及び立下りエッジから立上りエッジまでの時間間隔をカウントするカウンタ回路と、
前記カウンタ回路のカウント結果から、前記リモコン信号のヘッダ部を検出するヘッダ検出回路と、
前記カウンタ回路のカウント結果から、該リモコン信号のデータ部の０または１を判別し、該判別結果を内蔵レジスタに格納するデータ判別回路と、
前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出されたときに、前記ＣＰＵに対して前記リモコン信号のヘッダ部の検出を通知するヘッダ割り込み信号を出力するヘッダ割り込み生成回路と、
前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出された後、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって内蔵レジスタに格納されたときに、前記ＣＰＵに対して前記リモコン信号のデータ受信完了を通知するデータ割り込み信号を出力するデータ割り込み生成回路と、
前記ヘッダ割り込み信号と前記データ割り込み信号のいずれかを、前記ＣＰＵの指示により選択するスイッチと、を備え、
前記ＣＰＵは、１つの割り込みポートを持ち、該割り込みポートを介して、前記リモコン受信回路の前記スイッチからの割り込み信号を受信して、該受信した割り込み信号に応じて前記リモコン受信回路を制御し、前記スイッチからの前記割り込み信号を一定時間受信しなかった際、前記リモコンボタンがリリースされたと判断する、
ことを特徴とするリモコン受信システム。
【請求項２】
請求項１に記載のリモコン受信システムにおいて、
前記ＣＰＵは、当該リモコン受信システムの動作開始時、及び前記リモコンボタンのリリースの検知時に、前記スイッチに対して、前記データ割り込み信号を選択するよう指示する、
ことを特徴とするリモコン受信システム。
【請求項３】
請求項１に記載のリモコン受信システムにおいて、
前記リモコン受信回路が、前記ヘッダ部、及びデータ部を有する前記リモコン信号に続いて、前記データ部が含まれないリピートヘッダ部のみからなるリモコン信号を受信する時、
前記ＣＰＵは、前記スイッチに対して、当該リモコン受信システムの動作開始時に、前記データ割り込み信号を選択するよう指示し、前記リモコン受信回路から前記割り込みポートを介して前記データ割り込み信号を受信した後に、前記ヘッダ割り込み信号を選択するよう指示し、前記リモコンボタンのリリース検知時に、再度前記データ割り込み信号を選択するよう指示する、
ことを特徴とするリモコン受信システム。
【請求項４】
請求項１に記載のリモコン受信システムにおいて、
前記データ判別回路は、前記ＣＰＵによって予め指示されていたビット数分のデータを前記内蔵レジスタに格納した後、前記ヘッダ検出回路において次のヘッダ部が検出されるまで、該内蔵レジスタに格納されたデータを更新しない、
ことを特徴とするリモコン受信システム。
【請求項５】
請求項１に記載のリモコン受信システムにおいて、
前記データ判別回路は、前記ＣＰＵによって予め指示されていたビット数分のデータが前記内蔵レジスタに格納される前に、次のヘッダ部を受信した場合、前記ヘッダ検出回路における該次のヘッダ部の検出を優先させる、
ことを特徴とするリモコン受信システム。
【請求項６】
請求項１に記載のリモコン受信システムにおいて、
前記リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とからなる場合、
前記リモコン受信回路は、前記内蔵レジスタに格納したデータの前記メインデータ部と前記反転データ部とを比較して、全ビット不一致であれば前記データを有効と判断し、それ以外は前記データを無効と判断する有効性判別回路を備え、
前記データ割り込み生成回路は、前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出された後、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され、且つ前記有効性判別回路によって、該内蔵レジスタに格納されたデータが有効と判断されたときに、前記データ割り込み信号を出力する、
ことを特徴とするリモコン受信システム。
【請求項７】
請求項１に記載のリモコン受信システムにおいて、
前記リモコン受信回路は、前記カウンタ回路のカウント結果から、前記ＣＰＵによって指示された論理レベルが、該ＣＰＵによって予め指示されていた期間より長時間持続したことを検出したときにＯＦＦフラグを立ち上げるＯＦＦ検出回路を備え、
前記ＣＰＵは、前記ＯＦＦフラグが立ち上がった際、前記リモコンボタンがリリースされたと判断する、
ことを特徴とするリモコン受信システム。
【請求項８】
請求項１に記載のリモコン受信システムにおいて、
前記リモコン信号のヘッダ部が、ある論理レベルを一定時間維持する波形と、その反対の論理レベルを一定時間維持する波形とからなる場合、
前記リモコン受信回路が前記リモコン信号のヘッダ部の受信中に、前記カウンタ回路が前記ＣＰＵによって予め指示されていた期間内の論理レベルの変化を検出した時、該カウンタ回路は、前記期間内の論理レベルの変化をノイズとして無視し、論理レベルが変化する前のカウント値からカウントを開始する、
ことを特徴とするリモコン受信システム。
【請求項９】
請求項６に記載のリモコン受信システムにおいて、
前記リモコン受信回路は、
前記ＣＰＵによって予め指示されていた期間になるまでカウントアップしつづけ、前記ヘッダ検出回路において前記リモコン信号の前記ヘッダ部が検出されるか、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され且つ該内蔵レジスタに格納された前記データが前記有効性判別回路によって有効と判断されるかの２つの条件のうち、前記ＣＰＵによって指示されている方が満たされたときにリセットされるＯＦＦカウンタと、
前記ＯＦＦカウンタがリセットされた時にＯＮフラグを立ち上げ、前記ＣＰＵによって予め指示されていた期間と前記ＯＦＦカウンタのカウント値とが等しくなったときに該ＯＮフラグを立ち下げるＯＦＦ検出回路と、を備え、
前記ＣＰＵは、前記ＯＮフラグが立ち下がった際、前記リモコンボタンがリリースされたと判断する、
ことを特徴とするリモコン受信システム。
【請求項１０】
ヘッダ部、及び押下されたリモコンボタンに応じたデータ部を有するリモコン信号を受信するリモコン受信回路と、該リモコン受信回路を制御して、該リモコン受信回路において受信したリモコン信号をデコードするＣＰＵと、からなるリモコン受信システムにおいて、
前記リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とからなる場合、
前記リモコン受信回路は、
前記リモコン信号の立上りエッジと立下りエッジを検出するエッジ検出回路と、
前記リモコン信号の立上りエッジから立下りエッジまでの時間間隔、及び立下りエッジから立上りエッジまでの時間間隔をカウントするカウンタ回路と、
前記カウンタ回路のカウント結果から、前記リモコン信号のヘッダ部を検出するヘッダ検出回路と、
前記カウンタ回路のカウント結果から、該リモコン信号のデータ部の０または１を判別し、該判別結果を内蔵レジスタに格納するデータ判別回路と、
前記内蔵レジスタに格納したデータの前記メインデータ部と前記反転データ部とを比較して、全ビット不一致であれば前記データを有効と判断し、それ以外は前記データを無効と判断する有効性判別回路と、
前記ＣＰＵによって予め指示されていた期間になるまでカウントアップしつづけ、前記ヘッダ検出回路において前記リモコン信号の前記ヘッダ部が検出されるか、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され且つ該内蔵レジスタに格納された前記データが前記有効性判別回路によって有効と判断されるかの２つの条件のうち、前記ＣＰＵによって指示されている方が満たされたときにリセットされるＯＦＦカウンタと、
前記ＯＦＦカウンタがリセットされた時にＯＮフラグを立ち上げ、前記ＣＰＵによって予め指示されていた期間と前記ＯＦＦカウンタのカウント値とが等しくなったときに該ＯＮフラグを立ち下げるＯＦＦ検出回路と、
前記ＯＦＦカウンタがリセットされたときにセットされ、前記ＣＰＵによってリセットされるデータヘッダフラグと、を備え、
前記ＣＰＵは、前記データヘッダフラグの値と、前記ＯＮフラグの値とを、一定のタイミングでそれぞれ読み出し、その読み出した値に応じて前記リモコン受信回路を制御する、
ことを特徴とするリモコン受信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リモコンによる制御をうける機器に設けられるリモコン受信システムに関し、特に、該リモコン受信システムにおけるＣＰＵが受ける処理上の負担やリソースの負担を軽減するリモコン受信システムに関する。
【背景技術】
【０００２】
リモコンによる制御を受ける機器において、送信機から発信されたリモコン信号を受信する受信側に必要な機能は、該リモコン信号を正確にデータに復調する受信機能と、復調して得られたデータをデコードして要求内容を得るデコード機能である。
ここでまず、図２１及び図２２を用いて、リモコンから発信されるリモコン信号について説明する。図２１は、リモコンから発信されるリモコン信号の一例を示す図である。
【０００３】
図２１（ａ）に示すように、ここで用いられるリモコン信号は、リモコン信号が以後に続くことを示すヘッダ部と、押下されたリモコンボタンを示すデータのビット列をリモコン信号のＬｏｗの持続時間（以下、「ＬｏｎｇＬｏｗ」と称す。）とＨｉｇｈの持続時間（以下、「ＬｏｎｇＨｉｇｈ」と称す。）の組み合わせによって表現したデータ部と、前記データの終了を知らせるトレーラ部とからなっている。
【０００４】
なお、図２１（ａ）においては、前記データ部のＬｏｎｇＬｏｗとＬｏｎｇＨｉｇｈのデューティが１：１ならばデータ“０”に、１：３ならばデータ“１”に対応しており、そのデータ部のデータのパターンは、少なくとも押下するリモコンボタンの数は存在するものとする。
【０００５】
そして、前述したようなリモコン信号を発信する送信機には、図２２（ａ），（ｂ）に示されるリモコン信号を出力する２種類あり、１つ目は、図２２（ａ）に示されるように、同じリモコンボタンが連続的に押下された場合に、最初の１回だけ図２１（ａ）に示すようなデータ部を伴う波形を発信し、その後は該リモコンボタンが押下されつづける限り、図２１（ｂ）に示すようなデータ部を伴わない、リピートヘッダ部及びトレーラ部からなる波形を発信するリピートヘッダ型の送信機であり、２つ目は、図２２（ｂ）に示されるように、前記図２１（ａ）に示すデータ部を伴う波形を該リモコンボタンが押下されている間繰り返し発信しつづける繰り返しデータ型の送信機が存在する。
【０００６】
次に、前述したリモコン信号を受信する受信側に必要な、デコード機能と受信機能について述べる。
前記デコード機能においては、復調したデータとその要求内容との柔軟な対応づけが必要となるため、該デコード機能をＣＰＵによって実現させることが望ましい。これに対し、前記受信側の前記受信機能については、従来より、以下に示す２つの方法のうちのどちらかで実現されている。
【０００７】
１つ目の方法は、送信機から発信されたリモコン信号を、受信側のＣＰＵに直接入力し、該リモコン信号のエッジを割り込みトリガとし、その割り込み間隔をＣＰＵに内蔵されたタイマ（図示せず）でカウントすることで、ＣＰＵによって前記受信機能を実現させる方法である。
【０００８】
しかし、この１つ目の方法を用いた場合、該リモコン信号の判別のために行う、ヘッダ部の検出、データの０／１判定、トレーラ部の検出等のすべての処理を、前記ＣＰＵが引き受けることとなり、この結果、ＣＰＵは非常に複雑なソフトウェア処理を行わなければならず、ＣＰＵのプログラムステップ数が増大するという問題が生じる。
【０００９】
また、この１つ目の方法では、発生するリモコン信号のエッジを直接ＣＰＵへの割り込み信号として扱うため、リモコンボタン押下時にはリモコン信号に由来する割り込みが非常に高い頻度で発生する。そして、このリモコン信号に由来する割り込みは、前記リモコン信号を判別するために、該ＣＰＵに発生した割り込みの間隔を正確にタイマでカウントしなければならないので、リアルタイム性の要請が厳しく、他の割り込みに比べて高い優先度を与えなければならない。従って、前記１つ目の方法を用いれば、前記ＣＰＵに対して、高い優先度の割り込みが高い頻度で発生することとなり、ＣＰＵが本来制御しようとするシステムの処理を圧迫して、動作の遅延を招く恐れもあるという問題も生じる。
【００１０】
そこで、従来においては、リモコン信号の受信機能を実現する２つ目の方法として、前記リモコン信号に由来する割り込みの発生数を軽減し、且つＣＰＵの処理負担を軽減するために、該リモコン信号を受信する受信側に、前記リモコン信号の入力を受け、ヘッダ部の検出やデータ部の検出などの復調処理の一部もしくは全部を行うリモコン受信回路を設ける方法がとられている（特許文献１〜３参照）。
【００１１】
以下、図２３及び図２４を用いて、リモコン信号の受信機能を、２つ目の方法、つまりリモコン受信回路を用いて実現するリモコン受信システムについて説明する。なお、リモコン受信回路に入力されるリモコン信号は、図２１に示されているものとする。
まず、図２３を用いて、受信側に設ける従来のリモコン受信システムの構成について説明する。図２３は、従来におけるリモコン受信システムの構成を示す図である。
【００１２】
図２３において、従来のリモコン受信システムは、送信機（図示せず）から発信されるリモコン信号を受信するリモコン受信回路５００と、該リモコン受信回路５００を制御し、前記リモコン信号をデコードするＣＰＵ５９０とからなるものであり、前記リモコン受信回路５００は、受信したリモコン信号のエッジを検出するエッジ検出回路５１０と、該エッジ検出回路５１０にて検出されたエッジの間隔をカウントするカウンタ回路５２０と、該カウンタ回路５２０の出力を受信して、前記リモコン信号のヘッダ部を検出するヘッダ検出回路５３０と、前記リモコン信号のヘッダ部が検出されたことをＣＰＵ５９０に知らせるヘッダ割り込み信号Ｓ５６０を生成するヘッダ割り込み生成回路５６０と、前記リモコン信号のヘッダ部に続くデータ部の０／１を前記カウンタ回路５２０の出力より判別して内蔵レジスタ５５０にストアするデータ判別回路５４０と、前記内蔵レジスタ５５０にリモコン信号のデータ部に相当するビット数分のデータがストアされた時に、リモコン信号のデータ部が検出されたことをＣＰＵ５９０に知らせるデータ割り込み信号Ｓ５７０を生成するデータ割り込み生成回路５７０と、前記カウンタ回路５２０の出力を受信して、前記リモコン信号のトレーラ部を検出し、リモコン信号のトレーラ部が検出されたことをＣＰＵ５９０に知らせるトレーラ割り込み信号Ｓ５８０を出力するトレーラ検出回路５８０と、からなるものである。なお、リモコン受信回路５００は、前述したすべての回路を備えている必要はなく、前記エッジ検出回路５１０、前記カウンタ回路５２０、前記データ判別回路５４０を含む、前述したリモコン受信回路の一部からなるものであればよく、例えば前記エッジ検出回路５１０、前記カウンタ回路５２０、前記データ判別回路５４０、及び前記データ割り込み生成回路５７０で構成されるものであってもよい。
【００１３】
そして、前記ＣＰＵ５９０は、前述したリモコン受信回路５００から出力される割り込み信号Ｓ５６０〜Ｓ５８０を受けとり、該受け取った割り込み信号に応じた制御を行うものであり、１つの割り込み信号に対して１つの割り込みポートを利用するため、図２３では、ＣＰＵ５９０には、３つの割り込みポート０，１，２が設けられている。
【００１４】
次に、図２４を用いて、前述した構成を有する従来のリモコン受信システムにおいて、リモコン信号を受信した場合の処理の流れについて説明する。図２４は、従来におけるリモコン受信システムにおいてリモコン信号を受信した際の動作の一連の流れを示すフローチャート図である。
【００１５】
リモコン受信回路の動作開始後、まず、カウンタ回路５２０とデータ判別回路５４０を初期化する（Ｆ２４０１）。そして、エッジ検出回路５１０によって、リモコン信号のエッジが検出されない間は、カウンタ回路５２０はインクリメントを続ける（Ｆ２４０２）。
【００１６】
そして、前記エッジ検出回路５１０にてエッジが検出されると、エッジ検出時のカウンタ回路５２０の値が、ヘッダ検出回路５３０、トレーラ検出回路５８０、及びデータ判別回路５４０のそれぞれに出力され、前記各回路において、該カウンタ回路５２０の値に応じたアクションが発生する。
【００１７】
カウンタ値がヘッダ検出を示す値である場合（Ｆ２４０４）、ヘッダ検出回路５３０がヘッダ部を検出し、ヘッダ割り込み生成回路５６０がヘッダ割り込み信号Ｓ５６０を生成し、ヘッダ割り込みが前記ＣＰＵ５９０の割り込みポート０に発行される（Ｆ２４０５）。この後、前記カウンタ回路５２０を初期化し（Ｆ２４０６）、次のエッジを待つ。
【００１８】
また、カウンタ値がデータ検出を示す値である場合は（Ｆ２４０７）、データ判別回路５４０は、カウンタ回路５２０の出力よりリモコン信号の０／１を判別し、内蔵レジスタ５５０にその判別したデータを格納していく（Ｆ２４０８）。そして、内蔵レジスタ５５０にデータ部に相当する指定ビット数のデータが格納された際（Ｆ２４０９）、データ割り込み生成回路５７０がデータ割り込み信号Ｓ５７０を生成して、データ割り込みを前記ＣＰＵ５９０の割り込みポート１に発行する（Ｆ２４１０）。そしてこの後、前記カウンタ回路５２０を初期化する（Ｆ２４０６）。なお、前記内蔵レジスタ５５０に、データが指定ビット数が格納されなかった場合は（Ｆ２４０９）、データ割り込み生成回路５７０はデータ割り込み信号Ｓ５７０を生成することなく、カウンタ回路５２０を初期化する（Ｆ２４０６）。
【００１９】
そして、カウンタ値がトレーラ検出を示す値である場合（Ｆ２４１１）、トレーラ検出回路５８０はリモコン信号のトレーラ部を検出し、トレーラ割り込み信号Ｓ５８０を生成して、ＣＰＵ５９０の割り込みポート２に発行した後（Ｆ２４１２）、カウンタ回路５２０を初期化し（Ｆ２４０６）、次のエッジを待つ。
【特許文献１】特開平５−３２８４５１号公報
【特許文献２】特開平１１−５３０９１号公報
【特許文献３】米国特許第５７５２１８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、リモコン信号の受信機能を、２つ目の方法、つまり前述したような従来のリモコン受信回路５００を用いて実現した場合、以下に示す問題が発生する。
第１に、従来のリモコン受信回路５００には、図２３に示すように、ヘッダ割り込み生成回路５６０、トレーラ検出回路５８０、及びデータ割り込み生成回路５７０が設けられ、その各回路からＣＰＵ５９０に割り込み信号が出力されるように構成されているので、ＣＰＵ５９０側に、それぞれの割り込み信号に対応する割り込みポートが必要とされる。従って、ＣＰＵ５９０のリソースを多く費やしてしまうという問題がある。この問題を解消するために、例えば、前記従来のリモコン受信回路５００を、エッジ検出回路５１０、カウンタ回路５２０、データ判別回路５４０のみで構成することも考えられるが、このようにした場合、リモコン受信回路においてヘッダ割り込みを生成することができなくなる。従って、前記リモコン受信回路５００にて、図２２（ａ）に示すようなリピートヘッダ型の送信機から発信されたリモコン信号を受信した場合、リモコンボタンが連続押下されていることを前記ＣＰＵ５９０に通知することができず、当該リモコン受信システムにおいて利用可能なリモコン信号の規格を狭めてしまうという新たな問題が生じる。
【００２１】
第２に、従来のリモコン受信回路５００では、ノイズ等によるリモコン信号の外乱により、下記の弊害が生ずることが考えられる。
一つ目は、ヘッダ部と認識される波形がノイズによって生成されてしまう場合である。
【００２２】
具体的に述べると、例えば、従来のリモコン受信回路５００において、発行され得ないタイミング（たとえば、リモコン動作開始直後）に、図２１（ｂ）に示されるようなデータが含まれないリピートヘッダ部のみからなるリモコン信号が検出された場合でも、従来のリモコン受信回路５００では、ヘッダ割り込み生成回路５６０にてヘッダ割り込み信号Ｓ５６０が生成され、ＣＰＵ５９０側にヘッダ割り込みが発行されてしまう。このノイズにより誤って発行されたヘッダ割り込みは、ＣＰＵの誤動作の原因になるので、ＣＰＵ５９０側では、前記誤動作を回避するためのコードを持たねばならない。
【００２３】
二つ目は、トレーラ部と認識される波形がノイズによって生成されてしまう場合である。
具体的に述べると、リモコンのボタン押下時に、送信機から発行されるリモコン信号の波形が、何らかの外乱（たとえば、送信機の前を人が横切るなどの状況）で途絶した場合にも、従来のリモコン受信回路５００では、トレーラ波形と同様の波形が受信されて、トレーラ検出回路５８０にてトレーラ割り込み信号Ｓ５８０が生成され、トレーラ割り込みがＣＰＵ５９０に発行されてしまう。従来のリモコン受信システムでは、前記トレーラ割り込み信号Ｓ５８０はリモコン信号の受信完了を意味する割り込みとして利用されるため、これが誤って発行されると、ＣＰＵ５９０が誤動作する恐れがある。したがって、ＣＰＵ５９０側では、このトレーラ割り込み信号Ｓ５８０に対しても、誤動作を回避するためのコードを持たねばならない。
【００２４】
三つ目は、ノイズにより、指定ビット数以上のデータが検出されてしまう場合である。
具体的に述べると、リモコン信号のデータ部のデータ検出の終端において、本来受理すべきビット数分の波形を受信した後に発生するノイズ（たとえば、リモコンボタンのリリースに伴うノイズ）が原因で、リモコン受信回路５００に、データと誤検出される波形が受信されることがある。従来のリモコン受信回路５００では、データ割り込み信号Ｓ５７０が発行された後でも、この誤検出されたビットがデータとして内蔵レジスタ５５０に書き込まれてしまうため、データ割り込み信号Ｓ５７０が発行される前に格納された指定ビット数分のデータが破損してしまう恐れがある。これを避けるために、ＣＰＵ５９０側では、データ割り込み信号Ｓ５７０が発生してから、前記内蔵レジスタ５５０に書き込まれたデータがノイズにより破損してしまう前までに、速やかに該内蔵レジスタ５５０内に格納されたデータを読みだす必要が生じる。したがって、ＣＰＵ５９０側では、データ割り込みの優先度を高くし、該データ割り込みの発生後のデータ読み出しが、すばやく行われるようにしなければならない。
【００２５】
本発明は、前述した問題を解決するためになされたものであり、リモコン信号の受信機能を実現するために費やされるＣＰＵのコード、処理能力、リソース等を軽減し、装置全体のコスト削減が可能なリモコン受信システムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
前記課題を解決するために、本発明のリモコン受信システムは、ヘッダ部、及び押下されたリモコンボタンに応じたデータ部を有するリモコン信号を受信するリモコン受信回路と、該リモコン受信回路を制御して、該リモコン受信回路において受信したリモコン信号をデコードするＣＰＵと、からなるリモコン受信システムにおいて、前記リモコン受信回路は、前記リモコン信号の立上りエッジと立下りエッジを検出するエッジ検出回路と、前記リモコン信号の立上りエッジから立下りエッジまでの時間間隔、及び立下りエッジから立上りエッジまでの時間間隔をカウントするカウンタ回路と、前記カウンタ回路のカウント結果から、前記リモコン信号のヘッダ部を検出するヘッダ検出回路と、前記カウンタ回路のカウント結果から、該リモコン信号のデータ部の０または１を判別し、該判別結果を内蔵レジスタに格納するデータ判別回路と、前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出されたときに、前記ＣＰＵに対して前記リモコン信号のヘッダ部の検出を通知するヘッダ割り込み信号を出力するヘッダ割り込み生成回路と、前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出された後、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって内蔵レジスタに格納されたときに、前記ＣＰＵに対して前記リモコン信号のデータ受信完了を通知するデータ割り込み信号を出力するデータ割り込み生成回路と、前記ヘッダ割り込み信号と前記データ割り込み信号のいずれかを、前記ＣＰＵの指示により選択するスイッチと、を備え、前記ＣＰＵは、１つの割り込みポートを持ち、該割り込みポートを介して、前記リモコン受信回路の前記スイッチからの割り込み信号を受信して、該受信した割り込み信号に応じて前記リモコン受信回路を制御し、前記スイッチからの前記割り込み信号を一定時間受信しなかった際、前記リモコンボタンがリリースされたと判断するものである。
【００２７】
さらに、本発明のリモコン受信システムにおいて、前記ＣＰＵは、当該リモコン受信システムの動作開始時、及び前記リモコンボタンのリリースの検知時に、前記スイッチに対して、前記データ割り込み信号を選択するよう指示するものである。
【００２８】
さらに、本発明のリモコン受信システムにおいて、前記リモコン受信回路が、前記ヘッダ部、及びデータ部を有する前記リモコン信号に続いて、前記データ部が含まれないリピートヘッダ部のみからなるリモコン信号を受信する時、前記ＣＰＵは、前記スイッチに対して、当該リモコン受信システムの動作開始時に、前記データ割り込み信号を選択するよう指示し、前記リモコン受信回路から前記割り込みポートを介して前記データ割り込み信号を受信した後に、前記ヘッダ割り込み信号を選択するよう指示し、前記リモコンボタンのリリース検知時に、再度前記データ割り込み信号を選択するよう指示するものである。
【００２９】
さらに、本発明のリモコン受信システムにおいて、前記データ判別回路は、前記ＣＰＵによって予め指示されていたビット数分のデータを前記内蔵レジスタに格納した後、前記ヘッダ検出回路において次のヘッダ部が検出されるまで、該内蔵レジスタに格納されたデータを更新しないものである。
【００３０】
さらに、本発明のリモコン受信システムにおいて、前記データ判別回路は、前記ＣＰＵによって予め指示されていたビット数分のデータが前記内蔵レジスタに格納される前に、次のヘッダ部を受信した場合、前記ヘッダ検出回路における、該次のヘッダ部の検出を優先させるものである。
【００３１】
さらに、本発明のリモコン受信システムにおいて、前記リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とからなる場合、前記リモコン受信回路は、前記内蔵レジスタに格納したデータの前記メインデータ部と前記反転データ部とを比較して、全ビット不一致であれば前記データを有効と判断し、それ以外は前記データを無効と判断する有効性判別回路を備え、前記データ割り込み生成回路は、前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出された後、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され、且つ前記有効性判別回路によって、該内蔵レジスタに格納されたデータが有効と判断されたときに、前記データ割り込み信号を出力するものである。
【００３２】
さらに、本発明のリモコン受信システムにおいて、前記リモコン受信回路は、前記カウンタ回路のカウント結果から、前記ＣＰＵによって指示された論理レベルが、該ＣＰＵによって予め指示されていた期間より長時間持続したことを検出したときにＯＦＦフラグを立ち上げるＯＦＦ検出回路を備え、前記ＣＰＵは、前記ＯＦＦフラグが立ち上がった際、前記リモコンボタンがリリースされたと判断するものである。
【００３３】
さらに、本発明のリモコン受信システムにおいて、前記リモコン信号のヘッダ部が、ある論理レベルを一定時間維持する波形と、その反対の論理レベルを一定時間維持する波形とからなる場合、前記リモコン受信回路が前記リモコン信号のヘッダ部の受信中に、前記カウンタ回路が前記ＣＰＵによって予め指示されていた期間内の論理レベルの変化を検出した時、該カウンタ回路は、前記期間内の論理レベルの変化をノイズとして無視し、論理レベルが変化する前のカウント値からカウントを開始するものである。
【００３４】
さらに、本発明のリモコン受信システムにおいて、前記リモコン受信回路は、前記ＣＰＵによって予め指示されていた期間になるまでカウントアップしつづけ、前記ヘッダ検出回路において前記リモコン信号の前記ヘッダ部が検出されるか、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され且つ該内蔵レジスタに格納された前記データが前記有効性判別回路によって有効と判断されるかの２つの条件のうち、前記ＣＰＵによって指示されている方が満たされたときにリセットされるＯＦＦカウンタと、前記ＯＦＦカウンタがリセットされた時にＯＮフラグを立ち上げ、前記ＣＰＵによって予め指示されていた期間と前記ＯＦＦカウンタのカウント値とが等しくなったときに該ＯＮフラグを立ち下げるＯＦＦ検出回路と、を備え、前記ＣＰＵは、前記ＯＮフラグが立ち下がった際、前記リモコンボタンがリリースされたと判断するものである。
【００３５】
また、本発明のリモコン受信システムは、ヘッダ部、及び押下されたリモコンボタンに応じたデータ部を有するリモコン信号を受信するリモコン受信回路と、該リモコン受信回路を制御して、該リモコン受信回路において受信したリモコン信号をデコードするＣＰＵと、からなるリモコン受信システムにおいて、前記リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とからなる場合、前記リモコン受信回路は、前記リモコン信号の立上りエッジと立下りエッジを検出するエッジ検出回路と、前記リモコン信号の立上りエッジから立下りエッジまでの時間間隔、及び立下りエッジから立上りエッジまでの時間間隔をカウントするカウンタ回路と、前記カウンタ回路のカウント結果から、前記リモコン信号のヘッダ部を検出するヘッダ検出回路と、前記カウンタ回路のカウント結果から、該リモコン信号のデータ部の０または１を判別し、該判別結果を内蔵レジスタに格納するデータ判別回路と、前記内蔵レジスタに格納したデータの前記メインデータ部と前記反転データ部とを比較して、全ビット不一致であれば前記データを有効と判断し、それ以外は前記データを無効と判断する有効性判別回路と、前記ＣＰＵによって予め指示されていた期間になるまでカウントアップしつづけ、前記ヘッダ検出回路において前記リモコン信号の前記ヘッダ部が検出されるか、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され且つ該内蔵レジスタに格納された前記データが前記有効性判別回路によって有効と判断されるかの２つの条件のうち、前記ＣＰＵによって指示されている方が満たされたときにリセットされるＯＦＦカウンタと、前記ＯＦＦカウンタがリセットされた時にＯＮフラグを立ち上げ、前記ＣＰＵによって予め指示されていた期間と前記ＯＦＦカウンタのカウント値とが等しくなったときに該ＯＮフラグを立ち下げるＯＦＦ検出回路と、前記ＯＦＦカウンタがリセットされたときにセットされ、前記ＣＰＵによってリセットされるデータヘッダフラグと、を備え、前記ＣＰＵは、前記データヘッダフラグの値と、前記ＯＮフラグの値とを、一定のタイミングでそれぞれ読み出し、その読み出した値に応じて前記リモコン受信回路を制御するものである。
【００３６】
これにより、前記ＣＰＵは、自身に発行される割り込みを状況に応じてヘッダ割り込み信号にするか、データ割り込み信号にするかを選択でき、この結果、リモコン受信機能を実現するために必要なＣＰＵの割り込みポートを１つに抑えらることができる。また、前記リモコン受信回路は、トレーラ割り込みを発行しないため、当該リモコン受信回路の規模も削減でき、さらに、前記ＣＰＵに、トレーラ割り込みが発行されないことから、該トレーラ割り込みに対応するコードや処理負荷も削減できる。
【００３７】
さらに、リモコン受信回路がデータを伴わないエラーヘッダを受信しても、ＣＰＵに該エラーヘッダによるヘッダ割り込みが発行されないようにすることができ、無駄な割り込みによるＣＰＵの処理負荷を削減できる。
【００３８】
さらに、リモコンボタンが連続押下され、前記リモコン受信回路において、データ部を伴わないリピートヘッダ部のみからなるリモコン信号を受信した場合にも、ヘッダ割り込みを検出でき、この結果、ＣＰＵが、前記リモコンボタンの連続押下を検出可能となる。
【００３９】
さらに、前記ＣＰＵにおいて、データ割り込みが発行されてから、該内蔵レジスタに格納されたデータを取得するまでのリアクションに時間的な余裕を持たせることができ、この結果、ＣＰＵの割り込みポートの優先度を低く設定することができる。
【００４０】
さらに、リモコン受信回路において、前記内蔵レジスタに格納されたデータの有効性を有効性判断回路にて判断し、ＣＰＵにエラーデータによる無駄な割り込みを発行しないようにして、ＣＰＵの処理能力を削減することができる。
【００４１】
さらに、ＯＦＦ検出回路において、リモコンボタンのリリースを、ＣＰＵの内蔵タイマにより判断するのではなく、リモコン受信回路内に設けられたＯＦＦ検出回路において検出することができ、リモコン受信機能を実現するＣＰＵのリソースをさらに削減できる。
【００４２】
さらに、リモコン信号のヘッダ部の検出において、ノイズの影響をうけないようにすることができる。
【００４３】
さらに、ノイズによってリモコンボタンのリリースの検出にかかる時間が、ＣＰＵにより指定された期間より遅延されることを回避することができる。
【００４４】
また、リモコン受信回路からＣＰＵに割り込みが発行されないようにすることができ、前記ＣＰＵの割り込みポートを全く使わずとも、ＣＰＵが持つラウンドロビンタスクのみでリモコン受信機能を実現することができる。
【発明の効果】
【００４５】
本発明のリモコン受信システムによれば、ヘッダ部、及び押下されたリモコンボタンに応じたデータ部を有するリモコン信号を受信するリモコン受信回路と、該リモコン受信回路を制御して、該リモコン受信回路において受信したリモコン信号をデコードするＣＰＵと、からなるリモコン受信システムにおいて、前記リモコン受信回路は、前記リモコン信号の立上りエッジと立下りエッジを検出するエッジ検出回路と、前記リモコン信号の立上りエッジから立下りエッジまでの時間間隔、及び立下りエッジから立上りエッジまでの時間間隔をカウントするカウンタ回路と、前記カウンタ回路のカウント結果から、前記リモコン信号のヘッダ部を検出するヘッダ検出回路と、前記カウンタ回路のカウント結果から、該リモコン信号のデータ部の０または１を判別し、該判別結果を内蔵レジスタに格納するデータ判別回路と、前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出されたときに、前記ＣＰＵに対して前記リモコン信号のヘッダ部の検出を通知するヘッダ割り込み信号を出力するヘッダ割り込み生成回路と、前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出された後、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって内蔵レジスタに格納されたときに、前記ＣＰＵに対して前記リモコン信号のデータ受信完了を通知するデータ割り込み信号を出力するデータ割り込み生成回路と、前記ヘッダ割り込み信号と前記データ割り込み信号のいずれかを、前記ＣＰＵの指示により選択するスイッチと、を備え、前記ＣＰＵは、１つの割り込みポートを持ち、該割り込みポートを介して、前記リモコン受信回路の前記スイッチからの割り込み信号を受信して、該受信した割り込み信号に応じて前記リモコン受信回路を制御し、前記スイッチからの前記割り込み信号を一定時間受信しなかった際、前記リモコンボタンがリリースされたと判断するようにしたので、リモコン受信機能を実現するために必要なＣＰＵの割り込みポートを１つに抑えて、ＣＰＵのリソースを削減することができ、また、トレーラ割り込みを発行しないことからリモコン受信回路の回路規模も削減でき、且つ、該トレーラ割り込みに対応するためのＣＰＵにおけるコードや処理負荷も削減できる。
【００４６】
さらに、本発明のリモコン受信システムによれば、前記ＣＰＵは、当該リモコン受信システムの動作開始時、及び前記リモコンボタンのリリースの検知時に、前記スイッチに対して、前記データ割り込み信号を選択するよう指示するようにしたので、ノイズによって発生するエラーヘッダを、前記リモコン受信回路にて検出したとしても、このエラーヘッダによるヘッダ割り込みがＣＰＵに発行されないため、ノイズによって発生する無駄な割り込みによる、ＣＰＵの処理負荷を削減することができる。
【００４７】
さらに、本発明のリモコン受信システムによれば、前記リモコン受信回路が、前記ヘッダ部、及びデータ部を有する前記リモコン信号に続いて、前記データ部が含まれないリピートヘッダ部のみからなるリモコン信号を受信する時、前記ＣＰＵは、前記スイッチに対して、当該リモコン受信システムの動作開始時に、前記データ割り込み信号を選択するよう指示し、前記リモコン受信回路から前記割り込みポートを介して前記データ割り込み信号を受信した後に、前記ヘッダ割り込み信号を選択するよう指示し、前記リモコンボタンのリリース検知時に、再度前記データ割り込み信号を選択するよう指示するようにしたので、前記ＣＰＵは、リモコンボタンの連続押下を検出することができ、その連続押下されたボタンに対応する処理をすることができる。
【００４８】
さらに、本発明のリモコン受信システムによれば、前記データ判別回路は、前記ＣＰＵによって予め指示されていたビット数分のデータを前記内蔵レジスタに格納した後、前記ヘッダ検出回路において次のヘッダ部が検出されるまで、該内蔵レジスタに格納されたデータを更新しないようにしたので、前記リモコン受信回路において、前記ＣＰＵによって予め指示されていたビット数以上のデータを受信しても、該内蔵レジスタ内のデータを保持することができる。そしてこの結果、ＣＰＵは、データ割り込みが発生してから、該内蔵レジスタに格納されたデータを取得するまでのリアクションに、時間的な余裕を得ることができるため、ＣＰＵの割り込みポートの優先度を低く設定することが可能となる。
【００４９】
さらに、本発明のリモコン受信システムによれば、前記データ判別回路は、前記ＣＰＵによって予め指示されていたビット数分のデータが前記内蔵レジスタに格納される前に、次のヘッダ部を受信した場合、前記ヘッダ検出回路における、該次のヘッダ部の検出を優先させるようにしたので、リモコン信号のデータ部を受信している際に何らかの原因で信号が途切れ、内蔵レジスタに予め設定されたビット数のデータが格納される前に、次のリモコン信号のヘッダ部を受信したとしても、該ヘッダ部の検出を優先して行い、該ヘッダ部に続く新しいデータ部のデータ待ち状態に移行できる。そしてこの結果、本リモコン受信システムにおいては、リモコン信号のデータの一部が欠落するアクシデントが起きても、ＣＰＵに負担をかけることなく、処理を続行することが可能となる。
【００５０】
さらに、本発明のリモコン受信システムによれば、前記リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とからなる場合、前記リモコン受信回路は、前記内蔵レジスタに格納したデータの前記メインデータ部と前記反転データ部とを比較して、全ビット不一致であれば前記データを有効と判断し、それ以外は前記データを無効と判断する有効性判別回路を備え、前記データ割り込み生成回路は、前記ヘッダ検出回路により前記リモコン信号のヘッダ部が検出された後、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され、且つ前記有効性判別回路によって、該内蔵レジスタに格納されたデータが有効と判断されたときに、前記データ割り込み信号を出力するようにしたので、前記内蔵レジスタに格納されたデータがエラーデータである際には、ＣＰＵにデータ割り込みが発行されないようにすることができ、エラーデータによって発生する無駄な割り込みによる、ＣＰＵの処理負荷を削減することができる。また、前記内蔵レジスタ内のデータがエラーデータである際に、リモコンボタンが連続押下されていた場合、このエラーデータの後に、リピートヘッダ部が続くこととなるが、前述のように前記内蔵レジスタのデータの有効性を判断すれば、ＣＰＵに該エラーデータによるデータ割り込み、及び該エラーデータに続くリピートヘッダによるヘッダ割り込みが発行されないようにすることができ、ＣＰＵにおける無駄な処理をさらに削減することができる。
【００５１】
さらに、本発明のリモコン受信システムによれば、前記リモコン受信回路は、前記カウンタ回路のカウント結果から、前記ＣＰＵによって指示された論理レベルが、該ＣＰＵによって予め指示されていた期間より長時間持続したことを検出したときにＯＦＦフラグを立ち上げるＯＦＦ検出回路を備え、前記ＣＰＵは、前記ＯＦＦフラグが立ち上がった際、前記リモコンボタンがリリースされたと判断するようにしたので、ＣＰＵの内蔵タイマを用いることなく、リモコンボタンのリリースを検出することができ、この結果、さらに少ないＣＰＵのリソースでリモコン受信機能を実現することが可能となる。
【００５２】
さらに、本発明のリモコン受信システムによれば、前記リモコン信号のヘッダ部が、ある論理レベルを一定時間維持する波形と、その反対の論理レベルを一定時間維持する波形とからなる場合、前記リモコン受信回路が前記リモコン信号のヘッダ部の受信中に、前記カウンタ回路が前記ＣＰＵによって予め指示されていた期間内の論理レベルの変化を検出した時、該カウンタ回路は、前記期間内の論理レベルの変化をノイズとして無視し、論理レベルが変化する前のカウント値からカウントを開始するようにしたので、リモコン受信回路において、リモコン信号のヘッダ部を検出する際に、ノイズの影響を受けにくくすることができる。
【００５３】
さらに、本発明のリモコン受信システムによれば、前記リモコン受信回路は、前記ＣＰＵによって予め指示されていた期間になるまでカウントアップしつづけ、前記ヘッダ検出回路において前記リモコン信号の前記ヘッダ部が検出されるか、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され且つ該内蔵レジスタに格納された前記データが前記有効性判別回路によって有効と判断されるかの２つの条件のうち、前記ＣＰＵによって指示されている方が満たされたときにリセットされるＯＦＦカウンタと、前記ＯＦＦカウンタがリセットされた時にＯＮフラグを立ち上げ、前記ＣＰＵによって予め指示されていた期間と前記ＯＦＦカウンタのカウント値とが等しくなったときに該ＯＮフラグを立ち下げるＯＦＦ検出回路と、を備え、前記ＣＰＵは、前記ＯＮフラグが立ち下がった際、前記リモコンボタンがリリースされたと判断するようにしたので、ＣＰＵの内蔵タイマを用いることなくリモコンボタンのリリースを検出することができ、この結果、更に少ないＣＰＵのリソースでリモコン受信機能を実現することができる。また、前記ＯＦＦカウンタを設けたので、前記リモコンボタンのリリースを検知する時に、ノイズの影響を受けにくくすることができる。
【００５４】
また、本発明のリモコン受信システムによれば、ヘッダ部、及び押下されたリモコンボタンに応じたデータ部を有するリモコン信号を受信するリモコン受信回路と、該リモコン受信回路を制御して、該リモコン受信回路において受信したリモコン信号をデコードするＣＰＵと、からなるリモコン受信システムにおいて、前記リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とからなる場合、前記リモコン受信回路は、前記リモコン信号の立上りエッジと立下りエッジを検出するエッジ検出回路と、前記リモコン信号の立上りエッジから立下りエッジまでの時間間隔、及び立下りエッジから立上りエッジまでの時間間隔をカウントするカウンタ回路と、前記カウンタ回路のカウント結果から、前記リモコン信号のヘッダ部を検出するヘッダ検出回路と、前記カウンタ回路のカウント結果から、該リモコン信号のデータ部の０または１を判別し、該判別結果を内蔵レジスタに格納するデータ判別回路と、前記内蔵レジスタに格納したデータの前記メインデータ部と前記反転データ部とを比較して、全ビット不一致であれば前記データを有効と判断し、それ以外は前記データを無効と判断する有効性判別回路と、前記ＣＰＵによって予め指示されていた期間になるまでカウントアップしつづけ、前記ヘッダ検出回路において前記リモコン信号の前記ヘッダ部が検出されるか、前記ＣＰＵによって予め指示されていたビット数のデータが前記データ判別回路によって前記内蔵レジスタに格納され且つ該内蔵レジスタに格納された前記データが前記有効性判別回路によって有効と判断されるかの２つの条件のうち、前記ＣＰＵによって指示されている方が満たされたときにリセットされるＯＦＦカウンタと、前記ＯＦＦカウンタがリセットされた時にＯＮフラグを立ち上げ、前記ＣＰＵによって予め指示されていた期間と前記ＯＦＦカウンタのカウント値とが等しくなったときに該ＯＮフラグを立ち下げるＯＦＦ検出回路と、前記ＯＦＦカウンタがリセットされたときにセットされ、前記ＣＰＵによってリセットされるデータヘッダフラグと、を備え、前記ＣＰＵは、前記データヘッダフラグの値と、前記ＯＮフラグの値とを、一定のタイミングでそれぞれ読み出し、その読み出した値に応じて前記リモコン受信回路を制御するようにしたので、ＣＰＵが割り込みポートを全く使わずに、リモコン受信機能を実現することができ、ＣＰＵのリモコン受信機能のためのリソースを、さらに削減することが可能となる。
【発明を実施するための最良の形態】
【００５５】
本発明を実施するための形態について、以下に詳細に説明する。なお、以下に示すすべての形態におけるリモコン受信回路は、前述した図２１及び図２２に示されるリモコン信号を受信するものとし、該リモコン信号のデータ部は、３２ビットであるものとする。
【００５６】
（実施の形態１）
以下、図１〜図５を用いて、本実施の形態１におけるリモコン受信回路及びリモコン受信システムについて説明する。
まず、図１を用いて、本実施の形態１にかかるリモコン受信システムの構成について説明する。図１は、本実施の形態１におけるリモコン受信システムの構成を示す図である。
【００５７】
図１において、本実施の形態１にかかるリモコン受信システムは、送信機（図示せず）から発行されたリモコン信号を受信するリモコン受信回路１００と、該リモコン受信回路１００の各種レジスタに任意の値を設定し、リモコン受信回路１００を制御すると共に、リモコン信号をデコードするＣＰＵ１９０とからなるものであり、前記リモコン受信回路１００は、エッジ検出回路１１０と、カウンタ回路１２０と、ヘッダ検出回路１３０と、データ判別回路１４０と、シフトレジスタ１５０と、ヘッダ割り込み生成回路１６０と、データ割り込み生成回路１７０と、モードレジスタ１８０と、スイッチ１１１とから構成される。そして、前記ＣＰＵ１９０は、リモコン受信機能を実現するために必要な割り込みポートとして、前記リモコン受信回路１００からの割り込み信号Ｓ１１１を受信する割り込みポート１９１を備えるものである。
【００５８】
以下、前記リモコン受信回路１００の構成を詳述する。
前記エッジ検出回路１１０は、カウンタ回路１２０及び、データ判別回路１４０と接続されており、受信したリモコン信号の立上りエッジと立下りエッジを検出して、前記カウンタ回路１２０とデータ判別回路１４０に、その検出したエッジを通知する。
【００５９】
前記カウンタ回路１２０は、ロングロウカウンタ（以下、「ＬＬＣ」と称す。）１２１と、ロングハイカウンタ（以下、「ＬＨＣ」と称す。）１２２を有し、前記エッジ検出回路１１０、ヘッダ検出回路１３０、データ判別回路１４０と接続されている。そして、前記カウンタ回路１２０内のＬＬＣ１２１は、前記エッジ検出回路１１０からのエッジ検出通知に対して、立下りエッジでカウント値をリセットしてカウントを開始し、立上りエッジでカウントをストップするものであり、また前記カウンタ回路１２０内のＬＨＣ１２２は、立上りエッジでカウントを開始し、立下りエッジでカウントをストップしてカウンタ値をリセットするものである。
【００６０】
前記ヘッダ検出回路１３０は、ロングロウ閾値レジスタ（以下、「ＴＨＬレジスタ」と称す。）１３１と、ロングハイ閾値レジスタ（以下、「ＴＨＨレジスタ」と称す。）１３２とを有し、前記カウンタ回路１２０、データ判別回路１４０、ヘッダ割り込み生成回路１６０と接続されている。なお、前記ヘッダ検出回路１３０内のＴＨＬレジスタ１３１及びＴＨＨレジスタ１３２は、ＣＰＵ１９０により値が設定可能なレジスタであり、前記ＴＨＬレジスタ１３１には、リモコン信号のヘッダ部のロウ区間の閾値が、またＴＨＨレジスタ１３２には、ヘッダ部のハイ区間の閾値が設定される。そして、前記ヘッダ検出回路１３０は、前記データ判別回路１４０、及びヘッダ割り込み生成回路１６０に対して、前記カウンタ回路１２０内のＬＬＣ１２１の出力値がＴＨＬレジスタ１３１の設定値を上回り、且つ前記カウンタ回路１２０内のＬＨＣ１２２の出力値がＴＨＨレジスタ１３２の設定値を上回っているとき、ヘッダ検出信号Ｓ１３０“１”を、それ以外のとき、ヘッダ検出信号“０”を出力する。
【００６１】
前記ヘッダ割り込み生成回路１６０は、前記ヘッダ検出回路１３０、及びデータ判別回路１４０に接続されるものであり、またスイッチ１１１を介して、前記ＣＰＵ１９０の割り込みポート１９１に接続される。そして、前記ヘッダ割り込み生成回路１６０は、ヘッダ検出回路１３０からのヘッダ検出信号Ｓ１３０の立上りエッジを検出すると、前記スイッチ１１１に対し、ヘッダ割り込み信号Ｓ１６０として、１サイクルのパルスを１回出力する。
【００６２】
前記データ判別回路１４０は、データ待ちフラグ１４１と、データ長レジスタ（以下、「ＤＬレジスタ」と称す。）１４２と、データカウンタ１４３と、Ｄ１フラグ１４４と、Ｄ０フラグ１４５とを有し、前記カウンタ回路１２０、シフトレジスタ１５０、及びデータ割り込み生成回路１７０に接続されている。なお、前記ヘッダ判別回路１４０内のＤＬレジスタ１４２は、ＣＰＵ１９０により値が設定可能なレジスタである。そして、前記データ判別回路１４０内のデータ待ちフラグ１４１は、ヘッダ検出信号Ｓ１３０の立下りエッジを検出すると“１”にセットされ、前記ＤＬレジスタ１４２の設定値と前記データカウンタ１４３の出力値とが一致すると“０”にクリアされる。また、前記データ判別回路１４０内のデータカウンタ１４３は、前記ヘッダ検出回路１３０からのヘッダ検出信号Ｓ１３０の立上りエッジを検出するとリセットされ、シフトレジスタ１５０が１ビットシフトするとインクリメントされる。さらに、前記データ判別回路１４０内の前記Ｄ０フラグ１４５は、前記データ待ちフラグ１４１が“１”で、且つカウンタ回路１２０内のＬＨＣ１２２の出力値が１となったときに“１”にセットされ、一方、前記データ待ちフラグ１４１が“０”になるか、または前記エッジ検出回路１１０から立上りエッジが検出されるか、または前記カウンタ回路１２０内のＬＨＣ１２２の出力値が２Ｔを上回るか、またはヘッダ検出回路１３０からヘッダ検出信号Ｓ１３０の立上りを検出すると“０”にリセットされる。そして、前記Ｄ１フラグ１４４は、前記データ待ちフラグ１４１が“１”で、且つ前記カウンタ回路１２０内のＬＨＣ１２２の出力値が２Ｔを上回ったときに“１”にセットされ、一方、前記データ待ちフラグ１４１が“０”になるか、または前記エッジ検出回路１１０から立上りエッジが検出されるか、または前記ヘッダ検出回路１３０からのヘッダ検出信号Ｓ１３０の立上りエッジを検出すると“０”にリセットされるものである。さらに、データ判別回路１４０は、前記エッジ検出回路１１０から立下りエッジの検出が通知されると、その際該データ判別回路１４０内のＤ０フラグ１４５が“１”であったら、シフトレジスタ１５０を１ビットシフトさせて“０”を追加し、一方、該データ判別回路１４０内のＤ１フラグ１４４が“１”であったら、シフトレジスタ１５０を１ビットシフトさせて“１”を追加する。そして、前記データ判別回路１４０は、該データ判別回路１４０内のＤＬレジスタ１４２の設定値とデータカウンタ１４３の出力値とが一致すると、シフトレジスタ１５０にリモコン信号のデータ部に相当するデータが書き込まれたとして、データ割り込み生成回路１７０に対して、データ受信完了信号Ｓ１４０“１”を出力し、それ以外はデータ受信完了信号Ｓ１４０“０”を出力する。
【００６３】
前記データ割り込み生成回路１７０は、前記データ判別回路１４０と接続されており、またスイッチ１１１を介して、ＣＰＵ１９０の割り込みポート１９１に接続される。そして、データ割り込み生成回路１７０は、前記データ判別回路１４０からのデータ受信完了信号Ｓ１４０の立上りエッジを検出すると、データ割り込み信号Ｓ１７０として、スイッチ１１１に対し、１サイクルのパルスを１回出力する。
【００６４】
前記モードレジスタ１８０は、前記ＣＰＵ１９０により値が設定可能なレジスタで、スイッチ１１１と接続される。このモードレジスタ１８０に“０”が設定されていると、スイッチ１１１は、ヘッダ割り込み生成回路１６０とＣＰＵ１９０とを接続し、一方、モードレジスタ１８０に“１”が設定されていると、スイッチ１１１は、データ割り込み生成回路１６０とＣＰＵ１９０とを接続する。
【００６５】
次に、図２〜図４を用いて、前述した構成を有するリモコン受信システムにおいて、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の処理の流れを説明する。図２は、本実施の形態１におけるリモコン受信システムにおいて、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路及びＣＰＵのタイミングチャートを示す図であり、図３は、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態１におけるＣＰＵ側での処理を示すフローチャートを示す図であり、図４は、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態１におけるリモコン受信回路での処理を示すフローチャートを示す図である。
【００６６】
まず、ＣＰＵ１９０は、動作開始時に、ヘッダ検出回路１３０内のＴＨＬレジスタ１３１とＴＨＨレジスタ１３２、データ判別回路１４０内のＤＬレジスタ１４２、及びモードレジスタ１８０の値を設定する（Ｆ３０１，Ｆ３０２）。以下、前記各レジスタに設定される値について具体的に説明する。
【００６７】
前記ヘッダ検出回路１３０内のＴＨＬレジスタ１３１の設定値は、リモコン信号のヘッダ部のロウ区間検出の閾値として用いられるので、リピートヘッダのロウ区間である１６Ｔ未満の適当な値に設定する。ここでは６Ｔとする。また、ＴＨＨレジスタ１３２の設定値は、リモコン信号のヘッダ部のハイ区間検出の閾値として用いられるので、リピートヘッダのハイ区間である４Ｔ未満の適当な値に設定する。ここでは３Ｔとする。そして、ＤＬレジスタ１４３には、データ部のデータ長を設定する。ここでは３２を設定する。そして、モードレジスタ１８０には、データ割り込み生成回路１７０とＣＰＵ１９０とが接続されるように、“１”を設定する。
【００６８】
以上のように各レジスタに値を設定した後、ＣＰＵ１９０は、リモコン受信回路１００からデータ割り込みが発行されるのを待つ。
リモコン受信回路１００側では、動作開始時に、カウンタ回路１２０及びデータ判別回路１４０内のデータカウンタ１４３を初期化する（Ｆ４０１）。
【００６９】
リモコンのボタンが押下されると、まずリモコン受信回路１００にはリモコン信号のヘッダ部が到着する。ヘッダ部の最初の立下りエッジをエッジ検出回路１１０が検出した時刻を時刻０とすると（Ｆ４０２）、時刻０において、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２とがリセットされる（Ｆ４０３）。このとき、データ判別回路１４０内のＤ０フラグ１４５、及びＤ１フラグは共に“０”であるため（Ｆ４０４，Ｆ４０６）、シフトレジスタ１５０にはデータが格納されることなく、カウンタ回路１２０のみがカウントアップされる（Ｆ４１４）。
【００７０】
そして、時刻６Ｔにおいて、リモコン信号のヘッダ部のロウ区間をカウントしているＬＬＣ１２１の出力値がＴＨＬレジスタ１３１の値を上回る。
さらに、時刻１６Ｔに、立上りエッジが検出され（Ｆ４１３）、カウンタ回路１２０内のＬＬＣ１２１は１６Ｔをカウントしてストップし、ＬＨＣ１２２がカウントを開始する（Ｆ４２５）。
【００７１】
そして、時刻１９Ｔに、前記ＬＨＣ１２２の出力値は、ヘッダ検出回路１３０のＴＨＨレジスタ１３２の設定値を上回る。このとき、カウンタ回路１２０内のＬＬＣ１２１の出力値は１６Ｔでストップしているため、ＴＨＬレジスタの設定値を上回っている（Ｆ４１５）。従って、このとき、ヘッダ検出回路１３０は、データ判別回路１４０及びヘッダ割り込み生成回路１６０に対して、ヘッダ検出信号Ｓ１３０“１”を出力する。
【００７２】
このヘッダ検出信号Ｓ１３０の立上りエッジを検出したデータ判別回路１４０は、該データ判別回路１４０内のデータカウンタ１４３をリセットし、データ待ちフラグを“１”にセットし、さらに、Ｄ０フラグ１４５、及びＤ１フラグ１４４を“０”にリセットする（Ｆ４１６）。
【００７３】
このように、本リモコン受信システムでは、ヘッダ検出回路１３０のＴＨＨレジスタ１３２及びＴＨＬレジスタ１３１に設定された値と、カウンタ回路１２０のＬＨＣ１２２及びＬＬＣ１２１の値とを比較するステップ（図4のＦ４１５）を、立上がりエッジ及び立下りエッジを検出するたびに行い、該Ｆ４１５の条件が満たされれば、リモコン信号のヘッダ部が検出されたと判断して、ヘッダ検出信号を“１”にすると共に、その際シフトレジスタ１５０に格納されているデータのビット数に関係なく、データ判別回路１４０内のデータカウンタ１４３をリセットするようにしている（図4のＦ４１６）。これは、本リモコン受信システムでは、データ待ち状態よりヘッダ検出を優先して処理していることを示している。つまり、本リモコン受信回路では、例えば、リモコン信号のデータ部のデータのうち３０ビット受信し、残りの２ビットを待っている状況で、リモコン信号の次のヘッダ部を受信した場合、該シフトレジスタ１５０に格納されていた３０ビットのデータを破棄し、前記次のリモコン信号のヘッダ部とデータ部に対する処理に移行される。このようにヘッダ検出を優先して行うようすれば、送信機（リモコン）と受信機（リモコン受信回路）との間を人が通過する等して、リモコンからの信号が途絶えた場合であっても、次のリモコン信号のヘッダ部を受信した場合には、リモコン受信回路が、来るはずのない残りの2ビット分のデータを待つデータ待ち状態から、ＣＰＵの処理によるのではなく自力でヘッダ部検出処理に復帰することができる。
【００７４】
そしてこの後、前記ヘッダ検出信号Ｓ１３０の立上りエッジを検出したヘッダ割り込み生成回路１６０は、ヘッダ割り込み信号Ｓ１６０として１サイクルのパルスを１回出力する。ただし、このとき、モードレジスタ１８０には“１”が設定されているので、ヘッダ割り込み生成回路１６０はＣＰＵ１９０の割り込みポート１９１に接続されておらず、このヘッダ割り込み信号Ｓ１６０は、ＣＰＵ１９０には通知されない（Ｆ４１７）。
【００７５】
そして、時刻２４Ｔにおいて、エッジ検出回路１１０が立下りエッジを検出し（Ｆ４０２）、カウンタ回路１２０内のＬＬＣ１２１，ＬＨＣ１２２がともにリセットされ（Ｆ４０３）、この結果、前記ＬＬＣ１２１及びＬＨＣ１２２それぞれの値は、ヘッダ検出回路１３０のＴＨＬレジスタ１３１、及びＴＨＨレジスタ１３２の値を下回るため（Ｆ４１５）、ヘッダ検出信号Ｓ１３０“０”が出力される（Ｆ４１９）。この時、データ判別回路１４０のデータ待ちフラグ１４１には“１”がセットされているので（Ｆ４２０）、これによって、データ判別回路１４０内のＤ１フラグ１４４とＤ０フラグ１４５とがセット可能になる。
【００７６】
そして、時刻２５Ｔにおいて、エッジ検出回路１１０が立上りエッジを検出し（Ｆ４１３）、カウンタ回路１２０内のＬＬＣ１２１は、１Ｔをカウントしてストップする（Ｆ４２５）。
【００７７】
時刻２５Ｔ＋１において、カウンタ回路１２０内のＬＨＣ１２２の出力値は、“１”と等しくなる。このとき、データ判別回路１４０内のデータ待ちフラグ１４１が“１”で、且つカウンタ回路１２０内のＬＨＣ１２２が“１”を達成したため（Ｆ４２１）、前記データ判別回路１４０内のＤ０フラグ１４５が“１”にセットされる（Ｆ４２２）。
【００７８】
次に、時刻２６Ｔにおいて、エッジ検出回路１１０が立下りを検出すると（Ｆ４０２）、前記データ判別回路１４０は、Ｄ０フラグ１４５が“１”である状況下で、エッジ検出回路１１０から立下りエッジを通知されたため、前記カウンタ回路１２０内のＬＬＣ１２１，ＬＨＣ１２２をリセットすると共に（Ｆ４０３）、シフトレジスタ１５０を１ビットシフトさせて、シフトレジスタ１５０に“０”を追加する（Ｆ４０５）。このとき、データカウンタ１４３はインクリメントされて“１”になる（Ｆ４０８）。このとき、データカウンタ１４３の値はまだ指定ビット数には達していないので（Ｆ４０９）、カウンタ回路１２０がカウントアップされる（Ｆ４１４）。
【００７９】
そして、時刻２７Ｔにおいて、エッジ検出回路１１０は立上りエッジを検出し（Ｆ４１３）、データ判別回路１４０内のＤ０フラグ１４５、Ｄ１フラグ１４４はともに“０”にリセットされる（Ｆ４２５）。
【００８０】
そして、時刻２７Ｔ＋１において、前述した時刻２５Ｔ＋１の際の動作同様に、前記Ｄ０フラグ１４５が“１”にセットされる（Ｆ４２２）。
【００８１】
時刻２９Ｔにおいて、カウンタ回路１２０内のＬＨＣ１２２は２Ｔをカウントし、データ待ちフラグ１４１が“１”で、且つカウンタ回路１２０内のＬＨＣ１２２が“２Ｔ”を達成するため（Ｆ４２０，４２１，４２３）、Ｄ０フラグ１４５が“０”、Ｄ１フラグ１４４が“１”にセットされる（Ｆ４２４）。
【００８２】
時刻３０Ｔにおいて、エッジ検出回路１１０が立下りエッジを検出する（Ｆ４０２）。この時、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２はリセットされる（Ｆ４０３）。そして、データ判別回路１４０は、Ｄ１フラグ１４４が“１”の状況下で、エッジ検出回路１１０から立下りエッジの検出を通知されたため（Ｆ４０６）、シフトレジスタ１５０を１ビットシフトさせ、シフトレジスタ１５０に“１”を追加する（Ｆ４０７）。このとき、データカウンタ１４３はインクリメントされて“２”になる（Ｆ４０８）。この後、該データカウンタ１４３の値は指定ビットには達していないので（Ｆ４０９）、カウンタ回路１２０がカウントアップする（Ｆ４１４）。
【００８３】
時刻３１Ｔにおいて、エッジ検出回路１１０が立上りエッジを検出すると（Ｆ４１３）、データ判別回路１４０内のＤ０フラグ１４５とＤ１フラグ１４４はともに“０”にリセットされる（Ｆ４２５）。以下、同様にして、リモコン信号のデータ部のデータが１ビットずつシフトレジスタ１５０に格納されていく。
【００８４】
そして、前述した動作を繰り返してデータ判別回路１４０内のデータカウンタ１４３の出力値がインクリメントされて“３１”になった時刻を時刻Ｎとする時、時刻Ｎ＋１Ｔにおいてエッジ検出回路１１０が立上りエッジを検出し、さらに時刻Ｎ＋２Ｔにおいて立下りエッジを検出すると（Ｆ４０２）、シフトレジスタ１５０に“０”が追加され（Ｆ４０５）、データ判別回路１４０内のデータカウンタ１４３の出力値がインクリメントされて“３２”となり（Ｆ４０８）、該データ判別回路１４０内のデータカウンタ１４３の値とＤＬレジスタ１４２の設定値とが等しくなる（Ｆ４０９）。このとき、前記データ判別回路１４０内のデータ待ちフラグ１４１は“０”にリセットされる（Ｆ４１０）と同時に、データ判別回路１４０からデータ割り込み生成回路１７０に対して、データ受信完了信号Ｓ１４０“１”が出力される。
【００８５】
前記データ割り込み生成回路１７０は、前記データ受信完了信号Ｓ１４０の立上りを検出すると、データ割り込み信号Ｓ１７０として、１サイクルのパルスを１回出力する。この時、モードレジスタ１８０は“１”に設定されているので（Ｆ４１１）、スイッチ１１１により、前記データ割り込み生成回路１７０とＣＰＵ１９０とが接続されている。よって、ＣＰＵ１９０の割り込みポート１９１に、データ割り込み信号Ｓ１７０である割り込み信号Ｓ１１１が出力され、データ割り込みが発生する（Ｆ４１２）。
【００８６】
ＣＰＵ１９０側では、前記リモコン受信回路１００からの前記割り込み信号Ｓ１１１を受けて（Ｆ３０３）、シフトレジスタ１５０の値を読み出す（Ｆ３０４）。そして、ＣＰＵ１９０は、シフトレジスタ１５０から読み出したデータの正当性を評価して（Ｆ３０５）、該データが無効であればＦ３０２に戻り、該シフトレジスタ１５０から読み出したデータが有効であれば、押下されたボタンの情報を得、対応する処理を開始する（Ｆ３０６）。なお、このデータの正当性の評価は、押下されたリモコンボタンに対応するデータであるか否かを調べるものであり、その評価において対応するデータでなければデータが無効であると判断され、対応するデータであれば有効であると判断される。
【００８７】
この後、ＣＰＵ１９０は、モードレジスタ１８０に“０”を設定し（Ｆ３０７）、ＣＰＵ１９０に内蔵されたタイマ（図示せず）に任意の値Ｍを設定し（Ｆ３０８）、該タイマのダウンカウントを開始する（Ｆ３０９）。
【００８８】
そして、時刻Ｎ＋３Ｔにおいて、再びリモコン受信回路１００のエッジ検出回路１１０が立上りエッジを検出したとき（Ｆ４１３）、データ判別回路１４０内のＤ０フラグ１４５とＤ１フラグ１４４はともに“０”にリセットされる（Ｆ４２５）。そして、この時、データ判別回路１４０内のデータ待ちフラグ１４１は、既に“０”にリセットされているので（Ｆ４２０）、カウンタ回路１２０内のＬＨＣ１２２の出力値が１、または２Ｔになっても、前記データ判別回路１４０内のＤ０フラグ１４５とＤ１フラグ１４４は“１”にセットされず、カウンタ回路１２０がカウントアップされていくのみである（Ｆ４１４）。
【００８９】
そして、リモコンのボタンが連続的に押下されている場合には、時刻１９２Ｔにおいてリピートヘッダ部が到着する。
【００９０】
時刻１９２Ｔにおいて、エッジ検出回路１１０は立下りエッジを検出し（Ｆ４０２）、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２がリセットされる（Ｆ４０３）。
【００９１】
時刻１９８Ｔにおいて、リピートヘッダ部のロウ区間をカウントしているＬＬＣ１２１の出力値が、ヘッダ検出回路１３０内のＴＨＬレジスタ１３１の値を上回る。
【００９２】
さらに、時刻２０８Ｔに、立上りエッジが検出され（Ｆ４１３）、カウンタ回路１２０内のＬＬＣ１２１は１６Ｔをカウントしてストップし、ＬＨＣ１２２がカウントを開始する（Ｆ４２５）。
【００９３】
そして、時刻２１１Ｔに、前記ＬＨＣ１２２の出力値は、ヘッダ検出回路１３０のＴＨＨレジスタ１３２の設定値を上回る。このとき、カウンタ回路１２０内のＬＬＣ１２１の出力値は１６Ｔでストップしているため、ＴＨＬレジスタの設定値を上回っている（Ｆ４１５）。従って、ヘッダ検出回路１３０は、データ判別回路１４０及びヘッダ割り込み生成回路１６０に対して、ヘッダ検出信号Ｓ１３０“１”を出力する。
【００９４】
このヘッダ検出信号Ｓ１３０の立上りエッジを検出したデータ判別回路１４０は、該データ判別回路１４０内のデータカウンタ１４３をリセットし、またデータ待ちフラグを“１”に設定し、さらに、Ｄ０フラグ１４５、及びＤ１フラグ１４４を“０”にリセットする（Ｆ４１６）。また、前記データカウンタ１４３がリセットされた時点で、該データ判別回路１４０内のデータカウンタ１４３の値とＤＬレジスタ１４２の設定値とが一致しなくなるので、データ受信完了信号Ｓ１４０“０”が出力される。
【００９５】
一方、前記ヘッダ検出信号Ｓ１３０の立上りエッジを検出したヘッダ割り込み生成回路１６０は、ヘッダ割り込み信号Ｓ１６０として１サイクルのパルスを１回出力する。この時、モードレジスタ１８０には“０”が設定されているので（Ｆ４１７）、ヘッダ割り込み生成回路１６０は、スイッチ１１１によりＣＰＵ１９０と接続されている。よって、前記ＣＰＵ１９０の割り込みポート１９１に、ヘッダ割り込み信号Ｓ１６０である割り込み信号Ｓ１１１が出力され、ヘッダ割り込みが発生する（Ｆ４１８，Ｆ３１１）。
【００９６】
前記ＣＰＵ１９０側でヘッダ割り込みが発生すると、先に押下された同じボタンが連続押下されたと判断して、該連続押下されたボタンに対応する処理を行う（Ｆ３１２）。そして、ＣＰＵ１９０に内蔵されたタイマに再び任意の値Ｍを設定し（Ｆ３０８）、ダウンカウントを開始する（Ｆ３０９）。
【００９７】
以後、リモコンのボタンが連続押下されている間は、同様にして１９２Ｔの間隔でヘッダ割り込みが発行されつづける。そして、使用者がリモコンのボタンをリリースすると、リピートヘッダ部は到着しなくなり、リモコン受信回路１００はヘッダ割り込みを発行しなくなる。
そして、ＣＰＵ１９０側では、内蔵タイマがダウンカウントを経て、アンダーフロー割り込みを発行したときに（Ｆ３１０）、リモコンのボタンがリリースされたと判断する。
【００９８】
前述のようにしてリモコンのボタンのリリース判断がなされると、ＣＰＵ１９０は、モードレジスタ１８０を“１”に設定し（Ｆ３０２）、再び、リモコン受信回路１００からのデータ割り込みを待つ状態に入る。
【００９９】
このように、本実施の形態１のリモコン受信システムによれば、リモコン受信回路１００に、モードレジスタ１８０及びスイッチ１１１を設け、該モードレジスタ１８０に設定された値に応じて、前記スイッチ１１１により、ＣＰＵ１９０に出力する割り込み信号を選択して出力するようにしたので、リモコン受信機能を実現するために必要なＣＰＵ１９０側の割り込みポートを１つに抑えることができ、複数の割り込みポートを使用する従来手法よりも少ないＣＰＵのリソースを使用して、リモコン信号の受信を実現することが可能となる。
【０１００】
また、本実施の形態１に係るリモコン受信システムによれば、前記リモコン受信回路１００にトレーラ割り込みを発行する回路を設けず、データ割り込み信号にトレーラ割り込み信号と同様の意味を持たせるようにしたので、リモコン受信回路１００の装置規模を小さくでき、且つＣＰＵ１９０側にはトレーラ割り込みが発行されないので、ＣＰＵ１９０のトレーラ割り込みに対応するコードも、またその割り込みによる処理負荷も削減することができる。
【０１０１】
さらに、本実施の形態１のリモコン受信システムによれば、前記リモコン受信回路１００に、前記ヘッダ割り込み生成回路１６０あるいはデータ割り込み生成回路１７０とＣＰＵ１９０との接続を選択するスイッチ１１１と、該スイッチを切り替えるモードレジスタ１８０とを備え、動作開始時に前記スイッチ１１１がＣＰＵ１９０と前記データ割り込み生成回路１７０とを接続するようにしたので、仮に、時刻０にリモコン受信回路１００に入力されたヘッダがノイズによるエラーヘッダであり、該エラーヘッダにより前記リモコン受信回路１００においてヘッダ割り込み信号Ｓ１６０が生成されたとしても、該ヘッダ割り込み信号Ｓ１６０はＣＰＵ１９０には出力されないため、ＣＰＵ１９０側にそのエラーヘッダにより生成されたヘッダ割り込み信号Ｓ１６０を回避するためのコードを設けなくても、ＣＰＵにエラーヘッダによるヘッダ割り込みの発生を防止することができる。
【０１０２】
さらに、本実施の形態1にかかるリモコン受信システムによれば、リモコン信号を受信する一連の流れのなかで、立上がりエッジ及び立下りエッジを検出するたびにヘッダ検出を確認するステップ（図4のＦ４１５）を設けるようにしたので、リモコン信号のデータ部を受信している際に何らかの原因で信号が途切れ、シフトレジスタ１５０に予め設定されたビット数のデータが格納される前に、次のリモコン信号のヘッダ部を受信したとしても、該ヘッダ部の検出を優先して行い、該ヘッダ部に続く新しいデータ部の待ち状態に移行することができ、これにより、リモコン信号のデータ部の一部が欠落するアクシデントが起きても、ＣＰＵに負担をかけることなく、リモコン信号の受信処理を続行することが可能となる。
【０１０３】
さらに、本実施の形態１にかかるリモコン受信システムによれば、前記リモコン受信回路１００のデータ判別回路１４０内に、フラグが立ち上がっているときにのみシフトレジスタ１５０にデータを書き込み可能とするデータ待ちフラグ１４１を設け、該データ待ちフラグ１４１は、ヘッダ検出回路１３０によるヘッダ部の検出後に立ち上がり、シフトレジスタ１５０にリモコン信号のデータ部に相当するデータが格納されてデータ受信完了信号Ｓ１４０が出力された後に立ち下がるものとしたので、ＣＰＵ１９０側にデータ割り込みが発行された後に該シフトレジスタ１５０をホールド可能にし、当該リモコン受信回路１００にデータと誤検出される波形が入力されたとしても、該シフトレジスタ１５０にデータが書き込まれるのを防止して、該シフトレジスタ１５０に格納されたリモコン信号のデータが破損することをなくすことができる。そしてこれにより、ＣＰＵ１９０では、従来のように、データ割り込みを受信した後の前記シフトレジスタ１５０の読み出しにリアルタイム性が厳しく要求されなくなり、該ＣＰＵ１９０の割り込みポート１９１の割り込み優先度を低く設定することができる。そして割り込みポートの優先度を低く設定できれば、ＣＰＵが本来制御しようとするシステムの処理が圧迫されなくなり、動作の遅延が生じないという効果も得られる。
【０１０４】
なお、前述の説明においては、リモコン受信回路１００が、ボタンを連続押下された際に図２２（ａ）に示されるようなデータを伴わないヘッダ部からなるリモコン信号を受信する場合について説明したが、当該リモコン受信回路１００において受信するリモコン信号は、ボタンを連続押下された際に図２２（ｂ）に示されるような同じ波形が繰り返し続くリモコン信号であってもよい。
【０１０５】
以下、図５及び図４を用いて、前述した構成を持つリモコン受信回路１００において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の処理の流れを説明する。図５は、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態１におけるＣＰＵ側での処理を示すフローチャート図である。
【０１０６】
まず時刻Ｎ＋２Ｔまでの動作は、前述のシーケンスと同様であるので、省略する。
時刻Ｎ＋２Ｔにおいて、ＣＰＵ１９０側では、前述したように、データ割り込み信号Ｓ１７０である割り込み信号Ｓ１１１を受けて（Ｆ５０３）、シフトレジスタ１５０の値を読み出し（Ｆ５０４）、該シフトレジスタ１５０から読み出したデータの正当性を評価して、データの有効性を判断した後（Ｆ５０５）、押下されたボタンに対応する処理を行う（Ｆ５０６）。そしてこの後、リピートヘッダ部を受信した際には、前述したようにモードレジスタ１８０の値を“０”にセットしたが、ここでは、モードレジスタ１８０の値を再設定せず、“１”のままにしておく。すなわち、ＣＰＵ１９０は、ヘッダ割り込み待ちの状態に入らず、データ割り込み待ちの状態を続ける。
【０１０７】
この後、ＣＰＵ１９０は、内蔵されたタイマに任意の値Ｍを設定し（Ｆ５０７）、タイマのダウンカウントを開始する（Ｆ５０８）。
リモコンのボタンが連続的に押下されている場合、時刻１９２Ｔにおいて、繰り返しデータのヘッダ部が到着する。その後、時刻０〜Ｎ＋２Ｔと同様の動作を経て、リモコン受信回路１００からＣＰＵ１９０へ、再びデータ割り込みが発行される（Ｆ５１０）。
【０１０８】
前記データ割り込みを受信したＣＰＵ１９０は、シフトレジスタ１５０の値を読み出し（Ｆ５１１）、データの有効性判断を行う（Ｆ５１２）。そして、データが無効と判断されればＦ５０３へ遷移し、次のデータ割り込み待ち状態となる。一方、有効であると判断されると、ＣＰＵ１９０は、前回のデータ割り込みで取得したデータと、今回のデータ割り込みで取得したデータとが同一であるか否かを比較する（Ｆ５１３）。そして、これらのデータが一致していたら、リモコンボタンの連続押下中と判断して、その連続押下されたボタンに対応する処理を行い（Ｆ５１４）、データが一致していなければ、新たに別のボタンが押下されたものと判断して、ＣＰＵ１９０の内蔵タイマをストップし（Ｆ５１５）、その新たに押下されたボタンに対応する処理を行う（Ｆ５０６）。
【０１０９】
そして、リモコンボタンがリリースされると、それ以上、ＣＰＵ１９０にはデータ割り込みが入らなくなる。
ＣＰＵ１９０では、内蔵タイマがダウンカウントを経て、アンダーフロー割り込みを発行したとき（Ｆ５０９）、リモコンのボタンがリリースされたと判断して、Ｆ５０３に遷移し、新たなボタン押下を待つ状態になる。
【０１１０】
このように本実施の形態にかかるリモコン受信システムは、繰り返しデータを送信するタイプの送信機にも対応しうる。
【０１１１】
（実施の形態２）
以下、図６から図１２を用いて、本実施の形態２にかかるリモコン受信システムについて説明する。
【０１１２】
前記実施の形態１においては、送信機から発行されるリモコン信号のデータ部が、ヘッダ部とデータ部とで構成される場合について説明したが、本実施の形態２においては、該リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とで構成されているものとし、また、本実施の形態２のリモコン受信回路に、前記メインデータ部と前記反転データ部とを比較した結果によって、該リモコン信号のデータ部の有効性を判断する有効性判別回路と、使用者によるリモコンボタンのリリースを検出するＯＦＦ検出回路とをさらに備えて、前記実施の形態１より、少ないＣＰＵのリソース、及び少ないＣＰＵの処理能力で、リモコン受信機能を実現できるようにするものである。
【０１１３】
なお、本実施の形態２においては、前記リモコン信号のデータ部が、前記実施の形態１と同様３２ビットであって、その３２ビットのデータ部が、図６に示されるように、８ビットのカスタマコード部と、該カスタマコード部の０と１を反転させた８ビットの反転カスタマコード部と、８ビットのコマンド部と、該コマンド部の０と１を反転させた８ビットの反転コマンド部とからなる場合を例に挙げる。
【０１１４】
まず、図７及び図８を用いて、本実施の形態２にかかるリモコン受信システムの構成について説明する。図７は、本実施の形態２におけるリモコン受信システムの構成を示す図であり、図８は、本実施の形態２におけるリモコン受信回路内の有効性判別回路の詳細な構成を示す図である。
【０１１５】
図７において、本実施の形態２に係るリモコン受信システムは、送信機（図示せず）から発行されたリモコン信号を受信するリモコン受信回路２００と、該リモコン受信回路２００の各種レジスタに任意の値を設定し、リモコン受信回路２００を制御するＣＰＵ２９０とからなるものであり、リモコン受信回路２００は、エッジ検出回路１１０と、カウンタ回路１２０と、ヘッダ検出回路１３０と、データ判別回路１４０と、シフトレジスタ２５０と、ヘッダ割り込み生成回路１６０と、データ割り込み生成回路２７０と、モードレジスタ２８０と、スイッチ１１１と、有効性判別回路２１０と、ＯＦＦ検出回路２２０とを備えるものである。そして、前記ＣＰＵ２９０は、前記リモコン受信回路２００からの割り込み信号Ｓ１１１を受信する割り込みポート２９１を備えるものである。
【０１１６】
以下、前記リモコン受信回路２００の構成を詳述する。本実施の形態２にかかるリモコン受信回路２００は、前記実施の形態１にかかるリモコン受信回路１００に、有効性判別回路２１０とＯＦＦ検出回路２２０とを追加した構成である。
【０１１７】
前記有効性判別回路２１０は、シフトレジスタ２５０と、データ割り込み生成回路２７０と接続されており、前記シフトレジスタ２５０に格納されたリモコン信号のデータを受け、該データが有効か否かを示すデータ有効信号Ｓ２１０を出力する。この有効性判別回路２１０は、例えば図８のような構成で実現でき、前記データ有効信号Ｓ２１０は、前記シフトレジスタ２５０に格納されたデータのカスタマコード部８ビットと、反転カスタマコード部８ビットの対応する各ビットとの排他的論理和をとって、その出力８ビットの論理積をとったものと、前記シフトレジスタ２５０に格納されたデータのコマンド部８ビットと、反転コマンド部８ビットの対応する各ビットとの排他的論理和をとって、その出力８ビットの論理積をとったものとの論理積である。
【０１１８】
前記ＯＦＦ検出回路２２０は、前記リモコン信号の発信元である送信機（図示せず）のリモコンボタンがリリースされたか否かを検出するものであり、ＯＦＦ極性レジスタ２２１と、ＯＦＦ閾値レジスタ２２２と、ＯＦＦフラグレジスタ２２３とを有し、前記カウンタ回路１２０、及びモードレジスタ２８０と接続されている。そして、前記ＯＦＦ極性レジスタ２２１、及びＯＦＦ閾値レジスタ２２２は、前記ＣＰＵ２９０から設定可能なレジスタであり、また前記ＯＦＦフラグレジスタ２２３は、前記ＣＰＵ２９０から読み出しのみ可能なレジスタである。そして、前記ＯＦＦ閾値レジスタ２２２には、前記リモコンボタンのリリース検出に用いる閾値が設定され、前記ＯＦＦ検出回路２２０は、前記ＯＦＦ極性レジスタ２２１の設定値が“０”なら、カウンタ回路１２０内のＬＬＣ１２１の出力値と前記ＯＦＦ閾値レジスタ２２２の設定値とを比較し、前記ＯＦＦ極性レジスタ２２１の設定値が“１”なら、前記カウンタ回路１２０内のＬＨＣ１２２の出力値と前記ＯＦＦ閾値レジスタ２２２の設定値とを比較し、それぞれの比較において、両者が等しければＯＦＦフラグレジスタ２２３を“１”にセットし、一方、モードレジスタ２８０の設定値が“１”である状況下で、前記カウンタ回路１２０内のＬＬＣ１２１，ＬＨＣ１２２の出力値が前記ＯＦＦ閾値レジスタ２２２の設定値より小さければＯＦＦフラグレジスタ２２３を“０”にリセットする。つまり、ここでは、前記ＯＦＦフラグレジスタ２２３の値が“１”であれば、前記リモコンボタンがリリースされたことを意味し、“０”であれば、リモコンボタンがリリースされておらず、連続押下されている状態にあることを意味する。
【０１１９】
データ割り込み生成回路２７０は、前記データ判別回路１４０と前記有効性判別回路２１０と接続されており、該有効性判別回路２１０からのデータ有効信号Ｓ２１０が“１”を出力している状況下において、前記データ判別回路１４０からのデータ受信完了信号Ｓ１４０の立上りを検出すると、データ割り込み信号Ｓ２７０として１サイクルのパルスを１回出力する。
【０１２０】
前記モードレジスタ２８０は、前記スイッチ１１１と、前記ＯＦＦ検出回路２２０に接続されている。そして、前記実施の形態１と同様、前記ＣＰＵ２９０により値が設定可能なレジスタであり、このモードレジスタ２８０に“０”が設定されていると、スイッチ１１１は、ヘッダ割り込み生成回路１６０とＣＰＵ２９０とを接続し、一方、モードレジスタ２８０に“１”が設定されていると、スイッチ１１１は、データ割り込み生成回路１６０とＣＰＵ２９０とを接続する。
【０１２１】
そして、ＣＰＵ２９０は、後述する１つのタスクＴ１１０をラウンドロビンのタスクとして持っている。なお、このほかの構成については、前記実施の形態１と同様であるため、ここでは説明を省略する。
【０１２２】
次に、図９〜図１１を用いて、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、前述した構成を有するリモコン受信システムの処理の流れを説明する。図９は、本実施の形態２におけるリモコン受信システムが、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合のリモコン受信回路及びＣＰＵのタイミングチャート図であり、図１０（ａ）は、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態２におけるＣＰＵ側での処理を示すフローチャート図であり、図１０（ｂ）は、本実施の形態２におけるＣＰＵのタスクＴ１１０の処理のフローチャート図であり、図１１は、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態２におけるリモコン受信回路での処理を示すフローチャート図である。
【０１２３】
まず、ＣＰＵ２９０は、動作開始時に初期の設定として、前記実施の形態１と同様、ヘッダ検出回路１３０内のＴＨＬレジスタ１３１とＴＨＨレジスタ１３２、データ判別回路１４０内のＤＬレジスタ１４３、及びモードレジスタ２８０に値を設定するのに加え、ＯＦＦ極性レジスタ２２１と、ＯＦＦ閾値レジスタ２２２に値を設定する（Ｆ１００１，Ｆ１００２）。以下、前記各レジスタに設定される値について具体的に述べると、前記ＯＦＦ極性レジスタ２２１には“１”を設定し、前記ＯＦＦ検出回路２２０内のＯＦＦ閾値レジスタ２２２には２００Ｔを設定する。なお、そのほかの各レジスタには、前記実施の形態１において設定した同様の値を設定する。つまり、前記ヘッダ検出回路１３０内のＴＨＬレジスタ１３１には６Ｔを設定し、ＴＨＨレジスタ１３２には３Ｔを設定し、また、データ判別回路１４０内のＤＬＬレジスタ１４３には３２を設定し、モードレジスタ２８０には“１”を設定するものとする。
【０１２４】
以上のように各レジスタに値を設定した後、ＣＰＵ２９０は、リモコン受信回路２００からデータ割り込み信号Ｓ２７０が発行されるのを待つ。
【０１２５】
また、リモコン受信回路２００側では、動作開始時に、カウンタ回路１２０及びデータ判別回路１４０内のデータカウンタ１４３を初期化する（Ｆ１１０１）。
【０１２６】
そして、リモコンのボタンが押下されると、まずリモコン受信回路２００にはリモコン信号のヘッダ部が到着する。ヘッダ部の最初の立下りエッジをエッジ検出回路１１０が検出した時刻を時刻０とすると（Ｆ１１０２）、時刻０において、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２とがリセットされる（Ｆ１１０３）。このとき、データ判別回路１４０内のＤ０フラグ１４５、及びＤ１フラグ１４４は共に“０”であるため（Ｆ１１０４，Ｆ１１０６）、シフトレジスタ２５０にはデータが格納されることなく、カウンタ回路１２０のみがカウントアップされる（Ｆ１１１５）。
【０１２７】
そして、時刻６Ｔにおいて、リモコン信号のヘッダ部のロウ区間をカウントしているＬＬＣ１２１の出力値がＴＨＬレジスタ１３１の値を上回る。
【０１２８】
さらに、時刻１６Ｔに、立上りエッジが検出され（Ｆ１１１４）、カウンタ回路１２０内のＬＬＣ１２１は１６Ｔをカウントしてストップし、ＬＨＣ１２２がカウントを開始する（Ｆ１１３０）。
【０１２９】
そして、時刻１９Ｔに、前記ＬＨＣ１２２の出力値は、ヘッダ検出回路１３０のＴＨＨレジスタ１３２の設定値を上回る。このとき、カウンタ回路１２０内のＬＬＣ１２１の出力値は１６Ｔでストップしているため、ＴＨＬレジスタ１３１の設定値を上回っている（Ｆ１１１６）。従って、このとき、ヘッダ検出回路１３０は、データ判別回路１４０及びヘッダ割り込み生成回路１６０に対して、ヘッダ検出信号Ｓ１３０“１”を出力する。
【０１３０】
このヘッダ検出信号Ｓ１３０の立上りエッジを検出したデータ判別回路１４０は、該データ判別回路１４０内のデータカウンタ１４３をリセットし、データ待ちフラグを“１”にセットし、さらに、Ｄ０フラグ１４５、及びＤ１フラグ１４４を“０”にリセットする（Ｆ１１１７）。また、前記ヘッダ検出信号Ｓ１３０の立上りエッジを検出したヘッダ割り込み生成回路１６０は、ヘッダ割り込み信号Ｓ１６０として１サイクルのパルスを１回出力する。ただし、このとき、モードレジスタ２８０には“１”が設定されているので、ヘッダ割り込み生成回路１６０はＣＰＵ２９０の割り込みポート２９１に接続されておらず、このヘッダ割り込み信号Ｓ１６０は、ＣＰＵ２９０には通知されない（Ｆ１１１８）。
【０１３１】
そして、時刻２４Ｔにおいて、エッジ検出回路１１０が立下りエッジを検出し（Ｆ１１０２）、カウンタ回路１２０内のＬＬＣ１２１，ＬＨＣ１２２がともにリセットされ（Ｆ１１０３）、この結果、前記ＬＬＣ１２１及びＬＨＣ１２２それぞれの値は、ヘッダ検出回路１３０のＴＨＬレジスタ１３１、及びＴＨＨレジスタ１３２の値を下回るため（Ｆ１１１６）、ヘッダ検出信号Ｓ１３０“０”が出力される（Ｆ１１２０）。そしてこの後、前記ＯＦＦ検出回路２２０内のＯＦＦ極性レジスタ２２１に“１”が設定されているので、該ＯＦＦ検出回路２２０において、前記カウンタ回路１２０内のＬＨＣ１２２の値と、前記ＯＦＦ閾値レジスタ２２２の設定値とが比較され、この時、前記カウンタ回路１２０内のＬＨＣ１２２の値は“３Ｔ”で、モードレジスタ２８０は“０”がセットされているので（Ｆ１１２１，Ｆ１１２２）、ＯＦＦフラグレジスタは“０”にリセットされない。さらにこの時、前記データ判別回路１４０内のデータ待ちフラグ１４１は“１”にセットされているので（Ｆ１１２４）、これによって、データ判別回路１４０内のＤ１フラグ１４４とＤ０フラグ１４５とがセット可能になる。
【０１３２】
そして、時刻２５Ｔにおいて、エッジ検出回路１１０が立上りエッジを検出し（Ｆ１１１４）、カウンタ回路１２０内のＬＬＣ１２１は、１Ｔをカウントしてストップする（Ｆ１１３０）。
【０１３３】
時刻２５Ｔ＋１において、カウンタ回路１２０内のＬＨＣ１２２の出力値は、“１”と等しくなる。このとき、データ判別回路１４０内のデータ待ちフラグ１４１が“１”で、且つカウンタ回路１２０内のＬＨＣ１２２が“１”を達成したため（Ｆ１１２５）、前記データ判別回路１４０内のＤ０フラグ１４５が“１”にセットされる（Ｆ１１２６）。
【０１３４】
次に、時刻２６Ｔにおいて、エッジ検出回路１１０が立下りを検出すると（Ｆ１１０２）、前記データ判別回路１４０は、Ｄ０フラグ１４５が“１”である状況下で、エッジ検出回路１１０から立下りエッジを通知されたため（Ｆ１１０２）、前記カウンタ回路１２０内のＬＬＣ１２１，ＬＨＣ１２２をリセットすると共に（Ｆ１１０３）、シフトレジスタ２５０を１ビットシフトさせて、シフトレジスタ２５０に“０”を追加する（Ｆ１１０５）。このとき、データカウンタ１４３はインクリメントされて“１”になる（Ｆ１１０８）。該データカウンタ１４３の値は指定ビット数には達していないので（Ｆ１１０９）、カウンタ回路１２０がカウントアップされる（Ｆ１１１５）。
【０１３５】
そして、時刻２７Ｔにおいて、エッジ検出回路１１０は立上りエッジを検出し（Ｆ１１１４）、データ判別回路１４０内のＤ０フラグ１４５、Ｄ１フラグ１４４はともに“０”にリセットされる（Ｆ１１３０）。
【０１３６】
そして、時刻２７Ｔ＋１において、前述した時刻２５Ｔ＋１の際の動作同様に、前記Ｄ０フラグ１４５が“１”にセットされる（Ｆ１１２６）。
【０１３７】
時刻２９Ｔにおいて、カウンタ回路１２０内のＬＨＣ１２２は２Ｔをカウントし、データ待ちフラグ１４１が“１”で、且つカウンタ回路１２０内のＬＨＣ１２２が“２Ｔ”を達成したため（Ｆ１１２４，１１２５，１１２７）、Ｄ０フラグ１４５が“０”、Ｄ１フラグ１４４が“１”にセットされる（Ｆ１１２８）。
【０１３８】
時刻３０Ｔにおいて、エッジ検出回路１１０が立下りエッジを検出する（Ｆ１１０２）。この時、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２はリセットされる（Ｆ１１０３）。そして、データ判別回路１４０は、Ｄ１フラグ１４４が“１”の状況下で、エッジ検出回路１１０から立下りエッジの検出を通知されたため（Ｆ１１０４）、シフトレジスタ２５０を１ビットシフトさせ、シフトレジスタ２５０に“１”を追加する（Ｆ１１０７）。このとき、データカウンタ１４３はインクリメントされて“２”になる（Ｆ１１０８）。この後、該データカウンタ１４３の値は指定ビットには達していないので（Ｆ１１０９）、カウンタ回路１２０がカウントアップする（Ｆ１１１５）。
【０１３９】
時刻３１Ｔにおいて、エッジ検出回路１１０が立上りエッジを検出すると（Ｆ１１１４）、データ判別回路１４０内のＤ０フラグ１４５とＤ１フラグ１４４はともに“０”にリセットされる（Ｆ１１３０）。以下、同様にして、リモコン信号のデータ部のデータが１ビットずつシフトレジスタ２５０に格納されていく。
【０１４０】
そして、前述した動作を繰り返してデータ判別回路１４０内のデータカウンタ１４３の出力値がインクリメントされて“３１”になった時刻を時刻Ｎとする時、時刻Ｎ＋１Ｔにおいてエッジ検出回路１１０が立上りエッジを検出し、さらに時刻Ｎ＋２Ｔにおいて立下りエッジを検出すると（Ｆ１１０２）、シフトレジスタ２５０に“０”が追加され（Ｆ１１０５）、データ判別回路１４０内のデータカウンタ１４３の出力値がインクリメントされて“３２”となり（Ｆ１１０８）、該データ判別回路１４０内のデータカウンタ１４３の値と、ＤＬレジスタ１４２の設定値とが等しくなる（Ｆ１１０９）。このとき、前記データ判別回路１４０内のデータ待ちフラグ１４１は“０”にリセットされ（Ｆ１１１０）、前記データ判別回路１４０からデータ受信完了信号Ｓ１４０が出力されると同時に、前記データ有効性判別回路２１０において、前記シフトレジスタ２５０に格納されたデータの有効性が判断される。
【０１４１】
例えば、前記シフトレジスタ２５０内のデータが、受信時のノイズ等によって１ビットだけ破損していると、前記データ有効性判別回路２１０からはデータ有効信号Ｓ２１０“０”が出力され（Ｆ１１１２）、データ割り込み生成回路２７０は、前記データ判別回路１４０からのデータ受信完了信号Ｓ１４０の立上りエッジを検出しても、データ割り込み信号Ｓ２７０を出力しない。これにより、前記ＣＰＵ２９０は、エラーデータによるデータ割り込みを受けなくすることができ、使用者がリモコンボタンを新たに押しなおすことによって、当該リモコン受信回路２００がデータを伴う新たなリモコン信号を受信するまで、前記ＣＰＵ２９０は、該リモコン受信回路２００からの無駄な割り込みを受けることなく、動作することができる。
【０１４２】
また、前記有効性判別回路２１０において、前記シフトレジスタ２５０に格納されたデータが有効であると判断された場合、前記有効性判別回路２１０は、データ有効信号Ｓ２１０ “１”を出力する。そして、前記データ割り込み生成回路２７０は、該有効性判別回路２１０からデータ有効信号Ｓ２１０“１”が出力されている状況下において、前記データ判別回路１４０からのデータ受信完了信号Ｓ１４０の立上りを検出すると、データ割り込み信号Ｓ２７０として１サイクルのパルスを１回出力する。この時、モードレジスタ２８０は“１”に設定されているので（Ｆ１１１１）、スイッチ１１１により、前記データ割り込み生成回路２７０とＣＰＵ２９０とが接続されている。よって、ＣＰＵ２９０の割り込みポート２９１に、データ割り込み信号Ｓ２７０である割り込み信号Ｓ１１１が出力され、データ割り込みが発生する（Ｆ１１１３）。
【０１４３】
ＣＰＵ２９０側では、前記リモコン受信回路２００からのデータ割り込み信号Ｓ２７０である割り込み信号Ｓ１１１を受けると（Ｆ１００３）、シフトレジスタ２５０から読み出したデータの正当性を評価し（Ｆ１００５）、該データが無効であればＦ１００２に戻り、該シフトレジスタ２５０から読み出したデータが有効であれば、押下されたボタンの情報を得、該ボタンに対応する処理を開始する（Ｆ１００６）。なお、このデータの正当性の評価は、リモコンボタンに対応するデータであるか否かを調べるものであり、その評価において、対応するデータがなければデータが無効であると判断され、対応するデータがあれば有効であると判断される。
【０１４４】
この後、前記ＣＰＵ２９０は、モードレジスタ２８０に“０”を設定し（Ｆ１００７）、さらにＣＰＵ２９０は、ラウンドロビンのタスクとして、図１０（ｂ）に示されるタスクＴ１１０を起動する（Ｆ１００８）。
【０１４５】
以後、リモコンボタンが連続押下されている間は、１９２Ｔの間隔でリピートヘッダが到着し、ヘッダ割り込みが発行されつづける。ＣＰＵ２９０は、ヘッダ割り込みが通知されると（Ｆ１０１０）先に押下されたボタンが連続押下されたと判断し、その連続押下されたボタンに対応する処理を行う（Ｆ１０１１）。
【０１４６】
この間、図１０（ｂ）に示すように、ＣＰＵ２９０内に設けられたタスクＴ１１０は実行順序が来るたびに（Ｆ１０１８）、ＯＦＦフラグレジスタ２２３を読み出すが（Ｆ１０２８）、該ＯＦＦフラグレジスタの値が“０”であれば（Ｆ１０３８）、再びラウンドロビンのキューに入る（Ｆ１０１８）。
【０１４７】
そして、使用者がリモコンボタンをリリースすると、リピートヘッダ部はＣＰＵ２９０側に到着しなくなり、リモコン信号には長いハイ区間が現れる。そして、最後のリピートヘッダから２００Ｔ後、ＬＨＣ１２２の出力値は２００Ｔに達し（Ｆ１１２１）、ＯＦＦフラグレジスタ２２３は“１”にセットされる（Ｆ１１２９）。
【０１４８】
やがて、ＣＰＵ２９０側では、タスクＴ１１０によって、ＯＦＦフラグレジスタ２２３から“１”が読み出されると（Ｆ１０２８，１０３８）、ＣＰＵ２９０側ではタスクＴ１１０が終了する（Ｆ１００９）。このタスクＴ１１０の終了により、ＣＰＵ２９０はリモコンボタンのリリースを検知し、モードレジスタ２８０に“１”を設定し（Ｆ１０１０）、再び、前記リモコン受信回路２００からのデータ割り込みを待つ状態になる。
【０１４９】
このように、本実施の形態２のリモコン受信システムによれば、前記リモコン受信回路２００で受信するリモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とで構成されている場合に、該リモコン受信回路２００に前記メインデータ部と前記反転データ部とを比較することで該リモコン信号のデータ部の有効性を判断する有効性判別回路２１０を備え、データ割り込み生成回路２７０が、該有効性判別回路２１０において前記リモコン信号のデータが有効であると判断され、且つ前記データ判別回路１４０からデータ受信完了信号Ｓ１４０が出力されたときに、データ割り込み信号Ｓ２７０を出力するようにしたので、ＣＰＵ２９０側にエラーデータによる不要なデータ割り込み信号が発行されなくなり、これにより、リモコン受信機能に使用するＣＰＵ２９０の処理能力をさらに軽減することができる。
【０１５０】
さらに、本実施の形態２のリモコン受信システムによれば、前記リモコン受信回路２００にリモコンボタンのリリースを検出するＯＦＦ検出回路２２０を備えると共に、ＣＰＵ２９０が、押下されたリモコンボタンに対応する処理を行った後に開始されるラウンドロビンのタスクＴ１１０のコードを持つようにし、前記ＯＦＦ検出回路２２０によって検出されたリモコンボタンがリリースされたか否かの判断結果を、ＣＰＵ２９０が前記タスクＴ１１０のフローにおいて読み出すようにしたので、ＣＰＵ２９０側において、内蔵タイマを用いることなく使用者がリモコンボタンをリリースしたことを検知することが可能となり、リモコン受信機能に使用するＣＰＵ２９０のリソースをさらに少なくすることができる。
【０１５１】
さらに、前述の説明においては、リモコン受信回路２００が、ボタンを連続押下された際に図２２（ａ）に示されるようなデータを伴わないリピートヘッダ部からなるリモコン信号を受信する場合について説明したが、当該リモコン受信回路２００において受信するリモコン信号は、ボタンを連続押下された際に図２２（ｂ）に示されるような同じ波形が繰り返し続くリモコン信号であってもよい。
【０１５２】
以下、図１１及び図１２を用いて、前述した構成を持つリモコン受信回路２００において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の処理の流れを説明する。図１２（ａ）は、繰り返しデータ型のリモコン信号を受信した場合の、本実施の形態２におけるＣＰＵ側での処理を示すフローチャート図であり、図１２（ｂ）は、本実施の形態２におけるＣＰＵのタスクＴ１１０の処理のフローチャート図である。
【０１５３】
まず、時刻Ｎ＋２Ｔまでの動作は、前述のシーケンスと同様であるので、省略する。
時刻Ｎ＋２Ｔにおいて、ＣＰＵ２９０側では、前述したように、前記有効性判別回路２１０により有効と判断されたデータを読み出して（Ｆ１２０４）、押下されたリモコンボタンに対応する処理をする（Ｆ１２０６）。そしてこの後、リピートヘッダ部を受信した際には、前述したようにモードレジスタ２８０の値を“０”にセットしたが、ここでは、モードレジスタ２８０の値を再設定せず、“１”のままでタスクＴ１１０を起動する（Ｆ１２０７）。
【０１５４】
リモコンボタンが連続的に押下されている場合、時刻１９２Ｔにおいて、繰り返しデータのヘッダ部が到着する。その後、時刻０〜Ｎ＋２Ｔと同様の動作を経て、リモコン受信回路２００からＣＰＵ２９０へ、再びデータ割り込みが発行される（Ｆ１２０９）。
【０１５５】
前記データ割り込みを受信したＣＰＵ２９０は、シフトレジスタ２５０の値を読み出し（Ｆ１２０９）、データの有効性の判断する（Ｆ１２１１）。そして、データが無効と判断されればＦ１２０３へ遷移し、次のデータ割り込み待ち状態となる。一方、有効であると判断されると、ＣＰＵ２９０は、前回のデータ割り込みで取得したデータと、今回のデータ割り込みで取得したデータとが同一であるか否かを比較する（Ｆ１２１２）。そして、これらのデータが一致していたら、リモコンボタンの連続押下中と判断して、その連続押下されたボタンに対応する処理を行い（Ｆ１２１３）、データが一致していなければ、タスクＴ１１０を停止し（Ｆ１２１４）、新たに別のボタンが押下されたものと判断して、その新たに押下されたボタンに対応する処理を行う（Ｆ１２０６）。
【０１５６】
リモコンボタンが連続押下される限り、１９２Ｔおきにデータ割り込みが発生し、同一のデータがＦ１２１０で読み出される。この間、図１２（ｂ）に示すように、ＣＰＵ２９０が持つタスクＴ１１０は実行順序が来るたびに（Ｆ１２１７）、ＯＦＦフラグレジスタ２２３の値を読み出すが（Ｆ１２２７）、該ＯＦＦフラグレジスタ２２３の値が“０”であれば（Ｆ１２３７）、再びラウンドロビンのキューに入る（Ｆ１２０８）。
【０１５７】
そして、使用者がリモコンボタンをリリースすると、リピートヘッダ部はＣＰＵ２９０側に到着しなくなり、リモコン信号には長いハイ区間が現れる。そして、最後のリピートヘッダから２００Ｔ後、ＬＨＣ１２２の出力値は２００Ｔに達し（Ｆ１１２１）、ＯＦＦフラグレジスタ２２３は“１”にセットされる（Ｆ１１２９）。
【０１５８】
やがて、ＣＰＵ２９０側では、タスクＴ１１０によって、ＯＦＦフラグレジスタ２２３から“１”が読み出されると（Ｆ１２２７，１２３７）、ＣＰＵ２９０側ではタスクＴ１１０が終了する（Ｆ１２０８）。このタスクＴ１１０の終了により、ＣＰＵ２９０はリモコンボタンのリリースを検知し、Ｆ１２０３に遷移して新たなボタン押下を待つ状態になる。
【０１５９】
このように本実施の形態にかかるリモコン受信システムは、繰り返しデータを送信するタイプの送信機にも対応しうる。
【０１６０】
（実施の形態３）
以下、図１３から図１７を用いて、本実施の形態３にかかるリモコン受信システムについて説明する。
【０１６１】
本実施の形態３のリモコン受信システムにおいては、前記実施の形態２と同様、該リモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とで構成されているものとし、また、本実施の形態３のリモコン受信回路には、ヘッダ割り込み生成回路、及びデータ割り込み生成回路を設けず、該リモコン受信回路からＣＰＵに割り込みが発行されないようにしてＣＰＵの割り込みポートを全く使わず、ＣＰＵが持つラウンドロビンタスクのみでリモコン受信機能を実現するものである。さらに、前記実施の形態２では、リモコンボタンのリリースをカウンタ回路１２０のレジスタの値とＯＦＦ検出回路２２０内のＯＦＦ閾値レジスタ２２２の設定値とを比較することで判断していたが、本実施の形態３では、ＯＦＦ検出回路内にある値まで常にカウントアップするＯＦＦカウンタを設け、該ＯＦＦカウンタの値とＯＦＦ閾値レジスタの値を比較することで、ノイズによってリモコンボタンのリリースの検出が遅延されるのを回避できるようにするものである。
【０１６２】
なお、本実施の形態３においては、送信機（図示せず）から発行されるリモコン信号のデータ部が、前記実施の形態２と同様、図６に示されるような、８ビットのカスタマコード部と、該カスタマコードの０と１を反転させた８ビットの反転カスタマコード部と、８ビットのコマンド部と、該コマンド部の０と１を反転させた８ビットの反転コマンド部とからなる場合を例に挙げる。
【０１６３】
まず、図１３を用いて、本実施の形態３にかかるリモコン受信回路の構成について説明する。図１３は、本実施の形態３におけるリモコン受信システムの構成を示す図である。
【０１６４】
図１３において、本実施の形態３に係るリモコン受信システムは、送信機（図示せず）から発行されたリモコン信号を受信するリモコン受信回路３００と、該リモコン受信回路３００の各種レジスタに任意の値を設定し、リモコン受信回路３００を制御するＣＰＵ３９０とからなるものであり、リモコン受信回路３００は、エッジ検出回路１１０と、カウンタ回路１２０と、ヘッダ検出回路１３０と、データ判別回路１４０と、シフトレジスタ２５０と、モードレジスタ１８０と、スイッチ３１１と、ＡＮＤゲート３１２と、ＯＦＦ検出回路３２０と、データ／ヘッダフラグレジスタ（以下、「ＤＨフラグレジスタ」と称す。）３３０と、を備えるものである。そして、前記ＣＰＵ３９０には、前記リモコン受信回路３００からの割り込みが発行されることがないので、割り込みポートが設けられていない。
【０１６５】
以下、前記リモコン受信回路３００の構成を詳述する。本実施の形態３にかかるリモコン受信回路３００は、前記実施の形態２にかかるリモコン受信回路２００から、データ割り込み生成回路と、ヘッダ割り込み生成回路とを削除し、ＤＨフラグレジスタ３３０を追加した構成となっている。
【０１６６】
ＤＨフラグレジスタ３３０は、スイッチ３１１と、ＯＦＦ検出回路３２０と接続されており、ＣＰＵ３９０から読み出しと書き込みが可能なレジスタである。そして、前記ＤＨフラグレジスタ３３０は、前記スイッチ３１１からのＯＦＦカウントリセット信号Ｓ３１１を受信し、該ＯＦＦカウントリセット信号Ｓ３１１の立上りを検出すると“１”がセットされ、ＣＰＵ３９０に“０”を書き込まれることによってのみ、“０”にリセットされるものである。
【０１６７】
前記スイッチ３１１は、ＡＮＤゲート３１２を介してデータ判別回路１４０と、有効性データ判別回路２１０と接続され、ヘッダ検出回路１３０と、ＤＨフラグレジスタ３３０と、モードレジスタ１８０とが接続される。前記スイッチ３１１は、前記モードレジスタ１８０の設定値が“１”ならば、前記データ判別回路１４０からのデータ受信完了信号Ｓ１４０と前記有効性判別回路２１０からのデータ有効信号Ｓ２１０との論理積を前記ＤＨフラグレジスタ３３０に出力し、一方、前記モードレジスタ１８０の設定値が“０”ならば、前記ヘッダ検出回路１３０からのヘッダ検出信号Ｓ１３０を前記ＤＨフラグレジスタ３３０に出力するものである。
【０１６８】
前記ＯＦＦ検出回路３２０は、ＤＨフラグレジスタ３３０と接続され、ＯＦＦ閾値レジスタ２２２と、ＯＦＦカウンタ３２１と、ＯＮフラグレジスタ３２３とを有するものである。そして、前記ＯＦＦカウンタ３２１は、常にカウントアップしており、前記ＤＨフラグレジスタ３３０の値が“１”になると、リセットされる。また、前記ＯＮフラグレジスタ３２３は、ＤＨフラグレジスタ３３０の値が“１”になると“１”にセットされ、ＯＦＦカウンタ３２１の出力値とＯＦＦ閾値レジスタ２２２の設定値とが等しくなると“０”にリセットされる。
【０１６９】
そして、前記ＣＰＵ３９０は、後述する２つのタスクＴ１２０，Ｔ１２１をラウンドロビンのタスクとして持っている。なお、このほかの前記実施の形態において説明したものと同じ番号が付されたものについては、前述した実施の形態において説明したものと同じであるため、ここでは説明を省略する。
【０１７０】
次に、図１４〜図１６を用いて、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、前述した構成を有するリモコン受信システムの処理の流れを説明する。図１４は、本実施の形態３におけるリモコン受信システムが、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合のリモコン受信回路及びＣＰＵのタイミングチャート図であり、図１５（ａ）は、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態３におけるＣＰＵ側での処理を示すフローチャート図であり、図１５（ｂ）は、本実施の形態３におけるＣＰＵのタスクＴ１２０の処理のフローチャート図であり、図１５（ｃ）は、本実施の形態３におけるＣＰＵのタスクＴ１２１の処理のフローチャート図であり、図１６は、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態３におけるリモコン受信回路での処理を示すフローチャート図である。
【０１７１】
まず、ＣＰＵ３９０は、動作開始時に初期の設定として、前記実施の形態２と同様、ヘッダ検出回路１３０内のＴＨＬレジスタ１３１とＴＨＨレジスタ１３２、データ判別回路１４０内のＤＬレジスタ１４３、前記ＯＦＦ検出回路３２０内のＯＦＦ閾値レジスタ２２２及びモードレジスタ１８０に値を設定する（Ｆ１５０１，Ｆ１５０２）。以下、前記各レジスタに設定される値について具体的に述べると、前記ヘッダ検出回路１３０内のＴＨＬレジスタ１３１には６Ｔを設定し、ＴＨＨレジスタ１３２には３Ｔを設定し、データ判別回路１４０内のＤＬＬレジスタ１４３には３２を設定し、ＯＦＦ検出回路１４０内のＯＦＦ閾値レジスタ２２２には２００Ｔを設定し、また、モードレジスタ１８０には“１”を設定するものとする。
【０１７２】
以上のように各レジスタに値を設定した後、ＣＰＵ３９０は、ラウンドロビンのタスクとしてタスクＴ１２０を開始する（Ｆ１５０３）。
【０１７３】
また、リモコン受信回路３００側では、動作開始時に、カウンタ回路１２０及びデータ判別回路１４０内のデータカウンタ１４３を初期化する（Ｆ１６０１）。
【０１７４】
リモコンのボタンが押下されると、まずリモコン受信回路３００にはリモコン信号のヘッダ部が到着する。ヘッダ部の最初の立下りエッジをエッジ検出回路１１０が検出した時刻を０とすると（Ｆ１６０２）、時刻０において、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２とがリセットされる（Ｆ１６０３）。このとき、データ判別回路１４０内のＤ０フラグ１４５、及びＤ１フラグは共に“０”であるため（Ｆ１６０４，Ｆ１６０６）、シフトレジスタ２５０にはデータが格納されることなく、カウンタ回路１２０のみがカウントアップされる（Ｆ１６０５）。
【０１７５】
そして、時刻６Ｔにおいて、リモコン信号のヘッダ部のロウ区間をカウントしているＬＬＣ１２１の出力値がＴＨＬレジスタ１３１の値を上回る。
【０１７６】
さらに、時刻１６Ｔに、立上りエッジが検出され（Ｆ１６１４）、カウンタ回路１２０内のＬＬＣ１２１は１６Ｔをカウントしてストップし、ＬＨＣ１２２がカウントを開始する（Ｆ１６２７）。
【０１７７】
そして、時刻１９Ｔに、前記ＬＨＣ１２２の出力値は、ヘッダ検出回路１３０のＴＨＨレジスタ１３２の設定値を上回る。このとき、カウンタ回路１２０内のＬＬＣ１２１の出力値は１６Ｔでストップしているため、ＴＨＬレジスタ１３１の設定値を上回っている（Ｆ１６１６）。このとき、前記実施の形態では、前記ヘッダ検出回路１３０がデータ判別回路１４０及びヘッダ割り込み生成回路１６０に対して、ヘッダ検出信号Ｓ１３０“１”を出力し、ヘッダ割り込み生成回路１６０の動作が発生したが、本実施の形態３では、以下の動作が発生する。
【０１７８】
すなわち、前記ヘッダ検出回路１３０から、データ判別回路１４０及びスイッチ３１１に対してヘッダ検出信号Ｓ１３０“１”が出力され、このヘッダ検出信号Ｓ１３０の立ち上がりエッジを検出した前記データ判別回路１４０は、データ待ちフラグを“１”にセットし、前記データカウンタ１４３をリセットし、さらにＤ１フラグ１４４及び、Ｄ０フラグ１４５を“０”にリセットする（Ｆ１６１７）。また、前記ヘッダ検出回路１３０からのヘッダ検出信号Ｓ１３０“１”は、スイッチ３１１に伝えられるが、このときモードレジスタ１８０が“１”に設定されているため（Ｆ１６１８）、前記ヘッダ検出回路１３０はＤＨフラグレジスタ３３０とは接続されないため、このヘッダ検出信号Ｓ１３０の立ち上がりは、ＤＨフラグレジスタ３３０には伝えられず、ＯＮフラグレジスタ３２３は“０”のままであり、この結果ＯＦＦカウンタ３２１もリセットされない。
【０１７９】
そして、時刻２４Ｔにおいて、エッジ検出回路１１０が立下りエッジを検出し（Ｆ１６０２）、カウンタ回路１２０内のＬＬＣ１２１，ＬＨＣ１２２がともにリセットされ（Ｆ１６０３）、この結果、前記ＬＬＣ１２１及びＬＨＣ１２２それぞれの値は、ヘッダ検出回路１３０のＴＨＬレジスタ１３１、及びＴＨＨレジスタ１３２の値を下回るため（Ｆ１６１６）、ヘッダ検出信号Ｓ１３０“０”が出力される（Ｆ１６２０）。そして、ＯＦＦ検出回路３２０内のＯＦＦカウンタ３２１の値とＯＦＦ閾値レジスタ２２２との値が比較される（Ｆ１６２１）。そして、この時、データ判別回路１４０のデータ待ちフラグ１４１には“１”がセットされているので（Ｆ１６２２）、これによって、データ判別回路１４０内のＤ１フラグ１４４とＤ０フラグ１４５とがセット可能になる。
【０１８０】
そして、時刻２５Ｔにおいて、エッジ検出回路１１０が立上りエッジを検出し（Ｆ１６１４）、カウンタ回路１２０内のＬＬＣ１２１は、１Ｔをカウントしてストップする（Ｆ１６２８）。
【０１８１】
時刻２５Ｔ＋１において、カウンタ回路１２０内のＬＨＣ１２２の出力値は、“１”と等しくなる。このとき、データ判別回路１４０内のデータ待ちフラグ１４１が“１”で、且つカウンタ回路１２０内のＬＨＣ１２２が“１”を達成したため（Ｆ１６２３）、前記データ判別回路１４０内のＤ０フラグ１４５が“１”にセットされる（Ｆ１６２４）。
【０１８２】
次に、時刻２６Ｔにおいて、エッジ検出回路１１０が立下りを検出すると（Ｆ１６０２）、前記データ判別回路１４０は、Ｄ０フラグ１４５が“１”である状況下で、エッジ検出回路１１０から立下りエッジを通知されたため、前記カウンタ回路１２０内のＬＬＣ１２１，ＬＨＣ１２２をリセットすると共に（Ｆ１６０３）、シフトレジスタ２５０を１ビットシフトさせて、シフトレジスタ２５０に“０”を追加する（Ｆ１６０５）。このとき、データカウンタ１４３はインクリメントされて“１”になる（Ｆ１６０８）。該データカウンタ１４３の値は指定ビット数には達していないので（Ｆ１６０９）、カウンタ回路１２０がカウントアップされる（Ｆ１６１５）。
【０１８３】
そして、時刻２７Ｔにおいて、エッジ検出回路１１０は立上りエッジを検出し（Ｆ１６１４）、データ判別回路１４０内のＤ０フラグ１４５、Ｄ１フラグ１４４はともに“０”にリセットされる（Ｆ１６２８）。
【０１８４】
そして、時刻２７Ｔ＋１において、前述した時刻２５Ｔ＋１の際の動作同様に、前記Ｄ０フラグ１４５が“１”にセットされる（Ｆ１６２４）。
【０１８５】
時刻２９Ｔにおいて、カウンタ回路１２０内のＬＨＣ１２２は２Ｔをカウントし、データ待ちフラグ１４１が“１”で、且つカウンタ回路１２０内のＬＨＣ１２２が“２Ｔ”を達成したため（Ｆ１６２２，１６２３，１６２５）、Ｄ０フラグ１４５が“０”、Ｄ１フラグ１４４が“１”にセットされる（Ｆ１６２６）。
【０１８６】
時刻３０Ｔにおいて、エッジ検出回路１１０が立下りエッジを検出する（Ｆ１６０２）。この時、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２はリセットされる（Ｆ１６０３）。そして、データ判別回路１４０は、Ｄ１フラグ１４４が“１”の状況下で、エッジ検出回路１１０から立下りエッジの検出を通知されたため（Ｆ１６０６）、シフトレジスタ２５０を１ビットシフトさせ、シフトレジスタ２５０に“１”を追加する（Ｆ１６０７）。このとき、データカウンタ１４３はインクリメントされて“２”になる（Ｆ１６０８）。この後、該データカウンタ１４３の値は指定ビットには達していないので（Ｆ１６０９）、カウンタ回路１２０がカウントアップする（Ｆ１６１５）。
【０１８７】
時刻３１Ｔにおいて、エッジ検出回路１１０が立上りエッジを検出すると（Ｆ１６１４）、データ判別回路１４０内のＤ０フラグ１４５とＤ１フラグ１４４はともに“０”にリセットされる（Ｆ１６２８）。以下、同様にして、リモコン信号のデータ部のデータが１ビットずつシフトレジスタ２５０に格納されていく。
【０１８８】
そして、前述した動作を繰り返してデータ判別回路１４０内のデータカウンタ１４３の出力値がインクリメントされて“３１”になった時刻を時刻Ｎとする時、時刻Ｎ＋１Ｔにおいてエッジ検出回路１１０が立上りエッジを検出し、さらに時刻Ｎ＋２Ｔにおいて立下りエッジを検出すると（Ｆ１６０２）、シフトレジスタ２５０に“０”が追加され（Ｆ１６０５）、データ判別回路１４０内のデータカウンタ１４３の出力値がインクリメントされて“３２”となり（Ｆ１６０８）、該データ判別回路１４０内のデータカウンタ１４３の値とＤＬレジスタ１４２の設定値とが等しくなる（Ｆ１６０９）。このとき、前記データ判別回路１４０内のデータ待ちフラグ１４１は“０”にリセットされる（Ｆ１６１０）と同時に、データ判別回路１４０からデータ割り込み生成回路１７０に対して、データ受信完了信号Ｓ１４０“１”が出力される。さらに、このとき、モードレジスタ１８０が“１”であるので（Ｆ１６１１）、スイッチ３１１はデータ判別回路１４０からのデータ受信完了信号Ｓ１４０と有効性判別回路Ｓ２１０からのデータ有効信号Ｓ２１０との論理積のほうを選択している。そして、この後、有効性判別回路２１０にて、前記シフトレジスタ２５０に格納されたデータが有効か否かを判断し（Ｆ１６１２）、データが有効と判断されれば、データ有効信号Ｓ２１０“１”が出力され、ＤＨフラグレジスタ３３０には、データ受信完了信号Ｓ１４０“１”とデータ有効信号Ｓ２１０“１”との論理積“１”であるＯＦＦカウントリセット信号Ｓ３１１が出力され、これによりＤＨフラグレジスタ３３０が“１”にセットされ、さらに、ＤＨフラグレジスタ３３０の立上りエッジを前記ＯＦＦ検出回路３２０が検出するので、該ＯＦＦ検出回路３２０内のＯＦＦカウンタ３２１がリセットされ、ＯＮフラグレジスタ３２３が“１”にセットされる（Ｆ１６１３）。
【０１８９】
前述のＦ１６１３が発生するまでの間、ＣＰＵ３９０側では、タスクＴ１２０が実行されており、実行順序が来るたびにＤＨフラグレジスタ３３０の値を読み出すが（Ｆ１５０５）、該ＤＨフラグレジスタ３３０の値が“０”であるため（Ｆ１５０６）、再びラウンドロビンのキューに入る（Ｆ１５０４）。
【０１９０】
そして、前記Ｆ１６１３発生後、ＣＰＵ３９０側では、やがてタスクＴ１２０によってＤＨフラグレジスタ３３０から“１”が読み出される（Ｆ１５０６）。そして、ＣＰＵ３９０は、シフトレジスタ２５０の値を読み出し（Ｆ１５０７）、該シフトレジスタ２５０から読み出したデータの正当性を評価して（Ｆ１５０８）、該データが有効でなければ再びラウンドロビンのキューに入り（Ｆ１５０４）、一方該データが有効であれば、押下されたボタンの情報を得、対応する処理を開始する（Ｆ１５０９）。
【０１９１】
そして、ＣＰＵ３９０は、モードレジスタ１８０に“０”を設定し（Ｆ１５１０）、ＤＨフラグレジスタ３３０を“０”にリセットした後（Ｆ１５１１）、タスクＴ１２１をラウンドロビンのタスクとして起動して（Ｆ１５１２）、現在実行中のタスクＴ１２０をラウンドロビンタスクから外す。
【０１９２】
そして、時刻Ｎ＋３Ｔ以降は、データ判別回路１４０内のデータ待ちフラグ１４１が“０”にセットされていることから、カウンタ回路１２０内のＬＨＣ１２２の出力値が１、または２Ｔになっても、前記データ判別回路１４０内のＤ０フラグ１４５とＤ１フラグ１４４は“１”にセットされず、カウンタ回路１２０がカウントアップされていくのみである。
【０１９３】
そして、リモコンボタンが連続押下されている場合には、時刻１９２Ｔにおいてリピートヘッダ部が到着する。
【０１９４】
時刻１９２Ｔにおいて、エッジ検出回路１１０は立下りエッジを検出し（Ｆ１６０２）、カウンタ回路１２０内のＬＬＣ１２１とＬＨＣ１２２がリセットされる（Ｆ１６０３）。
【０１９５】
時刻１９８Ｔにおいて、リピートヘッダ部のロウ区間をカウントしているＬＬＣ１２１の出力値が、ヘッダ検出回路１３０内のＴＨＬレジスタ１３１の値を上回る。
【０１９６】
さらに、時刻２０８Ｔに、立上りエッジが検出され（Ｆ１６１４）、カウンタ回路１２０内のＬＬＣ１２１は１６Ｔをカウントしてストップし、ＬＨＣ１２２がカウントを開始する（Ｆ１６２８）。
【０１９７】
そして、時刻２１１Ｔに、前記ＬＨＣ１２２の出力値は、ヘッダ検出回路１３０のＴＨＨレジスタ１３２の設定値を上回る。このとき、カウンタ回路１２０内のＬＬＣ１２１の出力値は１６Ｔでストップしているため、ＴＨＬレジスタの設定値を上回っている（Ｆ１６１６）。従って、ヘッダ検出回路１３０は、データ判別回路１４０及びヘッダ割り込み生成回路１６０に対して、ヘッダ検出信号Ｓ１３０“１”を出力する（Ｆ１６１７）。
【０１９８】
このとき、モードレジスタ１８０は“０”に設定されているので（Ｆ１６１８）、スイッチ３１１は、ヘッダ検出回路１３０からのヘッダ検出信号Ｓ１３０を選択し、これにより、ＤＨフラグレジスタ３３０にＯＦＦカウントリセット信号Ｓ３１１“１”が出力され、ＤＨフラグレジスタ３３０が“１”にセットされ、さらに、前記ＤＨフラグレジスタ３３０の立上りエッジを受けて、ＯＦＦ検出回路１４０内のＯＦＦカウンタ３２１がリセットされる（Ｆ１６１９）。
【０１９９】
この時、ＣＰＵ３９０側では、タスクＴ１２０がラウンドロビンタスクから外されてタスクＴ１２１が実行されている。そして、前述のＦ１６１９が発生する前まで、前記ＤＨフラグレジスタ３３０には“０”が設定されており、且つ前記ＯＦＦ検出回路１４０内のＯＮフラグレジスタ３２３には“１”が設定されているため（Ｆ１５１３〜Ｆ１５１７）、この間、ＣＰＵ３９０は、実行順序が来るたびに再びラウンドロビンのキューに入る（Ｆ１５１３）ことを繰り返している。
【０２００】
そして、前記Ｆ１６１９において、前述のようにＤＨフラグレジスタ３３０が“１”にセットされたので、やがてＣＰＵ３９０は、ＤＨフラグレジスタ３３０から“１”を読み出す（Ｆ１５１５）。
【０２０１】
ＣＰＵ３９０は、ＤＨフラグレジスタ３３０を“０”にリセットし（Ｆ１５２０）、前述のタスクＴ１２０のＦ１５０７で読み出したデータに対応する処理を行う（Ｆ１５２１）。
【０２０２】
以後、リモコンボタンが連続押下されている間は、１９２Ｔの間隔で当該リモコン受信回路４００にリピートヘッダ部が到着し、そのたびに前述したように、ＤＨフラグレジスタ３３０は“１”にセットされ、前記ＯＦＦ検出回路３２０内のＯＦＦカウンタ３２１は０にリセットされる（Ｆ１６１９）。
【０２０３】
そしてＣＰＵ３９０は、タスクＴ１２１のＦ１５１５においてＤＨフラグレジスタ３３０から“１”を読み出すたびに、ＤＨフラグレジスタ３３０を“０”にリセットし（Ｆ１５２０）、その連続押下されているボタンに対応する処理を行う（Ｆ１５２１）。
【０２０４】
そして、使用者がリモコンボタンをリリースすると、リピートヘッダ部は到着しなくなり、リモコン信号に長いハイ区間が現れる。最後のリピートヘッダから２００Ｔ後、ＯＦＦカウンタ３２１の出力値は２００Ｔに達し（Ｆ１６２１）、ＯＮフラグレジスタ３２３は“０”にリセットされる（Ｆ１６２３）。
【０２０５】
やがて、ＣＰＵ３９０側は、ＤＨフラグレジスタ３３０とＯＮフラグレジスタ３２３から“０”を読み出すと（Ｆ１５１５、Ｆ１５１７）、ＣＰＵ３９０は、モードレジスタ１８０に“１”を設定し（Ｆ１５１８）、タスクＴ１２０をラウンドロビンのタスクとして起動し（Ｆ１５１９）、現在実行中のタスクＴ１２１をラウンドロビンのタスクから外す。すなわち、最初にＣＰＵ３９０がタスクＴ１２０を起動させた時点と同じ状態に戻る（Ｆ１５０３）。
【０２０６】
従って、使用者によってリモコンボタンがリリースされた後に、当該リモコン受信回路３００にパルスノイズが入り、前記エッジ検出回路１１０から立上りエッジや立下りエッジの検出が通知されても、前記ＯＦＦ検出回路１４０内のＯＦＦカウンタ３２１は、ヘッダ検出を受けない限りリセットされない。従って、リモコンのボタンリリースは、ＯＦＦ閾値レジスタ２２２に設定された時間どおりに判定される。
【０２０７】
このように、本実施の形態３のリモコン受信システムによれば、前記実施の形態２と同様、当該リモコン受信回路３００で受信するリモコン信号のデータ部が、メインデータ部と、該メインデータ部の０と１を反転させた反転データ部とで構成されている場合に、該リモコン受信回路３００から割り込み生成回路を削除してＣＰＵ３９０に割り込みを発行しないようにし、またＣＰＵ３９０に割り込みポートを設けず、ラウンドロビンのタスクを持たせるようにしたので、リモコン受信機能に使用するＣＰＵ３９０のリリースをさらに少なくすることができる。
【０２０８】
さらに、本実施の形態３のリモコン受信システムによれば、ＯＦＦ検出回路３２０内にＯＮフラグレジスタ３２３と、ＯＦＦカウンタ３２１とを設け、前記ＯＮフラグレジスタ３２３の値は、前記ＯＦＦカウンタ３２１の値が、ＯＦＦ閾値レジスタ２２２に設定されたリモコンボタンのリリース検出に用いる閾値（ここでは２００Ｔ）と一致すれば“０”にリセットされ、該ＯＮフラグレジスタ３２３が“０”になれば、リモコンボタンがリリースされたと判断するものとし、さらに、前記ＯＦＦ閾値レジスタ２２２の設定値と比較される前記ＯＦＦカウンタ３２１は、常にカウントアップし前記ＤＨフラグレジスタ３３０の値が“１”、つまりヘッダ検出を検知しないとリセットされないものであるようにしたので、リモコン信号の最後のリピートヘッダ部を受信してからある期間（ここでは２００Ｔ）をカウントアップしている際に、ノイズによりエッジが発生してカウンタがリセットされることを防止でき、これにより、リモコンボタンのリリースの検出がノイズにより遅延されるのを回避することができる。
【０２０９】
なお、前述の説明においては、リモコン受信回路３００が、ボタンを連続押下された際に図２２（ａ）に示されるようなデータを伴わないリピートヘッダ部からなるリモコン信号を受信する場合について説明したが、当該リモコン受信回路２００において受信するリモコン信号は、ボタンを連続押下された際に図２２（ｂ）に示されるような同じ波形が繰り返し続くリモコン信号であってもよい。
【０２１０】
以下、図１６及び図１７を用いて、前述した構成を持つリモコン受信回路３００において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の処理の流れを説明する。図１７（ａ）は、繰り返しデータ型のリモコン信号を受信した場合の、本実施の形態３におけるＣＰＵ側での処理を示すフローチャート図であり、図１７（ｂ）は、本実施の形態３におけるＣＰＵのタスクＴ１２３の処理のフローチャート図であり、図１７（ｃ）は、本実施の形態３におけるＣＰＵのタスクＴ１２４の処理のフローチャート図である。
【０２１１】
まず、時刻Ｎ＋２Ｔまでの動作は、前述のシーケンスと同様であるので、省略する。
【０２１２】
時刻Ｎ＋２Ｔにおいて、ＣＰＵ３９０側では、前述したように、前記有効性判別回路２１０により有効と判断されたデータを読み出して（Ｆ１７０７）、押下されたリモコンボタンに対応する処理をする（Ｆ１７０９）。そしてこの後、リピートヘッダ部を受信した際には、前述したようにモードレジスタ１８０の値を“０”にセットしたが、ここでは、モードレジスタ１８０の値を再設定せず、“１”のままでタスクＴ１２４を起動する（Ｆ１７１１）。
【０２１３】
リモコンボタンが連続的に押下されている場合、時刻１９２Ｔにおいて繰り返しデータのヘッダ部が到着する。その後、時刻０〜Ｎ＋２Ｔと同様の動作を経て、ＤＨフラグレジスタ３３０が“１”にセットされる（Ｆ１６１３）。この前記タスクＴ１２４が開始されてから、前述のＦ１６１３の発生前までの間、ＣＰＵ３９０側では、そのタスクＴ１２４の実行順序が来るたびにＤＨフラグレジスタ３３０“０”を読み出し（Ｆ１７１４）、ＯＮフラグレジスタ３２３から“１”を読み出すので（Ｆ１７１６）、再びタスクＴ１２４のラウンドロビンのキューに入る（Ｆ１７１２）。そして、前記Ｆ１６１３の発生後、ＣＰＵ３９０側は、やがてＤＨフラグレジスタ３３０から“１”を読み出す。そしてシフトレジスタ２５０からデータを読み出し（Ｆ１７１８）、そのデータの正当性を判断する（Ｆ１７１９）。そして、データが無効であれば、ＤＨフラグレジスタ３３０をクリアして（Ｆ１７２３）再びラウンドロビンのキューに入り（Ｆ１７１２）、一方、該データが有効であれば、前回取得したデータと今回のデータとが同一であるかを比較する（Ｆ１７２０）そして、これらのデータが一致していたら、リモコンボタンの連続押下中と判断して、その連続押下されたボタンに対応する処理を行い（Ｆ１７２１）、データが一致してなければ、新たに別のボタンが押下されたものと判断して、その新たに押下されたボタンに対応する処理を行った後（Ｆ１７２２）、ＤＨフラグレジスタ３３０の値を“０”にセットして、再びラウンドロビンのキューに入る（Ｆ１７１２）。
【０２１４】
そして、使用者がリモコンボタンをリリースすると、繰り返しデータは到着しなくなり、リモコン信号には長いハイ区間が現れる。そして、最後の繰り返しデータから２００Ｔ後、ＯＦＦカウンタ３２１の出力値は２００Ｔに達し（Ｆ１６２１）、ＯＮフラグレジスタ３２３は“０”にリセットされる（Ｆ１６２７）。
【０２１５】
やがて、ＣＰＵ３９０側では、タスクＴ１２４によって、ＤＨフラグレジスタ３３０とＯＮフラグレジスタ３２３から“０”を読み出すと（Ｆ１７１４、Ｆ１７１６）、ＣＰＵ３９０は、タスクＴ１２３を起動し（Ｆ１７１７）、現在実行中のタスクＴ１２４をラウンドロビンのタスクから外す。すなわち、最初にＣＰＵ３９０がタスクＴ１２３を起動させた時点と同じ状態に戻る（Ｆ１７０３）。
【０２１６】
このように本実施の形態にかかるリモコン受信システムは、繰り返しデータを送信するタイプの送信機にも対応しえ、またこの繰り返しデータ受信の場合においても、使用者によってリモコンボタンがリリースされた後に、当該リモコン受信回路３００において、ノイズ等の原因によってヘッダと認識できる波形や、データと認識できる波形が現れたとしても、前記ＯＦＦ検出回路１４０内のＯＦＦカウンタ３２１は、ヘッダ部と有効なデータ部を検出しない限りリセットされない。従って、リモコンのボタンリリースは、ＯＦＦ閾値レジスタ２２２に設定された時間どおりに判定される。
【０２１７】
（実施の形態４）
以下、図１８〜図２０を用いて、本実施の形態４におけるリモコン受信回路及びリモコン受信システムについて説明する。
【０２１８】
本実施の形態４においては、リモコン信号のヘッダ部の検出精度を改善するものである。
まず、図１８を用いて、本実施の形態４にかかるリモコン受信システムの構成について説明する。図１８は、本実施の形態４におけるリモコン受信システムの構成を示す図である。
【０２１９】
図１８において、本実施の形態４にかかるリモコン受信システムは、送信機（図示せず）から発行されたリモコン信号を受信するリモコン受信回路４００と、該リモコン受信回路４００の各種レジスタに任意の値を設定し、リモコン受信回路４００を制御するＣＰＵ４９０とからなるものであり、前記リモコン受信回路４００は、エッジ検出回路１１０と、カウンタ回路４２０と、ヘッダ検出回路４３０と、データ判別回路１４０と、シフトレジスタ１５０と、ヘッダ割り込み生成回路１６０と、データ割り込み生成回路１７０と、モードレジスタ１８０と、スイッチ１１１とから構成される。そして、前記ＣＰＵ４９０は、で、前記リモコン受信回路４００からの割り込み信号Ｓ１１１を受信する、１つの割り込みポート４９１を備えるものである。
【０２２０】
以下、前記リモコン受信回路４００の構成を詳述すると、前記カウンタ回路４２０は、ＬＬＣ１２１，ＬＨＣ４２２に加え、ノイズ閾値レジスタ（以下、「ＴＨＮレジスタ」と称す。）４２３を有するものであり、該ＴＨＮレジスタ４２３はＣＰＵ４９０から値を設定されるレジスタである。そして、前記カウンタ回路４２０内のＬＨＣ４２２が“０”にリセットされる条件は、データ待ちフラグ１４１が“１”であるか、ヘッダ検出信号Ｓ４３０が“１”であるならば、前記エッジ検出回路１１０が立下りエッジを検出するときであり、前記データ待ちフラグ１４１とヘッダ検出信号Ｓ４３０が共に“０”であるならば、前記ＬＬＣ１２１の値とＴＨＮレジスタ４２３の値とが等しくなるときである。
【０２２１】
前記ヘッダ検出回路４３０は、ＴＨＨレジスタ１３２及びＴＨＬレジスタ１３１に加え、ロングロウフラグ４３３（以下、「ＬＬＦ」と称す。）を有する。そして、前記ＬＬＦ４３３は、ＬＬＣ１２１の値がＴＨＬレジスタ１３１の値と等しくなると“１”にセットされ、データ待ちフラグ１４１が“１”になるか、もしくはＬＬＣ１２１の出力値がＴＨＮレジスタ４２３の値と等しくなると“０”にリセットされる。そして、前記ヘッダ検出回路４３０は、ＬＬＦ４３３が“１”で、かつ、ＬＨＣ４２２の出力値がＴＨＨレジスタ１３２の設定値を上回っているときに、ヘッダ検出信号Ｓ４３０“１”を出力し、それ以外のときにヘッダ検出信号Ｓ４３０“０”を出力する。なお、そのほかの構成は、前記実施形態１と同様であるため、ここでは説明を省略する。
【０２２２】
次に、図３、図１９及び図２０を用いて、前述した構成を有するリモコン受信システムの動作について説明する。図１９は、本実施の形態４にかかるリモコン受信システムがリモコン信号のヘッダ部を受信した場合のリモコン受信回路及びＣＰＵのタイミングチャート図であり、図２０は、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、本実施の形態４におけるリモコン受信回路での処理を示すフローチャート図である。
【０２２３】
まず、ＣＰＵ４９０は、動作開始時に、ヘッダ検出回路４３０内のＴＨＬレジスタ１３１とＴＨＨレジスタ１３２、データ判別回路１４０内のＤＬレジスタ１４２、及びモードレジスタ１８０の値に加え、前記カウンタ回路４２０内のＴＨＮレジスタ４２３に値を設定する（Ｆ３０１，Ｆ３０２）。
【０２２４】
以下、前記各レジスタに設定される値について具体的に説明すると、前記実施の形態１と同様、前記ＴＨＬレジスタ１３１には６Ｔ、前記ＴＨＨレジスタ１３２には３Ｔ、前記ＤＬレジスタには３２Ｔ、そして前記モードレジスタ１８０には１を設定する。
【０２２５】
そしてここでは、例えば前記ＴＨＮレジスタ４２３に１Ｔを設定するものとする。すなわち、リモコン信号のヘッダ部のロングハイ区間に、前記ＴＨＮレジスタ４２３に設定した１Ｔ以下のロウ区間が現れた場合、そのロウ区間をノイズとして無視する設定とする。
【０２２６】
そして以上のように各レジスタに値を設定した後、ＣＰＵ４９０は、リモコン受信回路４００からデータ割り込みが発行されるのを待つ。
【０２２７】
なお、リモコン受信回路４００側のヘッダ検出回路４３０以外の動作については、前記実施の形態１と同様であるので、ここでは省略し、以下の動作説明においては、リモコン信号のヘッダ部の波形にノイズが発生した状況下での前記ヘッダ検出回路４３０の動作のみ説明する。
【０２２８】
リモコンのボタンが押下されると、まずリモコン受信回路４００にはリモコン信号のヘッダ部が到着する。ヘッダ部の最初の立下りエッジをエッジ検出回路１１０が検出した時刻を時刻０とすると、時刻０において、カウンタ回路４２０内のＬＬＣ１２１がリセットされる（Ｆ２００５）。
【０２２９】
時刻１Ｔにおいて、前記データ待ちフラグ１４１及びヘッダ検出信号Ｓ４３０が共に“０”であり（Ｆ２０２９）、そして前記カウンタ回路４２０内のＬＬＣ１２１の出力値が前記ＴＨＮレジスタ４２３と一致するので（Ｆ２０３０）、前記カウンタ回路４２０内のＬＨＣ４２２の値がリセットされる（Ｆ２０３１）。
【０２３０】
そして、時刻６Ｔにおいて、カウンタ回路４２０内のＬＬＣ１２１の出力値と、前記ヘッダ検出回路４３０内のＴＨＬレジスタ１３１の値が等しくなり（Ｆ２０１７）、この時、前記ヘッダ検出回路４３０内のＬＬＦ４３３が“１”にセットされる（Ｆ２０１８）。
【０２３１】
そして、時刻１６Ｔにおいて、前記エッジ検出回路１１０は立上りエッジを検出し（Ｆ２０１５）、そして、時刻１７Ｔにおいて、ノイズによる立下りが、エッジ検出回路１１０において検出される（Ｆ２００２）。この時、データ待ちフラグ１４１の値もヘッダ検出信号Ｓ４３０も“０”であるため（Ｆ２００３）、前記カウンタ回路４２０内のＬＬＣ１２１がリセットされ、ＬＬＣ１２１のカウントが始まる（Ｆ２００５）。しかしこの時、ＬＨＣ４２２はリセットされず、そのときのカウント値“１Ｔ”を保つ。
【０２３２】
そして、時刻１７．５Ｔにおいて、ノイズによる負のパルスが終了し、エッジ検出回路１１０が立上りエッジを検出する（Ｆ２０１５）。これにより、前記ＬＬＣ１２１がストップし、前記ＬＨＣ４２２がカウントを開始するが（Ｆ２０３２）、前述した時刻１７Ｔにおいて前記ＬＨＣ４２２はリセットされず、それまでのカウント値“１Ｔ”を保持しているので、その１Ｔからのカウントとなる。
【０２３３】
そして、時刻１９．５Ｔにおいて、前記ＬＨＣ４２２の出力値は、前記ヘッダ検出回路４３０内のＴＨＨレジスタ１３２と等しくなり（Ｆ２０１９）、ヘッダ検出信号Ｓ４３０“１”が出力されると同時に、データ判別回路１４０内のデータ待ちフラグ１４１が“１”にセットされ、前記ヘッダ検出回路４３０内のＬＬＦ４３３は“０”にリセットされる（Ｆ２０２０）。
【０２３４】
そして時刻２４Ｔに、前記エッジ検出回路１１０が立ち下がりエッジを検出すると（Ｆ２００２）、ＬＨＣ４２２の値がリセットされて（Ｆ２００４）、ＴＨＨレジスタ１３２の値より小さくなるので、ヘッダ検出信号Ｓ４３０が立下る（Ｆ２０２３）。以後の動作は、実施の形態１と同様である。
【０２３５】
このように、本実施の形態４によれば、リモコン受信回路４００が、図１９に示すように、ＣＰＵ４９０において予め指定された期間以内のノイズ、ここでは期間１Ｔ以下のノイズを含むリモコン信号を受信した場合は、そのノイズをノイズと判断して無視することができ、リモコン信号のヘッダ部を検出する際に、ノイズの影響を受けにくくすることができる。
【０２３６】
なお、前述の全ての実施の形態においては、リモコン受信回路に入力されるリモコン信号が、図２２（ａ）に示されるように、リモコン信号のヘッダ部がロウ区間が１６Ｔでハイ区間が８Ｔで、リピートヘッダ部のロウ区間が１６Ｔでハイ区間が４Ｔであり、また、リモコン信号のデータ部が３２ビットで、データ部のＬｏｎｇＬｏｗとＬｏｎｇＨｉｇｈのデューティが１：１ならばデータ“０”に、１：３ならばデータ“１”に対応するものとし、これにより、当該リモコン受信回路のＤＬレジスタ１４２に３２、ＴＨＨレジスタ１３２に３Ｔ、ＴＨＬレジスタ１３１に６Ｔを設定し、Ｄ１フラグ１４４が、ＬＨＣが“１Ｔ”になれば立ち上がってシフトレジスタ１５０に“１”が格納され、Ｄ０フラグ１４５が、ＬＨＣが２Ｔになれば立ち上がってシフトレジスタ１５０に“０”が格納されるものとして説明したが、前記各レジスタの設定値や、各フラグの立ち上がり、立下りタイミングは、前述したものに限るものではなく、当該リモコン受信システムに入力されるリモコン信号に応じた値を各レジスタに設定し、また前記リモコン信号に応じたタイミングで各フラグの立下り、立ち上がりタイミングを設定して制御するようにすれば、どのようなリモコン信号を受信しても対応可能である。
【産業上の利用可能性】
【０２３７】
本発明のリモコン受信システムは、リモコンによる制御を受ける機器を制御するＣＰＵの、リモコン受信のための処理上の負担やリソースの負担を軽減するものとして有用である。
【図面の簡単な説明】
【０２３８】
【図１】本発明の実施の形態１にかかるリモコン受信システムの構成を示す図である。
【図２】本発明の実施の形態１におけるリモコン受信システムにおいて、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路及びＣＰＵのタイミングチャート図である。
【図３】本発明の実施の形態１において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理を示すフローチャート図である。
【図４】本発明の実施の形態１において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路での処理を示すフローチャートである。
【図５】本実施の形態１において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理を示すフローチャート図である。
【図６】反転データによるパリティを含むリモコン信号のデータ部の１例を示す図である。
【図７】本発明の実施の形態２にかかるリモコン受信システムの構成を示す図である。
【図８】本発明の実施の形態２にかかるリモコン受信回路内の有効性判別回路の詳細な構成を示す図である。
【図９】本発明の実施の形態２におけるリモコン受信システムにおいて、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路及びＣＰＵのタイミングチャート図である。
【図１０（ａ）】本発明の実施の形態２において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合のＣＰＵ側での処理を示すフローチャート図である。
【図１０（ｂ）】本発明の実施の形態２において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合のＣＰＵ側での処理におけるタスクＴ１１０のフローチャート図である。
【図１１】図１１は、本実施の形態２において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路での処理を示すフローチャート図である。
【図１２（ａ）】本発明の実施の形態２において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合のＣＰＵ側での処理を示すフローチャート図である。
【図１２（ｂ）】本発明の実施の形態２において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合のＣＰＵ側での処理におけるタスクＴ１１０のフローチャート図である。
【図１３】本発明の実施の形態３にかかるリモコン受信システムの構成を示す図である。
【図１４】本発明の実施の形態３におけるリモコン受信システムにおいて、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路及びＣＰＵのタイミングチャート図である。
【図１５（ａ）】本発明の実施の形態３において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理を示すフローチャート図である。
【図１５（ｂ）】本発明の実施の形態３において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理におけるタスクＴ１２０のフローチャート図である。
【図１５（ｃ）】本発明の実施の形態３において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理におけるタスクＴ１２１のフローチャート図である。
【図１６】本実施の形態３において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路での処理を示すフローチャート図である。
【図１７（ａ）】本発明の実施の形態３において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理を示すフローチャート図であり、
【図１７（ｂ）】本発明の実施の形態３において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理におけるタスクＴ１２３のフローチャート図である。
【図１７（ｃ）】本発明の実施の形態３において、繰り返しデータ型の送信機から発信されたリモコン信号を受信した場合の、ＣＰＵ側での処理におけるタスクＴ１２４のフローチャート図である。
【図１８】本発明の実施の形態４にかかるリモコン受信システムの構成を示す図である。
【図１９】本実施の形態４におけるリモコン受信システムにおいて、リモコン信号のヘッダ部を受信した場合の、リモコン受信回路及びＣＰＵのタイミングチャート図である。
【図２０】本実施の形態４において、リピートヘッダ型の送信機から発信されたリモコン信号を受信した場合の、リモコン受信回路での処理を示すフローチャート図である。
【図２１（ａ）】リモコン信号の波形の１例を示す図である。
【図２１（ｂ）】リピートヘッダ型の送信機から発信される、リモコン信号のリピートヘッダ部の波形の１例を示す図である。
【図２２（ａ）】リピートヘッダ型の送信機から発信されたリモコン信号の波形の１例を示す図である。
【図２２（ｂ）】繰り返しデータ型の送信機から発信されたリモコン信号の波形の１例を示す図である。
【図２３】従来におけるリモコン受信システムの構成を示す図である。
【図２４】従来における、リモコン受信システムの流れ図
【符号の説明】
【０２３９】
１００，２００，３００，４００，５００  リモコン受信回路
１１０，５１０  エッジ検出回路
１１１，３１１  スイッチ
１２０，４２０，５２０  カウンタ回路
１２１  ＬＬＣ
１２２，４２２  ＬＨＣ
１３０，４３０，５３０  ヘッダ検出回路
１３１  ＴＨＬレジスタ
１３２  ＴＨＨレジスタ
１４０，５４０  データ判別回路
１４１  データ待ちフラグ
１４２  ＤＬレジスタ
１４３  データカウンタ
１４４  Ｄ１フラグ
１４５  Ｄ０フラグ
１５０，２５０  シフトレジスタ
１６０  ヘッダ割り込み生成回路
１７０，２７０  データ割り込み生成回路
１８０，２８０  モードレジスタ
１９０，２９０，３９０，４９０，５９０  ＣＰＵ
１９１，２９１，４９１  割り込みポート
２１０  有効性判別回路
２２０，３２０  ＯＦＦ検出回路
２２１  ＯＦＦ極性レジスタ
２２２  ＯＦＦ閾値レジスタ
２２３  ＯＦＦフラグレジスタ
３１２  ＡＮＤゲート
３２１  ＯＦＦカウンタ
３２３  ＯＮフラグレジスタ
４２３  ＴＨＮレジスタ
４３３  ＬＬＦ
５５０  内蔵レジスタ
５６０  ヘッダ割り込み生成回路
５７０  データ割り込み生成回路
５８０  トレーラ検出回路
Ｓ１１１  割り込み信号
Ｓ１３０，Ｓ４３０  ヘッダ検出信号
Ｓ１４０  データ受信完了信号
Ｓ１６０，Ｓ５６０  ヘッダ割り込み信号
Ｓ１７０，Ｓ２７０，Ｓ５７０  データ割り込み信号
Ｓ２１０  データ有効信号
Ｓ３１１  ＯＦＦカウンタリセット信号
Ｓ５８０  トレーラ割り込み信号
【図１】
0003662011.tif 000002
【図２】
0003662011.tif 000003
【図３】
0003662011.tif 000004
【図４】
0003662011.tif 000005
【図５】
0003662011.tif 000006
【図６】
0003662011.tif 000007
【図７】
0003662011.tif 000008
【図８】
0003662011.tif 000009
【図９】
0003662011.tif 000010
【図１０（ａ）】
0003662011.tif 000011
【図１０（ｂ）】
0003662011.tif 000012
【図１１】
0003662011.tif 000013
【図１２（ａ）】
0003662011.tif 000014
【図１２（ｂ）】
0003662011.tif 000015
【図１３】
0003662011.tif 000016
【図１４】
0003662011.tif 000017
【図１５（ａ）】
0003662011.tif 000018
【図１５（ｂ）】
0003662011.tif 000019
【図１５（ｃ）】
0003662011.tif 000020
【図１６】
0003662011.tif 000021
【図１７（ａ）】
0003662011.tif 000022
【図１７（ｂ）】
0003662011.tif 000023
【図１７（ｃ）】
0003662011.tif 000024
【図１８】
0003662011.tif 000025
【図１９】
0003662011.tif 000026
【図２０】
0003662011.tif 000027
【図２１（ａ）】
0003662011.tif 000028
【図２１（ｂ）】
0003662011.tif 000029
【図２２（ａ）】
0003662011.tif 000030
【図２２（ｂ）】
0003662011.tif 000031
【図２３】
0003662011.tif 000032
【図２４】
0003662011.tif 000033