JP2013135447A - 記録媒体及びそれを用いる撮像装置 - Google Patents
記録媒体及びそれを用いる撮像装置 Download PDFInfo
- Publication number
- JP2013135447A JP2013135447A JP2011286635A JP2011286635A JP2013135447A JP 2013135447 A JP2013135447 A JP 2013135447A JP 2011286635 A JP2011286635 A JP 2011286635A JP 2011286635 A JP2011286635 A JP 2011286635A JP 2013135447 A JP2013135447 A JP 2013135447A
- Authority
- JP
- Japan
- Prior art keywords
- ptp
- dsc
- memory card
- module
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003384 imaging method Methods 0.000 title claims abstract description 13
- 238000004891 communication Methods 0.000 claims abstract description 108
- 238000012546 transfer Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 abstract description 28
- 239000003999 initiator Substances 0.000 description 52
- 238000013515 script Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 29
- 230000005540 biological transmission Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 14
- 238000010017 direct printing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000007639 printing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- BYJQAPYDPPKJGH-UHFFFAOYSA-N 3-(2-carboxyethyl)-1h-indole-2-carboxylic acid Chemical compound C1=CC=C2C(CCC(=O)O)=C(C(O)=O)NC2=C1 BYJQAPYDPPKJGH-UHFFFAOYSA-N 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/418—External card to be used in combination with the client device, e.g. for conditional access
- H04N21/4184—External card to be used in combination with the client device, e.g. for conditional access providing storage capabilities, e.g. memory stick
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/43622—Interfacing an external recording device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43637—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44227—Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
- H04N5/77—Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
- H04N5/772—Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera the recording apparatus and the television camera being placed in the same enclosure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0008—Connection or combination of a still picture apparatus with another apparatus
- H04N2201/0034—Details of the connection, e.g. connector, interface
- H04N2201/0048—Type of connection
- H04N2201/0055—By radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0087—Image storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/781—Television signal recording using magnetic recording on disks or drums
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/907—Television signal recording using static stores, e.g. storage tubes or semiconductor memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/06—Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Studio Devices (AREA)
- Mobile Radio Communication Systems (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
【課題】 様々な用途に利用可能な無線通信機能付き記録媒体と、それを有効に活用可能な撮像装置およびその制御方法を提供する。
【解決手段】 ホスト機器に着脱可能で、ホスト機器と異なる外部機器と無線通信を行うための無線通信手段を有する記録媒体である。記録媒体は、無線通信手段を通じて外部機器とPTP(Picture Transfer Protocol)に準拠した通信を行い、記録媒体をPTPにおけるResponderとして機能させるPTP Responderモジュールを有する。そして、無線通信手段を通じた外部機器とのPTP通信を、記録媒体が有するPTP Responderモジュールとホスト機器が有するPTP Responderモジュールのどちらを用いて行うかを、設定されたモードに応じて切り替える。また、無線通信手段は、無線通信を行う外部機器を決定するための処理を、ホスト機器から設定されたモードに応じて異ならせる。
【選択図】図18
【解決手段】 ホスト機器に着脱可能で、ホスト機器と異なる外部機器と無線通信を行うための無線通信手段を有する記録媒体である。記録媒体は、無線通信手段を通じて外部機器とPTP(Picture Transfer Protocol)に準拠した通信を行い、記録媒体をPTPにおけるResponderとして機能させるPTP Responderモジュールを有する。そして、無線通信手段を通じた外部機器とのPTP通信を、記録媒体が有するPTP Responderモジュールとホスト機器が有するPTP Responderモジュールのどちらを用いて行うかを、設定されたモードに応じて切り替える。また、無線通信手段は、無線通信を行う外部機器を決定するための処理を、ホスト機器から設定されたモードに応じて異ならせる。
【選択図】図18
Description
本発明は記録媒体及びそれを用いる撮像装置に関する。
デジタルカメラなどの撮像装置では、撮影で得られた画像データを保存するための記録媒体として、半導体メモリカードが広く用いられている。記録された画像データをパーソナルコンピュータ(以下PC)、プリンタ、テレビジョン受像器などの外部装置に転送する場合、デジタルカメラと外部装置の両方が有するデジタルインタフェースをケーブルで接続するのが一般的である(特許文献1参照)。
このように、デジタルカメラと外部装置との間でデータ転送を行う場合、従来はケーブルのような物理的な伝送路上で、予め決められた通信プロトコルに従ってデータ交換を行っていた。
たとえば、PCとデジタルカメラのデータ交換プロトコルとしては、USBのStill Imaging Device Classで規定されているPTP(Picture Transfer Protocol)や、マスストレージデバイスクラスで定義されているプロトコルを利用することが多い。
特に、OSレベルでPTPをサポートしているWindows(登録商標)やMac OS(登録商標)が稼働するPCでは、デジタルカメラを接続すると、それがデジタルカメラであることを認識する。そして、例えばデータ転送アプリケーションを自動で起動し、データ転送を開始する等の動作が可能であり、ユーザの負荷軽減と、利便性の向上を実現している。
また、デジタルカメラとプリンタを直接接続して印刷するダイレクトプリントの手順等を定めた、PictBridgeという規格も提案されている。PictBridge規格においても装置間の通信にはPTPを利用しているため、デジタルカメラがPTPによる通信をサポートしていれば、ユーザはデジタルカメラを接続する外部装置がPCでもプリンタでも同様に操作すればよい。
近年では、デジタルカメラから外部機器へ画像データをより簡単に転送できるよう、無線通信機能を有するメモリカードが販売されている。このメモリカードをデジタルカメラに装着して用いると、無線通信可能な外部機器に自動的に画像データを転送することが可能であり、ユーザはケーブルの接続や明示的な転送指示を行う必要がない。
従来の無線通信機能付きメモリカードは、IEEE802.11x規格に準拠した無線通信機能を有し、無線LANに接続することによって画像データの転送を行うことに特化している。そのため、PTPのような、デジタルカメラと外部機器との通信プロトコルを用いたアプリケーション、例えばダイレクトプリントには対応できない。また、無線通信機能付きメモリカードが外部機器と行う通信は、デジタルカメラの動作とは基本的に独立しており、例えばデジタルカメラが無線通信機能付きメモリカードを通信アダプタとして用いて、外部機器と通信することはできなかった。
このように、従来の無線通信機能付きメモリカードはその用途が限られており、無線通信機能が有効に活用されていない面があった。本発明はこのような従来技術の課題に鑑みてなされたものであり、様々な用途に利用可能な無線通信機能付き記録媒体を提供することを1目的とする。
上述の目的は、ホスト機器に着脱可能な記録媒体であって、ホスト機器と異なる外部機器と、無線通信を行うための無線通信手段と、無線通信手段を通じて、外部機器とPTP(Picture Transfer Protocol)に準拠した通信を行い、記録媒体をPTPにおけるResponderとして機能させるPTP Responderモジュールと、無線通信手段を通じた外部機器とのPTP通信を、記録媒体が有するPTP Responderモジュールを用いて行うか、記録媒体が装着されたホスト機器が有する、ホスト機器をResponderとして機能させるPTP Responderモジュールを用いて行うかを、ホスト機器から設定されたモードに応じて切り替えるコントローラとを有し、無線通信手段は、無線通信を行う外部機器を決定するための処理を、ホスト機器から設定されたモードに応じて異ならせることを特徴とする記録媒体によって達成される。
このような構成により、本発明によれば、様々な用途に利用可能な無線通信機能付き記録媒体と、このような記録媒体を用いる撮像装置を提供することができる。
<第1の実施形態>
次に、添付図面を参照して、第1の実施形態について詳細に説明する。なお、以下では、無線通信機能付きメモリカードを用いる撮像装置の一例としてデジタルスチルカメラ(DSC)を説明するが、デジタルビデオカメラやカメラ付き携帯電子機器など、カメラまたはカメラを備える任意の機器に適用可能である。また、DSCと無線通信してサービスを提供したりDSCが有する画像データ利用したりする外部機器の例として、以下では汎用コンピュータ装置(PC)およびプリンタを説明する。しかし、外部機器は、いわゆるスマートフォンやタブレット端末、または他のデジタルカメラなど、PTP(Picture Transfer Protocol)をサポートする任意の機器であってよい。
次に、添付図面を参照して、第1の実施形態について詳細に説明する。なお、以下では、無線通信機能付きメモリカードを用いる撮像装置の一例としてデジタルスチルカメラ(DSC)を説明するが、デジタルビデオカメラやカメラ付き携帯電子機器など、カメラまたはカメラを備える任意の機器に適用可能である。また、DSCと無線通信してサービスを提供したりDSCが有する画像データ利用したりする外部機器の例として、以下では汎用コンピュータ装置(PC)およびプリンタを説明する。しかし、外部機器は、いわゆるスマートフォンやタブレット端末、または他のデジタルカメラなど、PTP(Picture Transfer Protocol)をサポートする任意の機器であってよい。
図1は、DSC100の機能構成例を示すブロック図である。
制御部101は、例えばCPU,MPUなどプログラマブルなプロセッサであり、DSC100全体の制御を司る。不揮発性メモリ102は制御部101の処理手順(プログラム)や、DSC100の各種設定やメニュー画面などのGUI(Graphical User Interface)データなどを記憶する。RAM103は制御部101のワークエリアとして使用される。操作部104はボタン並びにスイッチ群であり、ユーザがDSC100に各種指示を与えるために用いられる。表示部105は例えばLCD(Liquid Crystal Display)であり、撮影した画像や、各種設定を行う際のメニュー画面を表示するために使用される。光学ユニット106は主としてレンズ(ズームレンズ、フォーカスレンズなど)及びその駆動を行うアクチュエータ等で構成される。撮像素子107はCCDイメージセンサやCMOSイメージセンサである。ドライバ108は制御部101の制御下において光学ユニット106を制御する。コネクタ109は着脱可能な記録媒体であるメモリカード120を接続するためのコネクタである。後述するように、本実施形態におけるメモリカード120は無線通信機能を有する。インタフェース(I/F)110は例えばUSB,IEEE1934,HDMIなどのデジタルインタフェースであり、有線接続により外部機器と接続するために用いられる。
制御部101は、例えばCPU,MPUなどプログラマブルなプロセッサであり、DSC100全体の制御を司る。不揮発性メモリ102は制御部101の処理手順(プログラム)や、DSC100の各種設定やメニュー画面などのGUI(Graphical User Interface)データなどを記憶する。RAM103は制御部101のワークエリアとして使用される。操作部104はボタン並びにスイッチ群であり、ユーザがDSC100に各種指示を与えるために用いられる。表示部105は例えばLCD(Liquid Crystal Display)であり、撮影した画像や、各種設定を行う際のメニュー画面を表示するために使用される。光学ユニット106は主としてレンズ(ズームレンズ、フォーカスレンズなど)及びその駆動を行うアクチュエータ等で構成される。撮像素子107はCCDイメージセンサやCMOSイメージセンサである。ドライバ108は制御部101の制御下において光学ユニット106を制御する。コネクタ109は着脱可能な記録媒体であるメモリカード120を接続するためのコネクタである。後述するように、本実施形態におけるメモリカード120は無線通信機能を有する。インタフェース(I/F)110は例えばUSB,IEEE1934,HDMIなどのデジタルインタフェースであり、有線接続により外部機器と接続するために用いられる。
図2は本実施形態における外部装置の一例としての汎用コンピュータ装置(PC)200の構成例を示すブロック図である。
図において、表示装置201は、LCD等から構成され、各種のGUIやデータなどを表示する。キーボード203及びポインティングデバイス204は、文字などを入力したり、GUIにおけるアイコンやボタンなどを指し示したりするためなどに用いられる。CPU205はPC200全体の制御を司る。
図において、表示装置201は、LCD等から構成され、各種のGUIやデータなどを表示する。キーボード203及びポインティングデバイス204は、文字などを入力したり、GUIにおけるアイコンやボタンなどを指し示したりするためなどに用いられる。CPU205はPC200全体の制御を司る。
ROM206(Read Only Memory)はCPU205が実行するプログラム(主にブートプログラム)やパラメータ等を記憶している。RAM(Random Access Memory)207は各種プログラムをCPU205が実行する時のワークエリア、エラー処理時の一時退避エリア等として用いられる。
ハードディスクドライプ(HDD)208はOSやアプリケーションプログラムなど、CPU205が実行するプログラムを記憶したり、ユーザデータを記憶したりする。また、仮想記憶領域としても用いられる。本実施形態において説明するPC200の各種機能を実現するプログラムは、HDD208に記憶されているものとする。
リムーバブルメディアドライプ(RMD)209は、着脱可能な記録媒体の読み書き又は読み出しを行う装置である。RMD209の具体例としては、フレキシブルディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、メモリカードリーダ、着脱式HDDなどがある。
USB/IEEE1394 I/F210は、プリンタを始めとした各種周辺機器を有線接続するためのインタフェースの一例である。
無線通信I/F211はPC200を無線通信ネットワークに接続するためのインタフェースである。バス212はアドレスバス、データバスおよび制御バスからなり、上述した各ユニット間を接続する。
無線通信I/F211はPC200を無線通信ネットワークに接続するためのインタフェースである。バス212はアドレスバス、データバスおよび制御バスからなり、上述した各ユニット間を接続する。
図3は、本実施形態における外部装置の一例であるプリンタ300の制御系の構成例を示すブロック図である。
図において、制御部301は例えばCPU,MPUなどプログラマブルなプロセッサであり、DSC100全体の制御を司る。不揮発性メモリ102は制御部101の処理手順(プログラム)やフォント、プリンタ300の各種設定やメニュー画面などのGUIデータなどを記憶する。RAM303は制御部301のワークエリアとして使用される。操作パネル304はボタン並びにスイッチ群であり、ユーザがプリンタ300に各種指示を与えるために用いられる。表示部308は例えばLCDであり、プリントする画像データや、各種設定を行う際のメニュー画面を表示するために使用される。USB/IEEE1394 I/F305はホスト機器(PC200など)と有線接続を行うためのインタフェースである。無線通信インタフェース307は、無線通信ネットワークに接続するためのインタフェースである。306はプリンタエンジン部であり、実施形態では、熱エネルギーを利用してインク液を吐出するプリントエンジンであるが、記録方式はこれにより限定されるものではない。
図において、制御部301は例えばCPU,MPUなどプログラマブルなプロセッサであり、DSC100全体の制御を司る。不揮発性メモリ102は制御部101の処理手順(プログラム)やフォント、プリンタ300の各種設定やメニュー画面などのGUIデータなどを記憶する。RAM303は制御部301のワークエリアとして使用される。操作パネル304はボタン並びにスイッチ群であり、ユーザがプリンタ300に各種指示を与えるために用いられる。表示部308は例えばLCDであり、プリントする画像データや、各種設定を行う際のメニュー画面を表示するために使用される。USB/IEEE1394 I/F305はホスト機器(PC200など)と有線接続を行うためのインタフェースである。無線通信インタフェース307は、無線通信ネットワークに接続するためのインタフェースである。306はプリンタエンジン部であり、実施形態では、熱エネルギーを利用してインク液を吐出するプリントエンジンであるが、記録方式はこれにより限定されるものではない。
図4は、図1におけるメモリカード120の機能構成例を示すブロック図である。メモリカード120は、カードコントローラ1201、無線通信部1202、メモリ部1203を有している。
カードコントローラ1201は、例えばCPU,ROM,RAMなどを有し、後述するメモリカード120の動作を実現する。無線通信部1202の制御、無線通信ネットワーク上の外部機器とのPTP通信、ホスト機器としてのDSC100とのPTP通信、DSC100における記録媒体としての動作、などはカードコントローラ1201の制御により実現される。
カードコントローラ1201は、例えばCPU,ROM,RAMなどを有し、後述するメモリカード120の動作を実現する。無線通信部1202の制御、無線通信ネットワーク上の外部機器とのPTP通信、ホスト機器としてのDSC100とのPTP通信、DSC100における記録媒体としての動作、などはカードコントローラ1201の制御により実現される。
無線通信部1202は、IEEE 802.11xやBluetooth(登録商標)等の無線通信規格に準拠した無線通信機能を有し、無線通信ネットワーク上の外部機器との通信を実現する。本実施形態では無線通信部1202がIEEE 802.11a/b/g/n規格に準拠した無線通信機能を有するものとする。
メモリ部1203は例えばNAND型の不揮発性メモリを含み、カードコントローラ1201を通じて書き込まれた静止画、動画、音声などのデータを記憶する。なお、メモリカード120はDSC100の記録媒体として機能するための所定のファイルシステム、例えばDCF(Design rule for Camera File system)に準拠してファイルの記録を行うものとする。
図5は、本実施形態のメモリカード120の状態遷移図である。後述するように、メモリカード120は、ホスト機器であるDSC100からのコマンドにより、Applicationモードを切り替え可能である。ここでは、Applicationモードとして、DLNA(Digital Living Network Alliance)モード、プル(Pull)モード、パススルー(Path Through)モード、DPS(Digital Photo Solutions for Imaging Devices)モードのいずれかが設定可能であるものとする。
DLNAモードは、DLNAガイドラインに準拠した家電などのネットワークに無線接続し、ネットワーク上の家電製品、例えばテレビなどと通信を行う動作モードである。
Pullモードは、メモリカード120がホスト機器であるDSC100とは基本的に独立して、無線通信ネットワーク上の外部機器とPTP通信するモードである。
Path Throughモードは、メモリカード120があたかもDSC100の無線通信アダプタとして機能し、DSC100と無線通信ネットワーク上の外部機器とのPTP通信を可能とする動作モードである。
DPSモードは、無線ネットワーク上に存在するプリンタを用いたダイレクトプリントを実現する動作モードである。
Pullモードは、メモリカード120がホスト機器であるDSC100とは基本的に独立して、無線通信ネットワーク上の外部機器とPTP通信するモードである。
Path Throughモードは、メモリカード120があたかもDSC100の無線通信アダプタとして機能し、DSC100と無線通信ネットワーク上の外部機器とのPTP通信を可能とする動作モードである。
DPSモードは、無線ネットワーク上に存在するプリンタを用いたダイレクトプリントを実現する動作モードである。
なお、図5に示すように、これらのApplicationモード間での直接遷移はできず、必ずNo Applicationモードを経由してApplicationモードが変更されるように構成されている。No Applicationモードの場合、メモリカード120は、ネットワーク接続の維持に必要な動作や接続可能なネットワークの探索などを行う。
図6は、本実施形態におけるDSC100とメモリカード120に実装される代表的なソフトウェアモジュールとその階層関係を説明する図である。例えば図6に示す各ソフトウェアモジュールは、DSC100については不揮発性メモリ102、メモリカード120についてはカードコントローラ1201内の不揮発性メモリの中のプログラム記憶領域に格納されている。なお、図6に示すソフトウェアモジュールのうち、1つ以上がハードウェアロジックによって実現されても良い。
図6に示すように、本実施形態では、PTPにおいてInitiatorからの要求に応答するPTP Responderとして機器(DSC100、メモリカード120)を動作させるためのPTP Responderモジュールを、DSC100及びメモリカード120の両方が有する。なお、PTP Responderモジュール110,120は、PTPの上位互換プロコトルであるMTP(Media Transfer Protocol)に対応しているMTP Responderであってもよい。
DSC100とメモリカード120との通信はCard I/Oモジュール130,131を用いて行われる。本実施形態のCard I/Oモジュール130,131はSDIO(Secure Digital Input/Output)に準拠した通信を行うものとするが、他の通信方式を用いても構わない。Card I/Oモジュール130,131はPTP Responder110,125または後述するPTP-IPモジュール123からのPTPオペレーションを、Card I/Oモジュール130,131に対応するコマンドとして通信することにより、DSC100とメモリカード120とのPTPオペレーションの受け渡しを実現する。
もちろん本実施形態におけるメモリカード120は、撮像で得られた画像データの記録などに用いられる通常の記録媒体として用いることもできる。この場合、Card I/Oモジュール130,131は、メモリ部1203にアクセスするインタフェース(メモリインタフェース)用の通信モジュールとして用いられる。なお、PTPオペレーションを取り扱う通信方式と、メモリ部1203にアクセスするための通信方式とを異なるものとしてもよい。例えば、メモリカード120を通常の記録媒体として用いる場合は、SDメモリモードの通信方式を用い、PTPオペレーションの受け渡しにはSDIOモードの通信方式を用いることができる。
そして、メモリカード120に設定されたApplicationモードに応じて、PTP Responderモジュール110,125の一方が、メモリカード120が有するPTP-IPモジュール123、TCP/IPモジュール122およびWireless LANモジュール121を用いて外部装置と無線通信する。また、各Applicationモードにおける動作を実現するための、Card I/Oモジュールにおける通信コマンドを新たに定義する。この通信コマンドは、
・DSC100からメモリカード120にApplicationモードを設定するコマンド、
・DSC100からメモリカード120に対し、メモリカード120が外部装置から受信したPTPオペレーションやデータの転送を要求するコマンド、
・DSC100内のモジュールからのPTPオペレーションやデータの、外部装置への転送を要求するコマンド、
・メモリカード120が外部装置から受信したデータをメモリ部1203に書き込むように要求するコマンド、
・メモリカード120のメモリ部1203に保存されたデータを外部装置に対して送信するように要求するコマンド、
などである。
・DSC100からメモリカード120にApplicationモードを設定するコマンド、
・DSC100からメモリカード120に対し、メモリカード120が外部装置から受信したPTPオペレーションやデータの転送を要求するコマンド、
・DSC100内のモジュールからのPTPオペレーションやデータの、外部装置への転送を要求するコマンド、
・メモリカード120が外部装置から受信したデータをメモリ部1203に書き込むように要求するコマンド、
・メモリカード120のメモリ部1203に保存されたデータを外部装置に対して送信するように要求するコマンド、
などである。
なお、PTPでは、メモリ部1203に記録されているオブジェクト(データファイル、ディレクトリ)の各々を指定するためにObjectHandleを用いる。従って、メモリ部1203のファイル構成に応じてオブジェクトごとにObjectHandleを割り当てる必要がある。PTP Responderモジュール110,125は、各オブジェクトにObjectHandleを割り当て、ObjectHandleの集合体であるObjectHandleArrayの作成、管理を行う。また、PTP Responderモジュール110,125は、メモリカードが複数存在する場合などには、StorageID等の発行、管理も行う。
また、前述したとおり制御部101は、通常のメモリカードと同様、ファイルのフルパスを指定してメモリカード120にデータを読み書きすることもできる。例えば、PTPオペレーションによりObjectHandleで指定されたオブジェクトの読み書きを要求された場合、制御部101はObjectArrayを参照することで、メモリカード120に対してディレクトリパスを用いたアクセスが可能である。ここで、ディレクトリパスはルートディレクトリからのパス(フルパス又は絶対パス)である。
DPSモジュール111とその上位のPictBridge Application 112は、DSC100からプリンタに直接(PCを介在せずに)プリントを実行させるダイレクトプリントの規格であるPictBridgeに準拠した動作を実現するためのソフトウェアモジュールである。
Applicationモジュール113は、上述した各Applicationモードに応じた動作を実現する。
DLNA Applicationモジュール114及びDLNAモジュール129は、DLNAに準拠した動作を提供する。DLNAはPTPを用いないため、本実施形態では説明を省略する。
Applicationモジュール113は、上述した各Applicationモードに応じた動作を実現する。
DLNA Applicationモジュール114及びDLNAモジュール129は、DLNAに準拠した動作を提供する。DLNAはPTPを用いないため、本実施形態では説明を省略する。
メモリカード120において、Wireless LANモジュール121はIEEE 802.11xに準拠した物理層を提供する。また、TCP/IPモジュール122は、トランスポート層を提供する。PTP-IPモジュール123は、PTPをTCP上で通信するためのモジュールである。
Discovery for DPSモジュール127は、DPSモードにおけるディスカバリを行うためのモジュールであり、本実施形態ではUPnP(Universal Plug and Play)を用いてディスカバリする。
Discovery for PTP-IPモジュール123は、Pullモード及びPath Throughモードにおけるディスカバリ処理におけるアドバタイズなどを行うためのモジュールであり、本実施形態ではUPnP(Universal Plug and Play)並びにBonjourの両方のプロトコルでディスカバリする。
以下の説明では、モジュール自体が処理の主体・客体となるような記載が含まれるが、実際には対応するモジュールを用いて制御部101、カードコントローラ1201が処理を実行する。
以下の説明では、モジュール自体が処理の主体・客体となるような記載が含まれるが、実際には対応するモジュールを用いて制御部101、カードコントローラ1201が処理を実行する。
以下、各ApplicationモードにおけるDSC100及びメモリカード120の動作について説明する。
具体的な動作を説明する前に、メモリカード120に設定するApplicationモードの設定方法について説明する。図7は、DSC100においてメモリカード120のApplicationモードを設定するためのGUI画面の例を示す図である。制御部101は、操作部104からの指示に応じて図7の設定画面を表示部105に表示させる。ユーザは4つの選択肢から接続を希望する機器の種類を操作部104に含まれる例えば方向キーを用いて選択状態とし、決定ボタンを押下することで接続先機器の種類を設定することができる。制御部101は操作部104の操作内容とGUI画面の内容から指示の内容を検出し、指示された動作を実行する。
具体的な動作を説明する前に、メモリカード120に設定するApplicationモードの設定方法について説明する。図7は、DSC100においてメモリカード120のApplicationモードを設定するためのGUI画面の例を示す図である。制御部101は、操作部104からの指示に応じて図7の設定画面を表示部105に表示させる。ユーザは4つの選択肢から接続を希望する機器の種類を操作部104に含まれる例えば方向キーを用いて選択状態とし、決定ボタンを押下することで接続先機器の種類を設定することができる。制御部101は操作部104の操作内容とGUI画面の内容から指示の内容を検出し、指示された動作を実行する。
例えば図7に示す例では、接続先機器としてPCが選択状態にあり、この状態で決定ボタンが押下されると制御部101はメモリカード120をPullモードに設定する。決定ボタンの押下時に他の選択肢が選択状態にあれば、それぞれに対応したApplicationモードを制御部101はメモリカード120に設定する。後述するように、ApplicationモードはCard I/Oモジュール130,131を通じて通信されるコマンドにより、制御部101からカードコントローラ1201に通知され、カードコントローラ1201が通知されたモードに応じて動作する。
なお、Applicationモードの設定方法は図7に示す例に限定されない。例えば、まずDLNAを用いるかPTPを用いるかをユーザに選択させるメニューを用意し、PTPを用いることが選択された場合にPullモード、DPSモード、Path Throughモードを選択させるメニューを表示してもよい。
このように、本実施形態によれば、ユーザが接続を希望する機器の種類に応じて、DSC100の制御部101がメモリカード120のカードコントローラ1201にApplicationモードの設定を行う。そして、DSC100及びメモリカード120は設定したApplicationモードに従った動作を行う。
(Pullモードの動作)
図8は、PullモードにおけるDSC100、メモリカード120、外部機器の一例としてのPC200の動作を示すシーケンス図である。なお、特に断らない限り、図8に示すDSC100とメモリカード120との間の通信はCard I/Oモジュール130,131の間でやり取りされるコマンドを示す。このPullモードでは、メモリカード120側のPTP Responderモジュール125がPTP-IPモジュール123と通信することにより、外部機器内のPTP Initiatorとの通信を実現する。すなわち、図6の矢印140に示すモジュール間通信が行われる。なお、以下の説明ではPC200がPTPにおけるInitiatorとして動作するものとする。PC200との通信はPTP-IPモジュール123が行う。
図8は、PullモードにおけるDSC100、メモリカード120、外部機器の一例としてのPC200の動作を示すシーケンス図である。なお、特に断らない限り、図8に示すDSC100とメモリカード120との間の通信はCard I/Oモジュール130,131の間でやり取りされるコマンドを示す。このPullモードでは、メモリカード120側のPTP Responderモジュール125がPTP-IPモジュール123と通信することにより、外部機器内のPTP Initiatorとの通信を実現する。すなわち、図6の矢印140に示すモジュール間通信が行われる。なお、以下の説明ではPC200がPTPにおけるInitiatorとして動作するものとする。PC200との通信はPTP-IPモジュール123が行う。
ここでは、メモリカード120が装着されたDSC100の電源がONであり、メモリカード120は無線通信部1202によって通信可能なネットワークを探索し、通信可能なネットワークがあれば自動接続するものとする。そして、図8のS801において、メモリカード120はPC200と同じネットワークに接続したものとして説明する。
メモリカード120のカードコントローラ1201は、無線通信部1202がネットワーク接続に成功すると、それをホスト機器であるDSC100の制御部101に通知する。
S802:ネットワークに接続されたことが通知されると、DSC100の制御部101は、PTP_SetDeviceInformationコマンドを用いて、PTPのDevice Discoveryにおいてネットワークにアドバタイズすべき情報や、PTPオペレーションでInitiatorに通知する情報をメモリカード120に送信する。PTP_SetDeviceInformationコマンドでは、装置の名前や型番、製造者、UUID (Universally Unique Identifier)、シリアル番号などを通知することができる。通知する情報が複数ある場合、制御部101は情報ごとにPTP_SetDeviceInformationコマンドを繰り返し送信する。
なお、カードコントローラ1201はDSC100からPTP_SetDeviceInformationコマンドによる情報を受け取らない場合においても、カードコントローラ1201内部に保持される初期値を用いて、PTPのDevice Discovery等を行うことも可能である。
なお、カードコントローラ1201はDSC100からPTP_SetDeviceInformationコマンドによる情報を受け取らない場合においても、カードコントローラ1201内部に保持される初期値を用いて、PTPのDevice Discovery等を行うことも可能である。
カードコントローラ1201は、メモリカード120のApplicationモードが設定される前に受信したPTP_SetDeviceInformationコマンドで通知された情報を、カードコントローラ1201内のメモリに保存されたDeviceInfo DataSetに反映する。
S803:DSC100の制御部101は、Device Discoveryに必要な情報をメモリカード120に通知し終わると、PTP_SwitchModeコマンドを発行して、メモリカード120のApplicationモードを設定する。ここでは、PTP_SwitchMode(pull)を発行し、メモリカード120にPullモードを設定している。
なお、Pullモードはメモリカード120と外部機器(PC200)との通信にDSC100が原則として関与しないモードである。例えばPullモードにおいてカードコントローラ1201は、予めデータ転送先として登録されているPC200やインターネット上のサーバと接続可能になると、メモリ部1203内のデータを自動転送するように設定されていて良い。従って、Pullモードのメモリカード120については、DSC100からメモリカード120のメモリ部1203の内容を変更する操作を禁止する。具体的には、メモリ部1203にDSC100からアクセスするためのメモリインタフェースの使用を禁止する。
S804:カードコントローラ1201は、Discovery for PTP-IPモジュール123及び、無線通信部1202を用い、接続しているネットワーク上でDevice Discovery (Advertise)を行う。ここでは、カードコントローラ1201は、S802でDSC100から受信したデバイス情報をネットワーク上にアドバタイズする。
S805:カードコントローラ1201は、PTPにおけるInitiatorとして動作するPC200から接続要求を受けると、PTP Responderモジュール125とPC200側のPTP InitiatorモジュールとのPTP-IPコネクションを確立する。
S806:カードコントローラ1201は、外部機器(PC200)とのPTP-IPコネクションが確立したことを、割り込み信号ISR(PTPIP Connected)を用いてDSC100の制御部101に通知する。制御部101は、この時点でメモリインタフェースの使用が禁止されていなければ、禁止する。従って、撮影操作や画像データの削除動作等は禁止される。あるいは内蔵メモリに記録可能な範囲での撮影操作は許可してもよい。
S807:その後、メモリカード120と外部機器(PC200)とは、Responderであるメモリカード120からデータを転送するためのPTPセッションを開始する。例えば、メモリカードの情報を要求するGetDeviceInfoオペレーションに引き続くセッション開始のためのOpenSessionオペレーションでセッションが開始される。その後、メモリカード120で有効なStorageIDを要求するGetStorageIDsオペレーション、StorageIDで特定したメディアに含まれるオブジェクトの数を要求するGetNumObjectsオペレーションなどが発行される。PTPを用いたメモリカード120からのデータ転送手順は公知であるため、詳細についての説明は省略する。
S808:セッションが終了すると、カードコントローラ1201は、PTP Responderモジュール125と、PC200のPTP InitiatorモジュールとのPTP-IPコネクションを切断する。
S809:カードコントローラ1201は、PTP-IPコネクションの切断を、割り込み信号ISR(PTPIP Disconnected)によって制御部101に通知する。制御部101はこの通知を受けると、メモリインタフェースの使用禁止を解除する。
S810:制御部101は、メモリカード120の動作モードをNo Applicationモードに戻すため、PTP_SwitchMode(exit)コマンドを発行する。カードコントローラ1201は、このコマンドに従い、メモリカード120をNo Applicationモードとし、No Applicationモードにおける動作を開始する。なお、メモリインタフェースの使用禁止の解除はS809の後でなく、S810の後でも良い。
S811:カードコントローラ1201は、例えばDSC100の電源がOFFされたり、無線通信機能を無効化する指示がなされたりした場合など、必要に応じてネットワーク接続を終了することができる。
(Path Throughモードの動作)
次に、Path ThroughモードにおけるDSC100、メモリカード120、外部機器の一例としてのPC200の動作を説明する。Path Throughモードは、DSC100と外部機器との間のPTPセッションを実現するモードである。このPath Throughモードでは、DSC100側のPTP Responderモジュール110がPTP-IPモジュール123とCard I/Oモジュール130,131を介して通信することにより、InitiatorであるPC200との通信を実現する。すなわち、図6の矢印141に示すモジュール間通信が行われる。PC200との通信はPTP-IPモジュール123が行う。
次に、Path ThroughモードにおけるDSC100、メモリカード120、外部機器の一例としてのPC200の動作を説明する。Path Throughモードは、DSC100と外部機器との間のPTPセッションを実現するモードである。このPath Throughモードでは、DSC100側のPTP Responderモジュール110がPTP-IPモジュール123とCard I/Oモジュール130,131を介して通信することにより、InitiatorであるPC200との通信を実現する。すなわち、図6の矢印141に示すモジュール間通信が行われる。PC200との通信はPTP-IPモジュール123が行う。
図9は、Path ThroughモードによるPTPセッションの開始後までのDSC100、メモリカード120、外部機器の一例としてのPC200の動作を示すシーケンス図である。なお、特に断らない限り図9に示すDSC100とメモリカード120との間の通信はCard I/Oモジュール130,131の間でやり取りされるコマンドを示す。なお、DSC100がメモリカード120からPTPオペレーションに関するコマンドを受信した場合、Card I/Oモジュール130はコマンドをPTPオペレーションとしてPTP Responderモジュール110に渡すこととする。図8と同じ動作については参照数字を共通とし、説明を省略する。
PTP-IPコネクションの確立が割り込み信号ISR(PTP IP Connected)でDSC100の制御部101に通知されるまでの手順は、S901においてPTP_SwitchModeコマンドでPath Troughモードが設定される点を除きPullモードと同様である。なお、S802におけるPTP_SetDeviceInformationコマンドによるディスカバリ情報の設定は、既に行われている場合には繰り返し行う必要はない。
先に述べたように、Path Throughモードでは、メモリカード120が外部機器(PC200)とDSC100とのPTP通信における中継機器のように機能する。そのため、PC200(のPTP Initiatorモジュール)から見た場合、Pullモードの場合と変わりがない。しかし、Path ThroughモードにおいてPTP通信を行うPTP Responderモジュールはメモリカード120内のPTP Responderモジュール125ではなく、DSC100内のPTP Responderモジュール110である。そのため、カードコントローラ1201はPTP-IPモジュール123が、PTP Responderモジュール125ではなく、DSC100内のPTP Responderモジュール110とPTP通信するように切り替える。
また、Path Throughモードが設定された場合、PTP_SwitchMode(Exit)を受信するまで、カードコントローラ1201はDSC100からのコマンドや指示があった場合を除き、メモリ部1203へのアクセスを禁止する。
まず、Path Throughモードでの動作を、GetDeviceInfoオペレーションについて説明する。
S902:カードコントローラ1201は、PC200のPTP Initiatorモジュールからオペレーションを受信したことを、割り込み信号ISR(Operation)により制御部101に通知する。ここでは、受信したオペレーションの種類や内容は伝えられず、オペレーションを受信したことだけが通知される。
S902:カードコントローラ1201は、PC200のPTP Initiatorモジュールからオペレーションを受信したことを、割り込み信号ISR(Operation)により制御部101に通知する。ここでは、受信したオペレーションの種類や内容は伝えられず、オペレーションを受信したことだけが通知される。
S903:制御部101は、通知に応答して、オペレーションの内容を取得するためにPTP_GetInfomationコマンドを発行する。
S904:カードコントローラ1201は、受信したオペレーション(GetDeviceInfo)を制御部101に送信する。これにより、DSC100のPTP Responderモジュール110がPC200のPTP InitiatorモジュールからのPTPオペレーションを受信する。
S904:カードコントローラ1201は、受信したオペレーション(GetDeviceInfo)を制御部101に送信する。これにより、DSC100のPTP Responderモジュール110がPC200のPTP InitiatorモジュールからのPTPオペレーションを受信する。
S905:制御部101は、GetDeviceInfoオペレーションに対して応答すべきDeviceInfoをPTP_SendDataコマンドを用いてカードコントローラ1201に送信する。これにより、メモリカード120内のPTP-IPモジュール123を介してPC200へDeviceInfoが送信される。
S906:DeviceInfoの送信完了をカードコントローラ1201から制御部101に通知する。
S907:制御部101は、ResponseをPTP Initiatorモジュールに送信するため、PTP_SendDataコマンドを用いてカードコントローラ1201にResponseの情報を送信する。
S908:PTP-IPモジュール123からPTP InitiatorモジュールにResponseが送信され、送信完了をカードコントローラ1201から制御部101に通知する。
S907:制御部101は、ResponseをPTP Initiatorモジュールに送信するため、PTP_SendDataコマンドを用いてカードコントローラ1201にResponseの情報を送信する。
S908:PTP-IPモジュール123からPTP InitiatorモジュールにResponseが送信され、送信完了をカードコントローラ1201から制御部101に通知する。
なお、S906〜S908において送信されるResponseは、PTPオペレーションを受信した場合に返送することが決められている情報であり、エラーコードやOKといった処理結果がInitiator側に通知される。
S910及びS911:PC200からのOpenSessionオペレーション、GetStorageIDオペレーションについても、GetDeviceInfoオペレーションを受信した場合と同様にして、制御部101から応答がなされる。
以下、データの転送要求が行われるまで必要なPTPオペレーションの処理が行われる。図10は、Path ThroughモードによるPTPセッションの開始後、外部機器からオブジェクトの送受信要求があった場合ならびにイベント発生時のDSC100、メモリカード120、外部機器の一例としてのPC200の動作を示すシーケンス図である。
まず、オブジェクト送信要求に対する処理を説明する。
S1001:カードコントローラ1201が、PTP-IPモジュール123を通じてPC200からGetObjectオペレーションを受信する。
S1002:S902〜S904と同様にして、制御部101がカードコントローラ1201からGetObjectオペレーションを受信する。
S1001:カードコントローラ1201が、PTP-IPモジュール123を通じてPC200からGetObjectオペレーションを受信する。
S1002:S902〜S904と同様にして、制御部101がカードコントローラ1201からGetObjectオペレーションを受信する。
S1003:制御部101は、メモリインタフェースを通じ、PTPを用いずに、GetObjectオペレーションのObjectHandleで指定されたオブジェクトを、ディレクトリパスを指定してメモリ部1203から読み出す。なお、この読み出しにはPTP Responderモジュール110は用いず、いわゆる通常のメモリカードからの処理が行われる。上述の通り、ObjectHandleArrayを参照することで、ObjectHandleに対応するディレクトリパスを知ることができる。
S1004:制御部101は、読み出したオブジェクトを、PTP_SendDataコマンドを用いてカードコントローラ1201に送信する。
S1005:カードコントローラ1201は、PTP-IPモジュール123を用いて、GetObjectオペレーションにより要求されたオブジェクトをPC200のPTP Initiatorモジュールへ送信する。
S1006,S1007:GetObjectオペレーションに対するResponseCodeが、カードコントローラ1201及びPTP-IPモジュール123を介して、制御部101からPC200のPTP Initiatorモジュールへ送信される。
S1005:カードコントローラ1201は、PTP-IPモジュール123を用いて、GetObjectオペレーションにより要求されたオブジェクトをPC200のPTP Initiatorモジュールへ送信する。
S1006,S1007:GetObjectオペレーションに対するResponseCodeが、カードコントローラ1201及びPTP-IPモジュール123を介して、制御部101からPC200のPTP Initiatorモジュールへ送信される。
次に、オブジェクト受信要求について説明する。
S1011:メモリカード120のPTP-IPモジュール123が、PC200からSendObjectオペレーションを受信する。
S1012:S902〜S904と同様にして、制御部101がカードコントローラ1201からSendObjectオペレーションを受信する。
S1011:メモリカード120のPTP-IPモジュール123が、PC200からSendObjectオペレーションを受信する。
S1012:S902〜S904と同様にして、制御部101がカードコントローラ1201からSendObjectオペレーションを受信する。
S1013:カードコントローラ1201は、PTP-IPモジュール123を通じて、PC200からオブジェクトを受信する。受信したオブジェクトはメモリカード120内(例えばカードコントローラ1201内のRAM)にバッファリングする。
S1014:カードコントローラ1201は割り込み信号ISR(Data)により、オブジェクトを受信したことを制御部101に通知する。制御部101は、PTP_ReceiveDataコマンドを発行し、カードコントローラ1201からオブジェクトを受信する。
S1015:制御部101は、Card I/Oモジュール130,131を通じ、受信したオブジェクトをディレクトリパス(フルパス又は絶対パス)を指定してメモリ部1203に書き込む。なお、この書き込みにはPTP Responder110は用いず、いわゆる通常のメモリカードへの書き込み処理が行われる。なお、オブジェクトを書き込むディレクトリはSendObjectオペレーションに先立つSendObjectInfoオペレーションでPC200側から指定されているか、もしくはPTP Responderモジュール110がSendObjectInfoオペレーションを受信した際に決定する。書き込みするパス名(ファイル名含む)は例えば、DCFに従って決定することができる。
S1016,S1017:SendObjectオペレーションに対するResponseCodeが、カードコントローラ1201及びPTP-IPモジュール123を介して、制御部101からPC200のPTP Initiatorモジュールへ送信される。
次に、イベントパケットの送信時の動作について説明する。イベントパケットは、ResponderからInitiatorにデータ(PTPパケット)を送信したい場合(例えばエラーを知らせたい場合など)に、Initiatorにデータ取得要求(GetObject)の発行を依頼するパケットである。
S1021:制御部101は、PTP_SendDataコマンドを用いて、パケット種別をイベントパケットとして、ObjectHandleを送信する。
S1022:カードコントローラ1201は受信したデータがイベントパケットであることを認識し、受信したObjectHandleを含んだRequestObjectTransferイベントをPTP-IPモジュール123を通じてPC200のPTP Initiatorモジュールに送信する。
その後、Initiator側から、RequestObjectTransferイベントに含まれたObjectHandleを指定したGetObjectオペレーションが発行される。
S1022:カードコントローラ1201は受信したデータがイベントパケットであることを認識し、受信したObjectHandleを含んだRequestObjectTransferイベントをPTP-IPモジュール123を通じてPC200のPTP Initiatorモジュールに送信する。
その後、Initiator側から、RequestObjectTransferイベントに含まれたObjectHandleを指定したGetObjectオペレーションが発行される。
図10の手順では、メモリカード120内のデータをPC200に送信する場合、メモリカード120からPTPを用いずにDSC100にデータを読み出し、DSC100からメモリカード120にPTPオペレーションでデータを送信する必要があった。また、PC200から受信したデータをメモリカード120に書き込む場合も、メモリカード120にバッファリングされているデータをPTPオペレーションでDSC100が取得し、PTPを用いずにメモリカード120に書き込む必要があった。この、メモリカードとDSC間でのデータの往復を省略する変形例について、図11に示すシーケンス図を用いて説明する。図11において、図10と同じ手順については参照数字を共通とし、説明を省略する。
まず、GetObjectオペレーションに対する動作について説明する。
S1101:制御部101はS1002のやりとりでGetObjectオペレーションを受信する。制御部101は、GetObjectオペレーションで指定されたObjectHandleに対応するディレクトリパス(フルパス又は絶対パス)をPTP_SendFileコマンドで送信する。
S1101:制御部101はS1002のやりとりでGetObjectオペレーションを受信する。制御部101は、GetObjectオペレーションで指定されたObjectHandleに対応するディレクトリパス(フルパス又は絶対パス)をPTP_SendFileコマンドで送信する。
S1005:カードコントローラ1201は、PTP_SendFileコマンドで指定されたディレクトリパスに対応するオブジェクトをメモリ部1203から読み出す。そして、カードコントローラ1201は、PTP-IPモジュール123を通じて、読み出したオブジェクトをPC200のPTP_Initiatorモジュールに送信する。
S1102:制御部101は、ResponseCodeを作成するため、Read PTP Progerssコマンドを送信し、GetObjectオペレーションで要求されたオブジェクトの送信結果を取得する。カードコントローラ1201は、PTP-IPモジュール123を通じて送信結果を返送する。
S1006:制御部101は、GetObjectオペレーションで要求されたオブジェクトの送信結果に基づいてResponseCodeを作成し、PTP_SendDataコマンドでカードコントローラ1201に送信する。
S1007:カードコントローラ1201は、PTP_SendDataコマンドで送信されたデータ(ResponseCode)を、PTP-IPモジュール123を通じてPC200のPTP_Initiatorモジュールに送信する。
次に、SendObjectオペレーションに対する動作について説明する。
S1101:制御部101はS1012のやりとりでSendObjectオペレーションを受信する。
S1013:カードコントローラ1201が、PTP-IPモジュール123を通じてPC200からオブジェクトを受信する。受信したオブジェクトはメモリカード120内(例えばカードコントローラ1201内のRAM)にバッファリングする。
S1101:制御部101はS1012のやりとりでSendObjectオペレーションを受信する。
S1013:カードコントローラ1201が、PTP-IPモジュール123を通じてPC200からオブジェクトを受信する。受信したオブジェクトはメモリカード120内(例えばカードコントローラ1201内のRAM)にバッファリングする。
S1111:カードコントローラ1201は割り込み信号ISR(Data)により、オブジェクトを受信したことを制御部101に通知する。
S1112:制御部101は、受信したオブジェクトの書き込み場所及びファイル名を示したディレクトリパス(フルパス又は絶対パス)をPTP_ReceiveFileコマンドでカードコントローラ1201に送信する。カードコントローラ1201は、バッファリングされたオブジェクトを、メモリ部1203内の、PTP_ReceiveFileコマンドで指定されたディレクトリパスに書き込む。
S1112:制御部101は、受信したオブジェクトの書き込み場所及びファイル名を示したディレクトリパス(フルパス又は絶対パス)をPTP_ReceiveFileコマンドでカードコントローラ1201に送信する。カードコントローラ1201は、バッファリングされたオブジェクトを、メモリ部1203内の、PTP_ReceiveFileコマンドで指定されたディレクトリパスに書き込む。
S1114:制御部101は、ResponseCodeを作成するため、Read PTP Progerssコマンドを送信し、SendObjectオペレーションで要求されたオブジェクトの受信(書き込み)結果を取得する。カードコントローラ1201は、受信(書き込み)結果を返送する。この返送もPTPを用いずに行われる。
S1016:制御部101は、SendObjectオペレーションで要求されたオブジェクトの受信(書き込み)結果に基づいてResponseCodeを作成し、PTP_SendDataコマンドでカードコントローラ1201に送信する。
S1017:カードコントローラ1201は、PTP_SendDataコマンドで送信されたデータ(ResponseCode)を、PTP-IPモジュール123を通じてPC200のPTP_Initiatorモジュールに送信する。
S1017:カードコントローラ1201は、PTP_SendDataコマンドで送信されたデータ(ResponseCode)を、PTP-IPモジュール123を通じてPC200のPTP_Initiatorモジュールに送信する。
(DPSモードの動作)
次に、DPSモードにおけるDSC100、メモリカード120、外部機器の一例としてのプリンタ300の動作を説明する。DPSモードは、DSC100とプリンタとの間でPTPセッションによるダイレクトプリントを実現するモードである。従って、PTP通信はDSC100のPTP Responderモジュール110とプリンタ300のPTP Initiatorモジュールとの間で行われ、メモリカード120は基本的にはPath Throughモードと同様、中継機器のように機能する。このDPSモードでは、DSC100側のPTP Responderモジュール110がPTP-IPモジュール123とCard I/Oモジュール130,131を介して通信することにより、Initiatorとの通信を実現する。すなわち、図6の矢印141で示すモジュール間通信が行われる。
なお、以下の説明ではプリンタ300がPTPにおけるInitiatorとして動作するものとする。プリンタ300との通信はPTP-IPモジュール123が行う。
次に、DPSモードにおけるDSC100、メモリカード120、外部機器の一例としてのプリンタ300の動作を説明する。DPSモードは、DSC100とプリンタとの間でPTPセッションによるダイレクトプリントを実現するモードである。従って、PTP通信はDSC100のPTP Responderモジュール110とプリンタ300のPTP Initiatorモジュールとの間で行われ、メモリカード120は基本的にはPath Throughモードと同様、中継機器のように機能する。このDPSモードでは、DSC100側のPTP Responderモジュール110がPTP-IPモジュール123とCard I/Oモジュール130,131を介して通信することにより、Initiatorとの通信を実現する。すなわち、図6の矢印141で示すモジュール間通信が行われる。
なお、以下の説明ではプリンタ300がPTPにおけるInitiatorとして動作するものとする。プリンタ300との通信はPTP-IPモジュール123が行う。
アプリケーション層であるPictBridge Applicationモジュール112が、ダイレクトプリントプロトコル層であるDPSモジュール111とその下位層の各モジュールを用いてダイレクトプリント機能を実現する。DPSモジュール111の下位層とは、PTP-Responder、PTP-IP、TCP/IP、WirelessLANの各モジュールである。
以下では、CIPA DC-001-2003に記載された標準的なシーケンスに従い、PictBridge対応機器同士が接続を行って、最初のプリントを行うまでの標準的なケースについて具体的な動作を説明する。
以下に説明する処理は、メモリカード120とプリンタ300との間でみれば、従来DSC100とプリンタ300とをUSB接続してPictBridgeに準拠したダイレクトプリントを実行する際に行われていたやりとりと同一である。本実施形態では、Path Throughモードと同様、DPSモードに設定されたメモリカード120を通じて、従前と同様のやりとりをDSC100とプリンタ300との間で実現することを特徴とする。
まず、図12A及び図12Bに示すシーケンスチャートを用いて、DPS Dicovery動作を説明する。なお、特に断らない限り、図12Aに示すDSC100とメモリカード120との間の通信はCard I/Oモジュール130,131の間でやり取りされるコマンドを示す。なお、DSC100がメモリカード120からPTPオペレーションに関するコマンドを受信した場合、Card I/Oモジュール130は受信したコマンドをPTPオペレーションとしてPTP Responderモジュール110に渡すこととする。ここでも、S801において、メモリカード120が接続可能なネットワークを探索し、自動的に接続を行っているものとする。また、接続できた時点でDSC100には割り込み信号が送信される。
S1201:図7に示したようなGUIからプリンタへの接続が指示されると、制御部101はPTP Applicaitonモジュール113によってPTP_SwitchMode(DPS)コマンドを発行し、メモリカード120をDPSモードに設定する。カードコントローラ1201は、DPSモードへの設定を認識すると、Path Throughモードと同様、DSC100からの指示があった場合を除き、メモリ部1203へのアクセスを禁止する。
S1202:DSC100からの指示に応じて、カードコントローラ1201は、Discovery for DPSモジュール127を用いてPictBridge Printer Discoveryを行う。DPSモードにおけるディスカバリは、PullモードやPath Throughモードでのディスカバリがアドバタイズ(存在の開示)であるのに対し、プリンタの探索である。従って、DPSモードへの設定前のPTP_SetDeviceInformationコマンドは必ずしも必要ない。本実施形態で、カードコントローラ1201はDiscovery for DPSモジュール127を用いて、UPnPプロトコルでディスカバリを行う。ディスカバリにより、ネットワーク上に存在する、DPSに対応したプリンタの識別情報(UUID)及び名称等が取得され、プリンタリストが生成される。
なお、ディスカバリは例えば定期的に実行し、探索結果に変化があった場合には、カードコントローラ1201から割り込み信号ISRによってDSC100に通知することができる。
なお、ディスカバリは例えば定期的に実行し、探索結果に変化があった場合には、カードコントローラ1201から割り込み信号ISRによってDSC100に通知することができる。
S1203:PictBridge Printer Discoveryにより、DPSに対応したプリンタが探索できたら、カードコントローラ1201は、割り込み信号ISRによって制御部101に通知する。
S1204:制御部101は、DPS_GetPrintListコマンドを発行し、プリンタリストを要求する。
S1205:カードコントローラ1201は、生成したプリンタリストを制御部101に送信する。
S1204:制御部101は、DPS_GetPrintListコマンドを発行し、プリンタリストを要求する。
S1205:カードコントローラ1201は、生成したプリンタリストを制御部101に送信する。
S1206:制御部101は、受信したプリンタリストから、ユーザがプリンタを選択するためのGUI画面を作成し、表示部105に表示する。GUIの様式に制限は無いが、ユーザがプリンタを特定できる情報を提示する。
ユーザが操作部104を通じてリスト中のプリンタ一つを選択し、決定ボタンを押下すると、制御部101はどのプリンタが選択されたか認識する。そして、制御部101は、選択されたプリンタの識別情報(UUID)を指定したDPS_ConnectPrinterコマンドを送信する。
ユーザが操作部104を通じてリスト中のプリンタ一つを選択し、決定ボタンを押下すると、制御部101はどのプリンタが選択されたか認識する。そして、制御部101は、選択されたプリンタの識別情報(UUID)を指定したDPS_ConnectPrinterコマンドを送信する。
S1207:PTP-IPモジュール123は、DPS_ConnectPrinterコマンドで指定されたUUIDに対応するプリンタとPTP-IPコネクションを確立する。コネクションの確立は割り込み信号ISR(PTPIP Connected)によりカードコントローラ1201から制御部101に通知される。
S1208:PTP-IPのコネクションが確立すると、GetDeviceInfo、OpenSession、GetNumObjects、GetObjectHandlesの各オペレーションが順次Initiator(プリンタ300)から発行される。
S1209:Path Throughモードの説明で述べたように、Initiatorからのオペレーション受信は割り込み信号ISR(Operation)によりResponderであるDSC100に通知される。そして、DSC100はPTP_GetInformationコマンドを発行してメモリカード120が受信したPTPオペレーションを取得し、取得したオペレーションに応答するデータを作成する。DSC100は作成したデータをPTP_SendDataコマンドによりメモリカード120に送信し、PTP-IPモジュール123がプリンタ300に送信する。このような手順を、上述した各オペレーションについて順次実行する。
なお、Path Throughモードと同様、DPSモードにおいても、ResponderであるDSC100がメモリカード120内に記録されているオブジェクトの管理を行う。そのため、PTPにおいてオブジェクトの特定に必要なObjectHandleの割り当てや、オブジェクトの数などの情報を取得、管理する必要がある。図12Aでは、Initiatorであるプリンタ300からのGetNumObjectsオペレーションに応答する際に、メモリカード120内のオブジェクトを計数し、応答すべきNumObjectsを生成している(S1210)。同様に、GetObjectHandlesオペレーションに応答する際に、メモリカード120内の各オブジェクトについてObjectHandleを割り当て、その集合体であるObjectHandleArrayを作成している(図12B:S1211)。
もちろん、これらの情報は例えば電源投入時に生成し、その後は変更が検出された時点で更新するようにしてもよい。
もちろん、これらの情報は例えば電源投入時に生成し、その後は変更が検出された時点で更新するようにしてもよい。
S1213,S1212:PictBridge規格では、DPS Discoveryにおいて、ResponderからはDDISCVRY.DPS、InitiatorからはHDISCVRY.DPSという所定のファイルの存在を通知しあうことで互いがPictBridge対応機器であることを確認する。これらスクリプトファイルの交換により、プリンタ300がPictBridge 対応機器であることを認識すると、PictBridge Applicationモジュールが以後の制御を行う。
次に、図13に示すシーケンス図を用いて、DPS_ConfigurePrintServiceの動作について説明する。このDPS_ConfigurePrintServiceでは、プリンタ300が有するPrintServiceの開始をDSC100が要求する。また、機器情報の交換が行われる。
図13の処理は、本質的に
DSC100からプリンタ300に対してスクリプト”DREQUEST.DPS”を送信(S1301)、
DSC100からプリンタ300に対してDPSスクリプト”ConfigurePrintService”を送信(S1302)、
プリンタ300からDSC100に対してスクリプト”HRESPONSE.DPS”を送信(S1303)、
プリンタ300からDSC100に対してDPSスクリプト”ConfigurePrintService result”を送信(S1304)、
するものである。
DSC100からプリンタ300に対してスクリプト”DREQUEST.DPS”を送信(S1301)、
DSC100からプリンタ300に対してDPSスクリプト”ConfigurePrintService”を送信(S1302)、
プリンタ300からDSC100に対してスクリプト”HRESPONSE.DPS”を送信(S1303)、
プリンタ300からDSC100に対してDPSスクリプト”ConfigurePrintService result”を送信(S1304)、
するものである。
“DREQUEST.DPS”はDSC100からプリンタ300に対して、S1302でのDPSスクリプトの送信を開始することを通知するためのものである。また”HRESPONSE.DPS”はプリンタ300からDSC100に対して、S1304でのDPSスクリプトの送信を開始することを通知するためのものである。
DPSスクリプト”ConfigurePrintService”は、図14(a)に示すように、DSC100の装置情報(メーカ名、製品名、シリアル番号等)などを示すXML形式のスクリプトである。同様に、DPSスクリプト”ConfigurePrintService result”はプリンタ300に関する情報(メーカ名、製品名、シリアル番号等)を示すXML形式のスクリプトである。
DPSスクリプト”ConfigurePrintService”は、図14(a)に示すように、DSC100の装置情報(メーカ名、製品名、シリアル番号等)などを示すXML形式のスクリプトである。同様に、DPSスクリプト”ConfigurePrintService result”はプリンタ300に関する情報(メーカ名、製品名、シリアル番号等)を示すXML形式のスクリプトである。
DPS_ConfigurePrintServiceシーケンスに引き続き、DPS_GetCapability, DPS_StartJobシーケンスが行われる。このシーケンスは、S1302で送信されるDPSスクリプトがそれぞれ”GetCapability”、”StartJob”に、S1304で送信されるDPSスクリプトがそれぞれ”GetCapability result”、”StartJob result”になる以外、図13と同一であるため説明を省略する。
DPS_GetCapabilityは、DSC100からプリンタ300へ、プリンタ300に設定可能な能力を問い合わせるシーケンスである。PictBriege Applicationモジュール112は、プリンタ300からの応答内容に応じた設定用のGUIを生成し、ユーザに設定させることができる。図14(b)に、DPS_GetCapabilityシーケンスでやりとりされるDPSスクリプト”GetCapability”及び”GetCapability result”の例を示す。
StartJobは、例えばDSC100のユーザからプリント開始指示が操作部104を通じてなされたことにより、DSC100からプリンタ300に、各種印刷設定情報とともに印刷開始を要求するシーケンスである。図14(c)に、StartJobシーケンスでやりとりされるDPSスクリプト”StartJob”及び”StartJob result”の例を示す。
次のシーケンスはDPS_GetFileInfo及びDPS_GetFileである。図15において、S1501がDPS_GetFileInfoシーケンスであり、プリンタ300がこれから取得する(DSC100がプリントしようとする)データの情報を取得している。取得される情報は、画像の大きさ(画素数)やファイル名などである。そして、S1502で示すDPS_GetFileシーケンスにより、DPS_GetFileInfoシーケンスで情報を取得したファイルをDSC100からプリンタ300が取得する。
なお、要求されたデータをDSC100が送信する際、図15では図13のS1003と同様に、メモリカード120から一旦DSC100に読み込み、メモリカード120を介して送信するものとしている。しかし、図11に示したように、メモリカード120からDSC100に読み込みせずに、DSC100からディレクトリパスを指定してメモリカード120から送信させるようにしてもよい。
プリントするデータの転送が終了すると、プリンタ300は設定に基づいてプリント処理を実行する。また、プリンタ300は、装置の状態をDPS_NotifyDeviceStatusシーケンスでDSC100に通知することができる。
図16に示すシーケンス図を用いて、DPS_NotifyDeviceStatusの動作について説明する。このDPS_NotifyDeviceStatusでは、プリンタ300の状態をプリンタ300がDSC100に送信する。
図16の処理は、
プリンタ300からDSC100に対してスクリプト”HREQUEST.DPS”を送信(S1601)、
プリンタ300からDSC100に対してDPSスクリプト”NotifyDeviceStatus (Printing)”を送信(S1602)、
DSC100からプリンタ300に対してスクリプト”DRESPONSE.DPS”を送信(S1603)、
DSC100からプリンタ300に対してDPSスクリプト”NotifyDeviceStatus result”を送信(S1604)、
するものである。
プリンタ300からDSC100に対してスクリプト”HREQUEST.DPS”を送信(S1601)、
プリンタ300からDSC100に対してDPSスクリプト”NotifyDeviceStatus (Printing)”を送信(S1602)、
DSC100からプリンタ300に対してスクリプト”DRESPONSE.DPS”を送信(S1603)、
DSC100からプリンタ300に対してDPSスクリプト”NotifyDeviceStatus result”を送信(S1604)、
するものである。
“HREQUEST.DPS”はプリンタ300からDSC100に対して、S1602でのDPSスクリプトの送信を開始することを通知するためのものである。また”DRESPONSE.DPS”はDSC100からプリンタ300に対して、S1604でのDPSスクリプトの送信を開始することを通知するためのものである。
DPSスクリプト”NotifyDeviceStatus”は、図17(a)に示すように、プリンタ300の状況を示すXML形式のスクリプトである。プリンタ300の状況としては、プリント中かどうか、新しいジョブを受け付け可能かどうか、エラーが発生しているかどうか、エラーの原因は何か、等がある。DPSスクリプト”NotifyDeviceStatus result”はDSC100から単に応答として返されるXML形式のスクリプトである。
また、プリンタ300がプリント中のジョブの状態をDSC100に通知する場合には、図16と同様のシーケンスであるNotifyJobStatusを用いることができる。NotifyJobStatusは、S1602で送信されるDPSスクリプトが”NotifyJobStatus()”(括弧内にはジョブの状態を示す記述が入る)に、S1604で送信されるDPSスクリプトが"NotifyJobStatus result”になる以外、図16と同一であるため説明を省略する。
図17(b)に、NotifyJobStatusシーケンスでやりとりされるスクリプト”NotifyJobStatus”及び”NotifyJobStatus result”の例を示す。この例では、”NotifyJobStatus”において、現在4/6ページが印刷中であることなどが通知される。”NotifyJobStatus result”は応答を目的としたスクリプトである。
以上説明したように、本実施形態によれば、無線通信機能付きメモリカードにPTP Responderを持たせ、ホスト機器(DSC)が有するPTP ResponderとどちらがPTP-IPモジュールを用いて外部機器とPTP通信するかを切り替え可能にした。そのため、メモリカードがホスト機器と独立して外部機器とPTPによるデータ転送を行うことも、ホスト機器がメモリカードを無線アダプタのように用いて外部機器とPTP通信することも可能となる。その結果、無線通信機能付きメモリカードを、PTPに対応した既存の機器を用いた幅広い用途に利用することが可能となる。
なお、Pullモード、DPSモード、Path Throughモードの中では、Pullモードの汎用性が高いと考えられる。そこで、DSC100はメモリカード120がネットワークに接続された場合には、まずPTP_SwitchMode(pull)コマンドを自動的に発行するようにしてもよい。DLNAを用いるかPTPを用いるかをユーザに選択させる場合であれば、PTPを用いることが選択されたことに応じてPTP_SwitchMode(pull)コマンドを自動的に発行するようにしてもよい。
<第2の実施形態>
第1の実施形態におけるPullモード(図8)やPath Throughモード(図9)では、カードコントローラ1201がAdvertiseコマンドを用いてネットワーク上でアドバタイズすることにより、ネットワーク上のPC200に自機を検出させていた。例えば第1の実施形態におけるPullモードのシーケンスを示す図8では、カードコントローラ1201がS803でPTP_SwitchMode(Pull)を受信すると、S804で接続しているネットワーク上でDevice Discovery(Advertise)を行う。そして、ネットワーク上に存在し、PTPにおけるInitiatorとして動作する機器がこのDeviceDiscoveryを検知すると、接続要求を送信する。
第1の実施形態におけるPullモード(図8)やPath Throughモード(図9)では、カードコントローラ1201がAdvertiseコマンドを用いてネットワーク上でアドバタイズすることにより、ネットワーク上のPC200に自機を検出させていた。例えば第1の実施形態におけるPullモードのシーケンスを示す図8では、カードコントローラ1201がS803でPTP_SwitchMode(Pull)を受信すると、S804で接続しているネットワーク上でDevice Discovery(Advertise)を行う。そして、ネットワーク上に存在し、PTPにおけるInitiatorとして動作する機器がこのDeviceDiscoveryを検知すると、接続要求を送信する。
複数の機器が接続要求を送信した場合、メモリカード120のPTP-IPモジュール123は最初に受信した接続要求の送信元機器とPTP-IPコネクションを確立するのが通常である。しかしながら、この方法では、Target DeviceであるPC200以外の機器からの接続要求が最初に受信される可能性があり、ユーザが所望する機器と必ず接続できるとは限らない。そこで本実施形態では、ユーザが接続を所望するInitiatorからの接続要求のみを受け入れることにより、確実にPTP-IPコネクションが確立できるようにしたことを特徴とする。
本実施形態においては、例えばPC200のHDD208に、予めメモリカード120に接続情報を記録するためのプログラムが保存されているものとする。このプログラムは、PC200がRMD209として有する(又は接続されている)カード読取装置にメモリカード120が装着されると、CPU205によって実行される。このプログラムは例えば、メモリカード120のメモリ部1203にPC200とPTP-IPコネクションを確立するための接続情報として、PC200の識別情報(UUID)及び名称等を記録する。
接続情報が記録されたメモリカード120がDSC100に装着された状態で、例えば図8のPullモードを実行した場合を考える。PTP-IPモジュール123は、S805においてPTP-IPコネクションを確立する際、メモリ部1203に識別情報が記録されている場合には、その識別情報に対応する機器から受信した接続要求に応答してPTP-IPコネクションを確立する。PTP-IPモジュール123は、メモリカードに記録された識別情報に対応しない機器から受信した接続要求については、無視または拒否する。
PTP-IPモジュール123は、S804においてデバイス情報をアドバタイズした後(前でもよい)、メモリ部1203に識別情報が記録されているか確認し、識別情報が記録されていれば、受信した接続要求に含まれる送信元の識別情報と比較する。この際、接続要求を受信する毎にメモリ部1203にアクセスしてもよいが、予め識別情報を読み出しておくと、メモリ部1203へのアクセス回数を低減できる。なお、メモリ部1203に識別情報を含んだ接続情報が記録されていない場合、PTP-IPモジュール123は第1の実施形態と同様、最初に受信した接続要求の送信元機器とPTP-IPコネクションを確立する。
このように、本実施形態によれば、メモリカード120は所望の機器と確実にPTP-IPコネクションを確立することが可能となる。なお、メモリカード120に接続情報を予め記録する方法としては、所望の機器で直接記録する方法に限定されない。例えば、所望の機器に対応する接続情報を通信により取得してDSC100によって記録したり、所望の機器以外の機器が有するカードリーダを用いて記録したりすることができる。これらの方法であれば、PTP通信機能やPTP通信のためのGUIなどを有さないDSC等であっても接続情報が記録されたメモリカードを作成でき、Pullモードにて所望のInitiatorと接続することが可能となる。
なお、ユーザによって接続情報を設定することを可能としてもよい。例えば表示部105に接続情報を入力するためのGUIを表示し、ユーザが操作部104を操作して識別情報を入力する。入力された接続情報は、カードコントローラ1201がメモリカード120のメモリ部1203に記録するか、制御部101が不揮発性メモリ102に保存することができる。なお、不揮発性メモリ102に保存する場合、制御部101は、図8のS804にてDevice Discovery (Advertise)が実行されるきっかけとなるPTP_SwitchModeコマンドの引数に、不揮発性メモリ102から読み出した識別情報(UUID)を含める。
また、予めPTP_SetDeviceinformationの引数に不揮発性メモリ102から読み出した識別情報(UUID)を含めることもできる。
さらに、制御部101は、不揮発性メモリ102から読み出した識別情報(UUID)を記載した所定のファイルを、メモリカード120に書き込むようにしてもよい。この場合、メモリカード120は、PTP_SetDeviceinformationまたはPTP_SwitchModeコマンドの受信に応じて所定のファイルを参照し、識別情報(UUID)を特定する。この場合は、各コマンドに識別情報(UUID)を引数として与える必要はない。
さらに、制御部101は、不揮発性メモリ102から読み出した識別情報(UUID)を記載した所定のファイルを、メモリカード120に書き込むようにしてもよい。この場合、メモリカード120は、PTP_SetDeviceinformationまたはPTP_SwitchModeコマンドの受信に応じて所定のファイルを参照し、識別情報(UUID)を特定する。この場合は、各コマンドに識別情報(UUID)を引数として与える必要はない。
なお、本実施形態ではPullモードを例に説明したが、Path Throughモード(図9のS804)でも同様の処理を実行することが可能である。
<第3の実施形態>
第2の実施形態は、所望の機器と確実に接続するため、接続したい機器の情報を予め設定しておくものであった。しかしながら、ネットワークに参加している機器は時間と共に変化する場合も多く、予め機器の情報を設定することが必ずしも容易でないこともある。そのため、本実施形態では、現在ネットワークに参加している機器から、所望の接続機器を選択可能とするものである。
第2の実施形態は、所望の機器と確実に接続するため、接続したい機器の情報を予め設定しておくものであった。しかしながら、ネットワークに参加している機器は時間と共に変化する場合も多く、予め機器の情報を設定することが必ずしも容易でないこともある。そのため、本実施形態では、現在ネットワークに参加している機器から、所望の接続機器を選択可能とするものである。
以下、PathThroughモードを例に説明する。図18は、PathThroughモードにおけるDSC100、メモリカード120、外部機器の一例としてのPC200の動作を示すシーケンス図である。
なお、図18では図9と同様の処理を行うステップについては参照数字を共通とし、図9と差異があるステップのみを説明する。
なお、図18では図9と同様の処理を行うステップについては参照数字を共通とし、図9と差異があるステップのみを説明する。
S1801:S901にてPathThrouthモードへの設定が完了すると、制御部101はPTP_StartSearch()コマンドを発行し、メモリカード120に対し、接続中のネットワーク上に存在するInitiatorの検索実行を要求する。
なお、PTP_StartSearch()コマンドの引数には、検索対象とするディスカバリプロトコル、及び検索対象の種類を指定することが可能である。ディスカバリプロトコルとは、例えばUPnPやMulticastDNSを指す。検索対象の種類とは、例えば、UPnPであればTargetDeviceを指し、MulticastDNSであればServiceTypeを指す。PTP_StartSearch()コマンドに引数が与えられている場合、カードコントローラ1201は、指定された条件での機器検索の実行が要求されたものと解釈する。引数がない場合は、カードコントローラ1201は、検索可能なディスカバリプロトコル、および対象機種の種類すべての機器検索の実行が要求されたものと解釈する。
また、制御部101は、予めメモリカード120のメモリ部1203やDSC100の不揮発性メモリ102に保存されている情報をDSC100のRAM103にロードして、PTP_StartSearch()コマンドの引数として与えてもよい。さらに、S802のPTP_SetDeviceInformationコマンドにて、メモリカード120が検索可能なディスカバリプロトコルの情報や検索対象の種類を取得し、PTP_StartSearch()コマンドの引数として使用してもよい。
S1802:カードコントローラ1201は、PTP_StartSearch()コマンドで指定された条件に従って、接続しているネットワーク上に存在する機器の検索(Device Discovery(Search))を実行する。ディスカバリにより、ネットワーク上に存在する、検索条件に合致したInitiatorの識別情報(UUID)及び名称等が取得され、カードコントローラ1201は取得した情報からInitiatorリストを生成する。なお、機器検索は例えば定期的に実行し、探索結果に変化があった場合には、カードコントローラ1201から割り込み信号ISRによってDSC100に通知することができる。
S1803:Device Discovery(Search)により、検索条件に対応したInitiatorが探索できたら、カードコントローラ1201は、割り込み信号ISRによって制御部101に通知する。
S1804:制御部101は、PTP_GetDeviceListコマンドを発行し、Initiatorリストを要求する。
S1805:カードコントローラ1201は、生成したInitiatorリストを制御部101に送信する。
S1806:制御部101は、受信したInitiatorリストから、ユーザがInitiatorを選択するためのGUI画面を作成し、表示部105に表示する。GUIの様式に制限は無いが、指定可能なInitiatorの各々を特定できる情報をユーザが選択可能に提示する。ここでは、指定可能なInitiatorを特定できる情報を選択可能にリスト表示するGUIを用いるものとする。
ユーザが操作部104を通じてリスト中のInitiatorの1つを選択し、決定ボタンを押下すると、制御部101はどのInitiatorが選択されたか認識する。そして、制御部101は、選択されたInitiatorの識別情報(UUID)を指定したPTP_StartAdvertise(UUID)コマンドをメモリカード120に送信する。
S804:カードコントローラ1201がS803でPTP_StartAdvertise(UUID)コマンドを受信すると、S804でPTP-IPモジュール123は、接続しているネットワーク上でDevice Discovery(Advertise)を行う。そして、ネットワーク上に存在し、PTPにおけるInitiatorとして動作する機器がこのDeviceDiscoveryを検知すると、接続要求を送信する。
PTP-IPモジュール123は、PTP_StartAdvertise(UUID)で指定されたUUIDに対応する機器から受信した接続要求に応答してPTP-IPコネクションを確立する。PTP-IPモジュール123は、PTP_StartAdvertise(UUID)で指定されたUUIDに対応しない機器から受信した接続要求については、無視または拒否する。
S1807:PTP-IPモジュール123は、PTP_ StartAdvertiseコマンドで指定されたUUIDに対応するInitiatorとPTP-IPコネクションを確立する。コネクションの確立は割り込み信号ISR(PTPIP Connected)によりカードコントローラ1201から制御部101に通知される。
このように、本実施形態では、PTP-IPコネクションを確立したい時点でネットワーク上に存在するInitiatorのうち、ユーザが接続を所望するInitiatorとPTP-IPコネクションを確立することができる。なお、本実施形態では、PathThroughモードで説明したが、Pullモードで実行されてもよい。ただし、Pullモードは、PTP通信機能やPTP通信のためのGUIなどを有さないDSC等にPTP通信機能を与えることを想定したモードであり、主にはPCなどInitiator側を操作して画像を取得することを目的としたモードである。これに対して、PathThroughモードは、DSC100がすでに保有しているPTP通信機能やPTP通信のためのGUIリソースを有効的に活用するためのモードである。したがって、Initiatorへの画像送信をDSC100を操作して行うことが想定される。
このようなPullモードとPathThroughモードの特徴の違いを鑑みると、例えばPullモードでは第1の実施形態のようにPC200側からの接続を行う構成が考えられる。一方、PathThroughモードでは本実施形態のようにDSC100が主体的に接続相手を特定する構成が考えられる。
また、他の構成として、例えばPullモードでは第2の実施形態の接続方法を採用してDSC100側の操作を最小限にし、PathThroughモードでは本実施形態のような接続方法をとる構成も考えられる。
<他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (2)
- ホスト機器に着脱可能な記録媒体であって、
前記ホスト機器と異なる外部機器と、無線通信を行うための無線通信手段と、
前記無線通信手段を通じて、前記外部機器とPTP(Picture Transfer Protocol)に準拠した通信を行い、前記記録媒体を前記PTPにおけるResponderとして機能させるPTP Responderモジュールと、
前記無線通信手段を通じた前記外部機器とのPTP通信を、前記記録媒体が有する前記PTP Responderモジュールを用いて行うか、前記記録媒体が装着されたホスト機器が有する、前記ホスト機器を前記Responderとして機能させるPTP Responderモジュールを用いて行うかを、前記ホスト機器から設定されたモードに応じて切り替えるコントローラとを有し、
前記無線通信手段は、前記無線通信を行う外部機器を決定するための処理を、前記ホスト機器から設定されたモードに応じて異ならせることを特徴とする記録媒体。 - 撮像装置であって、
請求項1記載の記録媒体を着脱可能に装着するための装着手段と、
前記撮像装置を前記Responderとして機能させるPTP Responderモジュールとを有し、
前記ホスト機器として動作することを特徴とする撮像装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011286635A JP5875363B2 (ja) | 2011-12-27 | 2011-12-27 | 記録媒体及びそれを用いる撮像装置 |
US14/356,964 US20140300763A1 (en) | 2011-12-27 | 2012-12-14 | Recording medium and control method thereof |
PCT/JP2012/083173 WO2013099781A1 (en) | 2011-12-27 | 2012-12-14 | Recording medium and control method thereof |
CN201280064997.6A CN104012164A (zh) | 2011-12-27 | 2012-12-14 | 记录介质及其控制方法 |
EP12861240.5A EP2798902A4 (en) | 2011-12-27 | 2012-12-14 | RECORDING MEDIA AND CONTROL PROCEDURE THEREFOR |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011286635A JP5875363B2 (ja) | 2011-12-27 | 2011-12-27 | 記録媒体及びそれを用いる撮像装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013135447A true JP2013135447A (ja) | 2013-07-08 |
JP5875363B2 JP5875363B2 (ja) | 2016-03-02 |
Family
ID=48697269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011286635A Expired - Fee Related JP5875363B2 (ja) | 2011-12-27 | 2011-12-27 | 記録媒体及びそれを用いる撮像装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140300763A1 (ja) |
EP (1) | EP2798902A4 (ja) |
JP (1) | JP5875363B2 (ja) |
CN (1) | CN104012164A (ja) |
WO (1) | WO2013099781A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5832260B2 (ja) | 2011-12-02 | 2015-12-16 | キヤノン株式会社 | 記録媒体及びそれを用いる撮像装置 |
JP6956515B2 (ja) * | 2017-05-02 | 2021-11-02 | キヤノン株式会社 | 通信システム、並びに、通信装置及びその制御方法及びプログラム |
JP6970600B2 (ja) * | 2017-12-05 | 2021-11-24 | シャープ株式会社 | 制御装置、制御装置の制御方法およびプログラム |
JP7101525B2 (ja) | 2018-04-20 | 2022-07-15 | キヤノン株式会社 | 電子機器およびその制御方法、並びに、プログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002329180A (ja) * | 2001-04-27 | 2002-11-15 | Toshiba Corp | 無線通信機能を有するメモリカード及びそのデータ通信方法 |
JP2007221725A (ja) * | 2006-02-20 | 2007-08-30 | Canon Inc | 画像供給装置、画像印刷装置及びそれらからなる画像印刷システム |
JP2011029855A (ja) * | 2009-07-23 | 2011-02-10 | Canon Inc | 画像処理装置及びその制御方法、並びに、コンピュータプログラム |
JP2011066806A (ja) * | 2009-09-18 | 2011-03-31 | Canon Inc | 画像処理装置 |
JP2011160340A (ja) * | 2010-02-03 | 2011-08-18 | Canon Inc | 画像処理装置、その制御方法、プログラム |
JP2013118532A (ja) * | 2011-12-02 | 2013-06-13 | Canon Inc | 記録媒体及びそれを用いる撮像装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6670982B2 (en) * | 2002-01-04 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | Wireless digital camera media |
US7506057B2 (en) * | 2005-06-17 | 2009-03-17 | Fotonation Vision Limited | Method for establishing a paired connection between media devices |
JP2005222234A (ja) * | 2004-02-04 | 2005-08-18 | Seiko Epson Corp | メディア変換装置、ネットワーク型ダイレクト出力システム、および出力処理指示の転送方法 |
EP1630726B1 (en) * | 2004-08-18 | 2009-09-23 | Sony Corporation | Memory card, memory-card control method, memory-card access control method and computer programs |
JP3840243B2 (ja) * | 2004-08-26 | 2006-11-01 | キヤノン株式会社 | 画像入力装置及びその制御方法、プログラム、並びに画像入力システム |
JP2006186894A (ja) * | 2004-12-28 | 2006-07-13 | Canon Inc | 画像入力装置、制御方法及び制御プログラム |
JP2006224344A (ja) * | 2005-02-15 | 2006-08-31 | Konica Minolta Photo Imaging Inc | プリントシステム及びプリント制御方法 |
US7613426B2 (en) * | 2005-12-20 | 2009-11-03 | Microsoft Corporation | Proximity service discovery in wireless networks |
JP4914207B2 (ja) * | 2006-02-17 | 2012-04-11 | キヤノン株式会社 | 通信装置及び通信レイヤの役割決定方法 |
JP2009212743A (ja) * | 2008-03-04 | 2009-09-17 | Sony Corp | 電子機器、送信方法及びプログラム |
US8175528B2 (en) * | 2008-03-18 | 2012-05-08 | Spansion Llc | Wireless mass storage flash memory |
JP5464862B2 (ja) * | 2009-02-09 | 2014-04-09 | キヤノン株式会社 | 画像形成装置、その制御方法およびプログラム |
JP2011087202A (ja) * | 2009-10-19 | 2011-04-28 | Sony Corp | 記憶装置およびデータ通信システム |
JP5185361B2 (ja) * | 2010-12-28 | 2013-04-17 | 株式会社東芝 | 通信装置、ホスト装置、通信制御方法及び通信制御プログラム |
-
2011
- 2011-12-27 JP JP2011286635A patent/JP5875363B2/ja not_active Expired - Fee Related
-
2012
- 2012-12-14 WO PCT/JP2012/083173 patent/WO2013099781A1/en active Application Filing
- 2012-12-14 CN CN201280064997.6A patent/CN104012164A/zh active Pending
- 2012-12-14 US US14/356,964 patent/US20140300763A1/en not_active Abandoned
- 2012-12-14 EP EP12861240.5A patent/EP2798902A4/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002329180A (ja) * | 2001-04-27 | 2002-11-15 | Toshiba Corp | 無線通信機能を有するメモリカード及びそのデータ通信方法 |
JP2007221725A (ja) * | 2006-02-20 | 2007-08-30 | Canon Inc | 画像供給装置、画像印刷装置及びそれらからなる画像印刷システム |
JP2011029855A (ja) * | 2009-07-23 | 2011-02-10 | Canon Inc | 画像処理装置及びその制御方法、並びに、コンピュータプログラム |
JP2011066806A (ja) * | 2009-09-18 | 2011-03-31 | Canon Inc | 画像処理装置 |
JP2011160340A (ja) * | 2010-02-03 | 2011-08-18 | Canon Inc | 画像処理装置、その制御方法、プログラム |
JP2013118532A (ja) * | 2011-12-02 | 2013-06-13 | Canon Inc | 記録媒体及びそれを用いる撮像装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104012164A (zh) | 2014-08-27 |
US20140300763A1 (en) | 2014-10-09 |
EP2798902A1 (en) | 2014-11-05 |
JP5875363B2 (ja) | 2016-03-02 |
WO2013099781A1 (en) | 2013-07-04 |
EP2798902A4 (en) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1784949B1 (en) | Digital camera, control method thereof and computer program product | |
US20170295311A1 (en) | Communication apparatus, information processing apparatus, methods and computer-readable storage medium | |
JP6395522B2 (ja) | 通信装置、通信装置の制御方法、プログラム | |
JP5875363B2 (ja) | 記録媒体及びそれを用いる撮像装置 | |
JP2005217974A (ja) | 電子機器及びその制御方法 | |
JP5425168B2 (ja) | 撮像手段を有する通信装置およびその制御方法 | |
JP5832260B2 (ja) | 記録媒体及びそれを用いる撮像装置 | |
JP6204958B2 (ja) | 記録媒体及びその制御方法 | |
JP5972115B2 (ja) | 撮像装置、その制御方法、プログラム | |
JP5837189B2 (ja) | ローカル装置へのシェアドアクセス | |
JP2004112078A (ja) | 画像入出力システム | |
JP5038125B2 (ja) | 通信装置及びデータ通信方法 | |
JP2018200542A (ja) | 情報処理装置、サーバ装置、情報処理システム、情報処理方法及びプログラム | |
JP2020057899A (ja) | 無線通信システム、無線通信端末の制御方法 | |
JP4715893B2 (ja) | 画像入出力システム | |
JP4250446B2 (ja) | 通信装置、情報処理装置における表示器の表示方法、プログラム | |
JP6174868B2 (ja) | 電子機器およびその制御方法 | |
JP6101312B2 (ja) | 通信装置及びその制御方法及びプログラム | |
JP2018121206A (ja) | 通信装置、外部装置、それらの制御方法、プログラム | |
JP2006148487A (ja) | 通信装置及びその制御方法 | |
JP2018136609A (ja) | 情報処理システム、情報処理装置、情報処理方法及びプログラム | |
JP2007081738A (ja) | 情報処理装置及び電子機器並びに無線設定方法 | |
JP2011186663A (ja) | 印刷装置、プリントシステム及び印刷装置の制御方法 | |
JP2009284360A (ja) | 情報処理装置、サーバ装置、情報処理システム、情報処理装置の制御方法、サーバ装置の制御方法及び情報処理システムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141225 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20151222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160119 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5875363 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |