JP5867319B2 - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP5867319B2
JP5867319B2 JP2012149050A JP2012149050A JP5867319B2 JP 5867319 B2 JP5867319 B2 JP 5867319B2 JP 2012149050 A JP2012149050 A JP 2012149050A JP 2012149050 A JP2012149050 A JP 2012149050A JP 5867319 B2 JP5867319 B2 JP 5867319B2
Authority
JP
Japan
Prior art keywords
communication
target data
nfc
command
mfp
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.)
Active
Application number
JP2012149050A
Other languages
English (en)
Other versions
JP2014011756A (ja
Inventor
弘崇 朝倉
弘崇 朝倉
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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2012149050A priority Critical patent/JP5867319B2/ja
Priority to EP18169339.1A priority patent/EP3379854B1/en
Priority to EP13174778.4A priority patent/EP2683180B1/en
Priority to US13/933,419 priority patent/US8994996B2/en
Publication of JP2014011756A publication Critical patent/JP2014011756A/ja
Priority to US14/663,923 priority patent/US9354835B2/en
Application granted granted Critical
Publication of JP5867319B2 publication Critical patent/JP5867319B2/ja
Priority to US15/162,995 priority patent/US9696956B2/en
Priority to US15/609,339 priority patent/US10108383B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/40Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
    • G06K15/4045Managing the interface to the data source, e.g. choosing an interface for data reception
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • H04B5/70Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
    • H04B5/72Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for local intradevice communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/20Manipulation of established connections
    • H04W76/23Manipulation of direct-mode connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Facsimiles In General (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Information Transfer Between Computers (AREA)

Description

本明細書によって開示される技術は、NFC(Near Field Communicationの略)規格に従った通信方式であるNFC方式で、通信対象の対象データの通信を外部装置と実行する通信装置に関する。
特許文献1には、2個の通信装置が無線通信を実行するための技術が開示されている。この技術では、2個の通信装置は、NFC方式で通信情報の無線通信を実行する。通信情報は、NFC方式とは異なる通信方式(例えばIEEE802.11a)に従った無線通信を実行するための情報(即ち、通信方式を示す情報、暗号化方式を示す情報)を含む。これにより、2個の通信装置は、NFC方式とは異なる通信方式に従って、無線通信を実行可能になる。
特開2007−166538号公報
本明細書では、通信装置が、NFC方式で通信対象の対象データを外部装置と適切に通信するための技術を提供する。
本明細書によって開示される一つの技術は、NFC(Near Field Communication)規格に従った通信方式であるNFC方式で、通信対象の対象データの通信を外部装置と実行する通信装置である。通信装置は、前記NFC方式の通信を実行するためのNFCインターフェースと、プロセッサと、プログラムを格納しているメモリと、を備える。
前記プロセッサは、前記メモリに格納されている前記プログラムに従って、以下の各ステップ、即ち、
前記通信装置と前記外部装置との間に第1の通信リンクを確立するための第1の確立コマンドを、前記NFCインターフェースを介して、前記外部装置と通信して、前記第1の通信リンクを確立する第1の確立ステップと、
前記第1の通信リンクを利用して、前記NFCインターフェースを介して、第1の対象データを前記外部装置から受信する受信ステップであって、前記第1の対象データは、特定のコマンドと、前記外部装置が前記NFC方式の通信を実行するための通信プログラムに関係する関係情報と、を含む、前記受信ステップと、
前記第1の対象データに含まれる前記特定のコマンドを処理して、第2の対象データを生成する生成ステップと、
前記第1の通信リンクを切断するための複数種の切断手法の中から、前記第1の対象データに含まれる前記関係情報に応じた1種類の切断手法を選択する選択ステップと、
選択済みの前記1種類の切断手法を利用して、前記第1の通信リンクを切断する切断ステップと、
前記第1の通信リンクが切断された後に、前記通信装置と前記外部装置との間に第2の通信リンクを確立するための第2の確立コマンドを、前記NFCインターフェースを介して、前記外部装置と通信して、前記第2の通信リンクを確立する第2の確立ステップと、
前記第2の通信リンクを利用して、前記NFCインターフェースを介して、前記第2の対象データを前記外部装置に送信する送信ステップと、
を実行する。
上記の構成によると、通信装置は、第1の通信リンクを利用して、第1の対象データを外部装置から受信した後に、同じ第1の通信リンクを利用して、第2の対象データを通信するのではなく、第1の通信リンクを一旦切断して、第2の通信リンクを新たに確立する。特に、通信装置は、複数種の切断手法の中から、第1の対象データに含まれる関係情報に応じた1種類の切断手法を選択し、選択済みの1種類の切断手法を利用して、第1の通信リンクを切断する。このために、通信装置は、第1の通信リンクを適切に切断して、第2の通信リンクを適切に確立し得る。従って、通信装置は、第2の通信リンクを利用して、第2の対象データを外部装置に適切に送信し得る。
(1)前記第1の確立コマンドを前記外部装置に送信して、前記第1の通信リンクを確立する場合において、(1−1)前記第1の対象データが、第1の通信プログラムの種類を示す第1の種類情報と、前記第1の通信プログラムの第1のバージョンを示す第1のバージョン情報と、を含む第1の関係情報を含む場合には、前記選択ステップは、第1種の切断手法を選択し、(1−2)前記第1の対象データが、前記第1の種類情報と、前記第1の通信プログラムの第2のバージョンであって、前記第1のバージョンとは異なる前記第2のバージョンを示す第2のバージョン情報と、を含む第2の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法とは異なる第2種の切断手法を選択してもよい。この構成によると、通信装置は、第1の確立コマンドを外部装置に送信して、第1の通信リンクを確立する場合に、第1又は第2の関係情報に応じた適切な切断手法を選択し得る。
前記第1種の切断手法は、前記NFCインターフェースの動作を一時的に停止させる手法を含んでいてもよい。前記第2種の切断手法は、前記NFCインターフェースを介して、切断コマンドを前記外部装置に送信して、前記NFCインターフェースを介して、前記切断コマンドに対するレスポンスコマンドを前記外部装置から受信する手法を含んでいてもよい。この構成によると、通信装置は、第1種又は第2種の切断手法を選択する場合に、第1の通信リンクを適切に切断して、第2の通信リンクを適切に確立し得る。
(1)前記第1の確立コマンドを前記外部装置に送信して、前記第1の通信リンクを確立する場合において、(1−1)前記第1の対象データが、第1の通信プログラムの種類を示す第1の種類情報を含む第1の関係情報を含む場合には、前記選択ステップは、第1種の切断手法を選択し、(1−3)前記第1の対象データが、前記第1の通信プログラムとは異なる第2の通信プログラムの種類を示す第2の種類情報を含む第3の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法とは異なる第3種の切断手法を選択してもよい。この構成によると、通信装置は、第1の確立コマンドを外部装置に送信して、第1の通信リンクを確立する場合に、第1又は第3の関係情報に応じた適切な切断手法を選択し得る。
前記第1種の切断手法は、前記NFCインターフェースの動作を一時的に停止させる手法を含んでいてもよい。前記第3種の切断手法は、前記NFCインターフェースを介して、前記外部装置に切断コマンドを送信して、前記NFCインターフェースを介して、前記切断コマンドに対するレスポンスコマンドを前記外部装置から受信し、その後、前記NFCインターフェースの動作を一時的に停止させる手法を含んでいてもよい。この構成によると、通信装置は、第1種又は第3種の切断手法を選択する場合に、第1の通信リンクを適切に切断して、第2の通信リンクを適切に確立し得る。
(2)前記外部装置から前記第1の確立コマンドを受信して、前記第1の通信リンクを確立する場合において、(2−1)前記第1の対象データが、第1の通信プログラムの種類を示す第1の種類情報と、前記第1の通信プログラムの第1のバージョンを示す第1のバージョン情報と、を含む第1の関係情報を含む場合には、前記選択ステップは、第1種の切断手法を選択し、(2−2)前記第1の対象データが、前記第1の種類情報と、前記第1の通信プログラムの第2のバージョンであって、前記第1のバージョンとは異なる前記第2のバージョンを示す第2のバージョン情報と、を含む第2の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法とは異なる第4種の切断手法を選択してもよい。この構成によると、通信装置は、第1の確立コマンドを外部装置から受信して、第1の通信リンクを確立する場合に、第1又は第2の関係情報に応じた適切な切断手法を選択し得る。
第1種の切断手法は、前記NFCインターフェースの動作を、第1の期間に亘って一時的に停止させる手法を含んでいてもよい。第4種の切断手法は、前記NFCインターフェースの動作を、前記第1の期間とは異なる第2の期間に亘って一時的に停止させる手法を含んでいてもよい。この構成によると、通信装置は、第1種又は第4種の切断手法を選択する場合に、第1の通信リンクを適切に切断して、第2の通信リンクを適切に確立し得る。
前記外部装置から前記第1の確立コマンドを受信して、前記第1の通信リンクを確立する場合であり、かつ、前記通信装置が、前記NFC規格のP2Pモードに従って動作すべき場合において、前記第1の対象データが前記第1の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法を選択し、前記第1の対象データが前記第2の関係情報を含む場合には、前記選択ステップは、前記第4種の切断手法を選択してもよい。前記外部装置から前記第1の確立コマンドを受信して、前記第1の通信リンクを確立する場合であり、かつ、前記通信装置が、前記NFC規格のCard Emulationモードに従って動作すべき特定の場合において、前記第1の対象データが、前記第1の関係情報を含む場合でも、前記第2の関係情報を含む場合でも、前記選択ステップは、第5種の切断手法を選択してもよい。前記第5種の切断手法は、前記NFCインターフェースを介して、切断コマンドを前記外部装置から受信して、前記NFCインターフェースを介して、前記切断コマンドに対するレスポンスコマンドを前記外部装置に送信する手法を含んでいてもよい。この構成によると、通信装置は、第1の確立コマンドを外部装置から受信して、第1の通信リンクが確立する場合に、関係情報と、通信装置が動作すべきモードと、に応じた適切な切断手法を選択し得る。
前記プロセッサは、前記メモリに格納されている前記プログラムに従って、さらに、前記特定の場合において、前記第5種の切断手法を利用して前記第1の通信リンクが切断された後に、動作制御ステップを実行してもよい。前記動作制御ステップは、前記第1の対象データが前記第1の関係情報を含む場合には、前記NFCインターフェースの動作を、前記第1の期間に亘って一時的に停止させ、前記第1の対象データが前記第2の関係情報を含む場合には、前記NFCインターフェースの動作を、前記第2の期間に亘って一時的に停止させてもよい。この構成によると、通信装置は、第1の通信リンクが切断された後に、第1又は第2の関係情報に応じた期間(即ち第1の期間又は第2の期間)に亘って、NFCインターフェースの動作を停止させる。このために、通信装置は、第1の対象データを通信した後に、外部装置を適切に動作させ得る。
前記メモリは、さらに、前記第1の対象データが前記外部装置から受信された後に、前記第2の対象データが前記外部装置に送信されるべきであるのか否かを示す通信継続情報を格納してもよい。前記プロセッサは、前記メモリに格納されている前記プログラムに従って、さらに、前記通信継続情報を用いて、前記第2の対象データが前記外部装置に送信されるべきであるのか否かを判断する判断ステップを実行してもよい。前記選択ステップは、前記第2の対象データが前記外部装置に送信されるべきと判断される場合には、前記複数種の切断手法の中から、前記第1の対象データに含まれる前記関係情報に応じた前記1種類の切断手法を選択し、前記第2の対象データが前記外部装置に送信されるべきでないと判断される場合には、前記第1の対象データに含まれる前記関係情報に関わらず、予め決められている種類の切断手法を選択してもよい。この構成によると、通信装置は、第2の対象データが外部装置に送信されるべきであるのか否かに応じて、適切な切断手法を選択し得る。
なお、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。また、上記の通信装置と外部装置とを含む通信システムも、新規で有用である。
通信システムの構成を示す。 切断手法テーブルの一例を示す。 動作制御テーブルの一例を示す。 MFPのListen処理のフローチャートを示す。 図4の続きのフローチャートを示す。 MFPのPoll処理のフローチャートを示す。 図6の続きのフローチャートを示す。 ケースAの通信のシーケンスチャートを示す。 ケースBの通信のシーケンスチャートを示す。 ケースCの通信のシーケンスチャートを示す。 ケースDの通信のシーケンスチャートを示す。 ケースEの通信のシーケンスチャートを示す。
(通信システム2の構成)
図1に示すように、通信システム2は、多機能機(以下では「MFP(Multi-Function Peripheralの略)」と呼ぶ)10と、携帯端末50と、を備える。MFP10と携帯端末50とは、それぞれ、NFC規格の通信方式(即ちNFC方式)の通信を実行可能である。本実施例では、NFC規格は、ISO/IEC21481又はISO/IEC18092の国際標準規格である。NFC方式の通信は、13.56MHz帯の電波を利用した無線通信である。また、MFP10と携帯端末50とは、それぞれ、NFC方式の通信リンクとは異なる通信ネットワークを利用して、有線通信又は無線通信を実行可能である。
(MFP10の構成)
MFP10は、操作部12と、表示部14と、ネットワークインターフェース(以下では、インターフェースのことを「I/F」と記載する)16と、印刷実行部18と、スキャン実行部20と、NFC I/F22と、制御部30と、を備える。
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をMFP10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。ネットワークI/F16は、有線ネットワークに接続するためのI/Fであってもよいし、無線ネットワークに接続するためのI/Fであってもよい。なお、この無線ネットワークは、NFC方式の通信とは異なる無線通信を実行するためのネットワークであり、例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)の802.11の規格、及び、それに準ずる規格(例えば802.11a,11b,11g,11n等)に従ったネットワークである。印刷実行部18は、インクジェット方式、レーザ方式等の印刷機構である。スキャン実行部20は、CCD、CIS等のスキャン機構である。
NFC I/F22は、NFC方式の通信を実行するためのインターフェースである。NFC I/F22は、ネットワークI/F16とは異なるチップによって構成されている。なお、ネットワークI/F16が無線ネットワークに接続するためのI/Fである場合には、ネットワークI/F16とNFC I/F22とは、以下の点で異なる。
即ち、ネットワークI/F16を介した無線通信の通信速度は、NFC I/F22を介した無線通信の通信速度よりも速い。さらに、ネットワークI/F16を介した無線通信における搬送波の周波数は、NFC I/F22を介した無線通信における搬送波の周波数とは異なる。また、MFP10と携帯端末50との距離がおよそ10cm以下である場合に、MFP10は、NFC I/F22を介して、携帯端末50とNFC方式の通信を実行可能である。一方において、MFP10と携帯端末50との距離が、10cm以下である場合でも、10cm以上である場合でも、MFP10は、ネットワークI/F16を介して、携帯端末50と無線通信を実行可能である。即ち、MFP10が、ネットワークI/F16を介して、通信先の機器(例えば携帯端末50)と無線通信を実行可能な最大の距離は、MFP10が、NFC I/F22を介して、通信先の機器と無線通信を実行可能な最大の距離よりも大きい。なお、以下では、ネットワークI/F16を介した無線通信のことを、「ネットワーク無線通信」と呼ぶ。
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム36,38に従って、様々な処理を実行する。メモリ34は、ROM、RAM、ハードディスク等によって構成される。メモリ34は、CPU32によって実行される上記のプログラム36,38を格納する。
アプリケーションプログラム36は、CPU32が、OSI参照モデルのアプリケーション層の処理を実行するためのプログラムである。プロトコルスタック38は、CPU32が、OSI参照モデルのアプリケーション層よりも下位層の処理を実行するためのプログラムである。プロトコルスタック38は、P2P(Peer to Peerの略)プログラムと、R/Wプログラムと、CEプログラムと、を含む。P2Pプログラムは、NFC規格のP2Pモードに従った処理を実行するためのプログラムである。R/Wプログラムは、NFC規格のReader/Writerモードに従った処理を実行するためのプログラムである。CEプログラムは、NFC規格のCE(Card Emulationの略)モードに従った処理を実行するためのプログラムである。これらのプログラムは、NFCフォーラムによって定められたNFC規格に準拠した処理を実行するためのプログラムである。
メモリ34は、さらに、送信フラグと、継続フラグと、コマンドテーブル40と、切断手法テーブル42と、動作制御テーブル44と、を格納する。
送信フラグは、MFP10が、NFC方式の通信を利用して、通信対象の対象データを送信すべきか否かを示すフラグである。即ち、MFP10が対象データを送信すべき状況では、送信フラグは「1」に設定される。また、MFP10が対象データを送信すべきでない状況では、送信フラグは「0」に設定される。
継続フラグは、対象データの通信(送信又は受信)を継続して実行すべき状況であるのか否かを示すフラグである。後で詳しく述べるが、MFP10と携帯端末50との間では、1個以上の対象データの通信が順次実行される。例えば、携帯端末50からMFP10に第1の対象データが送信された後に、MFP10から携帯端末50に第2の対象データが送信されて、一連の通信が終了することがあり得る。この例において、第1の対象データの通信が実行された段階では、第2の対象データの通信を継続して実行すべき状況であるために、継続フラグは「1」に設定される。また、第2の対象データの通信が実行された段階では、対象データの通信を継続して実行すべきでない状況、即ち、全ての対象データの通信が終了した状況であるために、継続フラグは「0」に設定される。
コマンドテーブル40は、MFP10がNFC方式の通信を利用して送信又は受信すべき各対象データに含まれ得る各コマンドを示す。例えば、パターンAに示されるように、MFP10は、A1コマンド(より正確に記載すると、A1コマンドを含む1個の対象データ)を受信する場合に、A2コマンドを送信し、次いで、A3コマンドを受信し、次いで、A4コマンドを送信する。このようなコマンドテーブル40がメモリ24に記憶されているために、制御部30は、例えば、A1コマンドを含む1個の対象データを受信した際に、A2コマンドを含む1個の対象データを送信すべき状況であることを知ることができる。また、制御部30は、例えば、A4コマンドを含む1個の対象データを送信した際に、A4コマンドが最後のコマンドであること、即ち、複数個の対象データの一連の通信が終了したこと、を知ることができる。
なお、本実施例では、複数個の対象データの一連の通信において、MFP10が、最初の対象データを送信することはなく、最初の対象データを受信することを前提としている。従って、コマンドテーブル40では、MFP10が最初のコマンド(即ちA1、B1)を受信する旨が記述されている。
(切断手法テーブル42の内容;図2)
図2に示されるように、切断手法テーブル42は、「状況」と、「OS情報」と、「モード」と、「切断手法」と、が対応付けられているテーブルである。詳しくは後述するが、MFP10は、切断手法テーブル42を参照して、NFC方式の通信リンクを切断するための切断手法を選択する(図4のS38等参照)。
「状況」は、NFC方式の通信リンクを切断すべき状況を意味し、Poll継続、Listen継続、Poll終了、及び、Listen終了に分類される。Poll継続は、後述のPoll機器であるMFP10が、対象データの通信を実行した際に、次の対象データの通信を継続して実行すべき状況を意味する。Listen継続は、後述のListen機器であるMFP10が、対象データの通信を実行した際に、次の対象データの通信を継続して実行すべき状況を意味する。Poll終了は、Poll機器であるMFP10が、対象データの通信を実行した際に、次の対象データの通信を継続して実行すべきでない状況を意味する。Listen終了は、Listen機器であるMFP10が、対象データの通信を実行した際に、次の対象データの通信を継続して実行すべきでない状況を意味する。
「OS情報」は、OS(Operating Systemの略)プログラムの種類を示す種類情報と、OSプログラムのバージョンを示すバージョン情報と、の組合せである。種類情報T1は、例えば、Android(登録商標)であり、種類情報T2は、例えば、Windows8(登録商標)である。また、バージョン情報V1,V2は、種類情報T1によって特定されるOSプログラム(例えばAndroid(登録商標))のバージョン情報である。バージョン情報V1は、バージョン情報V2よりも新しいバージョンである。例えば、バージョン情報V1は、Android(登録商標)のバージョン4.0.0及びそれよりも新しいバージョンであり、バージョン情報V2は、Android(登録商標)のバージョン2.3.4である。また、バージョン情報V3は、種類情報T2によって特定されるOSプログラム(例えばWindows8(登録商標))のバージョン情報である。バージョン情報V3は、例えば、Windows8(登録商標)のバージョンSP1である。なお、「OS情報」の欄に記述されている「any」は、いずれのOS情報でもよいこと、即ち、OS情報に依存せずに切断手法が選択されること、を意味する。
「モード」は、NFC規格で利用されるモードを意味し、P2Pモード、Readerモード、Writerモード、及び、CEモードに分類される。なお、以下では、NFC方式の通信を実行可能な機器(MFP10、携帯端末50等)のことを「NFC機器」と呼ぶ。また、以下では、Readerモード及びWriterモードを合わせて、「R/Wモード」と簡単に記載することがある。
NFC機器の中には、P2Pモード、R/Wモード、及び、CEモードの3つのモードの全てを利用可能な機器も存在するし、上記の3つのモードのうちの1つ又は2つのモードのみを利用可能な機器も存在する。本実施例では、MFP10は、上記の3つのモードの全てを利用可能な機器である。ただし、携帯端末50は、上記の3つのモードの全てを利用可能な機器であってもよいし、上記の3つのモードのうち、R/Wモード及びCEモードの2つのモードのみを利用可能であってもよい。
P2Pモードは、一対のNFC機器の間で双方向通信を実行するためのモードである。
例えば、第1のNFC機器と第2のNFC機器との両方が、P2Pモードに従って動作する状況を想定する。この場合、第1のNFC機器と第2のNFC機器との間で、P2Pモードに従った通信を実行するための通信リンクが確立される。例えば、第1のNFC機器は、通信リンクを利用して、第1の対象データを第2のNFC機器に送信する。その後、第2のNFC機器は、通常、同じ通信リンクを利用して、第2の対象データを第1のNFC機器に送信する。これにより、双方向通信が実現される。NFCフォーラムによって定められるISO/IEC 1443のTypeAであるNFC機器、及び、ISO/IEC 18092のTypeFであるNFC機器は、P2Pモードに従って動作することができるが、ISO/IEC 1443のTypeBであるNFC機器は、P2Pモードに従って動作することができない。
R/Wモード及びCEモードは、一対のNFC機器の間で単方向通信を実行するためのモードである。CEモードは、NFC機器がNFCフォーラムによって定められた形式である「カード」として動作するためのモードである。TypeAのNFC機器と、TypeFのNFC機器と、TypeBのNFC機器と、のいずれも、CEモードに従って動作することができる。Readerモードは、CEモードでカードとして動作するNFC機器からデータを読み出すためのモードである。Writerモードは、CEモードでカードとして動作するNFC機器にデータを書き込むためのモードである。なお、Readerモードでは、NFC規格のカードからデータを読み出すこともできる。また、Writerモードでは、NFC規格のカードにデータを書き込むこともできる。
例えば、第1のNFC機器がReaderモードに従って動作し、第2のNFC機器がCEモードに従って動作する状況を想定する。この場合、第1のNFC機器と第2のNFC機器との間で、Readerモード及びCEモードに従った通信を実行するための通信リンクが確立される。第1のNFC機器は、第2のNFC機器内の擬似的なカードから対象データを読み出すための動作を実行することによって、当該対象データを第2のNFC機器から受信することができる。
また、例えば、第1のNFC機器がWriterモードに従って動作し、第2のNFC機器がCEモードに従って動作する状況を想定する。この場合、第1のNFC機器と第2のNFC機器との間で、Writerモード及びCEモードに従った通信を実行するための通信リンクが確立される。第1のNFC機器は、第2のNFC機器内の擬似的なカードに対象データを書き込むための動作を実行することによって、当該対象データを第2のNFC機器に送信することができる。
上述したように、一対のNFC機器がNFC方式の通信を実行するためには、様々なモードの組合せが考えられる。例えば、MFP10及び携帯端末50のモードの組合せとして、以下の5つのパターン、即ち、「P2Pモード、P2Pモード」、「Readerモード、CEモード」、「Writerモード、CEモード」、「CEモード、Readerモード」、「CEモード、Writerモード」が考えられる。
「切断手法」は、NFC方式の通信リンクを切断するための手法を意味し、第1のハード切断、第2のハード切断、第1のソフト切断、第2のソフト切断、及び、ソフト+ハード切断に分類される。なお、切断手法テーブル42において、切断手法が記述されていない欄は、通常あり得ない「状況」及び「モード」の組合せに対応する欄である。例えば、後述のPoll機器がCEモードに従って動作することはあり得ないために、「Poll継続」又は「Poll終了」と、「CE」と、に対応する各欄には、切断手法が記述されていない。
第1のハード切断は、NFC I/F22の動作を200msに亘って停止させることによって、通信リンクを切断するための手法である。具体的に言うと、第1のハード切断では、例えば、制御部30は、NFC I/F22の動作を停止させるための停止指示を、NFC I/F22に送信する。これにより、NFC I/F22は、外部からの信号の受信、外部への信号の送信、後述のPoll動作、後述のListen動作等を含む全ての動作を一時的に停止する。制御部30は、200msの待機期間を経た後に、NFC I/F22の動作を再開させるための再開指示を、NFC I/F22に送信する。これにより、NFC I/F22は、動作を再開する。この結果、NFC I/F22の動作を200msに亘って停止させることができる。動作を再開したNFC I/F22は、後述のPoll動作及びListen動作を実行可能な状態に戻る。
なお、第1のハード切断は、上記のように、停止指示及び再開指示をNFC I/F22に送信する手法に限られない。例えば、制御部30は、NFC I/F22への電力供給を200msに亘って停止させてもよい。本手法でも、NFC I/F22の動作を200msに亘って停止させることができる。後述の第2のハード切断、ソフト+ハード切断、第1のハード制御(図3参照)、及び、第2のハード制御(図3参照)のいずれも、停止指示及び再開指示をNFC I/F22に送信する手法であってもよいし、NFC I/F22への電力供給を停止させる手法であってもよい。
第2のハード切断は、NFC I/F22の動作を300msに亘って停止させることによって、通信リンクを切断するための手法である。NFC I/F22の動作を停止させる期間(300ms)が、第1のハード切断(200ms)とは異なる点を除くと、第2のハード切断は、第1のハード切断と同様である。
第1のソフト切断は、通信リンクを切断するためのコマンドであるDeactivationコマンドを送信して、OKコマンドを受信することによって、通信リンクを切断するための手法である。また、第2のソフト切断は、Deactivationコマンドを受信して、OKコマンドを送信することによって、通信リンクを切断するための手法である。また、ソフト+ハード切断は、Deactivationコマンドを送信して、OKコマンドを受信し、その後、NFC I/F22の動作を10msに亘って停止させることによって、通信リンクを切断するための手法である。
第1のソフト切断及び第2のソフト切断は、NFCフォーラムによって定義されている一般的な切断手法である。従って、一般的なNFC機器は、通常、第1のソフト切断及び第2のソフト切断を利用して、通信リンクを切断する。これに対し、第1のハード切断、第2のハード切断、及び、ソフト+ハード切断は、一般的な切断手法ではなく、本実施例のMFP10に特有の切断手法である。詳しくは後述するが、MFP10は、切断手法テーブル42を参照して、複数種の切断手法(本実施例では5種の切断手法)の中から、「状況」と「OS情報」と「モード」とに応じた切断手法を選択して、通信リンクを切断する。「状況」等に応じて選択される切断手法が変わる理由については、後で詳しく説明する(図8〜図12の具体的なケースで説明する)。
(動作制御テーブル44の内容;図3)
図3に示されるように、動作制御テーブル44は、「状況」と、「OS情報」と、「モード」と、「動作制御手法」と、が対応付けられているテーブルである。「状況」、「OS情報」、及び、「モード」は、上記のとおりである。「動作制御手法」は、通信リンクが切断された後に、NFC I/F22の動作を制御するための手法を意味し、第1のハード制御、及び、第2のハード制御に分類される。なお、動作制御テーブル44において、動作制御手法が記述されていない欄は、通信リンクが切断された後に、NFC I/F22の動作の制御が実行されないことを意味する。
第1のハード制御は、図2の第1のハード切断と同様に、NFC I/F22の動作を200msに亘って停止させることによって、NFC I/F22の動作を制御する手法である。第2のハード制御は、図2の第2のハード切断と同様に、NFC I/F22の動作を300msに亘って停止させることによって、NFC I/F22の動作を制御する手法である。
一般的なNFC機器は、通常、第1及び第2のハード制御を実行しない。即ち、第1及び第2のハード制御は、本実施例のMFP10に特有の手法である。第1及び第2のハード制御を実行する理由については、後で詳しく説明する(図5、図7のフローチャートで説明する)。
(携帯端末50の構成)
携帯端末50は、例えば、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC、携帯型音楽再生装置、携帯型動画再生装置等の可搬型の端末である。携帯端末50は、無線ネットワークに接続するためのネットワークI/Fと、NFC I/Fと、を備える。従って、携帯端末50は、ネットワークI/Fを介して、MFP10と無線通信を実行可能であると共に、NFC I/Fを利用して、MFP10と無線通信を実行可能である。
携帯端末50は、MFP10に様々な機能(例えば、印刷機能、スキャン機能等)を実行させるためのアプリケーションプログラム(以下では「MFP用アプリケーション」と呼ぶ)を備える。なお、MFP用アプリケーションは、例えば、MFP10のベンダによって提供されるサーバから携帯端末50にインストールされてもよいし、MFP10と共に出荷されるメディアから携帯端末50にインストールされてもよい。
(通信対象の対象データ)
続いて、MFP10と携帯端末50との間で実行されるNFC方式の通信の対象である対象データの一例を以下に列挙する。
(第1の例)
MFP10が、携帯端末50から印刷データを受信して、当該印刷データに従った印刷機能を実行すべき状況を想定する。携帯端末50のユーザは、携帯端末50のMFP用アプリケーションを起動させて、MFP10に印刷機能を実行させるための指示を携帯端末50に入力する。この場合、携帯端末50は、NFC方式の通信を利用して、印刷実行コマンドを含む第1の対象データをMFP10に送信する。なお、第1の対象データは、印刷データを含まない。
MFP10は、携帯端末50から、NFC I/F22を介して、第1の対象データを受信する。上述したように、NFC方式の通信の通信速度は、ネットワーク無線通信の通信速度よりも遅い。このために、仮に、携帯端末50からMFP10への印刷データの通信としてNFC方式の通信が利用されると、印刷データの通信に長時間を要する可能性がある。従って、本例では、MFP10が、ネットワーク無線通信を利用して、携帯端末50から印刷データを受信する構成を採用する。このような構成を採用するためには、携帯端末50は、MFP10とネットワーク無線通信を実行するための無線設定を知る必要がある。従って、MFP10は、携帯端末50から印刷実行コマンドを含む第1の対象データを受信する場合に、NFC I/F22を介して、無線設定と、当該無線設定を利用することを携帯端末50に指示する指示コマンドと、を含む第2の対象データを携帯端末50に送信する。
これにより、MFP10及び携帯端末50は、NFC方式の通信に代えて、ネットワーク無線通信を実行して、印刷データを通信することができる。従って、MFP10は、印刷機能を実行することができる。
(第2の例)
MFP10が、スキャンを実行してスキャンデータを生成して、当該スキャンデータを携帯端末50に送信するスキャン機能を実行すべき状況を想定する。携帯端末50のユーザは、携帯端末50のMFP用アプリケーションを起動させて、MFP10にスキャン機能を実行させるための指示を携帯端末50に入力する。この場合、携帯端末50は、NFC方式の通信を利用して、スキャン実行コマンドを含む第1の対象データをMFP10に送信する。
MFP10は、携帯端末50から、NFC I/F22を介して、第1の対象データを受信する。仮に、MFP10から携帯端末50へのスキャンデータの通信としてNFC方式の通信が利用されると、スキャンデータの通信に長時間を要する可能性がある。このために、本例では、MFP10が、ネットワーク無線通信を利用して、スキャンデータを携帯端末50に送信する構成を採用する。従って、MFP10は、携帯端末50からスキャン実行コマンドを含む第1の対象データを受信する場合に、NFC I/F22を介して、無線設定と、当該無線設定を利用することを携帯端末50に指示する指示コマンドと、を含む第2の対象データを携帯端末50に送信する。
これにより、MFP10及び携帯端末50は、NFC方式の通信に代えて、ネットワーク無線通信を実行して、スキャンデータを通信することができる。従って、MFP10は、スキャン機能を実行することができる。
(第3の例)
携帯端末50が、MFP10が利用すべき設定情報を、MFP10に送信すべき状況を想定する。上記の設定情報として、例えば、MFP10が印刷機能を実行するための印刷設定情報(例えば、印刷解像度、用紙サイズ等)、MFP10がスキャン機能を実行するためのスキャン設定情報(例えば、スキャン解像度等)、MFP10が通信機能を実行するための通信設定情報(例えば、IPアドレス、サブネットマスク、ゲートウェイアドレス等)を挙げることができる。
携帯端末50のユーザは、携帯端末50のMFP用アプリケーションを起動させて、MFP10が利用すべき設定情報を携帯端末50に入力する。この場合、携帯端末50は、NFC方式の通信を利用して、設定情報と、設定情報をMFP10に設定させるための設定コマンドと、を含む第1の対象データをMFP10に送信する。
MFP10は、携帯端末50から、NFC I/F22を介して、第1の対象データを受信する。MFP10は、第1の対象データに含まれる設定情報を、MFP10が利用すべき設定情報として、メモリ34に格納する。これにより、MFP10は、設定情報を利用して、様々な機能を実行することができる。MFP10は、携帯端末50から第1の対象データを受信する場合に、第1の対象データを受信したことを示す応答コマンドを含む第2の対象データを、NFC I/F22を介して、携帯端末50に送信する。
(第4の例)
携帯端末50が、携帯端末50で現在利用されているアドレス帳に含まれるアドレス情報を、MFP10に送信すべき状況を想定する。携帯端末50のユーザは、携帯端末50のMFP用アプリケーションを起動させて、アドレス情報をMFP10に送信するための指示を携帯端末50に入力する。この場合、携帯端末50は、NFC方式の通信を利用して、アドレス情報と、アドレス情報をMFP10に設定させるための設定コマンドと、を含む第1の対象データをMFP10に送信する。
MFP10は、携帯端末50から、NFC I/F22を介して、第1の対象データを受信する。MFP10は、第1の対象データに含まれるアドレス情報を、MFP10で現在利用されているアドレス帳(即ちメモリ34内のアドレス帳)に追加する。これにより、MFP10は、アドレス情報を利用して、通信機能を実行することができる。MFP10は、携帯端末50から第1の対象データを受信する場合に、第1の対象データを受信したことを示す応答コマンドを含む第2の対象データを、NFC I/F22を介して、携帯端末50に送信する。
(第5の例)
上記の第1の例では、MFP10が、ネットワーク無線通信を利用して、印刷データを携帯端末50に送信する構成を採用している。これに代えて、例えば、MFP10は、携帯端末50から、NFC I/F22を介して、印刷データと、印刷実行コマンドと、を含む第1の対象データを受信してもよい。この場合、MFP10は、第1の対象データを受信したことを示す応答コマンドを含む第2の対象データを、NFC I/F22を介して、携帯端末50に送信してもよい。
対象データの様々な例を説明したが、「第1の対象データ」と「第2の対象データ」の組合せは、上記の第1〜第5の例に限られず、他の組合せであってもよい。即ち、「第1の対象データ」は、MFP10がNFC方式の通信を利用して受信するデータであれば、どのような種類のデータであってもよく、「第2の対象データ」は、第1の対象データに含まれるコマンドを処理することによって生成されるデータ(即ち、第1の対象データとは異なるデータ)であれば、どのような種類のデータであってもよい。
なお、上記の第1〜第5の例では、MFP10が、第1の対象データを受信して、第2の対象データを送信すれば、複数個の対象データの一連の通信が終了する。従って、上記の第1〜第5の例では、例えば、図1のコマンドテーブル40内のパターンBに示されるように、第1の対象データに含まれるコマンドが「B1コマンド」に対応し、第2の対象データに含まれるコマンドが「B2コマンド」に対応し、それらの2個のコマンドの通信が終了すると、複数個の対象データの一連の通信が終了する。
ただし、図1のコマンドテーブル40内のパターンAに示されるように、3個以上の対象データが通信されることがあり得る。例えば、上記の第3の例において、MFP10は、(1)設定情報のうちの一部の情報と、設定コマンド(例えば「A1コマンド」)と、を含む第1の対象データを携帯端末50から受信し、(2)次いで、応答コマンド(例えば「A2コマンド」)を含む第2の対象データを携帯端末50に送信し、(3)次いで、設定情報のうちの残りの情報と、設定コマンド(例えば「A3コマンド」)と、を含む第3の対象データを携帯端末50から受信し、(4)次いで、応答コマンド(例えば「A4コマンド」)を含む第4の対象データを携帯端末50に送信してもよい。
(Poll動作及びListen動作)
続いて、NFC機器によって実行されるPoll動作及びListen動作について説明する。例えば、MFP10では、CPU32が、プログラム36,38に従ってPoll動作及びListen動作を実行するのではなく、NFC I/F22が、Poll動作及びListen動作を実行する。Poll動作は、ポーリング信号を送信して、ポーリング信号に対するレスポンス信号を受信する動作である。また、Listen動作は、ポーリング信号を受信して、ポーリング信号に対するレスポンス信号を送信する動作である。
MFP10のNFC I/F22は、Poll動作を実行するためのPollモードと、Listen動作を実行するためのListenモードと、Poll動作及びListen動作のどちらも実行しないモード(以下では「不実行モード」と呼ぶ)と、のうちのいずれかのモードで動作可能である。NFC I/F22は、Pollモード、Listenモード、及び、不実行モードで、順次動作する。例えば、NFC I/F22は、Pollモードで動作し、次いで、Listenモードで動作し、次いで、不実行モードで動作する、という1セットの動作を実行する。NFC I/F22は、上記の1セットの動作を繰り返し実行する。
Pollモードでは、NFC I/F22は、ポーリング信号を送信して、レスポンス信号を受信することを監視する。具体的に言うと、NFC I/F22は、(1)TypeAのNFC機器が応答可能なポーリング信号(即ちTypeAに対応するポーリング信号)を送信して、レスポンス信号の受信を所定時間監視し、(2)レスポンス信号を受信しなければ、TypeBのNFC機器が応答可能なポーリング信号(即ちTypeBに対応するポーリング信号)を送信して、レスポンス信号の受信を所定時間監視し、(3)レスポンス信号を受信しなければ、TypeFのNFC機器が応答可能なポーリング信号(即ちTypeFに対応するポーリング信号)を送信して、レスポンス信号の受信を所定時間監視する、という動作を繰り返す。NFC I/F22が所定時間内にNFC機器からレスポンス信号を受信する場合には、当該NFC機器は、当該レスポンス信号の送信の直前に受信したポーリング信号に対応するTypeのNFC機器であると言える。NFC I/F22は、レスポンス信号を受信する場合に、さらに、当該レスポンス信号の送信元のNFC機器が、どのモードで動作可能であるのかを問い合わせる問い合わせ信号を、当該NFC機器に送信する。この結果、NFC I/F22は、当該NFC機器から動作可能モード信号を受信する。動作可能モード信号は、当該NFC機器がP2Pモード及びCEモードのどちらでも動作可能であることを示すか、あるいは、当該NFC機器がCEモードのみで動作可能であることを示す。
Listenモードでは、NFC I/F22は、ポーリング信号を受信することを監視して、ポーリング信号を受信すると、レスポンス信号を送信する。NFC I/F22は、NFC I/F22に対応するTypeのポーリング信号を受信する場合にのみ、ポーリング信号の送信元のNFC機器にレスポンス信号を送信する。NFC I/F22は、当該NFC機器にレスポンス信号を送信する場合に、当該NFC機器から問い合わせ信号を受信して、動作可能モード信号を当該NFC機器に送信する。
不実行モードでは、NFC I/F22は、ポーリング信号を送信せず、さらに、ポーリング信号を受信しても、レスポンス信号を送信しない。
携帯端末50も、上記の1セットの動作を繰り返し実行する。従って、例えば、MFP10と携帯端末50との間の距離が10cm未満であり、かつ、MFP10のNFC I/F22がPollモードで動作する期間と、携帯端末50がListenモードで動作する期間と、が一致する場合には、NFC I/F22は、ポーリング信号を携帯端末50に送信して、レスポンス信号を携帯端末50から受信するPoll動作を実行する。また、例えば、MFP10と携帯端末50との間の距離が10cm未満であり、NFC I/F22がListenモードで動作する期間と、携帯端末50がPollモードで動作する期間と、が一致すると、NFC I/F22は、ポーリング信号を携帯端末50から受信して、レスポンス信号を携帯端末50に送信するListen動作を実行する。
NFC規格では、Poll動作を実行したNFC機器(以下では「Poll機器」と呼ぶ)は、P2Pモード又はR/Wモードで動作することができるが、CEモードで動作することができない。従って、MFP10がPoll機器である場合には、CPU32は、まず、MFP10がP2Pモード又はR/Wモードで動作すべきことを決定する。また、NFC規格では、Listen動作を実行したNFC機器(以下では「Listen機器」と呼ぶ)は、P2Pモード又はCEモードで動作することができるが、R/Wモードで動作することができない。従って、上述したように、MFP10がPoll機器である場合には、CPU32は、MFP10がP2Pモード又はCEモードで動作すべきことを決定する。
NFC I/F22がPoll動作を実行する場合には、以降の通信のための各処理は、CPU32に引き継がれる。具体的に言うと、携帯端末50がどのモードの動作を実行可能であるのかを示す情報(即ち、受信済みの動作可能モード信号が示す情報)が、NFC I/F22からCPU32に受け渡される。CPU32は、NFC I/F22から受け渡された情報に基づいて、MFP10がどのモードで動作すべきかを決定する。例えば、MFP10が全てのモードで動作可能であり、かつ、受信済みの動作可能モード信号がP2Pモード及びCEモードで動作可能であることを示す場合には、CPU32は、MFP10がP2Pモードで動作すべきことを決定する。この場合、CPU32は、P2Pモードに対応するActivationコマンドを携帯端末50に送信する(図6のS112)。Activationコマンドは、NFC規格で採用されているコマンドであり、MFP10と携帯端末50との間にNFC方式の通信リンクを確立するためのコマンドである。また、例えば、MFP10が全てのモードで動作可能であり、かつ、受信済みの動作可能モード信号がCEモードのみで動作可能であることを示す場合には、CPU32は、MFP10がR/Wモードで動作すべきことを決定する。この場合、CPU32は、R/Wモードに対応するActivationコマンドを携帯端末50に送信する(図7のS160)。
また、NFC I/F22がListen動作を実行する場合も、以降の通信のための各処理は、CPU32に引き継がれる。具体的に言うと、CPU32は、携帯端末50が動作すべきモードに対応するActivationコマンドを、携帯端末50から受信する(図4のS10参照)。CPU32は、P2Pモードに対応するActivationコマンドを受信する場合に、MFP10がP2Pモードで動作すべきことを決定し、R/Wモードに対応するActivationコマンドを受信する場合に、MFP10がCEモードで動作すべきことを決定する。
上述したように、CPU32は、NFC I/F22がPoll動作又はListen動作を実行すれば、MFP10の近傍に携帯端末50が存在することを知ることができ、さらに、MFP10がどのモードで動作すべきかを知ることができ、その後の通信のための各処理(後述の図4〜図7参照)を実行する。
(MFP10が実行する処理;図4〜図7)
続いて、図4〜図7を参照して、MFP10が実行する処理について説明する。なお、CPU32は、メモリ34内のプログラム36,38に従って、図4〜図7の各処理を実行する。以下では、まず、NFC I/F22がListen動作を実行した場合(即ちMFP10がListen機器である場合)に、CPU32が実行する処理(図4及び図5;以下では「MFPのListen処理」と呼ぶ)の内容を説明する。次いで、NFC I/F22がPoll動作を実行した場合(即ちMFP10がPoll機器である場合)に、CPU32が実行する処理(図6及び図7;以下では「MFPのPoll処理」と呼ぶ)の内容を説明する。
なお、アプリケーションプログラム36は、プロトコルスタック38に従ったListen処理の開始を、プロトコルスタックのAPIを用いてCPU32に指令するコードを含む。CPU32がアプリケーションプログラム36に従って動作している状態では、CPU32は、プロトコルスタック38に従ったListen処理の開始の指令を受ける場合に、プロトコルスタック38に従ったListen処理を開始する。アプリケーションプログラム36は、さらに、プロトコルスタック38に従ったPoll処理の開始を、プロトコルスタック38のAPIを用いてCPU32に指令するコードを含む。CPU32がアプリケーションプログラム36に従って動作している状態では、CPU32は、プロトコルスタック38に従ったPoll処理の開始の指令を受ける場合に、プロトコルスタック38に従ったPoll処理を開始する。
(MFPのListen処理;図4及び図5)
上述したように、NFC I/F22がListen動作を実行する場合(即ち携帯端末50がPoll動作を実行する場合)には、携帯端末50は、携帯端末50が動作すべきモードに対応するActivationコマンドをMFP10に送信する。S10において、CPU32は、携帯端末50から、NFC I/F22を介して、Activationコマンドを受信する。
次いで、S12において、CPU32は、MFP10が、P2Pモードで動作すべきか、CEモードで動作すべきかを判断する。CPU32は、P2Pモードに対応するActivationコマンドを受信する場合に、MFP10がP2Pモードで動作すべきと判断して(S12でYES)、S14に進む。一方において、CPU32は、R/Wモードに対応するActivationコマンドを受信する場合に、MFP10がCEモードで動作すべきと判断して(S12でNO)、図5のS62に進む。なお、CPU32がCEモードに対応するActivationコマンドを受信することはあり得ない。上述したように、Poll機器(即ち携帯端末50)は、P2Pモード又はR/Wモードで動作することができるが、CEモードで動作することができないからである。
(MFPのListen処理;P2Pモード)
S14では、CPU32は、Activationコマンドに対するレスポンスコマンド(即ちOKコマンド)を、NFC I/F22を介して、携帯端末50に送信する。これにより、MFP10と携帯端末50との間にNFC方式の通信リンクが確立される。即ち、CPU32は、Activationコマンドを受信して、OKコマンドを送信することによって、通信リンクを適切に確立することができる。
なお、MFPのListen処理では、MFP10から携帯端末50にActivationコマンドを送信することができない。Poll機器(即ち携帯端末50)はActivationコマンドを送信することができるが、Listen機器(即ちMFP10)はActivationコマンドを送信することができないからである。
次いで、S16では、CPU32は、確認コマンド応答処理を開始する。確認コマンドは、Poll機器からListen機器に送信されるコマンドであり、通信リンクを維持するための否かを確認するためのコマンドである。上述したように、現時点では、MFP10がListen機器であり、携帯端末50がPoll機器である。従って、確認コマンド応答処理では、CPU32は、携帯端末50から、NFC I/F22を介して、確認コマンドを受信して、確認コマンドに対するレスポンスコマンド(即ちOKコマンド)を、NFC I/F22を介して、携帯端末50に送信する。
なお、フローチャートには示されていないが、CPU32は、S16で確認コマンド応答処理を開始すると、後述のS40が実行されるまで、確認コマンド応答処理を継続して実行する。なお、CPU32は、プロトコルスタック38に従って、S10〜S16の処理を実行する。
プロトコルスタック38は、確認コマンドの受信イベントの発生を示すデータの出力を、CPU32に指令するコードを含む。CPU32は、S16で最初の確認コマンドを受信すると、確認コマンドの受信イベントの発生を示すデータを出力する。アプリケーションプログラム36は、確認コマンド受信イベントの発生を示すデータが出力される場合に、S18の実行をCPU32に指令するコードを含む。従って、CPU32は、S16で最初の確認コマンドを受信すると、アプリケーションプログラム36に従って、S18を実行する。
S18では、CPU32は、メモリ34内の送信フラグが「1」であるのか否かを判断する。送信フラグは、後述のS28、S36、又は、S37において、「0」又は「1」に設定される。CPU32は、メモリ34内の送信フラグが「1」である場合に、S18でYESと判断して、S30に進む。一方において、CPU32は、メモリ34内の送信フラグが「0」である場合に、S18でNOと判断して、S20に進む。なお、S18でYES又はNOの場合には、CPU32は、SNEP(Simple NDEF Exchange Protocolの略)に従って通信するクライアントとして動作することを示すデータを、プロトコルスタック38のAPIを用いて設定する。NDEFは、NFC Data Exchange Formatの略である。プロトコルスタック38は、APIを用いた設定に従って、クライアントとして動作するためのネゴシエーションを実行することを、CPU32に指令するコードを含む。従って、CPU32は、S18を終えると、プロトコルスタック38に従って、S20又はS30の処理を実行する。
S20では、CPU32は、NFC I/F22を介して、携帯端末50とネゴシエーションを実行する。具体的に言うと、CPU32は、まず、MFP10がSNEPのクライアントとして動作することを決定する。次いで、CPU32は、MFP10がクライアントとして動作し、携帯端末50がSNEPのサーバとして動作するように、SNEPに従った通信を実行する。これにより、携帯端末50は、クライアント(即ちMFP10)からのリクエストに応じて、処理を実行するサーバとして動作する。
S20では、CPU32は、さらに、MFP10がデータ受信を実行すること(即ち携帯端末50がデータ送信を実行すること)を、携帯端末50に通知する。これにより、携帯端末50は、対象データをMFP10に送信すべきことを知ることができ、対象データをMFP10に送信する。
次いで、S22では、CPU32は、プロトコルスタック38に従って、S14で確立された通信リンクを利用して、携帯端末50から、NFC I/F22を介して、対象データを受信する。S22で受信される対象データは、CPU32によって処理されるべきコマンドを含む。例えば、上記の第1、第2、又は、第5の例では、S22で受信される第1の対象データは、印刷実行コマンド又はスキャン実行コマンドを含み、上記の第3又は第4の例では、S22で受信される第1の対象データは、設定コマンドを含む。また、S22で受信される対象データは、携帯端末50に搭載されているOSプログラムに関係するOS情報を含む。OS情報は、OSプログラムの種類を示す種類情報(例えば「T1」)と、当該OSプログラムのバージョンを示すバージョン情報(例えば「V1」)と、を含む。
プロトコルスタック38は、対象データの受信イベントの発生を示すデータの出力を、CPU32に指令するコードを含む。CPU32は、S22で対象データを受信すると、対象データの受信イベントの発生を示すデータを出力する。アプリケーションプログラム36は、対象データの受信イベントの発生を示すデータが、プロトコルスタック38から出力される場合に、S24の実行をCPU32に指令するコードを含む。従って、CPU32は、S22で対象データを受信すると、アプリケーションプログラム36に従って、S24を実行する。
S24では、CPU32は、アプリケーションプログラム36に従って、S22で受信された対象データを処理する。例えば、上記の第1又は第2の例では、CPU32は、S22で受信された第1の対象データに含まれる印刷実行コマンド又はスキャン実行コマンドに従って、無線設定と、当該無線設定を利用することを携帯端末50に指示する指示コマンドと、を含む第2の対象データを生成する。また、例えば、上記の第3の例では、CPU32は、S22で受信された第1の対象にデータに含まれる設定コマンドに従って、第1の対象データに含まれる設定情報をメモリ34に記憶させ、設定情報を受信したことを示す応答コマンドを含む第2の対象データを生成する。また、例えば、上記の第4の例では、CPU32は、S22で受信された第1の対象データに含まれる設定コマンドに従って、第1の対象データに含まれるアドレス情報をメモリ34内のアドレス帳に追加し、アドレス情報を受信したことを示す応答コマンドを含む第2の対象データを生成する。また、例えば、上記の第5の例では、CPU32は、S22で受信された第1の対象データに含まれる印刷実行コマンドに従って、第1の対象データに含まれる印刷データを用いた印刷機能を実行し、印刷データを受信したことを示す応答コマンドを含む第2の対象データを生成する。
次いで、S26では、CPU32は、アプリケーションプログラム36に従って、メモリ34内のコマンドテーブル40を参照して、S22で受信された対象データに含まれるコマンドが、最後のコマンドであるのか否かを判断する。例えば、S22で受信された対象データに含まれるコマンドが、コマンドテーブル40内の「A1コマンド」、「B1コマンド」、又は、「B3コマンド」である場合には、「A2コマンド」等の通信が継続して実行されるべきであるために、CPU32は、最後のコマンドでないと判断して(S26でNO)、S28に進む。
S28では、CPU32は、アプリケーションプログラム36に従って、メモリ34内の送信フラグを「1」に設定し、メモリ34内の継続フラグを「1」に設定する。送信フラグが「1」に設定されるために、次の通信リンクが確立された場合に、CPU32は、対象データを携帯端末50に送信することができる。また、継続フラグが「1」に設定されるために、後述のS38において、CPU32は、MFP10の現在の状況が「Listen継続」であることを知ることができる。S28を終えると、S38に進む。
一方において、CPU32は、最後のコマンドであると判断する場合(S26でYES)に、S37に進む。S37では、CPU32は、アプリケーションプログラム36に従って、メモリ34内の送信フラグを「0」に設定し、メモリ34内の継続フラグを「0」に設定する。送信フラグが「0」に設定されるために、次の通信リンクが確立された場合に、CPU32は、対象データを携帯端末50から受信することができる。また、継続フラグが「0」に設定されるために、後述のS38において、CPU32は、MFP10の現在の状況が「Listen終了」であることを知ることができる。S37を終えると、S38に進む。
S18でYESの場合(即ち送信フラグが「1」である場合)には、S30において、CPU32は、プロトコルスタック38に従って、S20と同様に、MFP10がP2Pモードのクライアントとして動作し、携帯端末50がP2Pモードのサーバとして動作するように、ネゴシエーションを実行する。S30では、CPU32は、さらに、MFP10がデータ送信を実行すること(即ち携帯端末50がデータ受信を実行すること)を、携帯端末50に通知する。これにより、携帯端末50は、MFP10から対象データを受信するまで待機する。
次いで、S32において、CPU32は、アプリケーションプログラム36に従って、プロトコルスタック38のAPIを用いて、S14で確立された通信リンクを利用して、NFC I/F22を介して、携帯端末50に対象データを送信する。例えば、上記の第1〜第5の例では、CPU32は、例えば、前回のMFPのListen処理のS24、又は、前回のMFPのPoll処理(図6)のS124において、第1の対象データに含まれるコマンドを処理して、第2の対象データを生成する。この場合、S32では、CPU32は、生成済みの第2の対象データを携帯端末50に送信する。
次いで、S34では、CPU32は、アプリケーションプログラム36に従って、メモリ34内のコマンドテーブル40を参照して、S32で送信された対象データに含まれるコマンドが、最後のコマンドであるのか否かを判断する。例えば、S32で送信された対象データに含まれるコマンドが、コマンドテーブル40内の「A2コマンド」である場合には、「A3コマンド」等の通信が継続して実行されるべきであるために、CPU32は、最後のコマンドでないと判断して(S34でNO)、S36に進む。S36では、CPU32は、アプリケーションプログラム36に従って、メモリ34内の送信フラグを「0」に設定し、メモリ34内の継続フラグを「1」に設定する。S36を終えると、S38に進む。
一方において、例えば、S32で送信された対象データに含まれるコマンドが、コマンドテーブル40内の「B2コマンド」である場合には、CPU32は、最後のコマンドであると判断して(S34でYES)、S37に進む。S37では、CPU32は、アプリケーションプログラム36に従って、メモリ34内の送信フラグを「0」に設定し、メモリ34内の継続フラグを「0」に設定する。S37を終えると、S38に進む。
S38では、CPU32は、アプリケーションプログラム36に従って、メモリ34内の切断手法テーブル42と、メモリ34内の継続フラグの値と、携帯端末50のOS情報と、を参照して、複数種の切断手法の中から、S14で確立された通信リンクを切断するための切断手法を選択する。S38の時点では、プリンタ10がListen機器であるために、プリンタ10の現在の状況は、「Listen継続」及び「Listen終了」のどちらかである。そして、継続フラグが「1」である場合には、プリンタ10の現在の状況は「Listen継続」であり、継続フラグが「0」である場合には、プリンタ10の現在の状況は「Listen終了」である。また、S38の時点では、プリンタ10のモードは「P2P」である。
例えば、S22を経てS38が実行される場合には、S22で受信された対象データは、携帯端末50のOS情報を含む。従って、S38では、CPU32は、S22で受信された対象データに含まれる携帯端末50のOS情報を利用して、切断手法を選択する。
また、例えば、S32を経てS38が実行される場合には、S22が実行されないが、上述したように、本実施例では、複数個の対象データの一連の通信において、MFP10が、最初の対象データを携帯端末50に送信することはなく、最初の対象データを携帯端末50から受信する。従って、S32が実行される場合には、S14で確立された通信リンクの前回の通信リンクが確立された際に、CPU32は、対象データを携帯端末50から受信している。従って、S38では、CPU32は、当該対象データ(即ち、携帯端末50から前回に受信された対象データ)に含まれる携帯端末50のOS情報を利用して、切断手法を選択する。
例えば、プリンタ10の現在の状況が「Listen継続」である場合には、S38では、CPU32は、携帯端末50のOS情報に応じた切断手法を選択する。具体的に言うと、CPU32は、携帯端末50のOS情報が「T1」及び「V1」を含む場合には、第1のハード切断を選択し、携帯端末50のOS情報が「T1」及び「V2」を含む場合には、第2のハード切断を選択し、携帯端末50のOS情報が「T2」及び「V3」を含む場合には、第2のハード切断を選択する(図2参照)。一方において、例えば、プリンタ10の現在の状況が「Listen終了」である場合には、S38では、CPU32は、携帯端末50のOS情報に関わらず(図2の「any」参照)、第2のソフト切断を選択する。
次いで、S40において、CPU32は、S38で選択された切断手法を利用して、S14で確立された通信リンクを切断する。例えば、S38で選択された切断手法が第2のソフト切断である場合には、S40では、CPU32は、まず、アプリケーションプログラム36に従って、プロトコルスタック38のAPIを用いて、S16で開始された確認コマンド応答処理を終了させる。即ち、CPU32は、携帯端末50から確認コマンドを受信しても、確認コマンドに対するレスポンスコマンド(即ちOKコマンド)を携帯端末50に送信しなくなる。これにより、携帯端末50は、MFP10が通信リンクを維持することを望まないことを知ることができ、通信リンクを切断するためのDeactivationコマンドをMFP10に送信する。従って、CPU32は、プロトコルスタック38に従って、携帯端末50から、NFC I/F22を介して、Deactivationコマンドを受信する。この場合、CPU32は、プロトコルスタック38に従って、Deactivationコマンドに対するレスポンスコマンド(即ちOKコマンド)を、NFC I/F22を介して、携帯端末50に送信する。これにより、S14で確立された通信リンクが切断される。
なお、MFPのListen処理では、MFP10から携帯端末50にDeactivationコマンドを送信することはできない。Poll機器(即ち携帯端末50)はDeactivationコマンドを送信することができるが、Listen機器(即ちMFP10)はDeactivationコマンドを送信することができないからである。
また、例えば、S38で選択された切断手法が第1のハード切断である場合には、S40では、CPU32は、NFC I/F22の電源を200msに亘って切断し、再度接続する。これにより、NFC I/F22の動作は、200msに亘って一時的に停止される。また、例えば、S38で選択された切断手法が第2のハード切断である場合には、S40では、CPU32は、NFC I/F22の電源を300msに亘って切断し、再度接続する。これにより、NFC I/F22の動作は、300msに亘って一時的に停止される。この結果、NFC I/F22は、外部からの信号の受信、外部への信号の送信、Poll動作、Listen動作等を含む全ての動作を一時的に停止する。従って、CPU32は、NFC I/F22を介して、S16で開始された確認コマンド応答処理を実行することができなくなる。
なお、S38で選択された切断手法が第1又は第2のハード切断である場合に、S40では、CPU32は、上記の停止指示をNFC I/F22に入力して、プロトコルスタック38に従ったCPU32の動作を終了させ、その後、上記の再開指示をNFC I/F22に入力して、プロトコルスタック38に従ったCPU32の動作を再起動させてもよい。この場合も、NFC I/F22の動作(即ち、外部からの信号の受信、外部への信号の送信、Poll動作、Listen動作等を含む全ての動作)を一時的に停止させることができる。
第1又は第2のハード切断が実行されると、第2のソフト切断の場合と同様に、携帯端末50は、確認コマンドに対するレスポンスコマンド(即ちOKコマンド)を受信することができない。この場合、携帯端末50は、通信リンクを切断するためのDeactivationコマンドをMFP10に送信するが、MFP10のNFC I/F22の動作が停止されているために、Deactivationコマンドに対するレスポンスコマンド(即ちOKコマンド)を受信することもできない。従って、携帯端末50は、タイムアウトと判断して、通信リンクを維持するための処理(即ち、確認コマンドを送信する処理等)を終了する。これにより、S14で確立された通信リンクが切断される。S40が終了すると、MFPのListen処理が終了する。
なお、図2の切断手法テーブル42及び図4のフローチャートでは示していないが、携帯端末50のOS情報が、「T1」及び「T2」とは異なる種類情報(例えばiOSを示す「T3」)を含む場合には、CPU32は、S38及びS40を実行せずに(即ち通信リンクを切断せずに)、同じ通信リンクを利用して、複数個の対象データの双方向通信を実行してもよい。
(MFPのListen処理;CEモード(図5))
続いて、図5を参照して、図4のS12でNOと判断される場合(即ち、MFP10がCEモードで動作すべきことが判断される場合)の処理の内容を説明する。S62は、図4のS14と同様である。なお、MFP10がCEモードで動作し、携帯端末50がR/Wモードで動作する場合には、P2Pモードの場合と異なり、確認コマンド応答処理(図2のS16参照)が実行されない。単方向通信のためのモードであるために(即ち、1回の対象データの通信のみが実行されるモードであるために)、通信リンクを維持するのか否かを確認する必要がないからである。
なお、S62は、プロトコルスタック38に従って実行される。また、S64,S68,S70,S72,S76,S78,S82,S86は、アプリケーションプログラム36に従って実行される。また、S66,S74,S80,S84,S88は、アプリケーションプログラム36に従って、プロトコルスタック38のAPIを用いて実行される。
S64〜S72は、図2のS18,S22〜S28と同様である。S74〜S78は、図4のS32〜S36と同様である。S72又はS78を経た場合には、S80に進む。また、S70でYES又はS76でYESの場合には、S86に進む。S86は、図4のS37と同様である。S86を終えると、S88に進む。
S80又はS88では、CPU32は、まず、切断手法テーブル42を参照して、S62で確立された通信リンクを切断するための切断手法を選択する。S80又はS88の時点では、MFP10の現在の状況は「Listen継続」及び「Listen終了」のどちらかであり、MFP10のモードは「CE」である。従って、CPU32は、携帯端末50のOS情報に関わらず、第2のソフト切断を選択する(図2参照)。S80又はS88では、CPU32は、選択済みの第2のソフト切断を利用して、S62で確立された通信リンクを切断する。第2のソフト切断の内容は、上述したとおりである。S80が終了する場合には、S82及びS84が実行された後に、MFPのListen処理が終了する。一方において、S88が終了する場合には、S82及びS84が実行されずに、MFPのListen処理が終了する。
S82では、CPU32は、メモリ34内の動作制御テーブル44と、携帯端末50のOS情報と、を参照して、複数種の動作制御手法の中から、1個の動作制御手法を選択する。S82では、CPU32は、携帯端末50のOS情報に応じた動作制御手法を選択する。例えば、S66を経てS82が実行される場合には、S82では、CPU32は、S66で受信された対象データに含まれる携帯端末50のOS情報を利用して、動作制御手法を選択する。また、例えば、S74を経てS82が実行される場合には、S82では、CPU32は、携帯端末50から前回に受信された対象データに含まれる携帯端末50のOS情報を利用して、動作制御手法を選択する。具体的に言うと、CPU32は、携帯端末50のOS情報が「T1」及び「V1」を含む場合には、第1のハード制御を選択し、携帯端末50のOS情報が「T1」及び「V2」を含む場合には、第2のハード制御を選択し、携帯端末50のOS情報が「T2」及び「V3」を含む場合には、第2のハード制御を選択する(図3参照)。
S84では、CPU32は、S82で選択された動作制御手法を利用して、動作制御処理を実行する。例えば、S82で選択された動作制御手法が第1のハード制御である場合には、S84では、CPU32は、NFC I/F22の動作を200msに亘って一時的に停止させる。また、例えば、S82で選択された動作制御手法が第2のハード制御である場合には、S84では、CPU32は、NFC I/F22の動作を300msに亘って一時的に停止させる。
S80で通信リンクが切断されると、携帯端末50は、Pollモード及びListenモードで再び順次動作する。ただし、S84において、MFP10のNFC I/F22の動作が一時的に停止されるために、携帯端末50は、ポーリング信号を送信しても、レスポンス信号を受信しない。また、携帯端末50は、MFP10からポーリング信号を受信しない。このために、携帯端末50は、MFP10と携帯端末50の間の距離が大きくなったこと、即ち、通信相手が離反したこと、を検知することができる。
携帯端末50に通信相手の離反を検知させるのは(即ちS84の動作制御処理を実行するのは)、以下の理由である。CEモード及びR/Wモードに対応する通信リンクでは、1回の対象データの通信のみが実行されることが前提となっている。従って、一対のNFC機器のそれぞれは、CEモード及びR/Wモードに従って、対象データの通信を実行すると、通常、通信リンクを切断する。その後、仮に、一対のNFC機器が近接している状態が維持され続けると、一対のNFC機器は、Poll動作及びListen動作を再び実行して通信リンクを再び確立し、同じ対象データの通信を実行し得る。即ち、一対のNFC機器が近接している状態が維持される場合には、同じ対象データが何回も通信されるという事象が発生し得る。
従って、NFC機器は、通常、CEモード及びR/Wモードに対応する通信リンクを切断した後に、通信相手の離反を検知しない場合には、Poll動作及びListen動作を再び実行しても、通信リンクを再び確立しないようにプログラムされている。そして、NFC機器は、例えば、ポーリング信号を何回か送信しても、レスポンス信号を通信相手から受信しない場合や、所定期間に亘って通信相手からポーリング信号を受信しない場合に、通信相手の離反を検知する。NFC機器は、このようにして通信相手の離反を検知すると、同じ通信相手と通信リンクを再び確立することができる。
本実施例では、第1の対象データの通信が実行された後に、第2の対象データの通信が実行される。従って、第1の対象データの通信のための通信リンクが切断された後に、MFP10と携帯端末50とが近接している状態が維持されていても、第2の対象データの通信のための新たな通信リンクを再び確立させる仕組みが必要である。この仕組みが、S84の動作制御処理である。即ち、MFP10がS84の動作制御処理を実行すれば、MFP10と携帯端末50とが近接している状態が維持されていても、携帯端末50は、MFP10の離反を検知することができる。その後、MFP10及び携帯端末50がPoll動作及びListen動作を実行すれば、MFP10及び携帯端末50の間に通信リンクを再び確立させることができる。
(MFPのPoll処理;図6及び図7)
続いて、図6及び図7を参照して、MFPのPoll処理の内容を説明する。上述したように、NFC I/F22がPoll動作を実行する場合には、MFP10は、受信済みの動作可能モード信号に従って、P2Pモード及びR/Wモードのうちのどちらかのモードで動作する。S110では、CPU32は、受信済みの動作可能モード信号に基づいて、MFP10が、P2Pモードで動作すべきか、R/Wモードで動作すべきか、を判断する。CPU32は、MFP10がP2Pモードで動作すべきと判断する場合(S110でYESの場合)に、S112に進み、MFP10がR/Wモードで動作すべきと判断する場合(S110でNOの場合)に、図7のS160に進む。
(MFPのPoll処理;P2Pモード(図6))
S110,S112,S114,S116は、プロトコルスタック38に従って実行される。また、S118,S124,S126,S128,S134,S136,S137,S138は、アプリケーションプログラム36に従って実行される。また、S120,S122,S130,S132,S140は、アプリケーションプログラム36に従って、プロトコルスタック38のAPIを用いて実行される。
S112では、CPU32は、NFC I/F22を介して、P2Pモードに対応するActivationコマンドを携帯端末50に送信する。次いで、S114では、CPU32は、携帯端末50から、NFC I/F22を介して、Activationコマンドに対するレスポンスコマンド(即ちOKコマンド)を受信する。これにより、MFP10と携帯端末50との間にNFC方式の通信リンクが確立される。
次いで、S116では、CPU32は、確認コマンド送信処理を開始する。確認コマンド送信処理では、CPU32は、確認コマンドを、NFC I/F22を介して、携帯端末50に送信して、携帯端末50から、NFC I/F22を介して、確認コマンドに対するレスポンスコマンド(即ちOKコマンド)を受信する。なお、CPU32は、S116で確認コマンド送信処理を開始すると、後述のS140が実行されるまで、確認コマンド送信処理を継続して実行する。
S118〜S128は、図4のS18〜S28と同様である。S130〜S137は、図4のS30〜S37と同様である。
S138では、CPU32は、メモリ34内の切断手法テーブル42と、メモリ34内の継続フラグの値と、携帯端末50のOS情報と、を参照して、複数種の切断手法の中から、S114で確立された通信リンクを切断するための切断手法を選択する。S138の時点では、プリンタ10がPoll機器であるために、プリンタ10の現在の状況は、「Poll継続」及び「Poll終了」のどちらかである。そして、継続フラグが「1」である場合には、プリンタ10の現在の状況は「Poll継続」であり、継続フラグが「0」である場合には、プリンタ10の現在の状況は「Poll終了」である。また、S138の時点では、プリンタ10のモードは「P2P」である。
例えば、S122を経てS138が実行される場合には、S138では、CPU32は、S122で受信された対象データに含まれる携帯端末50のOS情報を利用して、切断手法を選択する。また、例えば、S132を経てS138が実行される場合には、S138では、CPU32は、携帯端末50から前回に受信された対象データに含まれる携帯端末50のOS情報を利用して、切断手法を選択する。
例えば、プリンタ10の現在の状況が「Poll継続」である場合には、S138では、CPU32は、携帯端末50のOS情報に応じた切断手法を選択する。具体的に言うと、CPU32は、携帯端末50のOS情報が「T1」及び「V1」を含む場合には、第1のハード切断を選択し、携帯端末50のOS情報が「T1」及び「V2」を含む場合には、第1のソフト切断を選択し、携帯端末50のOS情報が「T2」及び「V3」を含む場合には、ソフト+ハード切断を選択する(図2参照)。一方において、例えば、プリンタ10の現在の状況が「Poll終了」である場合には、S138では、CPU32は、携帯端末50のOS情報に関わらず(図2の「any」参照)、第1のソフト切断を選択する。
次いで、S140において、CPU32は、S138で選択された切断手法を利用して、S114で確立された通信リンクを切断する。例えば、S138で選択された切断手法が第1のソフト切断である場合には、S140では、CPU32は、NFC I/F22を介して、Deactivationコマンドを携帯端末50に送信する。次いで、CPU32は、携帯端末50から、NFC I/F22を介して、Deactivationコマンドに対するレスポンスコマンド(即ちOKコマンド)を受信する。これにより、S114で確立された通信リンクが切断される。
また、例えば、S138で選択された切断手法が第1のハード切断である場合には、S140では、CPU32は、NFC I/F22の動作を200msに亘って一時的に停止させる。従って、CPU32は、NFC I/F22を介して、S116で開始された確認コマンド送信処理を実行することができなくなる。この場合、携帯端末50は、タイムアウトと判断し、通信リンクに関する処理(即ち、確認コマンドの受信の監視等)を終了し、この結果、通信リンクが切断される。
また、例えば、S138で選択された切断手法がソフト+ハード切断である場合には、S140では、CPU32は、まず、NFC I/F22を介して、Deactivationコマンドを携帯端末50に送信する。次いで、CPU32は、携帯端末50から、NFC I/F22を介して、Deactivationコマンドに対するレスポンスコマンド(即ちOKコマンド)を受信する。その後、CPU32は、NFC I/F22の動作を10msに亘って一時的に停止させる。これにより、S114で確立された通信リンクが切断される。S140が終了すると、MFPのPoll処理が終了する。
なお、図2の切断手法テーブル42及び図6のフローチャートでは示していないが、携帯端末50のOS情報が、「T1」及び「T2」とは異なる種類情報(例えばiOSを示す「T3」)を含む場合には、CPU32は、S138及びS140を実行せずに(即ち通信リンクを切断せずに)、同じ通信リンクを利用して、複数個の対象データの双方向通信を実行してもよい。
(MFPのPoll処理;R/Wモード(図7))
続いて、図7を参照して、図6のS110でNOと判断される場合(即ちMFP10がR/Wモードで動作すべきと判断される場合)の処理の内容を説明する。なお、S160,S162は、プロトコルスタック38に従って実行される。また、S164,S168,S170,S172,S176,S178,S182,S186は、アプリケーションプログラム36に従って実行される。また、S165,S166,S173,S174,S180,S184,S188は、アプリケーションプログラム36に従って、プロトコルスタック38のAPIを用いて実行される。
S160〜S164は、図6のS112,S114,S118と同様である。ただし、S160では、CPU32は、R/Wモードに対応するActivationコマンドを送信する。
S164でNOの場合(即ち送信フラグが「0」である場合)には、S165において、CPU32は、MFP10がReaderモードに従って動作すべきことを決定する。これにより、CPU32は、携帯端末50の擬似的なカードから対象データを読み出すこと、即ち、携帯端末50から対象データを受信することができる。この後に実行されるS166〜S172は、図5のS66〜S72と同様である。
一方において、S164でYESの場合(即ち送信フラグが「1」である場合)には、S173において、CPU32は、MFP10がWriterモードに従って動作すべきことを決定する。これにより、CPU32は、携帯端末50の擬似的なカードに対象データを書き込むこと、即ち、携帯端末50に対象データを送信することができる。この後に実行されるS174〜S178は、図5のS74〜S78と同様である。
S172又はS178を経た場合には、S180に進む。また、S170でYES又はS176でYESの場合には、S186に進む。S186は、図5のS86と同様である。S186を終えると、S188に進む。
S180又はS188では、CPU32は、まず、切断手法テーブル42を参照して、S162で確立された通信リンクを切断するための切断手法を選択する。S180又はS188の時点では、MFP10の現在の状況は「Poll継続」及び「Poll終了」のどちらかであり、MFP10のモードは「R/W」である。CPU32は、携帯端末50のOS情報に関わらず、第1のソフト切断を選択する(図2参照)。S180又はS188では、CPU32は、選択済みの第1のソフト切断を利用して、S162で確立された通信リンクを切断する。第1のソフト切断の内容は、上述したとおりである。S180が終了する場合には、S182及びS184が実行された後に、MFPのPoll処理が終了する。一方において、S188が終了する場合には、S182及びS184が実行されずに、MFPのPoll処理が終了する。
S182では、CPU32は、メモリ34内の動作制御テーブル44と、携帯端末50のOS情報と、を参照して、複数種の動作制御手法の中から、1個の動作制御手法を選択する。S182では、CPU32は、携帯端末50のOS情報に応じた動作制御手法を選択する。例えば、S166を経てS182が実行される場合には、S182では、CPU32は、S166で受信された対象データに含まれる携帯端末50のOS情報を利用して、動作制御手法を選択する。また、例えば、S174を経てS182が実行される場合には、S182では、CPU32は、携帯端末50から前回に受信された対象データに含まれる携帯端末50のOS情報を利用して、動作制御手法を選択する。具体的に言うと、CPU32は、携帯端末50のOS情報が「T1」及び「V1」を含む場合には、第1のハード制御を選択し、携帯端末50のOS情報が「T2」及び「V3」を含む場合には、第2のハード制御を選択する。なお、CPU32は、携帯端末50のOS情報が「T1」及び「V2」を含む場合には、いずれの動作制御手法も選択せずに(図3参照)、S184の処理をスキップして、MFPのPoll処理を終了する。
S184では、CPU32は、S182で選択された動作制御手法を利用して、動作制御処理を実行する。第1及び第2のハード制御については、上述のとおりである。S184の動作制御処理を実行する理由は、図5のS84の動作制御処理を実行する理由と同様である。
(具体的なケース)
続いて、本実施例によって実現される具体的なケースを説明する。以下の各ケースは、MFP10が図4〜図7の各処理を実行することによって、実現される。なお、以下の各ケースでは、図1のコマンドテーブル40内のパターンBに示されるように、携帯端末50からMFP10に第1の対象データが送信され、次いで、MFP10から携帯端末50に第2の対象データが送信されて、複数個の対象データの一連の通信が終了する状況を想定している。
(ケースA;図8)
ケースAでは、MFP10がPoll動作を実行し(即ち携帯端末50がListen動作を実行し)、さらに、携帯端末50がP2Pモードに従って動作可能である。携帯端末50は、種類情報「T1」及びバージョン情報「V1」を有するOSプログラムを備える。
MFP10は、Activationコマンドを携帯端末50に送信して(図6のS112)、携帯端末50からOKコマンドを受信する(S114)。これにより、MFP10と携帯端末50との間に通信リンクL1が確立される。この場合、MFP10は、確認コマンド送信処理を開始する(S116)。即ち、MFP10は、確認コマンドを携帯端末50に送信して、OKコマンドを携帯端末50から受信する。
通信リンクL1が確立された時点では、送信フラグが「0」である。この場合、MFP10は、S118でNOと判断し、次いで、ネゴシエーションを実行して、MFP10がデータ受信を実行することを、携帯端末50に通知する(S120)。MFP10は、携帯端末50から第1の対象データを受信する(S122)。第1の対象データは、MFP10によって処理されるべきコマンドと、「T1」及び「V1」を示すOS情報と、を含む。MFP10は、第1の対象データに含まれるコマンドを処理して、第2の対象データを生成する(S124)。この場合、MFP10は、送信フラグを「1」に設定し、継続フラグを「1」に設定する(S128)。
MFP10の現在の状況は「Poll継続」であり、MFP10のモードは「P2P」であり、携帯端末50のOS情報は「T1」及び「V1」を含む。従って、MFP10は、第1のハード切断を選択する(S138、図2参照)。次いで、MFP10は、選択済みの第1のハード切断に従って、NFC I/F22の動作を200msに亘って停止させる(S140)。このために、MFP10は、確認コマンドを送信することができない。これにより、携帯端末50は、タイムアウトと判断し、この結果、通信リンクL1が切断される。
その後、MFP10がPoll動作を再び実行する(即ち携帯端末50がListen動作を再び実行する)。MFP10は、Activationコマンドを携帯端末50に送信して(S112)、携帯端末50からOKコマンドを受信する(S114)。この結果、MFP10と携帯端末50との間に通信リンクL2が確立される。
第1の対象データが通信された際に、送信フラグが「1」に設定されている。従って、MFP10は、S118でYESと判断し、次いで、ネゴシエーションを実行して、MFP10がデータ送信を実行することを、携帯端末50に通知する(S130)。MFP10は、第2の対象データを携帯端末50に送信する(S132)。この場合、MFP10は、送信フラグを「0」に設定し、継続フラグを「0」に設定する(S137)。
MFP10の現在の状況は「Poll終了」であり、MFP10のモードは「P2P」である。従って、MFP10は、第1のソフト切断を選択する(S138、図2参照)。次いで、MFP10は、選択済みの第1のソフト切断に従って、Deactivationコマンドを携帯端末50に送信して、携帯端末50からOKコマンドを受信する(S140)。この結果、通信リンクL2が切断される。
上述したように、P2Pモードは、双方向通信のためのモードである。従って、同じ通信リンクL1を利用して、第1及び第2の対象データの両方を通信する構成が考えられる。しかしながら、携帯端末50が、P2Pモードに従って、双方向通信を適切に実行することができない可能性がある。例えば、携帯端末50のOSプログラムが、種類情報「T1」及びバージョン情報「V1」を有する場合には、当該OSプログラムは、通信リンクL1を利用して、第1の対象データを送信した後に、同じ通信リンクL1を利用して、第2の対象データを受信する動作を許容しない。
このような実情に鑑みて、ケースAでは、MFP10は、通信リンクL1を利用して、携帯端末50から第1の対象データを受信すると、通信リンクL1を一旦切断する。次いで、MFP10は、通信リンクL2を再確立し、通信リンクL2を利用して、第2の対象データを携帯端末50に送信する。従って、携帯端末50がP2Pモードの双方向通信を許容しない場合でも、MFP10は、P2Pモードに従って、第1の対象データ及び第2の対象データの両方を、携帯端末50と適切に通信することができる。
一般的なPoll機器は、通常、NFCフォーラムによって定められている第1のソフト切断を利用して、通信リンクを切断する。しかしながら、上述したように、ケースAでは、MFP10は、第1のソフト切断ではなく、第1のハード切断を利用して、通信リンクL1を切断する。その理由は、以下のとおりである。即ち、ケースAでは、携帯端末50のOSプログラムは、種類情報「T1」及びバージョン情報「V1」を有する。このようなOS情報「T1−V1」を有する携帯端末50では、仮に、第1のソフト切断によって通信リンクL1が切断されると、携帯端末50のP2Pのプロトコルススタックのレベルで致命的なエラーが発生し得る。当該エラーが発生すると、携帯端末50は、通信リンクL2を利用して、第2の対象データを受信しても、第2の対象データが第1の対象データのレスポンスのデータであることを認識することができない。この結果、携帯端末50は、第2の対象データに含まれるコマンド(例えば、上記の第1の例では「指示コマンド」)に従って、適切に処理を実行することができない。
このような実情に鑑みて、本実施例では、図2に示されるように、「Poll継続」と「P2P」と「T1−V1」とに対応する切断手法として、「第1のハード切断」が採用されている。なお、第1のハード切断の待機期間(即ち200ms)は、携帯端末50がタイムアウトを検出可能な期間に設定されている。第1のハード切断によって通信リンクL1が切断されても、携帯端末50でエラーが発生しない。このために、携帯端末50は、通信リンクL2を利用して、第2の対象データを受信すると、第2の対象データに含まれるコマンドに従って、適切に処理を実行することができる。
一方において、図2に示されるように、「Poll終了」と「P2P」とに対応する切断手法として、NFCフォーラムによって定められている一般的な「第1のソフト切断」が採用されている。上述したように、第1のソフト切断が利用されると、携帯端末50でエラーが発生し得るが、MFP10の状況が「Poll終了」である場合には、複数個の対象データの一連の通信が終了しているので、携帯端末50でエラーが発生しても問題がない。しかも、第1のソフト切断は、第1のハード切断と比べると、通信リンクを迅速に切断可能な切断手法である。第1のソフト切断では、第1のハード切断のように200msの待機期間が必要なく、さらに、第1のハード切断のようにハードウェア(即ちNFC I/F22)の切断から復帰までの復帰期間が必要ないからである。このために、MFP10は、通信リンクL2を迅速に切断して、他の処理(例えばPoll動作やListen動作)を迅速に実行することができる。
(ケースB;図9)
ケースBでは、MFP10がPoll動作を実行し(即ち携帯端末50がListen動作を実行し)、さらに、携帯端末50がP2Pモードに従って動作可能である。携帯端末50は、種類情報「T1」及びバージョン情報「V2」を有するOSプログラムを備える。「T1」及び「V2」を有するOSプログラムを備える携帯端末50は、ケースAと同様に、P2Pモードに従って双方向通信を適切に実行することができない。従って、ケースBでも、MFP10は、通信リンクL1を切断して、通信リンクL2を再確立する。
ケースBでは、MFP10は、第1のソフト切断を利用して、通信リンクL1を切断する。この点のみが、ケースAとは異なる。ケースBでは、携帯端末50のOSプログラムは、種類情報「T1」及びバージョン情報「V2」を有する。このようなOS情報「T1−V2」を有する携帯端末50では、第1のソフト切断によって通信リンクL1が切断されても、エラーが発生しない。
このような実情に鑑みて、本実施例では、図2に示されるように、「Poll継続」と「P2P」と「T1−V2」とに対応する切断手法として、通信リンクを迅速に切断可能である「第1のソフト切断」が採用されている。このために、MFP10は、通信リンクL1を迅速に切断して、通信リンクL2を迅速に確立することができる。
(ケースC;図10)
ケースCでは、MFP10がPoll動作を実行し(即ち携帯端末50がListen動作を実行し)、さらに、携帯端末50がP2Pモードに従って動作可能である。携帯端末50は、種類情報「T2」及びバージョン情報「V3」を有するOSプログラムを備える。「T2」及び「V3」を有するOSプログラムを備える携帯端末50は、ケースAと同様に、P2Pモードに従って双方向通信を適切に実行することができない。従って、ケースCでも、MFP10は、通信リンクL1を切断して、通信リンクL2を再確立する。
ケースCでは、MFP10は、ソフト+ハード切断を利用して、通信リンクL1を切断する。この点のみが、ケースAとは異なる。ケースCでは、携帯端末50のOSプログラムは、種類情報「T2」及びバージョン情報「V3」を有する。このようなOS情報「T2−V3」を有する携帯端末50は、仮に、第1のソフト切断のみが実行されても、通信リンクL1の切断を適切に認識することができない。携帯端末50が通信リンクL1の切断を認識することができないと、MFP10と携帯端末50との間に、通信リンクL2を適切に確立することができない。
このような実情に鑑みて、本実施例では、図2に示されるように、「Poll継続」と「P2P」と「T2−V3」とに対応する切断手法として、「ソフト+ハード切断」が採用されている。ソフト+ハード切断は、第1のソフト切断と同様に、Deactivationコマンド及びOKコマンドの通信が実行された後に、NFC I/F22の動作を10msに亘って停止させる手法である。NFC I/F22の動作を停止させると、当該停止期間において、携帯端末50は、NFC方式の通信(例えば、ポーリング信号、レスポンス信号の通信)をMFP10と実行することができない。この結果、携帯端末50は、通信リンクL1の切断を適切に認識することができる。このために、MFP10と携帯端末50との間に、通信リンクL2を適切に確立することができる。
(ケースD;図11)
ケースDでは、MFP10がListen動作を実行し(即ち携帯端末50がPoll動作を実行し)、さらに、携帯端末50がP2Pモードに従って動作可能である。携帯端末50は、種類情報「T1」及びバージョン情報「V1」を有するOSプログラム、又は、種類情報「T1」及びバージョン情報「V2」を有するOSプログラムを備える。
MFP10は、携帯端末50からActivationコマンドを受信して(図4のS10)、OKコマンドを携帯端末50に送信する(S14)。これにより、MFP10と携帯端末50との間に通信リンクL1が確立される。この場合、MFP10は、確認コマンド応答処理を開始する(S16)。即ち、MFP10は、携帯端末50から確認コマンドを受信して、OKコマンドを携帯端末50に送信する。
通信リンクL1が確立された時点では、送信フラグが「0」である。従って、MFP10は、S18でNOと判断し、次いで、ネゴシエーションを実行して、MFP10がデータ受信を実行することを、携帯端末50に通知する(S20)。MFP10は、携帯端末50から第1の対象データを受信する(S22)。第1の対象データは、MFP10によって処理されるべきコマンドと、「T1」及び「V1」を示すOS情報(又は「T1」及び「V2」を示すOS情報)と、を含む。MFP10は、第1の対象データに含まれるコマンドを処理して、第2の対象データを生成する(S24)。この場合、MFP10は、送信フラグを「1」に設定し、継続フラグを「1」に設定する(S28)。
MFP10の現在の状況は「Listen継続」であり、MFP10のモードは「P2P」である。例えば、携帯端末50のOS情報が「T1」及び「V1」を含む場合には、MFP10は、第1のハード切断を選択する(S38、図2参照)。また、例えば、携帯端末50のOS情報が「T1」及び「V2」を含む場合には、MFP10は、第2のハード切断を選択する(S38、図2参照)。次いで、MFP10は、選択済みの第1のハード切断又は第2のハード切断に従って、NFC I/F22の動作を200ms又は300msに亘って停止させる(S40)。このために、MFP10は、携帯端末50から確認コマンドを受信しても、OKコマンドを送信しない。また、MFP10は、携帯端末50からDeactivationコマンドを受信しても、OKコマンドを送信しない。これにより、携帯端末50は、タイムアウトと判断し、この結果、通信リンクL1が切断される。
その後、MFP10がListen動作を再び実行する(即ち携帯端末50がPoll動作を再び実行する)。MFP10は、携帯端末50からActivationコマンドを受信して(S10)、OKコマンドを携帯端末50に送信する(S14)。この結果、MFP10と携帯端末50との間に通信リンクL2が確立される。
第1の対象データが通信された際に、送信フラグが「1」に設定されている。従って、MFP10は、S18でYESと判断し、次いで、ネゴシエーションを実行して、MFP10がデータ送信を実行することを、携帯端末50に通知する(S30)。MFP10は、第2の対象データを携帯端末50に送信する(S32)。この場合、MFP10は、送信フラグを「0」に設定し、継続フラグを「0」に設定する(S37)。
MFP10の現在の状況は「Listen終了」であり、MFP10のモードは「P2P」である。従って、MFP10は、第2のソフト切断を選択する(S38、図2参照)。次いで、MFP10は、選択済みの第2のソフト切断に従って、Deactivationコマンドを携帯端末50から受信して、OKコマンドを携帯端末50に送信する(S40)。この結果、通信リンクL2が切断される。
一般的なListen機器は、通常、NFCフォーラムによって定められている第2のソフト切断を利用して、通信リンクを切断する。しかしながら、上述したように、ケースDでは、MFP10は、第2のソフト切断ではなく、第1のハード切断又は第2のハード切断を利用して、通信リンクL2を切断する。その理由は、以下のとおりである。即ち、ケースDでは、携帯端末50のOSプログラムは、種類情報「T1」及びバージョン情報「V1」、又は、種類情報「T1」及びバージョン情報「V2」を有する。このようなOS情報「T1−V1」又は「T1−V2」を有する携帯端末50では、仮に、第2のソフト切断によって通信リンクL1が切断されると、エラーが発生し得る。ケースAで説明したように、当該エラーが発生すると、携帯端末50は、第2の対象データに含まれるコマンドに従って、適切に処理を実行することができない。
このような実情に鑑みて、本実施例では、図2に示されるように、「Listen継続」と「P2P」と「T1−V1」とに対応する切断手法として、「第1のハード切断」が採用されている。また、図2に示されるように、「Listen継続」と「P2P」と「T1−V2」とに対応する切断手法として、「第2のハード切断」が採用されている。第1及び第2のハード切断の待機期間(即ち200ms及び300ms)は、携帯端末50がタイムアウトを検出可能な期間に設定されている。OS情報「T1−V2」を有する携帯端末50がタイムアウトを検出可能な期間は、OS情報「T1−V1」を有する携帯端末50がタイムアウトを検出可能な期間よりも長い。第1のハード切断又は第2のハード切断によって通信リンクL1が切断されても、携帯端末50でエラーが発生しない。このために、携帯端末50は、通信リンクL2を利用して、第2の対象データを受信すると、第2の対象データに含まれるコマンドに従って、適切に処理を実行することができる。
一方において、図2に示されるように、「Listen終了」と「P2P」とに対応する切断手法として、通信リンクを迅速に切断可能な「第2のソフト切断」が採用されている。このために、MFP10は、通信リンクL2を迅速に切断して、他の処理(例えばPoll動作やListen動作)を迅速に実行することができる。
なお、図8〜図11のシーケンス図には関係しないが、OS情報「T2−V3」を有する携帯端末50は、仮に、第2のソフト切断が実行されると、通信リンクL1の切断を適切に認識することができない。従って、図2に示されるように、「Listen継続」と「P2P」と「T2−V3」とに対応する切断手法として、「第2のハード切断」が採用されている。OS情報「T2−V3」を有する携帯端末50は、第2のハード切断が実行されると、通信リンクL1の切断を適切に認識することができる。このために、MFP10と携帯端末50との間に、通信リンクL2を適切に確立することができる。
(ケースE;図12)
ケースEでは、MFP10がListen動作を実行し(即ち携帯端末50がPoll動作を実行し)、さらに、携帯端末50がP2Pモードに従って動作不可能である(即ち、R/Wモード及びCEモードのみに従って動作可能である)。従って、MFP10がCEモードに従って動作し、携帯端末50がR/Wモードに従って動作する。携帯端末50は、種類情報「T1」及びバージョン情報「V1」を有するOSプログラム、又は、種類情報「T1」及びバージョン情報「V2」を有するOSプログラムを備える。
MFP10は、携帯端末50からActivationコマンドを受信して(図4のS10)、OKコマンドを携帯端末50に送信する(図5のS62)。これにより、MFP10と携帯端末50との間に通信リンクL1が確立される。
通信リンクL1が確立された時点では、送信フラグが「0」である。この場合、MFP10は、S64でNOと判断し、携帯端末50から第1の対象データを受信する(S66)。第1の対象データは、MFP10によって処理されるべきコマンドと、「T1」及び「V1」を示すOS情報(又は「T1」及び「V2」を示すOS情報)と、を含む。MFP10は、第1の対象データに含まれるコマンドを処理して、第2の対象データを生成する(S68)。この場合、MFP10は、送信フラグを「1」に設定し、継続フラグを「1」に設定する(S72)。
MFP10の現在の状況は「Listen継続」であり、MFP10のモードは「CE」である。従って、MFP10は、携帯端末50のOS情報に関わらず、第2のソフト切断を選択する(S80、図2参照)。次いで、MFP10は、選択済みの第2のソフト切断に従って、Deactivationコマンドを携帯端末50から受信して、OKコマンドを携帯端末50に送信する(S80)。この結果、通信リンクL1が切断される。
次いで、MFP10は、動作制御手法を選択する(S82)。例えば、携帯端末50のOS情報が「T1」及び「V1」を含む場合には、MFP10は、第1のハード制御を選択する(S82、図3参照)。また、例えば、携帯端末50のOS情報が「T1」及び「V2」を含む場合には、MFP10は、第2のハード制御を選択する(S82、図3参照)。次いで、MFP10は、選択済みの第1のハード制御又は第2のハード制御に従って、NFC I/F22の動作を200ms又は300msに亘って停止させる(S84)。即ち、MFP10は、携帯端末50からポーリング信号を受信しても、レスポンス信号を送信しない(即ち、NFC I/F22がListen動作を一時的に実行しない)。また、MFP10は、ポーリング信号を携帯端末50に送信しない(即ち、NFC I/F22がPoll動作を一時的に実行しない)。これにより、携帯端末50は、MFP10の離反を検知する。この結果、MFP10及び携帯端末50が近接している状態が維持されても、後述の通信リンクL2を適切に確立することができる。
その後、MFP10がListen動作を再び実行する(即ち携帯端末50がPoll動作を再び実行する)。MFP10は、携帯端末50からActivationコマンドを受信して(図4のS10)、OKコマンドを携帯端末50に送信する(図5のS62)。この結果、MFP10と携帯端末50との間に通信リンクL2が確立される。
第1の対象データが通信された際に、送信フラグが「1」に設定されている。従って、MFP10は、図5のS64でYESと判断し、第2の対象データを携帯端末50に送信する(S74)。この場合、MFP10は、送信フラグを「0」に設定し、継続フラグを「0」に設定する(S86)。
MFP10の現在の状況は「Listen終了」であり、MFP10のモードは「CE」である。従って、MFP10は、携帯端末50のOS情報に関わらず、第2のソフト切断を選択する(S88、図2参照)。次いで、MFP10は、選択済みの第2のソフト切断に従って、Deactivationコマンドを携帯端末50から受信して、OKコマンドを携帯端末50に送信する(S88)。この結果、通信リンクL2が切断される。
上述したように、R/Wモード及びCEモードは、単方向通信のためのモードである。従って、同じ通信リンクL1を利用して、第1及び第2の対象データの両方を通信することができない。本実施例では、ケースEに示されるように、MFP10は、通信リンクL1を利用して、携帯端末50から第1の対象データを受信すると、通信リンクL1を切断する。次いで、MFP10は、通信リンクL2を再確立し、通信リンクL2を利用して、第2の対象データを携帯端末50に送信する。従って、MFP10及び携帯端末50がR/Wモード及びCEモードに従って動作する場合でも、MFP10は、第1の対象データと第2の対象データの両方を、携帯端末50と適切に通信することができる。即ち、MFP10は、擬似的な双方向通信を実現することができる。
本実施例では、図2に示されるように、「CE」に対応する切断手法として、携帯端末50のOS情報に関わらず、通信リンクを迅速に切断可能な「第2のソフト切断」が採用されている。このために、MFP10は、通信リンクを迅速に切断して、他の処理を迅速に実行することができる。
また、図3に示されるように、「Listen継続」と「CE」と「T1−V1」とに対応する動作制御手法として、「第1のハード制御」が採用されている。また、図3に示されるように、「Listen継続」と「CE」と「T1−V2」とに対応する動作制御手法として、「第2のハード制御」が採用されている。第1及び第2のハード制御の待機期間(即ち200ms及び300ms)は、携帯端末50が通信相手の離反を検知可能な期間に設定されている。OS情報「T1−V2」を有する携帯端末50が通信相手の離反を検知可能な期間は、OS情報「T1−V1」を有する携帯端末50が通信相手の離反を検知可能な期間よりも長い。このように、携帯端末50のOS情報に応じた第1又は第2のハード制御が実行されるために、MFP10は、携帯端末50に通信相手の離反を適切に検知させることができる。
なお、図12のシーケンス図には関係しないが、図3に示されるように、「Listen継続」と「CE」と「T2−V3」とに対応する動作制御手法として、「第2のハード制御」が採用されている。OS情報「T2−V3」を有する携帯端末50は、第2のハード制御が実行されると、通信相手の離反を検知することができる。MFP10は、携帯端末50に通信相手の離反を適切に検知させることができる。
また、図3に示されるように、「Listen終了」と「CE」とに対応する動作制御手法が記述されていない。これは、動作制御処理を実行しないことを意味する。複数個の対象データの一連の通信が終了しているために、携帯端末50のユーザは、携帯端末50をMFP10から離反させる。このために、動作制御処理が実行されなくても、携帯端末50は、通信相手の離反を検知することができる。従って、MFP10は、動作制御処理を実行しない。この結果、MFP10は、他の処理を迅速に実行することができる。
(その他のケース)
シーケンス図を省略しているが、図2に示されるように、「Poll継続」と「R/W」に対応する切断手法として、「第1のソフト切断」が採用されている。また、「Poll終了」と「R/W」に対応する切断手法として、「第1のソフト切断」が採用されている。このために、MFP10は、通信リンクを迅速に切断して、他の処理を迅速に実行することができる。
また、図3に示されるように、「Poll継続」と「T1−V1」と「R/W」とに対応する動作制御手法として、「第1のハード制御」が採用されている。また、「Poll継続」と「T2−V3」と「R/W」とに対応する動作制御手法として、「第2のハード制御」が採用されている。このように、携帯端末50のOS情報に応じた第1又は第2のハード制御が実行されるために、MFP10は、携帯端末50に通信相手の離反を適切に検出させることができる。なお、図3では、「Poll継続」と「T1−V2」と「R/W」とに対応する動作制御手法が記述されていない。OS情報「T1−V2」を有する携帯端末50は、通信リンクが切断されると、動作制御処理が実行されなくても、通信相手の離反を適切に検出することができる。従って、MFP10は、動作制御処理を実行しない。この結果、MFP10は、他の処理を迅速に実行することができる。
また、図3に示されるように、「Poll終了」と「R/W」とに対応する動作制御手法が記述されていない。複数個の対象データの一連の通信が終了しているために、携帯端末50のユーザは、携帯端末50をMFP10から離反させる。このために、動作制御処理が実行されなくても、携帯端末50は、通信相手の離反を検知することができる。従って、MFP10は、動作制御処理を実行しない。この結果、MFP10は、他の処理を迅速に実行することができる。
(対応関係)
MFP10、携帯端末50が、それぞれ、「通信装置」、「外部装置」の一例である。Activationコマンドが、「第1の確立コマンド」及び「第2の確立コマンド」の一例である。Deactivationコマンドが、「切断コマンド」の一例である。通信リンクL1、通信リンクL2が、それぞれ、「第1の通信リンク」、「第2の通信リンク」の一例である。OS情報が、「関係情報」の一例である。また、図1のコマンドテーブル40が、「通信継続情報」の一例である。
また、OS情報「T1−V1」、OS情報「T1−V2」、OS情報「T2−V3」が、それぞれ、「第1の関係情報」、「第2の関係情報」、「第3の関係情報」の一例である。図8のケースAで選択される第1のハード切断、図9のケースBで選択される第1のソフト切断、図10のケースCで選択されるソフト+ハード切断、図11のケースDで選択される第2のハード切断、図12のケースEで選択される第2のソフト切断が、それぞれ、「第1種の切断手法」、「第2種の切断手法」、「第3種の切断手法」、「第4種の切断手法」、「第5種の切断手法」の一例である。図2の「Po11終了」又は「Listen終了」に対応する「第1のソフト制御」又は「第2のソフト制御」が、「予め決められている種類の切断手法」の一例である。また、第1のハード切断(又は第1のハード制御)の200ms、第2のハード切断(又は第2のハード制御)の300msが、それぞれ、「第1の期間」、「第2の期間」の一例である。
図4のS10,S14、図5のS62、図6のS112,S114、図7のS160,S162が、「第1の確立ステップ(さらに第1の確立手段)」及び「第2の確立ステップ(さらに第2の確立手段)」の一例である。図4のS22、図5のS66、図6のS122、図7のS166が、「受信ステップ(さらに受信手段)」の一例である。図4のS24、図5のS68、図6のS124、図7のS168が、「生成ステップ(さらに生成手段)」の一例である。図4のS38、図5のS80,S88、図6のS138、図7のS180,S188が、「選択ステップ(さらに選択手段)」の一例である。図4のS40、図5のS80,S88、図6のS140、図7のS180,S188が、「切断ステップ(さらに切断手段)」の一例である。図4のS32、図5のS74、図6のS132、図7のS174が、「送信ステップ(さらに送信手段)」の一例である。図5のS82,S84、図7のS182,S184が、「動作制御ステップ」の一例である。また、図4のS26,S34、図5のS70,S76、図6のS126,S134、図7のS170,S176が、「判断ステップ」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)「通信装置」は、印刷機能及びスキャン機能を実行可能な多機能機(即ちMFP10)に限られず、印刷機能及びスキャン機能のうちの印刷機能のみを実行可能なプリンタであってもよいし、印刷機能及びスキャン機能のうちのスキャン機能のみを実行可能なスキャナであってもよい。また、「通信装置」は、印刷機能及びスキャン機能とは異なる機能(例えば、画像の表示機能、データの演算機能)を実行する装置(例えば、PC、サーバ、携帯端末(携帯電話、スマートフォン、PDA等))であってもよい。即ち、「通信装置」は、NFC方式の通信を実行可能なあらゆるデバイスを含む。
(変形例2)「関係情報」は、OS情報に限られず、外部装置がNFC方式の通信を実行するための通信プログラムに関係する関係情報であれば、どのような情報であってもよい。例えば、「関係情報」は、携帯端末50に搭載されているプロトコルスタックを特定する特定情報(例えば、プロトコルスタックの識別番号、プロトコルスタックを提供する会社名等)であってもよい。また、例えば、「関係情報」は、携帯端末50のベンダ名であってもよい。本変形例では、図2及び図3のテーブル42,44において、OS情報の欄の代わりに、上記の特定情報の欄や上記のベンダ名の欄が設けられる。
(変形例3)「複数種の切断手法」は、図2に記述されている5種の切断手法に限られず、携帯端末50のOS情報に応じた他の切断手法を含んでいてもよい。例えば、「複数種の切断手法」は、NFC I/F22の動作を、200ms又は300msとは異なる期間(例えば400ms)に亘って、一時的に停止させる第3のハード切断を含んでいてもよい。本変形例では、第1のハード切断、第3のハード切断が、それぞれ、「第1種の切断手法」、「第2種の切断手法」の一例である。一般的に言うと、第1種及び第2種の切断手法は、異なる切断手法であればよい。同様に、第1種及び第3種の切断手法(又は第1種及び第4種の切断手法)は、異なる切断手法であればよい。なお、第2種、第3種、及び、第4種の切断手法は、互いに異なる切断手法であってもよいし、同じ切断手法であってもよい。
(変形例4)上記の各実施例では、図4〜図7の各処理がソフトウェア(即ちプログラム36,38)によって実現されるが、図4〜図7の各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、10:多機能機(MFP)、30:制御部、32:CPU、34:メモリ、40:コマンドテーブル、42:切断手法テーブル、44:動作制御テーブル、50:携帯端末、L1,L2:通信リンク

Claims (12)

  1. NFC(Near Field Communication)規格に従った通信方式であるNFC方式で、通信対象の対象データの通信を外部装置と実行する通信装置であって、
    前記NFC方式の通信を実行するためのNFCインターフェースと、
    プロセッサと、
    プログラムを格納しているメモリと、を備え、
    前記プロセッサは、前記メモリに格納されている前記プログラムに従って、以下の各ステップ、即ち、
    前記通信装置と前記外部装置との間に第1の通信リンクを確立するための第1の確立コマンドを、前記NFCインターフェースを介して、前記外部装置と通信して、前記第1の通信リンクを確立する第1の確立ステップと、
    前記第1の通信リンクを利用して、前記NFCインターフェースを介して、第1の対象データを前記外部装置から受信する受信ステップであって、前記第1の対象データは、特定のコマンドと、前記外部装置が前記NFC方式の通信を実行するための通信プログラムに関係する関係情報と、を含む、前記受信ステップと、
    前記第1の対象データに含まれる前記特定のコマンドを処理して、第2の対象データを生成する生成ステップと、
    前記第1の通信リンクを切断するための複数種の切断手法の中から、前記第1の対象データに含まれる前記関係情報に応じた1種類の切断手法を選択する選択ステップと、
    選択済みの前記1種類の切断手法を利用して、前記第1の通信リンクを切断する切断ステップと、
    前記第1の通信リンクが切断された後に、前記通信装置と前記外部装置との間に第2の通信リンクを確立するための第2の確立コマンドを、前記NFCインターフェースを介して、前記外部装置と通信して、前記第2の通信リンクを確立する第2の確立ステップと、
    前記第2の通信リンクを利用して、前記NFCインターフェースを介して、前記第2の対象データを前記外部装置に送信する送信ステップと、
    を実行する通信装置。
  2. 前記第1の確立コマンドを前記外部装置に送信して、前記第1の通信リンクを確立する場合において、
    前記第1の対象データが、第1の通信プログラムの種類を示す第1の種類情報と、前記第1の通信プログラムの第1のバージョンを示す第1のバージョン情報と、を含む第1の関係情報を含む場合には、前記選択ステップは、第1種の切断手法を選択し、
    前記第1の対象データが、前記第1の種類情報と、前記第1の通信プログラムの第2のバージョンであって、前記第1のバージョンとは異なる前記第2のバージョンを示す第2のバージョン情報と、を含む第2の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法とは異なる第2種の切断手法を選択する、
    請求項1に記載の通信装置。
  3. 前記第1種の切断手法は、前記NFCインターフェースの動作を一時的に停止させる手法を含み、
    前記第2種の切断手法は、前記NFCインターフェースを介して、切断コマンドを前記外部装置に送信して、前記NFCインターフェースを介して、前記切断コマンドに対するレスポンスコマンドを前記外部装置から受信する手法を含む、
    請求項2に記載の通信装置。
  4. 前記第1の確立コマンドを前記外部装置に送信して、前記第1の通信リンクを確立する場合において、
    前記第1の対象データが、第1の通信プログラムの種類を示す第1の種類情報を含む第1の関係情報を含む場合には、前記選択ステップは、第1種の切断手法を選択し、
    前記第1の対象データが、前記第1の通信プログラムとは異なる第2の通信プログラムの種類を示す第2の種類情報を含む第3の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法とは異なる第3種の切断手法を選択する、
    請求項1から3のいずれか一項に記載の通信装置。
  5. 前記第1種の切断手法は、前記NFCインターフェースの動作を一時的に停止させる手法を含み、
    前記第3種の切断手法は、前記NFCインターフェースを介して、前記外部装置に切断コマンドを送信して、前記NFCインターフェースを介して、前記切断コマンドに対するレスポンスコマンドを前記外部装置から受信し、その後、前記NFCインターフェースの動作を一時的に停止させる手法を含む、
    請求項4に記載の通信装置。
  6. 前記外部装置から前記第1の確立コマンドを受信して、前記第1の通信リンクを確立する場合において、
    前記第1の対象データが、第1の通信プログラムの種類を示す第1の種類情報と、前記第1の通信プログラムの第1のバージョンを示す第1のバージョン情報と、を含む第1の関係情報を含む場合には、前記選択ステップは、第1種の切断手法を選択し、
    前記第1の対象データが、前記第1の種類情報と、前記第1の通信プログラムの第2のバージョンであって、前記第1のバージョンとは異なる前記第2のバージョンを示す第2のバージョン情報と、を含む第2の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法とは異なる第4種の切断手法を選択する、
    請求項1から5のいずれか一項に記載の通信装置。
  7. 前記第1種の切断手法は、前記NFCインターフェースの動作を、第1の期間に亘って一時的に停止させる手法を含み、
    前記第4種の切断手法は、前記NFCインターフェースの動作を、前記第1の期間とは異なる第2の期間に亘って一時的に停止させる手法を含む、
    請求項6に記載の通信装置。
  8. 前記外部装置から前記第1の確立コマンドを受信して、前記第1の通信リンクを確立する場合であり、かつ、前記通信装置が、前記NFC規格のP2Pモードに従って動作すべき場合において、
    前記第1の対象データが前記第1の関係情報を含む場合には、前記選択ステップは、前記第1種の切断手法を選択し、
    前記第1の対象データが前記第2の関係情報を含む場合には、前記選択ステップは、前記第4種の切断手法を選択し、
    前記外部装置から前記第1の確立コマンドを受信して、前記第1の通信リンクを確立する場合であり、かつ、前記通信装置が、前記NFC規格のCard Emulationモードに従って動作すべき特定の場合において、
    前記第1の対象データが、前記第1の関係情報を含む場合でも、前記第2の関係情報を含む場合でも、前記選択ステップは、第5種の切断手法を選択し、
    前記第5種の切断手法は、前記NFCインターフェースを介して、切断コマンドを前記外部装置から受信して、前記NFCインターフェースを介して、前記切断コマンドに対するレスポンスコマンドを前記外部装置に送信する手法を含む、
    請求項7に記載の通信装置。
  9. 前記プロセッサは、前記メモリに格納されている前記プログラムに従って、さらに、
    前記特定の場合において、前記第5種の切断手法を利用して前記第1の通信リンクが切断された後に、動作制御ステップを実行し、
    前記動作制御ステップは、
    前記第1の対象データが前記第1の関係情報を含む場合には、前記NFCインターフェースの動作を、前記第1の期間に亘って一時的に停止させ、
    前記第1の対象データが前記第2の関係情報を含む場合には、前記NFCインターフェースの動作を、前記第2の期間に亘って一時的に停止させる、
    請求項8に記載の通信装置。
  10. 前記メモリは、さらに、
    前記第1の対象データが前記外部装置から受信された後に、前記第2の対象データが前記外部装置に送信されるべきであるのか否かを示す通信継続情報を格納し、
    前記プロセッサは、前記メモリに格納されている前記プログラムに従って、さらに、
    前記通信継続情報を用いて、前記第2の対象データが前記外部装置に送信されるべきであるのか否かを判断する判断ステップを実行し、
    前記選択ステップは、
    前記第2の対象データが前記外部装置に送信されるべきと判断される場合には、前記複数種の切断手法の中から、前記第1の対象データに含まれる前記関係情報に応じた前記1種類の切断手法を選択し、
    前記第2の対象データが前記外部装置に送信されるべきでないと判断される場合には、前記第1の対象データに含まれる前記関係情報に関わらず、予め決められている種類の切断手法を選択する、
    請求項1から9のいずれか一項に記載の通信装置。
  11. NFC(Near Field Communication)規格に従った通信方式であるNFC方式で、通信対象の対象データの通信を外部装置と実行する通信装置であって、
    前記通信装置と前記外部装置との間に前記NFC方式に従った第1の通信リンクを確立するための第1の確立コマンドを、前記外部装置と通信して、前記第1の通信リンクを確立する第1の確立手段と、
    前記第1の通信リンクを利用して、第1の対象データを前記外部装置から受信する受信手段であって、前記第1の対象データは、特定のコマンドと、前記外部装置が前記NFC方式の通信を実行するための通信プログラムに関係する関係情報と、を含む、前記受信手段と、
    前記第1の対象データに含まれる前記特定のコマンドを処理して、第2の対象データを生成する生成手段と、
    前記第1の通信リンクを切断するための複数種の切断手法の中から、前記第1の対象データに含まれる前記関係情報に応じた1種類の切断手法を選択する選択手段と、
    選択済みの前記1種類の切断手法を利用して、前記第1の通信リンクを切断する切断手段と、
    前記第1の通信リンクが切断された後に、前記通信装置と前記外部装置との間に前記NFC方式に従った第2の通信リンクを確立するための第2の確立コマンドを、前記外部装置と通信して、前記第2の通信リンクを確立する第2の確立手段と、
    前記第2の通信リンクを利用して、前記第2の対象データを前記外部装置に送信する送信手段と、
    を備える通信装置。
  12. NFC(Near Field Communication)規格に従った通信方式であるNFC方式で、通信対象の対象データの通信を外部装置と実行する通信装置のためのコンピュータプログラムであって、
    前記コンピュータプログラムは、前記通信装置のプロセッサに、以下の各ステップ、即ち、
    前記通信装置と前記外部装置との間に前記NFC方式に従った第1の通信リンクを確立するための第1の確立コマンドを、前記外部装置と通信して、前記第1の通信リンクを確立する第1の確立ステップと、
    前記第1の通信リンクを利用して、第1の対象データを前記外部装置から受信する受信ステップであって、前記第1の対象データは、特定のコマンドと、前記外部装置が前記NFC方式の通信を実行するための通信プログラムに関係する関係情報と、を含む、前記受信ステップと、
    前記第1の対象データに含まれる前記特定のコマンドを処理して、第2の対象データを生成する生成ステップと、
    前記第1の通信リンクを切断するための複数種の切断手法の中から、前記第1の対象データに含まれる前記関係情報に応じた1種類の切断手法を選択する選択ステップと、
    選択済みの前記1種類の切断手法を利用して、前記第1の通信リンクを切断する切断ステップと、
    前記第1の通信リンクが切断された後に、前記通信装置と前記外部装置との間に前記NFC方式に従った第2の通信リンクを確立するための第2の確立コマンドを、前記外部装置と通信して、前記第2の通信リンクを確立する第2の確立ステップと、
    前記第2の通信リンクを利用して、前記第2の対象データを前記外部装置に送信する送信ステップと、
    を実行させるコンピュータプログラム。
