(57)【要約】【課題】対向の通信装置と正しくデータ転送処理ができるようにする。【解決手段】本発明の一態様としての通信装置は、対向の通信装置と通信する通信装置であって、通信コントローラと、汎用処理部と、データ転送処理部と、起動部とを備える。前記汎用処理部は、前記通信コントローラを介して前記対向の通信装置と通信する。前記データ転送処理部は、前記通信コントローラを介して前記対向の通信装置からデータを受信する。前記起動部は、前記データ転送処理部を起動する。前記汎用処理部が前記対向の通信装置からデータ転送開始要求を受信する。前記起動部は、前記汎用処理部により前記データ転送開始要求が受信された場合に、前記データ転送処理部を起動する。前記汎用処理部または前記データ転送処理部は、前記データ転送処理部が起動された後、前記対向の通信装置にデータ転送開始応答を通知する。【選択図】図１
2014071834.tif 000002
【特許請求の範囲】
【請求項１】
対向の通信装置と通信する通信装置であって、
通信コントローラと、
前記通信コントローラを介して前記対向の通信装置と通信する汎用処理部と、
前記通信コントローラを介して前記対向の通信装置からデータを受信するデータ転送処理部と、
前記データ転送処理部を起動する起動部と、を備え、
前記汎用処理部が前記対向の通信装置からデータ転送開始要求を受信し、
前記起動部は、前記汎用処理部により前記データ転送開始要求が受信された場合に、前記データ転送処理部を起動し、
前記汎用処理部または前記データ転送処理部は、前記データ転送処理部が起動された後、前記対向の通信装置にデータ転送開始応答を通知する
通信装置。
【請求項２】
第1の値および第2の値のいずれかを記憶するモード管理部と、
前記汎用処理部により前記データ転送開始要求が受信された場合に、前記モード管理部に前記第2の値を設定する手段と、
前記モード管理部に前記第1の値が記憶されているときは前記通信コントローラから出力される割り込み信号を前記汎用処理部に転送し、前記第2の値が記憶されているときは前記通信コントローラから出力される割り込み信号を前記データ転送処理部に転送する割り込み先制御部と、
をさらに備え、
前記データ転送処理部は、前記通信コントローラから割り込み信号を受けたとき、前記割り込み信号が所定の割り込み信号のときは前記割り込み信号を処理し、前記所定の割り込み信号以外のときは、前記汎用処理部に、第1の割り込み信号を出力し、
前記汎用処理部は、前記通信コントローラからの割り込み信号を処理する汎用ドライバ部と、前記データ転送処理部から入力される前記第1割り込み信号を処理する代理ドライバ処理部とを含む
請求項1に記載の通信装置。
【請求項３】
前記データ転送処理部は、
前記割り込み信号が前記所定の割り込み信号以外の割り込み信号と判断したときは、前記データ転送を一時停止し、
前記代理ドライバ処理部により前記第1割り込み信号が処理された後、前記データ転送を再開する
請求項2に記載の通信装置。
【請求項４】
前記汎用処理部に対する電源管理部をさらに備え、
前記電源管理部は、前記汎用処理部または前記データ転送処理部により前記データ転送開始応答が送信された後、前記汎用処理部を低消費電力状態にする
請求項1ないし3のいずれか一項に記載の通信装置。
【請求項５】
前記電源管理部は、前記起動部により起動された前記データ転送処理部が前記対向の通信装置からデータ受信を開始した後、前記汎用処理部を前記低消費電力状態にする
請求項4に記載の通信装置。
【請求項６】
前記汎用処理部は、前記データ転送開始要求を前記対向の通信装置に送信し、前記対向の通信装置から前記データ転送開始応答を受信し、
前記起動部は、前記汎用処理部が前記データ転送開始応答を受信したら、前記データ転送処理部を起動し、
起動したデータ転送処理部は、前記対向の通信装置へデータ転送を開始する
請求項1ないし5のいずれか一項に記載の通信装置。
【請求項７】
前記汎用処理部に対する電源管理部をさらに備え、
前記電源管理部は、前記データ転送処理部が起動された後、前記汎用処理部を低消費電力状態にする
請求項6に記載の通信装置。
【請求項８】
前記電源管理部は、前記起動部により起動された前記データ転送処理部が前記データ転送を開始した後、前記汎用処理部を低消費電力状態にする
請求項7に記載の通信装置。
【請求項９】
対向の通信装置と通信するコンピュータに実行させるプログラムであって、
前記対向の通信装置からデータ転送開始要求を受信するステップと、
前記データ転送開始要求が受信された場合に、前記対向の通信装置からデータを受信するためのデータ転送処理部を起動するステップと、
前記データ転送処理部が起動された後、データ転送開始応答を前記対向の通信装置に通知するステップと
を備えたプログラム。
【請求項１０】
通信コントローラから前記データ転送処理部へ入力される割り込み信号が所定の割り込み信号以外の場合に前記データ転送処理部から出力される第1の割り込み信号を処理するステップ
をさらに前記コンピュータに実行させる請求項9に記載のプログラム。
【請求項１１】
前記割り込み信号が前記所定の割り込み信号以外のときに前記データ転送処理部を一時停止させるステップと、
前記第1割り込み信号が処理された後、前記データ転送処理部を再開させるステップと
をさらに前記コンピュータに実行させる請求項10に記載のプログラム。
【請求項１２】
前記データ転送開始応答が前記対向の通信装置に返された後、低消費電力状態に移行するステップ
をさらに前記コンピュータに実行させる請求項9ないし11のいずれか一項に記載のプログラム。
【請求項１３】
前記消費電力状態に移行するステップは、前記データ転送処理部が前記対向の通信装置からデータ受信を開始した後、前記低消費電力状態に移行する
請求項12に記載のプログラム。
【請求項１４】
前記データ転送開始要求を前記対向の通信装置に送信するステップと、
前記対向の通信装置から前記データ転送開始応答を受信するステップと、
前記データ転送開始応答が受信された場合に、前記対向の通信装置へデータ転送を実行する前記データ転送処理部を起動するステップと
をさらに前記コンピュータに実行させる請求項9ないし13のいずれか一項に記載のプログラム。
【請求項１５】
前記データ転送処理部が起動された後、前記低消費電力状態に移行するステップ
をさらに前記コンピュータに実行させる請求項14に記載のプログラム。
【請求項１６】
前記低消費電力状態に移行するステップは、前記データ転送処理部が前記対向の通信装置へデータ転送を開始した後、低消費電力状態にする
請求項15に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置およびプログラムに関する。
【背景技術】
【０００２】
従来の通信装置には、メモリとI／O装置間のデータ転送を専用のハードウェア（DMA制御装置）で処理することで、CPUへの割り込みを削減し、データ転送の高速化するものがあった。ファイル転送等を行う場合、ファイルサイズ（データ量）を指定し、CPU処理から、専用ハードウェアによるデータ転送処理へ切り換える。専用ハードウェアは、CPUに代わって、指定されたデータ量のデータ転送処理を実行する。
【０００３】
しかし、専用ハードウェアへの切り替えのタイミングによっては、専用ハードウェアが処理するべきパケットを誤ってCPUが処理してしまうという問題がある。例えば、送信端末のCPUが、制御パケットを用いてファイルサイズを受信端末のCPUへ通知し、専用ハードウェアを用いてファイル転送を開始する。このとき、受信端末がCPUから専用ハードウェアに切り替わる前に、送信側端末からファイル転送が開始されてしまうと、受信端末で切り替えが完了する前に受信されたパケットが、CPUで誤って処理されてしまう。仮に送信端末から10パケットのデータが送信され、最初の2パケットのデータが受信端末での切り換え完了前に受信されてCPUが処理した場合、専用ハードウェアは切り換え完了後に受信される8パケットしかデータを受信できない。専用ハードウェアでは、残り2パケットの受信を待ち続けるという状態が発生する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2006−119982公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、従来技術には、CPUと専用のハードウェアを切り替えながらデータ転送を処理しようとすると、専用ハードウェアによるデータ転送の開始および終了のタイミングによっては専用のハードウェアで処理するべきパケットを誤ってCPUで処理してしまうという問題がある。
【０００６】
本発明の一側面は、対向の通信装置と正しくデータ転送処理ができるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様としての通信装置は、対向の通信装置と通信する通信装置であって、
通信コントローラと、汎用処理部と、データ転送処理部と、起動部とを備える。
【０００８】
前記汎用処理部は、前記通信コントローラを介して前記対向の通信装置と通信する。
【０００９】
前記データ転送処理部は、前記通信コントローラを介して前記対向の通信装置からデータを受信する。
【００１０】
前記起動部は、前記データ転送処理部を起動する。
【００１１】
前記汎用処理部が前記対向の通信装置からデータ転送開始要求を受信する。
【００１２】
前記起動部は、前記汎用処理部により前記データ転送開始要求が受信された場合に、前記データ転送処理部を起動する。
【００１３】
前記汎用処理部または前記データ転送処理部は、前記データ転送処理部が起動された後、前記対向の通信装置にデータ転送開始応答を通知する。
【図面の簡単な説明】
【００１４】
【図１】第1の実施形態に係わる通信装置を示すブロック図である。
【図２】第1の実施形態に係わる送信端末および受信端末の動作を示すシーケンス図である。
【図３】第2の実施形態に係わる通信装置を示すブロック図である。
【図４】第2の実施形態に係わる送信端末および受信端末の動作を示すシーケンス図である。
【図５】第3の実施形態に係わる通信装置を示すブロック図である。
【図６】第3の実施形態に係わる送信端末および受信端末の動作を示すシーケンス図である。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１６】
（第1の実施形態）
本実施形態は、専用ハードウェアである高速転送処理部の起動および終了するタイミングを、対向の通信装置との制御パケットの送受信を用いて制御することで、送信側は受信側の専用ハードウェアの起動を担保させたうえで、データ転送を開始することを特徴とする。以下、本実施の形態について詳細に説明する。
【００１７】
図1は、第1の実施形態に係わる通信装置を示すブロック図である。送信端末と、受信端末との2つの通信装置が示される。
【００１８】
送信端末は、通信コントローラ11、記憶メディアコントローラ12、汎用処理部13、高速転送処理部14、通信モード管理部15、高速送信処理起動部16、高速送信処理終了部17を備えている。
【００１９】
また、受信端末は、通信コントローラ31、記憶メディアコントローラ32、汎用処理部33、高速転送処理部34、通信モード管理部35、高速受信処理起動部36、高速受信処理終了部37を備えている。
【００２０】
汎用処理部13、33は、CPUとメモリなどから構成され、ソフトウェアにより汎用的な処理を実行するものである。
【００２１】
高速転送処理部14、34は、データ転送に関わる処理を行う。高速転送処理部14、34は、一部または全部がハードウェア化され、汎用処理部でデータ転送処理するよりも高速なデータ転送が可能である。高速転送処理部14、34は、たとえばDMA制御装置である。
【００２２】
通信モード管理部15，35は、第1の通信モードおよび第2の通信モードのいずれかを示す値を記憶する。第1の通信モードを示す値は第1の値、第2の通信モードを示す値は第2の値に対応する。第1の通信モードを示す値および第2の通信モードを示す値は、通信コントローラ11、31および記憶メディアコントローラ12、32が、自身による割り込み信号の出力先を制御するのに用いることができる。たとえば、第1の通信モードを示す値が記憶されているときは、汎用処理部13、33に、第2の通信モードを示す値を記憶されているときは高速転送処理部14、34に、割り込み信号を出力する。ただし、割り込み信号の出力制御は、本実施形態の本質ではなく、主に後述する第2の実施形態で取り扱うため、ここでの詳細な説明は省略する。
【００２３】
受信端末の高速受信処理起動部36は、対向の通信装置（送信端末）からデータ転送開始要求が受信された場合、高速転送処理部34を起動する。
【００２４】
送信端末の高速送信処理起動部16は、対向の通信装置（受信端末）からデータ転送開始応答が受信された場合に、高速転送処理部14を起動する。
【００２５】
受信端末の高速受信処理終了部37は、対向の通信装置（送信端末）からデータ転送要求で通知されたデータ量のデータを受信完了した場合に、高速転送処理部34を終了する。
【００２６】
送信端末の高速送信処理終了部17は、対向の通信装置（受信端末）から送信されたデータ転送終了要求が受信された場合に、高速転送処理部14を終了する。
【００２７】
通信モード管理部15は、高速送信処理起動部16、高速転送処理部14、汎用処理部13および高速送信処理終了部17により値を書き込み可能である。通信モード管理部35は、高速受信処理起動部36、高速転送処理部34、汎用処理部33および高速受信処理終了部37により値を書き込み可能である。
【００２８】
上述した送信端末の高速送信処理起動部16および高速送信処理終了部17は汎用処理部13で実行されるソフトウェアとして実現されてもよいし、バスに接続されたハードウェアにより実現されても良い。本実施形態では、これらの要素は、汎用処理部13で実行されるソフトウェアにより実現される場合を想定する。転送モード管理部15は、汎用処理部13でソフトウェアにより実現されてもよいし、バスに接続されたハードウェアにより実現されてもよい。
【００２９】
同様に、受信端末の高速受信処理起動部36および高速受信処理終了部37は、汎用処理部33で実行されるソフトウェアとして実現されてもよいし、バスに接続されたハードウェアにより実現されても良い。本実施形態では、これらの要素は、汎用処理部33で実行されるソフトウェアにより実現される場合を想定する。転送モード管理部35は、汎用処理部33でソフトウェアにより実現されてもよいし、バスに接続されたハードウェアにより実現されてもよい。
【００３０】
送信端末の記憶メディアコントローラ12は、図示しない記憶メディア（たとえばNANDフラッシュメモリなどのメモリ装置、ハードディスク等）へのアクセス（読み出し/書き込み）を制御する。汎用処理部13および高速転送処理部14が、記憶メディアコントローラ12を制御して、記憶メディアへのデータの読み書きを行う。
【００３１】
同様に、受信端末の記憶メディアコントローラ32は、図示しない記憶メディアへのアクセスを制御する。汎用処理部33および高速転送処理部34が、記憶メディアコントローラ32を制御して、記憶メディアへのデータの読み書きを行う。
【００３２】
送信端末の通信コントローラ11は、有線通信または無線通信用の通信コントローラである。たとえば通信コントローラ11はイーサーネットやIEEE802.11a/b/gや、ブルートゥースなどの通信コントローラである。本実施形態の例では、通信コントローラ11は、アンテナ18を用いて対向の通信装置とパケットのデータを送受信する。汎用処理部13および高速転送処理部14が、通信メディアコントローラ11を制御して、対向の通信装置（受信端末）の汎用処理部33および高速転送処理部34とデータ転送を行う。
【００３３】
受信端末の通信コントローラ31は、有線通信または無線通信用の通信コントローラである。たとえば通信コントローラ31はイーサーネットやIEEE802.11a/b/gや、ブルートゥースなどの通信コントローラである。本実施形態の例では、アンテナ38を用いて対向の通信装置（送信端末）とパケットのデータを送受信する。汎用処理部33および高速転送処理部34が、通信メディアコントローラ31を制御して、対向の通信装置の汎用処理部13および高速転送処理部14とデータ転送を行う。
【００３４】
上述した送信端末内の各要素はバスを介して相互接続されている。また上述した受信端末内の各要素はバスを介して相互接続されている。バスは、一段構成でもよいし、複数段により構成されてもよい。
【００３５】
次に図1および図2を用いて、第1の実施形態に係わる送信端末および受信端末の動作について説明する。図2は、第1の実施形態に係わる送信端末および受信端末の動作を示すシーケンス図である。以下の説明では、通信プロトコルにOBEXプロトコルを例にして説明を行う。
【００３６】
まず、送信端末の動作について説明する。通信モード管理部15には、初期値として、第1の通信モードを示す値が記憶されているとする。
【００３７】
まず、送信端末の汎用処理部13は、受信端末へ高速転送開始要求を送信する（S101）。高速転送開始要求は、データ転送により転送しようとするデータ量を含んでおり、例えばOBEXプロトコルのLengthヘッダを含んだPUT Requestパケットなどである。なお、データ量は必ずしも高速転送開始要求に含まれている必要はなく、高速転送開始要求の前に通知し合っていれば良い
次に、送信端末の汎用処理部13は、高速転送処理部14に対して、データ転送に必要な情報の設定を行う（S102）。設定する情報は、例えば送信/受信の方向や、転送するデータのサイズ（データ量）、記憶メディアの格納位置等である。
【００３８】
次に、汎用処理部13により高速転送処理部14への情報の設定が完了し、かつ、受信端末からの高速転送開始応答が受信（S203）されると、送信端末の高速送信処理起動部16は、通信モード管理部15に第2の通信モードを示す値を設定し、高速転送処理部14を起動する（S103）。ここで高速転送開始応答は、例えばOBEXプロトコルのPut Responseパケットなどである。通信モード管理部15への値の設定は、汎用処理部13等、別の処理部が行ってよい。
【００３９】
次に、起動された高速転送処理部14は、データ送信を開始する（S104）。高速転送処理部14は、通信プロトコルのヘッダ解析/生成や、通信コントローラ11の制御、記憶メディアコントローラ12の制御等を、汎用処理部13を介することなく実行する。例えば、記憶メディアコントローラ12から送信するデータを読み出し、OBEX PutパケットのBody ヘッダにデータを格納し、通信コントローラ11にデータを書き込むという一連の処理を行う。
【００４０】
次に、送信端末の高速送信処理終了部17は、受信端末からの高速転送終了要求の受信（S205）を契機に、高速転送処理部14を停止する（S105）。そして、高速送信処理終了部17は、通信モード管理部15に第1の通信モードを示す値を設定する。この後、汎用処理部13は、受信端末へ高速転送終了応答を送信する（S106）。汎用処理部13の代わりに、高速転送処理部14が高速転送終了応答を送信してもよい。通信モード管理部15への値の設定は、汎用処理部13等、別の処理部が行っても良い。
【００４１】
なお、通信コントローラ11は、受信端末からの高速転送処理開始応答（S203）の受信に応じて、高速転送処理部14または汎用処理部13の指示により、割り込み先を高速転送処理部14に切り換えてもよい。この場合、パケットが受信されたら、通信コントローラ11は、高速転送処理部14に割り込み信号を出力する。また、高速転送終了要求（S205）の受信に応じて、汎用処理部13または高速転送処理部14の指示により、割り込み先を汎用処理部13に切り換えてもよい。
【００４２】
あるいは、通信モード管理部15を参照し、第2の通信モードを示す値が設定されているときは高速転送処理部14に割り込み信号を出力し、第1の通信モードを示す値が設定されているときは、汎用処理部13に割り込み信号を出力するように、通信コントローラ11を構成してもよい。記憶メディアコントローラ12についても、第2の通信モードを示す値が設定されているときは、高速転送処理部14に割り込み信号を出力し、第1の通信モードを示す値が設定されているときは、汎用処理部13に割り込み信号を出力するように構成してもよい。受信側についても、上記と同様の説明が成り立つ。このように通信モード管理部15は、割り込み信号の出力先を制御するのに用いられることができる。受信端末側の転送モード管理部35についても同様である。
【００４３】
以上が、送信端末の動作である。
【００４４】
次に受信端末の動作について説明する。通信モード管理部35には、初期値として第1の通信モードを示す値が設定されているとする。
【００４５】
まず受信端末の汎用処理部33は、送信端末から高速転送開始要求が受信（S101）された場合、高速転送処理部34に対してデータ転送に必要な情報の設定を設定する（S201）。高速受信処理起動部36は、通信モード管理部35に第2の通信モードを示す値を設定し、高速転送処理部34を起動する（S202）。起動した高速転送処理部34は、高速転送開始応答を送信する（S203）。高速転送処理部34の代わりに、汎用処理部33または高速受信処理起動部36が高速転送開始応答を送信してもよい。通信モード管理部35への値の設定は、汎用処理部33等、別の処理部が行っても良い。ステップS202で起動されることで、高速転送処理部34は、送信端末からのデータを受信可能な状態になる。
【００４６】
なお、通信モード管理部35への値の設定は、高速転送処理部34を起動した後に行ってもよい。この場合、高速転送処理部34は、通信モード管理部35に第2の通信モードを示す値が設定されているのを確認した後に、高速転送開始応答を送信してもよいし、高速転送開始応答を送信直後に、通信モード管理部35に第2の通信モードを示す値を設定してもよい。
【００４７】
次に、受信端末の高速転送処理部34は、送信端末の高速転送処理部14から転送されてくるデータの受信を開始する（S104）。高速転送処理部34は、通信プロトコルのヘッダ解析/生成や、通信コントローラ31の制御、記憶メディアコントローラ32の制御等を、汎用処理部33を介することなく実行する。例えば、通信コントローラ31から受信したデータを読み出し、OBEX Putパケットを解析し、パケットが正しければBody ヘッダに格納されているデータを記憶メディアコントローラ32に書き込むという一連の処理を行う。
【００４８】
ここで、通信コントローラ31は、送信装置からデータが受信されたときの割り込み先を、高速転送処理部34または汎用処理部33の指示により、事前に高速転送処理部34に切り換えても良い。このとき、通信コントローラ31は、データが受信されたら、高速転送処理部34に割り込み信号を出力する。また、データ転送の終了または高速転送処理部34の終了に応じて、高速転送処理部34または汎用処理部33の指示により、割り込み先を汎用処理部33に切り換えてもよい。
【００４９】
あるいは、通信モード管理部35を参照し、第2の通信モードを示す値が設定されているときは高速転送処理部34に割り込み信号を出力し、第1の通信モードを示す値が設定されているときは汎用処理部33に割り込み信号を出力するように構成してもよい。記憶メディアコントローラ32についても第2の通信モードを示す値が設定されているときは高速転送処理部34に割り込み信号を出力し、第1の通信モードを示す値が設定されているときは汎用処理部33に割り込み信号を出力するように構成してもよい。
【００５０】
次に、受信端末の高速受信処理終了部37は、高速転送開始要求で通知されたデータ量のデータ受信を完了したら、高速転送処理部34を終了する（S204）。高速受信処理終了部37は、通信モード管理部35に第1の通信モードを示す値を設定し、高速転送終了要求を送信する（S205）。通信モード管理部35への値の設定は、汎用処理部33等、別の処理部が行っても良い。
【００５１】
以上が、受信端末の動作である。
【００５２】
以上、第1の実施形態によれば、受信端末は高速転送処理部を起動した後に高速転送開始応答を送信するようにしたことにより、受信側で高速転送処理部への切り替え前に、送信側からデータ転送が開始されるのを阻止できる。
【００５３】
また、送信側は、受信端末から高速転送開始応答を受信した後で高速転送処理部を起動するようにしたことにより、受信側で高速転送処理部への切り替えが完了する前にデータ転送を開始するのを阻止できる。
【００５４】
このようにして、本実施形態では、起動および終了するタイミングを、対向の通信装置からの制御パケット（高速転送開始要求、高速転送開始応答、高速転送終了要求、高速転送終了応答等）の送受信を用いて、対向の通信装置との間で同期する。これにより、データ転送を破綻させることなく、汎用処理部による通信と、高速転送処理部によるデータ転送との混在が可能なる。
【００５５】
（第2の実施形態）
まず、本実施形態の技術的背景について説明する。
【００５６】
汎用処理部または高速転送処理部が、記憶メディアコントローラや通信コントローラを制御する場合、各コントローラが持つインタフェースにアクセスして制御情報を通知する。コントローラは通知された制御情報をもとに処理を行い、処理が完了（正常完了、異常完了）したことを、割り込み信号によって汎用処理部または高速転送処理部に通知する。
【００５７】
高速転送処理部および汎用処理部の処理を切り替える場合、各コントローラの割り込み信号の出力先も、処理を行っている側へ切り替えることで、制御情報を設定した側が割り込み信号を受けることができる。これにより、正しくコントローラを制御することが可能となる。
【００５８】
しかしながら、第1の実施形態のように、高速転送処理部を起動した後に汎用処理部、より詳細には汎用処理部の汎用ドライバ、を用いて制御パケットを送信する場合（たとえば図2のS202、S203）、割り込み信号の出力先は既に高速転送処理部に向いており、汎用ドライバは制御パケットの送信完了割り込み信号を通信コントローラから受けることができない可能性がある。この場合、通信コントローラからの割り込み処理が実行されないことになる。
【００５９】
そこで、本第2の実施形態では、高速転送処理部の動作時において、汎用処理部の汎用ドライバが各コントローラの制御を行った時に、各コントローラからの割り込み処理を正しく行うことができるようにする。
【００６０】
以下、本実施形態について詳細に説明する。
【００６１】
図3は、第2の実施形態に係わる通信装置を示すブロック図である。通信装置として、送信端末と受信端末が示される。図1と同一または対応する要素には同一の符号を付して、重複する説明を省略する。
【００６２】
送信端末は、第1の実施形態で示した要素に加え、割り込み先制御部21、汎用ドライバ部22、代理ドライバ処理部23を備えている。汎用ドライバ部22および代理ドライバ処理部22は汎用処理部13内に備えられている。
【００６３】
受信端末は、第1の実施形態で示した要素に加え、割り込み先制御部41、汎用ドライバ部42、代理ドライバ処理部43を備えている。汎用ドライバ部42および代理ドライバ処理部42は汎用処理部33内に備えられている。
【００６４】
割り込み先制御部21、41は、通信コントローラ11、31および記憶メディアコントローラ12、32からの割り込み信号を受け、第1の通信モード時には汎用処理部13、33に当該割り込み信号を出力し、第2の通信モード時には高速転送処理部14、34に当該割り込み信号を出力する。
【００６５】
高速転送処理部14、34は、割り込み先制御部21，41からの割り込み信号が、所定の割り込み信号のときは当該割り込み信号を処理する。また、高速転送処理部14、34は、当該割り込み信号が、例外的な要因の割り込み信号（所定の割り込み信号以外の割り込み信号）である場合は、汎用処理部13、33に、高速起動処理部14、34の割り込み要因としての割り込み信号（第1割り込み信号）を出力する。高速転送処理部14、34ではなく汎用処理部13、33で処理を行うべき事象が発生した場合も同様に、汎用処理部13、33に割り込み信号を出力する。
【００６６】
汎用ドライバ部22，42は、通信コントローラ11、31および記憶メディアコントローラ12、32を制御するためのデバイスドライバである。通信コントローラ11、31および記憶メディアコントローラ12、32の制御や、通信コントローラ11、31および記憶メディアコントローラ12，33からの割り込み信号を受け、割り込みの要因に対応する処理を行う。
【００６７】
代理ドライバ処理部23、43は、第2の通信モード時に高速起動処理部14、34から入力される割り込み信号を受け、この割り込み信号を処理することで、通信コントローラ11，31および記憶メディアコントローラ12、32の割り込み処理を行う。すなわち、代理ドライバ処理部は、汎用ドライバ部が本来行うべきコントローラからの割り込み処理を代理で行う。
【００６８】
次に図3および図4を用いて、第2の実施形態に係わる通信装置の動作について説明する。図4は、第2の実施形態に係わる送信端末および受信端末の動作を示すシーケンス図である。第1の実施形態と同一の動作については重複する説明を簡略化または省略する。
【００６９】
送信端末の汎用処理部13が、通信コントローラ11を介して高速転送開始要求を送信する（S301、S302）。通信コントローラ11は、送信完了の割り込み信号を割り込み先制御部21に出力し、割り込み先制御部21は、通信モード管理部15に第1の通信モードを示す値が記憶されていることから、当該割り込み信号を汎用処理部13に出力する（S303）。
【００７０】
送信端末の汎用処理部13は、高速転送処理部14に対してデータ転送に必要な情報の設定を行う（S304）。
【００７１】
次に、汎用処理部13は、受信端末からの高速転送開始応答を受信する（S306）。より具体的には、通信コントローラ11で高速転送開始応答が受信（S407）されると、通信コントローラ11は割り込み信号を割り込み先制御部21に出力する。割り込み先制御部21は、通信モード管理部15に第1の通信モードを示す値が記憶されていることから、通信コントローラ11からの割り込み信号を汎用処理部13に出力する（S305）。割り込み信号を受けた汎用処理部13は、通信コントローラ11にアクセスして高速転送開始応答を取得する（S306）。
【００７２】
送信端末の高速送信処理起動部16は、通信モード管理部15に第2の通信モードを示す値を設定し（S307）、高速転送処理部14を起動する（S308）。起動した高速転送処理部14は、データ転送を開始する（S309）。
【００７３】
一方、受信端末では、汎用処理部33が、高速転送開始要求を受信する（S402）。より詳細には、通信コントローラ31が、高速転送開始要求の受信の割り込み信号を出力し、割り込み先制御部21は、通信モード管理部35に第1の通信モードを示す値が記憶されていることから、当該割り込み信号を汎用処理部33に出力する（S401）。汎用処理部33は通信コントローラ31にアクセスして、高速転送開始要求を取得する（S402）。
【００７４】
受信端末の汎用処理部33は、高速転送処理部34に対してデータ転送に必要な情報の設定を設定する（S403）。高速受信処理起動部36は、通信モード管理部35に第2の通信モードを示す値を設定し（S404）、高速転送処理部34を起動する（S405）。転送モード管理部35に第2の通信モードを示す値が設定されたことを契機に、割り込み先制御部41は、通信コントローラ31と記憶メディアコントローラ32の割り込み信号を、高速転送処理部34へ出力するようになる。
【００７５】
高速転送処理部34が起動されると、汎用処理部33は、汎用ドライバ部42を用いて、高速転送開始応答を送信する（S406、S407）。高速転送開始応答の送信を完了すると、通信コントローラは、送信完了の割り込み信号を割り込み先制御部41に出力する。割り込み先制御部41は、通信モード管理部35に第2の通信モードを示す値が記憶されていることから、当該割り込み信号を高速転送処理部34へ通知する（S408）。
【００７６】
高速転送処理部34は、通知された割り込み信号が自身で処理しない例外的な要因の割り込みであると判断し（S409）、高速転送処理部34の動作を一時停止する（S410）。そして、高速転送処理部34は、高速転送処理部34の割り込み要因としての割り込み信号を汎用処理部33へ通知する（S411）。
【００７７】
汎用処理部33の代理ドライバ処理部43は、通知された割り込みの信号の要因が、汎用ドライバ部42による高速転送開始応答の送信完了割り込みであると判断し、汎用ドライバ部42の代理で、当該割り込み（送信完了の割り込み）を処理する（S412）。
【００７８】
次に、代理ドライバ処理部43は、高速転送処理部34へ、データ転送の再開要求を通知する（S413）。再開要求を受けて、高速転送処理部34は、データ転送を再開する（S414）。
【００７９】
なお、図4に示した例では、データ転送（S309）が、データ転送の再開（S414）の後に配置されているが上記データ転送が、受信端末のステップS410の処理（一時停止処理）よりも前に開始される場合も当然にあり得る。
【００８０】
以上が、第2の実施例の動作である。
【００８１】
上記の説明では、高速転送処理部34の例外的な割り込み要因として、高速転送開始応答の送信完了割り込みの例を示したが、高速転送処理部34が処理しない、他の例外的なパケットの送受信や、通信コントローラ31や記憶メディアコントローラ32の異常状態通知等に関しても同様にして代理ドライバ処理部43で処理される。
【００８２】
以上、第2の実施形態によれば、高速転送処理部の動作時に汎用ドライバで各コントローラの制御を行った時の割り込み処理を代理ドライバ処理部で実行することにより、各コントローラから汎用ドライバへの割り込みを、高速転送処理部の動作時でも正しく処理できる。
【００８３】
（第3の実施形態）
まず本実施形態の技術的背景について説明する。
【００８４】
高速転送処理部によるデータ転送処理中は、汎用処理部はスリープすることで低消費電力化を図ることが可能である。しかしながら、従来技術では汎用処理部はどのタイミングで高速転送処理部がデータ転送を開始したかを知る術はなく、適宜スリープに入ることができない。
【００８５】
例えば、汎用処理部が高速転送処理部を起動してスリープへ入ったとしても、高速転処理部がすぐに例外的な事象に遭遇してしまった場合には、汎用処理部はウェイクアップさせられることになり、時間的にも電力的にもスリープが無駄になってしまう。
【００８６】
送信端末においては、高速転送処理部による記憶メディアコントローラからのデータ読み出し、あるいは、書き込みが成功し、OBEXによるデータ転送が開始されたことを確認するまでは、汎用処理部は真に寝られる状態を確認できたとは言えず、スリープに入らないほうがよいともいえる。
【００８７】
以上に基づき、第3の実施形態では、汎用処理部を適時にスリープさせる方法を提案する。
【００８８】
図5は、第3の実施形態に係わる通信装置を示すブロック図である。通信装置として、送信端末と、受信端末が示される。
【００８９】
送信端末および受信端末は、図1に示したブロックに加え、PMU（Power Management Unit：電源管理部）27、47、高速転送開通判定部25、45、およびスリープ判定部26、46を備えている。高速転送開通判定部25、45、およびスリープ判定部26、46は、汎用処理部13、33により実行されるソフトウェアにより実現されてもよいし、ハードウェアにより実現されてもよい。本実施形態では、高速転送開通判定部25、45およびスリープ判定部26、46は、汎用処理部13、33により実行されるソフトウェアにより実現される場合を想定する。
【００９０】
PMU27、47は、汎用処理部（CPU+RAM）13、33の省電力制御を行う。
【００９１】
高速転送開通判定部25、45は、高速転送処理部14、34のデータ転送におけるデータパスが開通したかの判定を行う。詳細は後述する。
【００９２】
スリープ判定部26、46は、PMU27、47からのスリープ要求、および高速転送開通判定部26、46からのデータパス開通通知を受けた場合に、汎用処理部13、33をスリープ状態にして良いと判断し、スリープ応答をPMU27、47へ発行する。スリープ応答を受けたPMU27、47は、汎用処理部13，33をスリープ状態にする。スリープ状態は、スリープ前よりも消費電力が低い任意の状態を含む。たとえば汎用処理部のすべての部分への電源供給を停止してもよいし、回路の一部のみ電源を供給した状態でもよい。汎用処理部だけでなく、PMU自身もスリープ状態に移行してもよい。
【００９３】
次に図5および図6を用いて、第3の実施形態に係わる通信装置の動作について説明する。図6は、第3の実施形態に係わる送信端末および受信端末の動作を示すシーケンス図である。
【００９４】
まず送信端末の動作について説明する。データ転送に関わる基本的な動作については第1の実施形態と同様であり、重複する説明は簡略化または省略する。
【００９５】
まず、送信端末の汎用処理部13は、PMU27に対してスリープに必要な設定を行い（S501）、PMUにスリープ通知を発行する（S502）。必要な設定としては、たとえばスリープ時の起動条件や、タイマー設定等がある。
【００９６】
汎用処理部13は、受信端末へ高速転送開始要求を送信する（S503）。
【００９７】
汎用処理部13は、高速転送処理部14に対してデータ転送に必要な情報の設定を行う（S504）。
【００９８】
送信端末のPMU27は、上記のスリープ通知を受けると、スリープ判定部46にスリープ要求を発行する（S505）。なおスリープ要求の発行は、高速転送処理部設定（S504）の前でもかまわない。
【００９９】
この後、受信端末からの高速転送開始応答が受信（S607）されると、送信端末の高速送信処理起動部16は、通信モード管理部15に第2の通信モードを示す値を設定し（S506）、高速転送処理部14を起動する（S507）。
【０１００】
次に、送信端末の高速転送開通判定部25は、通信モード管理部15に第2の通信モードを示す値が設定されたことで、あるいは高速転送処理部14が起動したことで、あるいは高速転送開始応答が受信されたことで、データパスが開通したと検知し、それをスリープ判定部26へ通知する。なお、データパスの開通検知は、後述するように別の方法を用いることも可能である。
【０１０１】
次に、送信端末のスリープ判定部26は、PMU27からスリープ要求が発行されており、かつ、高速転送開通判定部25からのデータパス開通通知を受けている場合、汎用処理部13をスリープ状態にしてよいと判断する。スリープ判定部26は、PMU27に対してスリープ応答を発行する（S508）。
【０１０２】
送信端末のPMU27は、スリープ応答を受け、電源ドメインの制御や汎用処理部13の状態保存を行って、汎用処理部13および自身をスリープ状態に遷移させる（S509）。
【０１０３】
また、高速送信処理起動部16によって起動された高速転送処理部14は、データ送信を開始する（S501）。
【０１０４】
以上が、送信端末の動作である。
【０１０５】
次に、受信端末の動作について説明する。
【０１０６】
まず、受信端末の汎用処理部33は、送信端末から送信された高速転送開始要求（S503）を受けた後、PMU47に対してスリープに必要な設定を行い（S601）、PMU47にスリープ通知を発行する（S602）。
【０１０７】
受信端末のPMU47は、スリープ通知を受けて、スリープ判定部46にスリープ要求を発行する（S603）。
【０１０８】
また、受信端末の汎用処理部33は、上記の高速送信開始要求が受信された場合、高速転送処理部34に対してデータ転送に必要な情報の設定を設定する（S604）。高速受信処理起動部36は、通信モード管理部35に第2の通信モードを示す値を設定し（S605）、高速転送処理部34を起動する（S606）。
【０１０９】
起動した高速転送処理部34は、高速転送開始応答を送信端末に送信する（S607）。
【０１１０】
受信端末の高速転送開通判定部45は、通信モード管理部35に第2の通信モードを示す値が設定されたことで、あるいは高速転送処理部34が起動したことで、データパスが開通したと検知し、それをスリープ判定部46へ通知する。なお、データパスの開通検知は、後述するように別の方法を用いることも可能である。
【０１１１】
スリープ判定部46は、PMU47からスリープ要求が発行されており、かつ、高速転送開通判定部45からのデータパス開通通知を受けていた場合、汎用処理部33をスリープ状態に移行してよいと判断し、PMU47に対してスリープ応答を発行する（S608）。
【０１１２】
PMU47は、スリープ応答を受け、電源ドメインの制御や汎用処理部の状態保存を行って、汎用処理部33および自身をスリープ状態に遷移させる（S609）。
【０１１３】
以上が、受信端末の動作である。
【０１１４】
ここで、データパスの開通条件として、上記以外の例を示す。例えば受信側では、第2の実施形態の代理ドライバ処理部（図4参照）による高速転送応答の送信完了割り込み処理を完了したことを契機としても良い。また、第2の通信モード時に高速転送処理部が、自身で処理するパケット、例えばOBEXパケットを想定した場合はBody ヘッダのみで構成されているパケット、を受信したことを契機としてもよい。また、送信側では、高速転送処理部からデータ送信が開始されたことを契機としてもよい。
【０１１５】
なお、第1〜第3実施形態における通信装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、通信モード管理部、高速送信処理起動部、高速受信処理起動部、高速送信処理終了部、高速受信処理終了部、汎用処理部、汎用ドライバ部、代理ドライバ処理部、スリープ判定部、高速受信開通判定部、高速送信開通判定部、およびPMUは、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、通信装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
【図１】
2014071834.tif 000003
【図２】
2014071834.tif 000004
【図３】
2014071834.tif 000005
【図４】
2014071834.tif 000006
【図５】
2014071834.tif 000007
【図６】
2014071834.tif 000008