本発明に係る通信方法、およびそれを用いた送受信回路、送受信機の実施の各形態について図1から図33に基づいて説明すると以下の通りである。本発明に係る通信方法は、通信のためのプロトコルを包含するものである。
〔概要〕
(通信層)
後述する実施の形態では、本発明に係る通信システムの送信機および受信機の構成および動作について、OSI7層モデルに基づいて詳細に説明する。ここで、OSI7層モデルとは、いわゆる「OSI基本参照モデル」「OSI階層モデル」とも呼ばれているものである。
OSI7層モデルでは、異機種間のデータ通信を実現するために、コンピュータの持つべき通信機能が7階層に分割され、各層ごとに標準的な機能モジュールが定義されている。
具体的には、第1層(物理層)は、データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ。第2層(データリンク層)は、物理的な通信路を確保し、通信路を流れるデータのエラー検出などを行う。第3層(ネットワーク層)は、通信経路の選択や通信経路内のアドレスの管理を行う。第4層(トランスポート層)は、データ圧縮や誤り訂正、再送制御などを行う。第5層(セッション層)は、通信プログラム同士がデータの送受信を行うための仮想的な経路(コネクション)の確立や解放を行う。第6層(プレゼンテーション層)は、第5層から受け取ったデータをユーザが分かりやすい形式に変換したり、第7層から送られてくるデータを通信に適した形式に変換したりする。第7層(アプリケーション層)は、データ通信を利用した様々なサービスを人間や他のプログラムに提供する。
本発明の各通信層も、上記OSI7層モデルの対応する階層と同等の機能を有する。ただし、実施の形態では、上記通信システムは、セッション層とプレゼンテーション層とを1つにした、6階層の構造となっている。また、アプリケーション層については、説明を省略する。
本発明は、送信機および受信機が複数の通信層の接続を確立して通信を行う通信システムに広く適用可能である。すなわち、通信機能の分割はOSI7層モデルに従っていなくてもよい。また、通信層の数は、接続すべき通信層が複数であれば、任意に選択できる。
また、本発明は、局発見コマンドを省略した第1のプロトコルによって短時間で接続できること、および、この第1のプロトコルと、局発見コマンドを用いることでより確実に接続できる第2のプロトコルとを適宜切り替え可能であることから、通信路が切断しやすい、例えば赤外線による無線通信に特に適している。ただし、本発明は、他の無線通信、および、有線通信においても効果的である。
(IrSimpleとIrDA)
各実施の形態では、説明の便宜上、本発明の一適用例であるIrSimpleに基づいて説明する。しかし、本発明はIrSimpleに限定されるものではない。なお、IrSimpleとは、従来のIrDAの一部機能を改良したものである。
各実施の形態において、具体例を挙げて説明する場合、本発明の通信方法をIrSimple(第1のプロトコル)とし、これと同一の装置の搭載する通信方法をIrDA(第2のプロトコル)として説明する。このように、IrSimpleとIrDAとを組合わせた場合、物理層を共用できるというメリットがある。また、IrDAのように局発見コマンド(XID)および接続要求コマンド(SNRM)を使うプロトコルの場合、後述する本発明の特徴であるプロトコルの切り替え処理を行うことができる。もちろん、IrSimpleと組合わせる第2のプロトコルは、IrDAでなくてもよく、物理層が異なるものであってもよい。
なお、各実施の形態では、IrSimpleに則って、データリンク層、ネットワーク層、トランスポート層、セッション層+プレゼンテーション層を、それぞれ、LAP、LMP、SMP、OBEXと表記することがある。
〔実施の形態1〕
図1は、本実施の形態の送信機(送受信回路、送受信機)1の構成を示すブロック図である。図1に示すように、送信機1は、CPU11と、メモリ12と、コントローラ13と、送信部(第1送信手段)14とを備えており、例えば、IrDA規格に準拠し、赤外線を用いた無線通信にてデータを外部に送信できるものである。なお、上記では、無線通信の方式としてIrDA規格を挙げたが、それに限定されるものではない。なお、本実施の形態の送信機1の各ブロックは、ハードウェアロジック(通信回路)によって構成してもよいし、CPUを用いてソフトウェアによって実現してもよい。
CPU11は、図示しない操作部に入力された利用者の指示に応じて、所定の演算処理を行うものである。所定の演算処理としては、接続要求がある。CPU11は、操作部から接続指示を受けると、接続に必要なデータがある場合にはメモリ12に格納するとともに、コントローラ13に対して接続要求を行う。また、CPU11は、コントローラ13から接続コマンドの送信終了を表す送信終了通知を受け取ると、接続処理を完了する。メモリ12は、接続に必要なデータを一時記憶するものであり、CPU11によりデータが書き込まれる。
コントローラ13は、CPU11からの接続要求に応じて、接続要求コマンドの送信を制御するものであり、制御部131、コマンドパケット生成部132を備えている。制御部131は、CPU11から接続要求を受け取ると、メモリ12に接続時に必要なデータが存在する場合にはこれを読み出し、これをコマンドパケット生成部132に送るとともに、コマンドパケット生成部132に対してコマンドパケットを生成させる。接続時に必要なデータが存在しない場合には、コマンドパケット生成部132に対してコマンドパケットを生成させる。
また、制御部13はコマンドパケット生成部132より生成されたコマンドパケットが、送信部14から送信されたことを検知し、コマンドの送信が終了したことを示す送信終了通知をCPU11に送る。
コマンドパケット生成部132は、制御部131から受けた接続要求により、接続要求コマンドを生成する。また、接続要求コマンドに含めるデータが存在する場合には、制御部131よりデータを受け取り、データを保持した接続要求コマンドを生成する。なお、コマンドパケット生成部132が生成したコマンドパケットの転送速度は、制御部131により制御される。送信部14は、赤外線通信路を介して、コントローラ13から受信したパケットを所定の時間間隔で外部に送信する。
図4に示すように、本実施の形態の送信機1において、CPU11から接続要求があった場合に、制御部131は、コマンドパケット生成部132で、生成する1番目のパケットとして、自局の最大転送可能速度、最大受信可能データ長等のパラメータ等といった通信に必要となる設定値を保持するSNRMパケットを生成し、これを送信部14より外部に送信する。
〔実施の形態2〕
次に、本実施の形態の受信機について、図2を参照しながら説明する。図2は本実施の形態の受信機(送受信回路、送受信機)2の構成を示すブロック図である。図2に示されるように、受信機2は、CPU21と、メモリ22と、コントローラ23と、CDR(クロックデータリカバリ)26と、受信部25と、送信部24とを備えている。なお、本実施の形態の送信機1の各ブロックは、ハードウェアロジック(通信回路)によって構成してもよいし、CPUを用いてソフトウェアによって実現してもよい。
受信部25は、赤外線通信路を介して、送信機1から送信されたパケットを受信し、受信したパケットをCDR26に送る。CDR26は、受信したパケットを基に受信信号からクロック信号とコマンド信号とを抽出する(リカバリする)ためのものである。CDR26は、リカバリしたクロック信号とコマンド信号とをコントローラ23に送る。
コントローラ23は、CDR26から受けたパケットを基に、所定の制御処理を行うものである。コントローラ23は、制御部231、コマンドパケット生成部232およびパケット識別部233を備えている。
パケット識別部233は、CDR26によりリカバリされたパケットを受け、パケットよりコマンド情報を抽出し、制御部231に送る。制御部231は、パケットに接続に必要なデータが含まれている場合には、これをメモリ22に書き込み、CPU21に対してコマンドの受信完了通知を行う。パケットに接続に必要なデータが含まれない場合には、CPU21に対してコマンドの受信完了通知を行う。メモリ22は、受信部25が受信したコマンドに接続に必要なデータが含まれていた場合に、これが書き込まれる。CPU21は、制御部231からの通知に応じた処理を行う。
図4に示すように、本実施の形態の受信機2において、受信部25で受信した、本実施の形態1の送信機1より送信されたパケットをパケット識別部233により識別し、これがSNRMコマンドであった際に、制御部231は、送信機1より接続要求が送られたことをCPU21に通知し、このSNRMコマンドに対する応答として、自局の最大転送可能速度、最大受信可能データ長等のパラメータをもったUAレスポンスをコマンドパケット生成部232にて作成し、送信部24より送信する。
〔実施の形態3〕
本実施の形態1の送信機1において、コマンドパケット生成部132により生成されるコマンドパケットが図5に示すIrDAのSNRMコマンドである場合に、このSNRMコマンド内の相手局アドレスであるDestination Device Addressを0xFFFFFFFFとする。Destination Device Addressが0xFFFFFFFFとは、IrDAではブロードキャストアドレスと規定されているが、用いられることはない非利用コードである。このため、IrDAのSNRMコマンドを用いていても、IrDAとは異なる通信方式を用いていることを、特定の送受信機に伝えることができる。
また、本実施の形態2の受信機2では、パケット識別部233において受信したIrDAのSNRMコマンドのDestination Device Addressが0xFFFFFFFFであった場合には、IrDAとは異なる通信方式を用いていると判断し、直ちにコマンドパケット生成部232よりUAレスポンスを生成し、送信部24より送信する。
〔実施の形態4〕
図6(a)にIrDAのSNRMコマンドに上位層の接続に必要な、上位層からユーザデータを入れる領域を付加したパケットを示す。なお、この付加した領域は図6(a)の位置でなくても構わない。
図6(c)に、IrDAのSNRMコマンド内の自局の最大転送可能速度、最大受信可能データ長などのパラメータのフォーマットを示す。パラメータフォーマットは、パラメータ識別子(PI)、パラメータ長(PL)、パラメータ値(PV)から構成される。パラメータ識別子は、各パラメータごとに固有であり、SNRMコマンドを受信した局は、このパラメータ識別子を判別することにより、どのパラメータが設定されているかを知り、処理することができる。図6(a)に記載の上位層データに対して、パラメータ識別子を新たに設定し、図6(d)に示すように上位層データをパラメータとして設定することで、既存のIrDAでの受信回路においても、容易に上位層データの位置、長さ、データを知り、処理することが可能となる。
本実施の形態に係る送信機のブロック図を図3に示す。これは図1に示す送信機1に、図3に示すように、受信部35とCDR36、パケット識別部333、タイマー37を付加した送信機3である。
CPU31より、接続要求を受け取った制御部331は、上位層からの、上位層接続のためのユーザデータをCPU31より直接、もしくはメモリ32を経由することで受け取り、これをコマンドパケット生成部332に渡し、自局の最大転送可能速度、最大受信可能データ長等のパラメータと共に、SNRMコマンドに入れ、これを送信部34より送信するものである。例えば、この上位層のユーザデータとして、IrDA−OBEX層のCONNECTコマンドが挙げられる。
また、SNRMコマンドを送信後、対向局からUAレスポンスを受信した場合、受信部35により受信した信号は、CDR36にてクロックとデータがリカバリされ、パケット識別部333に送られる。そして、パケット識別部333にて、受信したパケットがUAレスポンスであった場合、制御部331にその旨を通知するとともに、制御部331はUAレスポンス内に上位層のデータが存在する場合は、たとえばメモリ32に書き込み、CPU31に通知する。CPU31では、メモリ32内に書き込まれた上位層データを解析し、OBEXのSUCCESSレスポンスが含まれているかどうかを判別する。OBEXのSUCCESSレスポンスが含まれていない場合は、接続失敗として、データ転送状態に遷移しないような処理を行ってもよい。
また、図6(b)にDISCコマンドに上位層の切断に必要な、上位層からのユーザデータを入れる領域を付加したパケットを示す。この付加した領域も、図6(b)の位置でなくても構わない。図3の送信機3において、制御部331は、上位層からの、上位層切断のためのユーザデータをCPU31より直接、もしくはメモリ32を経由することで受け取り、これをコマンドパケット生成部332に渡し、DISCコマンドにいれ、これを送信部34より送信するものである。例えば、この上位層のユーザデータとして、IrDA−OBEX層のDISCONNECTコマンドが挙げられる。
また、DISCコマンドを送信後、対向局からUAレスポンスを受信した場合、受信部35により受信した信号は、CDR36にてクロックとデータがリカバリされ、パケット識別部333に送られる。そして、パケット識別部333にて、受信したパケットがUAレスポンスであった場合、制御部331にその旨を通知するとともに、制御部331はUAレスポンス内に上位層のデータが存在する場合は、たとえばメモリ32に書き込み、CPU31に通知する。CPU31では、メモリ32内に書き込まれた上位層データを解析し、OBEXのSUCCESSレスポンスが含まれているかどうかを判別する。OBEXのSUCCESSレスポンスが含まれていない場合は、切断失敗として処理を行ってもよい。
図6(b)に記載の上位層データに対して、パラメータ識別子を新たに設定し、図6(d)に示すように上位層データをパラメータとして設定することで、既存のIrDAでの受信回路においても、容易に上位層データの位置、長さ、データを知り、処理することが可能となる。
〔実施の形態5〕
図7(a)および図7(b)にIrDAのUAレスポンスに上位層の接続に必要な、上位層からのユーザデータを入れる領域を付加したパケットをそれぞれ示す。なお、この付加した領域は図7(a)および図7(b)にて示した位置でなくても構わない。図7(a)に記載の上位層データに対して、パラメータ識別子を新たに設定し、図6(d)に示すように上位層データをパラメータとして設定することで、既存のIrDAでの受信回路においても、容易に上位層データの位置、長さ、データを知り、処理することが可能となる。
本実施の形態は図2の受信機2において、送信機1よりSNRMコマンドを受信した場合に、制御部231が、SNRMコマンドを受信したことをCPU21に通知するとともに、SNRMコマンド内に上位層データが存在する場合は、メモリ22に上位層データを書き込む。CPU21は、上位層データを解析し、上位層データ内にOBEXのCONNECTコマンドが含まれているかどうかを判別する。OBEXのCONNECTコマンドが含まれていない場合は、接続要求が不正であるとし、接続応答を返信しないとしてもよい。対向局から接続要求があると判別された場合、CPU21は接続応答を制御部231に通知する。制御部231は、上位層の接続に必要な上位層からのユーザデータを、CPU21より直接もしくはメモリ22を介して受けて取り、これをコマンドパケット生成部232に渡し、自局の最大転送可能速度、最大受信可能データ長などのパラメータと共に、UAレスポンスに入れ、これを送信部24より送信するものである。例えば、この上位層のユーザデータとして、IrDA−OBEX層のSUCCESSレスポンスがあるがこれに限らない。
また、対向局から受信したSNRMコマンドに誤りがある、またはSNRMコマンド内に上位層データがない、または自局が接続できない状態であるなどの理由により、接続できないことを対向局に通知したい場合は、前記UAレスポンスの代わりに図7(c)に示すようなDMレスポンスを送信してもよい。このDMレスポンスには上位層のデータを配置してもよく、その場合の上位層のデータとして、例えばOBEXのInternal Sever Errorレスポンスがあるがこれに限らない。
図6(c)に、IrDAのUAレスポンス内の自局の最大転送可能速度、最大受信可能データ長などのパラメータのフォーマットを示す。パラメータフォーマットは、パラメータ識別子(PI)、パラメータ長(PL)、パラメータ値(PV)から構成される。パラメータ識別子は、各パラメータごとに固有であり、UAレスポンスを受信した局は、このパラメータ識別子を判別することにより、どのパラメータが設定されているかを知り、処理することができる。図7(a)および図7(c)に記載の上位層データに対して、パラメータ識別子を新たに設定し、図6(d)に示すように上位層データをパラメータとして設定することで、既存のIrDAでの受信回路においても、容易に上位層データの位置、長さ、データを知り、処理することが可能となる。
また、DISCコマンドを受信した場合に、制御部231がDISCコマンドを受信したことをCPU21に通知し、上位層の切断に必要な上位層からのユーザデータを、CPU21より直接もしくはメモリ22を介して受けて取り、これをコマンドパケット生成部232に渡し、UAレスポンスにいれ、これを送信部24より送信するものである。例えば、この上位層のユーザデータとして、IrDA−OBEX層のSUCCESSレスポンスがある。
〔実施の形態6〕
実施の形態4および5に記載の送信機3および受信機2において、実施の形態4記載の上位層のユーザデータを含むSNRMコマンドを受信した実施の形態5の受信機2は、SNRMコマンドを受信したことをCPU21に通知するとともに、SNRMコマンドに含まれる上位層のユーザデータを、CPU21に直接もしくは、メモリ22を介し伝える。
CPU21はこの上位層のユーザデータに基づき、上位層の接続を行うとともに、上位層の接続レスポンスとなるユーザデータを、直接もしくはメモリ22を介し、制御部231に渡す。
制御部231は、このユーザデータをパケット生成部232に渡し、パケット生成部はこのユーザデータを、自局の最大転送可能速度、最大受信可能データ長などのパラメータと共に、UAレスポンスにいれ、これを送信部24より送信するものである。
一方、上位層のユーザデータを含むSNRMコマンドを送信した実施の形態4の送信機1は、前記送受信機より返されたUAレスポンスを受信すると、レスポンスを受信したことをCPU31に通知するとともに、UAレスポンスに含まれる上位層のユーザデータをCPU31に直接もしくはメモリ32を介し伝える。CPU31はこの上位層のユーザデータに基づき、上位層の接続を行う。
一方、実施の形態4および5に記載の送信機3および受信機2において、実施の形態4の上位層のデータを含むDISCコマンドを受信した実施の形態5の受信機2は、DISCコマンドを受信したことをCPU21に通知するとともに、DISCコマンドに含まれる上位層のユーザデータをCPU21に直接もしくは、メモリ22を介し伝える。
CPU21はこの上位層のユーザデータに基づき、上位層の切断を行うとともに、上位層の切断のレスポンスとなるユーザデータを、直接もしくはメモリ22を介し、制御部231に渡す。制御部231は、このユーザデータをパケット生成部232に渡し、パケット生成部はこのユーザデータを、UAレスポンスに入れ、これを送信部24より送信するものである。このとき、上位層のデータにOBEXのDISCONNECTコマンドが含まれていないと判断された場合は、不正な切断要求として、応答を返さなくてもよいし、OBEXのInternal Server ErrorレスポンスをDMレスポンス内に配置し、送信してもよい。
また、図7(b)に記載の上位層データに対して、パラメータ識別子を新たに設定し、図6(d)に示すように上位層データをパラメータとして設定することで、既存のIrDAでの受信回路においても、容易に上位層データの位置、長さ、データを知り、処理することが可能となる。
一方、上位層のユーザデータを含むDISCコマンドを送信した実施の形態4の送信機3は、前記受信機2より返されたUAレスポンスを受信すると、レスポンスを受信したことをCPU31に通知するとともに、UAレスポンスに含まれる上位層のユーザデータをCPU31に直接もしくはメモリ32を介し伝える。CPU31はこの上位層のユーザデータに基づき、上位層の切断を行う。このとき、受信したUAレスポンス内にOBEXのSUCCESSレスポンスが含まれていないと判断された場合、不正な切断応答として、処理してもよい。
以上の手順により、実施の形態4と実施の形態5とに記載された送信機3および受信機2においては、1回のパケット交換により、上位層から下位層までの接続もしくは切断を行うことが可能となる。本実施の形態の信号シークエンスを図18に示す。
〔実施の形態7〕
図3に本実施の形態の送信機3を示す。上記送信機3の各構成の内、受信部35、CDR36、パケット識別部333は、実施の形態2に記載の受信機2のものと同様であり、タイマー37は制御部331からの要求に応じて時間を計測するものである。
図8に示すようにCPU31より接続要求があった場合に、制御部331は、コマンドパケット生成部332で、生成する1番目のパケットとして、自局の最大転送可能速度、最大受信可能データ長などのパラメータを保持するSNRMパケットを生成し、これを送信部34より送信する。
また、上記送信と同時にタイマー37をスタートする。一定時間内に受信機2からのUAレスポンスが受信されない場合、引き続きコマンドパケット生成部332で、XIDコマンドを生成し、これを送信する。
また、XIDコマンドの送信と同時にタイマー37をスタートさせ、一定時間内に受信機2よりXIDレスポンスを受信した場合には、コマンドパケット生成部332において、XID−Endコマンドを生成し送信し、CPU31に局発見が完了したことを伝える。引き続き、IrDAに準拠したSNRMコマンドの生成、送信を行い、IrDAの接続プロセスに移行する。この形態を示す信号シークエンスを図9に示す。
また、XIDコマンドの送信と同時にタイマー37をスタートさせ、一定時間内に受信機よりXIDレスポンスを受信しなかった場合には、コマンドパケット生成部332において、XID−Endコマンドを生成し送信した後、再度、自局の最大転送可能速度、最大受信可能データ長などのパラメータを保持するSNRMコマンドの生成、送信を行う。この形態の信号シークエンスを図10に示す。
〔実施の形態8〕
図2に本実施の形態の受信機2を示す。受信機2において、受信部25より受信した第一のコマンドが、パケット識別部233においてXIDコマンドであると識別した場合に、図19に示すコマンド内のDiscovery−flag領域において、XIDスロットが1を意味する値であった場合は、制御部231はXIDコマンドを受信したことを記憶し、ここではXIDレスポンスを送信せずに、次に受信するコマンドを待つ。これは、既存のIrDA規格において、1スロットのXIDは規格に準拠しており、この段階では、相手機器が既存のIrDA機器か本発明の機器かを判別することができないからである。次に受信した局発見コマンドがXID−Endコマンドでなく、XIDコマンドであった場合には、IrDAの接続プロセスに移行する。この形態の信号シークエンスを図11に示す。
また、受信部25より受信した第一のコマンドが、パケット識別部233においてXIDコマンドである場合において、次にSNRMコマンドを受信した場合には、SNRMコマンドを受信したことをCPU21に伝える。既存のIrDA規格においては、XIDコマンドに対するXIDレスポンスを受信するまでは、局発見は完了していないため、XIDコマンドの後にSNRMコマンドを受信した場合、対向局が既存のIrDA機器ではないと判別できる。従って、コマンドパケット生成部232にて、UAレスポンスを生成し、これを送信する。UAレスポンスに含めるユーザデータがある場合には、CPU21より、このデータを制御部231に送り、上記UAレスポンスに含めることも可能である。この形態の信号シークエンスを図12に示す。
また、受信部25より受信した第一のコマンドが、パケット識別部233において、XIDコマンドであると識別された場合で、図19に示すようにコマンド内のDiscovery−flag領域において、XIDスロットが1でない、6、8、16のいずれかを意味する値であった場合は、IrDAで予め定められたルールに従ってコマンドパケット生成部232にて、XIDレスポンスを生成し、これを送信する。
〔実施の形態9〕
図1、図3に本実施の形態の送信機1、3を、図2に本実施の形態の受信機2を示す。ただし、受信機2はコマンドパケット生成部232および送信部24を保持しなくてもよい。
また、図13にIrDAのSNRMコマンドに通信方向が片方向か双方向かを示すフラグ領域を付加したパケットを示す。なお、この付加した領域は図13の位置でなくても構わず、例えば、Negotiation Parametersの中でもよい。本実施の形態では、自局の最大転送可能速度、最大受信可能データ長等のパラメータ等の通信に必要となる設定値と共に通信方向を示すデータをSNRMコマンドで送信する。
図17に示すように、通信方向を示すフラグを片方向に設定したSNRMコマンドを送信した送信機1、3は、受信機2からのUAレスポンスを待つことなく、Iフレームまたは、UIフレームを用いてデータ転送を開始する。なお、前記通信方向を示すフラグをSNRMコマンド内に配置する際に、図6(d)に示すように、パラメータ識別子(PI)、パラメータ長(PL)、パラメータ値(PV)のフォーマットとし、パラメータ識別子を予め対向局と定めることにより、SNRMコマンドを受信した局は、このパラメータ識別子を判別することにより、対向局が片方向通信、双方向通信のどちらかを要求しているかを知ることが可能となり、所望の処理を実行することができる。
一方、上記SNRMコマンドを受信した受信機2は、UAレスポンスを返すことなく、送信機のIフレーム、またはUIフレームを用いたデータ転送を待つ。受信したSNRMコマンド内に前述の上位層データが含まれていない場合は、不正な接続要求として、データ転送待機状態へと遷移しないとしてもよい。また、前記上位層データにOBEXのCONNECTコマンドが含まれていない場合に、不正な接続要求として、データ転送待機状態へと遷移しないとしてもよい。
以上述べた手法により実現する片方向通信は、データ転送に要する時間が短く、エラーがあったことをユーザが容易に認識でき、ユーザ自身が転送の再実行を行うことを許容するような場面において利用可能である。たとえば、情報端末から映像表示装置に画像データを転送し閲覧する、というような場合である。このとき、ユーザが送信失敗を認識する例として、ユーザが送信した画像データが受信側映像表示装置に表示されない、異なる画像が表示されるといった場合がある。
なお、図1の送信機1は片方向通信にのみ対応可能であるが、図3の送信機は片方向通信、双方向通信共に対応可能となる。
〔実施の形態10〕
また、図2に記載の受信機2において、本発明のいずれかの方法により、対向局との接続が確立された状態において、CPU21で管理されている上位層より切断要求が発生した場合、メモリ22を介して、切断要求データが制御部231に渡される。制御部231は、この切断要求データをパケット生成部232に渡し、パケット生成部232は、このユーザデータをDMレスポンスに入れ、これを送信部24より送信するものである。この場合の切断要求とは、例えば、ユーザが通信途中での切断を選択した場合などがあるが、これに限らない。この切断要求データとして、たとえばOBEXのInternal Server Errorレスポンスを用いてもよいが、これに限らない。
また、図7(c)に記載の上位層データに対して、パラメータ識別子を新たに設定し、図6(d)に示すように上位層データをパラメータとして設定することで、既存のIrDAでの受信回路においても、容易に上位層データの位置、長さ、データを知り、処理することが可能となる。
〔実施の形態11〕
本実施の形態では、図20を参照しながら、上記の各実施の形態で説明した通信方法を携帯電話に適用した場合について説明する。なお、本実施の形態では、送信機と受信機に携帯電話を用いているが、送信機もしくは受信機のどちらか一方が携帯電話であれば良く、本発明のいずれかの方式により赤外線等によりデータの送信もしくは受信が可能であるならば、対向機器が携帯電話でなくても構わない。
図20では、赤外線を用いて、携帯電話A内のデータを携帯電話Bに送信している。携帯電話Bでは、携帯電話Aから送信されたデータを受信すると、携帯電話B内のメモリもしくは接続された外部メモリ内に受信データを保存する。前述のデータとは、テキストデータ、画像データ、音声データ、電話帳データ、システム情報などであり、特定のフォーマットに限定されるものではない。また、携帯電話A内のデータとは、携帯電話Aの内部メモリ内のデータ、携帯電話に接続されている外部メモリ(SDカードなどの不揮発性メモリ)内のデータのどちらでもよい。
前述の接続方法により、上位層のデータをSNRMコマンドおよびUAレスポンス内に配置し、送受信することにより、上位層のデータを1つのパケットで対向局に送信することが可能となる。それゆえ、従来のIrDAでの複数のパケットによる接続方法と比較して、より短い時間での接続を完了することが可能となる。こうすることにより、従来のIrDAでの通信と比べて、対向局に機器を向けていなければならない時間の短縮が可能となることから、ユーザの利便性の向上、またエラー発生の確率を減らすことが期待される。
〔実施の形態12〕
本実施の形態では、図21を参照しながら、上記の各実施の形態で説明した通信方法を携帯電話および表示装置に適用した場合について説明する。なお、本実施の形態では、送信機として携帯電話を用いているが、本発明のいずれかの方式により赤外線等によりデータの送信が可能であるならば、送信機器が携帯電話でなくても構わない。
図21では、赤外線を用いて、携帯電話A内のデータを表示装置B(TVやモニタなど)に送信している。表示装置Bでは、携帯電話Aから送信されたデータに対して適切な処理を行い、例えば、画像データであった場合は、必要ならば圧縮されたデータを解凍するなどして、表示を行うが、これに限らない。また、前述のデータとは、テキストデータ、画像データ、音声データ、電話帳データ、システム情報などであり、特定のフォーマットに限定されるものではない。また、携帯電話A内のデータとは、携帯電話Aの内部メモリ内のデータ、携帯電話Aに接続されている外部メモリ(SDカードなどの不揮発性メモリ)内のデータのどちらでもよい。
前述の接続方法により、上位層のデータをSNRMコマンドおよびUAレスポンス内に配置し、送受信することにより、上位層のデータを1つのパケットで対向局に送信することが可能となる。それゆえ、従来のIrDAでの複数のパケットによる接続方法と比較して、より短い時間での接続を完了することが可能となる。こうすることにより、従来のIrDAでの通信と比べて、対向局に機器を向けていなければならない時間の短縮が可能となることから、ユーザの利便性の向上、またエラー発生の確率を減らすことが期待される。
〔実施の形態13〕
本実施の形態では、図22を参照しながら、上記の各実施の形態で説明した通信方法を携帯電話および印刷装置に適用した場合について説明する。なお、本実施の形態では、送信機として携帯電話を用いているが、本発明のいずれかの方式により赤外線等によりデータの送信が可能であるならば、送信機器が携帯電話でなくても構わない。
図22では、赤外線を用いて、携帯電話A内のデータを印刷装置Bに送信している。印刷装置Bでは、携帯電話Aから送信されたデータに対して適切な処理を行い、例えば、画像データであった場合は、必要ならば圧縮されたデータを解凍するなどして、印刷を行うが、これに限らない。また、前述のデータとは、テキストデータ、画像データ、電話帳データ、システム情報などであり、特定のフォーマットに限定されるものではない。また、携帯電話A内のデータとは、携帯電話Aの内部メモリ内のデータ、携帯電話Aに接続されている外部メモリ(SDカードなどの不揮発性メモリ)内のデータのどちらでもよい。
前述の接続方法により、上位層のデータをSNRMコマンドおよびUAレスポンス内に配置し、送受信することにより、上位層のデータを1つのパケットで対向局に送信することが可能となる。それゆえ、従来のIrDAでの複数のパケットによる接続方法と比較して、より短い時間での接続を完了することが可能となる。こうすることにより、従来のIrDAでの通信と比べて、対向局に機器を向けていなければならない時間の短縮が可能となることから、ユーザの利便性の向上、またエラー発生の確率を減らすことが期待される。
〔実施の形態14〕
本実施の形態では、図23を参照しながら、上記の各実施の形態で説明した通信方法を携帯電話および記録装置に適用した場合について説明する。なお、本実施の形態では、送信機として携帯電話を用いているが、本発明のいずれかの方式により赤外線等によりデータの送信が可能であるならば、送信機器が携帯電話でなくても構わない。
図23では、赤外線を用いて、携帯電話A内のデータを記録装置Bに送信している。記録装置Bでは、携帯電話Aから送信されたデータに対して適切な処理を行い、例えば、画像データであった場合は、記録装置B内のメモリまたは記録装置Bに接続された外部メモリに記録を行う。記録装置B内のメモリとは、SDRAMなどの揮発性メモリでも、フラッシュメモリなどの不揮発性メモリ、記録可能なDVD、HDドライブなど、一時的または半永久的に記録できる媒体であれば何でもよい。また、前述のデータとは、テキストデータ、画像データ、音声データ、電話帳データ、システム情報などであり、特定のフォーマットに限定されるものではない。また、携帯電話A内のデータとは、携帯電話Aの内部メモリ内のデータ、携帯電話Aに接続されている外部メモリ(SDカードなどの不揮発性メモリ)内のデータのどちらでもよい。
前述の接続方法により、上位層のデータをSNRMコマンドおよびUAレスポンス内に配置し、送受信することにより、上位層のデータを1つのパケットで対向局に送信することが可能となる。それゆえ、従来のIrDAでの複数のパケットによる接続方法と比較して、より短い時間での接続を完了することが可能となる。こうすることにより、従来のIrDAでの通信と比べて、対向局に機器を向けていなければならない時間の短縮が可能となることから、ユーザの利便性の向上、またエラー発生の確率を減らすことが期待される。
〔実施の形態15〕
本実施の形態では、図24から図27を参照しながら、上記の各実施の形態で説明した通信方法を実現するLAP層の機能を詳細に説明する。
(1)IrSimple双方向+IrDAの場合
図24は、IrSimple(双方向通信)およびIrDAの機能を共に備えた通信機のLAP層100Aの機能ブロック図である。
LAP層100Aは、プロトコル制御部110A、タイマー120、送信要求コマンド解析部130、送信用上位層データ格納部140、送信フレーム生成部150、受信フレーム解析部160、受信用上位層データ格納部170、受信コマンド通知生成部180を備えて構成されている。
プロトコル制御部110Aは、LAP層のプロトコルを制御する。そのために、プロトコル制御部110Aは、IrSimple−LAP制御部(第1のプロトコル制御部)111、IrDA−LAP制御部(第2のプロトコル制御部)112、プロトコル切り替え部113を有する。
IrSimple−LAP制御部111は、IrSimple−LAPプロトコルによる通信を行う。そのために、IrSimple−LAP制御部111は、接続制御部111a、データ転送制御部111b、切断制御部111cを備える。接続制御部111aは、IrSimple−LAPプロトコルによる接続処理を行う。データ転送制御部111bは、IrSimple−LAPプロトコルによるデータ転送を行う。切断制御部111cは、IrSimple−LAPプロトコルによる切断処理を行う。そして、IrSimple−LAP制御部111は、接続時には、接続制御部111aにより接続処理を行い、データ転送時には、データ転送制御部111bによりデータ転送を行い、切断時には、切断制御部111cにより切断処理を行う。
IrDA−LAP制御部112は、IrDA−LAPプロトコルによる通信を行う。そのために、IrDA−LAP制御部112は、接続制御部112a、データ転送制御部112b、切断制御部112cを備える。接続制御部112aは、IrDA−LAPプロトコルによる接続処理を行う。データ転送制御部112bは、IrDA−LAPプロトコルによるデータ転送を行う。切断制御部112cは、IrDA−LAPプロトコルによる切断処理を行う。そして、IrDA−LAP制御部112は、接続時には、接続制御部112aにより接続処理を行い、データ転送時には、データ転送制御部112bによりデータ転送を行い、切断時には、切断制御部112cにより切断処理を行う。
プロトコル切り替え部113は、IrSimple−LAP制御部111とIrDA−LAP制御部112を切り替える。具体的には、プロトコル切り替え部113は、送信機(一次局)の場合、IrSimple−LAP制御部111を始めに動作させ、接続要求コマンドであるSNRMコマンド送信後に続いて送信される、局発見コマンドを送信後にXIDレスポンスが返ってきた場合は、IrDA−LAP制御部112に切り替える。また、プロトコル切り替え部113は、受信器(二次局)の場合、IrSimple−LAP制御部111を始めに動作させ、局発見コマンドであるXIDコマンド(1スロット)を連続受信したり、XIDコマンド(1スロット以外)を受信した場合は、XIDレスポンスを送信した後、XID−Endを受信後、IrDA−LAP制御部112に切り替える。また、一次局、二次局ともに、通信が切断されると再び、プロトコル切り替え部113は、IrSimple−LAP制御部111に切り替え、IrSimple−LAPプロトコルによる接続を試みる。
タイマー120は、プロトコル制御部110Aにより、制御されるタイマーである。タイマー120は、例えば、プロトコル制御部110Aがタイムアウトを判定する際に利用される。
送信要求コマンド解析部130は、上位層(LMP層)からの送信要求コマンドを解析する。ここでいう送信要求コマンドとは、接続要求、データ転送要求、切断要求である。解析結果は、プロトコル制御部130に通知される。
送信用上位層データ格納部140は、上位層(LMP層)からの送信データを格納する。格納されたデータは、送信フレーム生成部150に渡され、送信フレーム内に配置される。
送信フレーム生成部150は、送信用上位層データ格納部140から取得したデータに基づいて、下位層(PHY層)へ渡す送信フレームを生成する。ここでいう送信フレームとは、一次局の場合、SNRMコマンド(接続要求)、UIコマンド(データ転送要求)、DISCコマンド(切断要求)であり、二次局の場合、UAレスポンス(接続応答、切断応答)、UIレスポンス(データ転送応答)である。
受信フレーム解析部160は、下位層(PHY層)からの受信フレームを解析し、解析結果をプロトコル制御部110Aに通知する。また、受信フレーム解析部160は、解析時に抽出された上位層データを受信用上位層データ格納部170に格納する。
受信用上位層データ格納部170は、受信フレーム解析部160にて、解析、抽出された上位層データを格納する。格納されたデータは、上位層(LMP層)へと渡される。
受信コマンド通知生成部180は、プロトコル制御部110Aからの受信コマンド通知生成要求により、受信コマンドを生成し、上位層(LMP層)へと通知する。ここでいう受信コマンドとは、接続要求受信コマンド、データ転送要求受信コマンド、切断要求受信コマンドである。
(2)IrSimple双方向(片方向送信、片方向受信機能も含む)のみの場合
図25は、IrSimple(片方向送信、片方向受信機能も含む)の機能のみを備えた通信機のLAP層100Bの機能ブロック図である。
LAP層100Bは、プロトコル制御部110B、タイマー120、送信要求コマンド解析部130、送信用上位層データ格納部140、送信フレーム生成部150、受信フレーム解析部160、受信用上位層データ格納部170、受信コマンド通知生成部180を備えて構成されている。すなわち、LAP層100Bは、LAP層100Aと比べて、プロトコル制御部110Aの代わりに、プロトコル制御部110Bが設けられている点が異なる。
プロトコル制御部110Bは、LAP層のプロトコルを制御する。そのために、プロトコル制御部110Bは、IrSimple−LAP制御部111を有する。すなわち、プロトコル制御部110Bは、プロトコル制御部110Aで設けられていたIrDA−LAP制御部112、プロトコル切り替え部113が省略されている。
その他の点は、LAP層100Bは、LAP層100Aと同じであるため、説明を割愛する。
(3)IrSimple片方向送信のみの場合
図26は、IrSimple片方向送信の機能のみを備えた通信機のLAP層100Cの機能ブロック図である。
LAP層100Cは、プロトコル制御部110C、タイマー120、送信要求コマンド解析部130、送信用上位層データ格納部140、送信フレーム生成部150を備えて構成されている。すなわち、LAP層100Cは、LAP層100Aと比べて、プロトコル制御部110Aの代わりにプロトコル制御部110Cが設けられるとともに、受信側の機能である受信フレーム解析部160、受信用上位層データ格納部170、受信コマンド通知生成部180が省略されている点が異なる。
プロトコル制御部110Cは、送信機におけるLAP層のプロトコルを制御する。そのために、プロトコル制御部110Cは、IrSimple−LAP制御部111Cを有する。すなわち、プロトコル制御部110Cは、プロトコル制御部110Aで設けられていたIrDA−LAP制御部112、プロトコル切り替え部113が省略されている。なお、IrSimple−LAP制御部111Cは、IrSimpleの送信機能のみを備える。すなわち、IrSimple−LAP制御部111Cが備える接続制御部111Ca、データ転送制御部111Cb、切断制御部111Ccは、それぞれ送信機における接続処理、データ転送処理、切断処理を行う。
その他の点は、LAP層100Cは、LAP層100Aと同じであるため、説明を割愛する。
(4)IrSimple片方向受信のみの場合
図27は、IrSimple片方向受信の機能のみを備えた通信機のLAP層100Dの機能ブロック図である。
LAP層100Dは、プロトコル制御部110D、タイマー120、受信フレーム解析部160、受信用上位層データ格納部170、受信コマンド通知生成部180を備えて構成されている。すなわち、LAP層100Dは、LAP層100Aと比べて、プロトコル制御部110Aの代わりにプロトコル制御部110Dが設けられるとともに、送信側の機能である送信要求コマンド解析部130、送信用上位層データ格納部140、送信フレーム生成部150が省略されている点が異なる。
プロトコル制御部110Dは、受信機におけるLAP層のプロトコルを制御する。そのために、プロトコル制御部110Dは、IrSimple−LAP制御部111Dを有する。すなわち、プロトコル制御部110Dは、プロトコル制御部110Aで設けられていたIrDA−LAP制御部112、プロトコル切り替え部113が省略されている。なお、IrSimple−LAP制御部111Dは、IrSimpleの受信機能のみを備える。すなわち、IrSimple−LAP制御部111Dが備える接続制御部111Da、データ転送制御部111Db、切断制御部111Dcは、それぞれ受信機における接続処理、データ転送処理、切断処理を行う。
その他の点は、LAP層100Dは、LAP層100Aと同じであるため、説明を割愛する。
〔実施の形態16〕
本実施の形態では、図28から図33を参照しながら、送信機のプロトコルと受信機のプロトコルとの組合せについて説明する。
図28は、送信機および受信機が備えるプロトコルと、接続後のプロトコルとの関係を示すテーブルである。図28に示すように、送信機および受信機がそれぞれIrSimpleの双方向/片方向、IrDAのいずれに対応しているのかに応じて、接続後のプロトコルが異なる。
(IrSimple−LAPを用いた携帯電話、表示装置、記録装置、印刷装置)
携帯電話などの送信機から、表示装置、記録装置、印刷装置などの受信機に対して、データ送信を行う場合、携帯電話のディスプレイには、赤外線通信を行うかどうかの選択画面だけが存在し、プロトコルの細かい選択ができない可能性がある。また、表示装置、記録装置、印刷装置などの受信機においても、一般的に、赤外線通信をON、OFFする程度のインタフェースしか用意されていない。
このような状態において、送信機と受信機のサポートするプロトコルが異なる場合に、本発明の送信機および受信機は、通信可能なプロトコルの組合せを選択できる場合には、上述のようにプロトコルを切り替えたり、通信可能なプロトコルの組合せが選択できない場合には、例えば、ユーザに対して通信ができない原因を通知する。この接続できない理由とは、例えば片方向のみサポートの機器に対する双方向通信の接続要求や、IrDA非対応の機器に対するIrDAでの接続要求である。
ここで、通信ができない原因の通知は、例えば、表示部を持つ携帯電話、TVなどの表示装置、印刷装置、記録装置などにおいて、接続が完了した場合は、接続したプロトコルを表示し、接続が完了しない場合は、接続が完了しない旨を表示するとともに、接続できない理由も合わせて表示することによって行うことができる。そして、通信ができない原因を通知することで、ユーザが適切な対応(例えば、未サポートの通信プロトコルをサポートするために、ファームウェアをアップデートするなど)を行うことができる。
以下にいくつかの例を示す。なお、以下の説明においては、受信機として、TVなどの表示装置を例にあげているが、テキスト表示可能な表示部を持つ機器であれば表示装置に限定されるものではなく、例えば、印刷装置や記録装置であってもよい。また、送信機として、携帯電話を例にあげているが、テキスト表示可能な表示部をもつ機器であれば携帯電話に限定されるものではなく、例えば、TVなどの表示装置、印刷装置、記録装置であってもよい。
(1)IrSimple双方向対応機器同士の接続
図29は、送信機である携帯電話と受信機であるTVなどの表示装置がともにIrSimple双方向対応である場合における、接続手順と各機器の表示例を示す説明図である。
送信機である携帯電話では、IrSimpleプロトコルにおけるSNRM送信後に、直ちにUAを受信しているため、受信機とIrSimpleプロトコルでの接続が完了したことを表示部に表示し、ユーザに通知する。
一方、受信機であるTVなどの表示装置では、XIDコマンドより先にSNRMを受信したことで、送信機がIrSimple対応であることを認識し、UAを返信することで、IrSimpleでの接続を完了する。この時点で、IrSimpleでの接続が完了したことを画面上に表示し、ユーザに通知する。
上記の動作により、ユーザが容易に接続後のプロトコルを認識することが可能となる。
なお、接続完了後に接続プロトコルを表示する代わりに、例えば通信が終了した後に、直前の通信の通信ログによって通信プロトコルを通知してもよい。また、自動的に通信プロトコルを表示する代わりに、例えばユーザが選択したメニューの表示結果として、通信プロトコルを表示してもよい。
(2)IrSimple片方向対応機器同士の接続
図30は、送信機である携帯電話と受信機であるTVなどの表示装置がともにIrSimple片方向対応である場合における、接続手順と各機器における表示例を示す説明図である。
送信機である携帯電話では、IrSimpleプロトコルにおけるSNRM送信後に接続が完了したことを表示部に表示し、ユーザに通知する。
一方、受信機であるTVなどの表示装置では、XIDコマンドより先にSNRMを受信したことで、送信機がIrSimple対応であることを認識し、IrSimpleでの接続を完了する。この時点で、IrSimpleでの接続が完了したことを画面上に表示し、ユーザに通知する。
上記の動作により、ユーザが容易に接続後のプロトコルを認識することが可能となる。
なお、接続完了後に接続プロトコルを表示する代わりに、例えば通信が終了した後に、直前の通信の通信ログによって通信プロトコルを通知してもよい。また、自動的に通信プロトコルを表示する代わりに、例えばユーザが選択したメニューの表示結果として、通信プロトコルを表示してもよい。
(3)IrSimple双方向対応機器とIrSimple片方向対応機器との接続
図31は、送信機である携帯電話と受信機であるTVなどの表示装置の接続であって、IrSimple双方向での通信を行う携帯電話とIrSimple片方向での通信が可能な表示装置の場合における、接続手順と各機器の表示例を示す説明図である。
送信機である携帯電話では、IrSimpleプロトコルにおけるSNRM送信後(片方向、双方向選択フラグが双方向)に予め定められた時間、受信機からのUAレスポンスがないため、接続失敗とし、その旨を表示部に表示し、ユーザに通知する。
一方、受信機であるTVなどの表示装置では、XIDコマンドより先にSNRMを受信したことで、送信機がIrSimple対応であることを認識するが、SNRM内の片方向双方向選択フラグが双方向を示しており、自機器が片方向のみをサポートしていることから、接続失敗とし、その旨を画面上に表示し、ユーザに通知する。この際、接続失敗の原因も合わせて表示することで、ユーザが送信機の通信モードを片方向モードに変更したり、表示装置のサポートプロトコルとして、双方向プロトコルを新たに追加するためにファームウェアをアップデートしたりするなどの対応をとることができる。
なお、自動的に通信プロトコルを表示する代わりに、例えばユーザが選択したメニューの表示結果として、通信プロトコルを表示してもよい。
(4)IrDA対応機器とIrSimple+IrDA対応機器との接続
図32は、送信機である携帯電話と受信機であるTVなどの表示装置の接続であって、従来のIrDAでの通信を行う携帯電話とIrSimple双方向とIrDAの両方のプロトコルで通信が可能な表示装置の場合における、接続手順と各機器の表示例を示す説明図である。
送信機である携帯電話では、IrDAプロトコルにおけるXIDコマンド送信後、受信機からのXIDレスポンス受信により、XID−Endコマンド送信後、従来のIrDAフォーマットのSNRMを送信し、UAレスポンスを受信した時点で、IrDAでの接続完了とし、その旨を表示部に表示し、ユーザに通知する。
一方、受信機であるTVなどの表示装置では、XIDコマンド、XIDレスポンス、XID−Endの送受信で、IrDAでの局発見が終了し、IrDAフォーマットのSNRMコマンドを受信後、UAレスポンスを返信した時点で、IrDAでの接続が完了したことになり、その旨を画面上に表示し、ユーザに通知する。この際、IrDAで接続されたが、送信機がIrSimpleをサポートすれば、IrSimpleでの接続も可能であることを表示することにより、ユーザが送信機のサポートプロトコルとして、IrSimple双方向プロトコルを新たに追加するためにファームウェアをアップデートしたりするなどの対応をとることができる。
なお、接続完了後に接続プロトコルを表示する代わりに、例えば通信が終了した後に、直前の通信の通信ログによって通信プロトコルを表示してもよい。また、自動的に通信プロトコルを表示する代わりに、例えばユーザが選択したメニューの表示結果として、通信プロトコルを表示してもよい。
(5)IrDA対応機器とIrSimple対応機器との接続
図33は、送信機である携帯電話と受信機であるTVなどの表示装置の接続であって、従来のIrDAでの通信を行う携帯電話とIrSimple片方向での通信が可能な表示装置の場合における、接続手順と各機器の表示例を示す説明図である。
送信機である携帯電話では、XIDコマンドおよびXID−Endコマンドを送信するが、受信機からのXIDレスポンスを受信できないため、一定時間経過後、接続失敗とし、その旨を表示部に表示し、ユーザに通知する。
一方、受信機であるTVなどの表示装置では、XIDコマンドより先にSNRMを受信したことで、送信機がIrSimple対応であることを認識するが、受信機がIrDAプロトコルをサポートしていないため、接続失敗とし、その旨を画面上に表示し、ユーザに通知する。この際、接続失敗の原因も合わせて表示することで、送信機のサポートプロトコルとして、IrSimple双方向プロトコルを新たに追加するためにファームウェアをアップデートしたりするなどの対応をとることができる。
なお、自動的に通信プロトコルを表示する代わりに、例えばユーザが選択したメニューの表示結果として、通信プロトコルを表示してもよい。
〔実施の形態17〕
本発明の他の実施の形態について図34から図56に基づいて説明すれば、以下のとおりである。なお、本実施の形態で説明する通信プロトコルは、実施の形態1〜16に適用されるものである。よって、実施の形態1〜16において定義した用語については、特に断らない限り本実施の形態においてもその定義に則って用いるものとする。
(1)通信層
図34は、OSI7階層モデルと、IrDAの階層および本発明に係る通信システムの階層の対応関係を示す模式図である。
本実施の形態に係る通信システムの各通信層も、上記OSI7層モデルの対応する階層と同等の機能を有する。ただし、図34に示すように、上記通信システムは、セッション層とプレゼンテーション層とを1つにした、6階層の構造となっている。
本実施の形態では、説明の便宜上、本発明の一適用例であるIrSimpleに基づいて説明する。しかし、本発明はIrSimpleに限定されるものではない。なお、IrSimpleとは、従来のIrDAの一部機能を改良したものである。
本実施の形態では、IrSimpleに則って、データリンク層、ネットワーク層、トランスポート層、セッション層+プレゼンテーション層を、それぞれ、LAP、LAMP、SMP、OBEXと表記することがある。また、通信層を送信機、受信機で区別する場合に、送信機(一次局)に“P”、受信機(二次局)に“S”と付記する。例えば、“LAP(P)”とは、送信機のデータリンク層を意味する。
(2)送信機−受信機間のシーケンス
(2−1)接続シーケンス
〔A〕レスポンス有り
図35(a)は、本実施の形態(レスポンス有り)の接続シーケンスを示すシーケンス図である。また、図35(c)は、本実施の形態(レスポンス有り)の接続シーケンスの際の通信データのデータ構造を示す説明図である。
本実施の形態(レスポンス有り)では、SNRMのDestination Device Addressにグローバルアドレスを使用することにより、サーチと同様の機能をSNRMコマンドに持たせることができる(図35(c)のSNRM command)。
また、本実施の形態(レスポンス有り)では、データリンク層の接続パケットであるSNRMコマンドおよびUAレスポンスの中に、ネットワーク層、トランスポート層、セション層、プレゼンテーション層等の上位層の接続に必要なパラメータおよびコマンドを挿入する。これにより、従来のIrDAでは必要であった上位層それぞれを接続するための接続パケットを1つのパケットに凝縮することができる。
それゆえ、従来、複数のパケットが必要であった、サーチと接続シーケンスを1つのパケット対で行うことができる。
〔B〕レスポンス無し
図35(b)は、本実施の形態(レスポンス無し)の接続シーケンスを示すシーケンス図である。また、図35(c)は、本実施の形態(レスポンス無し)の接続シーケンスの際の通信データのデータ構造を示す説明図である。なお、本実施の形態(レスポンス無し)では、UAレスポンス(図35(c)のUA response for SNRM)は不要である。
ユーザまたはアプリケーションおよびデータ種類によっては、受信機からのレスポンスを省略した通信方式を選択できる。この場合、図35(b)に示すように、SNRMコマンドのみでサーチおよび接続が終了したものとできる。
このように、本実施の形態の接続シーケンスは、複数の通信層の接続リクエストをまとめることにより、接続に要する時間を短縮するものであるため、通信路が切断した場合でも再接続が容易である。よって、通信路が切断しやすい、例えば赤外線による無線通信に特に適している。ただし、IEEE802.11無線、Bluetoothを含む他の無線通信、および、有線通信においても効果的である。
また、本実施の形態では、すべての通信層の接続を1回の通信で接続する例について説明するが、本発明はこれに限定されない。例えば、1つの通信層を接続した後、残りの複数の通信層を接続するようにしてもよい。また、1つの通信層の接続が複数回の通信によって行われてもよい。例えば、ネットワーク層の接続が2回の通信を要する場合、データリンク層の接続とネットワーク層の1回目の接続とを1つの接続リクエストにまとめ、ネットワーク層の2回目の接続とトランスポート層の接続とを1つの接続リクエストにまとめてもよい。
(2−2)データ交換シーケンス
〔A〕レスポンス有り
図36(a)(b)は、本実施の形態(レスポンス有り)のデータ交換シーケンスを示すシーケンス図である。また、図36(a)は、本実施の形態(レスポンス有り)のデータ交換シーケンスの際の通信データのデータ構造を示す説明図である。
本実施の形態(レスポンス有り)では、1つのデータ間毎の下位層及び上位層のレスポンスを極力減らし、多くのデータを送信した後にエラーがあったか無かったかを返信する。
送信機は、データ通信時に、シーケンシャルなパケット番号および受信データに問題がなかったかを問うためのフラグと、上記データをパケットのサイズに合わせて分割した分割データで構築されたパケットを用いる。
図36(a)に示すように、送信機は、所定数のパケット数を送信した後に上記フラグをオンにしたパケットの送信を行う。これに対し、受信機は、以前のデータの始めから、もしくは上記フラグがオンであったパケットを受信し、返信を行ってから、エラーを検出しなかった場合は、正常に受信した旨を送信機に通知する。また、受信機は、以前のデータの始めから、もしくは上記フラグがオンであったパケットを受信し、返信を行ってから、エラーを検出した場合は、受信することができなかったパケット以降の上記分割データ部分を無視し、上記フラグのみを確認し、上記フラグがオンであった場合に、エラーにより受信できなかったパケット番号を送信機へ通知する。
さらに、送信機は、正常に受信した旨を受信機から受けた場合、次のパケットから送信を行う。また、送信機は、エラーがあったという通知を受けた場合、受信できなかったパケット番号から、上記フラグをオンにしたパケットまでを再送信する。
これにより、パケット間を詰めることができ、効率のよい通信が可能となる。
図36(a)に示すように、本実施の形態(レスポンス有り)では、UIフレーム(図37(b))を使用する。このため、データリンク層(LAP層)ではパケットの抜けが認識できず、トランスポート層で検出する。
UIフレームのトランスポート層のデータ部分にシーケンシャルナンバーとデータ確認用フラグ、データの最後のパケットかどうか、受信したデータが正常であったかを示すフラグを設け、それらのフラグによってデータの送信を行う。
〔B〕レスポンス無し
図38(a)(b)は、本実施の形態(レスポンス無し)のデータ交換シーケンスを示すシーケンス図である。また、図38(b)は、本実施の形態(レスポンス無し)のデータ交換シーケンスの際の通信データのデータ構造を示す説明図である。
本実施の形態(レスポンス無し)では、受信機のレスポンスを必要としない場合、データの完全性のみを確認する。そのため、送信機はパケットにシーケンスナンバーを振り、全てのデータを連続で送信する。
そして、受信機は、エラーがあったかどうかを確認するのみであり、正常に受信した場合には全てのデータを受けた後、受信機内で正常受信であることを認識し、次の動作を行う。この場合の次の動作とは、例えば受信したデータを表示したり、印刷したり、保存したりすることである。一方、エラーを検出した場合、受信機内で正常受信できなかったことを認識し、次の動作を行う。この場合の次の動作とは、失敗したことをユーザーに知らせるためのインジケートや、次の受信待ち状態になることである。
なお、本実施の形態(レスポンス無し)でも、図38(b)に示すUIフレーム(図37(b))を使用する。
(2−3)切断シーケンス
〔A〕レスポンス有り
図39(a)は、本実施の形態(レスポンス有り)の切断シーケンスを示すシーケンス図である。また、図39(c)は、本実施の形態(レスポンス有り)の切断シーケンスの際の通信データのデータ構造を示す説明図である。
図39(c)に示すように、本実施の形態(レスポンス有り)では、ネットワーク層、トランスポート層、セション層、プレゼンテーション層等の上位層の切断に必要なパラメータおよびコマンドを、DISCコマンドおよびUAレスポンスの中に挿入した。
これにより、従来、複数のパケットが必要であった、切断シーケンスを1つのパケット対で行うことができる。
〔B〕レスポンス無し
図39(b)は、本実施の形態(レスポンス無し)の切断シーケンスを示すシーケンス図である。また、図39(c)は、本実施の形態(レスポンス有り)の切断シーケンスの際の通信データのデータ構造を示す説明図である。なお、本実施の形態(レスポンス無し)では、UAレスポンス(図39(c)のUA response)は不要である。
図39(b)に示すように、本実施の形態(レスポンス無し)では、受信機のレスポンスを必要としないとして接続した場合、DISCコマンドのみでサーチおよび切断が終了したものとできる。
(3)送信機、受信機内のシーケンス
図40〜図56では、説明の便宜上、データリンク層をLAP、ネットワーク層をLAMP、トランスポート層をTTPまたはSMP、セッション層およびプレゼンテーション層をOBEXと表記する。また、通信層を送信機と受信機とで区別するために、送信機に“P”、受信機に“S”と付記する。例えば、“LAP(P)”とは、送信機のデータリンク層を意味する。
(3−1)接続シーケンス
〔A〕レスポンス有り
図40は、本実施の形態(レスポンス有り)の接続シーケンスを示すシーケンス図である。また、図41(a)、図41(b)は、本実施の形態(レスポンス有り)の接続シーケンスの際の通信データのデータ構造を示す説明図である。
図40に示すように、本実施の形態(レスポンス有り)では、送信機、受信機とも、接続準備を行う。その後、送信機は、上位層のリクエストをそのまま下位層に渡していき、1つのパケット(SNRM)として送信する。一方、受信機は、SNRMパケットを受けて、そのまま上位層へ接続できた旨の通知を行った後、OBEX(S)のレスポンスをそのまま下位層に渡していき、1つのパケット(UA)として送信する。送信機は、UAを受けたことで接続完了とし、上位層に通知(Connect.confirm)を上げていく。
このときの、送信機、受信機内のシーケンスは以下のとおりである。
まず、送信機の各通信層について説明する。
OBEX(P)は、アプリケーションからの接続要求が来た場合に、速やかに下位層(SMP(P))に対して接続要求コマンドをデータに入れて接続要求関数(Primitive)を発生する。また、OBEX(P)は、SMP(P)から接続確認関数を受けた場合に、そのデータの中からOBEX接続のレスポンスを確認し、問題ない(Success)というレスポンスであれば、接続完了とする。
SMP(P)は、OBEX(P)からの接続要求関数を受けて、速やかにOBEX(P)の接続要求関数のデータに、受信機のSMP(S)との通信に必要なパラメータを付加して、下位層(LMP(P))に対して接続要求関数を発生する。また、SMP(P)は、LMP(P)から接続確認関数を受けた場合、関数のデータから受信機のSMP(S)が生成したパラメータを抜き取り、値を確認して、SMP(S)とのネゴシエーションを終了する。また、SMP(P)は、接続確認関数のデータからSMP(S)のパラメータを取り除いたデータをOBEX(P)に対して接続確認関数として送信する。
LMP(P)は、SMP(P)からの接続要求関数を受けて、速やかにSMP(P)の接続要求関数のデータに、受信機のLMP(S)との通信に必要なパラメータを付加して、下位層(LAP(P))に対して接続要求関数を発生する。また、LMP(P)は、LAP(P)から接続確認関数を受けた場合、関数のデータから受信機のLMP(S)が生成したパラメータを抜き取り、値を確認して、LMP(S)とのネゴシエーションを終了する。また、LMP(P)は、接続確認関数のデータからLMP(S)のパラメータを取り除いたデータを、SMP(P)に対して接続確認関数として送信する。
なお、通常は論理ポートを管理するためにLSAP(Link Service Access Point)が定義される。そして、1対1で1つの接続をする場合にはLMPを使用する必要がない。この場合、LSAPにコネクションレスの値を固定値として使用する。このため、LMPの接続パラメータ交換は不要となっている。
LAP(P)は、LMP(P)からの接続要求関数を受けて、速やかにLMP(P)の接続要求関数のデータに、受信機のLAP(S)との通信に必要なパラメータを付加して、受信機の物理層に対してSNRMコマンドを出力する。また、LAP(P)は、受信機の物理層からUAレスポンスを受けた場合、UAレスポンスのデータから受信機のLAP(S)が生成したパラメータを抜き取り、値を確認して、LAP(S)とのネゴシエーションを終了する。また、LAP(P)は、UAレスポンスのデータからLAP(S)のパラメータを取り除いたデータを、LMP(P)に対して接続確認関数として送信する。
つづいて、受信機の各通信層について説明する。
OBEX(S)は、アプリケーションから接続要求関数を受けて、受信待機状態になる。また、OBEX(S)は、下位層(SMP(S))から接続通知関数(Indication)を受けた場合に、そのデータの中からOBEX接続コマンドを確認し、問題が無ければSuccessというレスポンスを接続返答関数(Response)としてSMP(S)に対して出力し、接続完了とする。
SMP(S)は、OBEX(S)からの接続要求関数を受けて、受信待機状態になる。また、SMP(S)は、下位層(SMP(S))から接続通知関数を受けた場合に、関数のデータから送信機のSMP(P)が生成したパラメータを抜き取り、それに対しての返答のパラメータを作成し、上記関数のデータからSMP(P)のパラメータを除いたデータを入れた接続要求関数をOBEX(S)に発した後、OBEX(S)からの接続返答関数を待つ。また、SMP(S)は、OBEX(S)からの接続返答関数を受けた場合に、LMP(S)に対してOBEX(S)の接続返答関数のデータに上記返答のパラメータを付加して、LMP(S)に対して接続返答関数を発生し、SMP層のネゴシエーションを終了する。
LMP(S)は、SMP(S)からの接続要求関数を受けて、受信待機状態になる。また、LMP(S)は、下位層(LAP(S))から接続通知関数を受けた場合に、関数のデータから送信機のLMP(P)が生成したパラメータを抜き取り、それに対しての返答のパラメータを作成し、上記関数のデータからLMP(P)のパラメータを除いたデータを入れた接続要求関数をSMP(S)に発した後、SMP(S)からの接続返答関数を待つ。また、LMP(S)は、SMP(S)からの接続返答関数を受けた場合に、LAP(S)に対してSMP(S)の接続返答関数のデータに上記返答のパラメータを付加して、LAP(S)に対して接続返答関数を発生し、LMP層のネゴシエーションを終了する。
なお、通常は論理ポートを管理するためにLSAP(Link Service Access Point)が定義される。そして、1対1で1つの接続をする場合にはLMPを使用する必要がない。この場合、LSAPにコネクションレスの値を固定値として使用する。このため、LMPの接続パラメータ交換は不要となっている。
LAP(S)は、LMP(S)からの接続要求関数を受けて、受信待機状態になる。また、LAP(S)は、物理層からSNRMコマンドを受けた場合に、SNRMコマンドのデータから送信機のLAP(P)が生成したパラメータを抜き取り、SNRMコマンドのデータからLAP(P)のパラメータを除いたデータを入れた接続要求関数をLMP(S)に発した後、それに対しての返答のパラメータを作成し、LMP(S)からの接続返答関数を待つ。また、LAP(S)は、LMP(S)からの接続返答関数を受けた場合に、LMP(S)の接続返答関数のデータに上記返答のパラメータを付加して、物理層に対してUAレスポンスを出力し、LAP層のネゴシエーションを終了する。
〔B〕レスポンス無し
図42は、本実施の形態(レスポンス無し)の接続シーケンスを示すシーケンス図である。また、図41(a)は、本実施の形態(レスポンス無し)の接続シーケンスの際の通信データのデータ構造を示す説明図である。
図42に示すように、本実施の形態(レスポンス無し)では、送信機、受信機とも、接続準備を行う。その後、送信機は、上位層のリクエストをそのまま下位層に渡していき、1つのパケット(SNRM)として送信する。そして、送信機は、SNRMパケットを送信した時点で接続完了として、LAP(P)から上位層に通知(Connect.confirm)を上げていく。一方、受信機は、SNRMパケットを受けて、そのまま上位層へ接続できた旨の通知を行い、OBEX(S)に通知した時点で接続完了とする。
このときの、送信機、受信機内のシーケンスは以下のとおりである。
まず、送信機の各通信層について説明する。
OBEX(P)は、アプリケーションからの接続要求が来た場合に、速やかに下位層(SMP(P))に対して接続要求コマンドをデータに入れて接続要求関数(Primitive)を発生する。また、OBEX(P)は、SMP(P)から接続確認関数を受けた場合に、接続完了とする。
SMP(P)は、OBEX(P)からの接続要求関数を受けて、速やかにOBEX(P)の接続要求関数のデータに、受信機のSMP(S)との通信に必要なパラメータを付加して、下位層(LMP(P))に対して接続要求関数を発生する。また、SMP(P)は、LMP(P)から接続確認関数を受けた時点で、送信したパラメータでネゴシエーションができたとして、SMP層のネゴシエーションを終了する。また、この時、SMP(P)は、OBEX(P)に対して接続確認関数を送信する。
LMP(P)は、SMP(P)からの接続要求関数を受けて、速やかにSMP(P)の接続要求関数のデータに、受信機のLMP(S)との通信に必要なパラメータを付加して、下位層(LAP(P))に対して接続要求関数を発生する。また、LMP(P)は、LAP(P)から接続確認関数を受けた時点で、送信したパラメータでネゴシエーションができたとして、LMP層のネゴシエーションを終了する。また、この時、LMP(P)は、SMP(P)に対して接続確認関数を送信する。
なお、通常は論理ポートを管理するためにLSAP(Link Service Access Point)が定義される。そして、1対1で1つの接続をする場合にはLMPを使用する必要がない。この場合、LSAPにコネクションレスの値を固定値として使用する。このため、LMPの接続パラメータ交換は不要となっている。
LAP(P)は、LMP(P)からの接続要求関数を受けて、速やかにLMP(P)の接続要求関数のデータに、受信機のLAP(S)との通信に必要なパラメータを付加して、受信機の物理層に対してSNRMコマンドを出力する。また、LAP(P)は、SNRMコマンドを出力した時点で、送信したパラメータでネゴシエーションができたとして、LAP層のネゴシエーションを終了する。また、この時、LAP(P)は、LMP(P)に対して接続確認関数を送信する。
つづいて、受信機の各通信層について説明する。
OBEX(S)は、アプリケーションから接続要求関数を受けて、受信待機状態になる。また、OBEX(S)は、下位層(SMP(S))から接続通知関数(Indication)を受けた場合に、そのデータの中からOBEX接続コマンドを確認し、問題が無ければ、接続完了とする。
SMP(S)は、OBEX(S)からの接続要求関数を受けて、受信待機状態になる。また、SMP(S)は、下位層(SMP(S))から接続通知関数を受けた場合に、関数のデータから送信機のSMP(P)が生成したパラメータを抜き取り、そのパラメータを使用してネゴシエーションを完了させる。そして、SMP(S)は、上記関数のデータからSMP(P)のパラメータを除いたデータを入れた接続要求関数をOBEX(S)に発する。
LMP(S)は、SMP(S)からの接続要求関数を受けて、受信待機状態になる。また、LMP(S)は、下位層(LAP(S))から接続通知関数を受けた場合に、関数のデータから送信機のLMP(P)が生成したパラメータを抜き取り、そのパラメータを使用してネゴシエーションを完了させる。そして、LMP(S)は、上記関数のデータからLMP(P)のパラメータを除いたデータを入れた接続要求関数をSMP(S)に発する。
なお、通常は論理ポートを管理するためにLSAP(Link Service Access Point)が定義される。そして、1対1で1つの接続をする場合にはLMPを使用する必要がない。この場合、LSAPにコネクションレスの値を固定値として使用する。このため、LMPの接続パラメータ交換は不要となっている。
LAP(S)は、LMP(S)からの接続要求関数を受けて、受信待機状態になる。また、LAP(S)は、物理層からSNRMコマンドを受けた場合に、SNRMコマンドのデータから送信機のLAP(P)が生成したパラメータを抜き取り、そのパラメータを使用してネゴシエーションを完了させる。そして、LAP(S)は、上記関数のデータからLAP(P)のパラメータを除いたデータを入れた接続要求関数をLMP(S)に発する。
(3−2)データ交換シーケンス
〔A〕レスポンス有り
図43は、本実施の形態(レスポンス有り)のデータ交換シーケンスを示すシーケンス図である。また、図44は、本実施の形態(レスポンス有り)のデータ交換シーケンスの際の通信データのデータ構造を示す説明図である。
図43に示すように、本実施の形態(レスポンス有り)では、送信機が、PUTコマンドを発生し、それが下位層まで伝わり、UIフレーム(図37(b))として出力される。
一方、受信機は、データを受け取り、上位層へ通知を上げていく。このとき、SMP(S)では、上位層のOBEX(S)に対して、データが続くことを通知する(status=truncated)。
送信機は、ある一定数のパケットを送信した後に、データがきちんと届いているかどうかを確認するフラグをONにして送信する。これを受けて、受信機では、SMP(S)が、エラーがあったかなかったか、あった場合にはエラーが発生した番号を送信機に通知する。
送信機は、エラーが無ければ次のパケット群を出力し、エラーがあればエラーがあったパケット以降のパケットを再送信する。
送信機は、データの最後になったときに、データの最後であることを示すフラグをONにして送信する。これに対して、受信機は、SMP(S)が、このフラグがONであれば、OBEX(S)にデータがそろったことを通知し(status=OK)、OBEX(S)のレスポンスを待つ。そして、OBEX(S)のレスポンスが発生したとき、そのデータを下位層へ伝えていき、UIフレームとして出力する。
送信機は、受けたレスポンスがSuccessであれば、正常終了する。
このときの、送信機、受信機内のシーケンスは以下のとおりである。
送信機では、OBEX(P)が下位層に対してPUTコマンドをデータ送信関数として出力する。ただし、OBEX(P)は、PUT Final(最後のPUT)コマンド以外のPUTコマンドのレスポンス(正常の場合はContinueが返る)を必要とせずにSMP(P)で送信可能である場合には、次のコマンドを出力していく。PUT FinalコマンドもしくはPUTコマンド以外のコマンドの場合には、下位層からのデータ通知関数を待ち、そのデータ内のレスポンスをみてコマンドを終了する。
ここで、データ送信関数とは、下位層に対してデータ送信を要求する関数(Data Request)である。また、データ通知関数とは、下位層からデータを受信したことを知らせる関数(Data Indicate)である。
受信機では、OBEX(S)が下位層からデータ通知関数を受けて、データを受ける。ただし、OBEX(S)は、PUT Finalコマンド以外のPUTコマンドに対しては、レスポンスを返さず、PUT FinalコマンドもしくはPUTコマンド以外のコマンドの場合はデータ送信関数としてレスポンスを返す。
ここで、送信機、受信機に共通する、上位層と下位層のデータ送信関数およびデータ通知関数でのヘッダ等について説明する。
SMPは、OBEXからデータ送信関数を受けると、LMPに対して、(a)LMPで送信可能なサイズがデータ送信関数内のデータのサイズよりも小さいときには、該データをLMPが送信可能なサイズに分割し、(b)LMPで送信可能なサイズがデータ送信関数内のデータのサイズよりも大きいときには、いくつかのデータを結合して、送信可能なサイズ以下の、より大きなデータを作成する。また、SMPは、シーケンシャルな番号、相手機器にデータ受信状態を問い合わせる引数、データの最後を示す引数、相手機器のSMPがOBEXのレスポンスが必要であることを示す引数、受信したデータが正常であったかどうかを示す引数などを入れたSMPヘッダを作成する。そして、このSMPヘッダを、上記分割または結合したデータに付加したデータを入れたデータ送信関数をLMPに対して発する。
さらに、SMPは、LMPからデータ通知関数を受けると、該関数内のデータからSMPヘッダを抜き出し、シーケンス番号が正常であるか(すなわち、抜けなく順番に来ているか)を確認する。そして、正常であった場合には、OBEXへデータ通知関数を発する。このとき、データ通知関数は、下位層からのデータ通知関数ごとに出力してもよいし、いくつかの下位層からのデータ通知関数のデータをあわせて出力してもよい。
送信機のSMP(P)は、OBEX(P)からのデータ送信関数をLMP(P)へのデータ送信関数に変換して、規定しているある一定数のデータ量のデータ送信関数を発する。その後、SMP(P)は、受信機にデータ受信状態を問い合わせる引数をTrueにしてデータ送信関数を発して、LMP(P)のデータ通知関数を待つ。
SMP(P)は、LMP(S)からのデータ通知関数内のSMPヘッダを解析し、受信したデータが正常であったかどうかを示す引数が正常に受信していたことを示していた場合、次のデータを送信する準備ができたとして、OBEX(P)に対して送信可能であるステートになる。すなわち、この状態でOBEX(P)からのデータを受け付けることができる。
これに対して、SMP(P)は、LMP(S)からの受け取ったデータ通知関数のSMPヘッダを解析して受信したデータが正常であったかどうかを示す引数が正常に受信していなかったことを示していた場合、正常に受信できなかったと通知されたデータ送信関数から相手機器にデータ受信状態を問い合わせる引数をTrueにしたデータ送信関数までを再度発生する。SMP(P)は、全てのデータ送信関数によるデータが受信機に通知されるまで、もしくはある規定回数再発生を繰り返す。
さらに、SMP(P)は、OBEX(P)からデータの最後であるとした引数がTrueであるデータ送信関数を受けた場合、そのデータ送信関数の最後のデータを入れた、LMP(P)へのデータ送信関数を、このデータ送信関数がデータの最後であることを示す引数、または、受信機のOBEX(S)のレスポンスが必要であることを示す引数をTrueにして発する。
これに対して、受信機のSMP(S)は、LMP(S)からデータ通知関数を受けた際に、データの最後または受信機のOBEX(S)のレスポンスが必要であることを示す引数がTrueであった場合に、OBEX(S)へSMP(S)のヘッダを外したデータを入れたデータ通知関数を発する。
また、SMP(S)は、データ通知関数をLMP(S)から受けた場合に、そのデータ通知関数内のデータからSMPヘッダを解析し、シーケンシャルな番号を確認する。SMP(S)は、受信機にデータ受信状態を問い合わせる引数がTrueであるヘッダを受けるまで正常に受信できていれば、受信したデータが正常であったかどうかを示す引数を正常に受信できたことを示すものにしてSMPヘッダを作成し、それをデータとしてLMP(S)に対してデータ送信関数を発する。
一方、SMP(S)は、正常に受信できなかったことを検出した場合には、正常に受信できなかったと予測されるSMPヘッダの番号を記憶する。例えば、0,1,2,3,5と受けたとき、5個目は4となるべきなのに4を受けなかった場合には、正常に受信できなかったと予測される番号は4となる。そして、それ以降、SMP(S)は、SMPヘッダの受信機にデータ受信状態を問い合わせる引数がTrueであるかどうかのみを調べて、OBEX(S)へのデータ通知関数の出力を停止する。
SMP(S)は、受信機にデータ受信状態を問い合わせる引数がTrueであるデータ通知関数を受けた場合に、受信したデータが正常であったかどうかを示す引数を正常に受信できなかったことを示すものにし、正常に受信できなかったSMPヘッダの番号をシーケンシャル番号を入れるフィールドに挿入したSMPヘッダを作成して、それをデータとしてLMP(S)に向けてデータ送信関数を発する。
また、SMP(S)は、データの最後であることを示す引数、または受信機のOBEX(S)のレスポンスが必要であることを示す引数がTrueであったデータ通知関数を受けた場合、OBEX(S)へデータ通知関数を出力した後、OBEX(S)からのデータ送信要求を待つ。
SMP(S)は、OBEX(S)からのデータ送信要求を受けた場合には、受信したデータが正常であったかどうかを示す引数に正常に受信できたとするSMPヘッダを作成し、それをOBEX(S)のデータ送信要求のデータに付加して、LMP(S)に対してデータ送信関数を発する。なお、エラーがあった場合には、OBEX(S)への通知は止まるため、待つときは正常であったときのみとなる。
つぎに、LMPは上位層からデータ送信要求関数を受けたときには、その関数内のデータにLMPヘッダをつけてデータを作成し、LAPにそのデータが入ったデータ送信要求関数を発する。また、LMPは、LAPからデータ通知関数を受けた場合には、その関数内のデータからLMPヘッダを除いたデータを作成し、SMPにそのデータが入ったデータ通知関数を発する。
なお、1対1で1つの接続をする場合にはLMPを使用する必要がない。この場合、LMPヘッダにはコネクションレスの値が入ったLSAPが入る。
LAPは、LMPからデータ送信要求関数を受けたとき、その関数内のデータにLAPヘッダをつけてデータを作成し、物理層にそのデータがはいったUIフレームを発する。また、LAPは、物理層からデータ受信通知を受けた場合には、そのUIフレームのデータからLAPヘッダを除いたデータを作成し、LMPにそのデータが入ったデータ通知関数を発する。なお、本実施の形態では、LAPヘッダには、接続アドレスとUIインジケータが含まれる。
〔B〕レスポンス無し
図45は、本実施の形態(レスポンス無し)のデータ交換シーケンスを示すシーケンス図である。また、図44は、本実施の形態(レスポンス無し)のデータ交換シーケンスの際の通信データのデータ構造を示す説明図である。
図45に示すように、本実施の形態(レスポンス無し)では、送信機が、PUTコマンドを発生し、それが下位層まで伝わり、UIフレームとして出力される。
一方、受信機は、データを受け取り、上位層へ通知を上げていく。このとき、SMP(S)では、上位層のOBEX(S)に対して、データが続くことを通知する(status=truncated)。
そして、送信機は、データの最後になったときに、データの最後であることを示すフラグをONにして送信する。これに対して、受信機は、SMP(S)が、このフラグがONであれば、OBEX(S)にデータがそろったことを通知して(status=OK)、データ交換シーケンスを終了する。
このときの、送信機、受信機内のシーケンスは以下のとおりである。
送信機では、OBEX(P)が下位層に対してPUTコマンドをデータ送信関数として出力する。ただし、OBEX(P)は、すべてのコマンドに対するレスポンスを必要とせずに、コマンドを終了することができる。そして、OBEX(P)は、SMP(P)で送信可能である場合に、次のコマンドを出力していく。
受信機では、OBEX(S)が下位層からデータ通知関数を受けて、すべてのコマンドに対してレスポンスを返さずに、データのみを受け取る。
ここで、送信機、受信機に共通する、上位層と下位層のデータ送信関数およびデータ通知関数でのヘッダ等について説明する。
SMPは、OBEXからデータ送信関数を受けると、LMPに対して、(a)LMPで送信可能なサイズがデータ送信関数内のデータのサイズよりも小さいときには、該データをLMPが送信可能なサイズに分割し、(b)LMPで送信可能なサイズがデータ送信関数内のデータのサイズよりも大きいときには、いくつかのデータを結合して、送信可能なサイズ以下の、より大きなデータを作成する。また、SMPは、シーケンシャルな番号、相手機器にデータ受信状態を問い合わせる引数、データの最後を示す引数、相手機器のSMPがOBEXのレスポンスが必要であることを示す引数、受信したデータが正常であったかどうかを示す引数などを入れたSMPヘッダを作成する。そして、このSMPヘッダを、上記分割または結合したデータに付加したデータを入れたデータ送信関数をLMPに対して発する。
さらに、SMPは、LMPからデータ通知関数を受けると、該関数内のデータからSMPヘッダを抜き出し、シーケンス番号が正常であるか(すなわち、抜けなく順番に来ているか)を確認する。そして、正常であった場合には、OBEXへデータ通知関数を発する。このとき、データ通知関数は、下位層からのデータ通知関数ごとに出力してもよいし、いくつかの下位層からのデータ通知関数のデータをあわせて出力してもよい。
送信機のSMP(P)は、OBEX(P)からのデータ送信関数をLMP(P)へのデータ送信関数に変換する。そして、OBEX(P)からデータの最後であるとした引数がFalseであるデータ送信関数を受けた場合には、そのデータにSMPヘッダを付けたデータを、LMP(P)へ発する。これに対して、SMP(P)は、OBEX(P)からデータの最後であるとした引数がTrueであるデータ送信関数を受けた場合には、そのデータ送信関数の最後のデータを入れた、LMP(P)へのデータ送信関数を、このデータ送信関数がデータの最後であることを示す引数、または、受信機のOBEX(S)のレスポンスが必要であることを示す引数をTrueにして発する。
一方、受信機のSMP(S)は、データ通知関数を下位層から受けた場合に、そのデータ通知関数内のデータからSMPヘッダを解析し、シーケンシャルな番号を確認する。そして、SMP(S)は、SMPヘッダを解析して、正常に受信できていることを確認できた場合、LMP(S)に対してデータ送信関数を発する。
これに対して、SMP(S)は、正常に受信できなかったことを検出した場合には、OBEX(S)にエラーとして通知する。例えば、0,1,2,3,5と受けたとき、5個目は4となるべきなのに4を受けなかった場合である。
そして、それ以降、SMP(S)は、SMPヘッダのデータの最後を示す引数、または受信機のOBEX(S)のレスポンスが必要であることを示す引数がTrueであることを待ち、Trueであるデータ通知関数を受けるか(なお、受けてもOBEX(S)へは通知はしない)、切断通知関数を受けるか、もしくはある一定時間経つまで、OBEX(S)へデータ通知を行わないようにする。
つぎに、送信機のLMP(P)は、SMP(S)からデータ送信要求関数を受けたときには、その関数内のデータにLMPヘッダをつけてデータを作成し、LAP(P)にそのデータが入ったデータ送信要求関数を発する。
一方、受信機のLMP(S)は、LAP(S)からデータ通知関数を受けた場合には、その関数内のデータからLMPヘッダを除いたデータを作成し、SMP(S)にそのデータが入ったデータ通知関数を発する。
なお、1対1で1つの接続をする場合にはLMPを使用する必要がない。この場合、LMPヘッダにはコネクションレスの値が入ったLSAPが入る。
送信機のLAP(P)は、LMP(P)からデータ送信要求関数を受けたとき、その関数内のデータにLAPヘッダをつけてデータを作成し、物理層にそのデータが入ったUIフレームを発する。
一方、受信機のLAP(S)は、物理層からデータ受信通知を受けた場合には、そのUIフレームのデータからLAPヘッダを除いたデータを作成し、LMP(S)にそのデータが入ったデータ通知関数を発する。なお、本実施の形態では、LAPヘッダには、接続アドレスとUIインジケータが含まれる。
(3−3)切断シーケンス
〔A〕レスポンス有り
図46は、本実施の形態(レスポンス有り)の切断シーケンスを示すシーケンス図である。また、図47(a),図47(b)は、本実施の形態(レスポンス有り)の切断シーケンスの際の通信データのデータ構造を示す説明図である。
図46に示すように、本実施の形態(レスポンス有り)では、送信機の切断コマンドが下位層に伝わっていき、DISCコマンドが発生する。受信機は、そのDISCコマンドを受けて上位層へ通知していき、そのレスポンスが返り、UAレスポンスが発生する。その後、送信機の上位層まで、UAレスポンスを受信したことを通知して終了する。
このときの、送信機、受信機内のシーケンスは以下のとおりである。
まず、送信機の各通信層について説明する。
OBEX(P)は、アプリケーションからの切断要求が来た場合に、速やかに下位層(SMP(P))に対して切断要求コマンドをデータに入れて切断要求関数(Primitive)を発生する。また、OBEX(P)は、SMP(P)から切断確認関数を受けた場合に、そのデータの中からOBEX切断のレスポンスを確認し、問題ない(Success)というレスポンスであれば、切断完了とする。
SMP(P)は、OBEX(P)からの切断要求関数を受けて、速やかにOBEX(P)の切断要求関数のデータに、受信機のSMP(S)との通信に必要なパラメータを付加して、下位層(LMP(P))に対して切断要求関数を発生する。また、SMP(P)は、LMP(P)から切断確認関数を受けた場合、関数のデータから受信機のSMP(S)が生成したパラメータを抜き取り、値を確認して、SMP(S)との切断処理を終了する。また、SMP(P)は、切断確認関数のデータからSMP(S)のパラメータを取り除いたデータをOBEX(P)に対して切断確認関数として送信する。ただし、通常、切断時にSMP(P)で新たに追加するパラメータは無い。
LMP(P)は、SMP(P)からの切断要求関数を受けて、速やかにSMP(P)の切断要求関数のデータに、受信機のLMP(S)との通信に必要なパラメータを付加して、下位層(LAP(P))に対して切断要求関数を発生する。また、LMP(P)は、LAP(P)から切断確認関数を受けた場合、関数のデータから受信機のLMP(S)が生成したパラメータを抜き取り、値を確認して、LMP(S)との切断処理を終了する。また、LMP(P)は、切断確認関数のデータからLMP(S)のパラメータを取り除いたデータを、SMP(P)に対して切断確認関数として送信する。ただし、通常、切断時にLMP(P)で新たに追加するパラメータは無い。
LAP(P)は、LMP(P)からの切断要求関数を受けて、速やかにLMP(P)の切断要求関数のデータに、受信機のLAP(S)との通信に必要なパラメータを付加して、受信機の物理層に対してDISCコマンドを出力する。また、LAP(P)は、受信機の物理層からUAレスポンスを受けた場合、UAレスポンスのデータから受信機のLAP(S)が生成したパラメータを抜き取り、値を確認して、LAP(S)との接続を終了する。また、LAP(P)は、UAレスポンスのデータからLAP(S)のパラメータを取り除いたデータを、LMP(P)に対して切断確認関数として発する。ただし、通常、切断時にLAP(P)で新たに追加するパラメータは無い。
つづいて、受信機の各通信層について説明する。
OBEX(S)は、下位層(SMP(S))から切断通知関数(Indication)を受けた場合に、そのデータの中からOBEX切断コマンドを確認し、問題が無ければSuccessというレスポンスを切断返答関数(Response)としてSMP(S)に対して出力し、切断完了とする。
SMP(S)は、下位層(SMP(S))から切断通知関数を受けた場合に、関数のデータから送信機のSMP(P)が生成したパラメータを抜き取り、それに対しての返答のパラメータを作成し、上記関数のデータからSMP(P)のパラメータを除いたデータを入れた切断要求関数をOBEX(S)に発した後、OBEX(S)からの切断返答関数を待つ。また、SMP(S)は、OBEX(S)からの切断返答関数を受けた場合に、LMP(S)に対してOBEX(S)の切断返答関数のデータに上記返答のパラメータを付加して、LMP(S)に対して切断返答関数を発生し、SMP層の切断処理を終了する。ただし、通常、切断時にSMP(S)で新たに追加するパラメータは無い。
LMP(S)は、下位層(LAP(S))から切断通知関数を受けた場合に、関数のデータから送信機のLMP(P)が生成したパラメータを抜き取り、それに対しての返答のパラメータを作成し、上記関数のデータからLMP(P)のパラメータを除いたデータを入れた切断要求関数をSMP(S)に発した後、SMP(S)からの切断返答関数を待つ。また、LMP(S)は、SMP(S)からの切断返答関数を受けた場合に、LAP(S)に対してSMP(S)の切断返答関数のデータに上記返答のパラメータを付加して、LAP(S)に対して切断返答関数を発生し、LMP層の切断処理を終了する。ただし、通常、切断時にLMP(S)で新たに追加するパラメータは無い。
LAP(S)は、物理層からDISCコマンドを受けた場合に、DISCコマンドのデータから送信機のLAP(P)が生成したパラメータを抜き取り、DISCコマンドのデータからLAP(P)のパラメータを除いたデータを入れた切断要求関数をLMP(S)に発した後、それに対しての返答のパラメータを作成し、LMP(S)からの切断返答関数を待つ。また、LAP(S)は、LMP(S)からの切断返答関数を受けた場合に、LMP(S)の切断返答関数のデータに上記返答のパラメータを付加して、物理層に対してUAレスポンスを出力し、LAP層の切断処理を終了する。ただし、通常、切断時にLAP(S)で新たに追加するパラメータは無い。
〔B〕レスポンス無し
図48は、本実施の形態(レスポンス無し)の切断シーケンスを示すシーケンス図である。また、図47(a)は、本実施の形態(レスポンス無し)の切断シーケンスの際の通信データのデータ構造を示す説明図である。
図48に示すように、本実施の形態(レスポンス無し)では、送信機の切断コマンドが下位層に伝わっていき、DISCコマンドが発生する。送信機では、この時点で切断処理が終了する。一方、受信機は、そのDISCコマンドを受けて上位層へ伝えていき、上位層まで通知した時点で切断処理が終了する。
このときの、送信機、受信機内のシーケンスは以下のとおりである。
まず、送信機の各通信層について説明する。
OBEX(P)は、アプリケーションからの切断要求が来た場合に、速やかに下位層(SMP(P))に対して切断要求コマンドをデータに入れて切断要求関数(Primitive)を発生する。また、OBEX(P)は、SMP(P)から切断確認関数を受けた場合に、切断完了とする。
SMP(P)は、OBEX(P)からの切断要求関数を受けて、速やかにOBEX(P)の切断要求関数のデータに、受信機のSMP(S)との通信に必要なパラメータを付加して、下位層(LMP(P))に対して切断要求関数を発生する。また、SMP(P)は、LMP(P)から切断確認関数を受けた時点で、送信したパラメータで切断できたとして、SMP層の切断処理を終了する。また、SMP(P)は、OBEX(P)に対して切断確認関数を送信する。ただし、通常、切断時にSMP(P)で新たに追加するパラメータは無い。
LMP(P)は、SMP(P)からの切断要求関数を受けて、速やかにSMP(P)の切断要求関数のデータに、受信機のLMP(S)との通信に必要なパラメータを付加して、下位層(LAP(P))に対して切断要求関数を発生する。また、LMP(P)は、LAP(P)から切断確認関数を受けた時点で、送信したパラメータで切断できたとして、LMP層の切断処理を終了する。また、LMP(P)は、SMP(P)に対して切断確認関数を送信する。ただし、通常、切断時にLMP(P)で新たに追加するパラメータは無い。
LAP(P)は、LMP(P)からの切断要求関数を受けて、速やかにLMP(P)の切断要求関数のデータに、受信機のLAP(S)との通信に必要なパラメータを付加して、受信機の物理層に対してDISCコマンドを出力する。また、LAP(P)は、DISCコマンドを出力した時点で、送信したパラメータで切断できたとして、LAP層の切断処理を終了する。また、LAP(P)は、LMP(P)に対して切断確認関数を発する。ただし、通常、切断時にLAP(P)で新たに追加するパラメータは無い。
つづいて、受信機の各通信層について説明する。
OBEX(S)は、下位層(SMP(S))から切断通知関数(Indication)を受けた場合に、そのデータの中からOBEX切断コマンドを確認し、問題が無ければ、切断完了とする。
SMP(S)は、下位層(SMP(S))から切断通知関数を受けた場合に、関数のデータから送信機のSMP(P)が生成したパラメータを抜き取り、そのパラメータを使用して切断を完了させる。また、SMP(S)は、上記関数のデータからSMP(P)のパラメータを除いたデータを入れた切断要求関数をOBEX(S)に発する。ただし、通常、切断時にSMP(S)で新たに追加するパラメータは無い。
LMP(S)は、下位層(LAP(S))から切断通知関数を受けた場合に、関数のデータから送信機のLMP(P)が生成したパラメータを抜き取り、そのパラメータを使用して切断を完了させる。また、LMP(S)は、上記関数のデータからLMP(P)のパラメータを除いたデータを入れた切断要求関数をSMP(S)に発する。ただし、通常、切断時にLMP(S)で新たに追加するパラメータは無い。
LAP(S)は、物理層からDISCコマンドを受けた場合に、DISCコマンドのデータから送信機のLAP(P)が生成したパラメータを抜き取り、そのパラメータを使用して切断を完了させる。また、LAP(S)は、DISCコマンドのデータからLAP(P)のパラメータを除いたデータを入れた切断要求関数をLMP(S)に発する。ただし、通常、切断時にLAP(S)で新たに追加するパラメータは無い。
(4)レスポンスの有無の切換え
図49〜図56を参照しながら、送信機および受信機の通信層間におけるデータおよびパラメータの流れを説明する。
本実施の形態では、送信機および受信機の各通信層LAP、LMP、SMP、OBEXは、接続要求関数、接続通知関数、接続応答関数、接続確認関数を持っている。これらの関数は、上位層(つまり、LMP層)からLAP層へアクセスするための関数である。
そして、上記関数は、引数として、Data(以下、データと記す)とRequested−QosまたはReturned−QoSが指定できる。上記データは、上述したように、各通信層において設定される。
一方、Qosは、LAPで決定されたボーレート等のネゴシエーションパラメータの指定やネゴシエーション結果を、OBEXを含めた上位層に通知する。なお、Qosは従来のIrDAでも使用されている。
例えば、送信機のアプリケーションもしくはOBEX(P)が、レスポンスが必要/不要というパラメータの入ったQoSを発すると、それが下位層へ順にLAP(P)まで伝わる。そして、LAP(P)は、そのQoSの値をネゴシエーションパラメータ(Ack Less Connect)の値として反映させ、受信機へ送信する。
その結果、送信機および受信機の各通信層が、送信機のアプリケーションもしくはOBEX(P)によるレスポンス必要/不要の指定に従って動作するため、双方向/片方向の接続ができることになる。
図49〜図53は、本実施の形態(レスポンス有り)の接続シーケンス(図40)のときの、通信層間のデータおよびパラメータの流れを示す説明図である。なお、OBEX−SMP間、SMP−LMP間、LMP−LAP間のQoSのパラメータは、同一であってもよいが、異なっていてもよい。それゆえ、図中では、−a,−b,−cを付して区別している。
送信機では、図49に示すように、con.req(data)(図40)によって、受信機へ送信するDataとQoS−1(送信機の要求するQoS)のデータとを上位層から下位層に渡す。
一方、受信機では、図50に示すように、con.reqによって、QoS−2(受信機の要求するQoS)のデータのみを上位層から下位層にそれぞれ渡す。
その後、受信機では、LAP(S)がSNRMコマンドを受けた時点で、送信機のQoS−1と自機のQoS−2を比較して、共通でネゴシエートしたパラメータとしてQoS−3を作成する。そして、図51に示すように、LAP(S)は、con.ind(data)によって、QoS−3を送信機からのデータと一緒に上位層へ通知する。各上位層は、このQoS−3を記憶して、接続時における接続パラメータとして保持する。
つづいて、受信機では、con.resp(data)を通知する際、QoSが不要となっている。よって、図52に示すように、con.resp(data)ではデータのみが上位層から下位層に渡されていく。そして、LAP(S)がcon.resp(data)を受けると、UAレスポンスにQoS−3を入れて、UAレスポンスを発する。
つづいて、送信機では、LAP(P)がUAレスポンスを受けてQoS−3をネゴシエートしたパラメータとして記憶する。そして、LAP(P)は、図53に示すように、con.conf(data)によって、QoS−3を受信機のデータと一緒に上位層へ通知する。各通信層は、このQoS−3を、確立させた接続における接続パラメータとして保持する。
本実施の形態では、例えば、con.reqのQoSとして、Requested−QoS:Baud−Rate+Max−Turn−Around−Time+Disconnect−Threshold+DataSize+Ack less connection+Min−Packet−Interval、を使用する。また、Con.ind,con.confのQoSとして、Resultant−QoS:Baud−Rate+Disconnect−Threshold+DataSize+Ack less connection(indication primitive only)、を使用する。
また、本実施の形態(レスポンス無し)の接続シーケンス(図42)のときには、通信層間のデータおよびパラメータの流れは次のようになる。
送信機では、図49に示すように、con.req(data)(図42)によって、受信機へ送信するDataとQoS−1(送信機の要求するQoS)のデータとを上位層から下位層に渡す。
そして、送信機のLAP(P)は、QoS−1をそのままQoS−3として記憶する。そして、LAP(P)は、図53に示すように、con.confによってQoS−3を上位層へ通知する。各通信層は、このQoS−3を、確立させた接続における接続パラメータとして保持する。
一方、受信機では、図50に示すように、con.reqによって、QoS−2(受信機の要求するQoS)のデータのみを上位層から下位層にそれぞれ渡す。
その後、受信機では、LAP(S)がSNRMコマンドを受けた時点で、送信機のQoS−1をもって、QoS−3とする。なお、QoS−2のパラメータがQoS−1との組み合わせで満足しない場合には受信できない。
つづいて、図51に示すように、LAP(S)は、con.ind(data)によって、QoS−3を送信機からのデータと一緒に上位層へ通知する。各上位層は、このQoS−3を記憶して、接続時における接続パラメータとして保持する。
これにより、レスポンス有り/無しを、アプリケーションが上記QoS−1とQoS−2を上位層(アプリケーション)操作することで、切り替えることができる。
ここで、レスポンス有り/無しの切換えの基準としては、送信するファイルのファイル形式、アプリケーション、ユーザの選択等が考えられる。
具体的には、ファイル形式を基準とする場合、例えば、マルチメディア関連ファイルの場合にはレスポンス有り/無し両方選べるようにし、電話帳、メール、スケジュール等のファイルであってデータが受信されたことを確認したい場合にはレスポンス有りが自動的に選択されるようにしてもよい。また、アプリケーションを基準とする場合、例えば、スライドショーの場合にはレスポンス無しが自動的に選択されるようにしてもよい。また、ユーザの選択による場合、例えば、レスポンス有り/無しのメニュー表示からユーザに選択させるようにしてもよい。
図54〜図56は、本実施の形態の接続シーケンスのときの、通信層間のデータおよびパラメータの流れの変形例を示す説明図である。
送信機において最初のSNRMコマンドにすべての通信層の情報が含まれる場合に(図40)、データやパラメータを各通信層でリレーしながら伝達する(図49)のではなく、図54のように、各通信層からLAP層へ直接渡すように構成することもできる。
また逆に、図55のように、受信機において、SNRMコマンドに含まれるデータやパラメータをすべて取り出し、宛先である各通信層へLAP層から直接渡すように構成することもできる。
また、図56のように、送信機において、OBEX(P)、SMP(P)、LMP(P)のデータやパラメータをLMP(P)で統合し、さらに、LAP(P)にて、上記統合したデータやパラメータにLAP(P)のパラメータを追加してSNRMコマンドを生成するように構成することもできる。
本発明に係る上記実施の各形態に記載の、各通信手順(通信方法、プロトコル)については、ソフトウェアにおいても実現可能であり、コンピュータにて実行可能なプログラムとすることが可能であり、また、そのようなプログラムをコンピュータにて読み取り可能に記憶させた記録媒体とすることもできる。上記記録媒体としては、CD、DVD、メモリ、ハードディスクなどが挙げられる。
本発明の送受信機としての無線通信機は、前述の課題を解決するために、赤外線を用いて所定の容量を有する転送データを送信する無線通信機において、通信相手局を探すための局発見コマンド(XID)を送信することなく、自局の最大転送可能速度、最大受信可能データ長等の接続パラメータを、SNRMコマンドを用いて通信相手局に送信する送信制御部を有していてもよい。
本発明の送受信機としての他の無線通信機は、前述の課題を解決するために、赤外線を用いて所定の容量を有する転送データを受信する無線通信機において、送信機より受信する第一のコマンドが、送信機の最大転送可能速度、最大受信可能データ長等のパラメータを知らせるSNRMコマンドであった場合に、自局の最大転送可能速度、最大受信可能データ長等の接続パラメータを、UAレスポンスを用いて送信する受信制御部を有していてもよい。
上記無線通信機では、SNRMコマンドの相手局アドレス(Destination Device Address)フィールドを、所定の非利用コード(0xFFFFFFFF)に設定する設定部を有していてもよい。
上記無線通信機においては、前記受信したSNRMコマンドの相手局アドレス(Destination Device Address)フィールドが非利用コード(0xFFFFFFFF)であるか否かを識別する識別部を有しており、前記受信制御部は、相手局アドレス(Destination Device Address)フィールドが非利用コード(0xFFFFFFFF)である場合のみ、直ちに前記UAレスポンスを送信するようになっていてもよい。
上記無線通信機では、SNRMコマンドに上位層からのユーザデータを入れる領域が設けられ、前記送信制御部は、前記接続パラメータと合わせて、上位層からのユーザデータも送信するようになっていてもよい。上記無線通信機では、前記上位層からのユーザデータの前に、ユーザデータ識別子およびユーザデータ長を配置してもよい。
上記無線通信機においては、前記上位層からのユーザデータに、OBEXのCONNECTコマンドが含まれていてもよい。
上記無線通信機では、UAレスポンスに上位層からのユーザデータを入れる領域が設けられ、前記受信制御部は、前記接続パラメータと合わせて、上位層からのユーザデータも送信するようになっていてもよい。上記無線通信機では、前記上位層からのユーザデータの前に、ユーザデータ識別子およびユーザデータ長を配置してもよい。
上記無線通信機においては、前記上位層からのユーザデータに、OBEXのSUCCESSレスポンスが含まれていてもよい。
本発明の送受信機としてのさらに他の無線通信機は、前述の課題を解決するために、赤外線を用いて所定の容量を有する転送データを受信機に送信する無線通信機において、特にDISCコマンドに上位層からのユーザデータを入れる領域が設けられ、上位層からのユーザデータも送信する送信制御部を有していてもよい。上記無線通信機では、前記上位層からのユーザデータの前に、ユーザデータ識別子およびユーザデータ長を配置してもよい。
上記無線通信機では、特に前記上位層からのユーザデータに、OBEXのDISCONNECTコマンドが含まれていてもよい。
本発明の送受信機としてのさらに他の無線通信機は、前述の課題を解決するために、赤外線を用いて所定の容量を有する転送データを受信機に送信する無線通信機において、SNRMコマンドを送信した後に、受信したUAレスポンスに上位層からのユーザデータが含まれない場合、接続失敗とし、データ転送状態へと遷移しなくてもよい。上記無線通信機では、特に前記上位層からのユーザデータがOBEXのSUCCESSレスポンスであってもよい。
本発明の送受信機としてのさらに他の無線通信機は、前述の課題を解決するために、赤外線を用いて所定の容量を有する転送データを受信機に送信する無線通信機において、DISCコマンドを受信した場合に、特にUAレスポンスに上位層からのユーザデータを入れる領域が設けられ、上位層からのユーザデータも送信する送信制御部を有していてもよい。上記無線通信機では、特に前記上位層からのユーザデータに、OBEXのSUCCESSレスポンスが含まれていてもよい。上記無線通信機では、前記上位層からのユーザデータの前に、ユーザデータ識別子およびユーザデータ長を配置してもよい。
本発明の送受信機としてのさらに他の無線通信機は、前述の課題を解決するために、赤外線を用いて所定の容量を有する転送データを受信機に送信する無線通信機において、DISCコマンドを送信した後に、受信したUAレスポンスに上位層からのユーザデータが含まれない場合、切断失敗とし、処理を行ってもよい。上記無線通信機では、特に前記上位層からのユーザデータがOBEXのSUCCESSレスポンスであってもよい。
本発明の送受信機としてのさらに他の無線通信機は、前述の課題を解決するために、赤外線を用いて所定の容量を有する転送データを受信機に送信する無線通信機において、SNRMコマンドを受信した場合に、特にDMレスポンスに上位層からのユーザデータを入れる領域が設けられ、上位層からのユーザデータも送信する送信制御部を有していてもよい。上記無線通信機では、特に前記上位層からのユーザデータに、OBEXのInternal Server Errorレスポンスが含まれていてもよい。上記無線通信機では、前記上位層からのユーザデータの前に、ユーザデータ識別子およびユーザデータ長を配置してもよい。
上記無線通信機においては、1回のパケットの交換で、下位層から上位層までの接続または切断を完了させるようになっていることが好ましい。
上記無線通信機では、前記送信制御部は、前記SNRMコマンドを送信後、予め定められた一定時間相手局からのUAレスポンスを受信しなかった場合には、XIDコマンドを送信するようになっていてもよい。
上記無線通信機においては、前記XIDコマンドに対して、XIDレスポンスを受信した場合は、XID−ENDコマンドを送信後、IrDAに準拠したSNRMコマンドを送信し、IrDAの接続プロセスに移行するようになっていてもよい。
上記無線通信機では、前記XIDコマンドを送信後、あらかじめ定められた一定時間相手局からXIDレスポンスを受信しなかった場合は、XID−ENDコマンドを送信後、予め定められた時間待った後、再び前記SNRMコマンドを送信するようになっていもよい。
上記無線通信機においては、受信した第1のコマンドがXIDコマンドであった場合は、XIDコマンドを受信したことを記憶し、SNRMコマンドを受信せず、再びXID−ENDコマンドではないXIDコマンドを受信した場合は、IrDAで予め定められたルールに従ってXIDレスポンスを送信するようになっていてもよい。
上記無線通信機では、受信した第1のコマンドがXIDコマンドであった場合は、XIDコマンドを受信したことを記憶し、自局がXIDレスポンスを送信していない状態で、SNRMコマンドを受信した場合は、前記UAレスポンスを送信するようになっていてもよい。
上記無線通信機においては、受信した第1のコマンドがXIDコマンドであった場合は、XIDコマンド内のDiscovery flag領域の値を確認し、XIDスロットが6、8、16のいずれかを意味する値であった場合は、IrDAで予め定められたルールに従ってXIDレスポンスを送信するようになっていてもよい。
上記無線通信機では、特にSNRMコマンドに通信方向が片方向か双方向化を示すフラグが付加され、前記接続パラメータとあわせて送信するようになっていてもよい。
上記無線通信機においては、通信方向を示すフラグを片方向に設定したSNRMコマンドを送信後、受信局からの応答を待つことなく、データ転送を開始するようになっていてもよい。
上記無線通信機では、SNRMコマンドに通信方向を示すフラグが付加され、かつ通信方向が片方向と設定されたコマンドを受信した場合、UAレスポンスを返すことなく、データパケットの受入状態に遷移するようになっていてもよい。
本発明の送受信機能を持つ携帯電話は、前述の上位層のデータをSNRMコマンドもしくはUAレスポンスに配置し、接続、切断処理を行ってもよい。また、片方向通信、双方向通信を制御するフラグをSNRMコマンド内に配置し、送信または受信し、方向通信の場合は、送信機の場合、SNRM送信後、レスポンスを待つことなく、データ転送を行っても良いし、受信機の場合、SNRM受信後、レスポンスを送信することなくデータを受信してもよい。
本発明の送受信機能を持つ表示装置は、前述の上位層のデータをSNRMコマンドもしくはUAレスポンスに配置し、接続、切断処理を行ってもよい。また、片方向通信、双方向通信を制御するフラグをSNRMコマンド内に配置し、送信または受信し、片方向通信の場合は、送信機の場合、SNRM送信後、レスポンスを待つことなく、データ転送を行っても良いし、受信機の場合、SNRM受信後、レスポンスを送信することなくデータを受信してもよい。
本発明の送受信機能を持つ印刷装置は、前述の上位層のデータをSNRMコマンドもしくはUAレスポンスに配置し、接続、切断処理を行ってもよい。また、片方向通信、双方向通信を制御するフラグをSNRMコマンド内に配置し、送信または受信し、片方向通信の場合は、送信機の場合、SNRM送信後、レスポンスを待つことなく、データ転送を行っても良いし、受信機の場合、SNRM受信後、レスポンスを送信することなくデータを受信してもよい。
本発明の送受信機能を持つ記録装置は、前述の上位層のデータをSNRMコマンドもしくはUAレスポンスに配置し、接続、切断処理を行ってもよい。また、片方向通信、双方向通信を制御するフラグをSNRMコマンド内に配置し、送信または受信し、片方向通信の場合は、送信機の場合、SNRM送信後、レスポンスを待つことなく、データ転送を行っても良いし、受信機の場合、SNRM受信後、レスポンスを送信することなくデータを受信してもよい。
次に、送信機(通信機器)1、3、受信機(通信機器)2の各ブロック、特にLAP層100A〜100Dは、ハードウェアロジック(通信回路)によって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、送信機1、3、受信機2は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである送信機1、3、受信機2の制御プログラム(通信プログラム)のプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記送信機1、3、受信機2に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、送信機1、3、受信機2を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
以上のように、本発明に係る通信機器は、二次局と通信する一次局としての通信機器であって、二次局との通信接続を行うとき、二次局の存在を確認するための局発見コマンドを送信することなく、第1の接続要求コマンドを送信して接続処理を行う第1のプロトコル制御部を備えることを特徴としている。
また、本発明に係る通信機器は、一次局と通信する二次局としての通信機器であって、一次局が二次局の存在を確認するための局発見コマンドを受信することなく、一次局から第1の接続要求コマンドを受信したとき、当該第1の接続要求コマンドに対する接続応答レスポンスを送信して接続処理を行う第1のプロトコル制御部を備えることを特徴としている。
また、本発明に係る通信方法は、二次局と通信する一次局としての通信機器における通信方法であって、二次局との通信接続を行うとき、二次局の存在を確認するための局発見コマンドを送信することなく、第1の接続要求コマンドを送信して接続処理を行うことを特徴としている。
また、本発明に係る通信方法は、一次局と通信する二次局としての通信機器における通信方法であって、一次局が二次局の存在を確認するための局発見コマンドを受信することなく、一次局から第1の接続要求コマンドを受信したとき、当該第1の接続要求コマンドに対する接続応答レスポンスを送信して接続処理を行うことを特徴としている。
また、本発明に係る通信システムは、上記1次局としての通信機器と、上記2次局としての通信機器とを含むことを特徴としている。
上記の構成および方法によれば、一次局では、二次局との通信接続を行うとき、二次局の存在を確認するための局発見コマンド(例えばIrDAのXIDに相当)を送信することなく、接続要求コマンド(例えばIrSimpleのSNRMに相当)を送信する。一方、二次局では、一次局が二次局の存在を確認するための局発見コマンド(上記XIDに相当)を受信することなく、一次局から接続要求コマンド(上記SNRMに相当)を受信したとき、当該接続要求コマンドに対する接続応答レスポンス(例えばIrSimpleのUAに相当)を送信する。
よって、上記の接続シークエンスによれば、局発見に関わる通信を行う必要がない。したがって、接続時のシークエンスが簡単化されるため、通信接続に要する時間を短くできる。
さらに、本発明に係る通信機器は、二次局との通信接続を行うとき、二次局の存在を確認するための局発見コマンドを送信した後、第2の接続要求コマンドを送信して接続処理を行う第2のプロトコル制御部と、上記第1のプロトコル制御部が上記第1の接続要求コマンドを送信した後、あらかじめ定められた時間の間、当該第1の接続要求コマンドに対する接続応答レスポンスを二次局から受信しなかった場合、上記第2のプロトコル制御部に上記局発見コマンドを送信させるプロトコル切り替え部とを備えることを特徴としている。
また、本発明に係る通信機器は、一次局からの上記局発見コマンドに対して局発見レスポンスを送信した後、第2の接続要求コマンドに対して接続応答レスポンスを送信して接続処理を行う第2のプロトコル制御部と、一次局から上記第1の接続要求コマンドを受信せずに、全スロット数が1に設定された上記局発見コマンドを2つ以上、または、全スロット数が1以外に設定された上記局発見コマンドを受信したとき、上記第2のプロトコル制御部に上記局発見レスポンスを送信させるプロトコル切り替え部とを備えることを特徴としている。
上記の構成により、さらに、一次局では、第1のプロトコル制御部(例えばIrSimple)が第1の接続要求コマンド(例えばIrSimpleのSNRMに相当)を送信した後、あらかじめ定められた時間の間、当該第1の接続要求コマンドに対する接続応答レスポンス(例えばIrSimpleのUAに相当)を二次局から受信しなかった場合、プロトコル切り替え部が第2のプロトコル制御部(例えばIrDA)に切り替えて、第2のプロトコル制御部から局発見コマンド(例えばIrDAのXIDに相当)を送信する。一方、二次局では、一次局から第1の接続要求コマンド(例えばIrSimpleのSNRMに相当)を受信せずに、全スロット数が1に設定された上記局発見コマンド(例えばIrDAのXIDに相当)を2つ以上、または、全スロット数が1以外に設定された局発見コマンド(例えばIrDAのXIDに相当)を受信したとき、プロトコル切り替え部が第2のプロトコル制御部(例えばIrDA)に切り替えて、第2のプロトコル制御部から局発見レスポンス(例えばIrDAのXIDに相当)を送信する。
ここで、第1のプロトコルは、局発見コマンド−局発見レスポンスのやり取りを行わずに、接続要求コマンド−接続応答レスポンスのやり取りのみによって、接続を確立するプロトコルである。一方、第2のプロトコルは、局発見コマンド−局発見レスポンスのやり取りの後、接続要求コマンド−接続応答レスポンスをやり取りして、接続を確立するプロトコルである。
よって、上記の接続シークエンスによれば、第1のプロトコルによる接続に失敗した場合、第2のプロトコルによる接続を試みることができる。これにより、一次局および二次局が第1のプロトコルおよび第2のプロトコルのいずれに対応している場合(両方に対応していてもよい)であっても、接続要求コマンド−接続応答レスポンス、局発見コマンド−局発見レスポンスのやり取りのみによって、すなわち、接続に使用するプロトコルを明示的に通知することなく、一次局と二次局との間で、確立可能なプロトコルを選択して、接続することができる。
したがって、一次局および二次局がともに第1のプロトコルに対応している場合には、第1のプロトコルによって短時間で接続できるとともに、そうでない場合であっても、第2のプロトコルによって接続することが可能となる。
さらに、本発明に係る通信機器は、上記プロトコル切り替え部は、上記第2のプロトコル制御部が上記局発見コマンドを送信した後、あらかじめ定められた時間の間、当該局発見コマンドに対する局発見レスポンスを二次局から受信しなかった場合、上記第1のプロトコル制御部に上記第1の接続要求コマンドを送信させるものであることを特徴としている。
また、本発明に係る通信機器は、上記プロトコル切り替え部は、全スロット数が1に設定された上記局発見コマンドを1つ受信した後、上記第1の接続要求コマンドを受信したとき、上記第1のプロトコル制御部に当該第1の接続要求コマンドに対する上記接続応答レスポンスを送信させるものであることを特徴としている。
上記の構成により、さらに、一次局では、第2のプロトコル制御部(例えばIrDA)が局発見コマンド(例えばIrDAのXIDに相当)を送信した後、あらかじめ定められた時間の間、当該局発見コマンドに対する局発見レスポンス(例えばIrDAのXIDに相当)を二次局から受信しなかった場合、プロトコル切り替え部が第1のプロトコル制御部(例えばIrSimple)に切り替えて、第1のプロトコル制御部から第1の接続要求コマンド(例えばIrSimpleのSNRMに相当)を送信する。一方、二次局では、全スロット数が1に設定された局発見コマンド(例えばIrDAのXIDに相当)を1つ受信した後、上記第1の接続要求コマンド(例えばIrSimpleのSNRMに相当)を受信したとき、第1のプロトコル制御部(例えばIrSimple)から当該第1の接続要求コマンドに対する接続応答レスポンス(例えばIrSimpleのUAに相当)を送信する。
よって、上記の接続シークエンスによれば、第2のプロトコルによる接続に失敗した場合、第1のプロトコルによる接続を試みることができる。これにより、一次局および二次局が第1のプロトコルおよび第2のプロトコルのいずれに対応している場合(両方に対応していてもよい)であっても、接続要求コマンド−接続応答レスポンス、局発見コマンド−局発見レスポンスのやり取りのみによって、すなわち、接続に使用するプロトコルを明示的に通知することなく、一次局と二次局との間で、確立可能なプロトコルを選択して、接続することができる。
したがって、一次局および二次局がともに第1のプロトコルに対応している場合には、第1のプロトコルによって短時間で接続できるとともに、そうでない場合であっても、第2のプロトコルによって接続することが可能となる。
さらに、本発明に係る通信機器は、上記第1のプロトコル制御部は、上記第1の接続要求コマンドの二次局を指定するフィールドに、任意の二次局が指定された旨の情報を設定するものであることを特徴としている。
また、本発明に係る通信機器は、上記第1のプロトコル制御部は、上記第1の接続要求コマンドの二次局を指定するフィールドに、任意の二次局が指定された旨の情報が設定されている場合のみ、上記接続応答レスポンスを送信するものであることを特徴としている。
上記の構成により、さらに、一次局では、第1の接続要求コマンドの二次局を指定するフィールドに、任意の二次局が指定された旨の情報を設定する。例えば、第1の接続要求コマンドがIrSimpleのSNRMである場合、Destination Device Addressを0xFFFFFFFFとする。なお、IrDAでは、Destination Device Addressの0xFFFFFFFFは非利用コードである。一方、二次局では、第1の接続要求コマンドの二次局を指定するフィールドに、任意の二次局が指定された旨の情報が設定されている場合のみ、接続応答レスポンスを送信する。
よって、接続要求コマンドの二次局を指定するフィールドの設定が、特定の二次局の識別子(アドレス)であるのか、任意の二次局が指定された旨の情報であるのかによって、二次局は、受信したコマンドが第1の接続要求コマンド、第2の接続要求コマンドのいずれであるのかを判別できる。
したがって、接続要求コマンドが第1のプロトコルのものか、第2のプロトコルのものかを示すために、あらたなフィールドを設ける必要がない。それゆえ、第1のプロトコルの第1の接続要求コマンドのフォーマットと、第2のプロトコルの第2の接続要求コマンドのフォーマットとを同じにすることが可能となる。
さらに、本発明に係る通信機器は、上記第1のプロトコル制御部は、上記第1の接続要求コマンドの通信方向を指定するフィールドに片方向が指定された旨の情報を設定した上記第1の接続要求コマンドを送信した後、あらかじめ定められた時間経過後、データ転送を開始するものであることを特徴としている。
また、本発明に係る通信機器は、一次局と通信する二次局としての通信機器であって、一次局が二次局の存在を確認するための局発見コマンドを受信することなく、一次局から第1の接続要求コマンドを受信したとき、当該第1の接続要求コマンドに通信方向を指定するフィールドに片方向が指定された旨の情報が設定されている場合、当該第1の接続要求コマンドに対する接続応答レスポンスを送信せずに接続処理を行い、データ転送可能状態へと遷移する第1のプロトコル制御部を備えることを特徴としている。
上記の構成により、さらに、一次局では、第1のプロトコル制御部(例えばIrSimple)は、通信方向を指定するフィールドに片方向が指定された旨の情報を設定した第1の接続要求コマンド(例えばIrSimpleのSNRMに相当)を送信した後、あらかじめ定められた時間経過後、データ転送を開始する。一方、二次局では、一次局から第1の接続要求コマンドを受信したとき、当該第1の接続要求コマンドに通信方向を指定するフィールドに片方向が指定された旨の情報が設定されている場合、当該第1の接続要求コマンドに対する接続応答レスポンスを送信せずに、データ転送可能状態へと遷移する。
これにより、二次局が一次局にレスポンスを返さない、一次局から二次局への片方向通信が可能となる。
なお、上記通信機器は、コンピュータによって実現してもよく、この場合には、コンピュータを上記通信機器の各部として動作させることにより上記通信機器をコンピュータにて実現させる通信機器の通信プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
また、上記通信機器は、上記の各部として機能する通信回路によって実現してもよい。
また、上記通信機器は、該通信機器によって通信を行う携帯電話に好適である。
また、上記通信機器は、該通信機器によって受信したデータに基づいて表示する表示装置に好適である。
また、上記通信機器は、該通信機器によって受信したデータに基づいて印刷する印刷装置に好適である。
また、上記通信機器は、該通信機器によって受信したデータを記録する記録装置に好適である。
最後に、本発明の通信機器は、以下のように構成してもよい。
(1.一次局のSNRM送信)
本発明の通信方法〔1〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、切断状態において、対向局の存在を確認するための局発見パケットであるXIDコマンドを送信することなく、接続要求パケットであるSNRMコマンドを送信し、対向局と接続処理を行う方法であってもよい。
(2.一次局のSNRM送信+XID送信)
本発明の通信方法〔2〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、切断状態において、接続要求パケットSNRMコマンドを送信した後に、予め定められた時間の間、レスポンスがないと判断される場合、局発見パケットであるXIDコマンドを送信し、局発見処理を行う方法であってもよい。
(3.SNRMのDestination Device Addressがグローバルアドレス)
本発明の通信方法は、上記通信方法〔1〕または〔2〕において、特に、前記SNRMコマンドのDestination Device Addressフィールドを0xFFFFFFFF(グローバルアドレス)に設定する方法であってもよい。
(4.SNRMに上位層データを配置)
本発明の通信方法〔4〕は、上記通信方法〔1〕または〔2〕において、特に上位層の接続要求データを前記SNRMコマンド内に配置し、送信する方法であってもよい。
(5.SNRMの上位層データにOBEXのCONNECTを入れる)
本発明の通信方法は、上記通信方法〔4〕において、特に前記上位層の接続要求データに少なくともOBEX層のCONNECTコマンドが含まれる方法であってもよい。
(6.SNRM送信後のXIDコマンドにXIDレスポンスが返ってきたらIrDA接続)
本発明の通信方法は、上記通信方法〔2〕において、特に前記XIDコマンドに対して、XIDレスポンスが返信された場合は、XID−Endを送信した後、既存のIrDAでの接続シーケンスへと移行し、また前記XIDコマンドに対して、一定時間の間レスポンスを受信しない場合は、XID―Endを送信した後、再び前記SNRMコマンド送信を行い、接続処理を行う方法であってもよい。
(7.SNRMの上位層データがPI,PL,PVフォーマット)
本発明の通信方法は、上記通信方法〔4〕において、前記上位層の接続要求データの前に、既存IrDAの接続パラメータの識別子のフォーマットに従った予め定められた識別子と前記接続要求データの長さが配置される方法であってもよい。
(8.SNRMに対するUAで接続完了)
本発明の通信方法〔8〕は、上記通信方法〔1〕または〔2〕において、特に、前記SNRMコマンドを送信後、予め定められた一定時間以内にUAレスポンスを受信した場合、接続処理を完了し、データ転送を行う方法であってもよい。
(9.UAに上位層データがある場合のみ接続完了)
本発明の通信方法〔9〕は、上記通信方法〔8〕において、特に、前記UAレスポンスに上位層のデータが含まれる場合のみ、接続処理を完了し、データ転送を行う方法であってもよい。
(10.UAの上位層データにOBEXのSUCCESSがある場合のみ接続完了)
本発明の通信方法は、上記通信方法〔9〕において、特に、前記上位層のデータ内に、OBEX層のSUCCESSレスポンスが含まれている方法であってもよい。
(11.SNRMに片方向、双方向通信を設定するフラグを配置)
本発明の通信方法〔11〕は、上記通信方法〔1〕または〔2〕において、特に、SNRMコマンド内に片方向通信か、双方向通信かを示す通信方向制御フラグを配置するフィールドを設け、前記通信方向制御フラグが片方向通信を示している場合は、予め定められた一定時間経過後、データ転送を開始する方法であってもよい。
(12.通信方向制御フラグがPI,PL,PVフォーマット)
本発明の通信方法は、上記通信方法〔11〕において、前記通信方向制御フラグを配置するフィールドの前に、既存IrDAの接続パラメータの識別子のフォーマットに従った予め定められた識別子と前記通信方向制御フラグを配置するフィールドの長さが配置される方法であってもよい。
(13.受信側がXIDコマンドを受信しないでSNRMを受信したらUAレスポンス送信)
本発明の通信方法〔13〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、切断状態において、局発見パケットであるXIDコマンドを受信せずに接続要求パケットであるSNRMコマンドを受信した場合、接続応答パケットであるUAレスポンスを送信する方法であってもよい。
(14.受信側が1スロットXIDコマンドを受信したら1つめは無視)
本発明の通信方法〔14〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、切断状態において、局発見パケットであるXIDコマンドを受信した場合に、前記XIDコマンド内に含まれる全スロット数を表すフィールドDiscovery Flagが全スロット数1を示している場合、切断状態から数えて1つめの受信XIDコマンドに対しては、XIDレスポンスを送信しない方法であってもよい。
(15.受信側が1スロットXIDコマンドを2つ以上受信した場合は、XIDレスポンスを送信)
本発明の通信方法は、上記通信方法〔14〕において、特に、切断状態からSNRMコマンドを受信せずに、前記全スロット数1のXIDコマンドを2つ以上受信した場合は、XIDレスポンスを送信した後、対向局からのXID−Endを受信後、既存のIrDAの局発見処理を終了する方法であってもよい。
(16.1スロットでないXIDコマンドを受信した場合は、XIDレスポンスを送信してIrDA接続)
本発明の通信方法は、上記通信方法〔14〕において、特に、全スロット数が1以外のXIDコマンドを受信した場合は、XIDレスポンスを送信した後、対向局からのXID−Endコマンドを受信後、既存のIrDAの局発見処理を終了する方法であってもよい。
(17.XIDを1つ受信した後、SNRMを受信したらUAを返す)
本発明の通信方法〔17〕は、上記通信方法〔14〕において、特に、前記全スロット数1のXIDコマンドを1つ受信した後、SNRMコマンドを受信した場合は、UAレスポンスを送信し、接続処理を行う方法であってもよい。
(18)
本発明の通信方法は、上記通信方法〔13〕または〔17〕において、特に、前記SNRMコマンドのDestination Device Addressフィールドが0xFFFFFFFFであった場合のみ、UAレスポンスを送信し、接続処理を行う方法であってもよい。
(19)
本発明の通信方法〔19〕は、上記通信方法〔13〕または〔17〕において、特に、上位層の接続応答データを前記UAレスポンス内に配置し、送信する方法であってもよい。
(20)
本発明の通信方法は、上記通信方法〔19〕において、特に、前記上位層の接続応答データの中に少なくともOBEX層のSUCCESSレスポンスが含まれている方法であってもよい。
(21)
本発明の通信方法は、上記通信方法〔19〕において、特に、前記上位層の接続応答データの前に、既存IrDAの接続パラメータの識別子のフォーマットに従った予め定められた識別子と前記接続応答データの長さが配置される方法であってもよい。
(22)
本発明の通信方法〔22〕は、上記通信方法〔13〕または〔17〕において、特に、前記SNRMコマンド内に上位層のデータが含まれている場合のみ、UAレスポンスを送信する方法であってもよい。
(23)
本発明の通信方法は、上記通信方法〔22〕において、特に、前記上位層のデータとは、OBEX層のCONNECTコマンドである方法であってもよい。
(24.1つめのSNRMに対するDM送信)
本発明の通信方法〔24〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、切断状態において、切断状態から受信した1つめのパケットがSNRMコマンドであった場合、接続拒否を示すDMレスポンスを送信し、切断処理を行う方法であってもよい。
(25.1スロットXID受信後のSNRMに対するDM送信)
本発明の通信方法〔25〕は、上記通信方法〔14〕において、特に、切断状態において、前記全スロット数1のXIDコマンドを1つ受信した後、SNRMコマンドを受信した場合は、接続拒否を示すDMレスポンスを送信し、切断処理を行う方法であってもよい。
(26.接続拒否DMに上位層データを配置)
本発明の通信方法〔26〕は、上記通信方法〔24〕または〔25〕において、特に、上位層の接続拒否データを前記DMレスポンス内に配置し、送信する方法であってもよい。
(27.接続拒否DMの上位層データがInternal Sever Error)
本発明の通信方法は、上記通信方法〔26〕において、特に、前記上位層の接続拒否データに少なくともOBEX層のInternal Server Errorレスポンスが含まれている方法であってもよい。
(28.接続拒否DMの上位層データがPI,PL,PVフォーマット)
本発明の通信方法は、上記通信方法〔26〕において、特に、前記上位層の接続拒否データの前に、既存IrDAの接続パラメータの識別子のフォーマットに従った予め定められた識別子と前記接続拒否データの長さが配置される方法であってもよい。
(29.SNRM内の通信方向制御フラグが片方向を示す場合はUAを返さない)
本発明の通信方法〔29〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、切断状態において、接続要求パケットであるSNRMコマンドを受信した場合において、SNRMコマンド内に、通信方向が片方向通信か双方向通信かを示す通信方向制御フラグが予め定められたフォーマットにより配置され、前記通信方向制御フラグが片方向通信を示している場合は、UAレスポンスを送信せずにデータ転送可能状態へと遷移する方法であってもよい。
(30.SNRM内の通信方向制御フラグが片方向を示していてかつ上位層データがある場合のみデータ転送状態へと遷移)
本発明の通信方法は、上記通信方法〔29〕において、特に、前記SNRMコマンド内に上位層のデータが配置されている場合のみ、データ転送可能状態へと遷移する方法であってもよい。
(31.SNRM内の通信方向制御フラグが片方向を示していてかつ上位層データ(OBEXのCONNECT)がある場合のみデータ転送状態へと遷移)
本発明の通信方法は、上記通信方法〔29〕において、特に、前記上位層のデータには、少なくともOBEX層のCONNECTコマンドが含まれている方法であってもよい。
(32.DISCに上位層データを配置する)
本発明の通信方法〔32〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、接続が確立した状態において、切断処理を行う場合に、切断要求であるDISCコマンド内に上位層の切断要求データを配置し、送信する方法であってもよい。
(33.DISC内上位層データにOBEXのDISCONNECTを入れる)
本発明の通信方法は、上記通信方法〔32〕において、特に、前記上位層の切断要求データの中に少なくともOBEX層のDISCONNECTコマンドが含まれている方法であってもよい。
(34.DISC内上位層データがPI,PL,PVフォーマット)
本発明の通信方法は、上記通信方法〔32〕において、特に、前記上位層の切断要求データの前に、既存IrDAの接続パラメータの識別子のフォーマットに従った予め定められた識別子と前記切断要求データの長さが配置される方法であってもよい。
(35.DISCに対するUA送信時に上位層データを配置する)
本発明の通信方法〔35〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、接続が確立した状態において、DISCコマンドを受信した場合、UAレスポンスを送信する際に、上位層の切断応答データをUAレスポンス内に配置する方法であってもよい。
(36)
本発明の通信方法は、上記通信方法〔35〕において、特に、前記上位層のデータには、少なくともOBEX層のSUCCESSレスポンスが含まれている方法であってもよい。
(37)
本発明の通信方法は、上記通信方法〔35〕において、特に、前記上位層の切断要求データの前に、既存IrDAの接続パラメータの識別子のフォーマットに従った予め定められた識別子と前記切断要求データの長さが配置される方法であってもよい。
(38.接続完了後のDM送信時に上位層データを配置する)
本発明の通信方法〔38〕は、赤外線を用いて所定の容量を有する転送データを送受信する通信方法において、接続が確立した状態において、上位層から切断要求があった場合、DMレスポンスを送信する際に、上位層の切断要求データをDMレスポンス内に配置する方法であってもよい。
(39.接続完了後のDM送信時にOBEXのInternal Sever Errorを配置する)
本発明の通信方法は、上記通信方法〔38〕において、特に、前記上位層のデータには、少なくともOBEX層のInternal Server Errorレスポンスが含まれている方法であってもよい。
(40)
本発明の通信方法は、上記通信方法〔38〕において、特に、前記上位層の切断要求データの前に、既存IrDAの接続パラメータの識別子のフォーマットに従った予め定められた識別子と前記切断要求データの長さが配置される方法であってもよい。
(41.送信回路、受信回路、送受信回路)
本発明の送信回路、受信回路、送受信回路は、上記いずれかの通信方法を実現可能なものである。
(42.携帯電話)
本発明の携帯電話は、上記いずれかの通信方法を実現可能なものである。
(43.表示装置)
本発明の表示装置は、上記いずれかの通信方法を実現可能なものである。
(44.印刷装置)
本発明の印刷装置は、上記いずれかの通信方法を実現可能なものである。
(45.記録装置)
本発明の記録装置は、上記いずれかの通信方法を実現可能なものである。
また、本発明の通信方法は、赤外線を用いて所定の容量を有する転送データを送信する通信方法において、通信相手の局を探すための局発見コマンド(XID)を送信することなく、自局の最大転送可能速度、最大受信可能データ長等のパラメータを、SNRMコマンドを用いて通信相手局に送信する方法であってもよい。
また、本発明の通信方法は、赤外線を用いて所定の容量を有する転送データを受信する通信方法において、送信機より受信する第一のコマンドが、送信機の最大転送可能速度、最大受信可能データ長等のパラメータを知らせるSNRMコマンドであった場合に、自局の最大転送可能速度、最大受信可能データ長等のパラメータをUAレスポンスを用いて送信する方法であってもよい。
さらに、本発明の通信方法は、SNRMコマンドのDestination Device Addressフィールドを0xFFFFFFFFに設定する方法であってもよい。
さらに、本発明の通信方法は、前記受信したSNRMコマンドのDestination Device Addressフィールドが0xFFFFFFFFである場合のみ、直ちに前記UAレスポンスを送信する方法であってもよい。
さらに、本発明の通信方法は、SNRMコマンドに上位層からのユーザデータを入れる領域を設け、前記接続パラメータと合わせて、上位層からのユーザデータも送信する方法であってもよい。
さらに、本発明の通信方法は、前記上位層からのユーザデータに、OBEXのCONNECTコマンドが含まれている方法であってもよい。
さらに、本発明の通信方法は、UAレスポンスに上位層からのユーザデータを入れる領域を設け、前記接続パラメータと合わせて、上位層からのユーザデータも送信する方法であってもよい。
さらに、本発明の通信方法は、前記上位層からのユーザデータに、OBEXのSUCCESSレスポンスが含まれている方法であってもよい。
また、本発明の通信方法は、赤外線を用いて所定の容量を有する転送データを受信機に送信する通信方法において、特にDISCコマンドに上位層からのユーザデータを入れる領域を設け、上位層からのユーザデータも送信する方法であってもよい。
さらに、本発明の通信方法は、前記上位層からのユーザデータに、OBEXのDISCONNECTコマンドが含まれている方法であってもよい。
さらに、本発明の通信方法は、1回のパケットの交換で、下位層から上位層までの接続または切断を完了させる方法であってもよい。
さらに、本発明の通信方法は、前記SNRMコマンドを送信後、予め定められた一定時間相手局からのUAレスポンスを受信しなかった場合には、XIDコマンドを送信する方法であってもよい。
さらに、本発明の通信方法は、前記XIDコマンドに対して、XIDレスポンスを受信した場合は、XID−ENDコマンドを送信後、IrDAに準拠したSNRMコマンドを送信し、IrDAの接続プロセスに移行する方法であってもよい。
さらに、本発明の通信方法は、前記XIDコマンドを送信後、あらかじめ定められた一定時間相手局からXIDレスポンスを受信しなかった場合は、XID−ENDコマンドを送信後、予め定められた時間待った後、再びSNRMコマンドを送信する方法であってもよい。
さらに、本発明の通信方法は、受信した第1のコマンドがXIDコマンドであった場合は、XIDコマンドを受信したことを記憶し、SNRMコマンドを受信せず、再びXID−ENDコマンドではないXIDコマンドを受信した場合は、IrDAで予め定められたルールに従ってXIDレスポンスを送信する方法であってもよい。
さらに、本発明の通信方法は、受信した第1のコマンドがXIDコマンドであった場合は、XIDコマンドを受信したことを記憶し、自局がXIDレスポンスを送信していない状態で、SNRMコマンドを受信した場合は、前記UAレスポンスを送信する方法であってもよい。
さらに、本発明の通信方法は、受信した第1のコマンドがXIDコマンドであった場合は、XIDコマンド内のDiscovery flag領域の値を確認し、XIDスロットが6、8、16のいずれかを意味する値であった場合は、IrDAで予め定められたルールに従ってXIDレスポンスを送信する方法であってもよい。
さらに、本発明の通信方法は、特にSNRMコマンドに通信方向が片方向か双方向化を示すフラグを付加し、前記接続パラメータとあわせて送信する方法であってもよい。
さらに、本発明の通信方法は、通信方向を示すフラグを片方向に設定したSNRMコマンドを送信後、受信局からの応答を待つことなく、データ転送を開始する方法であってもよい。
さらに、本発明の通信方法は、SNRMコマンドに通信方向を示すフラグが付加され、かつ通信方向が片方向と設定されたコマンドを受信した場合、UAレスポンスを返すことなく、データパケットの受入状態に遷移する方法であってもよい。
また、本発明の送受信回路は、上記の通信方法を実現可能な各回路素子が設けられている。
また、本発明の送受信機は、上記の通信方法を実現可能な各回路構成が設けられている。
発明の詳細な説明の項においてなされた具体的な実施態様または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と次に記載する特許請求事項との範囲内で、いろいろと変更して実施することができるものである。