JP2016076933A - 記録媒体及びその制御方法 - Google Patents

記録媒体及びその制御方法 Download PDF

Info

Publication number
JP2016076933A
JP2016076933A JP2015211102A JP2015211102A JP2016076933A JP 2016076933 A JP2016076933 A JP 2016076933A JP 2015211102 A JP2015211102 A JP 2015211102A JP 2015211102 A JP2015211102 A JP 2015211102A JP 2016076933 A JP2016076933 A JP 2016076933A
Authority
JP
Japan
Prior art keywords
ptp
recording medium
module
dsc
memory card
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
Application number
JP2015211102A
Other languages
English (en)
Other versions
JP6204958B2 (ja
Inventor
吉田 昌史
Masashi Yoshida
昌史 吉田
小川 康行
Yasuyuki Ogawa
康行 小川
荻原 聡
Satoshi Ogiwara
聡 荻原
相沢 隆志
Takashi Aizawa
隆志 相沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015211102A priority Critical patent/JP6204958B2/ja
Publication of JP2016076933A publication Critical patent/JP2016076933A/ja
Application granted granted Critical
Publication of JP6204958B2 publication Critical patent/JP6204958B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Studio Devices (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】 様々な用途に利用可能な無線通信機能付き記録媒体と、それを有効に活用可能な撮像装置およびその制御方法を提供する。【解決手段】 ホスト機器に着脱可能で、ホスト機器と異なる外部機器と無線通信を行うための無線通信手段を有する記録媒体である。記録媒体は、無線通信手段を通じて外部機器とPTP(Picture Transfer Protocol)に準拠した通信を行い、記録媒体をPTPにおけるResponderとして機能させるPTP Responderモジュールを有する。そして、無線通信手段を通じた外部機器とのPTP通信を、記録媒体が有するPTP Responderモジュールとホスト機器が有するPTP Responderモジュールのどちらを用いて行うかを、設定されたモードに応じて切り替える。【選択図】図5

Description

本発明は記録媒体及びそれを用いる撮像装置に関する。
デジタルカメラなどの撮像装置では、撮影で得られた画像データを保存するための記録媒体として、半導体メモリカードが広く用いられている。記録された画像データをパーソナルコンピュータ(以下PC)、プリンタ、テレビジョン受像器などの外部装置に転送する場合、デジタルカメラと外部装置の両方が有するデジタルインタフェースをケーブルで接続するのが一般的である(特許文献1参照)。
このように、デジタルカメラと外部装置との間でデータ転送を行う場合、従来はケーブルのような物理的な伝送路上で、予め決められた通信プロトコルに従ってデータ交換を行っていた。
たとえば、PCとデジタルカメラのデータ交換プロトコルとしては、USBのStill Imaging Device Classで規定されているPTP(Picture Transfer Protocol)や、マスストレージデバイスクラスで定義されているプロトコルを利用することが多い。
特に、OSレベルでPTPをサポートしているWindows(登録商標)やMac OS(登録商標)が稼働するPCでは、デジタルカメラを接続すると、それがデジタルカメラであることを認識する。そして、例えばデータ転送アプリケーションを自動で起動し、データ転送を開始する等の動作が可能であり、ユーザの負荷軽減と、利便性の向上を実現している。
また、デジタルカメラとプリンタを直接接続して印刷するダイレクトプリントの手順等を定めた、PictBridgeという規格も提案されている。PictBridge規格においても装置間の通信にはPTPを利用しているため、デジタルカメラがPTPによる通信をサポートしていれば、ユーザはデジタルカメラを接続する外部装置がPCでもプリンタでも同様に操作すればよい。
近年では、デジタルカメラから外部機器へ画像データをより簡単に転送できるよう、無線通信機能を有するメモリカードが販売されている。このメモリカードをデジタルカメラに装着して用いると、無線通信可能な外部機器に自動的に画像データを転送することが可能であり、ユーザはケーブルの接続や明示的な転送指示を行う必要がない。
特開2005−223710号公報
従来の無線通信機能付きメモリカードは、IEEE802.11x規格に準拠した無線通信機能を有し、無線LANに接続することによって画像データの転送を行うことに特化している。そのため、PTPのような、デジタルカメラと外部機器との通信プロトコルを用いたアプリケーション、例えばダイレクトプリントには対応できない。また、無線通信機能付きメモリカードが外部機器と行う通信は、デジタルカメラの動作とは基本的に独立しており、例えばデジタルカメラが無線通信機能付きメモリカードを通信アダプタとして用いて、外部機器と通信することはできなかった。
このように、従来の無線通信機能付きメモリカードはその用途が限られており、無線通信機能が有効に活用されていない面があった。本発明はこのような従来技術の課題に鑑みてなされたものであり、様々な用途に利用可能な無線通信機能付き記録媒体を提供することを1目的とする。また、このような無線通信機能付き記録媒体を用いる撮像装置の提供も本発明の1目的である。
上述の目的の1つは、ホスト機器に着脱可能な記録媒体であって、ホスト機器と異なる外部機器と、無線通信を行うための無線通信手段と、無線通信手段を通じて、外部機器とPTP(Picture Transfer Protocol)に準拠した通信を行い、記録媒体をPTPにおけるResponderとして機能させるPTP Responderモジュールと、無線通信手段を通じた外部機器とのPTP通信を、記録媒体が有するPTP Responderモジュールを用いて行うか、記録媒体が装着されたホスト機器が有する、ホスト機器をResponderとして機能させるPTP Responderモジュールを用いて行うかを、ホスト機器から設定されたモードに応じて切り替えるコントローラとを有することを特徴とする記録媒体によって達成される。
このような構成により、本発明によれば、様々な用途に利用可能な無線通信機能付き記録媒体と、このような記録媒体を用いる撮像装置を提供することができる。
本発明の実施形態に係る撮像装置の一例としてのデジタルスチルカメラの機能構成例を示すブロック図。 本発明の実施形態に係る外部装置の一例としての汎用コンピュータ装置の機能構成例を示すブロック図。 本発明の実施形態に係る外部装置の別の一例としてのプリンタの制御系の機能構成例を示すブロック図。 図1におけるメモリカード120の機能構成例を示すブロック図。 図1におけるメモリカード120の状態遷移図。 本発明の実施形態におけるDSC100とメモリカード120に実装されるソフトウェアモジュールとその階層関係を説明する図。 本発明の実施形態に係るDSC100において、メモリカード120のApplicationモードを設定するためのGUI画面の例を示す図。 本発明の実施形態に係る、PullモードにおけるDSC100、メモリカード120、PC200の動作を示すシーケンス図。 本発明の実施形態に係る、Path ThroughモードによるPTPセッションの開始後までのDSC100、メモリカード120、PC200の動作を示すシーケンス図。 本発明の実施形態に係る、Path ThroughモードによるPTPセッションの開始後、外部機器からオブジェクトの送受信要求があった場合ならびにイベント発生時のDSC100、メモリカード120、PC200の動作を示すシーケンス図。 図10の変形例を示すシーケンス図。 本発明の実施形態に係る、DSC100、メモリカード120、プリンタ300のDPSモードにおける動作(DPS Discovery)を示すシーケンス図。 本発明の実施形態に係る、DSC100、メモリカード120、プリンタ300のDPSモードにおける動作(DPS Discovery)を示すシーケンス図。 本発明の実施形態に係る、DSC100、メモリカード120、プリンタ300のDPSモードにおける動作(DPS ConfigurePrintService)を示すシーケンス図。 DPS ConfigurePrintService、GetCapability、StartJobで送信されるスクリプトの例を示す図。 本発明の実施形態に係る、DSC100、メモリカード120、プリンタ300のDPSモードにおける動作(DPS_GetFileInfo及びDPS_GetFile)を示すシーケンス図。 本発明の実施形態に係る、DSC100、メモリカード120、プリンタ300のDPSモードにおける動作(DPS_NotifyDeviceStatus)を示すシーケンス図。 DPS_NotifyDeviceStatus、DPS_NotifyJobStatusで送信されるスクリプトの例を示す図。
次に、添付図面を参照して、本発明の例示的な実施形態について詳細に説明する。なお、以下では、無線通信機能付きメモリカードを用いる撮像装置の一例としてデジタルスチルカメラ(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(登録商標)などのデジタルインタフェースであり、有線接続により外部機器と接続するために用いられる。
図2は本実施形態における外部装置の一例としての汎用コンピュータ装置(PC)200の構成例を示すブロック図である。
図において、表示装置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はアドレスバス、データバスおよび制御バスからなり、上述した各ユニット間を接続する。
図3は、本実施形態における外部装置の一例であるプリンタ300の制御系の構成例を示すブロック図である。
図において、制御部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の制御により実現される。
無線通信部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モードは、無線ネットワーク上に存在するプリンタを用いたダイレクトプリントを実現する動作モードである。
なお、図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に保存されたデータを外部装置に対して送信するように要求するコマンド、
などである。
なお、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を用いないため、本実施形態では説明を省略する。
メモリカード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が処理を実行する。
以下、各ApplicationモードにおけるDSC100及びメモリカード120の動作について説明する。
具体的な動作を説明する前に、メモリカード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が行う。
ここでは、メモリカード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は、メモリカード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が行う。
図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に通知する。ここでは、受信したオペレーションの種類や内容は伝えられず、オペレーションを受信したことだけが通知される。
S903:制御部101は、通知に応答して、オペレーションの内容を取得するためにPTP_GetInfomationコマンドを発行する。
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に通知する。
なお、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オペレーションを受信する。
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モジュールへ送信される。
次に、オブジェクト受信要求について説明する。
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オペレーションが発行される。
図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コマンドで送信する。
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)にバッファリングする。
S1111:カードコントローラ1201は割り込み信号ISR(Data)により、オブジェクトを受信したことを制御部101に通知する。
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モジュールに送信する。
(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が行う。
アプリケーション層である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に通知することができる。
S1203:PictBridge Printer Discoveryにより、DPSに対応したプリンタが探索できたら、カードコントローラ1201は、割り込み信号ISRによって制御部101に通知する。
S1204:制御部101は、DPS_GetPrintListコマンドを発行し、プリンタリストを要求する。
S1205:カードコントローラ1201は、生成したプリンタリストを制御部101に送信する。
S1206:制御部101は、受信したプリンタリストから、ユーザがプリンタを選択するためのGUI画面を作成し、表示部105に表示する。GUIの様式に制限は無いが、ユーザがプリンタを特定できる情報を提示する。
ユーザが操作部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)、
するものである。
“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シーケンスに引き続き、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)、
するものである。
“HREQUEST.DPS”はプリンタ300からDSC100に対して、S1602でのDPSスクリプトの送信を開始することを通知するためのものである。また”DRESPONSE.DPS”はDSC100からプリンタ300に対して、S1604でのDPSスクリプトの送信を開始することを通知するためのものである。
DPSスクリプト”NotifyDeviceStatus”は、図17(a)に示すように、プリンタ300の状況(プリント中かどうか、新しいジョブを受け付け可能かどうか、エラーが発生しているかどうか、エラーの原因は何か、等)を示すXML形式のスクリプトである。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)コマンドを自動的に発行するようにしてもよい。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
101…制御部、102…不揮発性メモリ、103…RAM、104…操作部、105…表示部、106…光学ユニット、107…撮像素子、108…ドライバ、109…コネクタ、120…メモリカード
本発明は記録媒体及びその制御方法に関する。
このように、従来の無線通信機能付きメモリカードはその用途が限られており、無線通信機能が有効に活用されていない面があった。本発明はこのような従来技術の課題に鑑みてなされたものであり、様々な用途に利用可能な無線通信機能付き記録媒体及びその制御方法を提供することを1目的とする
上述の目的の1つは、ホスト機器に着脱可能な記録媒体であって、ホスト機器と異なる外部機器と無線通信を行うための無線通信手段と、記録媒体が有する無線通信プロトコルを用いて外部機器と無線通信を行うための無線制御手段と、記録媒体が有する画像送信プロトコルを用いて外部機器への画像の送信を制御する画像送信制御手段と、記録媒体のモードを、記録媒体が有する無線通信プロトコルを用いて外部機器との通信を行い、かつ記録媒体が有する画像送信プロトコルを用いて外部機器への画像の送信を行う第1の通信モードと、記録媒体が有する無線通信プロトコルを用いて外部機器との通信を行い、かつホスト機器が有する画像送信プロトコルを用いて外部機器への画像の送信を行う第2の通信モードとを含む複数の通信モードのうちいずれかに切り替える第1の切り替え手段とを有する記録媒体によって達成される。
このような構成により、本発明によれば、様々な用途に利用可能な無線通信機能付き記録媒体及びその制御方法を提供することができる。

Claims (6)

  1. ホスト機器に着脱可能な記録媒体であって、
    前記ホスト機器と異なる外部機器と、無線通信を行うための無線通信手段と、
    前記無線通信手段を通じて、前記外部機器とPTP(Picture Transfer Protocol)に準拠した通信を行い、前記記録媒体を前記PTPにおけるResponderとして機能させるPTP Responderモジュールと、
    前記無線通信手段を通じた前記外部機器とのPTP通信を、前記記録媒体が有する前記PTP Responderモジュールを用いて行うか、前記記録媒体が装着されたホスト機器が有する、前記ホスト機器を前記Responderとして機能させるPTP Responderモジュールを用いて行うかを、前記ホスト機器から設定されたモードに応じて切り替えるコントローラとを有することを特徴とする記録媒体。
  2. 前記無線通信手段を通じた前記外部機器とのPTP通信を、前記ホスト機器を前記Responderとして機能させるPTP Responderモジュールを用いて行う場合、前記外部機器からPTPオペレーションやデータを受信すると、前記ホスト機器に割り込み信号で通知し、前記ホスト機器からの要求に応答して前記受信したPTPオペレーションやデータを前記ホスト機器に送信することを特徴とする請求項1記載の記録媒体。
  3. 前記無線通信手段を通じた前記外部機器とのPTP通信を、前記ホスト機器を前記Responderとして機能させるPTP Responderモジュールを用いて行う場合、前記ホスト機器から前記外部機器へ送信すべきデータを受信すると、該受信したデータを、前記PTPに準拠した通信により前記無線通信手段を通じて前記外部機器に送信することを特徴とする請求項1又は請求項2に記載の記録媒体。
  4. 前記無線通信手段を通じた前記外部機器とのPTP通信を、前記ホスト機器を前記Responderとして機能させるPTP Responderモジュールを用いて行う場合、前記ホスト機器からの指示を除き、前記記録媒体が有するメモリへのアクセスを禁止することを特徴とする請求項1乃至請求項3のいずれか1項に記載の記録媒体。
  5. 前記無線通信手段を通じた前記外部機器とのPTP通信を、前記記録媒体を前記Responderとして機能させるPTP Responderモジュールを用いて行う場合、前記記録媒体が有するメモリへの前記ホスト機器によるアクセスを禁止することを特徴とする請求項1乃至請求項4のいずれか1項に記載の記録媒体。
  6. 撮像装置であって、
    請求項1乃至請求項5のいずれか1項に記載の記録媒体を着脱可能に装着するための装着手段と、
    前記撮像装置を前記Responderとして機能させるPTP Responderモジュールとを有し、
    前記ホスト機器として動作することを特徴とする撮像装置。
