(57)【要約】      （修正有）【課題】ストリーミング中のデータ転送速度の低下を抑制する技術を提供する。【解決手段】通信モジュールに対してクロック信号を出力する出力手段と、クロック信号を遅延させることによりタイミング信号を生成する生成手段と、通信モジュールへコマンド又はデータを送信し、通信モジュールが送信したレスポンス又はデータをタイミング信号が規定するタイミングに従って受信する通信手段と、遅延の量を調整する調整手段と、通信モジュールへ第１のコマンドを送信し、第１のコマンドに応えて通信モジュールが送信した第１のレスポンスを受信し、第１のレスポンスに応えて通信モジュールへ所定量のデータを送信するように通信手段を制御する制御手段と、を備える。【選択図】図３
2015225465.tif 000002
【特許請求の範囲】
【請求項１】
通信モジュールに対してクロック信号を出力する出力手段と、
前記クロック信号を遅延させることによりタイミング信号を生成する生成手段と、
前記通信モジュールへコマンド又はデータを送信し、前記通信モジュールが送信したレスポンス又はデータを前記タイミング信号が規定するタイミングに従って受信する通信手段と、
前記遅延の量を調整する調整手段と、
前記通信モジュールへ第１のコマンドを送信し、前記第１のコマンドに応えて前記通信モジュールが送信した第１のレスポンスを受信し、前記第１のレスポンスに応えて前記通信モジュールへ所定量のデータを送信するように前記通信手段を制御する制御手段と、
を備え、
前記制御手段が前記制御を繰り返すことにより前記通信手段が前記通信モジュールへ継続的にデータを送信する場合、前記制御手段は、前記第１のレスポンスの内容に関わらず前記所定量のデータを送信するように前記通信手段を制御する
ことを特徴とする通信装置。
【請求項２】
前記制御手段が前記制御を繰り返している間は、前記調整手段は前記調整を行わない
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記通信モジュールからの割り込み通知を検出する検出手段を更に備え、
前記割り込み通知が検出された場合、前記制御手段は、前記通信モジュールへ第２のコマンドを送信し、前記第２のコマンドに応えて前記通信モジュールが送信した第２のレスポンスを受信するように前記通信手段を制御し、
前記通信装置は、前記第２のレスポンスの内容にエラーがあるか否かを判定する判定手段を更に備え、
前記第２のレスポンスの内容にエラーがある場合、前記出力手段は、前記クロック信号の周波数を下げる
ことを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記出力手段が前記クロック信号の周波数を下げた後、前記制御手段は、前記通信モジュールへ第３のコマンドを送信し、前記第３のコマンドに応えて前記通信モジュールが送信した第３のレスポンス及びデータを受信するように前記通信手段を制御し、
前記出力手段は、前記第３のレスポンス及びデータが受信された後、前記制御手段が前記第１のレスポンスに応えて前記通信モジュールへ所定量のデータを送信するように前記通信手段を制御する前に、前記クロック信号の周波数を上げる
ことを特徴とする請求項３に記載の通信装置。
【請求項５】
前記通信モジュールからの割り込み通知を検出する検出手段を更に備え、
前記割り込み通知が検出された場合、前記制御手段は、前記通信モジュールへ第２のコマンドを送信し、前記第２のコマンドに応えて前記通信モジュールが送信した第２のレスポンスを受信するように前記通信手段を制御し、
前記通信装置は、前記第２のレスポンスの内容にエラーがあるか否かを判定する判定手段を更に備え、
前記第２のレスポンスの内容にエラーがある場合、前記調整手段は前記調整を行う
ことを特徴とする請求項１又は２に記載の通信装置。
【請求項６】
通信モジュールに対してクロック信号を出力する出力手段と、
前記クロック信号を遅延させることによりタイミング信号を生成する生成手段と、
前記通信モジュールへデータを送信し、前記通信モジュールが送信したデータを前記タイミング信号が規定するタイミングに従って受信する通信手段と、
前記遅延の量を調整する調整手段と、
前記通信モジュールからの割り込み通知を検出する検出手段と、
前記割り込み通知が検出された場合、次に受信すべき第２のデータのサイズを示す第１のデータを受信するように前記通信手段を制御する制御手段と、
前記第１のデータが示す前記第２のデータのサイズに基づいて、前記クロック信号の周波数を上げるか否かを判定する判定手段と、
を備え、
前記クロック信号の周波数を上げると判定された場合、前記出力手段は前記クロック信号の周波数を上げ、前記調整手段は前記調整を行う
ことを特徴とする通信装置。
【請求項７】
前記出力手段が前記クロック信号の周波数を上げ、前記調整手段が前記調整を行った後、前記制御手段は、前記第２のデータを受信するように前記通信手段を制御し、
前記第２のデータが受信された後、前記検出手段は、次の割り込み通知を待ち受ける
ことを特徴とする請求項６に記載の通信装置。
【請求項８】
前記判定手段は、前記クロック信号の周波数を上げた場合に前記第２のデータの受信に要する時間と前記調整に要する時間との合計が前記クロック信号の周波数を上げない場合に前記第２のデータの受信に要する時間よりも短い場合に、前記クロック信号の周波数を上げると判定する
ことを特徴とする請求項６又は７に記載の通信装置。
【請求項９】
前記判定手段は、前記第１のデータが示す前記第２のデータのサイズが閾値以上の場合に、前記クロック信号の周波数を上げると判定する
ことを特徴とする請求項６又は７に記載の通信装置。
【請求項１０】
請求項１乃至９のいずれか１項に記載の通信装置を備えることを特徴とする撮像装置。
【請求項１１】
通信モジュールに対してクロック信号を出力する出力手段と、
前記クロック信号を遅延させることによりタイミング信号を生成する生成手段と、
前記通信モジュールへコマンド又はデータを送信し、前記通信モジュールが送信したレスポンス又はデータを前記タイミング信号が規定するタイミングに従って受信する通信手段と、
を備える通信装置の制御方法であって、
前記通信装置の調整手段が、前記遅延の量を調整する調整工程と、
前記通信装置の制御手段が、前記通信モジュールへ第１のコマンドを送信し、前記第１のコマンドに応えて前記通信モジュールが送信した第１のレスポンスを受信し、前記第１のレスポンスに応えて前記通信モジュールへ所定量のデータを送信するように前記通信手段を制御する制御工程と、
を備え、
前記制御工程で前記制御を繰り返すことにより前記通信手段が前記通信モジュールへ継続的にデータを送信する場合、前記制御工程では、前記第１のレスポンスの内容に関わらず前記所定量のデータを送信するように前記通信手段を制御する
ことを特徴とする制御方法。
【請求項１２】
通信モジュールに対してクロック信号を出力する出力手段と、
前記クロック信号を遅延させることによりタイミング信号を生成する生成手段と、
前記通信モジュールへデータを送信し、前記通信モジュールが送信したデータを前記タイミング信号が規定するタイミングに従って受信する通信手段と、
を備える通信装置の制御方法であって、
前記通信装置の検出手段が、前記通信モジュールからの割り込み通知を検出する検出工程と、
前記通信装置の制御手段が、前記割り込み通知が検出された場合、次に受信すべき第２のデータのサイズを示す第１のデータを受信するように前記通信手段を制御する制御工程と、
前記通信装置の判定手段が、前記第１のデータが示す前記第２のデータのサイズに基づいて、前記クロック信号の周波数を上げるか否かを判定する判定工程と、
前記クロック信号の周波数を上げると判定された場合、前記出力手段が前記クロック信号の周波数を上げ、前記通信装置の調整手段が前記遅延の量を調整する工程と、
を備えることを特徴とする制御方法。
【請求項１３】
コンピュータに、請求項１１又は１２に記載の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、撮像装置、通信装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ＳＤメモリカード等のメモリカードに対してデータの読み出しを行う場合、ホストからカードに与えられるクロックに対する、カードからのデータ送信の遅延量は、規格化された固定値であった。従って、ホスト側は、クロック送信に対して規定量遅延したタイミングでデータラッチを行うことにより、カードアクセスを問題なく行うことができた。
【０００３】
しかし近年、メモリカードのアクセス速度向上に伴うクロックの高速化により、前述の遅延量は固定値では規定できなくなっている。このため、ＳＤメモリカードの高速規格であるＵＨＳ−Ｉ（Ｕｌｔｒａ  Ｈｉｇｈ  Ｓｐｅｅｄ−１）においては、所定より高速のクロックを使用する場合にデータラッチのタイミング調整が必要であることが規定されている。このラッチタイミングの調整作業はチューニングと呼ばれ、メモリカードのカードマウント時に行うのが一般的である。このようなチューニング処理が特許文献１に記載されている。
【０００４】
また、近年、ＳＤＩＯ規格に対応した無線通信モジュールを用いて、外部機器と通信を行う通信装置が登場している。このような通信装置は、ＳＤＩＯ規格に対応した無線通信モジュールを用いてＨＤ画質の動画データをストリーミング送信することができる。ＨＤ画質の動画データはデータ量が多いため、通信装置は、ＵＨＳ−Ｉ規格に従ってデータを転送する必要がある場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１５７０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
チューニングによってデータラッチのタイミング、即ちクロックの遅延量が一旦調整されても、この遅延量は、その後の温度変化などの外的要因によって変動する。そのため、カードマウント時やストリーミング開始前にチューニングを行うだけでは、ストリーミング中の温度変化に伴って遅延量が変化し、データの受信が失敗してしまう可能性がある。一方、チューニング中はデータの送受信ができないため、ストリーミング中にチューニングを行うと転送速度が低下し、データが欠落する可能性がある。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、ストリーミング中のデータ転送速度の低下を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、通信モジュールに対してクロック信号を出力する出力手段と、前記クロック信号を遅延させることによりタイミング信号を生成する生成手段と、前記通信モジュールへコマンド又はデータを送信し、前記通信モジュールが送信したレスポンス又はデータを前記タイミング信号が規定するタイミングに従って受信する通信手段と、前記遅延の量を調整する調整手段と、前記通信モジュールへ第１のコマンドを送信し、前記第１のコマンドに応えて前記通信モジュールが送信した第１のレスポンスを受信し、前記第１のレスポンスに応えて前記通信モジュールへ所定量のデータを送信するように前記通信手段を制御する制御手段と、を備え、前記制御手段が前記制御を繰り返すことにより前記通信手段が前記通信モジュールへ継続的にデータを送信する場合、前記制御手段は、前記第１のレスポンスの内容に関わらず前記所定量のデータを送信するように前記通信手段を制御することを特徴とする通信装置を提供する。
【０００９】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【発明の効果】
【００１０】
本発明によれば、ストリーミング中のデータ転送速度の低下を抑制することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る通信装置１００の構成を示すブロック図。
【図２Ａ】通信装置１００のソフトウェア構成を示す図。
【図２Ｂ】ホストＩＦ１１４の詳細な構成を示すブロック図。
【図３】第１の実施形態に係るストリーミング転送制御について説明するシーケンス図。
【図４】第２の実施形態に係るストリーミング転送制御について説明するシーケンス図。
【図５】図４のシーケンス図に対応する、通信装置１００が実行する制御のフローチャート。
【図６】第３の実施形態に係るストリーミング転送制御について説明するシーケンス図。
【図７】図６のシーケンス図に対応する、通信装置１００が実行する制御のフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００１３】
［第１の実施形態］
図１は、第１の実施形態に係る通信装置１００の構成を示すブロック図である。通信装置１００において、入力部１０１は、装置外部から動画データや音声データを入力する。入力部１０１は撮像素子を含んでいてもよく、この場合、通信装置１００は撮像装置としても機能する。入力部１０１は更に、マイクを含んでいてもよい。信号処理部１０２は、入力された動画データに対してＭＰＥＧ方式等の公知の符号化処理を施して情報量を圧縮する。メモリ１０３は、入力された動画データや符号化された動画データ、或いは管理情報などの各種情報を記録する。
【００１４】
システム制御部１０４は、マイクロコンピュータを有し、不揮発性メモリ１０８に記録されたプログラムを実行することで、通信装置１００の動作を制御する。また、システム制御部１０４は、ＳＤメモリカード１１３に記録されるファイルを管理するためのファイルシステムを有する。操作部１０５は、電源スイッチや動画の記録開始、停止を指示するためのスイッチ等、各種のスイッチを備える。ユーザは操作部１０５を操作することにより、通信装置１００に対する動作を指示する。不揮発性メモリ１０８は、システム制御部１０４を動作させるためのプログラムを記憶する。ＲＡＭ１０９は、システム制御部１０４の処理に必要な各種のデータを記憶する。
【００１５】
メモリインターフェース（ＩＦ）１１２は、不図示のコネクタを介してＳＤメモリカード１１３と通信を行い、ＳＤメモリカード１１３に対して各種のコマンドやデータを送信する。また、メモリＩＦ１１２は、ＳＤメモリカード１１３からの情報を受け取って、システム制御部１０４に送る。ホストインターフェース（ＩＦ）１１４は、不図示のコネクタを介してＷＬＡＮモジュール１２０（通信モジュール）と接続する。本実施形態では、ホストＩＦ１１４は、ＳＤＩＯ規格に従いＷＬＡＮモジュール１２０と通信を行い、ＷＬＡＮモジュール１２０内のスレーブインターフェース（ＩＦ）１２１に対して各種コマンドやデータを送信する。また、ホストＩＦ１１４は、ＷＬＡＮモジュール１２０からの情報を受け取って、システム制御部１０４に送る。バス１１０は、各部の間でデータを送受信する。
【００１６】
チューニング部１０６は、後述する方法で最適なデータラッチタイミングを決定する。ＳＤＣＬＫ制御部１０７は、ホストＩＦ１１４とＷＬＡＮモジュール１２０との間の通信のために用いられるクロックを制御する。レスポンス処理部１１１は、ＷＬＡＮモジュール１２０からのレスポンスを処理する。
【００１７】
本実施形態では、ＳＤメモリカード１１３及びＷＬＡＮモジュール１２０は、不図示の装置又は排出機構により通信装置１００に対してユーザが自由に着脱できるように構成されている。しかし、ＳＤメモリカード１１３及びＷＬＡＮモジュール１２０は、通信装置１００に内蔵されていてもよい。
【００１８】
通信装置１００は、入力部１０１より入力された動画データや音声データなどのストリームデータをＳＤメモリカード１１３に記録する機能を持つ。また、通信装置１００は、入力されたストリームデータを、ホストＩＦ１１４に接続されたＷＬＡＮモジュール１２０を介して外部機器に送信する機能を持つ。更に、通信装置１００は、ＳＤメモリカード１１３から読み出されたストリームデータを、ホストＩＦ１１４に接続されたＷＬＡＮモジュール１２０を介して外部機器に送信する機能を持つ。また、通信装置１００は、外部機器から送信されたストリームデータをホストＩＦ１１４に接続されたＷＬＡＮモジュール１２０を介して受信する機能を持つ。また、本実施形態では、ホストＩＦ１１４とＷＬＡＮモジュール１２０とは、ＳＤメモリカードの高速規格であるＵＨＳ−Ｉ（Ｕｌｔｒａ  Ｈｉｇｈ  Ｓｐｅｅｄ−１）に従って通信を行うことができる。
【００１９】
次に、図２Ａを参照して、通信装置１００のソフトウェア構成について説明する。アプリケーション２０１は、通信装置１００のメモリ１０３に蓄積された動画データを管理するモジュールである。アプリケーション２０１は、メモリ１０３上の所定量の動画データに対して通信ドライバ２０２にパケット単位でライト、リード要求を実行する。また、アプリケーション２０１は、チューニングドライバ２０４を制御し、チューニングの実施、非実施の制御を行う。更に、アプリケーション２０１は、ＳＤクロック制御ドライバ２０５を制御し、ホストＩＦ１１４が用いるクロックの周波数を制御する。
【００２０】
通信ドライバ２０２は、通信装置１００で生成されるデータを管理するためのモジュールであり、アプリケーション２０１からのライト、リード要求に応じてＳＤデバイスドライバ２０３へライト、リード要求を実行する。ＳＤデバイスドライバ２０３は、ホストＩＦ１１４を制御するドライバであり、ＷＬＡＮモジュール１２０に対し、後述するチューニングに必要なコマンド、また、データライト、リード等の要求を送信する。チューニングドライバ２０４は、ＳＤデバイスドライバ２０３を制御して、ＷＬＡＮモジュール１２０のスレーブＩＦ１２１にテストパターン出力コマンドを送信する。ＳＤデバイスドライバ２０３は、スレーブＩＦ１２１から出力されるテストパターン信号をデータラッチタイミングを変えながら受信し、最適なデータラッチタイミングを決定する。テストパターン出力コマンド送信から最適なデータラッチタイミング決定までの制御をチューニングと呼ぶ。
【００２１】
次に、図２Ｂを参照して、チューニングについて更に詳細に説明する。図２Ｂは、ホストＩＦ１１４の詳細な構成を示すブロック図である。ホストＩＦ１１４は、ＷＬＡＮモジュール１２０に対するデータの送信及び受信において、ＣＬＫライン、ＣＭＤライン、及びＤＡＴラインを介して信号及びデータの送受信を行う。具体的には、クロック源２５１は、送受信のタイミング制御に利用される、クロックパルスで構成されたクロック信号（ＣＬＫ信号）をＣＬＫラインを介して出力する。ホストコントローラ２５２は、送信に係るコマンド信号の出力、及びコマンドに対するＷＬＡＮモジュール１２０からのレスポンス信号の受信を、ＣＭＤラインを介して行う。またホストコントローラ２５２は、ＷＬＡＮモジュール１２０へ送信するデータ、或いはＷＬＡＮモジュール１２０から受信するデータを、ＤＡＴラインを介して送受信する制御を行う。
【００２２】
データの送受信において、上述したようにクロックパルスとデータの送受信のタイミングは異なる。このため、遅延素子２５３は、例えばＷＬＡＮモジュール１２０からのデータの受信時にクロック信号の位相をチューニング部１０６の制御に従って遅延させ、ＷＬＡＮモジュール１２０から出力されたデータをラッチするタイミング信号を生成する。そして、フリップフロップ２５４は、遅延素子２５３から出力されたタイミング信号に従って、ＷＬＡＮモジュール１２０から出力されたデータをラッチする。即ち、タイミング信号は、データをラッチするタイミングを規定する。また、フリップフロップ２５６は、クロック源２５１からのタイミングに従って、ホストコントローラ２５２からのデータをラッチする。なお、コマンドの入出力、及びデータの送受信に応じたＣＭＤラインとＤＡＴラインとの間の切り替えは、信号分岐部２５５により行われる。
【００２３】
チューニングを行う場合、ホストＩＦ１１４がＷＬＡＮモジュール１２０にテストデータ送信コマンドを発行する。これに応えて、ＷＬＡＮモジュール１２０は、クロック源２５１から送られてくるクロック信号に同期して、予め決められているパターンの６４バイトのデータ列（テストデータ）を送信する。ホストＩＦ１１４は、クロック源２５１から生成されるラッチタイミングで、テストデータを受信する。ここで、ラッチタイミングは、遅延素子２５３に設定される遅延段数の値を変化させることで、クロック信号との位相関係を変化させることができる。チューニング部１０６は、位相関係を変化させながら、即ちラッチタイミングを変えながらテストデータの受信の成否を判定する。そして、チューニング部１０６は、最も安定してテストデータの受信に成功するラッチタイミングを選択することで、ラッチタイミングのチューニング（即ち、タイミング信号の遅延の量の調整）を行う。また、チューニング処理を行っている間、ＷＬＡＮモジュール１２０に対するデータの送受信を行うことができない。
【００２４】
チューニングは、データの受信に関するタイミングを調整する処理であるため、データの送信には直接的には影響しない。即ち、ホストＩＦ１１４からＷＬＡＮモジュール１２０にデータを送信する場合は、クロック信号と送信データの同期が取れて所定のＡＣタイミングを満たしていればよい。そうであれば、温度変化があってもＷＬＡＮモジュール１２０（厳密には、スレーブＩＦ１２１）側でデータの受信に失敗することはない。問題となるのは、ホストＩＦ１１４がＷＬＡＮモジュール１２０からのデータを受信する場合である。温度変化によって、データ受信のためのタイミング信号とＷＬＡＮモジュール１２０によるデータ送信との位相関係が大きく変動する。その結果、ホストＩＦ１１４がデータ受信を失敗し、エラーとなる可能性がある。
【００２５】
続いて、通信装置１００によるＷＬＡＮモジュール１２０へのストリーミング転送制御について説明する。まず、ストリーミング転送の特徴について説明する。一般的に、ストリーミング転送は受信側で画像の欠落が発生しないよう、リアルタイムにパケット転送することが求められる。よって、転送時にパケットが欠落した場合、再送するのではなく次のパケットを転送することで、受信側の画像の欠落を最小限にとどめるよう制御する。また、ストリーミング転送はパケット送信がメインであり、受信パケットはそう多くない。
【００２６】
ストリーミング転送制御に関する以上の特徴を踏まえた上で、本実施形態におけるストリーミング転送制御について説明する。図３は、第１の実施形態に係るストリーミング転送制御について説明するシーケンス図である。図３において、ホストＩＦ１１４が実行する処理は、システム制御部１０４が通信装置１００の各部を制御することにより実現される。例えば、ユーザが操作部１０５を操作して、入力部１０１より入力されたストリームデータ、或いはＳＤメモリカード１１３から再生されたストリームデータの送信を指示した場合に、図３の処理が開始する。なお、本実施形態において送信されるストリームデータは、動画データ或いは音声データを含む。
【００２７】
なお、以下の説明では、ホストＩＦ１１４とスレーブＩＦ１２１との間で送受信されるコマンドとして、ＣＭＤ５２とＣＭＤ５３を用いる。ＣＭＤ５２は、ＣＭＤラインを使用し、ＤＡＴラインを使用しない通信のために用いられ、ＣＭＤ５３は、ＤＡＴラインを使用する通信のために用いられる。また、コマンドには、データの送信（書き込み）のためのライトコマンド（Ｗ）と、データの受信（読み出し）のためのリードコマンド（Ｒ）とがある。例えば、ホストＩＦ１１４からＣＭＤ５２（Ｒ）がスレーブＩＦ１２１にＣＭＤラインを介して送信された場合、スレーブＩＦ１２１は、ＣＭＤラインを介して、ステータスなどのレスポンスデータをホストＩＦ１１４に送信する。また、ホストＩＦ１１４は、ＣＭＤ５３（Ｗ）を送信した後、ＤＡＴラインを介して送信対象の実データをスレーブＩＦ１２１に送信する。
【００２８】
最初に、Ｓ３００１で、システム制御部１０４は、ホストＩＦ１１４を制御して、スレーブＩＦ１２１に対して、ライトコマンドであるＣＭＤ５３（Ｗ）（第１のコマンド）を発行する。Ｓ３００２で、ホストＩＦ１１４は、スレーブＩＦ１２１からのレスポンス（第１のレスポンス）を受信する。
【００２９】
Ｓ３００３で、システム制御部１０４は、レスポンス処理部１１１を制御して、レスポンスの内容に関わらずコマンドの送信に成功したと判断し、処理をＳ３００４に進める。本実施形態では、通信装置１００はストリーミング中にチューニングを行わないため、ホストＩＦ１１４は、正しい値のレスポンスを受信できない可能性がある。また、最初は正しい値のレスポンスを受信できたとしても、後述するようにストリーミング中は本シーケンスの処理が繰り返し実行されるため、温度変化によりいずれかのタイミングで正しい値のレスポンスを受信できなくなる可能性がある。しかしながら、本実施形態のシステム制御部１０４は、レスポンスの内容に関わらずコマンドの送信に成功したと判断するように構成されているため、ストリーミングを正常に継続することができる。
【００３０】
なお、図示を省略するが、システム制御部１０４は、レスポンスの受信自体が無かった場合は、スレーブＩＦ１２１が正常に動作していないと判断し、データの送信を停止する。即ち、システム制御部１０４は、レスポンス処理部１１１により、ＣＭＤ５３（Ｗ）がスレーブＩＦ１２１に送信されてから所定期間内にレスポンスが受信されたか否かを判断する。そして、システム制御部１０４は、レスポンスが所定期間内に受信された場合は、その内容に関わらず処理をＳ３００４に進め、受信されなかった場合は、本シーケンスの処理を終了する。
【００３１】
Ｓ３００４で、システム制御部１０４は、ホストＩＦ１１４を制御してパケット送信を開始する。Ｓ３００５で、ホストＩＦ１１４は、スレーブＩＦ１２１に対して所定量のデータをパケット単位で送信する。Ｓ３００６で、ホストＩＦ１１４は、パケット送信を完了する。ストリーミング送信では継続的にパケットを送信し続ける必要があるため、Ｓ３００６の後、システム制御部１０４は処理をＳ３００１に戻し、上述した制御を繰り返す。
【００３２】
以上説明したように、本実施形態によれば、通信装置１００は、パケット送信のためのライトコマンドに対するレスポンスの内容に関わらず、ＷＬＡＮモジュール１２０に対してパケットを送信する。これにより、ストリーミング中にチューニングを実行する必要が無くなり、チューニングによるオーバーヘッドを減らすことができる。そのため、ストリーミング中のデータ転送速度の低下を抑制し、ストリーミングの受信側における画像の欠落を減らすことが可能となる。
【００３３】
なお、本実施形態では、ＣＭＤ５３を用いて説明を行ったが、コマンドの種類を限定するものではなく、別のコマンドを用いても構わない。
【００３４】
［第２の実施形態］
第１の実施形態では、処理が図３のＳ３００６からＳ３００１へ戻るものとして説明を行った。しかしながら、実装によっては、ホストＩＦ１１４からスレーブＩＦ１２１に対して所定量のデータを送信すると、スレーブＩＦ１２１からホストＩＦ１１４に対するＳＤＩＯ割り込みが発生する場合がある。第２の実施形態では、このような場合の処理について説明する。なお、本実施形態において、通信装置１００の基本的な構成は、第１の実施形態と同様である（図１、図２Ａ、及び図２Ｂ参照）。以下、主に第１の実施形態と異なる点について説明する。
【００３５】
図４は、第２の実施形態に係るストリーミング転送制御について説明するシーケンス図である。図４において、ホストＩＦ１１４が実行する処理は、システム制御部１０４が通信装置１００の各部を制御することにより実現される。
【００３６】
Ｓ４００１からＳ４００６の処理は、図３のＳ３００１からＳ３００６と同様である。Ｓ４００６においてパケット送信が完了した後、Ｓ４００７で、スレーブＩＦ１２１は、ＳＤＩＯ割り込みによりホストＩＦ１１４に対して通知を行う。ＳＤＩＯ割り込みは、図２Ｂに示すＤＡＴラインの一部を用いて行われる。
【００３７】
Ｓ４００８で、システム制御部１０４は、ホストＩＦ１１４を制御して、ＣＭＤ５２（Ｒ）（第２のコマンド）を発行する。Ｓ４００９で、システム制御部１０４は、レスポンス（第２のレスポンス）を受信する。Ｓ４０１０で、システム制御部１０４は、レスポンス処理部１１１を制御して、レスポンスの内容にエラーがあるか否かを判定する。レスポンスの内容にエラーがある場合、処理はＳ４０１１に進み、そうでない場合、処理はＳ４０１２に進む。
【００３８】
Ｓ４０１１で、システム制御部１０４は、ＳＤＣＬＫ制御部１０７を制御してパケット受信可能な周波数までクロック周波数を下げる。例えば、ＵＨＳ−Ｉで規定された上限の周波数よりも低い周波数に設定する。ＵＨＳ−Ｉでは、転送モードによりクロック周波数が決まっており、最も高速な転送モードにおけるクロック周波数は２０８ＭＨｚである。そこで、ここでは、システム制御部１０４は、クロック周波数を上限の周波数よりも低い、５０ＭＨｚに設定するものとする。
【００３９】
Ｓ４０１２で、システム制御部１０４は、ホストＩＦ１１４を制御して、ＷＬＡＮモジュール１２０の状態を示すデータを受信するために、ＣＭＤ５３（Ｒ）（第３のコマンド）を発行する。Ｓ４０１３で、システム制御部１０４は、ホストＩＦ１１４を制御して、レスポンス（第３のレスポンス）を受信する。Ｓ４０１４で、スレーブＩＦ１２１は、ＷＬＡＮモジュール１２０の状態を示すデータを含むパケットの送信を開始する。Ｓ４０１５で、スレーブＩＦ１２１は、ホストＩＦ１１４にパケットを送信する。Ｓ４００９のレスポンスの内容にエラーがあった場合はＳ４０１１でクロック周波数が下げられているため、ホストＩＦ１１４は、Ｓ４０１５においてパケットを正常に受信することができる。また、Ｓ４００９のレスポンスの内容にエラーがなかった場合は、ホストＩＦ１１４は、クロック周波数が高いままでもＳ４０１５においてパケットを正常に受信することができる。Ｓ４０１６で、ホストＩＦ１１４は、パケット受信を完了する。Ｓ４０１７で、システム制御部１０４は、Ｓ４０１１においてクロック周波数が下げられていた場合には、ＳＤＣＬＫ制御部１０７を制御してクロック周波数を上げる。典型的には、システム制御部１０４はクロック周波数を元の周波数まで上げるが、Ｓ４０１１において下げられた後の周波数よりも高ければ、いかなる周波数に上げても構わない。その後、第１の実施形態と同様、処理はＳ４００１に戻る。
【００４０】
図５は、図４のシーケンス図に対応する、通信装置１００が実行する制御のフローチャートである。図５の各ステップの処理は、システム制御部１０４が通信装置１００の各部を制御することにより実行される。
【００４１】
Ｓ５０１で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５３（Ｗ）を送信する。Ｓ５０２で、システム制御部１０４は、ホストＩＦ１１４を制御してレスポンスを受信する。また、システム制御部１０４は、レスポンス処理部１１１を制御して、レスポンスの内容に関わらず正常にコマンドを送信できたと判断し、処理をＳ５０３に進める。Ｓ５０３で、システム制御部１０４は、ホストＩＦ１１４を制御して、ストリーミングのデータを搭載したパケットを送信する。
【００４２】
Ｓ５０４で、システム制御部１０４は、ホストＩＦ１１４を制御して、ＳＤＩＯ割り込みを待ち受ける。システム制御部１０４は、スレーブＩＦ１２１からのＳＤＩＯ割り込みを検出すると、処理をＳ５０５に進める。Ｓ５０５で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５２（Ｒ）を発行する。Ｓ５０６で、システム制御部１０４は、ホストＩＦ１１４を制御してレスポンスを受信する。Ｓ５０７で、システム制御部１０４は、レスポンスの内容にエラーがあるか否かを判定する。エラーがある場合、処理はＳ５０８に進み、エラーがない場合、処理はＳ５０９に進む。
【００４３】
Ｓ５０８で、システム制御部１０４は、ＳＤＣＬＫ制御部１０７を制御して、パケット受信可能な周波数までＳＤＣＬＫ（クロック周波数）を下げる。例えば非ＵＨＳ領域のクロックにする。
【００４４】
Ｓ５０９で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５３（Ｒ）を発行する。Ｓ５１０で、システム制御部１０４は、ホストＩＦ１１４を制御してレスポンスを受信する。Ｓ５１１で、ホストＩＦ１１４は、パケット受信を完了する。Ｓ５１２で、システム制御部１０４は、Ｓ５０８においてクロック周波数が下げられていた場合には、ＳＤＣＬＫ制御部１０７を制御してクロック周波数を上げる。典型的には、システム制御部１０４はクロック周波数を元の周波数まで上げるが、Ｓ５０８において下げられた後の周波数よりも高ければ、いかなる周波数に上げても構わない。その後、処理はＳ５０１に戻り、システム制御部１０４は同様の処理を繰り返す。
【００４５】
以上説明したように、本実施形態によれば、通信装置１００は、ＳＤＩＯ割り込みに応えてリードコマンドを発行し、このリードコマンドに対するレスポンスがエラーであった場合、ホストＩＦ１１４のクロック周波数をパケット受信可能な周波数まで下げる。これにより、ストリーミング中にチューニングを実行する必要が無くなり、ストリーミング中のデータ転送速度の低下を抑制することが可能となる。
【００４６】
なお、本実施形態では、ＣＭＤ５２及びＣＭＤ５３を用いて説明を行ったが、コマンドの種類を限定するものではなく、別のコマンドを用いても構わない。
【００４７】
また、本実施形態では、図４のＳ４０１０及び図５のＳ５０７においてレスポンスにエラーがあった場合、図４のＳ４０１１及び図５のＳ５０８においてクロック周波数をパケット受信可能な周波数まで下げるものとして説明を行った。しかしながら、図４のＳ４０１１及び図５のＳ５０８においては、クロック周波数を下げる代わりに、チューニングを行っても構わない。この場合でも、チューニングの実行頻度はそれほど高くないため、データ転送速度の低下をある程度抑制することができる。
【００４８】
［第３の実施形態］
第１及び第２の実施形態では、通信装置１００がストリーミング送信を行う場合について説明した。これに対し、第３の実施形態では、通信装置１００がストリーミング受信を行う場合について説明する。本実施形態において、通信装置１００の基本的な構成は、第１の実施形態と同様である（図１、図２Ａ、及び図２Ｂ参照）。以下、主に第１の実施形態と異なる点について説明する。
【００４９】
図６は、第３の実施形態に係るストリーミング転送制御について説明するシーケンス図である。図６において、ホストＩＦ１１４が実行する処理は、システム制御部１０４が通信装置１００の各部を制御することにより実現される。ユーザが操作部１０５を操作して、ストリームデータの受信を開始した場合に、図６の処理が行われる。なお、受信されたストリームデータは、ＳＤメモリカード１１３に記録される。
【００５０】
Ｓ６００１で、システム制御部１０４は、ＳＤＣＬＫ制御部１０７を制御して、クロック周波数をＵＨＳ−Ｉにて規定された上限の周波数（所定の周波数）よりも低い周波数（例えば、５０ＭＨｚ）に設定する。クロック周波数が低い場合、ホストＩＦ１１４がスレーブＩＦ１２１から送信されたデータを受信するために要する時間が長くなるが、ホストＩＦ１１４はチューニング無しに正常にパケット受信が可能になる。
【００５１】
Ｓ６００２で、スレーブＩＦ１２１は、ＳＤＩＯ割り込みにてホストＩＦ１１４にパケット送信イベントを通知する。Ｓ６００３で、システム制御部１０４は、ホストＩＦ１１４を制御して、ＣＭＤ５２（Ｒ）を発行する。Ｓ６００４で、システム制御部１０４は、レスポンスを受信する。Ｓ６００５で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５３（Ｒ）を発行する。Ｓ６００６で、システム制御部１０４は、レスポンスを受信する。
【００５２】
本実施形態では、スレーブＩＦ１２１からデータ送信を行う場合、データの種類やサイズを示したヘッダ情報と、動画データなどの実データとを別のパケットに格納して送信する。そのため、Ｓ６００７で、スレーブＩＦ１２１は、ヘッダ情報のパケット送信を開始する。Ｓ６００８で、スレーブＩＦ１２１は、ホストＩＦ１１４にパケットを送信する。Ｓ６００９で、ホストＩＦ１１４は、ヘッダ情報のパケット受信を完了する。
【００５３】
Ｓ６０１０で、システム制御部１０４は、ヘッダ情報を解析し、ヘッダ情報に格納されている、次に送信されるパケットのサイズ（データ量）を検出する。そして、システム制御部１０４は、検出されたサイズに基づき、クロック周波数を上げる必要があるか否かを判定する。クロック周波数を上げる必要があると判定された場合、処理はＳ６０１１に進み、そうでない場合、処理はＳ６０１３に進む。Ｓ６０１０における判定方法の詳細については後述する。
【００５４】
クロック周波数を上げる必要があると判定された場合、Ｓ６０１１で、システム制御部１０４は、ＳＤＣＬＫ制御部１０７を制御して、クロック周波数をＵＨＳ領域の周波数（例えば、１００ＭＨｚ）に上げる。Ｓ６０１２で、システム制御部１０４は、チューニング部１０６を制御してチューニングを実施する。
【００５５】
Ｓ６０１３で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５３（Ｒ）を発行する。Ｓ６０１４で、ホストＩＦ１１４は、レスポンスを受信する。Ｓ６０１５で、スレーブＩＦ１２１は、パケット送信を開始する。Ｓ６０１６で、スレーブＩＦ１２１は、ホストＩＦ１１４にパケットを送信する。Ｓ６０１１においてクロック周波数が上げられ、Ｓ６０１２においてチューニングが行われている場合は、ホストＩＦ１１４は、データ（パケット）を高速に、エラー無く（或いは、少ないエラーで）受信することができる。Ｓ６０１７で、ホストＩＦ１１４は、パケットの受信を完了する。
【００５６】
ストリーミング受信では継続的にパケットを受信し続ける必要があるため、Ｓ６０１７の後、システム制御部１０４は処理をＳ６００２に戻し、上述した制御を繰り返す。また、一度Ｓ６０１１及びＳ６０１２の処理が実行された後に再びＳ６０１０の処理が行われる場合、クロック周波数は既に高くなっているので、Ｓ６００８で受信したヘッダ情報に関わらずクロック周波数を上げる必要は無いと判定される。
【００５７】
次に、Ｓ６０１０における判定方法の詳細について説明する。本実施形態は特定の判定方法に限定される訳ではないが、一例として、システム制御部１０４は、次に送信されるパケットのサイズ（データ量）が閾値以上の場合に、クロック周波数を上げる必要があると判定する。
【００５８】
判定方法の他の例として、システム制御部１０４は、検出されたデータ量と、現在のクロック周波数とに基づいて、現在のクロック周波数でデータを受信するのに要する時間ＴＲｔを求める。更に、システム制御部１０４は、検出されたデータ量と、変更した後のクロック周波数とに基づいて、クロック周波数を高くした場合にデータを受信するのに要する時間ＮＴＲｔを求める。そして、システム制御部１０４は、チューニングに要する時間Ｔｔと、前述のように求めたＴＲｔ及びＮＴＲｔとに基づき、
条件式１：ＮＴＲｔ＋Ｔｔ＜ＴＲｔ
が成り立つか否かを判定することにより、クロック周波数を上げる必要があるか否かを判定する。即ち、システム制御部１０４は、周波数を上げた場合にデータの受信に要する時間とチューニングに要する時間との合計が周波数を上げない場合にデータの受信に要する時間よりも短い場合に、クロック周波数を上げる必要があると判定する。
【００５９】
図７は、図６のシーケンス図に対応する、通信装置１００が実行する制御のフローチャートである。図７の各ステップの処理は、システム制御部１０４が通信装置１００の各部を制御することにより実行される。
【００６０】
Ｓ７０１で、システム制御部１０４は、ＳＤＣＬＫ制御部１０７を制御してＳＤＣＬＫを非ＵＨＳ領域の周波数（例えば、５０ＭＨｚ）に変更する。Ｓ７０２で、システム制御部１０４は、ホストＩＦ１１４を制御してＳＤＩＯ割り込みを待ち受ける。システム制御部１０４は、スレーブＩＦ１２１からのＳＤＩＯ割り込みを検出すると、処理をＳ７０３に進める。Ｓ７０３で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５２（Ｒ）を発行する。Ｓ７０４で、システム制御部１０４は、ホストＩＦ１１４を制御してレスポンスを受信する。Ｓ７０５で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５３（Ｒ）を発行する。Ｓ７０６で、システム制御部１０４は、ホストＩＦ１１４を制御してレスポンスを受信する。Ｓ７０７で、システム制御部１０４は、ホストＩＦ１１４を制御してスレーブＩＦ１２１から送信されたパケットを受信する。このパケットは、ヘッダ情報を含む。
【００６１】
Ｓ７０８で、システム制御部１０４は、Ｓ７０７で受信したヘッダ情報に格納されている、次に送信されるパケットのサイズ（データ量）に基づき、次のパケット受信のためにクロック周波数を上げる必要があるか否かを判定する。クロック周波数を上げる必要があると判定された場合、処理はＳ７０９に進み、そうでない場合、処理はＳ７１１に進む。
【００６２】
Ｓ７０９で、システム制御部１０４は、ＳＤＣＬＫ制御部１０７を制御して、クロック周波数をＵＨＳ領域の周波数（例えば、１００ＭＨｚ）に上げる。Ｓ７１０で、システム制御部１０４は、チューニング部１０６を制御してチューニングを実施する。
【００６３】
Ｓ７１１で、システム制御部１０４は、ホストＩＦ１１４を制御してＣＭＤ５３（Ｒ）を発行する。Ｓ７１２で、システム制御部１０４は、ホストＩＦ１１４を制御してレスポンスを受信する。Ｓ７１３で、システム制御部１０４は、ホストＩＦ１１４を制御してスレーブＩＦ１２１から送信されたパケットを受信する。
【００６４】
その後、システム制御部１０４は処理をＳ７０２に戻し、上述した制御を繰り返す。また、一度Ｓ７０９及びＳ７１０の処理が実行された後に再びＳ７０８の処理が行われる場合、クロック周波数は既に高くなっているので、Ｓ７０７で受信したヘッダ情報に関わらずクロック周波数を上げる必要は無いと判定される。
【００６５】
以上説明したように、第３の実施形態によれば、通信装置１００は、非ＵＨＳ領域のクロックによりストリーミング受信を開始する。通信装置１００は、受信したヘッダ情報に基づいて受信する実データのサイズを判定し、実データのサイズが小さい場合は非ＵＨＳ領域のクロックのままストリーミング受信を継続する。実データのサイズが大きい場合、通信装置１００は、クロック周波数を上げ、チューニングを行い、その後は高いクロック周波数でストリーミング受信を行う。これにより、チューニングの実行頻度を抑制し、ストリーミング中のデータ転送速度の低下を抑制することが可能となる。
【００６６】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６７】
１００…通信装置、１０４…システム制御部、１１４…ホストＩＦ、２５１…クロック源、２５２…ホストコントローラ、２５３…遅延素子、２５４…フリップフロップ、２５５…信号分岐部、２５６…フリップフロップ
【図１】
2015225465.tif 000003
【図２Ａ】
2015225465.tif 000004
【図２Ｂ】
2015225465.tif 000005
【図３】
2015225465.tif 000006
【図４】
2015225465.tif 000007
【図５】
2015225465.tif 000008
【図６】
2015225465.tif 000009
【図７】
2015225465.tif 000010