(57)【要約】【構成】基準パルスは、ＨＤＭＩトランスミッタ３６のクロック生成動作のために参照される。ＣＰＵ２８は、ＨＤＭＩトランスミッタ３６のクロック作成動作をリセットし、基準パルスのレベルをＯＳ用タイマＴＭ１のオーバフローに応答してＬレベルに変更するとともに、フリーランタイマＴＭ２の値を“ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥ”として検出するとともに、ＨＤＭＩトランスミッタ３６のクロック作成動作をリセットする。ＣＰＵ２８はさらに、その後のＯＳ用タイマＴＭ１のオーバフローに応答して基準パルスのレベルをＨレベルに変更し、これに関連してフリーランタイマＴＭ２の値を“ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥ”として検出する。“ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥ”と“ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥ”との差分を表す“ΔＴＭ”が既定範囲から外れると、ＣＰＵ２８は、上述の処理を再起動する。【効果】クロック周波数の精度を確保することができる。【選択図】図２
2011044806.tif 000002
【特許請求の範囲】
【請求項１】
クロック作成動作のために参照される基準パルスのレベルを第１期間で周回する第１タイマを参照して変更する第１変更手段、
前記第１変更手段の変更処理に関連して前記クロック作成動作をリセットするリセット手段、
前記第１変更手段の変更処理の後に前記第１タイマを参照して前記基準パルスのレベルを変更する第２変更手段、
前記第１変更手段によるレベル変更から前記第２変更手段によるレベル変更までの期間を前記第１期間よりも長い第２期間で周回する第２タイマを参照して測定する第１測定手段、および
前記第１測定手段によって測定された期間が既定範囲から外れるとき前記第１変更手段を再起動する再起動手段を備える、基準パルス生成装置。
【請求項２】
前記第１タイマの値が既定値に達する毎に生じるタイマ割り込みの回数を測定する第２測定手段をさらに備え、
前記第１変更手段は前記第２測定手段によって測定された回数が第１閾値に達したときにレベル変更処理を実行する第１変更処理手段を含み、
前記第２変更手段は前記測定手段によって測定された回数が第２閾値に達したときにレベル変更処理を実行する第２変更処理手段を含む、請求項１記載の基準パルス生成装置。
【請求項３】
前記第１測定手段は、前記第１変更手段の変更処理に関連して前記第２タイマの値を検出する第１タイマ値検出手段、および前記第２変更手段の変更処理に関連して前記第２タイマの値を検出する第２タイマ値検出手段を含む、請求項１または２記載の基準パルス生成装置。
【請求項４】
前記第１測定手段は、前記第１タイマ値検出手段によって検出された値と前記第２タイマ値検出手段によって検出された値との大小関係を判別する判別手段、および前記判別手段の判別結果に応じて前記第２期間に相当する数値を前記差分に反映させる数値反映手段を含む、請求項３記載の基準パルス生成装置。
【請求項５】
前記第１変更手段の少なくとも一部の処理と前記第１測定手段の少なくとも一部の処理は共通のタスクの下で実行され、
前記第１変更手段によるレベル変更から前記第２変更手段によるレベル変更までの期間において前記タスクを同期待機させる同期待機手段をさらに備える、請求項１ないし４のいずれかに記載の基準パルス生成装置。
【請求項６】
前記再起動手段は前記第１変更手段の再起動に先立って既定時間の待機を実行する待機手段を含む、請求項１ないし５のいずれかに記載の基準パルス生成装置。
【請求項７】
前記クロック生成動作を実行する電子装置の動作モードを前記第１変更手段の変更処理に先立って第１モードに設定する第１設定手段、および
前記第１測定手段によって測定された期間が前記既定範囲に属するとき前記電子装置の動作モードを第２モードに設定する第２設定手段をさらに備える、請求項１ないし６のいずれかに記載の基準パルス生成装置。
【請求項８】
コンテンツを取り込む取り込み手段、および
前記取り込み手段によって取り込まれたコンテンツを前記第２設定手段の設定処理に関連して前記電子装置に転送する転送手段をさらに備える、請求項７記載の基準パルス生成装置。
【請求項９】
前記リセット手段は前記第１変更手段の変更処理に先立ってリセット処理を実行する、請求項１ないし８のいずれかに記載の基準パルス生成装置。
【請求項１０】
基準パルス生成装置のプロセッサに、
クロック作成動作のために参照される基準パルスのレベルを第１期間で周回する第１タイマを参照して変更する第１変更ステップ、
前記第１変更ステップの変更処理に関連して前記クロック作成動作をリセットするリセットステップ、
前記第１変更ステップの変更処理の後に前記第１タイマを参照して前記基準パルスのレベルを変更する第２変更ステップ、
前記第１変更ステップによるレベル変更から前記第２変更ステップによるレベル変更までの期間を前記第１期間よりも長い第２期間で周回する第２タイマを参照して測定する測定ステップ、および
前記測定ステップによって測定された期間が既定範囲から外れるとき前記第１変更ステップを再起動する再起動ステップを実行させるための、基準パルス生成プログラム。
【請求項１１】
基準パルス生成装置によって実行される基準パルス生成方法であって、
クロック作成動作のために参照される基準パルスのレベルを第１期間で周回する第１タイマを参照して変更する第１変更ステップ、
前記第１変更ステップの変更処理に関連して前記クロック作成動作をリセットするリセットステップ、
前記第１変更ステップの変更処理の後に前記第１タイマを参照して前記基準パルスのレベルを変更する第２変更ステップ、
前記第１変更ステップによるレベル変更から前記第２変更ステップによるレベル変更までの期間を前記第１期間よりも長い第２期間で周回する第２タイマを参照して測定する測定ステップ、および
前記測定ステップによって測定された期間が既定範囲から外れるとき前記第１変更ステップを再起動する再起動ステップを備える、基準パルス生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、基準パルス生成装置に関し、特にＨＤＭＩケーブルによって接続されるソースデバイスに適用され、トランスミッタにおけるクロック作成動作のために参照される基準パルスを生成する、基準パルス生成装置に関する。
【背景技術】
【０００２】
ＨＤＭＩケーブルを利用したデータ送受信システムの一例が、特許文献１に開示されている。この背景技術によれば、ソースデバイスであるディスク再生装置とシンクデバイスであるアンプ装置とがＨＤＭＩケーブルによって互いに接続される。ディスク再生装置によって再生されたオーディオ信号データは、ＨＤＭＩケーブルを介してアンプ装置に与えられる。ここで、オーディオ信号データには、サンプリング周波数が記述される。アンプ装置は、オーディオ信号データの記述を参照してサンプリング周波数を検出し、検出されたサンプリング周波数の１２８倍の周波数を有するマスタークロックを水晶発振子を利用して生成する。生成されたマスタークロックは、ＨＤＭＩ受信部および再生信号処理・増幅部の処理のために参照される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３８５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
背景技術では、マスタークロックを生成するための水晶発振子がコスト増大要因となる。ここで、ＣＰＵにおいて基準パルスを作成し、トランスミッタにおいてこの基準パルスからマスタークロックを作成するようにすれば、水晶発振子を省くことができる。しかし、この方法では、マスタークロックの周波数の精度に不安が残る。
【０００５】
それゆえに、この発明の主たる目的は、クロック周波数の精度を確保することができる、基準パルス生成装置を提供することである。
【課題を解決するための手段】
【０００６】
この発明に従う基準パルス生成装置(10：実施例で相当する参照符号。以下同じ)は、クロック作成動作のために参照される基準パルスのレベルを第１期間で周回する第１タイマ(TM1)を参照して変更する第１変更手段(S7, S71, S43, S51)、第１変更手段の変更処理に関連してクロック作成動作をリセットするリセット手段(S5)、第１変更手段の変更処理の後に第１タイマを参照して基準パルスのレベルを変更する第２変更手段(S55, S71, S43, S61)、第１変更手段によるレベル変更から第２変更手段によるレベル変更までの期間を第１期間よりも長い第２期間で周回する第２タイマ(TM2)を参照して測定する第１測定手段(S53, S63, S11~S15)、および第１測定手段によって測定された期間が既定範囲から外れるとき第１変更手段を再起動する再起動手段(S17, S25)を備える。
【０００７】
好ましくは、第１タイマの値が既定値に達する毎に生じるタイマ割り込みの回数を測定する第２測定手段(S35)がさらに備えられ、第１変更手段は第２測定手段によって測定された回数が第１閾値に達したときにレベル変更処理を実行する第１変更処理手段(S43, S51)を含み、第２変更手段は測定手段によって測定された回数が第２閾値に達したときにレベル変更処理を実行する第２変更処理手段(S43, S61)を含む。
【０００８】
好ましくは、第１測定手段は、第１変更手段の変更処理に関連して第２タイマの値を検出する第１タイマ値検出手段(S53)、および第２変更手段の変更処理に関連して第２タイマの値を検出する第２タイマ値検出手段(S63)を含む。
【０００９】
さらに好ましくは、第１測定手段は、第１タイマ値検出手段によって検出された値と第２タイマ値検出手段によって検出された値との大小関係を判別する判別手段(S11)、および判別手段の判別結果に応じて第２期間に相当する数値を差分に反映させる数値反映手段(S13, S15)を含む。
【００１０】
好ましくは、第１変更手段の少なくとも一部の処理と第１測定手段の少なくとも一部の処理は共通のタスクの下で実行され、第１変更手段によるレベル変更から第２変更手段によるレベル変更までの期間においてタスクを同期待機させる同期待機手段(S9)がさらに備えられる。
【００１１】
好ましくは、再起動手段は第１変更手段の再起動に先立って既定時間の待機を実行する待機手段(S25)を含む。
【００１２】
好ましくは、クロック生成動作を実行する電子装置(36)の動作モードを第１変更手段の変更処理に先立って第１モードに設定する第１設定手段(S1)、および第１測定手段によって測定された期間が既定範囲に属するとき電子装置の動作モードを第２モードに設定する第２設定手段(S19)がさらに備えられる。
【００１３】
さらに好ましくは、コンテンツを取り込む取り込み手段(32)、および取り込み手段によって取り込まれたコンテンツを第２設定手段の設定処理に関連して電子装置に転送する転送手段(20)がさらに備えられる。
【００１４】
好ましくは、リセット手段は第１変更手段の変更処理に先立ってリセット処理を実行する。
【００１５】
この発明に従う基準パルス生成プログラムは、基準パルス生成装置(10)のプロセッサ(28)に、クロック作成動作のために参照される基準パルスのレベルを第１期間で周回する第１タイマ(TM1)を参照して変更する第１変更ステップ(S7, S71, S43, S51)、第１変更ステップの変更処理に関連してクロック作成動作をリセットするリセットステップ(S5)、第１変更ステップの変更処理の後に第１タイマを参照して基準パルスのレベルを変更する第２変更ステップ(S55, S71, S43, S61)、第１変更ステップによるレベル変更から第２変更ステップによるレベル変更までの期間を第１期間よりも長い第２期間で周回する第２タイマ(TM2)を参照して測定する測定ステップ(S53, S63, S11~S15)、および測定ステップによって測定された期間が既定範囲から外れるとき第１変更ステップを再起動する再起動ステップ(S17, S25)を実行させるための、基準パルス生成プログラムである。
【００１６】
この発明に従う基準パルス生成方法は、基準パルス生成装置(10)によって実行される基準パルス生成方法であって、クロック作成動作のために参照される基準パルスのレベルを第１期間で周回する第１タイマ(TM1)を参照して変更する第１変更ステップ(S7, S71, S43, S51)、第１変更ステップの変更処理に関連してクロック作成動作をリセットするリセットステップ(S5)、第１変更ステップの変更処理の後に第１タイマを参照して基準パルスのレベルを変更する第２変更ステップ(S55, S71, S43, S61)、第１変更ステップによるレベル変更から第２変更ステップによるレベル変更までの期間を第１期間よりも長い第２期間で周回する第２タイマ(TM2)を参照して測定する測定ステップ(S53, S63, S11~S15)、および測定ステップによって測定された期間が既定範囲から外れるとき第１変更ステップを再起動する再起動ステップ(S17, S25)を備える。
【発明の効果】
【００１７】
この発明によれば、基準パルスのレベルは第１タイマを参照して変更され、基準パルスが或るレベルを示す期間は第２タイマを参照して測定される。ここで、第２タイマの周期は第１タイマの周期よりも長い。したがって、基準パルスのレベルの変更時期に第１タイマの周期の整数倍に相当するずれが生じた場合、このずれは第２タイマを参照した測定期間に反映される。
【００１８】
基準パルスのレベル変更処理はこのような測定期間が既定範囲から外れるときに再起動され、クロック作成動作はこの再起動処理に関連してリセットされる。これによって、基準パルスの精度ひいてはクロック周波数の精度が確保される。
【００１９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２０】
【図１】この発明の基本的構成を示すブロック図である。
【図２】この発明の一実施例の構成を示すブロック図である。
【図３】図２実施例に適用されるＨＤＭＩトランスミッタの構成の一例を示すブロック図である。
【図４】図２実施例とディジタルテレビとの接続関係の一例を示す図解図である。
【図５】図２実施例に適用されるＯＳタイマの動作の一部を示す図解図である。
【図６】図２実施例に適用されるフリーランタイマの動作の一部を示す図解図である。
【図７】図２実施例に適用されるＣＰＵの動作の一部を示すフローチャートである。
【図８】図２実施例に適用されるＣＰＵの動作の他の一部を示すフローチャートである。
【図９】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフローチャートである。
【図１０】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフローチャートである。
【図１１】図２実施例に適用されるＣＰＵの動作の他の一部を示すフローチャートである。
【図１２】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフローチャートである。
【図１３】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフローチャートである。
【図１４】図２実施例の動作の一部を示すタイミングチャートである。
【図１５】図２実施例の動作の他の一部を示すタイミングチャートである。
【発明を実施するための形態】
【００２１】
以下、この発明の実施の形態を図面を参照しながら説明する。
［基本的構成］
【００２２】
図１を参照して、この発明の基準パルス生成装置は、基本的に次のように構成される。第１変更手段１は、クロック作成動作のために参照される基準パルスのレベルを第１期間で周回する第１タイマ６を参照して変更する。リセット手段２は、第１変更手段の変更処理に関連してクロック作成動作をリセットする。第２変更手段３は、第１変更手段１の変更処理の後に第１タイマ６を参照して基準パルスのレベルを変更する。第１測定手段４は、第１変更手段１によるレベル変更から第２変更手段３によるレベル変更までの期間を第１期間よりも長い第２期間で周回する第２タイマ７を参照して測定する。再起動手段５は、第１測定手段４によって測定された期間が既定範囲から外れるとき第１変更手段１を再起動する。
【００２３】
基準パルスのレベルは第１タイマ６を参照して変更され、基準パルスが或るレベルを示す期間は第２タイマ７を参照して測定される。ここで、第２タイマ７の周期は第１タイマ６の周期よりも長い。したがって、基準パルスのレベルの変更時期に第１タイマ６の周期の整数倍に相当するずれが生じた場合、このずれは第２タイマ７を参照した測定期間に反映される。
【００２４】
基準パルスのレベル変更処理はこのような測定期間が既定範囲から外れるときに再起動され、クロック作成動作はこの再起動処理に関連してリセットされる。これによって、基準パルスの精度ひいてはクロック周波数の精度が確保される。
［実施例］
【００２５】
図２を参照して、この実施例のディジタルカメラ１０は、光学レンズ１２を含む。被写界の光学像は、光学レンズ１２を通してイメージセンサ１４の撮像面に照射される。撮像面では、被写界を表す電荷が光電変換によって生成される。
【００２６】
ＣＰＵ２８は、μＩＴＲＯＮ仕様のＯＳを採用するプロセッサである。キー入力装置３０上のモード切り換えスイッチ３０ｍによってカメラモードが選択されると、ＣＰＵ２８は、撮像タスクの下で動画取り込み処理を実行するべく、イメージセンサ１４を起動する。イメージセンサ１４は、ＳＧ(Signal Generator)１６から出力される同期信号に応答して撮像面を露光し、撮像面で生成された電荷をラスタ走査態様で読み出す。イメージセンサ１４からは、被写界を表す生画像データが繰り返し出力される。
【００２７】
カメラ処理回路１８は、ＳＧ１６から出力された画素クロックに応答して、イメージセンサ１４から出力された生画像データに色分離，白バランス調整，ＹＵＶ変換などの処理を施す。これによって作成されたＹＵＶ形式の画像データは、データバスＢＳ１を転送された後、メモリ制御回路２０によってＳＤＲＡＭ２２に書き込まれる。
【００２８】
ＬＣＤドライバ２４は、ＳＤＲＡＭ２２に格納された画像データをメモリ制御回路２０を通して繰り返し読み出し、読み出された画像データをデータバスＢＳ１を介して入力し、入力された画像データに基づいてＬＣＤモニタ２６を駆動する。この結果、被写界を表すリアルタイム動画像（スルー画像）がモニタ画面に表示される。
【００２９】
キー入力装置３０上のシャッタボタン３０ｓが操作されると、ＣＰＵ２８は、記録処理の実行をＩ／Ｆ３２に命令する。Ｉ／Ｆ３２は、撮像操作が行われた時点の被写界を表す１フレームの画像データをメモリ制御回路２０を通してＳＤＲＡＭ２２から読み出し、読み出された画像データをデータバスＢＳ１を介して入力し、入力された画像データをファイル形式で記録媒体３４に記録する。
【００３０】
モード切り換えスイッチ３０ｍによって再生モードが選択されると、ＣＰＵ２８は、記録媒体３４に記録された画像ファイルを再生タスクの下で指定し、指定された画像ファイルの再生処理をＩ／Ｆ３２およびＬＣＤドライバ２４に命令する。Ｉ／Ｆ３２は、指定された画像ファイルから画像データを読み出し、読み出された画像データをデータバスＢＳ１およびメモリ制御回路２０を通してＳＤＲＡＭ２２に書き込む。
【００３１】
ＬＣＤドライバ２４は、ＳＤＲＡＭ２２に格納された画像データをメモリ制御回路２０を通して読み出し、読み出された画像データをデータバスＢＳ１を介して入力し、入力された画像データに基づいてＬＣＤモニタ２６を駆動する。この結果、再生画像がＬＣＤモニタ２６に表示される。
【００３２】
画像送りボタン３０ｆが操作されると、ＣＰＵ２８は次の画像ファイルを指定し、上述と同様の再生処理をＩ／Ｆ３２およびＬＣＤドライバ２４に命令する。この結果、ＬＣＤモニタ２６の表示が更新される。
【００３３】
ＨＤＭＩトランスミッタ３６は、ＨＤＭＩ(High-Definition Multimedia Interface)規格に適合するＩ／Ｆであり、詳しくは図３に示すように構成される。ＨＤＭＩケーブルＣＢＬ１の一方端をＨＤＭＩトランスミッタ３６に接続するとともに、ＨＤＭＩケーブルＣＢＬ１の他方端を図４に示すディジタルテレビ６０のＨＤＭＩトランスミッタ（図示せず）に接続すると、上述の要領で再生された画像データがディジタルカメラ１０からディジタルテレビ６０に転送される。再生画像は、テレビ画面に表示される。
【００３４】
図３を参照して、ＨＤＭＩケーブルＣＢＬ１がＨＤＭＩトランスミッタ３６に接続されると、ＨＰＤ(Hot-Plug Detect)信号がＬレベルからＨレベルに遷移する。ケーブル検知回路４８は、このようなＨＰＤ信号のレベルを参照してＨＤＭＩケーブルＣＢＬ１の接続／非接続を判別し、判別結果をＣＰＵ２８に与える。
【００３５】
ＣＰＵ２８は、現時点の動作モードが再生モードであるとき、ＣＥＣ初期化タスクの下でＨＤＭＩトランスミッタ３６をパルス入力モードに設定し、ＯＳ用タイマＴＭ１およびフリーランタイマＴＭ２を参照して基準パルスを作成する。
【００３６】
ここで、ＯＳ用タイマＴＭ１は図５に示すように約１ミリ秒で周回し、フリーランタイマＴＭ２は図６に示すように約１３９３ミリ秒で周回する。また、作成された基準パルスは、ＧＰＩＯインタフェース４６に与えられる。基準パルスは分周処理を施され、これによって作成された基準クロックはホストバスインタフェース４２およびＣＥＣ処理回路４４に入力される。
【００３７】
基準パルスの作成が完了すると、ＣＰＵ２８はＨＤＭＩトランスミッタ３６を通常モードに設定する。通常モードにおいては、割り込み信号ＨＤＭＩ＿ＩＮＴがＧＰＩＯインタフェース４６からＣＰＵ２８に与えられる。ＣＰＵ２８は、割り込み信号ＨＤＭＩ＿ＩＮＴが与えられたとき、ＣＥＣ通信タスクの下で通信処理を実行する。
【００３８】
通信処理に関連して、ホストバスインタフェース４２は、Ｉ２Ｃ規格に適合するシリアルバスＢＳ２によってＣＰＵ２８と接続される。ＣＥＣ通信タスクの下でＣＰＵ２８によって発行されたコマンドは、シリアルバスＢＳ２およびホストバスインタフェース４２を介してＣＥＣ処理回路４４に与えられ、ＣＥＣ規格に適合するＣＥＣ＿ＯＵＴデータに符号化される。符号化されたＣＥＣ＿ＯＵＴデータは、ＨＤＭＩケーブルＣＢＬ１を介してディジタルテレビ６０に送出される。
【００３９】
一方、ディジタルテレビ６０から返送されたＡＣＫなどの応答信号は、ＨＤＭＩケーブルＣＢＬ１を介してＣＥＣ＿ＩＮデータとしてＣＥＣ処理回路４４に与えられる。ＣＥＣ処理回路４４は、与えられたＣＥＣ＿ＩＮデータを復号し、復号された応答信号をホストバスインタフェース４２およびシリアルバスＢＳ２を介してＣＰＵ２８に与える。
【００４０】
ＳＤＲＡＭ２２に格納された画像データは、メモリ制御回路２０およびデータバスＢＳ１を介してＴＭＤＳエンコーダ４０に与えられる。ＴＭＤＳエンコーダ４０は、ＳＧ１６から出力された同期信号および画素クロックを参照して画像データを符号化し、符号化された画像データを基準クロックとともにディジタルテレビ６０に送出する。この結果、対応する再生画像がテレビ画面に表示される。
【００４１】
ＣＥＣ初期化タスクは、図７〜図８に示すように構成される。また、再生タスクについては図示を省略する。ここで、ＣＥＣ初期化タスクの優先度は、再生タスクの優先度よりも高い。ＣＰＵ２８は、このようなＣＥＣ初期化タスクおよび再生タスクを、図９に示すタイマ割り込みハンドラ，図１０に示す２ミリ秒アラームハンドラ，および図１１に示す１０ミリ秒アラームハンドラと並列して、かつμＩＴＲＯＮ仕様ＯＳの一部をなすシステムコール機能（図１２参照）およびスケジューラ／ディスパッチャ（図１３参照）の制御の下で実行する。なお、図９に示すタイマ割り込みハンドラはＯＳ用タイマＴＭ１の周回に応答して起動される。
【００４２】
図７を参照して、ステップＳ１ではＨＤＭＩトランスミッタ３６の動作モードをパルス入力モードに設定する。ＧＰＩＯインタフェース４６の属性は、パルス入力モードに適合するように変更される。ステップＳ３では変数ＣＮＴを“０”に設定し、ステップＳ５ではＨＤＭＩトランスミッタ３６をリセットする。基準パルスに基づく基準クロックの作成処理は、このリセット処理に応答して開始される。
【００４３】
ステップＳ７では、２ミリ秒のアラームをアラームウェイトキューに設定するべく、対応するシステムコールをＯＳに向けて発行する。続くステップＳ９では、最大２０ミリ秒の同期待ちを実行するべく、対応するシステムコールをＯＳに向けて発行する。
【００４４】
ＣＥＣ初期化タスクは、ステップＳ９の処理の後に待ち状態（同期待ち状態）に遷移する。ステップＳ１１以降の処理は、２０ミリ秒が経過するか、或いは１０ミリ秒アラームハンドラによって同期システムコールが発行されたときに再開される。
【００４５】
ステップＳ１１では、１０ミリ秒アラームハンドラによって設定された変数ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥの値が２ミリ秒アラームハンドラによって設定された変数ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥの値よりも大きいか否かを判別する。判別結果がＹＥＳであれば、ステップＳ１３で数１に従って差分ΔＴＭを算出する。一方、判別結果がＮＯであれば、ステップＳ１５で数２に従って差分ΔＴＭを算出する。
［数１］
ΔＴＭ＝ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥ−ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥ
［数２］
ΔＴＭ＝ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥ−ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥ＋ＯＦＳＴ
【００４６】
数１によれば、変数ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥの値から変数ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥの値が減算され、これによって得られた数値が差分ΔＴＭとされる。数２によれば、変数ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥの値から変数ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥの値が減算され、フリーランタイマＴＭ２の周期に相当するオフセットＯＳＦＴが減算値に加算される。このような加減算によって得られた数値が、差分ΔＴＭとされる。
【００４７】
ステップＳ１３またはＳ１５の処理が完了すると、算出された差分ΔＴＭが１０ミリ秒±１％の範囲（９９００マイクロ〜１０１００マイクロ秒の範囲）に属するか否かをステップＳ１７で判別する。判別結果がＹＥＳであればステップＳ１９に進み、ＨＤＭＩトランスミッタ３６の動作モードを通常モードに変更する。ＧＰＩＯインタフェース４６の属性は、通常モードに適合するように変更される。ＣＥＣ初期化タスクの処理は、動作モードの変更の後に終了する。
【００４８】
ステップＳ１７の判別結果がＮＯであれば、変数ＣＮＴをステップＳ２１でインクリメントし、変数ＣＮＴが“５”を上回るか否かをステップＳ２３で判別する。判別結果がＹＥＳであればステップＳ１９に進み、判別結果がＮＯであればステップＳ２５に進む。
【００４９】
ステップＳ２５では、１００ミリ秒の待機を実行するべく、対応するシステムコールをＯＳに向けて発行する。ＣＥＣ初期化タスクは、ステップＳ２５の処理の後に待ち状態に遷移する。ＣＥＣ初期化タスクがＯＳによってディスパッチされると、ステップＳ５以降の処理が再開される。
【００５０】
図９を参照して、ステップＳ３１ではフラグＦＬＧを“１”に設定し、ステップＳ３３ではアラームウェイトキューにアラームが設定されているか否かを判別する。判別結果がＮＯであれば、ステップＳ４５でスケジューラ／ディスパッチャを起動し、ステップＳ４７でフラグＦＬＧを“０”に設定し、その後に処理を終了する。
【００５１】
判別結果がＹＥＳであれば、アラームウェイトキューに設定された待ち時間をステップＳ３５でディクリメントする。タイマ割り込みハンドラはＯＳ用タイマＴＭ１の周回に応答して起動するため、待ち時間は１ミリ秒ずつディクリメントされる。また、このディクリメント処理は、ＯＳ用タイマＴＭ１の周回数を測定する処理に相当する。
【００５２】
ステップＳ３７では待ち時間がゼロを示すアラームをアラームウェイトキューから探索し、ステップＳ３９では探索に成功したか否かを判別する。待ち時間がゼロを示すアラームが発見されなければステップＳ４５に進み、待ち時間がゼロを示すアラームが発見されればステップＳ４１に進む。
【００５３】
ステップＳ４１では待ち時間がゼロを示すアラームをアラームウェイトキューから検出し、検出されたアラームをアラームウェイトキューから削除する。ステップＳ４３では、ステップＳ４１で検出されたアラームに対応するアラームハンドラを起動する。タイマ割り込みハンドラの処理は、アラームハンドラの起動によって中断される。アラームハンドラの起動期間において、フラグＦＬＧは“１”を維持する。起動したアラームハンドラの処理が終了するとステップＳ４５以降の処理が再開され、これによってフラグＦＬＧが“０”に更新される。
【００５４】
図１０を参照して、ステップＳ５１では基準パルスをＬレベルに設定し、ステップＳ５３ではタイマＴＭ２の現在値を変数ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥに設定する。設定処理が完了すると、１０ミリ秒のアラームをアラームウェイトキューに設定するべく、対応するシステムコールをＯＳに向けて発行する。２ミリ秒アラームハンドラは、ステップＳ５５の処理の後に終了される。
【００５５】
図１１を参照して、ステップＳ６１では基準パルスをＨレベルに設定し、ステップＳ６３ではタイマＴＭ２の現在値を変数ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥに設定する。ステップＳ６５では、同期待ちタスク（＝ＣＥＣ初期化タスク）を再起動するための同期システムコールをＯＳに向けて発行する。１０ミリ秒アラームハンドラは、ステップＳ６５の処理の後に終了される。
【００５６】
図１２を参照して、ステップＳ７１ではシステムコールに対応する処理を実行する。ステップＳ７およびステップＳ５５の処理に基づくアラームウェイトキューへのアラーム設定は、ここで実行される。ステップＳ７３では、フラグＦＬＧが“０”であるか否かを判別する。判別結果がＹＥＳであれば、ステップＳ７３でスケジューラ／ディスパッチャを起動し、その後に処理を終了する。一方、判別結果がＮＯであれば、そのまま処理を終了する。
【００５７】
上述のように、フラグＦＬＧはアラームハンドラの起動期間において“１”を維持する。このため、ステップＳ５５またはＳ６５で発行されたシステムコールに対しては、ステップＳ７３におけるスケジューラ／ディスパッチャの起動処理は遅延される。
【００５８】
図１３を参照して、ステップＳ８１ではタスクレディキューを更新する。ステップＳ９で待ち状態に移行したＣＥＣ初期化タスクは、ステップＳ６５で発行された同期システムコールに基づいてタスクレディキューに登録される。また、ステップＳ２５で待ち状態に移行したＣＥＣ初期化タスクは、１００ミリ秒が経過した時点のステップＳ８１の処理によってタスクレディキューに登録される。なお、ステップＳ６５に示す同期システムコールが発行されない場合、ステップＳ９で待ち状態に移行したＣＥＣ初期化タスクは、２０ミリ秒が経過した時点でタスクレディキューに登録される。
【００５９】
ステップＳ８３ではカレントタスク（現時点で実行状態にあるタスク）の優先順位が最高であるか否かを判別する。判別結果がＹＥＳであれば処理を終了し、判別結果がＮＯであればステップＳ８５に進む。ステップＳ８５では、タスクレディキューに登録された最高順位のタスクをディスパッチし、ステップＳ８７ではカレントタスクをプリエンプトする。スケジューラ／ディスパッチャは、プリエンプトの後に終了される。なお、ステップＳ８５およびＳ８７の処理を併せてディスパッチャと呼ぶ。
【００６０】
基準パルスが正常に作成されるときの動作を図１４に示すタイミングチャートを参照して説明する。なお、以下では、説明を分かりやすくするために、図７〜図１３で参照されたステップ番号を適宜引用する。
【００６１】
ＣＥＣ初期化タスクは、２ミリ秒のアラームを設定するためのシステムコールをタイミングＫ１で発行する(S7)。ＯＳのシステムコール機能は、アラームをアラームウェイトキューに設定し(S71)、タイミングＣ１でスケジューラ／ディスパッチャを起動する(S73)。
【００６２】
ＣＥＣ初期化タスクの優先度は再生タスクの優先度よりも高いため、スケジューラ／ディスパッチャはＣＥＣ初期化タスクの実行状態を維持する(S83)。ＣＥＣ初期化タスクの処理はタイミングＬ１で再開される。ただし、再開された処理は、ＯＳ用タイマＴＭ１の周回に起因して、タイミングＴ１で中断される。
【００６３】
タイマ割り込みハンドラは、アラームウェイトキューに設定された２ミリ秒の待ち時間をディクリメントし(S35)、タイミングＩ１でスケジューラ／ディスパッチャを起動する(S45)。ＣＥＣ初期化タスクの優先度は依然として高いため、スケジューラ／ディスパッチャはＣＥＣ初期化タスクの実行状態を維持する(S83)。ＣＥＣ初期化タスクの処理は、タイミングＬ２で再開される。
【００６４】
再開されたＣＥＣ初期化タスクは、最大２０ミリ秒の同期待ちを実行するべく、タイミングＫ２でシステムコールを発行する(S9)。ＣＥＣ初期化タスクはその後、待ち状態に遷移する。
【００６５】
ＯＳのシステムコール機能は、タイミングＣ２でスケジューラ／ディスパッチャを起動する(S73)。ＣＥＣ初期化タスクが待ち状態に遷移したことで、再生タスクの優先度が最高になる。スケジューラ／ディスパッチャは、タイミングＬ３で再生タスクをディスパッチする(S85)。
【００６６】
ＯＳ用タイマＴＭ１の周回がタイミングＴ２で発生すると、再生タスクの処理が中断される。タイマ割り込みハンドラは、アラームウェイトキューに設定された待ち時間をディクリメントし(S35)、２ミリ秒アラームハンドラをタイミングＩ２で起動する(S43)。タイマ割り込みハンドラの処理は、２ミリ秒アラームハンドラの起動によって中断する。フラグＦＬＧの値は“１”を維持する。
【００６７】
２ミリ秒アラームハンドラは、タイミングＩ２で基準パルスをＬレベルに設定し(S51)、フリーランタイマＴＭ２の値を変数ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥに設定し(S53)、そして１０ミリ秒のアラームを設定するためのシステムコールをタイミングＨ１で発行する(S55)。ＯＳのシステムコール機能は、アラームをアラームウェイトキューに設定する(S71)。ただし、フラグＦＬＧは“１”を示すため、ＯＳのシステムコール機能によってスケジューラ／ディスパッチャが起動されることはない(S73)。
【００６８】
２ミリ秒アラームハンドラの残りの処理が終了されると、タイマ割り込みハンドラの処理が再開される。タイマ割り込みハンドラは、タイミングＩ３でスケジューラ／ディスパッチャを起動し(S45)、フラグＦＬＧを“０”に更新する(S47)。
【００６９】
ＣＥＣ初期化タスクは依然として待ち状態にあるため、スケジューラ／ディスパッチャは、再生タスクの実行状態を維持する(S83)。再生タスクの処理は、タイミングＬ４で再開される。
【００７０】
ＯＳ用タイマＴＭ１の周回はその後、タイミングＴ３〜Ｔ１１で発生し、これによって再生タスクの処理が中断される。タイマ割り込みハンドラは、タイミングＩ４〜Ｉ１２において、アラームウェイトキューに設定された１０ミリ秒の待ち時間をディクリメントするとともに(S35)、スケジューラ／ディスパッチャを起動する(S45)。ＣＥＣ初期化タスクは依然として待ち状態にあるため、スケジューラ／ディスパッチャは再生タスクの実行状態を維持し(S83)、再生タスクの処理はタイミングＬ５〜Ｌ１３で再開される。
【００７１】
ＯＳ用タイマＴＭ１の周回がタイミングＴ１２で発生すると、再生タスクの処理が中断される。タイマ割り込みハンドラは、アラームウェイトキューに設定された待ち時間をディクリメントし(S35)、１０ミリ秒アラームハンドラをタイミングＩ１３で起動する(S43)。タイマ割り込みハンドラの処理は、１０ミリ秒アラームハンドラの起動によって中断する。
【００７２】
１０ミリ秒アラームハンドラは、タイミングＩ１３で基準パルスをＨレベルに設定し(S61)、フリーランタイマＴＭ２の値を変数ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥに設定し(S63)、そして同期システムコールをタイミングＨ２で発行する(S65)。ただし、この時点ではフラグＦＬＧが“１”に設定されているため(S31)、ＯＳのシステムコール機能によってスケジューラ／ディスパッチャが起動されることはない(S73)。
【００７３】
１０ミリ秒アラームハンドラの残りの処理が終了されると、タイマ割り込みハンドラの処理が再開される。タイマ割り込みハンドラは、タイミングＩ１４でスケジューラ／ディスパッチャを起動し(S45)、フラグＦＬＧを“０”に更新する(S47)。
【００７４】
スケジューラ／ディスパッチャは、ＣＥＣ初期化タスクをタスクレディキューに設定し(S81)、ＣＥＣ初期化タスクのディスパッチおよび再生タスクのプリエンプトをタイミングＬ１４で実行する(S85, S87)。
【００７５】
ディスパッチされたＣＥＣ初期化タスクは、基準パルスがＬレベルを示す期間を差分ΔＴＭとして算出する(S11~S15)。算出された期間の長さは１０ミリ秒±１％の範囲に属しており、ＣＰＵ初期化タスクはＨＤＭＩトランスミッタ３６を通常モードに設定してから処理を終了する(S19)。
【００７６】
ＯＳ用タイマＴＭ１の周回がタイミングＴ１３で発生すると、タイマ割り込みハンドラは、タイミングＩ１５でスケジューラ／ディスパッチャを起動する(S45)。起動したスケジューラ／ディスパッチャは、タイミングＬ１５で再生タスクをディスパッチする(S85)。
【００７７】
図１５を参照して、タイミングＬ１３で再開された再生タスクがＯＳ用タイマＴＭ１の周回時期を跨いで割り込み禁止期間を定義すると、ＯＳ用タイマの周回に関わらず、タイマ割り込みハンドラの処理が禁止される。この結果、上述したタイミングＴ１２〜Ｔ１３，Ｉ１３〜Ｉ１５，Ｌ１４〜Ｌ１５およびＨ２にＯＳ用タイマＴＭ１の１周期に相当する遅れが生じ、基準パルスは１１ミリ秒経過した時点でＨレベルに設定される。このとき、タイミングＨ２でディスパッチされたＣＥＣ初期化タスクによって算出される差分ΔＴＭは、１１ミリ秒を示す。ＣＥＣ初期化タスクは、１００ミリ秒の待機を実行するためのシステムコールをＯＳに向けて発行し、その後に待ち状態に遷移する(S25)。
【００７８】
以上の説明から分かるように、基準パルスは、ＨＤＭＩトランスミッタ３６におけるクロック生成動作のために参照される。ＣＰＵ２８は、ＨＤＭＩトランスミッタ３６のクロック作成動作をリセットし(S5)、基準パルスのレベルをＯＳ用タイマＴＭ１のオーバフローに応答してＬレベルに変更するとともに(S7, S71, S43, S51)、フリーランタイマＴＭ２の値を“ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥ”として検出する
(S53)。
【００７９】
ＣＰＵ２８はさらに、その後に発生するＯＳ用タイマＴＭ１のオーバフローに応答して基準パルスのレベルをＨレベルに変更し(S55, S71, S43, S61)、これに関連してフリーランタイマＴＭ２の値を“ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥ”として検出する(S63)。“ＣＡＬ＿ＳＴＯＰ＿ＴＩＭＥ”と“ＣＡＬ＿ＳＴＡＲＴ＿ＴＩＭＥ”との差分に相当する“ΔＴＭ”が１０ミリ秒±１％の範囲から外れると、ＣＰＵ２８は、上述の処理を再起動する(S17, S25)。
【００８０】
基準パルスのレベルは、ＯＳ用タイマＴＭ１を参照して変更される。また、基準パルスがＬレベルを示す期間は、フリーランタイマＴＭ２を参照して差分ΔＴＭとして検出される。ここで、フリーランタイマＴＭ２の周期はＯＳ用タイマＴＭ１の周期よりも長い。
【００８１】
したがって、基準パルスのレベルの変更時期にＯＳ用タイマＴＭ１の周期の整数倍に相当するずれが生じた場合、このずれは差分ΔＴＭの値に反映される。基準パルスのレベルの変更処理は差分ΔＴＭの値が既定範囲から外れるときに再起動され、クロック作成動作はこの再起動処理に関連してリセットされる。これによって、基準パルスの精度ひいてはクロック周波数の精度を確保することができる。
【符号の説明】
【００８２】
１０  …ディジタルカメラ
１８  …カメラ処理回路
２８  …ＣＰＵ
３０  …キー入力装置
３４  …記録媒体
３６  …ＨＤＭＩトランスミッタ
【図１】
2011044806.tif 000003
【図２】
2011044806.tif 000004
【図３】
2011044806.tif 000005
【図４】
2011044806.tif 000006
【図５】
2011044806.tif 000007
【図６】
2011044806.tif 000008
【図７】
2011044806.tif 000009
【図８】
2011044806.tif 000010
【図９】
2011044806.tif 000011
【図１０】
2011044806.tif 000012
【図１１】
2011044806.tif 000013
【図１２】
2011044806.tif 000014
【図１３】
2011044806.tif 000015
【図１４】
2011044806.tif 000016
【図１５】
2011044806.tif 000017