JP2015211102A 2015-10-27 2015-10-27 記録媒体及びその制御方法 Expired - Fee Related JP6204958B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015211102A JP6204958B2 (ja) 2015-10-27 2015-10-27 記録媒体及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015211102A JP6204958B2 (ja) 2015-10-27 2015-10-27 記録媒体及びその制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011265311A Division JP5832260B2 (ja) 2011-12-02 2011-12-02 記録媒体及びそれを用いる撮像装置

Publications (2)

Publication Number Publication Date
JP2016076933A true JP2016076933A (ja) 2016-05-12
JP6204958B2 JP6204958B2 (ja) 2017-09-27

Family

ID=55950115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015211102A Expired - Fee Related JP6204958B2 (ja) 2015-10-27 2015-10-27 記録媒体及びその制御方法

Country Status (1)

Country Link
JP (1) JP6204958B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001077878A (ja) * 1999-06-29 2001-03-23 Sony Corp 通信装置及び通信方法、通信端末装置
JP2002329180A (ja) * 2001-04-27 2002-11-15 Toshiba Corp 無線通信機能を有するメモリカード及びそのデータ通信方法
JP2007081889A (ja) * 2005-09-14 2007-03-29 Canon Inc 無線通信装置
JP2007081566A (ja) * 2005-09-12 2007-03-29 Canon Inc 中継装置及び中継方法
JP2010067060A (ja) * 2008-09-11 2010-03-25 Toshiba Corp メモリカードおよびメモリカードの制御方法
JP2011087202A (ja) * 2009-10-19 2011-04-28 Sony Corp 記憶装置およびデータ通信システム
JP2011114740A (ja) * 2009-11-30 2011-06-09 Sanyo Electric Co Ltd コンテンツ処理装置
US20110185098A1 (en) * 2008-05-26 2011-07-28 Sk Telecom Co., Ltd. Memory card supplemented with wireless communication module, terminal for using same, memory card including wpan communication module, and wpan communication method using same

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001077878A (ja) * 1999-06-29 2001-03-23 Sony Corp 通信装置及び通信方法、通信端末装置
JP2002329180A (ja) * 2001-04-27 2002-11-15 Toshiba Corp 無線通信機能を有するメモリカード及びそのデータ通信方法
JP2007081566A (ja) * 2005-09-12 2007-03-29 Canon Inc 中継装置及び中継方法
JP2007081889A (ja) * 2005-09-14 2007-03-29 Canon Inc 無線通信装置
US20110185098A1 (en) * 2008-05-26 2011-07-28 Sk Telecom Co., Ltd. Memory card supplemented with wireless communication module, terminal for using same, memory card including wpan communication module, and wpan communication method using same
JP2010067060A (ja) * 2008-09-11 2010-03-25 Toshiba Corp メモリカードおよびメモリカードの制御方法
JP2011087202A (ja) * 2009-10-19 2011-04-28 Sony Corp 記憶装置およびデータ通信システム
JP2011114740A (ja) * 2009-11-30 2011-06-09 Sanyo Electric Co Ltd コンテンツ処理装置

