(57)【特許請求の範囲】
【請求項１】
電子機器間でパケット単位でデータの受け渡しを行う非同期方式のデータ通信方法において、
送信側において、
送信データを１つのパケットとして転送する場合には、通信のハンドシェーク情報と、該送信データとを連結して１つのパケットを形成し、該ハンドシェーク情報及び送信データを１パケットとして転送し、
送信データを複数のパケットに分けて転送する場合には、該送信データを所定のパケット分割サイズごとに分割し、
前記送信データを分割した最初の送信データを、最初のパケットであることを示すハンドシェーク情報と連結して最初のパケットを形成し、
前記最初のパケットを１パケットとして転送し、
前記送信データを分割した２番目以降の送信データを個別に含むパケットを形成し、
各パケットを１パケットとして転送し、
前記送信データを分割した最後の送信データを、最後のパケットであることを示すハンドシェーク情報と連結して最後のパケットを形成し、
前記最後のパケットを１パケットとして転送し、
受信側において、
前記送信側から転送されたパケットを受信し、
前記受信したパケット中のハンドシェーク情報をハンドシェークレジスタに書き込むとともに、前記受信したパケット中の送信データをデータレジスタに書き込み、
前記ハンドシェークレジスタに書き込みがあった場合に、前記ハンドシェークレジスタに書き込まれたハンドシェーク情報に基づいて、前記受信したパケットが最初のパケットであるかどうか判定し、
前記受信したパケットが最初のパケットであると判定した時には、該最初のパケット中の送信データをデータレジスタからバッファに転送するとともに、その後に受信したパケット中の送信データをバッファに順次転送し、
前記ハンドシェークレジスタに書き込みがあった場合に、前記ハンドシェークレジスタに書き込まれたハンドシェーク情報に基づいて、前記受信したパケットが最後のパケットであると判定した時には、該ハンドシェーク情報と連結して送られてきた送信データのバッファへの転送を終了することを特徴とする非同期データ通信方法。
【請求項２】
通信によるステータス情報と、戻りデータと、を連結して１つのパケットを形成し、ステータス情報及び戻りデータを１パケットで転送することを特徴とする請求項１記載の非同期データ通信方法。
【請求項３】
受信側の機器に対して指示を与えるコマンド情報と、該コマンド情報に関連するパラメータデータと、を連結して１つのパケットを形成し、コマンド情報及びパラメータデータを１パケットで転送することを特徴とする請求項１記載の非同期データ通信方法。
【請求項４】
ＩＥＥＥ１３９４バスにおけるアシンクロナス転送に適用されることを特徴とする請求項１から３の何れかに記載の非同期データ通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は複数台の電子機器を連係するインターフェースバスにおける非同期方式のデータ通信方法に係り、特にＩＥＥＥ１３９４バスのアシンクロナス転送に用いて好適なデータ通信方法に関する。
【０００２】
【従来の技術】
複数台の電子機器どうしを互いに通信可能に接続するインターフェースとして、例えば、ＩＥＥＥ１３９４バスが知られている。このＩＥＥＥ１３９４バスは活線抜去が可能で最大で６３台の機器を主従関係なくデイジー・チェイン（縦列）又はツリー状に自由に接続・ノード分岐することができる。
【０００３】
ＩＥＥＥ１３９４バスは、図１０に示すようにアイソクロノス（Isochronous)転送モード（同期転送方式）と、アシンクロナス(Asynchronous)転送モード（非同期転送方式）との２つの転送モードを有しており、公称サイクル周期（＝１２５μｓ）のうち、最大８０％を上限としてアイソクロノス転送（Iso.転送）に割り当てることができ、残りをアシンクロナス転送（Async.転送）に利用することができる。
【０００４】
アイソクロノス転送（Iso.転送）はアシンクロナス転送（Async.転送）よりも優先して行われ、１２５μｓ毎に発生するアイソクロノスサイクル毎に、予め最大データ量を決めて確保したアイソクロノスチャンネルに、確保したデータ量以内でデータを流すIso.転送が完了した後に、非同期によるAsync.転送が行われる。また、Iso.転送を使用しないという選択も可能であり、この場合、１サイクル全てを非同期のAsync.転送に用いることができる。ＩＥＥＥ１３９４の転送速度は、現在の規格では１００Ｍbps 〜４００Ｍbps であるが、将来的には更なる高速化も検討されている。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記ＩＥＥＥ１３９４では、バスに接続された各電子機器（ノード）からは、最短でも１２５μｓに１度しか非同期転送パケットを出力できないため、データ量の小さなアシンクロナスパケットが多くなると、データ転送効率が悪くなるという欠点がある。
【０００６】
かかる課題について、図１１のように電子カメラとデジタルプリンタをＩＥＥＥ１３９４バスを利用して接続した場合を例に具体的に説明する。ホスト側に相当するカメラ１０は、プリント指示などの各種コマンド情報と、必要に応じてコマンドの詳細情報を示すパラメータ、及びプリントすべき実際の画像データ等をターゲット側のプリンタ１２に転送する。一方、プリンタ１２はカメラ１０から送られてくるコマンドに対してその指示内容を履行できるか否かを示すステータス（Status）情報や自身の機器の状態等を示すパラメータ等をカメラ１０側に返すことになる。
【０００７】
図１２は、カメラ−プリンタ間でやり取りされる通信の流れを示す概念図であり、図１３は図１２に対応するタイムチャートである。これらの図に示すように、カメラ１０からコマンドパケット（図中「Command 」と記す。) が出され、これを受けたプリンタ１２は認識（図中「Ack.」と記す。）を返答する。認識はコード化されており、完了(Good)、保留、ビジー、エラーなどが表現できる。一方、プリンタ１２側は、受入したコマンドに応じたデータパケットを送出し、カメラ１０側がこれを受けて認識（Ack.）を返信する。このようなデータパケットの送り出しと、これに対する認識（Ack.）の返信とが１サイクル（１２５μｓ）内に行われ、パケット単位のデータ転送がサイクル周期毎に繰り返される。このとき、プリンタ１２は、ステータス情報のパケットと、ステータスに関連するパラメータ等のデータパケットとを別々のパケットとして送出している。
【０００８】
一方、カメラ１０は１２５μｓ毎にプリンタ１２から送られてきたデータやステータスを、図１３に示すように、メモリ１３上のデータレジスタ１４、及びステータスレジスタ１５にそれぞれ格納し、プリンタ１２はカメラ１０から送られてきたコマンドやデータをメモリ１６のコマンドレジスタ１７、及びデータレジスタ１８にそれぞれ格納する。
【０００９】
仮に、ＩＥＥＥ１３９４バスでIso.転送を使わずに１２５μｓの全てをAsync.転送に使うことにした場合、２００Ｍbps 回線では１回のパケットで約１０００バイトのデータを転送できる。１パケットでこれほどのデータ量を送ることができるにもかかわらず、実際にはステータスやコマンドなどのデータ量は１バイトから多くても２５６バイト程度であり、かかる小さなパケットを１２５μｓ毎に転送しなければならず、データ転送効率を悪化させる原因となっていた。
【００１０】
本発明はこのような事情に鑑みてなされたもので、バケット単位でデータの転送を行う非同期方式のデータ通信において、バケット数を削減しながら必要な情報は不足なく送信して、効率的なデータ転送を可能にするデータ通信方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明は前記目的を達成する為に、電子機器間でパケット単位でデータの受け渡しを行う非同期方式のデータ通信方法において、送信すべき複数の通信データを連結して１つのパケットを形成し、２種類以上の通信データを１パケットとして転送するようにしたことを特徴としている。
【００１２】
本発明によれば、通信データを連結し、複数の情報内容を１つのパケットとして送るようにしたので、従来、情報の内容毎に個別に１つのパケットで転送したいた方法に比べて、パケット数を削減することができる。従って、本発明を所定のサイクル周期毎にパケットの送出が行われるインターフェースに適用することにより、データの転送効率を一層高めることができる。
【００１３】
例えば、通信によるステータス情報と、戻りデータと、を連結し、これらを１パケットで転送する態様が考えられる。また、受信側の電子機器に対して指示を与えるコマンド情報と、該コマンド情報に関連するパラメータデータと、を連結して１パケットを形成してもよいし、通信のハンドシェーク情報と、送信データとを連結して１つのパケットを形成してもよい。
【００１４】
特に、本発明に係る非同期データ通信方法をＩＥＥＥ１３９４インターフェースに適用すれば、ＩＥＥＥ１３９４バスにおけるアシンクロナス通信のデータ転送効率を向上させることができる。
【００１５】
【発明の実施の形態】
以下添付図面に従って本発明に係る非同期データ通信方法の好ましい実施の形態について詳説する。
先ず、本発明に係る非同期データ通信方法の概念を従来の方法との比較において述べる。図１には、本発明に係る非同期データ通信方法をＩＥＥＥ１３９４バスに適用した例が示され、ＩＥＥＥ１３９４バスを利用した電子カメラとデジタルプリンタから成るシステムにおける両者間のデータの受け渡し例が模式的に表されている。また、図２には図１に対応するタイムチャートが示されている。図１及び図２は、既述した従来の通信方法における図１２及び図１３にそれぞれ対応するものであり、両者を比較すると明らかなように、本実施の形態においては、ステータスとその関連データの転送形態が従来のものと相違する。
【００１６】
図１及び図２に示したように、ホスト側に相当するカメラ１０からコマンドパケットが出され、これを受けたプリンタ１２は認識（Ack.）を返答する。次いで、プリンタ１２は、カメラ１０から受入したコマンドが求める情報に係るデータパケットを送出し、カメラ１０側がこれを受けて認識（Ack.）を返信する。このようなデータパケットの送り出しと、これに対する認識（Ack.）の返信とが１２５μｓ毎に繰り返される。ここまでは図１２及び図１３で説明した従来の方法と同様である。
【００１７】
しかしながら、本実施の形態に係るデータ通信方法は、ステータスと、このステータスに関連するパラメータデータ（例えば、エラーというステータスに対して、具体的にどういうエラーなのかを示す情報）とを連結し、これらを１つのパケットとして送出する点で、両者を別々のパケットで分けて送り出す従来の方法と異なる。
【００１８】
ステータスのデータ量は数バイト程度と小さく、またステータス関連データも多くて２５６バイト程度であり、両者を連結しても１パケットで許容されるデータ量（１０００バイト）以内である。したがって、これら２つの情報を組み合わせて１パケットで同時に送ることで従来の方法（図１２、図１３）に比べてパケット数を削減している。
【００１９】
また、ステータスとその関連データとが連結されたパケットを受信するカメラ１０は、図３に示すように、メモリ２０上にステータスレジスタ２２とデータレジスタ２４とを有しており、１パケットで受入するステータスと、その関連データとを同時にそれぞれステータスレジスタ２２及びデータレジスタ２４に格納する。
【００２０】
一方、プリンタ１２は、メモリ３０上にコマンドレジスタ３２とデータレジスタ３４とを有しており、カメラ１０から受入したコマンド及びデータをそれぞれコマンドレジスタ３２及びデータレジスタ２４に格納する。なお、図には示されていないが、コマンドと、その詳細なパラメータとを連結して１パケットで送るという態様も可能であり、この場合には１パケットで受入するコマンドとそのパラメータとを、それぞれコマンドレジスタ３２及びデータレジスタ３４に同時に格納するように構成する。
【００２１】
次に、図４を参照しながら、より具体的な例で説明する。
図４には、ＩＥＥＥ１３９４バスを利用した電子カメラとデジタルプリンタの間にＳＣＳＩコマンドを流す場合の通信シーケンスが示されている。バスリセットが完了した後、先ず、カメラ１０からプリンタ１２に対して、プリンタ１２の準備の可否を問う準備確認要求コマンドを発行する。プリンタ１２は受入したコマンドに呼応して認識（Ack.）を返す。例えば、準備が整っていれば「Good」を示す認識（Ack.）を返答する。
【００２２】
次いで、次のサイクル周期（＝１２５μｓ）でカメラ１０からプリンタ１２に対して、現在のプリンタ１２の設定状況を読み込むことを要求するモードセンスコマンドを発行し、プリンタ１２はこれに認識（Ack.）を返す。モードセンスコマンドを受入したプリンタ１２は、次のサイクル周期でステータスと、モードセンス情報（戻りデータに相当）とを連結し、これらを１パケットとして送出する。なお、モードセンス情報には、現在設定されている画素数（前回の使用時に設定したもの）、用紙サイズ、印字開始の起点位置などの情報が含まれる。
【００２３】
かかるパケットを受信したカメラ１０は認識（Ack.）を返信した後、モードセンス情報のうち必要な情報のみを書き換えて、次のサイクル周期でモードセレクトコマンドとともに、そのモード選択データを１パケットでプリンタ１２側に送信する。プリンタ１２はこのパケットに対して認識（Ack.）を返し、カメラ１０から受入したモードセレクトコマンドとその選択データに基づいて画素数、用紙サイズ等の設定を変更する。
【００２４】
こうして、両者の環境が整えられた後、カメラ１０側からプリントの実行を指示するプリントコマンドと、このコマンドに付随する関連パラメータ（例えば、プリント枚数や、データ数）とが１パケットでプリンタ側に送り出される。このパケットを受信したプリンタ１２は認識（Ack.）を返す。
プリントコマンドを受信したプリンタ１２は、プリントデータの受入待機状態となり、カメラ１０側から出されるプリントデータ（画像データ）の受信を待つ。
【００２５】
プリントデータはＮブロックに区分けされ、各ブロック毎に順次プリンタ側に送り出される。プリンタは受入する１パケット毎に認識（Ack.）を返しながら、プリントデータをメモリ３０上に格納していく。
全てのプリントデータの転送が完了したら、プリンタ１２はプリント処理を実行する。そして、プリントを完了した時点でプリントの完了を示すステータスを発行する。カメラ１０はこのプリント完了通知を受信したら認識（Ack.）を返す。
【００２６】
上述した通信シーケンスにおいて従来の方法との主な相違点を改めて指摘すると、第１に、カメラ１０から発行されたモードセンスコマンドに対するプリンタ１２の応答に関して、ステータスとモードセンス情報とを連結して１つのパケットとして送り出している。第２に、カメラ１０は、モードセレクトコマンドと、これに関連する選択情報とを連結して１つのパケットとしてプリンタ１２側に送り出している。そして、第３に、カメラ１０はプリントコマンドとこれに関連するパラメータとを連結して１つのパケットとしてプリンタ側に送り出している。
【００２７】
このように、従来別々のパケットとして送られていたステータスとこれに付随するパラメータ、或いは、コマンドとこれに付随するパラメータを１つのパケットとして一緒に送信するようにしたので、従来の方法に比べてパケット数を削減することができる。したがって、一定のサイクル周期（＝１２５μｓ）毎にのみパケットを出すことができるという規則を有するＩＥＥＥ１３９４バスにおいて、転送効率を高めることができる。
【００２８】
なお、コマンドとデータの組み合わせ形態は上述以外にも、ルックアップテーブル（ＬＵＴ）のダウンロードコマンドと、これに対応するパラメータ（データ）という組み合わせ等も可能である。
また、上述の例では、ステータスとパラメータ、又はコマンドとパラメータのように２つのデータ項目を連結して１つのパケットとして送る場合を説明したが、連結するデータ項目は２つに限らず、３つ以上の複数項目を連結してもよい。
【００２９】
次に、本発明の第２の実施の形態について説明する。
図５には、本発明の第２の実施の形態に係るデータ通信方法の概念図が示されている。送信側のバッファ３８には、送信すべきデータ（送信データ）がｎバイト毎に分割された状態で格納されている。この送信データを所定のパケットフォーマットに従って送り出す際に、２種類のパケットフォーマットが用意されている。
【００３０】
第１のフォーマットは、符合４１に示したように、パケットヘッダ４４、ハンドシェークに必要な情報（ハンドシェーク情報）４５、ｎバイト分の送信データ４６、及びＣＲＣ（サイクリック・リダンダンシ・チェック）コード４７等の伝送誤り制御コードから構成される。ハンドシェーク情報とは、この例では、送信データを送る際の最初のパケットと最後のパケットを示すフラグを意味する。
【００３１】
また、第２のフォーマットは、符合５２に示したように、パケットヘッダ５４、ｎバイト分の送信データ５６、及びＣＲＣコード５７等から構成される。
詳細な通信シーケンスについては後述するが、送信データを送るために複数トランザクション必要な場合に、最初のパケットと最後のパケットを第１のフォーマットに従って転送し、その他のパケットについては第２のフォーマットに従って転送する（図７参照）。
【００３２】
一方、受信側のメモリ６０にはハンドシェークレジスタ６２とｎバイト分のデータレジスタ６４が設けられ、受入したハンドシェーク情報やデータは、これらレジスタ（６２、６４）に格納される。そして、データレジスタ６４に格納されたデータはバッファ６８に転送されるようになっている。
続いて、上記の如く構成された本発明の実施の形態に係るＩＥＥＥ１３９４インターフェースのデータ通信シーケンスについて説明する。
【００３３】
図６は、送信側の処理の流れを示すフローチャートである。送信処理が開始されると、先ず、ポインタ（pointer)をバッファ３８における送信データの先頭番地に設定するとともに、ハンドシェークフラグ（HNDSHK）を１st pkt（最初のパケットであることを示すフラグ）に設定する（ステップＳ１１０）。
次いで、ポインタにパケット分割サイズｎを加えた値と、バッファ３８に於ける送信データの最終番地とを比較して、その大小関係を判別する（ステップＳ１１２）。ポインタが送信データの最終番地よりも小さいと判定した場合（Ｎｏ判定の場合）は、バッファ３８内の全ての送信データを１トランザクションで転送しきれないことを意味しており、送信データを複数のパケットに分けて転送することになる。かかる場合、次のステップＳ１１４において、ハンドシェークフラグが１st pktに設定されているか否かを判別し、最初のパケットであるか、２番目以降のパケットであるかを判断する（ステップＳ１１４）。
【００３４】
ここで最初のパケットであると判定した場合（Ｙｅｓ判定の場合）には、図５で説明した第１のフォーマット（符合４１）に従ってパケットを以下に示す情報で埋める。即ち、書込アドレスとしてハンドシェークレジスタ６２のアドレスを記述するとともに、データ領域にはハンドシェークフラグ（HNDSHK）及びポインタ（この場合、送信データ先頭番地）からｎバイト分の送信データを記述する（ステップＳ１１６）。
【００３５】
そして、設定されたパケットのライトトランザクションを発行する（ステップＳ１２０）。これにより、第１のフォーマットによる最初のパケットが送信される。その後、ポインタにパケット分割サイズｎを加えた値を新たにポインタとして設定し（ステップＳ１２２）、処理はステップＳ１１２に戻る。
続いて、ステップＳ１２２で更新されたポインタに対して、パケット分割サイズｎを加えた値と、送信データの最終番地とを比較する（ステップＳ１１２）。このとき、ポインタが送信データの最終番地よりも小さければ、次のステップＳ１１４において、ハンドシェークフラグが１st pktに設定されているか否かを判断する。ハンドシェークフラグは既述のとおりステップＳ１１０において、最初のパケット（第１のフォーマットのパケット）を形成する時に限りHNDSHK＝１st pktに設定されており、ステップＳ１１６及びステップＳ１２０を経て、既に最初のパケットを転送した後（２番目以降のパケット）においては、ハンドシェークフラグはHNDSHK＝１st pktに設定されない。従って、２番目以降のパケットを転送する時に、当該ステップＳ１１４に達した場合には、ここでの判定はＮｏとなる。
【００３６】
ステップＳ１１４において、２番目以降のパケットであると判定した場合には、処理はステップＳ１１８に進み、図５で説明した第２のフォーマット（符合５２）に従ってパケットを以下に示す情報で埋める。即ち、書込アドレスとしてデータレジスタ６４のアドレスを記述するとともに、データ領域にポインタからｎバイトの送信データ（次のｎバイト区分の送信データ）を記述してパケットを形成する（ステップＳ１１８）。そして、このパケットのライトトランザクションを発行する（ステップＳ１２０）。こうして、第２のフォーマットによるパケットが送信され、処理はステップＳ１２２を経て、ステップＳ１１２に戻る。ステップＳ１１２においてポインタが送信データの最終番地よりも小さいと判定している間は、上述のステップＳ１１２〜Ｓ１２２の処理が繰り返される。
【００３７】
他方、ステップＳ１１２において、ポインタが送信データの最終番地よりも大きいと判定した場合（Ｙｅｓ判定の場合）には、次に、ハンドシェークフラグが１st pktに設定されているか否かを判別する（ステップＳ１２４）。最初のパケットを転送する時にこのステップＳ１２４に達した場合に限り、ここでの判定がＹｅｓとなり、２番目以降のパケット転送時に当該ステップＳ１２４に達した場合には、ここでの判定はＮｏとなる。
【００３８】
ステップＳ１２４でＮｏ判定の場合は、ハンドシェークフラグをHNDSHK＝Last pktに設定し（ステップＳ１２６）、第１のフォーマットに従ってパケットを以下の情報で埋める。即ち、書込アドレスとしてハンドシェークレジスタ６２のアドレスを記述するとともに、データ領域にはハンドシェークフラグ（HNDSHK）及びポインタからｎバイト分の送信データを記述したパケットを形成する（ステップＳ１３０）。
【００３９】
そして、設定されたパケットのライトトランザクションを発行する（ステップＳ１３２）。これにより、第１のフォーマットによる最後のパケットが送信され、送信処理が完了する。
他方、ステップＳ１２４においてＹｅｓ判定の場合は、データを送るのに１トランザクションで完了する場合を意味しており、かかる場合にはハンドシェークフラグをHNDSHK＝1st pkt ＋Last pktに設定して（ステップＳ１２８）、ステップＳ１３０に進む。そして、第１のフォーマットに従って書込アドレスとしてハンドシェークレジスタ６２のアドレスを記述し、データ欄にはポインタからｎバイト分の送信データ（この場合、送信データ先頭番地からｎバイト分）を記述したパケットを形成し（ステップＳ１３０）、第１フォーマットによるパケット転送を行う（ステップＳ１３２）。
【００４０】
図７及び図８には、上述した送信処理のタイムチャートが示され、図７はデータを送るのに複数のトランザクションが必要な場合の例、図８はデータを送るのに１トランザクションで済む場合の例である。これらの図に示したように、複数トランザックション必要な場合には、最初のパケットと最後のパケットについて第１のフォーマットによってハンドシェークデータと送信データとを連結したパケットを形成し、これを１パケットとして転送する。また、データを送るのに１トランザクションで完了する場合についても、ハンドシェークデータと送信データを連結したパケットを形成し、これを１パケットとして転送する。
【００４１】
図９は、受信側の処理の流れを示すフローチャートである。同図に示した受信割込処理は、ＩＥＥＥ１３９４バスのトランザクション受信割り込みによって起動し、先ず、ハンドシェークレジスタ６２への書き込みであるか否かを判断する（ステップＳ１６０）。ハンドシェークレジスタ６２への書き込みが行われた場合には、ハンドシェークレジスタ６２に最初のパケットであることを示すフラグ（1st pkt ）が書き込まれたか否かを判断する（ステップＳ１６２）。
【００４２】
ここで最初のパケットであると判定した時には、ポインタをバッファ６８の先頭番地に設定し（ステップＳ１６４）、ハンドシェークデータと連結して送られてきたｎバイト分のデータの中身（データレジスタ６４に一時格納したデータ）をポインタの示すアドレス（この場合、バッファ６８の先頭番地）に転送する（ステップＳ１６６）。
【００４３】
その後、ハンドシェークレジスタ６２に最後のパケットであることを示すフラグ（Last pkt）が書き込まれているか否かを確認する（ステップＳ１６８）。送信側から図８に示したような１トランザクション完了型のパケットが送出された場合には、ハンドシェークデータとして最初のパケットであると同時に最後のパケットであることを示すフラグ（HNDSHK＝1st pkt ＋Last pkt）が含まれているので、かかる場合はステップＳ１６８の判断がＹｅｓとなって、データ受信は完了する。
【００４４】
他方、送信側から図７に示したような複数トランザクション型の最初のパケットが送出された場合には、ステップＳ１６８の判断はＮｏとなって処理は割込み待ちに移行する。
次に、２番目以降のパケットの受信割り込みが開始されると、再びステップＳ１６０でハンドシェークレジスタ６２への書き込みの有無を判別する。複数トランザクション型の転送において、第２フォーマットによるパケット転送の場合は、ハンドシェークレジスタ６２への書き込みがないので、かかる場合ステップＳ１６０の判定はＮｏとなり、処理はステップＳ１７２へ進む。ステップＳ１７２では、データレジスタ６４への書き込みの有無を判別し、データレジスタ６４への書き込みが無ければ、所定の取り決めに従ってデータ受信以外の他の処理を実行する（ステップＳ１７４）。
【００４５】
一方、ステップＳ１７２においてデータレジスタ６４への書き込みが有る場合は、現在設定されているポインタ（第２番目のパケットの場合にはバッファ６８の先頭番地）にパケット分割サイズｎを加え、その値を新たなポインタとして設定するとともに（ステップＳ１７６）、データレジスタ６４に一時格納したｎバイト分のデータの中身をポインタの示すアドレスに転送する（ステップＳ１８０）。その後、割り込み待機となる。
【００４６】
図７に示した第２のフォーマットによるパケットを転送する期間中、上述のステップＳ１６０、Ｓ１７２〜Ｓ１８０の処理が繰り返される。
やがて、最後のパケット（第１のフォーマットによるパケット）の処理になると、ハンドシェークレジスタ６２への書き込みが行われるので、ステップＳ１６０の判別においてＹｅｓ判定となり、処理はステップＳ１６２へ進む。複数トランザクション型における最後のパケットの場合、ハンドシェークレジスタ６２には最後のパケットであることを示すフラグ（HNDSHK＝Last pkt）が書き込まれているので、ステップＳ１６２の判別においては、Ｎｏ判定となり、処理はステップＳ１８２へ移行する。
【００４７】
即ち、最後のパケットであることを示すフラグの確認を行った後（ステップＳ１８２）、現在設定されているポインタにパケット分割サイズｎを加えた値を新たなポインタとして設定する（ステップＳ１８４）。次いで、ハンドシェークデータと連結して送られたｎバイト分のデータの中身（データレジスタ６４に一時格納したデータ）をポインタの示すアドレスに転送し（ステップＳ１８６）、データ受信は完了する。
【００４８】
本実施の形態によれば、送信データとハンドシェークのためのデータとを１つのパケットとして送るようにしたので、これらのデータを別々のパケットとして送る従来の方法にくらべて、通信効率を向上させることができる。
上記実施の形態では、ＩＥＥＥ１３９４アシンクロナス通信方式を例に説明したが、本発明は他の形式の非同期データ通信にも適用することができる。
【００４９】
【発明の効果】
以上説明したように本発明に係る非同期データ通信方法によれば、送信すべきデータを連結し、複数の情報内容を１つのパケットとして送るようにしたので、通信データ毎に１つのパケットで転送していた従来の方法に比べて、パケット数を削減することができ、データの転送効率を高めることができる。
【００５０】
特に、本発明をＩＥＥＥ１３９４インターフェースへ適用すれば、ＩＥＥＥ１３９４バスにおけるアシンクロナス転送のデータ転送効率を向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るＩＥＥＥ１３９４バスのアシンクロナス転送におけるデータの受け渡し例を示す概念図
【図２】図１に示したデータ転送に対応するタイムチャート
【図３】図１に示したカメラ及びプリンタのメモリマップを示す概念図
【図４】ＩＥＥＥ１３９４バスを利用した電子カメラとデジタルプリンタの間にＳＣＳＩコマンドを流す場合の通信シーケンスを示す説明図
【図５】本発明の第２の実施の形態に係るデータ通信方法を説明する為の概念図
【図６】本発明の第２の実施の形態における送信処理の流れを示すフローチャート
【図７】データを送るのに複数のトランザクションが必要な場合のタイムチャート
【図８】データを送るのに１トランザクションで完了する場合のタイムチャート
【図９】本発明の第２の実施の形態における受信割込処理の流れを示すフローチャート
【図１０】ＩＥＥＥ１３９４バスのデータ転送方式を示す説明図
【図１１】電子カメラとデジタルプリンタをＩＥＥＥ１３９４バスを利用して接続したシステムを示すブロック図
【図１２】従来のＩＥＥＥ１３９４バスのアシンクロナス転送におけるデータの受け渡し例を示す概念図
【図１３】図１２に示したデータ転送に対応するタイムチャート
【図１４】従来のシステムにおけるカメラ及びプリンタのメモリマップを示す概念図
【符号の説明】
１０…カメラ
１２…プリンタ
２２…ステータスレジスタ
２４…データレジスタ
３２…コマンドレジスタ
３４、６４…データレジスタ
４５…ハンドシェーク情報
４６、５６…送信データ
３８、６８…バッファ
６２…ハンドシェークレジスタ
【図１】
0003922326.tif 000002
【図２】
0003922326.tif 000003
【図３】
0003922326.tif 000004
【図４】
0003922326.tif 000005
【図５】
0003922326.tif 000006
【図６】
0003922326.tif 000007
【図７】
0003922326.tif 000008
【図８】
0003922326.tif 000009
【図９】
0003922326.tif 000010
【図１０】
0003922326.tif 000011
【図１１】
0003922326.tif 000012
【図１２】
0003922326.tif 000013
【図１３】
0003922326.tif 000014
【図１４】
0003922326.tif 000015