以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
本実施例では、低速通信の近接無線通信方式を用いて認証を行ってから、高速通信の無線通信に切り替えて印刷データを送信する例を説明する。具体的には、NFC(Near Field Communication)のような近距離無線通信で認証を行い、他の通信方式の無線通信に通信を引き継ぐ(ハンドオーバ)技術を用いた印刷方法について説明する。
図1は、本実施例における無線通信システムの構成を示す図である。ネットワーク100を中心にサーバ装置101、携帯型通信端末装置200、情報処理装置の一例であるマルチファンクションプリンタ(MFP)300が接続されている。サーバ装置101は、印刷用の画像データのストレージや、ユーザIDの管理、画像処理アプリケーションなどで構成されている。携帯型通信端末装置200は、認証方法、通信速度が異なる少なくとも2種類以上の無線通信方式を持つ。携帯型通信端末装置200は、PDA(Personal Digital Assistant)などの個人情報端末、携帯電話、デジタルカメラなど、印刷対象となるファイルを扱える装置であれば良い。印刷装置の一例となるMFP300は、原稿台に原稿を載せて原稿を読み取る読取機能と、インクジェットプリンタなどの印刷部を用いる印刷機能を有している。MFP300は、他にFAX機能や電話機能を有していても良い。ネットワーク100とサーバ装置101は、有線LANで接続されている。ネットワーク100とMFP300は、有線LANもしくはWireless LAN(WLAN)で接続されている。ネットワーク100と携帯型通信端末装置200は、WLANで接続されている。携帯型通信端末装置200とMFP300は、共にWLANの機能を有するので、相互認証をすることによりピアツーピア(P2P)の通信が可能である。
図2は、携帯型通信端末装置200の外観を示す図である。本実施例では、携帯型通信端末装置200として、例えばスマートホンが用いられる。スマートホンとは、携帯電話の機能の他に、カメラや、ネットブラウザ、メール機能などを搭載した多機能型の携帯電話のことである。NFCユニット201は、NFCを用いて通信を行う。実際には、ユーザがNFCユニット201を通信相手先のNFCユニットに10cm程度以内に近づけることで通信を行うことができる。WLANユニット202は、WLANで通信を行うためのユニットであり、装置内に設けられている。表示部203は、LCD方式の表示機構を備えたディスプレイである。操作部204は、タッチパネル方式の操作機構を備えており、ユーザの押下を検出する。代表的な操作方法としては、表示部203がボタン状の表示を行い、ユーザが操作部204を押下することによってボタンが押下されたイベントを発行する。電源キー205は、ユーザが電源のオンおよびオフをする際に用いられる。
図3は、MFPの外観を示す図である。原稿台301は、ガラス状の透明な台であり、原稿をのせて、スキャナで読み取る時に使用される。原稿蓋302は、スキャナで読み取りを行う際に読取光が外部に漏れないようにするための蓋である。印刷用紙挿入口303は、様々なサイズの用紙をセットするための挿入口である。ここにセットされた用紙は、一枚ずつ印刷部に搬送され、所望の印刷が行われて印刷用紙排出口304から排出される。原稿蓋302の上部には、操作表示部305およびNFCユニット306が設けられている。操作表示部305は、図4において後述する。NFCユニット306は、近接無線通信を行うためのユニットであり、ユーザが実際に通信相手先に近接させる箇所である。NFCユニット306から約10cmが接触の有効距離となる。WLANアンテナ307は、WLANで通信するためのアンテナである。
図4は、操作表示部305の平面図である。表示部406は、画像や操作メニュー等を表示する表示画面であり、例えばドットマトリクスLCDである。十字キー401は、表示部上のカーソル移動などに用いられる。セットキー402は、設定入力の為のキーであり、機能キー403は、機能設定などに用いられる。スタートキー404は、印刷の開始などの機能の実行の際に用いられる。
図5は、携帯型通信端末装置200に印刷候補のサムネイルを表示した例を示す図である。サムネイル501は、携帯型通信端末装置200やサーバ装置101内に保存されている各画像データのサムネイルである。ユーザが印刷を行いたい画像を押下すると、フォーカス502が表示され、その画像が印刷対象になったことを示す。ユーザは、印刷対象の画像を複数選択することができ、その際に、フォーカス502は、表示部203上に複数存在する。サムネイルは、一画面で表示しきれない場合には、スクロール表示するようにしても良い。ユーザは、印刷を所望する画像を選択し終わると、印刷開始キー503を押下することで印刷ジョブを印刷装置に送信する。
次に、NFC通信について説明する。NFCユニットによる近接通信を行う場合に、始めにRFフィールド(Radio Frequency Field)を発信して近距離無線通信を開始する装置をイニシエータと呼ぶ。また、イニシエータの発する命令に応答することで、イニシエータとの通信を行う装置をターゲットと呼ぶ。NFCユニットの通信モードには、パッシブモードとアクティブモードが存在する。パッシブモードでは、ターゲットは、イニシエータの命令に対して、イニシエータの発するRFフィールドを負荷変調することで応答する。一方、アクティブモードでは、ターゲットは、イニシエータの命令に対して、ターゲット自らがRFフィールドを発することにより応答する。
図6は、NFC通信におけるパッシブモードの概念を示す図である。図6(a)のように、イニシエータ601からターゲット602にデータ604をパッシブモードで送信する場合には、イニシエータ601がRFフィールド603を発生する。イニシエータ601は、RFフィールド603を自ら変調することで、ターゲット602にデータ604を送信する。また、図6(b)のように、ターゲット606からイニシエータ605にデータ608をパッシブモードで転送する場合、図6(a)と同様に、イニシエータ605がRFフィールド607を発生する。ターゲット606は、RFフィールド607に対して負荷変調を行うことで、イニシエータ605にデータ608を送信する。
図7は、NFC通信におけるアクティブモードの概念を示す図である。図7(a)のように、イニシエータ701からターゲット702にデータ704をアクティブモードで送信する場合には、イニシエータ701がRFフィールド703を発生する。イニシエータ701は、RFフィールド703を自ら変調することで、ターゲット702にデータ704を送信する。イニシエータ701は、データ送信が完了した後、RFフィールド703の出力を停止する。また、図7(b)のように、ターゲット706からイニシエータ705にデータ708をアクティブモードで送信する場合には、ターゲット706がRFフィールド707を発生する。ターゲット706は、自らが発するRFフィールド707によってデータ708を送信し、送信が終了すると、RFフィールド707の出力を停止する。
図8は、携帯型通信端末装置200のブロック図を表した図である。携帯型通信端末装置200は、装置のメインの制御を行うメインボード801と、WLAN通信を行うWLANユニット817と、NFC通信を行うNFCユニット818と、Bluetooth(登録商標)通信を行うBTユニット821とを含む。
メインボード801のCPU802は、システム制御部であり、携帯型通信端末装置200の全体を制御する。ROM803は、CPU802が実行する制御プログラムや組み込みオペレーティングシステム(OS)プログラム等を格納する。本実施例では、ROM803に格納されている各制御プログラムは、ROM803に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ等のソフトウエア制御を行う。
RAM804は、SRAM(static RAM)等で構成され、プログラム制御変数や、ユーザが登録した設定値や携帯型通信端末装置200の管理データ等を格納し、また、各種ワーク用バッファ領域が設けられている。画像メモリ805は、DRAM(dynamic RAM)等で構成され、通信部を介して受信した画像データや、データ蓄積部812から読み出した画像データをCPU802で処理するために一時的に格納する。不揮発性メモリ822は、フラッシュメモリ(flash memory)等で構成され、電源がオフされた後でも保存しておきたいデータを格納する。例えば電話帳データや、過去に接続したデバイス情報などがある。なお、このようなメモリ構成はこれに限定されるものではない。例えば画像メモリ805とRAM804とを共有させても良いし、データ蓄積部812にデータのバックアップなどを行っても良い。また、本実施例では、DRAMを用いているが、ハードディスクや不揮発性メモリ等を使用しても良い。
データ変換部806は、ページ記述言語(PDL)等の解析や、色変換、画像変換などのデータ変換を行う。電話部807は、電話回線の制御を行い、スピーカ部813を介して入出力される音声データを処理することで電話による通信を実現している。操作部808は、図2で説明した操作部204の信号を制御している。GPS(Global Positioning System)809は、現在の緯度や経度などを取得する。表示部810は、図2で説明した表示部203の表示内容を電子的に制御しており、各種入力操作や、MFP300の動作状況、ステータス状況の表示等を行うことができる。カメラ部811は、レンズを介して入力された画像を電子的に記録して符号化する機能を有している。カメラ部811で撮影された画像は、データ蓄積部812に保存される。スピーカ部813は、電話機能のための音声を入力または出力する機能や、その他アラーム通知などの機能を実現する。電源部814は、例えば携帯可能な電池であり、また、電源制御をおこなう。電源状態には、電池に残量が無い電池切れ状態、ユーザが電源キー205を押下していない電源オフ状態、通常起動している起動状態、起動しているが省電力になっている省電力状態がある。
携帯型通信端末装置200には無線通信するための構成が3つ設けられており、携帯型通信端末装置200は、WLAN、NFC、Bluetooth(登録商標)で無線通信することができる。WLANユニット817、NFCユニット818、BTユニット821は、MFPなどの他の装置とのデータ通信を行う通信部である。各ユニット817、818、821は、データをパケットに変換して、他の装置にパケット送信を行う。逆に、外部の他の装置からのパケットをデータに変換して、CPU802に対して送信する。WLANユニット817、NFCユニット818、BTユニット821は、それぞれバスケーブル815、816、820でシステムバス819と接続されている。WLANユニット817、NFCユニット818、BTユニット821は、規格に準拠した通信を実現するためのユニットである。NFCユニット818の詳細は、図10において後述する。
上記各部803〜814、817、818、821、822は、CPU802が管理するシステムバス819を介して、相互に接続されている。
図9は、MFP300の概略構成を示すブロック図である。MFP300は、装置のメインの制御を行うメインボード901と、WLAN通信を行うWLANユニット917と、NFC通信を行うNFCユニット918と、Bluetooth(登録商標)通信を行うBTユニット919とを含む。
メインボード901のCPU902は、システム制御部であり、MFP300の全体を制御する。ROM903は、CPU902が実行する制御プログラムや組み込みオペレーティングシステム(OS)プログラム等を格納する。本実施例では、ROM903に格納されている各制御プログラムは、ROM903に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。
RAM904は、SRAM(static RAM)等で構成され、プログラム制御変数やユーザが登録した設定値やMFP300の管理データ等を格納し、また、各種ワーク用バッファ領域が設けられている。不揮発性メモリ905は、フラッシュメモリ(flash memory)等で構成され、電源がオフされた時でも保持していたいデータを格納する。例えば、ネットワーク接続情報、ユーザデータである。画像メモリ906は、DRAM(dynamic RAM)等で構成され、各通信ユニットを介して受信した画像データや、符号復号化処理部912で処理した画像データや、メモリカードコントローラ516を介して取得した画像データなどを蓄積する。また、携帯型通信端末装置200のメモリ構成と同様に、メモリ構成は上記に限定されるものではない。データ変換部907は、ページ記述言語(PDL)等の解析や、画像データから印刷データへの変換などを行う。
読取制御部908について説明する。読取部910は、CISイメージセンサ(密着型イメージセンサ)によって原稿を光学的に読み取る。次に、読取部910は、電気的な画像データに変換した画像信号を、不図示の画像処理制御部を介して、2値化処理や中間調処理等の各種画像処理を施し、高精細な画像データを出力する。
操作部909、表示部911は、図4で説明したような操作表示部305を含む。符号復号化処理部912は、MFP300で扱う画像データ(JPEG、PNG等)を符号化/復号化処理したり、拡大/縮小処理を行う。給紙部914は、印刷用紙を保持する。給紙部914は、記録制御部916からの制御で給紙部914から給紙を行うことができる。特に、給紙部914は、複数種類の印刷用紙を1つの装置に保持するための複数の給紙部を備えても良い。そして、記録制御部916により、いずれの給紙部から給紙を行うかについて制御される。
記録制御部916は、印刷される画像データに対し、不図示の画像処理制御部を介して、スムージング処理や記録濃度補正処理、色補正等の各種画像処理を施し、高精細な画像データに変換して、記録部915に出力する。また、記録制御部916は、印刷部の情報を定期的に読み出してRAM904の情報を更新する役割も果たす。印刷部の情報とは、例えば、インクタンクの残量やプリントヘッドの状態である。MFP300にも携帯型通信端末装置200と同様に無線通信するための構成が3つ設けられており、上記における説明と同じである。各部902〜919は、CPU902が管理するシステムバス923を介して、相互に通信可能に接続されている。
図10は、NFCユニット818やNFCユニット918として用いられるNFCユニット1000の詳細構成を示す図である。NFCユニット1000は、NFCコントローラ部1001と、アンテナ部1002と、RF部1003と、送受信制御部1004と、NFCメモリ1005と、電源1006と、デバイス接続部1007とを有する。アンテナ部1002は、他のNFCデバイスから電波やキャリアを受信したり、他のNFCデバイスに電波やキャリアを送信したりする。RF部1003はアナログ信号をデジタル信号に変復調する機能を備えている。RF部103はシンセサイザを備えていて、バンド、チャネルの周波数を識別し、周波数割り当てデータにより、バンド、チャネルを制御する。送受信制御部1004は、送受信フレームの組み立て及び分解、プリアンブル付加及び検出、フレーム識別など、送受信に関する制御を行う。送受信制御部1004は、NFCメモリ1005の制御も行い、各種データやプログラムを読み書きする。
NFCユニット1000がアクティブモードとして動作する場合には、電源1006を介して電力の供給を受ける。そして、デバイス接続部1007を介してデバイスと通信したり、アンテナ部1002を介して送受信されるキャリアにより、通信可能な範囲にある他のNFCデバイスに電磁誘導による起電力を発生させて通信する。一方、パッシブモードとして動作する場合には、アンテナを介して他のNFCデバイスからキャリアを受信して電磁誘導により通信相手側となる他のNFCデバイスから電力の供給を受ける。そして、キャリアの変調により当該他のNFCデバイスとの間で通信を行ってデータを送受信する。
図11は、MFP300の表示部406の表示例を示す図である。携帯型通信端末装置200から印刷ジョブを受信した場合には、表示部406には印刷ジョブ確認画面1101が表示される。また、読取ジョブを受信した場合には、読取ジョブ確認画面1102が表示される。
図12は、携帯型通信端末装置200の表示部203の表示例を示す図である。プリンタ選択画面1201は、印刷するプリンタを選択する画面を示す例である。印刷状態表示画面1202は、印刷ジョブを投入した印刷装置の現在の状態をリアルタイムに表示している例である。
図13は、MFPのRAM904の構成を示す図である。1301は、RAM全体を表している。ワークメモリ1302は、プログラムの実行のために確保されるメモリである。画像処理バッファ1303は、画像処理のために一時的なバッファとして使用される領域である。機器状態記憶部1304は、MFP300の現在の状態に関する様々な情報が記憶されている。エラー状態1305は、MFP300のエラーに関する状態を記憶している。エラーに関する状態とは、例えば、インク少警告、インク無エラー、紙ジャムエラー、用紙無し警告、印字画像画像不良警告、読取画像不良エラー、ネットワーク切断警告、である。これらの警告やエラーには、印刷機能への影響度、読取機能への影響度などが関連付けられている。例えば、インク無エラーの場合、印刷機能は使用できないが、読取機能は使用できるといったことである。ネットワーク切断警告の場合、ネットワークを使う機能は使用できないが、機器単体で行う設定変更や読取機能は使用できるといったことである。インク残量1306には、現在取り付けられているインクタンクの型番やインク残量が記憶されている。インクタンクの型番は、インクタンクが取り付けられたタイミングで更新される。インク残量は、インクが使用される毎に更新される。次回推定起動時間1307は、電源がオフされた時に、次に起動する時の推定起動時間が記憶されている。MFPの起動時間は状態によって大きく異なる。例えば、MFPの電源状態には、ハードオフ状態、ソフトオフ状態、通常起動状態、スリープ状態が存在する。
ハードオフ状態とは電力の供給が途絶えている状態であり、電源を投入してハードオフ状態から通常起動状態にする場合は大きな時間を要する。ソフトオフ状態とは、部分的には電源は投入されているが、メインのプログラムは起動していない状態であり、ハードオフよりは早い時間で起動することができる。スリープ状態とは、電源消費が大きな部分がオフにされており、それ以外のプログラムや機構は動作しているので、比較的早く通常起動状態に戻ることができる。また、起動時間が変動する別の要因として、機器のエラー状態がある。例えばインクジェット記録方式による記録ヘッドのノズルの目詰まりが多いことを検出した時には次の起動で長時間の回復処理を行ってから起動する。また、スキャナの光量が落ちている時には、調整動作を行ってから起動する。このように電源の状態遷移、および機器の状態によって、次に起動する時の推定起動時間が決定される。その他1308には、現在のメモリ使用量、ハードウェアの温度、消耗品情報など、その他の機器状態が格納されている。また、その他1309には、他のRAMデータが格納されている。
図14は、MFP300のフラッシュメモリ905の構成を示す図である。1401は、フラッシュメモリ全体を表している。ユーザデータ1402は、ユーザに関する情報が記憶されており、例えばFAXの電話番号、通信履歴、ネットワーク情報などが格納されている。過去に接続した装置リスト1403は、MFP300がこれまでに接続した装置のリストが格納されている。例えばスマートホンとNFCで通信した場合には、スマートホンの識別子がリスト1405として記憶される。また、カメラとNFCで通信した場合には、カメラの識別子がリスト1404として記憶される。
スマートホンとWLANでP2Pで接続した場合は、WLANで接続するための識別情報が記憶される。例えば、WLAN接続のためにWPS(Wi−Fi Protected Setup)が使用される場合には、WPS Credential認証情報が記憶される。スマートホンとBluetoothで接続した場合には、OOB認証情報が記憶される。サーバ装置とLAN経由で接続した場合には、サーバ装置のネットワーク情報が記憶される。設定情報1406はMFP装置の設定情報が記憶される。例えば印刷モードなどのメニュー項目や、インクジェット記録方式における記録ヘッドの補正情報などが記憶される。その他1407には、他の不揮発情報が記憶される。
図15は、MFP300のNFCメモリ1005の構成を示す図である。1501は、NFCメモリ全体を表している。機器状態記憶部1502は、所定のタイミングで機器状態記憶部1304の内容がコピーされる。従って、エラー状態1503、インク残量1504、次回推定起動時間1505はそれぞれ、エラー状態1305、インク残量1306、次回推定起動時間1307に対応する。ジョブ記憶部1506は、携帯型通信端末装置200からNFCで各種ジョブをMFP300に投入する場合に使用する領域である。印刷ジョブ1507には、印刷ジョブがキューで格納されている。例えば、印刷設定、および画像へのリンク先が格納される。スキャンジョブ1508には、スキャンジョブがキューで格納されている。例えば、読取設定が格納される。FAXジョブ1509には、FAXジョブがキューで格納されている。例えば、送信先の電話番号や通信画質などが含まれるFAX設定、画像が既に読み取ってある場合にはその画像へのリンク先が格納される。設定変更ジョブ1510には、設定変更ジョブがキューで格納されている。例えば、本体の設定項目の変更に関するジョブが格納される。
図16は、携帯型通信端末装置200のRAMの構成を示す図である。1601は、RAM全体を表している。ワークメモリ1602は、プログラムの実行のために確保されるメモリである。画像処理バッファ1603は、画像をサムネイルサイズに縮小したり、バンド処理でMFPに送ったりする時に使用するバッファである。
図17は、携帯型通信端末装置200の不揮発性メモリ822の構成を示す図である。1701は、不揮発性メモリ全体を表している。プリンタ一覧1702には、携帯型通信端末装置200が現在までに接続したことのあるプリンタが一覧で格納されている。プリンタA1703は、そのプリンタの一例を表している。ネットワーク接続情報1704には、プリンタAをネットワークに接続した時のネットワーク接続情報が格納されており、例えばLAN経由で接続した場合には接続先のアドレスおよび認証情報である。機器固有情報1705には、プリンタに関する情報が格納されており、例えばプリンタの解像度やインク数などの情報である。固有アプリケーション1706には、プリンタに固有の処理を行うためのアプリケーションが格納されており、ネットワーク経由でダウンロードまたは最初にプリンタに接続した時に、携帯型通信端末装置200に保存される。固有アプリケーションは、画像をプリンタの仕様に即した形式に変換したり、バンド処理の制御を行ったり、通信の制御を行ったりする。その他1707には、プリンタAに関する他の情報が格納される。プリンタB1708は、別のプリンタの一例を表している。ユーザデータ1709には、ユーザに関するデータで電話番号1710や、画像サーバアドレス1711などが格納されている。
図18は、携帯型通信端末装置200のNFCメモリ1005の構成を示す図である。1801は、NFCメモリ全体を表している。ユーザデータ1802には、電話番号1803、画像サーバアドレス1804などが格納されており、ユーザの指定によってユーザ指定データ1805なども追加して格納することができる。1801には、他にも、通信履歴1806などが格納されている。携帯型通信端末装置200の電池残量が無くなった場合でも、パッシブモードでターゲットとして通信するときは、所定の手順で認証キー1807を用いて認証を行うことでNFCメモリ1005内のデータをリード/ライトすることができる。
図19は、図14で説明したWPS Credential認証情報とOOB認証情報の一例を示す図である。WPS CrEdential認証情報には、SSID、Encryption、Auth Type、Network Key、MAC adressなどが含まれる。また、OOB認証情報には、BTaddress、Hash C、Randomizer Rなどが含まれる。これらの情報を、認証元から認証先に渡すことで認証を行い、WLANやBluetoothによるピアツーピアの通信が可能となる。
図20は、NFCユニットがイニシエータとして動作する手順を示すフローチャートである。図20に示す各処理は、NFCユニットが搭載されている装置のCPU等によって実行される。まず、S2001において、全てのNFCユニットはターゲットとして動作し、イニシエータからの命令を待機する状態になる。次に、S2002において、NFCユニットは、NFC規格に準拠する通信を制御するアプリケーションからの要求により、イニシエータに切り替わることができる。NFCユニットがイニシエータに切り替わる要求に応じた場合、S2003において、アプリケーションは、アクティブモードまたはパッシブモードのいずれかを選択して、伝送速度を決定する。次に、S2004において、イニシエータは、自装置以外が出力するRFフィールドの存在を検出する。外部のRFフィールドの存在を検出した場合には、イニシエータは自らのRFフィールドは発生させない。外部のRFフィールドの存在を検出しなかった場合には、S2005に進み、イニシエータは、自らのRFフィールドを発生させる。以上の工程を経て、NFCユニットは、イニシエータとして動作を開始する。
図21は、パッシブモードによるデータ交換を行うシーケンスを示す図である。また、図24は、図21の流れをフローチャートとして示す図である。図21に基づいて、図24の各工程と対応付けながら説明する。図24に示す各処理は、NFCユニットが搭載されている装置のCPU等によって実行される。以下、第1のNFCユニット2101がイニシエータ、第2のNFCユニット2102がターゲットとして動作している場合について説明する。まず、S2101において、第1のNFCユニット2101は、単一デバイス検知を行い、第2のNFCユニット2102を特定する(S2401)。つまり、S2101において第1のNFCユニット2101と第2のNFCユニット2102とは、お互いの存在を検出している。次に、S2102において、第1のNFCユニット2101は、属性要求として自身の識別子や、送受信のビット伝送速度、有効データ長などを相手先に送信する(S2402)。また、属性要求は汎用バイトを有しており、任意に選択して使用することができる。第2のNFCユニット2102は、有効な属性要求を受信した場合に、S2103において、属性応答を送信する。ここで、第2のNFCユニット2102からの送信は負荷変調によって行われており、図中では、負荷変調によるデータ送信を点線の矢印で示す。
有効な属性応答を確認した後(S2403)、第1のNFCユニット2101は、S2104において、パラメータ選択要求を送信して、引き続く伝送プロトコルのパラメータを変更することができる。パラメータ選択要求に含まれるパラメータとは、例えば、伝送速度と有効データ長である。第2のNFCユニット2102は、有効なパラメータ選択要求を受信した場合に、S2105においてパラメータ選択応答を送信してパラメータを変更する(S2404〜S2409)。なお、S2104及びS2105は、パラメータ変更を行わない場合には省略しても良い。
次に、S2106において、第1のNFCユニット2101と第2のNFCユニット2102は、データ交換要求およびデータ交換応答によってデータ交換を行う(S2410)。データ交換要求およびデータ交換応答の際に、通信相手が有するアプリケーションに対する情報などをデータとして伝送することができ、データサイズが大きい場合には分割して送信することもできる。
データ交換が終了すると、S2107に移行し、第1のNFCユニット2101は、選択解除要求または解放要求のいずれかを送信する(S2411、S2414)。選択解除要求を送信した場合に、第2のNFCユニット2102は、S2108において選択解除応答を送信する(S2412)。第1のNFCユニット2101は、選択解除応答を受信すると、第2のNFCユニット2102を示す属性を解放して(S2413)、S2101に戻る。また、解放要求を送信した場合に、第2のNFCユニット2102は、S2108で解放応答を送信して初期状態に戻る(S2415)。第1のNFCユニット2101は、解放応答を受信すれば、ターゲットは完全に解放されているので、初期状態に戻っても良い。
図22は、アクティブモードによるデータ交換を行うシーケンスを示す図である。また、図25は、図22の流れをフローチャートとして示す図である。図22に基づいて、図25の各工程と対応付けながら説明する。図25に示す各処理は、NFCユニットが搭載されている装置のCPU等によって実行される。以下、第1のNFCユニット2201がイニシエータ、第2のNFCユニット2202がターゲットとして動作している場合について説明する。まず、S2201において、第1のNFCユニット2201は、属性要求として自身の識別子や送受信のビット伝送速度、有効データ長などを送信する(S2501)。第2のNFCユニット2202は、有効な属性要求を受信した場合に、S2202において属性応答を送信する。ここで、第2のNFCユニット2202からの送信は、自らの発したRFフィールドによって行われる。このため、第1および第2のNFCユニットは、データ送信が終了する際にはRFフィールドの出力を停止する。
有効な属性応答を確認した後(S2502)、第1のNFCユニット2201は、S2203において、パラメータ選択要求を送信して伝送プロトコルのパラメータを変更することができる(S2504〜2508)。パラメータ選択要求に含まれるパラメータは、伝送速度と有効データ長である。第2のNFCユニット2202は、有効なパラメータ選択要求を受信した場合に、S2204においてパラメータ選択応答を送信してパラメータを変更する。なお、パッシブモードの場合と同様に、S2203及びS2204は、パラメータ変更を行わない場合には、省略しても良い。
次に、S2205において、第1のNFCユニット2201と第2のNFCユニット2202は、データ交換要求およびデータ交換応答によってデータの交換を行う(S2509)。データ交換要求およびデータ交換応答の際に、アプリケーションに対する情報などをデータとして伝送することができ、データサイズが大きい場合には、分割して送信することもできる。
データ交換が終了するとS2206に移行し、第1のNFCユニット2201は、選択解除要求または解放要求のいずれかを送信する(S2509、S2510)。選択解除要求を送信した場合に(S2510)、第2のNFCユニット2202は、S2207において選択解除応答を送信する(S2511)。第1のNFCユニット2201は、選択解除応答を受信すると、第2のNFCユニット2202を示す属性を解放する(S2512)。その後、S2208において、第1のNFCユニット2201は、識別子が既知な別のターゲットに対して起動要求を送信する(S2513)。起動要求を受けたターゲットは、起動応答をS2209において送信し(S2514)、S2201に戻る。また、S2206で解放要求を送信した場合に(S2515)、第2のNFCユニット2202は、S2207で解放応答を送信して初期状態に戻る(S2516)。第1のNFCユニット2201は、解放応答を受信すると、ターゲットは完全に解放されているので、初期状態に戻っても良い。
図23は、NFCにおけるターゲットの状態遷移を示す図である。POWER−OFF状態S2301は、電源切断の状態を表している。S2301の状態において、ターゲットは、閾値Hminよりも大きな磁場Hの中に置かれている場合には、SENSE状態S2302に移行する。SENSE状態S2302にある場合に、ターゲットは、イニシエータからの命令を待機している。ターゲットは、検知要求または全デバイス起動要求を受信した場合に、RESOLUTION状態S2303に移行して検知応答を返信する。他の命令を受信した場合には、そのままSENSE状態S2302に留まる。
RESOLUTION状態S2303においては、単一デバイス検出が用いられる。単一デバイス検出の結果として、有効な選択要求を受信した場合に、ターゲットは選択応答をイニシエータに返してSELECTED状態S2304になる。他の命令を受信した場合には、SENSE状態S2302に戻る。
SELECTED状態S2304において、ターゲットは、属性要求、パラメータ選択要求、または有効な独自仕様の命令を認識する。ターゲットは、有効な休止要求または選択解除要求を受信した場合に、SLEEP状態S2305になる。その他の命令を受信した場合には、SENSE状態S2302に戻る。SLEEP状態S2305のターゲットは、全デバイス起動要求を受信した場合に、検知応答を返してから、RESOLUTION*状態S2306に移行する。他の命令を受信した場合には、そのままSLEEP状態S2305に留まる。
RESOLUTION*状態S2306は、RESOLUTION状態S2303とほぼ同じ状態であり、単一デバイス検出が用いられる。有効な選択要求を受信した場合に、ターゲットはSELECTED*状態S2307に遷移する。その他の命令を受信した場合には、SLEEP状態S2305に戻る。SELECTED*状態S2307は、SELECTED状態S2304とほぼ同じ状態であり、ターゲットは、属性要求、パラメータ選択要求、または有効な独自仕様の命令を認識する。有効な休止要求または選択解除要求を受信した場合には、SLEEP状態に遷移する。その他の命令を受信した場合には、SLEEP状態にフォールバックする。
図26は、NFCとWLANとを切り換えてデータ転送を行うシーケンスを示す図である。NFCは、通信速度が数百bpsと比較的低速であるので、NFCを用いて認証等を行い、容量の大きいデータは、高速なWLANで行うことで効率的なデータ転送を図ることができる。図26は、携帯型通信端末装置2601上に存在する画像データを印刷装置2602で印刷するために、携帯型通信端末装置2601が主体となって転送する、いわゆるプッシュ型の一例を示す図である。図26に示す携帯型通信端末装置側の処理は、例えばCPU802により実行され、印刷装置側の処理は、例えばCPU902により実行される。
S2601において、NFC通信を確立するため、NFC通信部2603がイニシエータとなって、NFC通信部2605をターゲットとして検知する。NFC通信部2605が正しく検知された場合に、S2602において、NFC通信部2605は、検知応答を送信する。なお、図26は携帯型通信端末装置2601がイニシエータとなる場合を示しているが、操作表示部305などからの入力に基づいて印刷装置2602がイニシエータとなっても良い。検知応答を正しく受信した場合に、NFC通信部2603は、S2603においてNFC通信を行うための属性要求を送信する。属性要求を受信したNFC通信部2605は、S2604で属性応答を返信する。ここで、属性要求および属性応答では、それぞれイニシエータおよびターゲットのNFC−IDを送信し、このIDによって通信相手を特定する。
S2605において相互認証が行われ、データ暗号化のための暗号鍵等を渡すことができる。なお、暗号鍵を渡す必要がない場合などは、この相互認証を行わなくても良い。その後、S2606において、NFC通信部2603は、NFC通信部2605に対して、印刷装置2602が利用可能な通信プロトコルの情報を要求する。この要求には携帯型通信端末装置2601が利用可能な通信プロトコルの情報が含まれており、NFC通信部2605は、この要求を受信した際に、携帯型通信端末装置2601のWLAN通信が利用可能であることを認識することができる。NFC通信部2605は、S2607において、S2606で受信した要求に対して、自身の利用可能な通信プロトコルの情報を応答する。これによって互いの装置は、互いの利用可能な通信プロトコルを認識することができる。
ここで、認識したNFC以外のプロトコルであるWLANが、NFCよりも高速なデータ転送が可能であり、WLANに切り換えて通信を行うことがイニシエータである携帯型通信端末装置2601によって決定されたとする。なお、切り換えを行うための決定は、印刷装置2602が行っても良い。その場合、S2608およびS2609において、WLANで通信を行うために必要な、通信相手を特定するアドレス等の情報を交換する。その後、S2610に移行し、NFC通信部2603は、NFC通信からWLAN通信へと切り換える要求を送信する。NFC通信部2605は、切り換えの要求を受信すると、S2611において、その要求に対する応答を行う。
正しい切り換え応答が得られたら、S2612において、NFC通信部2603からWLAN通信部2604へと、S2613において、NFC通信部2605からWLAN通信部2606へと、それぞれ切り換えを行う。切り換えを行った後、S2614において、NFC通信部2603は、解放要求を送信する。解放要求を受信したNFC通信部2605は、S2615において解放応答を送信し、NFC通信を終了する。
S2616以降では、S2608およびS2609で交換したWLAN通信のための情報に基づいてWLAN通信が行われる。まず、S2616において、WLAN通信部2604は、データ転送が可能であるか否かをWLAN通信部2606に確認する。ここで、確認する内容とは、例えば、印刷装置2602内に転送しようとする画像を一時保存するための空き容量などである。WLAN通信部2606は、確認の要求を受信した後、S2617で確認に対する応答を送信する。正しい応答が得られてデータ転送が可能であると判定した場合に、WLAN通信部2604は、S2618において、携帯型通信端末装置2601に存在する画像データを、WLAN通信部2606に対して送信する。こうすることで、容量の大きいデータは、より高速な通信プロトコルを用いて転送することができる。
図27は、携帯型通信端末装置2701上に存在する画像データを印刷装置2702で印刷するために、印刷装置2702が主体となって転送する、いわゆるプル型の一例を示す図である。S2701〜S2715の手順は、図26のS2601〜S2615と同様である。NFC規格による通信からWLAN通信に切り換わった後、まず、S2716において、WLAN通信部2706からWLAN通信部2704に対して、データ取得の確認要求が送信される。ここで確認される内容とは、例えば携帯型通信端末装置2701が転送する予定のデータサイズなどである。転送データに関する確認の要求を受信した後、WLAN通信部2704は、S2717において応答を送信する。正しい応答が得られて、印刷装置の空き容量などを考慮した上でデータ転送が可能であると判定した場合に、WLAN通信部2706は、S2718において、画像データを要求する。正しい要求を受信した場合に、WLAN通信部2704は、S2719において要求された画像データを送信する。S2618またはS2719において、画像データが送信された後、印刷装置2602又は2702は、印刷を開始する。
図28は、携帯型通信端末装置2801が送信した印刷ジョブの印刷対象となる画像データがサーバ装置にある場合の例を示す図である。S2801〜S2806は、S2701〜S2706と同じである。サーバ装置2807には、印刷対象となる画像データが保存されている。S2801〜S2805は、S2701〜S2705の説明と同じである。S2806において、NFC通信部2805は、NFC通信部2803から印刷ジョブを受信する(ジョブ受信)。印刷ジョブには、印刷設定、画像データ名、画像データへのパス情報、画像データが携帯型通信端末装置2801とは別の格納場所にある場合にはその格納場所の情報、格納場所の認証情報など、印刷に必要な情報が含まれている。また、印刷設定には、印刷サイズ、印刷品質など、印刷設定に必要な情報が含まれている。
印刷装置2802は、受信した印刷ジョブを実行し(ジョブ実行)、印刷ジョブ内の印刷対象の画像データのリンク先等を参照して、画像データがサーバ装置2807にあると判定した場合には、S2809以降の処理で画像データを取得する。S2807において、NFC通信部2803は、解放要求を送信する。解放要求を受信したNFC通信部2805は、S2808において解放応答を返信してNFC通信を終了する。S2809において、印刷装置2802は、WLANを用いてネットワーク100経由でサーバ装置2807に接続要求を送信する。サーバ装置2807は、S2810において接続応答を送信して接続が可能である旨を通知する。S2811において、WLAN通信部2806は、画像データを要求し、S2812において、サーバ装置2807は、画像データを送信する。画像データを受信し終わると、印刷装置2802は、S2813において通信切断要求を送信し、サーバ装置2807は、S2814において通信切断応答を返信して、通信を終了する。
図28のシーケンスを実行する際に、印刷装置2802が紙詰まり等のエラー状態であった場合、携帯型通信端末装置2801のユーザは気がつかずに印刷ジョブを送信してしまう可能性がある。また、携帯型通信端末装置2801上で印刷設定を行ってから印刷装置2802に印刷ジョブを送信する際に印刷装置2802がエラー状態であると、それまでに行った画像の選択等の操作が無駄になってしまう。
そこで、本実施例においては、図29に示す処理を実行することで、携帯型通信端末装置2801のユーザが無駄な操作を行うことを防ぐ。図29に示す各処理は、印刷装置2802のCPU902により実行される。S2901において、印刷装置2802がエラー状態であるか否かを判定する。ここで、エラー状態の判定とは、印刷装置2802が印刷に影響を与える状態であるか否かということである。例えば、インク無しエラー、紙ジャムエラーなどである。エラー以外でも影響を与える可能がある警告をエラー状態として判定しても良い。例えば、そのような警告として、インク少警告、用紙無し警告など、印刷している最中に発生する可能性が高いものであったり、印刷はできるのだが画質に影響がある状態である印刷画像不良警告などがある。このような状態が検知された場合には、S2902に進み、状態通知アプリ1を起動する。
状態通知アプリ1とは、印刷装置2802がエラーなどの印刷に影響を与える状態である場合に、NFCで印刷ジョブを送信してくる装置にエラーの旨を通知するためのアプリケーションである。印刷装置2802の表示部911にエラーを表示させても良い。S2903において、状態通知アプリ1がNFC通信部2805をイニシエータモードに遷移させてS2904に進む。S2904において、NFC機器が接近(近接)したことを検知すると、S2905に進む。ここで接近するNFC機器は、イニシエータモードとターゲットモードとのいずれでも良い。イニシエータモードのNFC機器が近づいてきた場合には、印刷装置2802のNFC機器はターゲットモードに戻って、携帯型通信端末装置2801と通信を行う。一方、ターゲットモードのNFC機器が近づいてきた場合には、印刷装置2802のNFC機器は、そのまま携帯型通信端末装置2801と通信を行う。通信の確立ができたらS2905に進み、印刷装置2802の状態を通知し、S2906に進み、本処理を終了する。
本実施例においては、図29に示す処理を実施することで携帯型通信端末装置2801のユーザは印刷装置2802のエラーを事前に知ることができるので、画像の選択等無駄な操作を行うことを防ぐことができる。例えば、携帯型通信端末装置上では何も操作しない状態で、ユーザが印刷したい印刷装置に近づけるだけで印刷可能かどうかを知ることができる。また、印刷以外の操作で近づけた場合でも優先してエラー情報を通知してくれるので、ユーザは印刷装置2802のエラー状態を把握することができる。また、イニシエータモードに遷移をすると電力消費量が大きくなるため、前述したスリープモード(省電力モード)の時はイニシエータモードに遷移をしない制御を行っても良い。
図28に示すシーケンスを実行することで、携帯型通信端末装置2801は、サーバ装置2807にある画像データを印刷できる。しかしながら、携帯型通信端末装置2801は、印刷ジョブを送信した後は携帯端末を持ち運ぶために、印刷装置2802との通信が切断され、印刷の進行状況又は印刷実行結果を知ることができない。また、もし前回の印刷の実行が失敗していた場合に、携帯型通信端末装置2801のユーザは、その印刷の失敗に気がつかないで、次々と別の印刷ジョブを送信してしまう可能性がある。特に、サーバ装置2807の画像データに問題があるために印刷できなかった場合や、サーバ装置2807に接続できなくて印刷できなかった場合には、印刷装置2802には問題が無いために、印刷装置2802の表示部911にはエラー情報が表示されない。
ここで、画像データに問題がある場合とは、例えば、特定の画像データがデコードできなかった場合や、画像データが存在しなかった場合や、画像データのサイズがユーザ指定と違っていた場合などである。その場合には、印刷装置2802を不特定多数のユーザが使用することを考えると、特定のユーザに対応する印刷ジョブの失敗の旨のエラー表示を行うことは、そのエラーに関係が無いユーザに混乱を生じさせてしまう。
図30は、本実施例における、印刷ジョブを原因とするエラー通知を行う処理の手順を示すフローチャートである。図30における処理を実行することにより、画像データのエラー等により失敗した旨を、印刷ジョブを投入した人だけにエラー通知することができる。図30のS3000は、S2814で印刷が終了した時点の印刷装置2802の状態である。図30に示す各処理は、印刷装置2802のCPU902等により実行される。
S3001において、印刷ジョブの実行が成功したか失敗したかを判定する。成功したと判定された場合には、ユーザにエラーを通知する必要はないのでS3010に進み、本処理を終了する。失敗したと判定された場合には、S3002に進み、状態通知アプリ2を起動する。状態通知アプリ2とは、印刷装置2802で行った前回の印刷実行結果がエラーであった場合に、そのエラーの旨をNFC通信で通知するアプリケーションである。S3003において、NFC通信部2805をイニシエータモードに遷移させてS3004に進む。
S3004において、NFC機器が接近したことを検知すると、S3005に進む。S3005では、印刷装置2802に近接した携帯端末のNFCIDを取得する。S3006において、S3004で近接した携帯型通信端末機器が前回の印刷がエラーであった機器であるか否かを判定する。この判定は、例えば、前回の印刷エラーの発生時(例えば、画像データのフォーマットエラー)に、その印刷ジョブを投入した携帯型通信端末機器のNFCIDをRAM等の記憶領域に記憶しておき、S3005で取得したNFCIDと比較しても良い。また、別の比較手段として携帯型通信端末機器のシリアル番号や、アプリケーションによって定めた一意の識別番号、ユーザIDなど一意に決定される識別子を用いることも可能である。また、製品種別、アプリケーション種別など、一意でない情報であっても一致した場合は印刷がエラーであった機器であると判断しても良い。
S3006でエラーであった機器であると判定された場合には、S3007に進み、エラーであった機器でないと判定された場合には、S3009に進む。S3008において、S3004で近接した携帯型通信端末機器から新たな印刷ジョブを受け付けないようにする。そして、S3008において、前回の印刷ステータス(即ち、印刷エラー)を、近接した携帯型通信端末機器に通知し、S3010に進んで本処理を終了する。一方、S3009においては、新たな印刷ジョブを受け付けて、S3010に進んで本処理を終了する。
図30に示す処理を実行することにより、前回の印刷ジョブが失敗したユーザは、次の印刷ジョブを投入する前に失敗の旨を知ることができるので、失敗に気がつかないで連続して印刷ジョブを投入することを防ぐことができる。また、失敗した印刷ジョブとは関係無いユーザは無駄な通知を知ることは無いので誤解をされる可能性が減る。
以上の実施例によれば、装置においてエラーが発生したときに、その装置をイニシエータとしてエラー情報を発信するようにしたので、携帯端末のユーザにエラーを適切に通知することができる。
なお、イニシエータとしてのモードになるタイミングは、携帯端末とのNFCの通信が途切れたときでもよいし、エラーが発生したときにNFCの接続を切ってから、イニシエータとなってもよい。またNFCの接続を切るための判断は、携帯端末が行ってもよいし、印刷装置が行ってもよい。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムを実行するコンピュータは、1つであってもよいし、複数のコンピュータが協働してプログラムを実行するものであってもよい。さらに、プログラムの一部を実行する回路等のハードウェアを設け、そのハードウェアと、ソフトウェアを実行するコンピュータが協働して、本実施例で説明した処理を実行する場合であってもよい。