Also Published As

Publication number Publication date
JP6204958B2 (ja) 2017-09-27

Similar Documents

Publication Publication Date Title
US20080043110A1 (en) Image Input Device, Control Method Thereof and Image Input System
US10225455B2 (en) Communication apparatus, information processing apparatus, methods and computer-readable storage medium
JP6395522B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP5875363B2 (ja) 記録媒体及びそれを用いる撮像装置
US10855879B2 (en) Method for establishing wireless connection of image forming device by using mobile terminal, and image forming device for performing same
JP7262191B2 (ja) 電子機器及びその制御方法及びプログラム及び情報処理システム
JP5832260B2 (ja) 記録媒体及びそれを用いる撮像装置
JP6204958B2 (ja) 記録媒体及びその制御方法
JP5972115B2 (ja) 撮像装置、その制御方法、プログラム
JP6306866B2 (ja) 通信装置及びその制御方法、並びにプログラム
JP6877999B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP5038125B2 (ja) 通信装置及びデータ通信方法
JP2020057899A (ja) 無線通信システム、無線通信端末の制御方法
JP2020091787A (ja) 通信装置およびその制御方法
WO2016035293A1 (en) Communication apparatus, information processing apparatus, methods and computer-readable storage medium
JP6956515B2 (ja) 通信システム、並びに、通信装置及びその制御方法及びプログラム
JP2017055366A (ja) 通信装置、通信装置の制御方法、プログラム
JP2007081736A (ja) 撮像装置及びその制御方法
JP6174868B2 (ja) 電子機器およびその制御方法
JP2015115011A (ja) 通信機器、機器設定装置、撮像装置およびそれらの制御方法、システム、並びにプログラム
JP2018200542A (ja) 情報処理装置、サーバ装置、情報処理システム、情報処理方法及びプログラム
JP5370524B2 (ja) デジタルカメラ、送信方法、及びプログラム
JP2023125841A (ja) 通信装置、通信制御方法、及びプログラム
JP2019067133A (ja) 情報処理装置、情報処理装置の制御方法、プログラム
JP2018136609A (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161005

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170627

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170707

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: 20170804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170901

R151 Written notification of patent or utility model registration

Ref document number: 6204958

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees