(57)【特許請求の範囲】
【請求項１】
第１、第２の機器間でのデータの送受信のためのデータ転送制御装置であって、
前記第１の機器の通信状態を表す第１の通信状態情報と、前記第１の機器から前記第２の機器に送信される送信データのデータ長を表す送信データ長情報と、を記憶する第１の状態記憶部と、
前記第２の機器の通信状態を表す第２の通信状態情報を記憶する第２の状態記憶部と、
前記記憶される送信データ長情報に対応する送信データを記憶するデータ記憶部と、
前記送信データ長情報および前記第２の通信状態情報の少なくともいずれかに基づいて、前記第１の通信状態情報が適正であるか否かを判断する適否判断部と、
前記適正でないと判断された第１の通信状態情報を修正する修正部と、
前記修正される第１の通信状態情報と、前記記憶される送信データ長情報と、を有する第1のパケットを生成して、送信するパケット送信部と、
を具備することを特徴とするデータ転送制御装置。
【請求項２】
前記第１の通信状態情報が前記第１の機器からの送信がアクティブであることを表し、かつ前記第２の通信状態情報が前記第２の機器の受信不可または通信エラー発生を表すときに、前記適否判断部が前記第１の通信状態情報を適正でないと判断し、前記修正部が前記第１の通信状態情報を修正して、前記第１の機器からの送信を非アクティブとする
ことを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
前記第２の機器からのパケットに基づいて、前記第２の状態記憶部に記憶される第２の通信状態情報を更新する更新部と、
前記更新される第２の通信状態情報に基づいて、前記修正された第１の通信状態情報を再修正して、前記第１の機器からの送信をアクティブとする再修正部と、
を具備することを特徴とする請求項２記載のデータ転送制御装置。
【請求項４】
前記第１の通信状態情報が前記第１の機器からの送信がアクティブであることを表し、かつ前記送信データ長情報が送信データのデータ長が０であることを表すときに、前記適否判断部が前記第１の通信状態情報を適正でないと判断し、前記修正部が前記第１の通信状態情報を修正して、前記第１の機器からの送信を非アクティブとする
ことを特徴とする請求項１記載のデータ転送制御装置。
【請求項５】
前記第１の通信状態情報が前記第１の機器からの送信が非アクティブであることを表し、かつ前記送信データ長情報が送信データのデータ長が０でないことを表すときに、前記適否判断部が前記第１の通信状態情報を適正でないと判断し、前記修正部が前記第１のデータ転送制御情報を修正して、前記第１の機器からの送信をアクティブとする
ことを特徴とする請求項４記載のデータ転送制御装置。
【請求項６】
第１、第２の機器間でのデータの送受信のためのデータ転送制御方法であって、
前記第１の機器から前記第２の機器に送信される送信データのデータ長を表す送信データ長情報および前記第２の機器の通信状態を表す第２の通信状態情報の少なくともいずれかに基づいて、前記第１の機器の通信状態を表す第１の通信状態情報が適正であるか否かを判断するステップと、
前記適正でないと判断された第１の通信状態情報を修正するステップと、
前記修正される第１の通信状態情報と、前記送信データ長情報と、を有する第1のパケットを生成して、送信するステップと、
を具備することを特徴とするデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送するデータ転送制御装置、およびデータ転送制御方法に関する。
【背景技術】
【０００２】
パケットを用いてデータを転送する転送装置が用いられている。
ここで、ホストとの間でデータを転送する転送装置に関し、次のような技術が公開されている（特許文献１参照）。即ち、転送装置が異常動作状態（無応答状態）に陥ったとき、ホストから制御パケットを送信することで、転送装置の動作を再開させる。
【特許文献１】特開２００３−２４９９７８
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、この転送装置では誤ったパケットを送信してシステムの誤動作を招く可能性がある。
上記に鑑み、本発明は誤ったパケットの送信を防止することで誤動作の発生の低減を図ったデータ転送制御装置、およびデータ転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
Ａ．上記目的を達成するために、本発明に係るデータ転送制御装置は、第１、第２の機器間でのデータの送受信のためのデータ転送制御装置であって、前記第１の機器の通信状態を表す第１の通信状態情報と、前記第１の機器から前記第２の機器に送信される送信データのデータ長を表す送信データ長情報と、を記憶する第１の状態記憶部と、前記第２の機器の通信状態を表す第２の通信状態情報を記憶する第２の状態記憶部と、前記記憶される送信データ長情報に対応する送信データを記憶するデータ記憶部と、前記送信データ長情報および前記第２の通信状態情報の少なくともいずれかに基づいて、前記第１の通信状態情報が適正であるか否かを判断する適否判断部と、前記適正でないと判断された第１の通信状態情報を修正する修正部と、前記修正される第１の通信状態情報と、前記記憶される送信データ長情報と、を有する第1のパケットを生成して、送信するパケット送信部と、を具備することを特徴とする。
【０００５】
Ｂ．上記目的を達成するために、本発明に係るデータ転送制御方法は、第１、第２の機器間でのデータの送受信のためのデータ転送制御方法であって、前記第１の機器から前記第２の機器に送信される送信データのデータ長を表す送信データ長情報および前記第２の機器の通信状態を表す第２の通信状態情報の少なくともいずれかに基づいて、前記第１の機器の通信状態を表す第１の通信状態情報が適正であるか否かを判断するステップと、前記適正でないと判断された第１の通信状態情報を修正するステップと、前記修正される第１の通信状態情報と、前記送信データ長情報と、を有する第1のパケットを生成して、送信するステップと、を具備することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、誤ったパケットの送信を防止することで誤動作の発生の低減を図ったデータ転送制御装置、およびデータ転送制御方法を提供できる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
（第１の実施の形態）
図１は、本発明の第１実施形態に係るデータ送受信システムを表すブロック図である。
データ送受信システムは、ホスト側データ送受信装置１００，ゲスト側データ送受信装置２００によって構成され、これらの間でパケットをやり取りすることでデータを送受信する。
【０００８】
ホスト側データ送受信装置１００およびゲスト側データ送受信装置２００は、例えば、コンピュータ同士、あるいは記録媒体処理装置と記録媒体（例えば、メモリカード）の組み合わせである。ホスト側データ送受信装置１００とゲスト側データ送受信装置２００とのデータ送受信によって、例えば、ホスト側データ送受信装置１００からゲスト側データ送受信装置２００へのデータの書き込み、読み出し、互いの認証処理が可能となる。
【０００９】
ホスト側データ送受信装置１００は、ホスト機器本体１１０，シリアル転送コントローラ１２０を有する。ホスト機器本体１１０は、例えば、コンピュータ本体、記録媒体処理装置本体であり、シリアル転送コントローラ１２０を制御する。シリアル転送コントローラ１２０は、ホスト機器本体１１０と、ゲスト側データ送受信装置２００の間でデータをシリアルに転送するものであり、データ転送制御装置として機能する。
【００１０】
ホスト側データ送受信装置１００は、機能ブロックとして、データ記憶部１３０，パケット送信部１４０，パケット受信部１５０に区分することができる。ここで、データ記憶部１３０は、ホスト機器本体１１０，シリアル転送コントローラ１２０に跨って配置される。
【００１１】
データ記憶部１３０は、ゲスト側データ送受信装置２００に送受信するデータの保存、および管理を行うものであり、ＣＰＵ（Central Processing Unit（中央処理装置））１３１，メモリ１３２，バス１３３，インタフェース１３４を有する。
ＣＰＵ１３１は、ホスト機器本体１１０のＣＰＵ（ホスト側ＣＰＵ）として、シリアル転送コントローラ１２０やメモリ１３２を制御する。
【００１２】
メモリ１３２は、ゲスト側データ送受信装置２００に送受信するデータを保存するための記憶装置である。メモリ１３２は、ＣＰＵ１３１から見て、内部記憶装置、外部記憶装置の何れであっても差し支えない。また、メモリ１３２は、データを記憶可能であれば、半導体メモリ、ハードディスク、光ディスク等を適宜に利用可能である。
【００１３】
バス１３３は、ＣＰＵ１３１，メモリ１３２，インタフェース１３４の相互間でデータをやり取りするためのデータの伝送路である。
インタフェース１３４は、シリアル転送コントローラ１２０内のスレーブインタフェースであり、ＣＰＵ１３１およびメモリ１３２からのアクセスを処理する。
【００１４】
パケット送信部１４０は、データ記憶部１３０から転送されたデータに基づいて、パケットを生成し、このパケットをゲスト側データ送受信装置２００に送信する。パケット送信部１４０は、送信コントローラ１４１，送信データ・バッファ１４２，ホストステート・バッファ１４３、１４４、マルチプレクサ１４５，パラレル／シリアル変換器１４６を有する。
【００１５】
送信コントローラ１４１は、送信関係のモジュールを制御する。具体的には、送信コントローラ１４１は、送信データ・バッファ１４２、マルチプレクサ１４５、パラレル／シリアル変換器１４６を制御する。送信コントローラ１４１は、ホストステート・バッファ１４３、ゲストステート・バッファ１５３からパケットＰ１、Ｐ２のヘッダ情報を読み出すことができる。送信コントローラ１４１は、ＣＰＵ１３１に転送要求信号ＲＱ１を出力することで、メモリ１３２から送信データ・バッファ１４２へのデータ転送を制御する。送信コントローラ１４１は、ゲスト側データ送受信装置２００に同期制御信号ＣＳを出力することで、パケットＰ１，Ｐ２の送受信を同期させる。
送信コントローラ１４１は、第１の通信状態情報が適正であるか否かを判断する適否判断部、適正でないと判断された第１の通信状態情報を修正する修正部として機能する。
【００１６】
送信データ・バッファ１４２は、送信用のデータを一時的に保持する記憶素子であり、第１のデータ記憶部として機能する。送信データ・バッファ１４２は、ＦＩＦＯ（Fast In Fast Out）のバッファによって構成できる。
【００１７】
ホストステート・バッファ１４３は、ホスト側（ホスト機器本体１１０）の送信ステイタスと、送信データ長情報とを一時的に保持するための記憶素子であり、第１の状態記憶部として機能する。この送信ステイタスは、ホスト機器本体１１０の通信状態を表し、第１の通信状態情報に対応する。また、この送信データ長情報は、ホスト側データ送受信装置１００からゲスト側データ送受信装置２００に送信される送信データのデータ長を表す。
【００１８】
ホストステート・バッファ１４４は、ホストステート・バッファ１４３と同様に、ホスト側の送信ステイタスと、送信データ長情報とを一時的に保持するための記憶素子である。
ここで、２つのホストステート・バッファ１４３，１４４が配置されているのは、次のように、連続的なパケットＰ１の送信を容易にするためである。
【００１９】
パケット送信部１４０からゲスト側送受信装置２００へのパケットＰ１の送信中に、次のパケットＰ１の送信ステイタス、送信データ長情報がホストステート・バッファ１４３に書き込まれる可能性がある。このような場合、現在送信中のパケットＰ１の送信ステイタス、送信データ長情報がホストステート・バッファ１４３からホストステート・バッファ１４４に退避される。この結果、前のパケットＰ１の送信終了を待たずに、次のパケットＰ１の送信ステイタス、送信データ長情報をホストステート・バッファ１４３に準備することができる。即ち、パケットＰ１の連続的な送信が容易となる。
【００２０】
マルチプレクサ１４５は、複数の入力端子からの信号を時分割して１つの出力端子に出力する。
パラレル／シリアル変換器１４６は、パラレルデータをシリアルデータに変換する変換器であり、例えば、シフトレジスタから構成できる。パラレル／シリアル変換器１４６によって、送信ステイタス、送信データ長情報、および送信データからパケットＰ１が生成される。
【００２１】
パケット受信部１５０は、ゲスト側データ送受信装置２００からのパケットを受信し、受信したパケットに含まれるデータをデータ記憶部１３０に転送する。パケット受信部１５０は、受信コントローラ１５１，受信データ・バッファ１５２，ゲストステート・バッファ１５３、１５４、デマルチプレクサ１５５，シリアル／パラレル変換器１５６を有する。
【００２２】
受信コントローラ１５１は、受信関係のモジュールを制御する。具体的には、受信コントローラ１５１は、受信データ・バッファ１５２、デマルチプレクサ１５５、シリアル／パラレル変換器１５６を制御する。受信コントローラ１５１は、ホストステート・バッファ１４３、ゲストステート・バッファ１５３からパケットＰ１、Ｐ２のヘッダ情報を読み出すことができる。受信コントローラ１５１は、ＣＰＵ１３１に転送要求信号ＲＱ２および転送終了通知信号ＡＮを出力することで、受信データ・バッファ１５２からメモリ１３２へのデータ転送を制御する。
【００２３】
受信データ・バッファ１５２は、受信用のデータを一時的に保持する記憶素子であり、第２のデータ記憶部として機能する。受信データ・バッファ１５２は、ＦＩＦＯ（Fast In Fast Out）のバッファによって構成できる。
ゲストステート・バッファ１５３は、ゲスト側（ゲスト側データ送受信装置２００）の送信ステイタスと、送信データ長情報とを一時的に保持するための記憶素子であり、第２の状態記憶部として機能する。この送信ステイタスは、ゲスト側データ送受信装置２００の通信状態を表し、第２の通信状態情報に対応する。また、この送信データ長情報は、ゲスト側データ送受信装置２００からホスト側データ送受信装置１００に送信される送信データのデータ長を表す。
【００２４】
ゲストステート・バッファ１５４は、ゲストステート・バッファ１５３と同様に、ゲスト側の送信ステイタスと、送信データ長情報とを一時的に保持するための記憶素子である。
ここで、２つのゲストステート・バッファ１５３，１５４が配置されているのは、次のように、連続的なパケットＰ２の受信を容易にするためである。
【００２５】
受信データ・バッファ１５２からメモリ１３２への受信用のデータの転送中に、次のパケットＰ２の受信が開始される可能性がある。このような場合、現在転送中の受信用のデータに対応する送信ステイタス、送信データ長情報がゲストステート・バッファ１５４からゲストステート・バッファ１５３に退避される。その後、前の受信用のデータのメモリ１３２への転送が終了すると、ゲストステート・バッファ１５４内のデータはゲストステート・バッファ１５３に移動される。この結果、前の受信用のデータの転送終了を待たずに、次のパケットＰ２の送信ステイタス、送信データ長情報（実質的には、受信ステイタス、受信データ長情報）を取得できる。即ち、パケットＰ２の連続的な受信が容易となる。
【００２６】
デマルチプレクサ１５５は、１つの入力端子からの複数の信号を複数の出力端子に区分して出力する。
シリアル／パラレル変換器１５６は、シリアルデータをパラレルデータに変換する変換器であり、例えば、シフトレジスタから構成できる。シリアル／パラレル変換器１５６によって、パケットＰ２が送信ステイタス、送信データ長情報、および送信データに分解される。
【００２７】
ゲスト側データ送受信装置２００は、データ記憶部２１０，パケット送信部２２０，パケット受信部２３０を有し、ホスト側データ送受信装置１００との間で、パケットによるデータの送受信を行う。
データ記憶部２１０は、シリアル転送コントローラ１２０（ホスト側データ送受信装置１００）に送受信するデータの保存、および管理を行う。
パケット送信部２２０は，データ記憶部２１０から転送されたデータに基づいて、パケットＰ１を生成し、このパケットＰ１をシリアル転送コントローラ１２０に送信する。送信コントローラ１４１から出力される同期制御信号ＣＳによって、この生成、送信が制御される。
パケット受信部２３０は、シリアル転送コントローラ１２０からのパケットＰ２を受信し、受信したパケットＰ２に含まれるデータをデータ記憶部２１０に転送する。
【００２８】
なお、これらデータ記憶部２１０，パケット送信部２２０，パケット受信部２３０は、ホスト側データ送受信装置１００のデータ記憶部１３０，パケット送信部１４０，パケット受信部１５０と実質的に同様の構成を採用することが可能であるが、これに限定されることなく、適宜の構成を採用することが可能である。
【００２９】
シリアル転送コントローラ１２０と、ゲスト側データ送受信装置２００との間で送受信されるパケットは、ヘッダおよび送信データ本体を含む。但し、データが送信されないときは、パケットは、ヘッダのみとなり、送信データ本体を有しない。
ヘッダには、送信ステータス（通信状態情報）と、送信データ長情報（このパケットに含まれる送信データのデータ長の情報）が含まれる。
【００３０】
送信ステータス（通信状態情報）は、送信側の通信状態を表す情報であり、送信アクティブ情報、受信可否情報、エラー有無情報を含む。
送信アクティブ情報は、パケットの送信側において、データの送信がアクティブ、ノンアクティブいずれであるか、言い換えれば、データの送信中か否かを表す。データの送信中であれば、送信アクティブ情報の内容が「送信アクティブ」となり、データの送信中でなければ、送信アクティブ情報の内容が「送信ノンアクティブ」となる。
【００３１】
受信可否情報は、パケットの送信側において、データの受信が可能、不可いずれであるかを表す。データの受信が可能であれば、受信可否情報の内容が「受信可能」となり、データの受信が不能であれば、受信可否情報の内容が「受信不能」となる。
【００３２】
エラー有無情報は、パケットの送信側において、通信エラーが生じているか否かを表す。通信エラーが生じていれば、エラー有無情報の内容が「エラー有り」となり、通信エラーが生じていなければ、エラー有無情報の内容が「エラー無し」となる。
【００３３】
図２〜図４はそれぞれ、同期して送受信されるパケットＰ１，Ｐ２の例を示す模式図である。図２〜図４中の（Ａ）、（Ｂ）がそれぞれ、パケットＰ１、Ｐ２に対応する。
図２〜図４では、複数（図２では、３つ、図３，図４では２つ）のパケットＰ１，Ｐ２が連続して送信および受信される。パケットＰ１，Ｐ２のヘッダ（送信ステータス、送信データ長情報）の送受信のタイミングが同期していることが、一点鎖線で示される。
【００３４】
ここでは、ホスト側データ送受信装置１００からのパケットＰ１の送信およびパケットＰ２の受信が実質的に同時になされている（送受信の時間的なズレが小さい）。但し、パケットＰ１、Ｐ２の送受信が交互になされても差し支えない。このような交互の送信、受信であっても、パケットＰ１、Ｐ２の送受信が同期しているといって差し支えない。
【００３５】
図２では、ホスト側データ送受信装置１００、ゲスト側データ送受信装置２００いずれの側も「送信ノンアクティブ」である。このため、３つのパケットＰ１，Ｐ２のいずれもヘッダ（送信ステータスと送信データ長情報（値０））のみを有し、送信データを有しない。
【００３６】
図３では、ホスト側データ送受信装置１００が「送信ノンアクティブ」から「送信アクティブ」に変化している。このため、２つめのパケットＰ１はヘッダ（送信ステータスと送信データ長情報（値０以外））、および送信データを有する。一方、２つめのパケットＰ２はヘッダ（送信ステータスと送信データ長情報（値０））のみで、送信データを有しない。ヘッダの後の不定データは、送信データではなく、ホスト側データ送受信装置１００から無視される。
【００３７】
図４では、ゲスト側データ送受信装置２００が「送信ノンアクティブ」から「送信アクティブ」に変化している。このため、２つめのパケットＰ２はヘッダ（送信ステータスと送信データ長情報（値０以外））、および送信データを有する。一方、２つめのパケットＰ１はヘッダ（送信ステータスと送信データ長情報（値０））のみで、送信データを有しない。ヘッダの後の不定データは、送信データではなく、ゲスト側データ送受信装置２００から無視される。
【００３８】
（データ送受信システムの動作）
図５は、図１に示すホスト側データ送受信装置１００の動作手順の一例を表すフロー図である。
【００３９】
（１）ホストステート・バッファ１４３の更新（ステップＳ１１）
ホストステート・バッファ１４３）の記憶内容が更新される。
ホストステート・バッファ１４３は、インタフェース１３４を介して、ＣＰＵ１３１によって適宜に書き替えられる。その結果、ホストステート・バッファ１４３はホスト機器本体１１０での通信状態等を反映するように、送信ステータス（送信アクティブ情報、受信可否情報、エラー有無情報）、および送信データ長情報が更新される。
【００４０】
（２）メモリ１３２から送信データ・バッファ１４２へのデータ転送（ステップＳ１１）
ホスト側が「送信アクティブ」でゲスト側が「受信可能」、「エラー無し」の場合、送信コントローラ１４１からＣＰＵ１３１に転送要求信号ＲＱ１が出力される。パケットＰ１の送信データ本体に対応するデータをメモリ１３２から送信データ・バッファ１４２に転送させるためである。この場合、ホストステート・バッファ１４３内の送信アクティブ情報が「送信アクティブ」で、ゲストステート・バッファ１５３内の受信可否情報およびエラー有無情報がそれぞれ「受信可能」、「エラー無し」である。
【００４１】
この転送要求信号ＲＱ１に対応して、インタフェース１３４を介して、メモリ１３２から送信データ・バッファ１４２にデータが転送される。
所定のデータ長（ホストステート・バッファ１４３内の送信データ長情報に対応）のデータが送信データ・バッファ１４２に転送されたら、送信コントローラ１４１からＣＰＵ１３１への転送要求信号ＲＱ１が停止される。
【００４２】
ここで、この所定のデータ長のデータが転送される前に送信データ・バッファ１４２が一杯になったら、送信コントローラ１４１からの転送要求信号ＲＱ１が中止される。そして、送信データ・バッファ１４２に空きができたら、送信コントローラ１４１からＣＰＵ１３１への転送要求が再開される。パケットＰ１の生成、送信による送信データ・バッファ１４２内のデータ量の変動に速やかに対応するためである。
【００４３】
（３）送信コントローラ１４１からの同期制御信号ＣＳの出力（ステップＳ１３）
ホスト側データ送受信装置１００のパケット送信部１４０（送信コントローラ１４１）からゲスト側データ送受信装置２００（パケット送信部２２０およびパケット受信部２３０）とホスト側の受信コントローラ１５１に周期的に同期制御信号ＣＳが出力される。パケット送信部１４０、２２０からのパケットＰ１，Ｐ２の送信、およびパケット受信部１５０，２３０でのパケットＰ１，Ｐ２の受信（パケットＰ１，Ｐ２の送受信）を同期させるためである。即ち、送信コントローラ１４１からの同期制御信号ＣＳの出力は、パケットＰ１，Ｐ２の生成、送受信のトリガである。例えば、同期制御信号ＣＳの出力から所定時間経過後にパケットＰ１，Ｐ２それぞれが送信される。
【００４４】
（４）送信するパケットＰ１のヘッダ情報の点検、修正（ステップＳ１４）
送信するパケットＰ１のヘッダ情報を点検し、誤りがあれば修正する。不適切なパケットＰ１の送信を防止し、データの送受信を速やかに行うためである。なお、この詳細は後述する。
【００４５】
（５）パケットＰ１の生成（ステップＳ１５）
送信コントローラ１４１からの制御によりパケットＰ１が生成される。
１）ヘッダのみのパケットの生成
送信アクティブ情報が「送信ノンアクティブ」の場合には、ヘッダ（送信ステータスと送信データ長情報（送信データ長の値が０））のみで送信データ本体を含まないパケットＰ１が生成される（図２の（Ａ）参照）。
【００４６】
この生成は次のようになされる。
送信コントローラ１４１からマルチプレクサ１４５への指令により、ホストステート・バッファ１４３に設定されているホスト側の送信ステータス（通信状態情報）、送信データ長情報がパラレル／シリアル変換器１４６に送られて、パラレル／シリアル変換される。このパラレル／シリアル変換によって、パケットＰ１が生成される。
【００４７】
２）ヘッダおよびデータを含むパケットの生成
送信アクティブ情報が「送信アクティブ」の場合には、ヘッダ（送信ステータスと送信データ長情報（送信データ長の値が０以外））および送信データ本体を含むパケットＰ１が生成される（図３の（Ａ）参照）。
【００４８】
この生成は次のようになされる。
送信コントローラ１４１からマルチプレクサ１４５への指令により、ホストステート・バッファ１４３に設定されているホスト側の送信ステータス（通信状態情報）、送信データ長情報がパラレル／シリアル変換器１４６に送られて、パラレル／シリアル変換される。このパラレル／シリアル変換によって、パケットＰ１のヘッダが生成される。ヘッダのみの場合と比べて、送信データ長情報が異なる以外は、生成されるヘッダに変わりはない。
【００４９】
ホストステート・バッファ１４３内の情報のパラレル／シリアル変換に引き続き、送信データ・バッファ１４２内のデータがパラレル／シリアル変換される。即ち、送信コントローラ１４１から送信データ・バッファ１４２への指令により、送信データ・バッファ１４２に蓄積されたデータがパラレル／シリアル変換器１４６に送られて、パラレル／シリアル変換される。
【００５０】
通信状態情報および送信データ長情報に続いて、送信データがパラレル／シリアル変換器１４６に送られることで、ヘッダ（送信ステータス、送信データ長情報）、および送信データ本体を含むパケットが生成される。
【００５１】
（６）パケットＰ１、Ｐ２の送受信（ステップＳ１６）
パケット送信部１４０からパケット受信部２３０に、生成されたパケットＰ１が送信される。また、パケット送信部２２０から送信されたパケットＰ２がパケット受信部１５０で受信される。同期制御信号ＣＳの出力に対応して、パケット送信部２２０で、パケットＰ２の生成、送信がなされることによる。
即ち、同期制御信号ＣＳの出力に対応して、パケット送信部１４０のパケットＰ１の送信、およびパケット受信部１５０でのパケットＰ２の受信が同期してなされる。
【００５２】
（７）ゲストステート・バッファ１５３の更新（ステップＳ１７）
パケットＰ２の受信によって、ゲストステート・バッファ１５３）の記憶内容が更新される。その結果、ゲストステート・バッファ１５３はゲスト側データ送受信装置２００での通信状態等を反映するように、送信ステータス（送信アクティブ情報、受信可否情報、エラー有無情報）、および送信データ長情報が更新される。
受信コントローラ１５１の制御によって、パケットＰ２がシリアルデータとしてパラレル／シリアル変換器１４６に入力され、パラレル／シリアル変換され、ゲスト側の送信ステータス、送信データ長情報に区分される。区分された送信ステータス、送信データ長情報がゲストステート・バッファ１５３に入力される。
【００５３】
（８）受信データ・バッファ１５２の更新（ステップＳ１８）
パケットＰ２が送信データを含むときは、この送信データが受信データ・バッファ１５２に入力される。
この入力処理は、ゲストステート・バッファ１５３内の送信アクティブ情報が「送信アクティブ」で、ホストステート・バッファ１４３内の受信可否情報およびエラー有無情報がそれぞれ「受信可能」、「エラー無し」の場合に実行される。
受信コントローラ１５１からの制御により、送信データ長情報に続く送信データが送信データ長の数だけパラレル／シリアル変換器１４６でパラレル変換され、受信データ・バッファ１５２に入力される。
【００５４】
（９）受信データ・バッファ１５２からメモリ１３２へのデータ転送（ステップＳ１９）
受信コントローラ１５１からＣＰＵ１３１に転送要求信号ＲＱ２が出力される。この転送要求信号ＲＱ２に対応して、インタフェース１３４を介して、受信データ・バッファ１５２からメモリ１３２にデータが転送される。
【００５５】
ここで、受信データ・バッファ１５２に一定数のデータがたまったら、受信コントローラ１５１からＣＰＵ１３１に転送要求信号ＲＱ２が出力される。受信コントローラ１５１は転送される送信データの量をカウントする。受信データ・バッファ１５２からメモリ１３２に、送信データ長に対応する量の送信データが転送されたら、転送は終了となる。このとき、転送の終了を表す転送終了通知信号ＡＮが受信コントローラ１５１からＣＰＵ１３１に出力される。データ転送が終了したら、ステップＳ１１に戻って処理が繰り返される。
【００５６】
ここで、受信データ・バッファ１５２、メモリ１３２間がビジー状態であるときは、ホストステート・バッファ１４３の送信ステータスが「受信不可」に変更される。この結果、ゲスト側データ送受信装置２００から送信データを含むパケットＰ２が送信されることがなくなる。受信データ・バッファ１５２に処理しきれないデータが入力されることが防止される。
【００５７】
（ヘッダの自動修正）
図６は、図５のステップＳ１４でのヘッダ情報の点検、修正の詳細を表すフロー図である。
（１）ホストのヘッダ情報の不整合への対応（ステップＳ２１，Ｓ２２）
ホストの送信ステータスと、送信データ長が整合するか否かが判断され（ステップＳ２１）、整合しないときにはホストの送信ステータスが訂正される（ステップＳ２２）。ＣＰＵ１３１がホストステート・バッファ１４３に不適切な設定をした場合に、送信コントローラ１４１がこの誤りを修正することができる。
【００５８】
具体的には、次の２つの場合が該当する。
・「送信ノンアクティブ」で、送信データ長の値が０以外の場合
ホストステート・バッファ１４３に設定されている送信ステータスが「送信ノンアクティブ」で、送信データ長の値が０以外の場合に、ヘッダ情報が修正される。
即ち、パラレル／シリアル変換器１４６に送る際に送信ステータスが「送信アクティブ」に修正される。
その後、パラレル／シリアル変換器１４６が修正された送信ステータス、送信データ長情報をシリアル出力することでヘッダが生成される。
図７は、修正されたパケットを表す模式図である。パケットＰ１のヘッダ情報が「送信ノンアクティブ」から「送信アクティブ」に修正されたことが表わされる。
【００５９】
・「送信アクティブ」で、送信データ長の値が０の場合
ホストステート・バッファ１４３に設定されている送信ステータスが「送信アクティブ」で、送信データ長の値が０の場合に、ヘッダ情報が修正される。
即ち、パラレル／シリアル変換器１４６に送る際に送信ステータスが「送信ノンアクティブ」に修正される。
その後、パラレル／シリアル変換器１４６が修正された送信ステータス、送信データ長情報をシリアル出力することでヘッダが生成される。
図８は、修正されたパケットを表す模式図である。パケットＰ１のヘッダ情報が「送信アクティブ」から「送信ノンアクティブ」に修正されたことが表わされる。
【００６０】
（２）ゲスト側の送信ステータスによるデータ送信の取り止め（ステップＳ２３〜Ｓ２５）
ゲスト側が「受信不可」または「受信エラー」であるか否かが判断される（ステップＳ２３）。
この判断が「Ｙｅｓ」の場合、ホスト側が「送信アクティブ」であるか否かが判断される（ステップＳ２４）。
この結果、ホストステート・バッファ１４３に設定されている送信ステータスが「送信アクティブ」で、ゲストステート・バッファ１５３に設定されている送信ステータスが「受信不可」または「受信エラー」の場合に、ヘッダ情報が修正される（ステップＳ２５）。
【００６１】
具体的には、パラレル／シリアル変換器１４６に送る際に送信ステータスが「送信ノンアクティブ」かつ送信データ長０に修正される。即ち、ゲスト側が「受信不可」の状態で、ホスト側が送信しようとした場合、送信ステータスが自動的に変更（「送信ノンアクティブ」および送信データ長＝０）されることで、送信が取り止められる。
その後、パラレル／シリアル変換器１４６が修正された送信ステータス、送信データ長情報をシリアル出力することでヘッダが生成される。
【００６２】
図９は、修正されたパケットを表す模式図である。パケットＰ１のヘッダ情報が「送信アクティブ」および「送信データ長＝Ｘ（０以外）」から「送信ノンアクティブ」および「送信データ長＝０」に修正されたことが表わされる。
【００６３】
（３）ゲスト側の送信ステータスの変化によるデータ送信の開始（ステップＳ２６〜Ｓ２９）
このように、ゲスト側の送信ステータスが「受信不可」または「エラー有り」の場合には、データの送信は取り止めとなる。
このとき、ゲスト側の送信ステータスを監視し、送信ステータスが「受信可能」かつ「エラー無し」に変更された場合、データ送信を開始することができる。
【００６４】
１）送信取り止めフラグをＯＮにする（ステップＳ２６）。「送信取り止めフラグ」は、送信が取り止めとなったことを表すためのフラグである。例えば、１ビットのデータを送信取り止めフラグとして用い、そのデータのビットの１，０で送信取り止めフラグのＯＮ，ＯＦＦを表現できる。
【００６５】
このフラグがＯＮとされることで、ゲスト側の送信ステータスの監視が続行される。具体的には、図５のステップＳ１４が繰り返し実行されたときに、ステップＳ２３が再度実行される。ステップＳ２３での判断が「Ｎｏ」であればゲスト側の送信ステータスが「受信可能」かつ「エラー無し」であることを意味する。
【００６６】
２）ステップＳ２３での判断が「Ｎｏ」で、送信取り止めフラグがＯＮであれば、ホスト側の送信ステータスを「送信アクティブ」する（ステップＳ２３、Ｓ２７，Ｓ２８）。この結果、ホスト側からのデータ送信が開始される。なお、送信取り止め状態が解除されたことから、送信取り止めフラグをＯＦＦにする（ステップＳ２９）。
以上のように、ゲスト側が受信可能になった段階で、すぐにデータが送信される。
【００６７】
（その他の実施形態）
本発明の実施形態は上記の実施形態に限られず拡張、変更可能であり、拡張、変更した実施形態も本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１実施形態に係るデータ送受信システムを表すブロック図である。
【図２】同期して送受信されるパケットの例を示す模式図である。
【図３】同期して送受信されるパケットの例を示す模式図である。
【図４】同期して送受信されるパケットの例を示す模式図である。
【図５】図１に示すホスト側データ送受信装置の動作手順の一例を表すフロー図である。
【図６】図５のステップＳ１４でのヘッダ情報の点検、修正の詳細を表すフロー図である。
【図７】修正されたパケットを表す模式図である。
【図８】修正されたパケットを表す模式図である。
【図９】修正されたパケットを表す模式図である。
【符号の説明】
【００６９】
１００…ホスト側データ送受信装置、１１０…ホスト機器本体、１２０…シリアル転送コントローラ、１３０…データ記憶部、１３１…ＣＰＵ、１３２…メモリ、１３３…バス、１３４…インタフェース、１４０…パケット送信部、１４１…送信コントローラ、１４２…送信データ・バッファ、１４３，１４４…ホストステート・バッファ、１４５…マルチプレクサ、１４６…シリアル変換器、１５０…パケット受信部、１５１…受信コントローラ、１５２…受信データ・バッファ、１５３，１５４…ゲストステート・バッファ、１５５…デマルチプレクサ、１５６…パラレル変換器、２００…ゲスト側データ送受信装置、２１０…データ記憶部、２２０…パケット送信部、２３０…パケット受信部
【図１】
0004693576.tif 000002
【図２】
0004693576.tif 000003
【図３】
0004693576.tif 000004
【図４】
0004693576.tif 000005
【図５】
0004693576.tif 000006
【図６】
0004693576.tif 000007
【図７】
0004693576.tif 000008
【図８】
0004693576.tif 000009
【図９】
0004693576.tif 000010