(57)【要約】      （修正有）【課題】低いコストで、キャリア周波数に近い周波数のノイズを含むＡＳＫ信号を適切に復調する装置を提供する。【解決手段】エッジ検出部１１は、ＡＳＫ信号のエッジを検出する。余裕期間設定部１２は、先頭のエッジが検出された時刻に基づいて、後続のエッジが検出されることが予測される時刻を含む余裕期間を設定する。検出待機モード設定部１３は、余裕期間の開始時刻が到来したことに応答して検出待機モードを設定し、エッジが検出されたこと、又は余裕期間の終了時刻が到来したことに応答して、検出待機モードを解除する。異常エッジカウント部１７は、復調対象期間において検出されたエッジのうち、検出待機モードが設定されていない間に検出されたエッジの個数をカウントする。二値化データ判定部１６はこのエッジの個数が予め決められた個数以上である場合、復調データが異常であると判断して余裕期間の長さを伸長し、ＡＳＫ信号を適切に復号する。【選択図】図２
2016072885.tif 000002
【特許請求の範囲】
【請求項１】
二値化データを振幅の有無により示すＡＳＫ信号のエッジを検出するエッジ検出部と、
前記エッジ検出部により先頭のエッジが検出された時刻に基づいて、前記エッジ検出部により後続のエッジが検出されることが予測される時刻を含む余裕期間を設定する余裕期間設定部と、
前記余裕期間設定部により設定された余裕期間の開始時刻が到来したことに応答して検出待機モードを設定し、前記エッジ検出部によりエッジが検出されたこと、又は、前記余裕期間の終了時刻が到来したことに応答して、前記検出待機モードを解除する検出待機モード設定部と、
前記エッジ検出部により前記先頭のエッジが検出された時刻に基づいて、前記ＡＳＫ信号により復調対象の１ビットの二値化データが示される復調対象期間を特定する復調対象期間特定部と、
前記復調対象期間特定部により特定された復調対象期間において前記エッジ検出部により検出されたエッジのうち、前記検出待機モード設定部により前記検出待機モードが設定されている間に検出されたエッジの個数をカウントする正常エッジカウント部と、
前記正常エッジカウント部によりカウントされた個数に基づいて、前記復調対象の１ビットの二値化データを判定する二値化データ判定部と、を備える、
ＡＳＫ復調装置。
【請求項２】
前記復調対象期間特定部により特定された復調対象期間において前記エッジ検出部により検出されたエッジのうち、前記検出待機モード設定部により前記検出待機モードが設定されていない間に検出されたエッジの個数をカウントする異常エッジカウント部をさらに備え、
前記二値化データ判定部は、前記異常エッジカウント部によりカウントされた個数に基づいて、前記復調対象の１ビットの二値化データが異常であると判定する、
請求項１に記載のＡＳＫ復調装置。
【請求項３】
前記余裕期間設定部は、前記二値化データ判定部により前記復調対象の１ビットの二値化データが異常であると判定された頻度に応じて、前記余裕期間の長さを調整する、
請求項２に記載のＡＳＫ復調装置。
【請求項４】
前記余裕期間設定部は、前記頻度が予め定められた閾値よりも高い場合、前記余裕期間の長さを伸長する、
請求項３に記載のＡＳＫ復調装置。
【請求項５】
前記ＡＳＫ復調装置は、外部割り込み機能とタイマ割り込み機能とを備えるマイクロプロセッサを備え、
前記余裕期間設定部は、前記エッジ検出部によりエッジが検出されたことに応答して発生する外部割り込みの割り込みルーチンにおいて第１タイマを起動し、前記第１タイマの起動により発生する第１タイマ割り込みの割り込みルーチンにおいて第２タイマを起動し、前記第２タイマの起動により発生する第２タイマ割り込みの割り込みルーチンにおいて前記第１タイマを起動し、
前記検出待機モード設定部は、前記第１タイマ割り込みの割り込みルーチンにおいて前記検出待機モードを設定し、前記外部割り込みの割り込みルーチン、又は、前記第２タイマ割り込みの割り込みルーチンにおいて前記検出待機モードを解除する、
請求項１から４のいずれか１項に記載のＡＳＫ復調装置。
【請求項６】
二値化データを振幅の有無により示すＡＳＫ信号のエッジを検出するエッジ検出ステップと、
前記エッジ検出ステップで先頭のエッジが検出された時刻に基づいて、前記エッジ検出ステップで後続のエッジが検出されることが予測される時刻を含む余裕期間を設定する余裕期間設定ステップと、
前記余裕期間設定ステップで設定された余裕期間の開始時刻が到来したことに応答して検出待機モードを設定し、前記エッジ検出ステップでエッジが検出されたこと、又は、前記余裕期間の終了時刻が到来したことに応答して、前記検出待機モードを解除する検出待機モード設定ステップと、
前記エッジ検出ステップで前記先頭のエッジが検出された時刻に基づいて、前記ＡＳＫ信号により復調対象の１ビットの二値化データが示される復調対象期間を特定する復調対象期間特定ステップと、
前記復調対象期間特定ステップで特定された復調対象期間において前記エッジ検出ステップで検出されたエッジのうち、前記検出待機モード設定ステップで前記検出待機モードが設定されている間に検出されたエッジの個数をカウントする正常エッジカウントステップと、を備える、
ＡＳＫ復調方法。
【請求項７】
二値化データを振幅の有無により示すＡＳＫ信号のエッジを検出するエッジ検出部を備えるコンピュータを、
前記エッジ検出部により先頭のエッジが検出された時刻に基づいて、前記エッジ検出部により後続のエッジが検出されることが予測される時刻を含む余裕期間を設定する余裕期間設定部、
前記余裕期間設定部により設定された余裕期間の開始時刻が到来したことに応答して検出待機モードを設定し、前記エッジ検出部によりエッジが検出されたこと、又は、前記余裕期間の終了時刻が到来したことに応答して、前記検出待機モードを解除する検出待機モード設定部、
前記エッジ検出部により前記先頭のエッジが検出された時刻に基づいて、前記ＡＳＫ信号により復調対象の１ビットの二値化データが示される復調対象期間を特定する復調対象期間特定部、
前記復調対象期間特定部により特定された復調対象期間において前記エッジ検出部により検出されたエッジのうち、前記検出待機モード設定部により前記検出待機モードが設定されている間に検出されたエッジの個数をカウントする正常エッジカウント部、
前記正常エッジカウント部によりカウントされた個数に基づいて、前記復調対象の１ビットの二値化データを判定する二値化データ判定部、として機能させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＳＫ信号を復調する、ＡＳＫ復調装置、ＡＳＫ復調方法、及び、プログラムに関する。
【背景技術】
【０００２】
現在、キャリアの有無を「１」又は「０」に割り当てることによりベースバンド信号を変調するＡＳＫ（Amplitude Shift Keying）変調が知られている。ここで、キャリアとは、一定周波数の正弦波信号である。ＡＳＫ変調によれば、通信機器間のシリアル通信を比較的簡単な回路構成で実現することができる。ＡＳＫ変調により得られたＡＳＫ信号は、ＡＳＫ復調装置により復調される。このようなＡＳＫ復調装置として、種々の装置が知られている。
【０００３】
例えば、特許文献１には、ＡＳＫ信号を整流する整流回路と、整流回路が出力した電圧の高周波成分を除去する第１のローパスフィルタと、第１のローパスフィルタが出力した電圧を平均化する第２のローパスフィルタと、第２のローパスフィルタが出力した電圧に正のオフセット電圧を加えた電圧と第１のローパスフィルタが出力した電圧との大小関係を比較して比較結果を示す電圧を出力するオフセット付きコンパレータ回路と、を備えるＡＳＫ復調回路が開示されている。
【０００４】
特許文献１に開示されたＡＳＫ復調回路は、キャリア周波数以外の周波数を除去するバンドパスフィルタを備えていない。このため、特許文献１に開示されたＡＳＫ復調回路では、キャリア周波数に近い周波数のノイズがＡＳＫ信号に含まれている場合、ＡＳＫ信号を適切に復調することができない。このような課題を解決するために、ＡＳＫ復調回路にアナログ又はデジタルのバンドパスフィルタを設ける対策が考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１８１９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、アナログのバンドパスフィルタは、通過帯域が比較的広いため、キャリア周波数に近い周波数のノイズを適切に除去することは難しい。一方、デジタルのバンドパスフィルタは、高い処理能力を有するプロセッサなどを必要とし、高いコストを要する。このため、低いコストで、キャリア周波数に近い周波数のノイズを含むＡＳＫ信号を適切に復調する技術が望まれている。
【０００７】
本発明は、上記問題に鑑みてなされたものであり、低いコストで、キャリア周波数に近い周波数のノイズを含むＡＳＫ信号を適切に復調する、ＡＳＫ復調装置、ＡＳＫ復調方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係るＡＳＫ復調装置は、
二値化データを振幅の有無により示すＡＳＫ信号のエッジを検出するエッジ検出部と、
前記エッジ検出部により先頭のエッジが検出された時刻に基づいて、前記エッジ検出部により後続のエッジが検出されることが予測される時刻を含む余裕期間を設定する余裕期間設定部と、
前記余裕期間設定部により設定された余裕期間の開始時刻が到来したことに応答して検出待機モードを設定し、前記エッジ検出部によりエッジが検出されたこと、又は、前記余裕期間の終了時刻が到来したことに応答して、前記検出待機モードを解除する検出待機モード設定部と、
前記エッジ検出部により前記先頭のエッジが検出された時刻に基づいて、前記ＡＳＫ信号により復調対象の１ビットの二値化データが示される復調対象期間を特定する復調対象期間特定部と、
前記復調対象期間特定部により特定された復調対象期間において前記エッジ検出部により検出されたエッジのうち、前記検出待機モード設定部により前記検出待機モードが設定されている間に検出されたエッジの個数をカウントする正常エッジカウント部と、
前記正常エッジカウント部によりカウントされた個数に基づいて、前記復調対象の１ビットの二値化データを判定する二値化データ判定部と、を備える。
【発明の効果】
【０００９】
本発明では、復調対象期間において検出されたエッジのうち、検出待機モードが設定されている間に検出されたエッジの個数がカウントされる。従って、本発明によれば、低いコストで、キャリア周波数に近い周波数のノイズを含むＡＳＫ信号を適切に復調することが期待できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るＡＳＫ復調装置の構成図である。
【図２】本発明の実施形態に係るＡＳＫ復調装置の機能を説明するための図である。
【図３】正常キャリアカウンタが十分にカウントアップされる様子を示す図である。
【図４】ベースバンド信号が「１」と判定される様子を示す図である。
【図５】正常キャリアカウンタが十分にカウントアップされない様子を示す図である。
【図６】ベースバンド信号が「０」と判定される様子を示す図である。
【図７】異常キャリアカウンタが十分にカウントアップされる様子を示す図である。
【図８】ベースバンド信号が「異常」により「０」と判定される様子を示す図である。
【図９】本発明の実施形態に係るＡＳＫ復調装置が実行するＡＳＫ復調処理を示すフローチャートである。
【図１０】フレーム間隔タイマのタイマ割り込み処理を示すフローチャートである。
【図１１】エッジ検出ポートの外部割り込み処理を示すフローチャートである。
【図１２】ゲート開始タイマのタイマ割り込み処理を示すフローチャートである。
【図１３】ゲート終了タイマのタイマ割り込み処理を示すフローチャートである。
【図１４】正常キャリア検出ポートの外部割り込み処理を示すフローチャートである。
【図１５】異常キャリア検出ポートの外部割り込み処理を示すフローチャートである。
【図１６】正常キャリアカウンタのオーバーフロー割り込み処理を示すフローチャートである。
【図１７】異常キャリアカウンタのオーバーフロー割り込み処理を示すフローチャートである。
【図１８】ビット長タイマのタイマ割り込み処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を、図面を参照して説明する。まず、図１を参照して、本発明の実施形態に係るＡＳＫ（Amplitude Shift Keying）復調装置１０００の構成について説明する。ＡＳＫ復調装置１０００は、キャリア（搬送波）の有無を「１」又は「０」に割り当てることによりベースバンド信号を変調するＡＳＫ変調により生成されたＡＳＫ信号を、ベースバンド信号に復調する装置である。ベースバンド信号は、「１」と「０」とにより構成される二値化データを示す信号である。
【００１２】
搬送波の周波数は、例えば、２５０ｋＨｚである。搬送波には、ＡＳＫ変調装置内や伝搬経路の途中で、ノイズが重畳されることがある。ＡＳＫ復調装置１０００は、搬送波に重畳されたノイズを除去しながら、ＡＳＫ信号を復調する。ノイズの除去は、ＡＳＫ信号の復調時に、マイクロプロセッサ１００が有する割り込み機能などを用いた簡単な処理により実行される。このため、本実施形態では、ＡＳＫ信号を復調する処理の前処理として、アナログのバンドパスフィルタやデジタルのバンドパスフィルタによりフィルタリング処理がなくても、適切なＡＳＫ復調が実現可能である。図１に示すように、ＡＳＫ復調装置１０００は、マイクロプロセッサ１００と、共振回路２００と、を備える。
【００１３】
共振回路２００は、伝送線上の信号の中から、搬送波の周波数帯域の信号を、ＡＳＫ信号として抽出する。共振回路２００は、アナログフィルタとしての機能も有するが、通過帯域は比較的広い。このため、共振回路２００は、搬送波に近い帯域のノイズもＡＳＫ信号として抽出する。共振回路２００は、抽出したＡＳＫ信号をコンパレータ１０２に供給する。
【００１４】
マイクロプロセッサ１００は、共振回路２００から供給されたＡＳＫ信号を復調する。マイクロプロセッサ１００は、コンピュータなどに実装される、プロセッサを集積回路で実装したものである。マイクロプロセッサ１００は、ＣＰＵ（Central Processing Unit）コアに加え、パラレルポート、タイマカウンタ、メモリなどの周辺回路を含む。マイクロプロセッサ１００は、タイマ割り込み、外部割り込み、オーバーフロー割り込みなどの種々の割り込みの機能を有する。マイクロプロセッサ１００は、これらの割り込み機能を駆使して、ＡＳＫ信号に含まれるノイズを除去しながら、ＡＳＫ信号を復調する。
【００１５】
マイクロプロセッサ１００は、ＣＰＵ１０１、コンパレータ１０２、フレーム間隔タイマ１０３、エッジ検出ポート１０４、ゲート開始タイマ１０５、ゲート終了タイマ１０６、ゲート信号出力ポート１０７、正常キャリア検出ポート１０８、正常キャリアカウンタ１０９、異常キャリア検出ポート１１０、異常キャリアカウンタ１１１、ビット検定出力ポート１１２、ビット検定入力ポート１１３、ビット長タイマ１１４、ベースバンド出力ポート１１５、シリアル受信ポート１１６を備える。なお、図１において、複数の構成要素間において、信号やデータの流れを示す矢印が明示されていなくても、これらの複数の構成要素間での信号やデータの通信が可能である。このように、マイクロプロセッサ１００が備える各構成要素間では、適宜、通信が可能である。
【００１６】
ＣＰＵ１０１は、マイクロプロセッサ１００の全体の動作を制御するＣＰＵコアである。ＣＰＵ１０１は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）を備える。ＣＰＵ１０１は、ＲＡＭを一時記憶領域として使用しながら、ＲＯＭに記憶されたプログラムに従って動作する。
【００１７】
コンパレータ１０２は、共振回路２００から供給されたＡＳＫ信号を、電源電圧と０Ｖとのいずれかの電圧を有する信号（以下、適宜「正規化ＡＳＫ信号」という。）に正規化（増幅）する。コンパレータ１０２は、ＡＳＫ信号の電圧が基準電圧以上であるとき正規化ＡＳＫ信号として電源電圧を出力し、ＡＳＫ信号の電圧が基準電圧未満であるとき正規化ＡＳＫ信号として０Ｖを出力する。以下、適宜、電源電圧のことを「１」、０Ｖのことを「０」とする。本実施形態では、コンパレータ１０２は、マイクロプロセッサ１００に内蔵されているものとして説明するが、外付けのものであってもよい。
【００１８】
フレーム間隔タイマ１０３は、マイクロプロセッサ１００が備える汎用のタイマである。フレーム間隔タイマ１０３は、例えば、マイクロプロセッサ１００の電源投入直後、通信フレームの受信完了後、異常キャリアカウンタのオーバーフロー割り込みの割り込みルーチン（割り込みハンドラ）、又は、ＤＭＡ（Direct Memory Access）により起動される。フレーム間隔タイマ１０３は、起動時に設定された目標値までカウントすると、タイマ割り込みを発生する。このタイマ割り込みの割り込み処理において、エッジ検出ポート１０４による外部割り込みが許可され（イネーブルに設定され）、ＡＳＫ信号の復調動作が開始される。フレーム間隔タイマ１０３は、例えば、ＲＴＣ（Real Time Clock）を備える。
【００１９】
エッジ検出ポート１０４は、マイクロプロセッサ１００が備える汎用のエッジ検出機能付きのパラレルポートである。エッジ検出ポート１０４は、コンパレータ１０２から出力された正規化ＡＳＫ信号の立ち上がりエッジ又は立ち下がりエッジを検出する。本実施形態では、検出されるエッジは、立ち上がりエッジであるものとする。エッジ検出ポート１０４は、外部割り込みが許可されているときにエッジを検出すると、外部割り込みを発生する。この外部割り込みの割り込み処理において、ゲート信号がオフにされたり、正常キャリア検出ポート１０８や異常キャリア検出ポート１１０の外部割り込みが許可されたりする。また、外部割り込みの割り込み処理において、先頭のエッジが検出された場合、ゲート開始タイマ１０５やビット長タイマ１１４が起動される。なお、先頭のエッジは、例えば、ＡＳＫ信号（正規化ＡＳＫ信号、搬送波）に含まれるエッジのうち、各通信フレームに含まれる最初の「１」を示すデータを構成する搬送波に含まれる最初の立ち上がりエッジである。
【００２０】
ゲート開始タイマ１０５は、マイクロプロセッサ１００が備える汎用のタイマである。ゲート開始タイマ１０５は、例えば、エッジ検出ポート１０４やゲート終了タイマ１０６による指示により起動する。ゲート開始タイマ１０５は、起動時に設定された目標値までカウントすると、タイマ割り込みを発生する。このタイマ割り込みの割り込み処理において、ゲート終了タイマ１０６が起動される。ゲート開始タイマ１０５は、例えば、ＲＴＣを備える。
【００２１】
ゲート終了タイマ１０６は、マイクロプロセッサ１００が備える汎用のタイマである。ゲート終了タイマ１０６は、例えば、ゲート開始タイマ１０５による指示により起動する。ゲート終了タイマ１０６は、起動時に設定された目標値までカウントすると、タイマ割り込みを発生する。このタイマ割り込みの割り込み処理において、ゲート開始タイマ１０５が起動されたり、ゲート信号が出力されたりする。ゲート終了タイマ１０６は、例えば、ＲＴＣを備える。
【００２２】
ゲート信号出力ポート１０７は、マイクロプロセッサ１００が備える汎用のパラレルポートである。ゲート信号出力ポート１０７は、ゲート開始タイマ１０５のタイマ割り込み処理に従ってゲート信号を出力し、エッジ検出ポート１０４の外部割り込み処理やゲート終了タイマ１０６のタイマ割り込み処理に従ってゲート信号の出力を停止する。
【００２３】
正常キャリア検出ポート１０８は、マイクロプロセッサ１００が備える汎用のレベル検出機能付きのパラレルポートである。正常キャリア検出ポート１０８は、外部割り込みが許可されているときにゲート信号がＨレベルであることを検出すると、外部割り込みを発生する。つまり、この外部割り込みの割り込み要因は、Ｈレベル入力である。この外部割り込みは、エッジ検出ポート１０４の外部割り込みにより許可される。また、この外部割り込みでは、この外部割り込みの許可が解除され（ディセーブル）、正常キャリアカウンタ１０９がカウントされる。本実施形態では、各信号が出力されていることを、適宜、各信号が「Ｈレベル」である、又は、各信号が「１」であるという。同様に、各信号が出力されていないことを、適宜、各信号が「Ｌレベル」である、又は、各信号が「０」であるという。
【００２４】
正常キャリアカウンタ１０９は、マイクロプロセッサ１００が備える汎用のカウンタである。正常キャリアカウンタ１０９は、正常キャリア検出ポート１０８の外部割り込み処理によりカウンタ値がカウントアップ（インクリメント）する。正常キャリアカウンタ１０９は、起動時に設定されたカウント値をオーバーフローするまでカウントアップすると、オーバーフロー割り込みを発生する。このオーバーフロー割り込みの割り込み処理において、ビット検定信号が「１」に設定される。なお、ビット検定信号の初期値は「０」であり、このオーバーフロー割り込みが発生しない場合、ビット検定信号は「０」のままである。
【００２５】
異常キャリア検出ポート１１０は、マイクロプロセッサ１００が備える汎用のレベル検出機能付きのパラレルポートである。異常キャリア検出ポート１１０は、外部割り込みが許可されているときにゲート信号がＬレベルであることを検出すると、外部割り込みを発生する。つまり、この外部割り込みの割り込み要因は、Ｌレベル入力である。この外部割り込みは、エッジ検出ポート１０４の外部割り込みにより許可される。また、この外部割り込みでは、この外部割り込みの許可が解除され（ディセーブル）、異常キャリアカウンタ１１１がカウントされる。
【００２６】
異常キャリアカウンタ１１１は、マイクロプロセッサ１００が備える汎用のカウンタである。異常キャリアカウンタ１１１は、異常キャリア検出ポート１１０の外部割り込み処理によりカウンタ値がカウントアップ（インクリメント）する。異常キャリアカウンタ１１１は、起動時に設定されたカウント値をオーバーフローするまでカウントアップすると、オーバーフロー割り込みを発生する。このオーバーフロー割り込みの割り込み処理において、異常発生時処理が実行される。異常発生時処理は、ビット検定信号を「０」に設定するだけの処理であってもよいし、エッジ検出ポート１０４の外部割り込みを禁止する処理や、通信フレームを再取得するための初期化処理を含んでいてもよい。
【００２７】
ビット検定出力ポート１１２は、マイクロプロセッサ１００が備える汎用のパラレルポートである。ビット検定出力ポート１１２は、正常キャリアカウンタ１０９や異常キャリアカウンタ１１１の指示に従って、ビット検定信号を出力（「１」を出力）したり、ビット検定信号の出力を停止（「０」を出力）したりする。
【００２８】
ビット検定入力ポート１１３は、マイクロプロセッサ１００が備える汎用のパラレルポートである。ビット検定入力ポート１１３は、ビット検定出力ポート１１２から出力されたビット検定信号を入力する。
【００２９】
ビット長タイマ１１４は、マイクロプロセッサ１００が備える汎用のタイマである。ビット長タイマ１１４は、例えば、エッジ検出ポート１０４による指示により起動する。ビット長タイマ１１４は、起動時に設定された目標値までカウントすると、タイマ割り込みを発生する。ビット長タイマ１１４は、シリアル伝送における１ビットの時間を計測し、１ビット分の時間が経過したことに応答して、タイマ割り込みを発生する。このタイマ割り込みの割り込み処理において、ビット検定入力ポート１１３に入力されたビット検定信号の値に応じた値を有するベースバンド信号が、ベースバンド出力ポート１１５から出力される。ビット長タイマ１１４は、例えば、ＲＴＣを備える。
【００３０】
ベースバンド出力ポート１１５は、マイクロプロセッサ１００が備える汎用のパラレルポートである。ベースバンド出力ポート１１５は、ＡＳＫ復調により取得されたベースバンド信号を出力する。ベースバンド出力ポート１１５から出力されるベースバンド信号は、共振回路２００に供給されたＡＳＫ信号よりも、１ビット分遅延した信号となる。
【００３１】
シリアル受信ポート１１６は、マイクロプロセッサ１００が備える汎用のシリアル受信ポートである。シリアル受信ポート１１６は、ベースバンド出力ポート１１５から出力されたベースバンド信号を受信する。シリアル受信ポート１１６は、シリアル通信機能によりスタートビット判定、パリティ判定、ストップビット判定、シリアルデータからバイトデータへの変換などの処理を、ソフトウェアを介さずに自動で実行する。なお、シリアル受信ポート１１６が生成したバイトデータは、シリアル受信ポート１１６が備えるバッファメモリに保存される。
【００３２】
次に、図２を参照して、本実施形態に係るＡＳＫ復調装置１０００の機能について説明する。図２に示すように、ＡＳＫ復調装置１０００は、機能的には、エッジ検出部１１、余裕期間設定部１２、検出待機モード設定部１３、復調対象期間特定部１４、正常エッジカウント部１５、二値化データ判定部１６、異常エッジカウント部１７を備える。
【００３３】
エッジ検出部１１は、二値化データを振幅の有無により示すＡＳＫ信号のエッジを検出する。エッジ検出部１１がエッジを検出するＡＳＫ信号は、例えば、電源電圧と０Ｖとのうちのいずれかの電圧を示す正規化ＡＳＫ信号である。エッジ検出部１１は、例えば、正規化ＡＳＫ信号の立ち上がりエッジを検出する。エッジ検出部１１は、例えば、エッジ検出ポート１０４を備える。
【００３４】
余裕期間設定部１２は、エッジ検出部１１により先頭のエッジが検出された時刻に基づいて余裕期間を設定する。余裕期間は、例えば、エッジ検出部１１により後続のエッジが検出されることが予測される時刻を含む期間である。ＡＳＫ信号は、予め定められた周波数の搬送波を含む信号である。従って、通信フレームの先頭のエッジが検出された時刻を基準として、この搬送波の周期の整数倍の時間が経過した時刻が、後続のエッジが検出されることが予測される時刻（以下、「検出予測時刻」という。）となる。検出予測時刻に一定の余裕を持たせた期間、つまり、検出予測時刻の前後に予め定められた時間を設けることにより得られた期間が、余裕期間に設定される。余裕期間に検出されたエッジは、正常なエッジとみなされ、余裕期間外に検出されたエッジは、異常なエッジとみなされる。余裕期間設定部１２は、例えば、ゲート開始タイマ１０５、ゲート終了タイマ１０６を備える。
【００３５】
検出待機モード設定部１３は、余裕期間設定部１２により設定された余裕期間の開始時刻が到来したことに応答して検出待機モードを設定する。また、検出待機モード設定部１３は、エッジ検出部１１によりエッジが検出されたこと、又は、余裕期間の終了時刻が到来したことに応答して、検出待機モードを解除する。検出待機モードは、ＡＳＫ復調装置１０００が、エッジの検出を待機するモードである。本実施形態では、検出待機モードが設定されている間、ゲート信号が出力され、検出待機モードが設定されていない間、ゲート信号の出力が停止される。つまり、検出待機モードを設定することは、ゲート信号を出力することであり、検出待機モードを解除することは、ゲート信号の出力を停止することである。検出待機モードが設定されている間にエッジが検出された場合、検出されたエッジは正常なエッジであると見なされる。一方、検出待機モードが設定されていない間にエッジが検出された場合、検出されたエッジは異常なエッジであると見なされる。検出待機モード設定部１３は、例えば、ゲート信号出力ポート１０７を備える。
【００３６】
復調対象期間特定部１４は、エッジ検出部１１により先頭のエッジが検出された時刻に基づいて、復調対象期間を特定する。復調対象期間は、ＡＳＫ信号により復調対象の１ビットの二値化データが示される期間である。つまり、復調対象期間は、ＡＳＫ信号の１ビット期間のうち、復調の対象とする期間である。なお、１ビット期間は、ＡＳＫ信号により１ビットの二値化データが示される期間である。従って、１ビット期間の間、ＡＳＫ信号は、振幅を有する状態を維持するか、もしくは、振幅を有さない状態を維持する。復調対象期間特定部１４は、例えば、ビット長タイマ１１４を備える。
【００３７】
正常エッジカウント部１５は、復調対象期間特定部１４により特定された復調対象期間においてエッジ検出部１１により検出されたエッジのうち、検出待機モード設定部１３により検出待機モードが設定されている間に検出されたエッジの個数をカウントする。なお、余裕期間中、必ずしも検出待機モードに設定されているとは限らない。例えば、１つの余裕期間中に２つのエッジが検出された場合、１つ目のエッジが検出された時点で、検出待機モードが解除される。この場合、２つ目のエッジは、正常エッジカウント部１５のカウントの対象とはならない。この２つ目のエッジは、異常エッジカウント部１７のカウントの対象となる。正常エッジカウント部１５は、例えば、正常キャリア検出ポート１０８、正常キャリアカウンタ１０９を備える。
【００３８】
二値化データ判定部１６は、正常エッジカウント部１５によりカウントされた個数に基づいて、復調対象の１ビットの二値化データを判定する。二値化データ判定部１６は、例えば、正常エッジカウント部１５によりカウントされた個数が、予め定められた個数以上である場合、復調対象の１ビットの二値化データが「１」であると判定する。一方、二値化データ判定部１６は、例えば、正常エッジカウント部１５によりカウントされた個数が、予め定められた個数よりも少ない場合、復調対象の１ビットの二値化データが「０」であると判定する。二値化データ判定部１６は、例えば、ビット検定出力ポート１１２を備える。
【００３９】
異常エッジカウント部１７は、復調対象期間特定部１４により特定された復調対象期間においてエッジ検出部１１により検出されたエッジのうち、検出待機モード設定部１３により検出待機モードが設定されていない間に検出されたエッジの個数をカウントする。異常エッジカウント部１７は、例えば、余裕期間中に検出されたエッジのうち２個目以降のエッジや、余裕期間外に検出されたエッジの個数をカウントする。異常エッジカウント部１７は、例えば、異常キャリア検出ポート１１０、異常キャリアカウンタ１１１を備える。
【００４０】
ここで、二値化データ判定部１６は、異常エッジカウント部１７によりカウントされた個数に基づいて、復調対象の１ビットの二値化データが異常であると判定することができる。例えば、二値化データ判定部１６は、異常エッジカウント部１７によりカウントされた個数が、予め定められた個数以上である場合、復調対象の１ビットの二値化データが異常であると判定する。
【００４１】
また、余裕期間設定部１２は、二値化データ判定部１６により復調対象の１ビットの二値化データが異常であると判定された頻度に応じて、余裕期間の長さを調整することができる。典型的には、余裕期間設定部１２は、この頻度が予め定められた閾値よりも高い場合、余裕期間の長さを伸長する。データが異常であると判定される頻度が高い場合、余裕期間の長さが維持されたままでは、以後も、正常にＡＳＫ信号が復調できない可能性が高い。そこで、このような場合、余裕期間の長さが伸長される。例えば、余裕期間設定部１２は、１フレーム分の二値化データのうち異常であると判定された二値化データの割合が閾値以上である場合、現在設定されている余裕期間を含む期間を新たな余裕期間に設定する。余裕期間設定部１２は、二値化データが異常であると判定された頻度が高い程、余裕期間を伸長する長さを長くすることができる。
【００４２】
なお、ＡＳＫ復調装置１０００は、外部割り込み機能とタイマ割り込み機能とを備えるマイクロプロセッサ１００を備えることができる。ＡＳＫ復調装置１０００は、これらの割り込み機能を駆使して、ＡＳＫ信号を適切に復調することができる。
【００４３】
例えば、余裕期間設定部１２は、エッジ検出部１１によりエッジが検出されたことに応答して発生する外部割り込みの割り込みルーチンにおいて第１タイマを起動することができる。また、余裕期間設定部１２は、第１タイマの起動により発生する第１タイマ割り込みの割り込みルーチンにおいて第２タイマを起動し、第２タイマの起動により発生する第２タイマ割り込みの割り込みルーチンにおいて第１タイマを起動することができる。ここで、第１タイマは、例えば、ゲート開始タイマ１０５である。また、第２タイマは、例えば、ゲート終了タイマ１０６である。
【００４４】
また、検出待機モード設定部１３は、第１タイマ割り込みの割り込みルーチンにおいて検出待機モードを設定することができる。また、検出待機モード設定部１３は、外部割り込みの割り込みルーチン、又は、第２タイマ割り込みの割り込みルーチンにおいて検出待機モードを解除することができる。
【００４５】
次に、図３と図４とを参照して、ベースバンド信号が「１」と判定されるまでの処理について説明する。図３は、正常キャリアカウンタ１０９が十分にカウントアップされる様子を示す図である。図４は、ベースバンド信号が「１」と判定される様子を示す図である。
【００４６】
より詳細には、図３（Ａ）は、正規化前のＡＳＫ信号のレベルを示す図である。図３（Ｂ）は、正規化後のＡＳＫ信号のレベルを示す図である。図３（Ｃ）は、ゲート信号のレベルを示す図である。図３（Ｄ）は、余裕期間の設定状態を示す図である。図３（Ｅ）は、正常キャリアカウンタ１０９のカウント値を示す図である。図４（Ａ）は、正規化前のＡＳＫ信号のレベルを示す図である。図４（Ｂ）は、正常キャリアカウンタのカウンタ値を示す図である。図４（Ｃ）は、ビット長タイマの状態を示す図である。図４（Ｄ）は、ビット検定信号のレベルを示す図である。図４（Ｅ）は、ベースバンド信号のレベルを示す図である。
【００４７】
図３（Ａ）に示すように、正規化前のＡＳＫ信号（ただし、ＡＳＫ信号が「１」を示す状態の場合）は、予め定められた周波数および予め定められた振幅を有する正弦波である。また、図３（Ｂ）に示すように、正規化後のＡＳＫ信号は、「１」と「０」との間で振幅する矩形波である。図３（Ｂ）に示すように、正規化後のＡＳＫ信号の周期がＴ０であるとすると、Ｔ０の間隔でエッジ（立ち上がりエッジ）が発生する。
【００４８】
この場合、余裕期間は、先頭のエッジが検出された時刻からＴ０が経過する毎に到来する検出予定時刻を含む期間に設定される。また、余裕期間の中心の時刻が検出予定時刻となる。図３（Ｄ）に示す例では、余裕期間は、Ｔ２１、Ｔ２２、Ｔ２３、Ｔ２４で示される期間である。余裕期間の長さは、ノイズ環境などにより適切な長さに設定される。余裕期間の長さは、ゲート終了タイマ１０６に設定された目標値に対応する長さである。先頭のエッジが検出された時刻から先頭の余裕期間までの期間は、Ｔ１０により示される期間である。各余裕期間の間の期間は、Ｔ１１、Ｔ１２、Ｔ１３により示される期間である。ここで、Ｔ１０の長さは、Ｔ２１の長さの半分の長さをＴ０の長さから減じた長さとなる。一方、Ｔ１１、Ｔ１２、Ｔ１３の長さは、Ｔ２１の長さをＴ０の長さから減じた長さとなる。
【００４９】
ＡＳＫ信号が正常である場合、設定された余裕期間内に後続のエッジが検出されることになる。この場合、図３（Ｃ）に示すように、余裕期間の開始時刻にゲート信号が「１」（有効）となり、余裕期間の終了時刻が到来する前にエッジが検出されてゲート信号が「０」（無効）となる。そして、図３（Ｅ）に示すように、ゲート信号が「１」である間に検出されたエッジの個数が、正常キャリアカウンタ１０９によりカウントされる。
【００５０】
ここで、図４（Ａ）に示すように、復調対象期間において、正規化前のＡＳＫ信号が「１」を示す場合、図４（Ｂ）に示すように、正常キャリアカウンタ１０９は、オーバーフローするまでカウンタ値をカウントする。ここで、ＡＳＫ信号が正常である場合、１ビット期間で５０個のエッジが検出されるものと仮定し、１ビット期間で４０個以上のエッジが検出された場合、ＡＳＫ信号が「１」を示すと判定されるものとする。また、正常キャリアカウンタ１０９は、カウンタ値が２５５から２５６にカウントアップされたときに、オーバーフローすると仮定する。この場合、例えば、カウンタ値の初期値を２１６に設定することにより、４０個のエッジが検出された時点でオーバーフローが発生する。
【００５１】
ここで、カウンタ値がオーバーフローすると、オーバーフロー割り込みが発生する。この場合、図４（Ｄ）に示すように、ビット検定信号が「０」から「１」に変更される。その後、図４（Ｃ）に示すように、ビット長タイマ１１４のタイマ割り込みが発生すると、図４（Ｅ）に示すように、このタイマ割り込みが発生した時点におけるビット検定信号のレベルである「１」が、ベースバンド信号のレベルとして設定される。なお、ビット検定信号のレベルは、「１」から「０」に戻される。このように、ＡＳＫ信号が適切に「１」を示す場合、ＡＳＫ信号は、「１」を示すベースバンド信号に適切に復調される。
【００５２】
次に、図５と図６とを参照して、ベースバンド信号が「０」と判定されるまでの処理について説明する。図５は、正常キャリアカウンタ１０９が十分にカウントアップされない様子を示す図である。図６は、ベースバンド信号が「０」と判定される様子を示す図である。
【００５３】
より詳細には、図５（Ａ）は、正規化前のＡＳＫ信号のレベルを示す図である。図５（Ｂ）は、正規化後のＡＳＫ信号のレベルを示す図である。図５（Ｃ）は、ゲート信号のレベルを示す図である。図５（Ｄ）は、余裕期間の設定状態を示す図である。図５（Ｅ）は、正常キャリアカウンタのカウンタ値を示す図である。図６（Ａ）は、正規化前のＡＳＫ信号のレベルを示す図である。図６（Ｂ）は、正常キャリアカウンタの値を示す図である。図６（Ｃ）は、ビット長タイマの状態を示す図である。図６（Ｄ）は、ビット検定信号のレベルを示す図である。図６（Ｅ）は、ベースバンド信号のレベルを示す図である。
【００５４】
図５（Ａ）に示すように、正規化前のＡＳＫ信号が予め定められた周波数および予め定められた振幅を有する適切な正弦波でないものとする。この場合、図５（Ｂ）に示すように、正規化後のＡＳＫ信号は、「１」と「０」との間で振幅する矩形波となるが、Ｔ０の間隔でエッジ（立ち上がりエッジ）が発生する信号とはならない。一方、余裕期間は、図３（Ｄ）で示したものと同様、図５（Ｄ）に示すように、Ｔ２１、Ｔ２２、Ｔ２３、Ｔ２４で示される期間となる。
【００５５】
ＡＳＫ信号が正常でない場合、設定された余裕期間内に後続のエッジが検出されないことがある。この場合、図５（Ｃ）に示すように、余裕期間の開始時刻にゲート信号が「１」（有効）となるが、余裕期間の終了時刻が到来する前にエッジが検出されずにゲート信号が「０」（無効）となることがある。図５（Ｃ）は、ゲート信号が「１」となった３回目の期間には、エッジが検出されなかった例を示している。そして、図５（Ｅ）に示すように、ゲート信号が「１」である間に検出されたエッジの個数が、正常キャリアカウンタ１０９によりカウントされる。
【００５６】
ここで、図６（Ａ）に示すように、復調対象期間において、正規化前のＡＳＫ信号が適切に「１」を示さない場合でも、図６（Ｂ）に示すように、正常キャリアカウンタ１０９は、カウンタ値をカウントする。しかしながら、ＡＳＫ信号が適切でない場合、正常キャリアカウンタ１０９によるカウントが不足し、オーバーフロー割り込みが発生しない。
【００５７】
この場合、図６（Ｄ）に示すように、ビット検定信号は「０」を維持する。その後、図６（Ｃ）に示すように、ビット長タイマ１１４のタイマ割り込みが発生すると、図６（Ｅ）に示すように、このタイマ割り込みが発生した時点におけるビット検定信号のレベルである「０」が、ベースバンド信号のレベルとして設定される。このように、ＡＳＫ信号が適切に「１」を示さない場合、ＡＳＫ信号は、「０」を示すベースバンド信号に適切に復調される。なお、ＡＳＫ信号が復調対象期間において「０」を示す場合も、オーバーフロー割り込みが発生しないため、ＡＳＫ信号は、「０」を示すベースバンド信号に適切に復調される。
【００５８】
次に、図７と図８とを参照して、ベースバンド信号が異常により「０」と判定されるまでの処理について説明する。図７は、異常キャリアカウンタ１１１が十分にカウントアップされる様子を示す図である。図８は、ベースバンド信号が「異常」により「０」と判定される様子を示す図である。
【００５９】
より詳細には、図７（Ａ）は、正規化前のＡＳＫ信号のレベルを示す図である。図７（Ｂ）は、正規化後のＡＳＫ信号のレベルを示す図である。図７（Ｃ）は、ゲート信号のレベルを示す図である。図７（Ｄ）は、余裕期間の設定状態を示す図である。図７（Ｅ）は、異常キャリアカウンタのカウンタ値を示す図である。図８（Ａ）は、正規化前のＡＳＫ信号のレベルを示す図である。図８（Ｂ）は、異常キャリアカウンタの値を示す図である。図８（Ｃ）は、ビット長タイマの状態を示す図である。図８（Ｄ）は、ビット検定信号のレベルを示す図である。図８（Ｅ）は、ベースバンド信号のレベルを示す図である。
【００６０】
図７（Ａ）に示すように、正規化前のＡＳＫ信号が予め定められた周波数および予め定められた振幅を有する適切な正弦波でないものとする。例えば、正規化前のＡＳＫ信号に、搬送波の周波数よりも高い周波数のノイズが重畳されているものとする。なお、搬送波の高調波成分（搬送波の周波数の２倍、４倍、６倍・・・の周波数成分）もノイズと考えることができる。この場合、図７（Ｂ）に示すように、正規化後のＡＳＫ信号は、「１」と「０」との間で振幅する矩形波となるが、Ｔ０の間隔でエッジ（立ち上がりエッジ）が発生する信号とはならない。一方、余裕期間は、図３（Ｄ）で示したものと同様、図７（Ｄ）に示すように、Ｔ２１、Ｔ２２、Ｔ２３、Ｔ２４で示される期間となる。
【００６１】
ＡＳＫ信号が正常でない場合、設定された余裕期間内に後続のエッジが検出されず、設定された余裕期間外に後続のエッジが検出されることがある。この場合、図７（Ｃ）に示すように、余裕期間の開始時刻にゲート信号が「１」（有効）となるが、余裕期間の終了時刻が到来する前にエッジが検出されずにゲート信号が「０」（無効）となることがある。また、この場合、余裕期間の終了時刻の経過後、次の余裕期間の開始時刻が到来する前に、エッジが検出されることがある。図７（Ｃ）は、ゲート信号が「１」となった２回目の期間とゲート信号が「１」となった３回目の期間との間に、１個のエッジが検出され、ゲート信号が「１」となった３回目の期間とゲート信号が「１」となった４回目の期間との間に、２個のエッジが検出された例を示している。そして、図７（Ｅ）に示すように、ゲート信号が「０」である間に検出されたエッジの個数が、異常キャリアカウンタ１１１によりカウントされる。
【００６２】
ここで、図８（Ａ）に示すように、復調対象期間において、正規化前のＡＳＫ信号が適切に「１」や「０」を示さない場合、図８（Ｂ）に示すように、異常キャリアカウンタ１１１は、カウンタ値をカウントする。そして、異常キャリアカウンタ１１１によるカウントによりオーバーフローが発生し、オーバーフロー割り込みが発生する。ここで、１ビット期間で１０個以上の異常なエッジが検出された場合、ＡＳＫ信号が「異常」と判定されるものとする。また、異常キャリアカウンタ１１１は、カウンタ値が２５５から２５６にカウントアップされたときに、オーバーフローすると仮定する。この場合、例えば、カウンタ値の初期値を２４６に設定することにより、１０個のエッジが検出された時点でオーバーフローが発生する。
【００６３】
この場合、図８（Ｄ）に示すように、ビット検定信号は、仮に「１」であった場合でも「０」に変更される。その後、図８（Ｃ）に示すように、ビット長タイマ１１４のタイマ割り込みが発生すると、図８（Ｅ）に示すように、このタイマ割り込みが発生した時点におけるビット検定信号のレベルである「０」が、ベースバンド信号のレベルとして設定される。このように、ＡＳＫ信号が適切に「１」や「０」を示さない場合、ＡＳＫ信号は、「異常」により「０」を示すベースバンド信号に復調される。なお、「異常」により「０」と復調された場合、「正常」に「０」と復調された場合と区別可能なように、オーバーフロー割り込みなどにより、初期化処理などが実行される。
【００６４】
次に、図９に示すフローチャートを参照して、ＡＳＫ復調装置１０００が実行するＡＳＫ復調処理について説明する。ＡＳＫ復調装置１０００は、例えば、ＡＳＫ復調装置１０００の電源が投入されたことに応答して、図９に示すＡＳＫ復調処理を実行する。
【００６５】
まず、ＣＰＵ１０１は、初期化処理を実行する（ステップＳ１０１）。初期化処理は、ＡＳＫ復調装置１０００が備える、パラレルポート、タイマ、カウンタなどを初期化する処理や、ＡＳＫ復調処理に使用する変数を初期化する処理を含む。
【００６６】
ＣＰＵ１０１は、ステップＳ１０１の処理を完了すると、フレーム間隔タイマ１０３を起動する（ステップＳ１０２）。ＣＰＵ１０１は、通信フレームの長さに応じた目標値をフレーム間隔タイマ１０３に設定し、フレーム間隔タイマ１０３を起動する。一方、フレーム間隔タイマ１０３は、ＣＰＵ１０１による指示に従って、カウント値のカウントアップを開始する。
【００６７】
ＣＰＵ１０１は、ステップＳ１０２の処理を完了すると、ＡＳＫ復調処理の終了指示があるか否かを判別する（ステップＳ１０３）。ＣＰＵ１０１は、ＡＳＫ復調処理の終了指示がないと判別すると（ステップＳ１０３：ＮＯ）、ステップＳ１０３に処理を戻す。一方、ＣＰＵ１０１は、ＡＳＫ復調処理の終了指示があると判別すると（ステップＳ１０３：ＹＥＳ）、ＡＳＫ復調処理を終了する。
【００６８】
次に、図１０に示すフローチャートを参照して、フレーム間隔タイマ１０３のタイマ割り込み処理について説明する。なお、フレーム間隔タイマ１０３のタイマ割り込み処理は、フレーム間隔タイマ１０３がカウント値を目標値までカウントアップすることにより発生する割り込み処理である。
【００６９】
ＣＰＵ１０１は、エッジ検出ポート１０４の外部割り込みを許可する（ステップＳ２０１）。具体的には、ＣＰＵ１０１は、立ち上がりエッジにより外部割り込みが発生するように、エッジ検出ポート１０４の外部割り込みに関するレジスタを設定する。以後、エッジ検出ポート１０４により正規化ＡＳＫ信号の立ち上がりエッジが検出されると、エッジ検出ポート１０４の外部割り込みが発生する。ＣＰＵ１０１は、ステップＳ２０１の処理を完了すると、フレーム間隔タイマ１０３のタイマ割り込み処理を完了する。
【００７０】
次に、図１１に示すフローチャートを参照して、エッジ検出ポート１０４の外部割り込み処理について説明する。なお、エッジ検出ポート１０４の外部割り込み処理は、エッジ検出ポート１０４により正規化ＡＳＫ信号の立ち上がりエッジが検出されることにより発生する割り込み処理である。
【００７１】
ＣＰＵ１０１は、検出されたエッジが先頭のエッジであるか否かを判別する（ステップＳ３０１）。例えば、ＣＰＵ１０１は、フレーム間隔タイマ１０３のタイマ割り込み処理においてリセットされ、エッジが検出されたことに応答してセットされるフラグの状態を参照することにより、検出されたエッジが先頭のエッジであるか否かを判別することができる。
【００７２】
ＣＰＵ１０１は、検出されたエッジが先頭のエッジであると判別すると（ステップＳ３０１：ＹＥＳ）、ビット検定信号をオフする（ステップＳ３０２）。つまり、ＣＰＵ１０１は、ビット検定出力ポート１１２によるビット検定信号の出力を停止する。
【００７３】
ＣＰＵ１０１は、ステップＳ３０２の処理を完了すると、ビット長タイマ１１４を起動する（ステップＳ３０３）。具体的には、ＣＰＵ１０１は、ビット長タイマ１１４に１ビット期間の長さに応じた目標値を設定した上で、ビット長タイマ１１４がカウント値のカウントアップを開始するように、ビット長タイマ１１４のタイマ割り込みに関するレジスタを設定する。以後、ビット長タイマ１１４は、定期的に、カウント値をカウントアップする。そして、カウント値が目標値に達したことに応答して、ビット長タイマ１１４のタイマ割り込みが発生する。
【００７４】
ＣＰＵ１０１は、ステップＳ３０３の処理を完了すると、ゲート開始タイマ１０５を起動する（ステップＳ３０４）。具体的には、ＣＰＵ１０１は、ゲート開始タイマ１０５にＴ１０の長さに応じた目標値を設定した上で、ゲート開始タイマ１０５がカウント値のカウントアップを開始するように、ゲート開始タイマ１０５のタイマ割り込みに関するレジスタを設定する。以後、ゲート開始タイマ１０５は、定期的に、カウント値をカウントアップする。そして、カウント値が目標値に達したことに応答して、ゲート開始タイマ１０５のタイマ割り込みが発生する。
【００７５】
ＣＰＵ１０１は、検出されたエッジが先頭のエッジでないと判別すると（ステップＳ３０１：ＮＯ）、ゲート信号をオフする（ステップＳ３０５）。つまり、ＣＰＵ１０１は、ゲート信号出力ポート１０７によるゲート信号の出力を停止する。
【００７６】
ＣＰＵ１０１は、ステップＳ３０５の処理を完了すると、正常キャリア検出ポート１０８の外部割り込みを許可する（ステップＳ３０６）。具体的には、ＣＰＵ１０１は、ゲート信号がＨレベルである状態において外部割り込みが発生するように、正常キャリア検出ポート１０８の外部割り込みに関するレジスタを設定する。以後、正常キャリア検出ポート１０８によりゲート信号がＨレベルである状態が検出されると、正常キャリア検出ポート１０８の外部割り込みが発生する。
【００７７】
ＣＰＵ１０１は、ステップＳ３０６の処理を完了すると、異常キャリア検出ポート１１０の外部割り込みを許可する（ステップＳ３０７）。具体的には、ＣＰＵ１０１は、ゲート信号がＬレベルである状態において外部割り込みが発生するように、異常キャリア検出ポート１１０の外部割り込みに関するレジスタを設定する。以後、異常キャリア検出ポート１１０によりゲート信号がＬレベルである状態が検出されると、異常キャリア検出ポート１１０の外部割り込みが発生する。ＣＰＵ１０１は、ステップＳ３０４又はステップＳ３０７の処理を完了すると、エッジ検出ポート１０４の外部割り込み処理を完了する。
【００７８】
次に、図１２に示すフローチャートを参照して、ゲート開始タイマ１０５のタイマ割り込み処理について説明する。なお、ゲート開始タイマ１０５のタイマ割り込み処理は、ゲート開始タイマ１０５がカウント値を目標値までカウントアップすることにより発生する割り込み処理である。
【００７９】
ＣＰＵ１０１は、ゲート信号をオンする（ステップＳ４０１）。具体的には、ＣＰＵ１０１は、ゲート信号出力ポート１０７によるゲート信号の出力を開始する。ＣＰＵ１０１は、ステップＳ４０１の処理を完了すると、ゲート終了タイマ１０６を起動する（ステップＳ４０２）。具体的には、ＣＰＵ１０１は、ゲート終了タイマ１０６にＴ２１の長さに応じた目標値を設定した上で、ゲート終了タイマ１０６がカウント値のカウントアップを開始するように、ゲート終了タイマ１０６のタイマ割り込みに関するレジスタを設定する。以後、ゲート終了タイマ１０６は、定期的に、カウント値をカウントアップする。そして、カウント値が目標値に達したことに応答して、ゲート終了タイマ１０６のタイマ割り込みが発生する。ＣＰＵ１０１は、ステップＳ４０２の処理を完了すると、ゲート開始タイマ１０５のタイマ割り込み処理を完了する。
【００８０】
次に、図１３に示すフローチャートを参照して、ゲート終了タイマ１０６のタイマ割り込み処理について説明する。なお、ゲート終了タイマ１０６のタイマ割り込み処理は、ゲート終了タイマ１０６がカウント値を目標値までカウントアップすることにより発生する割り込み処理である。
【００８１】
ＣＰＵ１０１は、ゲート信号をオフする（ステップＳ５０１）。具体的には、ＣＰＵ１０１は、ゲート信号出力ポート１０７によるゲート信号の出力を停止する。ＣＰＵ１０１は、ステップＳ５０１の処理を完了すると、ゲート開始タイマ１０５を起動する（ステップＳ５０２）。具体的には、ＣＰＵ１０１は、ゲート開始タイマ１０５にＴ１１の長さに応じた目標値を設定した上で、ゲート開始タイマ１０５がカウント値のカウントアップを開始するように、ゲート開始タイマ１０５のタイマ割り込みに関するレジスタを設定する。以後、ゲート開始タイマ１０５は、定期的に、カウント値をカウントアップする。そして、カウント値が目標値に達したことに応答して、ゲート開始タイマ１０５のタイマ割り込みが発生する。ＣＰＵ１０１は、ステップＳ５０２の処理を完了すると、ゲート終了タイマ１０６のタイマ割り込み処理を完了する。
【００８２】
次に、図１４に示すフローチャートを参照して、正常キャリア検出ポート１０８の外部割り込み処理について説明する。なお、正常キャリア検出ポート１０８の外部割り込み処理は、正常キャリア検出ポート１０８によりゲート信号がＨレベルである状態が検出されることにより発生する割り込み処理である。
【００８３】
ＣＰＵ１０１は、正常キャリアカウンタ１０９のカウント値をカウントアップする（ステップＳ６０１）。ＣＰＵ１０１は、ステップＳ６０１の処理を完了すると、正常キャリア検出ポート１０８の外部割り込みを禁止する（ステップＳ６０２）。例えば、ＣＰＵ１０１は、正常キャリア検出ポート１０８の外部割り込みが発生しないように、正常キャリア検出ポート１０８の外部割り込みに関するレジスタを設定する。ＣＰＵ１０１は、ステップＳ６０２の処理を完了すると、正常キャリア検出ポート１０８の外部割り込み処理を完了する。
【００８４】
次に、図１５に示すフローチャートを参照して、異常キャリア検出ポート１１０の外部割り込み処理について説明する。なお、異常キャリア検出ポート１１０の外部割り込み処理は、異常キャリア検出ポート１１０によりゲート信号がＬレベルである状態が検出されることにより発生する割り込み処理である。
【００８５】
ＣＰＵ１０１は、異常キャリアカウンタ１１１のカウント値をカウントアップする（ステップＳ７０１）。ＣＰＵ１０１は、ステップＳ７０１の処理を完了すると、異常キャリア検出ポート１１０の外部割り込みを禁止する（ステップＳ７０２）。例えば、ＣＰＵ１０１は、異常キャリア検出ポート１１０の外部割り込みが発生しないように、異常キャリア検出ポート１１０の外部割り込みに関するレジスタを設定する。ＣＰＵ１０１は、ステップＳ７０２の処理を完了すると、異常キャリア検出ポート１１０の外部割り込み処理を完了する。
【００８６】
次に、図１６に示すフローチャートを参照して、正常キャリアカウンタ１０９のオーバーフロー割り込み処理について説明する。なお、正常キャリアカウンタ１０９のオーバーフロー割り込み処理は、正常キャリアカウンタ１０９のカウント値がオーバーフローすることにより発生する割り込み処理である。
【００８７】
ＣＰＵ１０１は、ビット検定信号をオンする（ステップＳ８０１）。具体的には、ＣＰＵ１０１は、ビット検定出力ポート１１２によるビット検定信号の出力を開始する。ＣＰＵ１０１は、ステップＳ８０１の処理を完了すると、正常キャリアカウンタ１０９のオーバーフロー割り込み処理を完了する。
【００８８】
次に、図１７に示すフローチャートを参照して、異常キャリアカウンタ１１１のオーバーフロー割り込み処理について説明する。なお、異常キャリアカウンタ１１１のオーバーフロー割り込み処理は、異常キャリアカウンタ１１１のカウント値がオーバーフローすることにより発生する割り込み処理である。
【００８９】
ＣＰＵ１０１は、ビット検定信号をオフする（ステップＳ９０１）。具体的には、ＣＰＵ１０１は、ビット検定出力ポート１１２によるビット検定信号の出力を停止する。ＣＰＵ１０１は、ステップＳ９０１の処理を完了すると、エラーカウントを示すカウント値をカウントアップする（ステップＳ９０２）。このカウント値は、エラーが発生したビットの個数を示す値である。ＣＰＵ１０１は、ステップＳ９０２の処理を完了すると、異常キャリアカウンタ１１１のオーバーフロー割り込み処理を完了する。
【００９０】
次に、図１８に示すフローチャートを参照して、ビット長タイマ１１４のタイマ割り込み処理について説明する。なお、ビット長タイマ１１４のタイマ割り込み処理は、ビット長タイマ１１４のカウント値が目標値に達することにより発生する割り込み処理である。
【００９１】
ＣＰＵ１０１は、ベースバンド信号の状態をビット検定信号の状態とする（ステップＳ１００１）。具体的には、ＣＰＵ１０１は、ビット検定入力ポート１１３に入力されているビット検定信号のレベルを示すベースバンド信号を、ベースバンド出力ポート１１５から出力する。ＣＰＵ１０１は、ステップＳ１００１の処理を完了すると、エラーカウントを示すカウント値が閾値以上であるか否かを判別する（ステップＳ１００２）。
【００９２】
ＣＰＵ１０１は、エラーカウントを示すカウント値が閾値以上であると判別すると（ステップＳ１００２：ＹＥＳ）、初期化処理を実行する（ステップＳ１００３）。この初期化処理は、通信フレームの受信や変調を再試行するための初期化処理であり、例えば、ステップＳ１０１の初期化処理と同様の処理である。
【００９３】
ＣＰＵ１０１は、ステップＳ１００３の処理を完了すると、ゲート開始タイマ１０５とゲート終了タイマ１０６の目標値を変更する（ステップＳ１００４）。つまり、ＣＰＵ１０１は、エラーが発生する頻度が高い場合、エラーが発生しにくくなるように、余裕期間を伸長する。ＣＰＵ１０１は、ステップＳ１００４の処理を完了すると、フレーム間隔タイマ１０３を起動する（ステップＳ１００５）。
【００９４】
一方、ＣＰＵ１０１は、エラーカウントを示すカウント値が閾値以上でないと判別すると（ステップＳ１００２：ＮＯ）、ビット検定信号をオフする（ステップＳ１００６）。具体的には、ＣＰＵ１０１は、ビット検定出力ポート１１２によるビット検定信号の出力を停止する。ＣＰＵ１０１は、ステップＳ１００６の処理を完了すると、ビット長タイマ１１４を起動する（ステップＳ１００７）。ＣＰＵ１０１は、ステップＳ１００５又はステップＳ１００７の処理を完了すると、ビット長タイマ１１４のタイマ割り込み処理を完了する。
【００９５】
以上説明したように、本実施形態では、復調対象期間において検出されたエッジのうち、検出待機モードが設定されている間に検出されたエッジの個数がカウントされ、カウントされたエッジの個数に基づいて、復調対象の１ビットの二値化データが判定される。従って、本実施形態によれば、低いコストで、キャリア周波数に近い周波数のノイズを含むＡＳＫ信号を適切に復調することが期待できる。また、本実施形態では、正常なエッジが全て検出されなくても、正常なエッジが閾値以上検出されればよい。このため、ノイズ除去のために、必要以上に、再送処理などを繰り返すことなどを抑制することが期待できる。
【００９６】
また、本実施形態では、復調対象期間において検出されたエッジのうち、検出待機モードが設定されていない間に検出されたエッジの個数に基づいて、復調対象の１ビットの二値化データが異常であると判定される。従って、本実施形態によれば、キャリア周波数に近い周波数のノイズを含むＡＳＫ信号をさらに適切に復調することが期待できる。
【００９７】
また、本実施形態では、復調対象の１ビットの二値化データが異常であると判定された頻度に応じて、後続のエッジが検出されることが予測される時刻を含む余裕期間の長さが調整される。つまり、二値化データの異常発生頻度に応じて、フィルタの帯域幅が調整される。例えば、二値化データの異常発生頻度が低い場合、狭帯域フィルタが実現され、キャリア周波数近傍のノイズに対するノイズ耐性が向上する。従って、本実施形態によれば、ＡＳＫ信号に含まれるノイズの周波数や程度に応じた適切なＡＳＫ復調が期待できる。
【００９８】
また、本実施形態では、復調対象の１ビットの二値化データが異常であると判定された頻度が予め定められた閾値よりも高い場合、余裕期間の長さが伸長される。従って、本実施形態によれば、ＡＳＫ信号に含まれるノイズの周波数や程度により適切にＡＳＫ信号が復調できない場合に、適切にＡＳＫ復調ができるようになることが期待できる。
【００９９】
また、本実施形態では、マイクロプロセッサ１００が備える外部割り込み機能とタイマ割り込み機能とが駆使されて、ＡＳＫ復調処理が実現される。このため、ＡＳＫ信号を復調するための処理が割り込みルーチン（割り込み処理）において実行され、メインルーチンにおける処理の負荷が低減される。このように、本実施形態では、一般的なアナログのバンドパスフィルタに代えて、汎用ＣＰＵの周辺回路を利用してバンドパスフィルタを実現している。従って、アナログのバンドパスフィルタを追加することなく、ソフトウェアによりバンドパスフィルタが実現可能である。また、汎用ＣＰＵの周辺回路を利用してバンドパスフィルタを実現する場合、一般的なデジタルのバンドパスフィルタのように、処理負荷が大きくない。このため、ソフトウェア負荷を圧迫せずに、バンドパスフィルタを実現可能である。従って、アプリケーション処理を実行するマイクロプロセッサ１００にＡＳＫ復調処理を実行させても、アプリケーション処理の実行速度が維持されることが期待できる。従って、本実施形態によれば、さらに低いコストで、キャリア周波数に近い周波数のノイズを含むＡＳＫ信号を適切に復調することが期待できる。
【０１００】
（変形例）
以上、本発明の実施形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能である。
【０１０１】
本発明において、上記実施形態において説明した構成、機能、動作のどの部分を採用するのかは任意である。また、本発明において、上述した構成、機能、動作のほか、更なる構成、機能、動作が採用されてもよい。
【０１０２】
上記実施形態では、各種の割り込み機能（割り込み処理）を利用して、各種の処理が実現される例について説明した。本発明において、例えば、ＤＭＡ機能を利用して、各種の処理が実現されてもよい。なお、上述したＡＳＫ信号を復調するための処理は、データの転送処理や、カウント値のカウントアップ処理など、簡単な処理が多い。従って、上述したＡＳＫ信号を復調するための処理の大部分を、ＤＭＡ機能を用いたデータ転送処理などにより実現することが期待できる。
【０１０３】
上記実施形態では、復調対象の１ビットの二値化データが異常であると判定された頻度が多い場合、余裕期間の長さが伸長される例について説明した。本発明において、例えば、復調対象の１ビットの二値化データが異常であると判定された頻度が少ない場合、余裕期間の長さが短縮されてもよい。
【０１０４】
本発明に係るＡＳＫ復調装置１０００の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末装置に適用することで、当該パーソナルコンピュータ等を本発明に係るＡＳＫ復調装置１０００として機能させることも可能である。
【０１０５】
また、このようなプログラムの配布方法は任意であり、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical Disk）、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
【０１０６】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【０１０７】
本発明は、ＡＳＫ信号を復調するＡＳＫ復調装置に適用可能である。
【符号の説明】
【０１０８】
１１  エッジ検出部、１２  余裕期間設定部、１３  検出待機モード設定部、１４  復調対象期間特定部、１５  正常エッジカウント部、１６  二値化データ判定部、１７  異常エッジカウント部、１００  マイクロプロセッサ、１０１  ＣＰＵ、１０２  コンパレータ、１０３  フレーム間隔タイマ、１０４  エッジ検出ポート、１０５  ゲート開始タイマ、１０６  ゲート終了タイマ、１０７  ゲート信号出力ポート、１０８  正常キャリア検出ポート、１０９  正常キャリアカウンタ、１１０  異常キャリア検出ポート、１１１  異常キャリアカウンタ、１１２  ビット検定出力ポート、１１３  ビット検定入力ポート、１１４  ビット長タイマ、１１５  ベースバンド出力ポート、１１６  シリアル受信ポート、２００  共振回路、１０００  ＡＳＫ復調装置
【図１】
2016072885.tif 000003
【図２】
2016072885.tif 000004
【図３】
2016072885.tif 000005
【図４】
2016072885.tif 000006
【図５】
2016072885.tif 000007
【図６】
2016072885.tif 000008
【図７】
2016072885.tif 000009
【図８】
2016072885.tif 000010
【図９】
2016072885.tif 000011
【図１０】
2016072885.tif 000012
【図１１】
2016072885.tif 000013
【図１２】
2016072885.tif 000014
【図１３】
2016072885.tif 000015
【図１４】
2016072885.tif 000016
【図１５】
2016072885.tif 000017
【図１６】
2016072885.tif 000018
【図１７】
2016072885.tif 000019
【図１８】
2016072885.tif 000020