(57)【要約】【課題】ホスト装置として動作する電子機器と外部装置との間の電気的な接続が切断された原因を判定できるようにする。【解決手段】ユーザの意図しない事象により、ホスト装置と外部装置との電気的な接続が切断された場合と、ユーザが意図して手動により、ホスト装置と外部装置との接続を切断した場合とを区別できるようにするために、外部装置との切断検出時刻から再接続検出時刻までの時間が所定時間以内の場合、ユーザの意図しない事象により接続が切断されたと判定し、再接続の後に切断前の動作を継続するようにする。【選択図】図１
2013142937.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と接続するためのインターフェース手段と、
前記インターフェース手段と外部装置とが接続されたこと、及び切断されたこととを検出する検出手段と、
前記外部装置と接続後に切断前の動作を継続するか否かを判定する判定手段とを備え、
前記判定手段は、前記検出手段による切断検出時刻から再接続検出時刻までの時間が所定時間以内の場合、再接続の後に切断前の動作を継続することを特徴とする電子機器。
【請求項２】
前記所定時間は、あらかじめ外部装置ごとに決められた時間を用いることを特徴とする請求項１に記載の電子機器。
【請求項３】
前記インターフェース手段はＵＳＢであり、
前記ＵＳＢの切り替え手段を備え、
前記所定時間は、外部装置との接続時にＵＳＢプロトコルに定められたＳＯＦ区間分だけ前記切り替え手段を切り替えることによる切断検出時刻から接続検出時刻までの時間を基に決めることを特徴とする請求項１に記載の電子機器。
【請求項４】
前記判定手段は、接続された外部装置の固有情報を記憶し、切断された外部装置と再接続された外部装置が同一の固有情報を有する場合、再接続の後に切断前の動作を継続することを特徴とする請求項１から３のいずれか１項に記載の電子機器。
【請求項５】
外部装置と接続中の動作状態を管理する動作状態管理手段を備え、
前記判定手段は、前記検出手段による切断検出時刻から再接続検出時刻までの時間が所定時間以内の場合、再接続の後に切断前の動作状態から動作を継続することを特徴とする請求項１から４のいずれか１項に記載の電子機器。
【請求項６】
外部装置と接続するためのインターフェースステップと、
前記インターフェースステップと外部装置とが接続されたこと、及び切断されたこととを検出する検出ステップと、
前記外部装置と接続後に切断前の動作を継続するか否かを判定する判定ステップとを有し、
前記判定ステップは、前記検出ステップによる切断検出時刻から再接続検出時刻までの時間が所定時間以内の場合、再接続の後に切断前の動作を継続することを特徴とする制御方法。
【請求項７】
外部装置と接続するためのインターフェースステップと、
前記インターフェースステップと外部装置とが接続されたこと、及び切断されたこととを検出する検出ステップと、
前記外部装置と接続後に切断前の動作を継続するか否かを判定する判定ステップとをコンピュータに実行させるためのプログラムであって、
前記判定ステップは、前記検出ステップによる切断検出時刻から再接続検出時刻までの時間が所定時間以内の場合、再接続の後に切断前の動作を継続するようコンピュータを制御することを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項９】
請求項１から５のいずれか１項に記載の電子機器としてコンピュータを機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置などの電子機器及びその制御方法に関する。
【背景技術】
【０００２】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠したデバイスであるＵＳＢデバイスと、ＵＳＢホストとは、ＵＳＢケーブルを介して接続される。ＵＳＢデバイスとＵＳＢホストとがＵＳＢケーブルを介して接続されている場合に、静電気などが原因でＵＳＢデバイスとＵＳＢホストとの間の電気的な接続が切断されることがある。
【０００３】
特許文献１には、静電気などが原因でＵＳＢデバイスとＵＳＢホストとの間の電気的な接続が切断された場合であっても、当該電気的な接続が切断される前の接続状態に基づいて外部装置にアクセスすることができるＵＳＢホストが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−８４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＵＳＢホストなどのホスト装置とＵＳＢデバイスなどの外部装置との間の電気的な接続が切断された原因がユーザの意図しない事象である場合には、当該電気的な接続が切断される前の接続状態に基づいて再接続処理を行う方がよい可能性が高い。その一方で、ホスト装置と外部装置との間の電気的な接続が切断された原因がユーザの手動操作である場合には、当該電気的な接続が切断される前の接続状態に基づいて再接続処理を行わない方がよい可能性が高い。
【０００６】
しかしながら、特許文献１には、ホスト装置と外部装置との間の電気的な接続が切断された原因をどのようにして判定するかまでは記載されていない。また、特許文献１には、ホスト装置と外部装置との間の電気的な接続が切断された原因を判定し、その判定結果をホスト装置と外部装置との間の再接続処理に利用することについての記載もない。
【０００７】
本発明は、前述の欠点にかんがみてなされたものであり、ホスト装置として動作する電子機器と外部装置との間の電気的な接続が切断された原因を判定できるようにすることを目的とする。また、本発明は、ホスト装置として動作する電子機器と外部装置との間の電気的な接続が切断された原因に基づいて、電子機器と外部装置との間の再接続処理を制御できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る電子機器は、外部装置と接続するためのインターフェース手段と、前記インターフェース手段と外部装置とが接続されたこと、及び切断されたこととを検出する検出手段と、前記外部装置と接続後に切断前の動作を継続するか否かを判定する判定手段とを備え、前記判定手段は、前記検出手段による切断検出時刻から再接続検出時刻までの時間が所定時間以内の場合、再接続の後に切断前の動作を継続することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ホスト装置として動作する電子機器と外部装置との間の電気的な接続が切断された原因を判定することができる。また、本発明によれば、ホスト装置として動作する電子機器と外部装置との間の電気的な接続が切断された原因に基づいて、電子機器と外部装置との間の再接続処理を制御することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係るホスト装置として動作する電子機器の一例であるデジタルビデオカメラ１００に含まれる構成要素を説明するためのブロック図である。
【図２】実施形態１における境界時間の決定方法の一例を説明するためのフローチャートである。
【図３】実施形態１におけるデータ転送処理を説明するためのフローチャートである。
【図４】実施形態１におけるデータ転送処理を説明するためのフローチャートである。
【図５】データバックアップ中の動作状態を記録するフローチャートである。
【図６】静電による切断と判定されたときに行われる処理を説明するためのフローチャートである。
【図７】実施形態２に係るホスト装置として動作する電子機器の一例であるデジタルビデオカメラ６００に含まれる構成要素を説明するためのブロック図である。
【図８】実施形態２における境界時間の決定方法の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態を説明するが、本発明の実施形態は以下の実施形態に限定されるものではない。
【００１２】
［実施形態１］
図１は、本発明の実施形態１に係るホスト装置として動作する電子機器の一例であるデジタルビデオカメラ１００に含まれる構成要素を説明するためのブロック図である。ただし、実施形態１に係るホスト装置として動作する電子機器は、デジタルビデオカメラに限るものではない。デジタルビデオカメラ１００は、ＵＳＢホストとして機能する。
図１に示すように、デジタルビデオカメラ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、メモリ１０２、入力部１０３、撮像画像処理部１０４及び撮像部１０５を有する。また、デジタルビデオカメラ１００は、表示制御部１０６、ディスプレイ装置１０７、ＵＳＢホストコントローラ１０８、内部バス１０９及び記録部１１０を有する。ＣＰＵ１０１、メモリ１０２、入力部１０３、撮像画像処理部１０４、表示制御部１０６、ＵＳＢホストコントローラ１０８及び記録部１１０は、内部バス１０９に相互に通信可能に接続されている。
【００１３】
メモリ１０２は、デジタルビデオカメラ１００を制御するためのプログラムを記憶したメモリである。ＣＰＵ１０１は、メモリ１０２に格納されているプログラムに従ってデジタルビデオカメラ１００を制御することができるように構成されている。ＣＰＵ１０１は、メモリ１０２、入力部１０３、撮像画像処理部１０４、撮像部１０５、表示制御部１０６、ディスプレイ装置１０７、ＵＳＢホストコントローラ１０８、内部バス１０９及び記録部１１０を制御することができるように構成されている。入力部１０３は、ユーザ操作を受け付け、操作内容に応じた制御信号を生成し、ＣＰＵ１０１に供給する。入力部１０３は、ユーザ操作を受け付ける入力デバイスとして、ボタンやタッチパネルといったポインティングデバイスなどを有する。なお、タッチパネルは、たとえば平面的に構成された入力部に対して接触された位置に応じた座標情報が出力されるようにした入力デバイスである。
【００１４】
ＣＰＵ１０１は、入力デバイスに対してなされたユーザ操作に応じて入力部１０３で生成され供給される制御信号に基づき、プログラムに従い、内部バス１０９に接続される各部を制御する。これにより、デジタルビデオカメラ１００に対して、ユーザ操作に応じた動作を行わせることができる。
【００１５】
撮像部１０５は、レンズ装置、撮像素子などで構成される。撮像部１０５は、光学像を取り込み、取り込まれた光学像から撮影画像信号を生成する。
撮像画像処理部１０４は、撮像部１０５から出力される撮影画像信号から撮影画像データを生成する。撮像画像データは、静止画及び動画のいずれであってもよい。撮像画像処理部１０４は、所定の画素補完処理、リサイズ処理、色変換処理を撮影画像データに対して行うことができる。撮像画像処理部１０４で生成された撮影画像データは、表示制御部１０６、ＵＳＢホストコントローラ１０８及び記録部１１０に供給される。
【００１６】
表示制御部１０６は、撮像画像処理部１０４で生成された撮影画像データに対応する動画又は静止画をディスプレイ装置１０７に表示させる。
【００１７】
ＵＳＢホストコントローラ１０８は、デジタルビデオカメラ１００と外部装置２００との間のインターフェース手段である。ＵＳＢホストコントローラ１０８は、ＵＳＢデバイスとの接続検出および切断検出を行い、検出結果をＣＰＵ１０１に伝える。また、ＣＰＵ１０１の制御に基づき、ＵＳＢデバイスとパケットの送受信を行う。
【００１８】
外部装置２００は、実施形態１に係るＵＳＢデバイスとして動作する。実施形態１では、外部装置２００がＵＳＢハードディスク装置（ＵＳＢ−ＨＤＤ）として動作する外部記憶装置である場合を説明するが、外部装置２００はＵＳＢハードディスク装置以外の外部記憶装置として動作する装置であってよい。外部装置２００は、ＦＡＴ３２（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ  ３２）、ｅｘＦＡＴ（Ｅｘｔｅｎｄｅｄ  Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）などのファイルシステムでフォーマットされている外部記憶装置である。外部装置２００は、ＵＳＢマスストレージクラスを実装した外部記憶装置である。ＵＳＢホストコントローラ１０８とＵＳＢデバイスとは、ＵＳＢケーブルで接続されているものとする。また、ＵＳＢホストコントローラ１０８は、複数のＵＳＢコネクタを備えていてもよい。その場合、複数のＵＳＢコネクタのうち、特定のＵＳＢコネクタが外部装置２００と接続されるように管理されているものとする。
【００１９】
記録部１１０は、フラッシュメモリ、ハードディスク装置、ＳＤカードなどの記録媒体である。記録部１１０は、ＦＡＴ３２、ｅｘＦＡＴなどのファイルシステムでフォーマットされている記録媒体である。記録部１１０は、デジタルビデオカメラ１００に内蔵された記録媒体であっても、デジタルビデオカメラ１００から取り外し可能な記録媒体であってもよい。ＣＰＵ１０１は、撮像画像処理部１０４で生成された撮像画像データを所定のファイルフォーマットに従って記録部１１０に記録する。これにより、撮像画像処理部１０４で生成された撮像画像データは、ファイルとして記録部１１０に記録される。
【００２０】
図２は、実施形態１におけるデジタルビデオカメラ１００が外部装置２００と再接続時に動作継続するか否かの境界時間の決定方法の一例を説明するためのフローチャートである。ＣＰＵ１０１は、この決定方法を、メモリ１０２に格納されているプログラムに従って制御するように構成されている。
【００２１】
最初に、デジタルビデオカメラ１００と外部装置２００がＵＳＢケーブルにより接続される。
Ｓ２０１において、デジタルビデオカメラ１００のＵＳＢホストコントローラ１０８は外部装置２００と接続されたことをＣＰＵ１０１に通知する。Ｓ２０２に進み、ＣＰＵ１０１はＵＳＢホストコントローラ１０８に対して外部装置２００のデバイスディスクリプタ情報を読み出す指示を出す。ＵＳＢホストコントローラ１０８は外部装置２００の持つデバイスディスクリプタ情報をメモリ１０２上に読み出す。
【００２２】
ＣＰＵ１０１は、デバイスディスクリプタ情報の中の固有情報であるＶｅｎｄｏｒ  ＩＤ情報とＰｒｏｄｕｃｔ  ＩＤ情報を抜き出し、メモリ１０２に格納する。Ｖｅｎｄｏｒ  ＩＤには外部装置２００の製造元を示すＩＤが、Ｐｒｏｄｕｃｔ  ＩＤには外部装置２００の種別を示すＩＤが含まれる。
【００２３】
その後、ユーザは手動により外部装置２００の抜き差しを素早く行う。外部装置２００を抜くことにより、Ｓ２０３において、デジタルビデオカメラ１００のＵＳＢホストコントローラ１０８は外部装置２００と切断されたことをＣＰＵ１０１に通知する。そのとき、Ｓ２０４において、ＣＰＵ１０１はデバイス切断検出時刻Ｔ１をメモリ１０２に記録する。さらに、外部装置２００を接続することにより、Ｓ２０５において、デジタルビデオカメラ１００のＵＳＢホストコントローラ１０８は外部装置２００と接続されたことをＣＰＵ１０１に通知する。そのとき、Ｓ２０６において、ＣＰＵ１０１はデバイスの再接続検出時刻Ｔ２をメモリ１０２に記録する。
【００２４】
その後、Ｓ２０７において、ＣＰＵ１０１はデバイス切断検出からデバイス接続検出までの時間ＴＬ＝Ｔ２−Ｔ１（ミリ秒）を所定時間として算出する。そして、その時間を外部装置２００の境界時間として、Ｓ２０２でメモリ１０２に格納したＶｅｎｄｏｒ  ＩＤおよびＰｒｏｄｕｃｔ  ＩＤと関連付けてメモリ１０２に記録する。
【００２５】
なお、本フローチャートでは、Ｓ２０４およびＳ２０６でデバイス切断時刻およびデバイス接続時刻を記録したが、Ｓ２０４においてＣＰＵ１０１はタイマーを起動する。そして、Ｓ２０６においてタイマーを停止することにより、デバイス切断検出からデバイス接続検出までの時間ＴＬ＝Ｔ２−Ｔ１（ミリ秒）を所定時間として算出してもよい。
【００２６】
また、Ｓ２０７において、ＣＰＵ１０１はデバイス切断検出からデバイス接続検出までの時間ＴＬ＝Ｔ２−Ｔ１（ミリ秒）を外部装置２００の境界時間として格納した。この他に、ユーザは手動により外部装置２００の抜き差しを素早く行う本フローを繰り返すことにより、Ｔ２−Ｔ１の最小時間を求め、その時間を外部装置２００の境界時間として格納してもよい。このようにすることで、より境界時間の精度を高めることが可能である。
【００２７】
図３及び図４は、デジタルビデオカメラ１００と外部装置２００とで行われるデータ転送処理を説明するためのフローチャートである。ＣＰＵ１０１は、このデータ転送処理を、メモリ１０２に格納されているプログラムに従って制御するように構成されている。
【００２８】
なお、このフローチャートによる処理の前に、図２に示すフローチャートによる処理が行なわれる。これにより、デジタルビデオカメラ１００のメモリ１０２には外部装置２００のＶｅｎｄｏｒ  ＩＤおよびＰｒｏｄｕｃｔ  ＩＤと関連付けられた境界時間ＴＬ＝Ｔ２−Ｔ１（ミリ秒）が記憶されているものとする。
【００２９】
最初に、デジタルビデオカメラ１００と外部装置２００がＵＳＢケーブルにより接続される。
Ｓ３０１において、デジタルビデオカメラ１００のＵＳＢホストコントローラ１０８は外部装置２００と接続されたことをＣＰＵ１０１に通知する。
Ｓ３０２において、ＣＰＵ１０１はＵＳＢホストコントローラ１０８に対して外部装置２００のデバイスディスクリプタ情報を読み出す指示を出す。ＵＳＢホストコントローラ１０８は、外部装置２００の持つデバイスディスクリプタ情報をメモリ１０２上に読み出す。
【００３０】
ＣＰＵ１０１は、デバイスディスクリプタ情報の中のＶｅｎｄｏｒ  ＩＤ情報とＰｒｏｄｕｃｔ  ＩＤ情報、ストリングディスクリプタ情報を抜き出し、メモリ１０２に格納する。Ｖｅｎｄｏｒ  ＩＤには外部装置２００の製造元を示すＩＤが、Ｐｒｏｄｕｃｔ  ＩＤには外部装置２００の種別を示すＩＤが、ストリングディスクリプタ情報には外部装置２００の固有情報として固有番号を示すＩＤが含まれる。ＵＳＢデバイスによっては、ストリングディスクリプタに固有情報として固有番号を示すＩＤが含まれない場合があるが、その場合は、Ｖｅｎｄｏｒ  ＩＤ情報とＰｒｏｄｕｃｔ  ＩＤ情報のみをメモリ１０２に格納する。
【００３１】
Ｓ３０３において、ＣＰＵ１０１はＶｅｎｄｏｒ  ＩＤ、Ｐｒｏｄｕｃｔ  ＩＤと関連づけられた境界時間ＴＬをメモリ１０２から検索して決定する。
Ｓ３０４において、ＣＰＵ１０１は表示制御部１０６に対して記録部１１０から外部装置２００にデータバックアップを開始するためのメニュー画面を表示する指示を行う。これにより、表示制御部１０６はディスプレイ装置１０７に記録部１１０から外部装置２００にデータバックアップを開始するためのメニュー画面を表示する。
【００３２】
その後、Ｓ３０５において、ＣＰＵ１０１が入力部１０３からデータバックアップ開始の入力を検出すると、Ｓ３０６に進み、記録部１１０に記録されている撮像画像データの外部装置２００へのデータバックアップを開始する。具体的には、ＣＰＵ１０１が記録部１１０からＵＳＢホストコントローラ１０８に撮像画像データを供給し、ＵＳＢホストコントローラ１０８から外部装置２００に当該撮像画像データを転送する。
【００３３】
Ｓ３０６において、ＣＰＵ１０１は撮像画像データをファイルとしてどこまで外部装置２００に転送したかをメモリ１０２に動作状態として記録して、接続中の動作状態管理を行う。このシーケンスの詳細は図５を用いて後で説明する。
【００３４】
Ｓ３０７において、ＣＰＵ１０１がＵＳＢホストコントローラ１０８からのデバイス切断を検出すると、Ｓ３０８に進み、ＣＰＵ１０１はデバイス切断検出時刻Ｔ１をメモリ１０２に記録する。その後、Ｓ３０９において、デジタルビデオカメラ１００のＵＳＢホストコントローラ１０８は外部装置２００と接続されたことをＣＰＵ１０１に通知すると、Ｓ３１０に進み、ＣＰＵ１０１はデバイスの再接続検出時刻Ｔ２をメモリ１０２に記録する。また、ＣＰＵ１０１は今回接続したデバイスのデバイスディスクリプタ情報をメモリ１０２上に読み出す。ＣＰＵ１０１は、デバイスディスクリプタ情報の中のＶｅｎｄｏｒ  ＩＤ情報とＰｒｏｄｕｃｔ  ＩＤ情報、ストリングディスクリプタ情報を抜き出し、メモリ１０２に格納する。
【００３５】
その後、Ｓ３１１において、ＣＰＵ１０１はデバイス切断検出からデバイス接続検出までの時間Ｔ２−Ｔ１（ミリ秒）がＳ３０３において決定した外部装置２００の境界時間ＴＬより小さいかどうか判定する。Ｔ２−Ｔ１＜ＴＬの場合、すなわち、切断検出時刻から再接続検出時刻までの時間が所定時間以内の場合は、ＣＰＵ１０１は静電による瞬間的な切断の可能性ありと判定し、Ｓ３１２に進む。
【００３６】
Ｓ３１２において、今回接続したデバイスのＶｅｎｄｏｒ  ＩＤ、Ｐｒｏｄｕｃｔ  ＩＤ、およびストリングディスクリプタ情報を前回接続したデバイスのＶｅｎｄｏｒ  ＩＤ、Ｐｒｏｄｕｃｔ  ＩＤ、およびストリングディスクリプタ情報と比較する。そして、切断前のデバイスと接続後のデバイスが同一かどうか判定する。同一である場合、Ｓ３１３に進み、ＣＰＵ１０１は静電による瞬間的な切断と判定する。その後、Ｓ３１４に進み、ＣＰＵ１０１は記録部１１０に記録されている撮像画像データの外部装置２００へのデータバックアップを継続する。このシーケンスの詳細は図６を用いて後で説明する。
【００３７】
一方、Ｓ３１１の判定で、Ｔ２−Ｔ１＞ＴＬの場合、ＣＰＵ１０１は静電による瞬間的な切断ではなく、手動による切断と判定し、Ｓ３１５、Ｓ３０２に進む。この場合、ＣＰＵ１０１は記録部１１０に記録されている撮像画像データのＵＳＢデバイスへのデータバックアップを継続せず、再度、最初からデータバックアップを開始することになる。
【００３８】
Ｓ３１６において、すべての撮像画像データを外部装置２００に転送完了するまで、Ｓ３０６に戻ってＣＰＵ１０１は記録部１１０に記録されている撮像画像データの外部装置２００へのデータバックアップを継続する。
【００３９】
なお、本フローチャートでは、Ｓ３０８およびＳ３１０においてデバイス切断時刻およびデバイス接続時刻を記録した。この他に、Ｓ３０８においてＣＰＵ１０１はタイマーを起動し、Ｓ３１０においてタイマーを停止することにより、デバイス切断検出からデバイス接続検出までの時間Ｔ２−Ｔ１（ミリ秒）を所定時間として算出してもよい。
【００４０】
図５は、図４のＳ３０６におけるデータバックアップ中の動作状態を記録するフローチャートである。デジタルビデオカメラ１００のＵＳＢホストコントローラ１０８と外部装置２００はＵＳＢで接続されており、外部装置２００はＵＳＢマスストレージクラスを実装したＵＳＢデバイスであるとする。ＣＰＵ１０１は、外部装置２００と接続時にＦＡＴ３２等のファイルシステムによりマウントされている。
【００４１】
Ｓ４０１において、ＣＰＵ１０１はバックアップする撮像画像データのファイルを１つオープンする。
Ｓ４０２において、ＣＰＵ１０１はオープンしたファイルのディスクリプタをメモリ１０２に記録しておく。
【００４２】
Ｓ４０３において、ＣＰＵ１０１は、Ｓ４０１でオープンしたファイルに書き込み予定のサイズ、すなわち撮像画像データのサイズであるＮ（ｂｙｔｅｓ）をメモリ１０２に記録しておく。
Ｓ４０４において、ＣＰＵ１０１は、Ｓ４０１でオープンしたファイルの現在位置をｓｅｅｋ関数により取得し、メモリ１０２に記録しておく。
【００４３】
以上、Ｓ４０１〜Ｓ４０４の処理を行った後、ＣＰＵ１０１はＳ４０５に進み、Ｓ４０１でオープンしたファイルに対する書き込みを開始する。ここで、一回の書き込み（ｗｒｉｔｅ）サイズをＭ  Ｂｙｔｅｓ（Ｍ＜＝Ｎ）とする。一回の書き込み、すなわちＭ  Ｂｙｔｅｓ分のデータの書き込みが完了すると、Ｓ４０６に進む。
【００４４】
Ｓ４０６において、ＣＰＵ１０１は、Ｓ４０１でオープンしたファイルの現在位置を再度取得し、当該ファイルの現在位置の記録を更新する。その後、Ｓ４０７に進み、ファイルに書き込み予定のＮ  Ｂｙｔｅｓ分すべて書き込み完了したか否かを判定する。完了したと判定すると、Ｓ４０１に進み、次にバックアップする撮像画像データのファイルを新たにオープンする。一方、ファイルに書き込み予定のＮ  Ｂｙｔｅｓ分すべての書き込みが完了していない場合、Ｓ４０４に戻り、Ｓ４０１でオープンしたファイルへの書き込みを継続する。
【００４５】
たとえば、撮像画像データのファイルサイズがＮ＝２Ｇｉｇａ  ｂｙｔｅｓであり、一回の書き込み（ｗｒｉｔｅ）サイズがＭ＝１Ｍｅｇａ  ｂｙｔｅｓである場合、ＣＰＵ１０１はＳ４０１においてファイルをオープンする。そして、Ｓ４０５において１Ｍ  Ｂｙｔｅｓごと書き込む（ｗｒｉｔｅ）ので、Ｓ４０７において２ＧＢｙｔｅｓファイルの書き込みを完了するまでに、Ｓ４０５の処理を２ＧＢｙｔｅｓ／１Ｍ  Ｂｙｔｅｓ＝２０００回繰り返すことになる。
【００４６】
また、Ｓ４０４およびＳ４０６で記録されるファイルの現在位置は、１Ｍ  Ｂｙｔｅｓ刻みの位置となる。たとえば、５００Ｍ  Ｂｙｔｅｓ分書き込み完了した時点で、次の１Ｍ  Ｂｙｔｅｓの書き込みを行っている最中にＵＳＢホストコントローラ１０８がＣＰＵ１０１にデバイス切断検出を伝えると、最後の１Ｍ  Ｂｙｔｅｓの書き込みは完了せず失敗する。このため、記録部１１０に記録されているファイルの現在位置情報は５００Ｍ  Ｂｙｔｅｓである。
以上、ＣＰＵ１０１は記録部１１０に記録されているすべての撮像画像データを外部装置２００に転送するまで、図５のフローが繰り返される。
【００４７】
なお、本フローチャートでは、外部装置２００がＵＳＢマスストレージクラスを実装したＵＳＢデバイスである場合を説明した。しかしながら、デジタルビデオカメラ１００のＵＳＢホストコントローラ１０８と接続するＵＳＢデバイスは、ＵＳＢマスストレージクラス以外のＵＳＢクラスを実装したＵＳＢデバイスであってもよい。
【００４８】
図６は、ＣＰＵ１０１が図４のＳ３１４において静電による切断と判定したときに行われる処理を説明するためのフローチャートである。
Ｓ５０１において、ＣＰＵ１０１は、記録部１１０に記録されている切断前に最後にオープンしていたファイルをクローズする。Ｓ５０１において、ＣＰＵ１０１は、当該クローズしたファイルのサイズが書き込み完了分のサイズにリサイズされるように、当該クローズしたファイルのサイズをｔｒｕｎｃａｔｅ関数を用いてリサイズする。これにより、外部装置２００に記録されているファイルのサイズと記録部１１０に記録されているファイルのサイズとの不整合の発生を防止することができる。
Ｓ５０２において、ＣＰＵ１０１はＳ５０１でクローズしたファイルを再度オープンする。
Ｓ５０３において、ＣＰＵ１０１は記録部１１０に記録されているファイルの現在位置情報を読み出し、再度オープンしたファイルに対して、ファイルの現在位置までシークを行う。
【００４９】
Ｓ５０４において、ＣＰＵ１０１は再度オープンしたファイルに対して、Ｓ５０３でシークした位置から書き込み未完了分のサイズＮ’  ｂｙｔｅｓ分の書き込みを行う。
Ｓ５０５において、ＣＰＵ１０１は再度オープンしたファイルに対して、Ｓ５０３でシークした位置から書き込み未完了分のサイズＮ’  ｂｙｔｅｓ分の書き込みを完了すると、図５のＳ４０１へ進む。そして、次にバックアップする撮像画像データのファイルを新たにオープンする。
【００５０】
例えば、切断前に最後にオープンしていた撮像画像データのファイルサイズがＮ＝２Ｇｉｇａ  ｂｙｔｅｓであり、一回の書き込み（ｗｒｉｔｅ）サイズがＭ＝１Ｍｅｇａ  ｂｙｔｅｓである場合を説明する。この場合に、記録部１１０に記録されているファイルの現在位置情報が５００Ｍ  Ｂｙｔｅｓである場合、ＣＰＵ１０１は、クローズしたファイルのサイズを５００Ｍｂｙｔｅｓにリサイズする（Ｓ５０１）。その後、Ｓ５０２において、ＣＰＵ１０１はファイルを再度オープンする。
【００５１】
その後、Ｓ５０３において、ＣＰＵ１０１は再度オープンしたファイルに対して、先頭から５００Ｍ  Ｂｙｔｅｓの位置までシークを行う。その後、Ｓ５０４において、ＣＰＵ１０１は再度オープンしたファイルに対して、先頭から５００Ｍ  Ｂｙｔｅｓの位置から書き込み未完了分のサイズＮ’＝２ＧＢｙｔｅｓ−５００Ｍ  Ｂｙｔｅｓ＝１．５ＧＢｙｔｅｓ分の書き込みを行う。
【００５２】
以上により、デジタルビデオカメラ１００が外部装置２００とＵＳＢ接続中であり、記録部１１０から外部装置２００へのデータバックアップ中に、ユーザの意図しない事象により、接続が切断された場合のデータバックアップが可能となる。たとえば静電などにより、デジタルビデオカメラ１００と外部装置２００との間の接続が瞬間的に切断された場合であっても、再接続処理を適切に制御でき、データバックアップを継続することができる。また、再接続処理をした場合であっても、ファイルの不整合の発生を防止することもできる。
【００５３】
（実施形態２）
次に、本発明の実施形態２について説明する。実施形態２では、実施形態１と異なる部分を説明し、実施形態１で説明した部分と同様の部分については、その説明を省略する。
図７は、本発明の実施形態２に係るホスト装置として動作する電子機器の一例であるデジタルビデオカメラ６００に含まれる構成要素を説明するためのブロック図である。ただし、実施形態２に係るホスト装置として動作する電子機器は、デジタルビデオカメラに限るものではない。図７の構成要素１０１〜１１０は、図１の構成要素１０１〜１１０と同じであるのでこれらの説明を省略する。
【００５４】
実施形態２におけるデジタルビデオカメラ６００は、ＵＳＢホストコントローラ１０８とＵＳＢデバイスコントローラ６１１の両方を備えている。ＵＳＢ切り替える部（ＵＳＢ  ＳＷ）６１２は、切り替え手段として設けられているスイッチである。ＵＳＢホストコントローラ１０８およびＵＳＢデバイスコントローラ６１１とＤ＋及びＤ−ラインで接続されており、１つのＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３ともＤ＋及びＤ−ラインで接続されている。
【００５５】
ＵＳＢスイッチ部６１２は、内部バス１０９とも接続されており、ＣＰＵ１０１により制御可能である。ＵＳＢスイッチ部６１２はＵＳＢホストコントローラ１０８またはＵＳＢデバイスコントローラ６１１のいずれか一方のＤ＋及びＤ−ラインをＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３に接続する機能を備えている。そして、ＣＰＵ１０１によりＵＳＢホストコントローラ１０８またはＵＳＢデバイスコントローラ６１１のどちらのＤ＋及びＤ−ラインをＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３に接続するかを切り替え可能である。
【００５６】
ＵＳＢスイッチ部６１２が、ＵＳＢホストコントローラ１０８のＤ＋及びＤ−ラインをＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３に接続している場合、デジタルビデオカメラ６００は外部装置２００などのＵＳＢデバイス機器と接続する。一方、ＵＳＢスイッチ部６１２がＵＳＢデバイスコントローラ６１１のＤ＋及びＤ−ラインをＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３に接続している場合、デジタルビデオカメラ６００はＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のＵＳＢホスト機器と接続する。
【００５７】
図８は、実施形態２におけるデジタルビデオカメラ６００が外部装置２００と再接続時に動作継続するか否かの境界時間の決定方法の一例を説明するためのフローチャートである。ＣＰＵ１０１は、このデータ転送処理を、メモリ１０２に格納されているプログラムに従って制御するように構成されている。
【００５８】
Ｓ７０１において、ＣＰＵ１０１はＵＳＢスイッチ部６１２をＵＳＢホストコントローラ１０８側に切り替える。すなわち、ＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３にはＵＳＢホストコントローラ１０８のＤ＋及びＤ−ラインが接続され、デジタルビデオカメラ６００はＵＳＢホストとして機能する。ここで、デジタルビデオカメラ６００と外部装置２００がＵＳＢケーブルにより接続されると、Ｓ７０２において接続検出が行われる。そして、デジタルビデオカメラ６００のＵＳＢホストコントローラ１０８は外部装置２００と接続されたことをＣＰＵ１０１に通知してＳ７０３に進む。
【００５９】
Ｓ７０３において、ＣＰＵ１０１はＵＳＢホストコントローラ１０８に対して外部装置２００のデバイスディスクリプタ情報を読み出す指示を出す。ＵＳＢホストコントローラ１０８は、外部装置２００の持つデバイスディスクリプタ情報をメモリ１０２上に読み出す。ＣＰＵ１０１は、デバイスディスクリプタ情報の中のＶｅｎｄｏｒ  ＩＤ情報とＰｒｏｄｕｃｔ  ＩＤ情報を抜き出し、メモリ１０２に格納する。Ｖｅｎｄｏｒ  ＩＤには外部装置２００の製造元を示すＩＤが、Ｐｒｏｄｕｃｔ  ＩＤには外部装置２００の種別を示すＩＤが含まれる。
【００６０】
その後、Ｓ７０４に進み、ＣＰＵ１０１はＵＳＢスイッチ部６１２をＵＳＢデバイスコントローラ６１１側に切り替える。すなわち、ＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３にはＵＳＢデバイスコントローラ６１１のＤ＋及びＤ−ラインが接続され、ＵＳＢホストコントローラ１０８は外部装置２００と切断されたことになる。ＣＰＵ１０１がＵＳＢスイッチ部６１２をＵＳＢデバイスコントローラ６１１側に切り替えると同時に、切り替えタイマーをスタートする。
【００６１】
次に、Ｓ７０５に進み、ＣＰＵ１０１がＵＳＢスイッチ部６１２をＵＳＢデバイスコントローラ６１１側に切り替えてからＵＳＢプロトコルに定められたＳＯＦ区間分、すなわち、１μＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｌａｍｅ）時間である１２５マイクロ秒経過する。すると、Ｓ７０６において、ＣＰＵ１０１はＵＳＢスイッチ部６１２を再びＵＳＢホストコントローラ１０８側に切り替える。これにより、ＵＳＢ  ｍｉｎｉ  ＡＢコネクタ６１３にはＵＳＢホストコントローラ１０８のＤ＋及びＤ−ラインが接続され、ＵＳＢホストコントローラ１０８は外部装置２００と再び接続されたことになる。
【００６２】
Ｓ７０７において、デジタルビデオカメラ６００のＵＳＢホストコントローラ１０８は外部装置２００と切断されたことをＣＰＵ１０１に通知する。次に、Ｓ７０８において、ＣＰＵ１０１はデバイス切断検出時刻Ｔ１をメモリ１０２に記録する。その後、Ｓ７０９において、デジタルビデオカメラ６００のＵＳＢホストコントローラ１０８は外部装置２００との接続検出を行い、接続が検出された場合には接続されたことをＣＰＵ１０１に通知する。次に、Ｓ７１０において、ＣＰＵ１０１はデバイスの再接続検出時刻Ｔ２をメモリ１０２に記録する。
【００６３】
その後、Ｓ７１１において、ＣＰＵ１０１はデバイス切断検出からデバイス接続検出までの時間ＴＬ＝Ｔ２−Ｔ１（ミリ秒）を所定時間として算出する。そして、その時間を外部装置２００の境界時間として、Ｓ７０３でメモリ１０２に格納したＶｅｎｄｏｒ  ＩＤおよびＰｒｏｄｕｃｔ  ＩＤと関連付けてメモリ１０２に記録する。
【００６４】
なお、本フローチャートでは、Ｓ７０８およびＳ７１０でデバイス切断時刻およびデバイス接続時刻を記録したが、Ｓ７０８においてＣＰＵ１０１はタイマーを起動する。そして、Ｓ７１０においてタイマーを停止することにより、デバイス切断検出からデバイス接続検出までの時間ＴＬ＝Ｔ２−Ｔ１（ミリ秒）を所定時間として算出してもよい。
【００６５】
また、Ｓ７１１において、ＣＰＵ１０１はデバイス切断検出からデバイス接続検出までの時間ＴＬ＝Ｔ２−Ｔ１（ミリ秒）を外部装置２００の境界時間として格納した。しかし、本フローを繰り返すことにより、Ｔ２−Ｔ１の最小時間を求め、その時間を外部装置２００の境界時間として格納してもよい。このようにすることで、より境界時間の精度を高めることが可能である。
【００６６】
このように求めた境界時間を用いて、実施形態１の図３〜図６で説明したフローと同じ処理を行う。これにより、デジタルビデオカメラ６００が外部装置２００とＵＳＢ接続中であり、記録部１１０から外部装置２００へのデータバックアップ中に、ユーザの意図しない事象により、接続が切断された場合のデータバックアップが可能となる。たとえば静電などにより、デジタルビデオカメラ６００と外部装置２００との接続が瞬間的に切断された場合であっても、再接続処理を適切に制御でき、データバックアップを継続することができる。また、再接続処理をした場合であっても、ファイルの不整合の発生を防止することもできる。
【００６７】
［実施形態３］
実施形態１及び２で説明した様々な機能及び処理は、パーソナルコンピュータ、マイクロコンピュータ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などがプログラムを用いて実現することもできる。以下、実施形態３では、パーソナルコンピュータ、マイクロコンピュータ、ＣＰＵなどを「コンピュータＸ」と呼ぶ。また、実施形態３では、コンピュータＸを制御するためのプログラムであって、実施形態１及び２で説明した様々な機能及び処理を実現するためのプログラムを「プログラムＹ」と呼ぶ。
【００６８】
実施形態１及び２で説明した様々な機能及び処理は、コンピュータＸがプログラムＹを実行することによって実現される。この場合において、プログラムＹは、コンピュータ読み取り可能な記憶媒体を介してコンピュータＸに供給される。実施形態３におけるコンピュータ読み取り可能な記憶媒体は、ハードディスク装置、光ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＲＯＭ、ＲＡＭなどの少なくとも一つを含む。また、実施形態３におけるコンピュータ読み取り可能な記憶媒体は、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ（非一時的）な記憶媒体である。
【符号の説明】
【００６９】
１００  デジタルビデオカメラ
１０１  ＣＰＵ
１０２  メモリ
１０３  入力部
１０４  撮像画像処理部
１０５  撮像部
１０６  表示制御部
１０７  ディスプレイ装置
１０８  ＵＳＢホストコントローラ
１０９  内部バス
１１０  記録部
２００  外部装置
【図１】
2013142937.tif 000003
【図２】
2013142937.tif 000004
【図３】
2013142937.tif 000005
【図４】
2013142937.tif 000006
【図５】
2013142937.tif 000007
【図６】
2013142937.tif 000008
【図７】
2013142937.tif 000009
【図８】
2013142937.tif 000010