JP2012149050A 2012-07-03 2012-07-03 通信装置 Active JP5867319B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2012149050A JP5867319B2 (ja) 2012-07-03 2012-07-03 通信装置
EP13174778.4A EP2683180B1 (en) 2012-07-03 2013-07-02 Communication Device
US13/933,419 US8994996B2 (en) 2012-07-03 2013-07-02 Communication device communicating target data with external device according to near field communication
EP18169339.1A EP3379854B1 (en) 2012-07-03 2013-07-02 Communication device
US14/663,923 US9354835B2 (en) 2012-07-03 2015-03-20 Communication device communicating target data with external device according to near field communication
US15/162,995 US9696956B2 (en) 2012-07-03 2016-05-24 Communication device communicating target data with external device according to near field communication
US15/609,339 US10108383B2 (en) 2012-07-03 2017-05-31 Communication device communicating target data with external device according to near field communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012149050A JP5867319B2 (ja) 2012-07-03 2012-07-03 通信装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016000954A Division JP6052438B2 (ja) 2016-01-06 2016-01-06 通信装置

Publications (2)

Publication Number Publication Date
JP2014011756A JP2014011756A (ja) 2014-01-20
JP5867319B2 true JP5867319B2 (ja) 2016-02-24

Family

ID=48747379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012149050A Active JP5867319B2 (ja) 2012-07-03 2012-07-03 通信装置

Country Status (3)

Country Link
US (4) US8994996B2 (ja)
EP (2) EP2683180B1 (ja)
JP (1) JP5867319B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5900228B2 (ja) * 2012-08-06 2016-04-06 ブラザー工業株式会社 通信装置
JP6179157B2 (ja) * 2013-03-27 2017-08-16 ブラザー工業株式会社 情報処理装置、通信端末装置および情報処理装置のプログラム
JP6233218B2 (ja) * 2014-07-11 2017-11-22 コニカミノルタ株式会社 宛先情報転送システム、携帯端末装置及び宛先情報転送プログラム
JP6593074B2 (ja) * 2015-09-30 2019-10-23 ブラザー工業株式会社 通信システム、端末装置のためのコンピュータプログラム、及び、通信装置
EP3214768B1 (en) * 2016-03-03 2019-08-28 Nxp B.V. Nfc power management device and method
JP6776779B2 (ja) * 2016-09-30 2020-10-28 ブラザー工業株式会社 通信装置
JP6819417B2 (ja) * 2017-03-31 2021-01-27 ブラザー工業株式会社 通信装置
JP6869314B2 (ja) * 2019-11-21 2021-05-12 キヤノン株式会社 通信装置及びその制御方法及びプログラム

Family Cites Families (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3591251B2 (ja) 1997-11-21 2004-11-17 富士ゼロックス株式会社 プリンタ制御方法および装置
JP3701491B2 (ja) 1999-02-05 2005-09-28 株式会社日立国際電気 無線lanシステム
US6925167B2 (en) 2001-02-01 2005-08-02 Estech Systems, Inc. Service observing in a voice over IP telephone system
WO2003061205A1 (fr) 2002-01-10 2003-07-24 Fujitsu Limited Systeme de communication sans fil sur courte distance utilisant un terminal mobile et dispositif de communication sans fil pour un tel systeme
US7177637B2 (en) 2002-03-01 2007-02-13 Intel Corporation Connectivity to public domain services of wireless local area networks
JP4261916B2 (ja) 2002-06-19 2009-05-13 キヤノン株式会社 情報処理装置及び印刷処理方法
JP2004215225A (ja) 2002-12-17 2004-07-29 Sony Corp 通信システムおよび通信方法、並びにデータ処理装置
JP4023308B2 (ja) 2002-12-17 2007-12-19 ソニー株式会社 通信装置および通信方法
JP3951298B2 (ja) 2002-12-17 2007-08-01 ソニー株式会社 通信装置および通信方法
US7595903B2 (en) 2003-01-23 2009-09-29 Ricoh Company, Ltd. Collaboration system, method and software program for image forming apparatuses
WO2005017738A1 (ja) 2003-08-13 2005-02-24 Fujitsu Limited 印刷制御方法、印刷制御装置および印刷制御プログラム
JP4027360B2 (ja) 2004-11-08 2007-12-26 キヤノン株式会社 認証方法及びシステムならびに情報処理方法及び装置
US20080084578A1 (en) 2004-12-07 2008-04-10 Airprint Networks, Inc. Quality of service methods and systems for mobile printing
US8570544B2 (en) 2004-12-15 2013-10-29 Samsung Electronics Co., Ltd. Multifunction peripheral (MFP) and a method for restricting use thereof
JP4367349B2 (ja) 2005-01-31 2009-11-18 ソニー株式会社 通信装置、通信方法、およびプログラム
JP4432787B2 (ja) 2005-01-31 2010-03-17 ソニー株式会社 通信装置、通信方法、およびプログラム
JP4619225B2 (ja) * 2005-07-27 2011-01-26 京セラ株式会社 通信端末装置およびその通信方法
JP2009506619A (ja) 2005-08-25 2009-02-12 エヌエックスピー ビー ヴィ 通信セッションにおけるタイムアウトパラメータを計算する方法及び回路
US20090103124A1 (en) 2005-08-31 2009-04-23 Canon Kabushiki Kaisha Image forming apparatus, mobile device, and control method therefor
JP3977392B2 (ja) 2005-09-09 2007-09-19 キヤノン株式会社 画像形成装置及びその制御方法
JP2007070047A (ja) 2005-09-07 2007-03-22 Fujifilm Corp 搬送物品管理システム
JP2009515250A (ja) 2005-11-07 2009-04-09 エルジー エレクトロニクス インコーポレイティド 近距離通信ホストコントローラインターフェイス
JP4702944B2 (ja) 2005-12-16 2011-06-15 キヤノン株式会社 通信装置およびその制御方法及び通信システム
CN101379464B (zh) 2005-12-21 2015-05-06 数字标记公司 规则驱动型个域网id元数据路由***和网络
JP4561645B2 (ja) 2006-01-30 2010-10-13 ソニー株式会社 通信装置、データ処理装置、近接通信装置、通信方法、およびプログラム
US8718554B2 (en) 2006-02-15 2014-05-06 Microsoft Corporation Means for provisioning and managing mobile device configuration over a near-field communication link
JP3946748B1 (ja) 2006-02-20 2007-07-18 株式会社神戸製鋼所 情報同期システム
JP2007272354A (ja) 2006-03-30 2007-10-18 Canon Inc 電子装置及びそのネットワーク設定方法、並びに制御プログラム
TWI314688B (en) 2006-06-09 2009-09-11 Asustek Comp Inc Computer and main circuit board thereof
US8102797B2 (en) 2006-08-17 2012-01-24 Microsoft Corporation Web format-based wireless communications
JP4321566B2 (ja) 2006-08-22 2009-08-26 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム、携帯端末、画像処理装置及びプログラム
US8554827B2 (en) 2006-09-29 2013-10-08 Qurio Holdings, Inc. Virtual peer for a content sharing system
US8335493B2 (en) 2006-11-10 2012-12-18 Sony Ericsson Mobile Communications Ab System and method for service selection in a portable device
JP5121212B2 (ja) 2006-11-17 2013-01-16 キヤノン株式会社 管理装置、管理装置の制御方法、及び当該制御方法をコンピュータに実行させるためのコンピュータプログラム
US8687536B2 (en) * 2007-02-23 2014-04-01 Qualcomm Incorporated Method and apparatus to create multicast groups based on proximity
US20080220878A1 (en) * 2007-02-23 2008-09-11 Oliver Michaelis Method and Apparatus to Create or Join Gaming Sessions Based on Proximity
US8522019B2 (en) 2007-02-23 2013-08-27 Qualcomm Incorporated Method and apparatus to create trust domains based on proximity
EP1968295B1 (en) 2007-03-05 2019-01-02 Brother Kogyo Kabushiki Kaisha Communication device
US9670694B2 (en) 2007-04-12 2017-06-06 Utc Fire & Security Americas Corporation, Inc. Restricted range lockbox, access device and methods
US20090023476A1 (en) 2007-07-16 2009-01-22 Nokia Corporation Apparatuses and methods for facilitating communication of devices
JP4810694B2 (ja) 2007-07-18 2011-11-09 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、および画像形成装置におけるセキュリティ段階の設定方法
JP2009026091A (ja) * 2007-07-20 2009-02-05 Fujitsu Ltd 接続管理プログラム、接続管理方法および情報処理装置
JP2009135865A (ja) 2007-07-30 2009-06-18 Ricoh Co Ltd 情報処理装置、経路探索装置、家電装置、情報処理システムおよびプログラム
EP2026615B1 (en) 2007-07-30 2014-10-29 Ricoh Company, Ltd. Information processing apparatus, information processing system, and program product
US8274669B2 (en) 2007-07-31 2012-09-25 Ricoh Company, Ltd. Image forming apparatus
JP2009037566A (ja) 2007-08-03 2009-02-19 Ricoh Co Ltd 情報処理システム、情報処理装置、携帯端末装置、情報処理方法および情報処理プログラム
US8159706B2 (en) 2007-09-12 2012-04-17 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information communication method
US8089644B2 (en) 2007-09-18 2012-01-03 Fuji Xerox Co., Ltd. Image-processing device, recording medium, and method
CN101855861A (zh) 2007-11-16 2010-10-06 富士通天株式会社 认证方法、认证***、车载装置以及认证装置
JP2009182458A (ja) * 2008-01-29 2009-08-13 Sony Corp 通信装置、通信システム、通信方法及びプログラム
US9558485B2 (en) 2008-01-30 2017-01-31 Paypal, Inc. Two step near field communication transactions
US7880591B2 (en) 2008-02-01 2011-02-01 Apple Inc. Consumer abuse detection system and method
JP4524703B2 (ja) * 2008-02-29 2010-08-18 ソニー株式会社 情報処理装置および方法、並びにプログラム
ES2386164T3 (es) 2008-03-27 2012-08-10 Motorola Mobility, Inc. Método y aparato para la selección automática de una aplicación de comunicación de campo cercano en un dispositivo electrónico
US7882244B2 (en) 2008-04-23 2011-02-01 Sharp Laboratories Of America, Inc. Method and system for facilitating group organization using mobile devices
US8401468B2 (en) 2008-05-28 2013-03-19 Sharp Laboratories Of America, Inc. Method and system for facilitating scheduling using a mobile device
JP5049900B2 (ja) * 2008-06-30 2012-10-17 キヤノン株式会社 設定装置、画像出力装置、それらの制御方法及びプログラム
US8413172B2 (en) 2008-08-20 2013-04-02 Sharp Laboratories Of America, Inc. Method and system for socket API call emulation
US8279471B2 (en) 2008-08-28 2012-10-02 Sharp Laboratories Of America, Inc. Virtual USB over NFC printing method and system
JP5446519B2 (ja) 2008-09-17 2014-03-19 株式会社リコー 携帯端末装置およびプログラム
JP5347403B2 (ja) * 2008-09-22 2013-11-20 ソニー株式会社 情報処理装置および方法、プログラム、並びに、情報処理システム
US20100078471A1 (en) 2008-09-30 2010-04-01 Apple Inc. System and method for processing peer-to-peer financial transactions
US20100078472A1 (en) 2008-09-30 2010-04-01 Apple Inc. Group peer-to-peer financial transactions
US8526885B2 (en) 2008-09-30 2013-09-03 Apple Inc Peer-to-peer host station
US20100082485A1 (en) 2008-09-30 2010-04-01 Apple Inc. Portable point of purchase devices and methods
US8650301B2 (en) 2008-10-02 2014-02-11 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
JP4720899B2 (ja) 2008-11-27 2011-07-13 ソニー株式会社 通信装置、通信方法、プログラム、および通信システム
EP2197167B1 (en) 2008-12-12 2017-07-12 Vodafone Holding GmbH Device and method for short range communication
EP2852070B1 (en) 2009-01-26 2019-01-23 Google Technology Holdings LLC Wireless communication device for providing at least one near field communication service
JP4981826B2 (ja) 2009-01-28 2012-07-25 シャープ株式会社 通信システム、画像形成装置及び携帯情報端末装置
KR101002530B1 (ko) 2009-02-18 2010-12-17 삼성에스디아이 주식회사 알에프아이디 통신 장치
US8131214B2 (en) 2009-03-02 2012-03-06 Motorola Mobility, Inc. Method for selecting content for transfer or synchronization between devices
JP5240170B2 (ja) 2009-03-18 2013-07-17 株式会社リコー 画像形成装置、プログラムおよび情報処理システム
EP2239924A1 (fr) 2009-04-08 2010-10-13 Gemalto SA Procédé de présélection d'au moins une application dans un dispositif mobile de communication comportant un système NFC
JP2010283485A (ja) 2009-06-03 2010-12-16 Casio Computer Co Ltd 無線通信システム
US8332606B2 (en) 2009-06-15 2012-12-11 Boldyrev Sergey System and method for distributed persistent computing platform
US8373882B2 (en) 2009-07-02 2013-02-12 Dialogic Corporation Mobile document imaging and transmission
US20110028091A1 (en) 2009-08-03 2011-02-03 Motorola, Inc. Method and system for near-field wireless device pairing
IT1395175B1 (it) 2009-08-18 2012-09-05 Nfc Alias S R L Metodo e sistema per applicativo universale per procedure transazionali con tecnologia nfc
JP2011044092A (ja) 2009-08-24 2011-03-03 Ricoh Co Ltd 通信システム、情報処理装置、情報処理方法及び情報処理プログラム
EP2296292B1 (en) 2009-09-14 2019-01-16 Nxp B.V. A near field communication device
US8144015B2 (en) 2009-09-23 2012-03-27 Microsoft Corporation Power efficient object detection with selective polling
JP5560639B2 (ja) 2009-09-30 2014-07-30 株式会社リコー 画像処理装置、画像処理装置が実行する方法、プログラムおよび記録媒体
WO2011048658A1 (ja) 2009-10-19 2011-04-28 キヤノン株式会社 複数の通信インターフェイスを有する情報処理装置、該情報処理装置の制御方法
JP5458796B2 (ja) 2009-10-19 2014-04-02 株式会社リコー 通信装置及び通信制御方法
KR101590034B1 (ko) 2009-11-18 2016-02-01 삼성전자주식회사 인쇄 제어 단말장치, 화상형성장치, 화상형성시스템, 및 화상형성방법
US20110177780A1 (en) 2010-01-15 2011-07-21 Kabushiki Kaisha Toshiba Wireless communication apparatus
JP5293618B2 (ja) 2010-01-15 2013-09-18 富士通モバイルコミュニケーションズ株式会社 無線通信装置
CN101790183A (zh) 2010-01-25 2010-07-28 中兴通讯股份有限公司 模式选择方法、移动终端及***
JP2011182110A (ja) * 2010-02-26 2011-09-15 Toshiba Corp 電子機器及び通信制御方法
US8342415B2 (en) 2010-03-17 2013-01-01 Inside Secure Method of conducting a transaction using an NFC device
US8477350B2 (en) 2010-03-16 2013-07-02 Google Inc. Cloud-based print service
JP5471700B2 (ja) 2010-03-26 2014-04-16 ソニー株式会社 通信装置、通信方法、及び、通信システム
DE102010013203A1 (de) 2010-03-29 2011-09-29 Giesecke & Devrient Gmbh System und Verfahren zur Anwesenheitserkennung eines zweiten tragbaren Datenträgers durch einen ersten tragbaren Datenträger
US10445723B2 (en) 2010-04-09 2019-10-15 Paypal, Inc. NFC-transaction processing systems and methods
JP2011233031A (ja) 2010-04-28 2011-11-17 Canon Inc 画像形成装置及びその制御方法
US8224246B2 (en) 2010-05-10 2012-07-17 Nokia Corporation Device to device connection setup using near-field communication
US8886124B2 (en) 2010-07-12 2014-11-11 Panasonic Intellectual Property Corporation Of America Communication device and communication method
JP5491331B2 (ja) 2010-09-13 2014-05-14 株式会社東海理化電機製作所 通信モード設定装置
US8358596B2 (en) 2010-09-20 2013-01-22 Research In Motion Limited Communications system providing mobile wireless communications device application module associations for respective wireless communications formats and related methods
US8462734B2 (en) 2010-10-20 2013-06-11 Nokia Corporation Wireless docking with out-of-band initiation
US20120100803A1 (en) 2010-10-20 2012-04-26 Nokia Corporation Delayed and conditional transport switch
US8850181B2 (en) 2010-11-16 2014-09-30 Ncr Corporation Accessing a secure terminal
US9402278B2 (en) 2010-11-26 2016-07-26 Wireless Dynamics, Inc. Multi-mode communication system for a mobile phone
JP5641323B2 (ja) * 2010-11-29 2014-12-17 ソニー株式会社 通信装置、通信方法、およびプログラム
WO2012093773A2 (ko) 2011-01-04 2012-07-12 에이큐 주식회사 광고 정보 제공 시스템
JP5703791B2 (ja) 2011-01-31 2015-04-22 セイコーエプソン株式会社 印刷システムおよびプリンター
KR101807286B1 (ko) 2011-02-11 2017-12-08 삼성전자주식회사 근거리 통신을 이용한 휴대 단말기의 기능 수행 방법 및 장치
JP5935235B2 (ja) 2011-02-18 2016-06-15 ソニー株式会社 通信装置、通信システムおよび通信方法
KR101064192B1 (ko) 2011-03-25 2011-09-14 에이큐 주식회사 단말간 광고 제공 시스템
US9268545B2 (en) 2011-03-31 2016-02-23 Intel Corporation Connecting mobile devices, internet-connected hosts, and cloud services
US20120300245A1 (en) 2011-05-25 2012-11-29 Manjirnath Chatierjee Inductive charging and data transfer based upon mutual device capabilities
US8958745B2 (en) 2011-06-21 2015-02-17 Lg Electronics Inc. Electronic device and operating method thereof
US20120330784A1 (en) * 2011-06-22 2012-12-27 Broadcom Corporation Mobile Device for Transaction Payment Delegation
JP5860631B2 (ja) * 2011-08-12 2016-02-16 フェリカネットワークス株式会社 通信装置、制御方法、及びプログラム
US9007613B2 (en) 2011-09-23 2015-04-14 Sharp Laboratories Of America, Inc. Secure mobile printing method and system
US9524499B2 (en) 2011-09-28 2016-12-20 Paypal, Inc. Systems, methods, and computer program products providing electronic communication during transactions
JP5874279B2 (ja) * 2011-09-30 2016-03-02 ブラザー工業株式会社 画像処理装置及び携帯端末
US8189225B1 (en) 2011-10-04 2012-05-29 Google Inc. Printing to a cloud printer via NFC
US20140368859A1 (en) 2011-10-17 2014-12-18 Google Inc. Virtual print queue for roving printing in a cloud-based print service
KR20150114765A (ko) 2014-04-02 2015-10-13 삼성전자주식회사 근거리 무선 통신(nfc) 기능을 지원하는 화상형성장치 및 화상형성장치의 nfc 동작 모드를 설정하는 방법
US9357094B2 (en) 2011-12-12 2016-05-31 Samsung Electronics Co., Ltd. Image forming apparatus supporting peer-to-peer connection and method of managing channel thereof
KR20150083405A (ko) 2014-01-09 2015-07-17 삼성전자주식회사 모바일 단말기를 화상형성장치에 사용 등록하는 방법 및 이를 이용한 화상형성장치, 모바일 단말기의 사용 등록을 요청하는 방법 및 이를 이용한 모바일 단말기
US9370040B2 (en) 2011-12-27 2016-06-14 Qualcomm Incorporated Methods and apparatus for improving NFC LLCP partitioning
US20130166969A1 (en) 2011-12-27 2013-06-27 Pitney Bowes Inc. Method and system for enhanced help instructions
JP5661603B2 (ja) 2011-12-27 2015-01-28 パラマウントベッド株式会社 カセッテホルダ及び医療用ベッド
US8688038B2 (en) 2012-01-27 2014-04-01 Blackberry Limited Mobile communications device providing enhanced near field communication (NFC) mode switching features and related methods
JP5939819B2 (ja) 2012-01-31 2016-06-22 キヤノン株式会社 通信装置、通信装置の制御方法、通信システム、プログラム
US8781906B2 (en) 2012-02-06 2014-07-15 Walter Cruttenden Systems and methods for managing consumer transaction-based investments
US8792824B2 (en) 2012-02-08 2014-07-29 Blackberry Limited Mobile communications device providing near field communication (NFC) low power operating features and related methods
WO2013126591A1 (en) 2012-02-21 2013-08-29 Zih Corp. Method and apparatus for implementing near field communications with a printer
JP6012203B2 (ja) * 2012-03-05 2016-10-25 キヤノン株式会社 画像処理装置、及び制御方法
JP5969775B2 (ja) 2012-03-05 2016-08-17 キヤノン株式会社 情報処理装置、制御方法、およびプログラム
JP6006508B2 (ja) 2012-03-05 2016-10-12 キヤノン株式会社 情報処理システムおよび情報処理方法、プログラム
JP5930777B2 (ja) 2012-03-05 2016-06-08 キヤノン株式会社 印刷装置、携帯端末及びその制御方法、印刷システム、コンピュータプログラム
US8909150B2 (en) 2012-03-14 2014-12-09 Nokia Corporation Method, apparatus, and computer program product for short-range wireless communication
JP5962146B2 (ja) 2012-03-30 2016-08-03 ブラザー工業株式会社 通信装置
JP6019676B2 (ja) * 2012-03-30 2016-11-02 ブラザー工業株式会社 通信装置
JP6019675B2 (ja) 2012-03-30 2016-11-02 ブラザー工業株式会社 機能実行装置
US9516452B2 (en) * 2012-06-28 2016-12-06 Intel Corporation Wireless data transfer with improved transport mechanism selection
JP5900226B2 (ja) 2012-08-03 2016-04-06 ブラザー工業株式会社 通信装置
JP5958161B2 (ja) 2012-08-03 2016-07-27 ブラザー工業株式会社 通信装置
JP5900228B2 (ja) 2012-08-06 2016-04-06 ブラザー工業株式会社 通信装置
US20140047038A1 (en) 2012-08-07 2014-02-13 Xerox Corporation Method and system for sending scanned documents to mobile device using operator's network
JP6031899B2 (ja) 2012-09-03 2016-11-24 ブラザー工業株式会社 画像処理システム,情報処理装置,画像処理装置,およびプログラム
US9258712B2 (en) 2012-09-04 2016-02-09 Nokia Technologies Oy Method, apparatus, and computer program product for sharing wireless network configurations
US9681302B2 (en) 2012-09-10 2017-06-13 Assa Abloy Ab Method, apparatus, and system for providing and using a trusted tag
JP6089540B2 (ja) 2012-09-27 2017-03-08 ブラザー工業株式会社 機能実行装置
JP6142495B2 (ja) 2012-10-11 2017-06-07 ブラザー工業株式会社 画像形成装置,情報処理装置および画像形成システム
EP2731280B8 (en) 2012-11-07 2019-03-20 Telefonaktiebolaget LM Ericsson (publ) Loopback-based built-in-self-test
WO2014124300A1 (en) 2013-02-07 2014-08-14 Schlage Lock Company Llc A system and method for nfc peer-to-peer authentication and secure data transfer
US10152706B2 (en) 2013-03-11 2018-12-11 Cellco Partnership Secure NFC data authentication
JP6123416B2 (ja) 2013-03-28 2017-05-10 ブラザー工業株式会社 通信装置
JP5853981B2 (ja) 2013-03-29 2016-02-09 ブラザー工業株式会社 機能実行装置
US9672575B2 (en) 2013-04-03 2017-06-06 Salesforce.Com, Inc. Capturing information regarding an interaction to a database
JP6264815B2 (ja) 2013-09-30 2018-01-24 ブラザー工業株式会社 通信装置
JP6261337B2 (ja) 2013-12-27 2018-01-17 キヤノン株式会社 情報処理装置、その制御方法とプログラム
JP6402494B2 (ja) 2014-05-30 2018-10-10 ブラザー工業株式会社 機能実行システム、機能実行装置、及び、通信端末
JP2016010117A (ja) 2014-06-26 2016-01-18 カシオ計算機株式会社 無線通信装置、無線通信システム、無線通信方法、及びプログラム

Also Published As

Publication number Publication date
US20170269892A1 (en) 2017-09-21
EP3379854A1 (en) 2018-09-26
US9354835B2 (en) 2016-05-31
US20150193184A1 (en) 2015-07-09
US10108383B2 (en) 2018-10-23
EP2683180A1 (en) 2014-01-08
EP3379854B1 (en) 2019-09-25
US20160266856A1 (en) 2016-09-15
EP2683180B1 (en) 2018-06-06
JP2014011756A (ja) 2014-01-20
US20140009791A1 (en) 2014-01-09
US8994996B2 (en) 2015-03-31
US9696956B2 (en) 2017-07-04

Similar Documents

Publication Publication Date Title
US11381280B2 (en) Communication device
JP5867319B2 (ja) 通信装置
JP6123416B2 (ja) 通信装置
JP5900228B2 (ja) 通信装置
JP6195004B2 (ja) 通信装置
JP6264436B2 (ja) 通信装置
JP6052438B2 (ja) 通信装置
JP2018137584A (ja) 通信装置及び端末装置のためのコンピュータプログラム
JP6673448B2 (ja) 通信装置
JP6919738B2 (ja) 通信装置
JP6443512B2 (ja) 通信装置
JP6168201B2 (ja) 通信装置
JP6337984B2 (ja) 通信装置
JP6070880B2 (ja) 通信装置
JP6406364B2 (ja) 通信装置
JP2016028536A (ja) 通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151221

R150 Certificate of patent or registration of utility model

Ref document number: 5867319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150