(57)【要約】  通信効率が低下することなく通信方式を切り替えることのできるデータ通信システムを提供することを目的とする。  第１装置と第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかを選択してデータ通信を行うデータ通信システムにおいて、第１装置は、当該第１装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを通信路を介して第２装置へ送出し、第２装置は、当該第２装置の通信処理能力に基づいて半二重通信を指定するか否かを示す第２通信フラグを通信路を介して第１装置へ送出し、第１装置及び第２装置は、第１通信フラグ及び第２通信フラグに基づいて、互いに予め定められた手順により全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択し、選択した通信方式にてデータ通信を行う。
2009147785.tif 000002
【特許請求の範囲】
【請求項１】
全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムであって、
前記第１装置は、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出する通信要求手段と、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記第２装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第１選択手段と、
選択された通信方式にてデータ通信を行う第１通信手段とを備え、
前記第２装置は、
前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出する通信応答手段と、
前記第１通信フラグ及び前記第２通信フラグに基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第２選択手段と、
選択された通信方式にてデータ通信を行う第２通信手段とを備える
ことを特徴とするデータ通信システム。
【請求項２】
前記通信要求手段は、
前記要求信号の生成に先立って、前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力とを用いて前記第１装置及び前記第２装置の何れかの装置を示す優先フラグを生成し、生成した前記優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、
前記通信応答手段は、
前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記第１選択手段においては前記第１記録領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記録領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記通信処理能力には、データの受信に用いられるバッファの容量が含まれ、
前記要求信号には、当該第１装置がデータ送信を要求する旨及びデータを受信する旨の通信種別が含まれ、
前記通信要求手段は、
前記第１装置及び前記第２装置双方のバッファの容量が、半二重通信の通信帯域で送信されるデータのデータ量を確保できるか否かを判断し、判断結果が肯定的である場合にはデータを送信する側の装置を示す優先フラグを生成し、判断結果が否定的である場合にはデータを受信する側の装置を示す優先フラグを生成し、
前記第１選択手段及び前記第２選択手段は、
優先フラグがデータを送信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ送信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択し、優先フラグがデータを受信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ受信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択する
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項４】
前記通信要求手段は、
受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置を示す優先フラグを生成し、
前記第１選択手段及び前記第２選択手段は、
優先フラグが前記第１装置を示す場合には前記第１通信フラグが示す通信方式を選択し、優先フラグが前記第２装置を示す場合には前記第２通信フラグが示す通信方式を選択する
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項５】
前記通信要求手段は、
前記要求信号の生成に先立って、前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力のどちらか一方が半二重通信による通信処理能力を満たさない場合には全二重通信を優先とする旨、双方の通信処理能力が半二重通信による通信処理能力を満たす場合には半二重通信を優先とする旨を示す優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、
前記通信応答手段は、
前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記第１選択手段においては前記第１記憶領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記憶領域にて記憶されている優先フラグに基づいて、優先すべき通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項６】
前記第１通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、
前記通信応答手段は、
前記要求信号に含まれる前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記全二重通信による通信を指定する旨及び半二重通信による通信を指定する旨の何れかを示す第２通信フラグを前記応答信号に含め、
前記手順は、
前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第２通信フラグが示す通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項７】
前記第１通信フラグは、半二重通信による通信を指定する旨及び全二重通信による通信を指定する旨の何れかを示し、
前記第２通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、
前記手順は、
前記第２通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第１通信フラグが示す通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項８】
前記通信要求手段は、
自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含めるに先立って、データ通信の対象となるデータのデータサイズが所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第１通信フラグを前記要求信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含め、
前記通信応答手段は、
自装置の通信処理能力に応じた第２通信フラグを前記要求信号に含めるに先立って、前記データ通信の対象となるデータのデータサイズが前記所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第２通信フラグを前記応答信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第２通信フラグを前記要求信号に含める
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項９】
全二重通信が可能な他装置へデータ通信の要求を行い、前記他装置との間で接続された通信路を用いて全二重通信及び半二重通信の何れかを選択してデータ通信を行うデータ通信要求装置であって、
自装置の通信処理能力に応じた通信方式として半二重通信の利用を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記他装置へ送出する通信要求手段と、
前記要求信号の送出後、前記他装置の通信処理能力に基づいた通信方式として半二重通信の利用を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記他装置から受け取り、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記他装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、
選択された通信方式にてデータ通信を行う通信手段とを備える
ことを特徴とするデータ通信要求装置。
【請求項１０】
前記通信要求手段は、
前記要求信号の生成に先立って、前記他装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置が指定する通信フラグを優先すべきとする旨の優先フラグを、前記他装置と共有するために前記所定の記憶領域へ記憶するとともに、前記他装置へ送信し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記選択手段においては前記記憶領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項９に記載のデータ通信要求装置。
【請求項１１】
前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、
データの送受信毎に、要求信号の生成及び送出がなされ、
前記通信要求手段は、
２回目以降のデータの送受信に対する要求信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記第１記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む要求信号を生成して、前記他装置へ送出する
ことを特徴とする請求項１０に記載のデータ通信要求装置。
【請求項１２】
全二重通信が可能な他装置からデータ通信の要求を受け付け、当該他装置との間で接続された通信路を用いて全二重通信及び半二重通信のうち何れかを選択してデータ通信を行うデータ通信応答装置であって、
前記他装置の通信処理能力に応じた通信方式として半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を前記他装置から受け取ると、自装置の通信処理能力に基づいた通信方式として半二重通信を指定するか否かを示す第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記他装置へ送出する通信応答手段と、
前記第１通信フラグ及び前記第２通信フラグに基づいて、前記他装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、
選択された通信方式にてデータ通信を行う通信手段とを備える
ことを特徴とするデータ通信応答装置。
【請求項１３】
前記通信応答手段は、
前記要求信号の受け取りに先立って、当該データ通信応答装置と前記他装置とのうち通信処理能力が劣る装置が指定する通信フラグを優先すべきとする旨の優先フラグを受け取ると、受け取った前記優先フラグを所定の記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記記憶領域にて記憶している優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項１２に記載のデータ通信応答装置。
【請求項１４】
前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、
データの送受信毎に、前記他装置から要求信号の送出がなされ、
前記通信応答手段は、
前記データ通信の開始に先立って、前記他装置における通信処理能力に係る情報を受け取り、記憶し、
２回目以降のデータの送受信における要求信号に対する応答信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む応答信号を生成して、前記他装置へ送出する
ことを特徴とする請求項１３に記載のデータ通信応答装置。
【請求項１５】
前記通信路は２本のシリアル通信路から形成されており、
前記他装置は、データ通信に用いられる少なくとも２つの第１端子及び第２端子を備えており、
前記データ通信応答装置は、
データ通信に用いられる少なくとも２つの第３端子及び第４端子を有し、前記他装置と着脱可能であり、前記他装置への装着時に前記第１端子と前記第３端子とが、前記第２端子と前記第４端子とがそれぞれ接続されることで前記２本のシリアル通信路を形成するメモリカード又はＩ／Ｏカードである
ことを特徴とする請求項１２に記載のデータ通信応答装置。
【請求項１６】
全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムで用いられる通信方法であって、
前記第１装置は、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出し、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記第２装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択し、
選択された通信方式にてデータ通信を行い、
前記第２装置は、
前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出し、
前記第１通信フラグ及び前記第２通信フラグに基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択し、
選択された通信方式にてデータ通信を行う
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全二重通信と半二重通信が可能な通信経路を介して接続された複数の通信装置を含むデータ通信システムにおける通信方法の選択に係る技術に関する。
【背景技術】
【０００２】
近年の半導体微細化・高速化技術の進展に伴って、機器間あるいは機器内に搭載されるＬＳＩ間で通信するデータ量は益々増加傾向にあるが、その一方で、パッケージコストに影響するＬＳＩの端子（パッド）数には厳しい制約がある。【０００３】
このような制約のもとで用いられる通信方式として、半二重通信方式と全二重通信方式が挙げられる。一般的に制御が容易な全二重通信方式の方が高速化可能であるが、全二重通信方式において送信あるいは受信の一方のみを行っている期間は、他方のための通信路の帯域が無駄になるという課題があった。そこで、送信あるいは受信の一方を行っている期間は、全二重通信を行う通信路の方向を切り替えて全線を用いた半二重通信方式とし、限られた通信路の帯域を効率的に使用する技術が開示されている（特許文献１）。【０００４】
特許文献１によると、全二重通信が可能な２線式通信路で接続された２つの通信装置間で、双方の通信装置からの送信要求を同時に検出した場合は全二重通信モードを継続したままデータ通信を行い、一方の通信装置からの送信要求のみを検出した場合は半二重通信モードに切替えてからデータ通信を行う。【０００５】
例えば、一の通信装置のみから他方の通信装置へ送信要求を出力すると、２つの通信路の通信方向が当該１の通信装置から他方の通信装置へなるように、当該２つの通信路を制御して、半二重通信によるデータ通信を行うことを可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−９４６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１にて開示された技術においては、通信装置間で双方からの送信要求を同時に検出したか否かのみに応じて通信モードを決定するため、効率的な通信ができない場合がある。【０００８】
例えば、送信処理能力が片側の通信路の帯域以下である一の通信装置が半二重通信によるデータの送信を行う場合、当該一の通信装置は送信処理能力を超えた２つの通信路を送信用に占有するので、送信バッファのアンダーフローが発生し、送受信が停止した状態となって通信効率が低下する。【０００９】
また、同様に、受信処理能力が片側の通信路の帯域以下である一の通信装置が半二重通信によるデータの受信を行う場合、当該一の通信装置は受信処理能力を超えた２つの通信路を受信用に占有するので、受信バッファのオーバーフローが発生し、データ喪失が起こる。そのため、データ喪失が起こると再送手順が必要となって通信効率は大幅に低下する。【００１０】
そこで、本発明は、通信効率が低下することなく通信方式を切り替えることのできるデータ通信システム、データ通信要求装置、データ通信応答装置、通信方法、データ通信要求方法及びデータ通信応答方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記にて示す目的を達成するために、本発明は、全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムであって、前記第１装置は、自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出する通信要求手段と、前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記第２装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第１選択手段と、選択された通信方式にてデータ通信を行う第１通信手段とを備え、前記第２装置は、前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出する通信応答手段と、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第２選択手段と、選択された通信方式にてデータ通信を行う第２通信手段とを備えることを特徴とする。
【発明の効果】
【００１２】
この構成によると、データ通信システムの第１装置及び第２装置は、通信方式の選択の際に第１通信フラグ、第２通信フラグ、及び互いに予め定められた手順を用いるので、両装置ともに同一の通信方式を選択することができる。また、両装置間でのデータ通信開始のために必要な要求信号と応答信号のハンドシェークによって通信方式を決定できるので、通信方式を決定するための余分な手順を必要とせずに、両装置の通信処理能力に応じた通信方式とすることができる。したがって、データ通信システムは、課題として挙げた送受信バッファのアンダーフローやオーバーフローの発生を抑制し、通信効率を低下させること無くデータ通信を行うことが出来る。【００１３】
ここで、前記通信要求手段は、前記要求信号の生成に先立って、前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力とを用いて前記第１装置及び前記第２装置の何れかの装置を示す優先フラグを生成し、生成した前記優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、前記通信応答手段は、前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記第１選択手段においては前記第１記録領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記録領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含むとしてもよい。【００１４】
この構成によると、第１装置及び第２装置は、互いに優先フラグを共有して、通信方式の選択時に用いるので、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合において互いに違った通信方式を選択することを防ぐことができる。【００１５】
ここで、前記通信処理能力には、データの受信に用いられるバッファの容量が含まれ、前記要求信号には、当該第１装置がデータ送信を要求する旨及びデータを受信する旨の通信種別が含まれ、前記通信要求手段は、前記第１装置及び前記第２装置双方のバッファの容量が、半二重通信の通信帯域で送信されるデータのデータ量を確保できるか否かを判断し、判断結果が肯定的である場合にはデータを送信する側の装置を示す優先フラグを生成し、判断結果が否定的である場合にはデータを受信する側の装置を示す優先フラグを生成し、前記第１選択手段及び前記第２選択手段は、優先フラグがデータを送信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ送信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択し、優先フラグがデータを受信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ受信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択するとしてもよい。【００１６】
この構成によると、第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合には、第１装置及び第２装置それぞれにおいてデータの受信時に用いられるバッファの容量を用いて定められた優先フラグを用いることでデータを送信する装置及びデータを受信する装置の何れかの装置から送信された通信フラグの内容に基づいて通信方式を選択している。これにより、データ通信システムは、優先フラグが受信側の装置を示す場合には受信側におけるバッファ溢れを防ぐことができ、優先フラグが送信側の装置を示す場合には送信側の送信能力を最大限に利用することができる。【００１７】
ここで、前記通信要求手段は、受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置を示す優先フラグを生成し、前記第１選択手段及び前記第２選択手段は、優先フラグが前記第１装置を示す場合には前記第１通信フラグが示す通信方式を選択し、優先フラグが前記第２装置を示す場合には前記第２通信フラグが示す通信方式を選択するとしてもよい。【００１８】
この構成によると、第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合には、優先フラグを用いることで第１装置及び第２装置のうち通信処理能力が劣る装置が指定する通信方式を選択することができる。これにより、データ通信システムの第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合であっても、通信処理能力が劣る装置が指定する通信方式を選択することで、両装置ともデータ通信時において、確実に自身の通信処理能力内で処理を行うことができる。【００１９】
ここで、前記通信要求手段は、前記要求信号の生成に先立って、前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力のどちらか一方が半二重通信による通信処理能力を満たさない場合には全二重通信を優先とする旨、双方の通信処理能力が半二重通信による通信処理能力を満たす場合には半二重通信を優先とする旨を示す優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、前記通信応答手段は、前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記第１選択手段においては前記第１記憶領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記憶領域にて記憶されている優先フラグに基づいて、優先すべき通信方式を選択することを含むとしてもよい。【００２０】
この構成によると、第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合であっても、双方の通信処理能力に基づいて定められた優先フラグに基づいて通信方式を選択している。これにより、何れかの装置の通信処理能力が半二重通信により処理能力を満たさない場合には、優先フラグにより全二重通信が選択されるので、両装置とも通信処理能力を超えたデータ通信を行うことがない。【００２１】
ここで、前記第１通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、前記通信応答手段は、前記要求信号に含まれる前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記全二重通信による通信を指定する旨及び半二重通信による通信を指定する旨の何れかを示す第２通信フラグを前記応答信号に含め、前記手順は、前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第２通信フラグが示す通信方式を選択することを含むとしてもよい。【００２２】
この構成によると、第１通信装置が全二重通信及び半二重通信のどちらの通信でもよい旨を通信フラグに設定する場合には、第２通信装置が指定する第２通信フラグを用いることで、両装置とも通信処理能力内でデータ通信を行うことができる。【００２３】
ここで、前記第１通信フラグは、半二重通信による通信を指定する旨及び全二重通信による通信を指定する旨の何れかを示し、前記第２通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、前記手順は、前記第２通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第１通信フラグが示す通信方式を選択することを含むとしてもよい。【００２４】
この構成によると、第２通信装置が全二重通信及び半二重通信のどちらの通信でもよい旨を通信フラグに設定する場合には、第１通信装置が指定する第１通信フラグを用いることで、両装置とも通信処理能力内でデータ通信を行うことができる。【００２５】
ここで、前記通信要求手段は、自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含めるに先立って、データ通信の対象となるデータのデータサイズが所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第１通信フラグを前記要求信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含め、前記通信応答手段は、自装置の通信処理能力に応じた第２通信フラグを前記要求信号に含めるに先立って、前記データ通信の対象となるデータのデータサイズが前記所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第２通信フラグを前記応答信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第２通信フラグを前記要求信号に含めるとしてもよい。【００２６】
この構成によると、比較的小さなサイズのデータ通信時に半二重通信が選択され、通信路の方向切り替えに要する時間的オーバヘッドで通信効率が低下することを防ぐことができる。【００２７】
また、本発明は、全二重通信が可能な他装置へデータ通信の要求を行い、前記他装置との間で接続された通信路を用いて全二重通信及び半二重通信の何れかを選択してデータ通信を行うデータ通信要求装置であって、自装置の通信処理能力に応じた通信方式として半二重通信の利用を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記他装置へ送出する通信要求手段と、前記要求信号の送出後、前記他装置の通信処理能力に基づいた通信方式として半二重通信の利用を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記他装置から受け取り、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記他装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、選択された通信方式にてデータ通信を行う通信手段とを備えることを特徴とする。【００２８】
この構成によると、データ通信要求装置は、第１通信フラグ及び第２通信フラグに基づいて、予め定められた手順により自装置と他装置ともに同一の通信方式を選択する。また、選択された通信方式は、両装置の通信処理能力に応じたものであるので、各装置は選択された通信方式を用いても、自身の通信処理能力を超えた処理を行うことがない。したがって、データ通信要求装置は、通信効率を低下させることなくデータ通信を行うことができる。【００２９】
ここで、前記通信要求手段は、前記要求信号の生成に先立って、前記他装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置が指定する通信フラグを優先すべきとする旨の優先フラグを、前記他装置と共有するために前記所定の記憶領域へ記憶するとともに、前記他装置へ送信し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記選択手段においては前記記憶領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含むとしてもよい。【００３０】
この構成によると、データ通信要求装置は、他装置と優先フラグを共有して、通信方式の選択時に用いるので、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合において互いに違った通信方式を選択することを防ぐことができる。【００３１】
ここで、前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、データの送受信毎に、要求信号の生成及び送出がなされ、前記通信要求手段は、２回目以降のデータの送受信に対する要求信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記第１記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む要求信号を生成して、前記他装置へ送出するとしてもよい。【００３２】
この構成によると、データ通信要求装置は、データ通信中において、優先フラグを更新するので、データ通信中のデータ送受信時において、その時点での互いの通信処理能力に応じた通信方式を選択することができる。【００３３】
また、本発明は、全二重通信が可能な他装置からデータ通信の要求を受け付け、当該他装置との間で接続された通信路を用いて全二重通信及び半二重通信のうち何れかを選択してデータ通信を行うデータ通信応答装置であって、前記他装置の通信処理能力に応じた通信方式として半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を前記他装置から受け取ると、自装置の通信処理能力に基づいた通信方式として半二重通信を指定するか否かを示す第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記他装置へ送出する通信応答手段と、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記他装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、選択された通信方式にてデータ通信を行う通信手段とを備えることを特徴とする。【００３４】
この構成によると、データ通信応答装置は、第１通信フラグ及び第２通信フラグに基づいて、予め定められた手順により自装置と他装置ともに同一の通信方式を選択する。また、選択された通信方式は、両装置の通信処理能力に応じたものであるので、各装置は選択された通信方式を用いても、自身の通信処理能力を超えた処理を行うことがない。したがって、データ通信応答装置は、通信効率を低下させることなくデータ通信を行うことができる。【００３５】
ここで、前記通信応答手段は、前記要求信号の受け取りに先立って、当該データ通信応答装置と前記他装置とのうち通信処理能力が劣る装置が指定する通信フラグを優先すべきとする旨の優先フラグを受け取ると、受け取った前記優先フラグを所定の記憶領域へ記憶し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記記憶領域にて記憶している優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含むとしてもよい。【００３６】
この構成によると、データ通信応答装置は、他装置と優先フラグを共有して、通信方式の選択時に用いるので、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合において互いに違った通信方式を選択することを防ぐことができる。【００３７】
ここで、前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、データの送受信毎に、前記他装置から要求信号の送出がなされ、前記通信応答手段は、前記データ通信の開始に先立って、前記他装置における通信処理能力に係る情報を受け取り、記憶し、２回目以降のデータの送受信における要求信号に対する応答信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む応答信号を生成して、前記他装置へ送出するとしてもよい。【００３８】
この構成によると、データ通信応答装置は、データ通信中において、優先フラグを更新するので、データ通信中のデータ送受信時において、その時点での互いの通信処理能力に応じた通信方式を選択することができる。【００３９】
ここで、前記通信路は２本のシリアル通信路から形成されており、前記他装置は、データ通信に用いられる少なくとも２つの第１端子及び第２端子を備えており、前記データ通信応答装置は、データ通信に用いられる少なくとも２つの第３端子及び第４端子を有し、前記他装置と着脱可能であり、前記他装置への装着時に前記第１端子と前記第３端子とが、前記第２端子と前記第４端子とがそれぞれ接続されることで前記２本のシリアル通信路を形成するメモリカード又はＩ／Ｏカードであるとしてもよい。【００４０】
この構成によると、データ通信応答装置としてメモリカード又はＩ／Ｏカードを用いることができるので、これらカードは、他装置との間での通信効率を低下させることなくデータ通信を行うことができる。
【図面の簡単な説明】
【００４１】
【図１】データ通信システム１０における通信装置２０、３０の構成を示すブロック図である。
【図２】制御情報を共有する際の通信の流れを示す図である。
【図３】要求信号６０のデータ構造のフォーマット例を示す図である。
【図４】応答信号７０のデータ構造のフォーマット例を示す図である。
【図５】優先フラグ２３０、３３０のフォーマット例を示す図である。
【図６】切替部２０４の構成を示す図である。
【図７】切替部３０４の構成を示す図である。
【図８】半二重通信によりマスタ２０がスレーブ３０へデータを送信する場合の構成を示す図である。
【図９】半二重通信によりマスタ２０がスレーブ３０からデータを受信する場合の構成を示す図である。
【図１０】データ通信システム１０における処理の概要を示す流れ図である。
【図１１】マスタ２０の処理を示す流れ図である。
【図１２】通信要求処理を示す流れ図である。
【図１３】通信方式の設定処理を示す流れ図である。
【図１４】通信方式の選択処理を示す流れ図である。
【図１５】スレーブ３０の処理を示す流れ図である。
【図１６】通信応答処理を示す流れ図である。
【図１７】通信方式の切り替えの動作を示す流れ図である。
【図１８】通信モードフラグに未選択が含まれる場合の通信方式の選択処理を示す流れ図である。
【図１９】送受信対象のデータを複数個のブロックに分割した場合におけるマスタ２０の処理を示す流れ図である。
【図２０】送受信対象のデータを複数個のブロックに分割した場合におけるスレーブ３０の処理を示す流れ図である。
【図２１】データ通信システム１０ａにおける通信装置２０ａの構成を示すブロック図である。
【図２２】データ通信システム１０ａにおけるＳＤカード３０ａの構成を示すブロック図である。
【発明を実施するための形態】
【００４２】
１．実施の形態１
以下、本発明に係る通信装置について、図面を用いて説明する。
【００４３】
１．１  データ通信システム１０の構成
図１は、本発明の実施形態に係るデータ通信システム１０の全体構成を示す。
【００４４】
データ通信システム１０は、図１にて示すように、通信装置（マスタ）２０と通信装置（スレーブ）３０と通信経路４０とから構成されている。
【００４５】
通信経路４０は通信路４００、４０１から構成されており、マスタ２０とスレーブ３０との間における全二重通信及び半二重通信を実現する。
【００４６】
マスタ２０は通信開始のトリガーとして要求信号を出力する装置であり、スレーブ３０はその要求信号を受けて通信準備ができるとマスタ２０に応答信号を出力する装置である。なお、本実施の形態では、これらマスタ２０とスレーブ３０の関係は固定的であることとする。
【００４７】
マスタ２０及びスレーブ３０は、データ通信を行う際に、全二重通信と半二重通信とから自装置の通信処理能力に応じた通信方式を指定し、互いに指定した通信方式から同一の通信方式を選択する。ここで、データ通信とは、マスタ２０が実際に処理する対象となるデータ、つまりマスタ２０からスレーブ３０へ書き込むべきデータ及びマスタ２０がスレーブ３０から読み出すべきデータの送受信のことをいう。
【００４８】
マスタ２０及びスレーブ３０は、選択した同一の通信方式にてデータ通信を行う。
【００４９】
なお、マスタ２０及びスレーブ３０との間において、ハンドシェーク方式により、データ量が少ないデータ通信を行う際は、要求信号と応答信号を同時に転送することを可能とするため、通信路４００を下りの通信路とし、通信路４０１を上りの通信路とする全二重通信モードでの通信を行う。ここで、下りとはデータがマスタ２０からスレーブ３０へ送信されることをいい、逆に、上りとはデータがスレーブ３０からマスタ２０へ送信されることをいう。
【００５０】
また、本実施の形態におけるデータ通信システム１０では、既定の通信方式（以下、「既定方式」という）として全二重通信による通信が行われるものとする。
【００５１】
１．２  マスタ２０の構成
マスタ２０は、図１にて示すように、送信部２０１、受信部２０２、処理部２０３、切替部２０４及び制御部２０５から構成されている。
【００５２】
（１）送信部２０１及び受信部２０２
送信部２０１及び受信部２０２のそれぞれはＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）回路のような機能を有し、装置間の通信路４００、４０１における通信帯域と処理部２０３のデータ処理能力の差を吸収するために、図１にて示すようにバッファ２１０、２１１を有している。
【００５３】
（２）制御部２０５
制御部２０５は、ＣＰＵやメモリなどから構成され、データ通信の状態を監視しながら、データ通信の制御を行うものである。
【００５４】
制御部２０５は、図１にて示すように、通信要求部２２０、通信方式選択部２２１、優先フラグ記憶部２２２を含んでいる。
【００５５】
制御部２０５は、スレーブ３０へ送信すべきデータや、スレーブ３０から受信したデータに係る処理を実行する。ここでいうデータ処理とは、マスタ２０がスレーブ３０からデータを読み出す場合における処理や、スレーブ３０へデータを書き込む場合における処理である。読み出しにおける処理には、スレーブ３０への読み出し要求や受信したデータを自己のＨＤＤ等の記憶部（図示せず）に格納したりする処理が含まれる。また、書き込みにおける処理には、スレーブ３０への書き込み要求に係る処理が含まれる。
【００５６】
また、互いの装置間にて通信に係る情報（制御情報）を共有するために行われる通信の初期化に係る処理をも行う。
【００５７】
（２−１）通信要求部２２０
ここでは、通信要求部２２０について説明する。
【００５８】
（通信初期化時）
先ず通信の初期化に係る動作について説明する。なお、通信の初期化とは、マスタ２０が実際に処理すべきデータの送受信の前に行われる、通信に係る情報の共有のためのデータの送受信のことをいう。
【００５９】
通信要求部２２０は、自装置に対する制御情報を予め記憶している。ここで、制御情報とは、送受信可能なデータアドレス空間、自装置がデータ通信で扱うことのできる基本データブロック長、送信部２０１及び受信部２０２それぞれが有するバッファの容量、自装置における通信方式の切替時間やデータ処理の処理速度（データ処理レート）などである。なお、本実施の形態では、これらのデータそれぞれを制御情報として扱うものとし、これら制御情報（送受信可能なデータアドレス空間、基本データブロック長、バッファ容量、切替時間、処理速度）は、Ｉ／Ｏアドレス空間にマッピングされた制御レジスタとして格納されている。
【００６０】
通信要求部２２０は、通信に必要な制御情報をスレーブ３０と共有するために、スレーブ３０が有する制御情報を要求する旨のＩ／Ｏ受信要求信号５０を生成する。生成されたＩ／Ｏ受信要求信号５０は、処理部２０３にてパケット単位のデータパケット信号に変換されてスレーブ３０へ送出される。例えば、Ｉ／Ｏ受信要求信号５０は、図２（ａ）にて示すように、Ｉ／Ｏ受信５０１とＩ／Ｏアドレス５０２とを含む信号である。Ｉ／Ｏ受信５０１とは、スレーブ３０が有する制御情報の読み出しを要求する旨の識別子であり、Ｉ／Ｏアドレス５０２とは読み出しの要求対象である制御情報（制御レジスタ）を識別するものである。
【００６１】
通信要求部２２０は、読み出しを要求するデータ（例えば、データアドレス空間、バッファの容量、基本データブロック長、切替時間、処理速度）毎に、Ｉ／Ｏ受信要求信号５０を生成し、生成したＩ／Ｏ受信要求信号５０を順次、スレーブ３０へ送出する。
【００６２】
通信要求部２２０は、Ｉ／Ｏ受信要求信号５０を順次送出した後、スレーブ３０が有する制御情報（データアドレス空間、バッファの容量、基本データブロック長、切替時間、処理速度）５０３を順次、処理部２０３を介してスレーブ３０から受け取る。
【００６３】
通信要求部２２０は、受信した制御情報５０３と、対応する自身の制御情報とを比較してデータ通信時に用いる制御情報を確定する。例えば、通信要求部２２０は、スレーブ３０から制御情報としてバッファ容量を受け取ると、自身のバッファ容量と比較し容量の小さいバッファ容量をデータ通信時に用いる制御情報として確定する。また、基本データブロック長の場合にはブロック長の短い方をデータ通信時の制御情報とし、切替時間及び処理時間の場合には時間が長い方をデータ通信時の制御情報として確定する。つまり、通信要求部２２０は、両装置間において通信処理能力が低いものをデータ通信時に用いる制御情報として確定する。
【００６４】
通信要求部２２０は、確定した制御情報５１２が付加されたＩ／Ｏ送信要求信号５１を生成する。生成されたＩ／Ｏ送信要求信号５１は処理部２０３にてパケット単位のデータパケット信号に変換されてスレーブ３０へ送出される。
【００６５】
例えば、Ｉ／Ｏ送信要求信号５１は、図２（ｂ）にて示すように、Ｉ／Ｏ受信５１０とＩ／Ｏアドレス５１１とを含む信号であり、当該信号の後続として確定した制御情報５１２が付加されている。Ｉ／Ｏ受信５１０及びＩ／Ｏアドレス５１１は、Ｉ／Ｏ受信要求信号５０に含まれるものと同一のものである。
【００６６】
また、通信要求部２２０は、互いの通信処理能力に基づいた優先フラグを生成する。ここで、優先フラグとは、互いの装置にて共有され、通信方式を選択する際に必要に応じて用いるものであり、例えば、互いに指定した通信方式のうちマスタ２０が指定したものを優先する旨及びスレーブ３０が指定したものを優先する旨の何れかを示す。
【００６７】
通信要求部２２０は、生成した優先フラグを優先フラグ記憶部２２２へ格納するとともに、スレーブ３０へも送出する。これにより両装置間で、優先フラグを共有することができる。
【００６８】
通信要求部２２０は、優先フラグを生成する際、通信処理能力としてデータ処理の処理時間（データの転送レート）を用いて、処理時間が長い方に対応する装置が指定する通信方式を優先するように決定する。
【００６９】
通信要求部２２０による上記の動作により、自装置とスレーブ３０との間で通信開始前に必要な制御情報を共有することができ、通信可能な状態となる。
【００７０】
（データ通信時）
通信要求部２２０は、上記の通信初期化にて、データ通信に必要な制御情報を共有した後、読み出し若しくは書き込みがなされるデータの送受信に先立って、要求信号６０を生成する。生成された要求信号は処理部２０３にてパケット単位のデータパケット信号に変換されてスレーブ３０へ送出される。
【００７１】
要求信号には、例えば、図３（ａ）にて示すように、通信種別６０１、通信モードフラグ６０２、アドレス６０３及びサイズ６０４が含まれる。通信種別６０１は、当該信号の種別を示すものであり、例えば、値“００”はＩ／Ｏ送信要求信号を、“０１”はＩ／Ｏ受信要求信号を、“１０”はデータ送信要求信号を、“１１”はデータ受信要求信号をそれぞれ示す。通信モードフラグ６０２は、データの送受信に用いる通信方式を識別するものであり、例えば、値“０”は全二重通信を、“１”は半二重通信をそれぞれ示す。ここで、値“０”が全二重通信を示すとは、逆に言うと、半二重通信はできないことを意味する。
【００７２】
アドレス６０３は、マスタ２０がデータの書き込みを要求する場合にはデータを書き込む開始位置を示し、マスタ２０がデータの読み出しを要求する場合にはデータを読み出す開始位置を示す。
【００７３】
サイズ６０４は、マスタ２０がデータの書き込みを要求する場合には書き込むべきデータの大きさを示し、マスタ２０がデータの読み出しを要求する場合には読み出すべきデータの大きさを示す。
【００７４】
なお、図２（ａ）、（ｂ）にて示すＩ／Ｏ受信要求信号５０、Ｉ／Ｏ送信要求信号５１は、図３（ａ）にて示す要求信号６０における通信モードフラグ６０２とサイズ６０４とを省略した信号である。これは、通信種別６０１がＩ／Ｏ受信要求信号又はＩ／Ｏ送信要求信号を示す場合、通信内容は制御情報（制御レジスタ）であり、そのサイズは通常固定されたものであるのでサイズ６０４は省略することができ、さらに、制御情報は比較的サイズが小さいため、通信方式の切り替えのオーバヘッドを考慮すると、Ｉ／Ｏ送受信は全二重通信のみで行うことが望ましいため、既定の全二重通信のままで通信方式を変える必要がないため通信モードフラグ６０２は付加しなくてもよい。なお、Ｉ／Ｏ受信要求信号５０及びＩ／Ｏ送信要求信号５１は、通信モードフラグ６０２及びサイズ６０４を省略することなく、要求信号６０と同一のデータ構造としてもよい。
【００７５】
通信要求部２２０は、要求信号６０を生成する際に、スレーブ３０へ通知すべき通信方式を決定する。例えば、通信要求部２２０は、送信すべき、若しくは受信すべきデータのサイズが通信路４００、４０１の方向切り替えのオーバヘッドを無視できる程の大きさかを判定する。ここでは、通信路４００、４０１の方向切り替えのオーバヘッドに応じて設定したしきい値に比べ、実際に送信すべき、若しくは受信すべきデータのサイズが十分大きければ送受信能力に基づく通信方式の決定を行い、そうでなければスレーブ３０へ指定する通信方式を全二重通信と決定し、つまり通信要求部２２０は、通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。
【００７６】
ここで、送受信能力に基づく通信方式の決定について述べる。
【００７７】
通信要求部２２０は、以下に示す数式１を用いて、データの送受信に必要なバッファサイズを算出する。通信要求部２２０は、データの書き込みを要求する場合には算出バッファサイズがバッファ２１０にて確保可能であるかを判断し、確保可能であると判断する場合には通信モードフラグ６０２に半二重通信を示すモード（値“１”）を設定し、確保不可と判断する場合には通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。また、データの読み込みを要求する場合には算出バッファサイズがバッファ２１１にて確保可能であるかを判断し、確保可能であると判断する場合には通信モードフラグ６０２に半二重通信を示すモード（値“１”）を設定し、確保不可と判断する場合には通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。
【００７８】
【数１】
2009147785.tif 000003
次に、通信要求部２２０は、要求信号６０を送出した後、送出した要求信号に対応する応答信号７０を、処理部２０３を介してスレーブ３０から受け取る。
【００７９】
応答信号７０には、例えば、図４（ａ）にて示すように、通信可否７０１と通信モードフラグ７０２とが含まれる。通信可否７０１は、マスタ２０が送信した要求信号６０を受け付けたか、あるいは要求信号６０に含まれるアドレス６０３やサイズ６０４にエラーがあって受け付けていないかを示すもの情報が格納されており、例えば、値“０”は要求信号６０を受け付けた旨（通信可能）を、“１”は要求信号を受け付けていない旨（通信不可（エラー））をそれぞれ示す。通信モードフラグ７０２は、スレーブ３０にて決定された（指定された）通信方式を識別するものであり、その内容は通信モードフラグ６０２と同様である。
【００８０】
（２−２）通信方式選択部２２１
通信方式選択部２２１は、自装置がスレーブ３０へ送信した要求信号６０とスレーブ３０から受け取った応答信号７０のそれぞれに含まれる通信モードフラグ６０２、７０２から全二重通信及び半二重通信のうち何れかの通信方式を一意に選択し、その結果に応じて切替部２０４の切り替えに係る制御を行う。なお、選択方法、及び切り替えに係る制御については、後述する。
【００８１】
また、通信方式選択部２２１は、半二重通信によるデータ通信が終了すると、通信方式を既定方式へと通信方式の復旧を行う。
【００８２】
（２−３）優先フラグ記憶部２２２
優先フラグ記憶部２２２は、図５（ａ）にて示すように、自装置とスレーブ３０との間で共有する優先フラグ２３０を記憶するための領域を有しており、通信の初期化時に優先フラグが当該領域に格納される。なお、優先フラグの設定は、上述したように通信要求部２２０にて行われる。
【００８３】
ここで、図５（ｂ）にて、優先フラグ２３０の一例を示す。これによると、優先フラグ２３０が示す値が“０”である場合にはマスタ優先である旨、つまり要求信号に含まれる通信モードフラグが示す通信方式を優先する旨を示し、値が“１”である場合にはスレーブ優先である旨、つまり応答信号に含まれる通信モードフラグが示す通信方式を優先する旨を示す。
【００８４】
なお、後述するスレーブ３０が有する優先フラグ３３０についても同様である。
【００８５】
（３）処理部２０３
処理部２０３は、スレーブ３０へ送信すべきデータ（スレーブ３０へ書き込むべきデータ）に対して処理を施して、パケット単位のパケット信号を生成して送信部２０１を介してスレーブ３０へ送信する。
【００８６】
また、処理部２０３は、制御部２０５から受け取ったＩ／Ｏ受信要求信号５０、Ｉ／Ｏ送信要求信号５１、及びデータ通信時における要求信号６０を、パケット単位のパケット信号へと変換して送信部２０１を介してスレーブ３０へ送信する。
【００８７】
また、処理部２０３は、バッファ２１１に蓄積された受信データを処理して、制御部２０５へ伝達する。例えば、処理部２０３は、制御情報５０３、応答信号７０を制御部２０５へ出力する。
【００８８】
（４）切替部２０４
切替部２０４は、通信方式選択部２２１にて選択された通信方式、つまりデータ送受信時の通信モードが全二重通信か半二重通信かに応じて通信路４００、４０１の方向の切り替え、及び送信部２０１、受信部２０２との接続の切り替えを行う。
【００８９】
切替部２０４の詳細を以下に述べる。
【００９０】
切替部２０４は、図６にて示すように、差動トランスミッタ２４５、２４７及び差動レシーバ２４６、２４８を含んでいる。
【００９１】
差動トランスミッタ２４５、２４７、差動レシーバ２４６、２４８は、シリアルデータを通信路４００、４０１を用いてデータを送受信するためのものである。差動トランスミッタ２４５、２４７、差動レシーバ２４６、２４８は、上述したように、制御部２０５によりその動作が制御される。
【００９２】
ここで、上述した通信方式選択部２２１による切り替えに係る制御とは、通信路４００、４０１に接続された差動トランスミッタ２４５、２４７９と差動レシーバ２４６、２４８のいずれか一方を選択的に有効化することで、全二重通信と半二重通信の何れかの通信方式に切り替えることをいう。例えば、通信方式選択部２２１が通信方式として全二重通信を選択すると、通信方式選択部２２１が差動トランスミッタ２４５と差動レシーバ２４８とを有効にするよう制御することで、通信方式の切り替えが行われる。また通信方式として半二重通信が選択されると、マスタ２０がデータ受信を要求する場合には通信方式選択部２２１が差動レシーバ２４６、２４８とを有効にするよう制御し、マスタ２０がデータ送信を要求する場合には通信方式選択部２２１が差動トランスミッタ２４５、２４７とを有効にするよう制御することで、通信方式の切り替えが行われる。
【００９３】
なお、通常、通信方式の切り替えが行われた後、ビット同期の制御を行うが、発明の本質ではないので、ここでの説明は省略する。
【００９４】
１．３  スレーブ３０の構成
スレーブ３０は、図１にて示すように、送信部３０１、受信部３０２、処理部３０３、切替部３０４及び制御部３０５から構成されている。
【００９５】
（１）送信部３０１及び受信部３０２
送信部３０１及び受信部３０２のそれぞれは、マスタ２０が有する送信部２０１及び受信部２０２と同様に、図１にて示すように、バッファ３１０、３１１を有している。
【００９６】
（２）制御部３０５
制御部３０５は、ＣＰＵやメモリなどから構成され、マスタ２０が有する制御部２０５と同様にデータ通信の状態を監視しながら通信の制御を行うものであり、図１にて示すように、通信応答部３２０、通信方式選択部３２１、優先フラグ記憶部３２２を含んでいる。
【００９７】
制御部３０５は、マスタ２０へ送信すべきデータや、マスタ２０から受信したデータに係る処理を実行する。ここでいうデータ処理とは、マスタ２０におけるデータ処理と同様であるので、ここでの説明は省略する。
【００９８】
また、マスタ２０における制御部２０５と同様に、互いの装置間にて通信に係る情報（制御情報）を共有するために行われる通信の初期化に係る処理をも行う。
【００９９】
（２−１）通信応答部３２０
ここでは、通信応答部３２０について説明する。
【０１００】
（通信初期化時）
先ず通信の初期化に係る動作について説明する。
【０１０１】
通信応答部３２０は、マスタ２０の通信要求部２２０と同様に、自装置に対する制御情報を予め記憶している。
【０１０２】
通信応答部３２０は、マスタ２０からＩ／Ｏ受信要求信号５０を、受信部３０２及び処理部３０３を介して受け取る。
【０１０３】
通信応答部３２０は、受け取ったＩ／Ｏ受信要求信号５０にて要求される制御情報５０３を、マスタ２０へ送信する。このとき、送信される制御情報５０３は、処理部３０３にてパケット単位のデータパケット信号に変換されてマスタ２０へ送出されることとなる。
【０１０４】
通信応答部３２０は、その後、マスタ２０と共有すべき制御情報５１２が付加されたＩ／Ｏ送信要求信号５１を、処理部３０３を介して受け取ると、受け取ったＩ／Ｏ送信要求信号５１に付加された制御情報５１２を所定の記憶領域へ格納する。
【０１０５】
また、通信応答部３２０は、マスタ２０から優先フラグを受け取ると、受け取った優先フラグを優先フラグ記憶部３２２へ格納する。
【０１０６】
通信応答部３２０による上記の動作により、自装置とマスタ２０との間で通信開始前に必要な制御情報を共有することができ、通信可能な状態となる。
【０１０７】
（データ通信時）
通信応答部３２０は、上記の通信初期化にて、データ通信に必要な制御情報を共有した後、マスタ２０から受信部３０２及び処理部３０３を介して、要求信号６０を受け取ると、応答信号７０を生成する。このとき、通信応答部３２０は、受け取った要求信号６０のエラーチェックを行い、エラーが検出された場合には通信可否７０１に値“１”を設定し、エラーが検出されない場合には通信可否７０１に値“０”を設定する。また、通信応答部３２０は、通信要求部２２０による決定方法と同一の方法によりマスタ２０へ通知すべき通信方式を決定する。
【０１０８】
通信応答部３２０は、生成した応答信号７０を、データの送受信が開始可能なタイミングで、処理部３０３及び送信部３０１を介してマスタ２０へ送信する。このとき、送信される応答信号７０は、処理部３０３にてパケット単位のデータパケット信号に変換されてマスタ２０へ送出されることとなる。
【０１０９】
（２−２）通信方式選択部３２１
通信方式選択部３２１は、マスタ２０の通信方式選択部２２１と同様であるので、ここでの説明は省略する。
【０１１０】
（２−３）優先フラグ記憶部３２２
優先フラグ記憶部３２２は、図５（ａ）にて示すように、自装置とマスタ２０との間で共有する優先フラグ３３０を記憶するための領域を有しており、通信の初期化時に優先フラグ３３０が当該領域に格納される。なお、優先フラグ３３０の設定は、上述したように通信応答部３２０にて行われる。
【０１１１】
優先フラグ３３０は、図５（ｂ）にて示すように優先フラグ２３０と同一である。
【０１１２】
（３）処理部３０３
処理部３０３は、マスタ２０へ送信すべきデータ（マスタ２０が読み出すべきデータ）に対する処理を施して、パケット単位のパケット信号を生成して送信部３０１を介してマスタ２０へ送信する。
【０１１３】
また、処理部３０３は、制御部３０５から受け取った制御情報５０３、及びデータ通信時における応答信号７０を、パケット単位のパケット信号へと変換して送信部３０１を介してマスタ２０へ送信する。
【０１１４】
また、処理部３０３は、バッファ３１１に蓄積された受信データを処理して、制御部３０５へ伝達する。例えば、処理部３０３は、制御情報５１２が付加されたＩ／Ｏ送信要求信号５１、要求信号６０を制御部３０５へ出力する。
【０１１５】
（４）切替部３０４
切替部３０４は、通信方式選択部２２１にて選択された通信方式、つまりデータ送受信時の通信モードが全二重通信か半二重通信かに応じて通信路４００、４０１の方向の切り替え、及び送信部３０１、受信部３０２との接続の切り替えを行う。
【０１１６】
切替部３０４の詳細を以下に述べる。
【０１１７】
切替部３０４は、図７にて示すように、差動トランスミッタ３４５、３４７及び差動レシーバ３４６、３４８を含んでいる。
【０１１８】
差動トランスミッタ３４５、３４７、差動レシーバ３４６、３４８は、シリアルデータを通信路４００、４０１を用いてデータを送受信するためのものである。差動トランスミッタ３４５、３４７、差動レシーバ３４６、３４８は、上述したように、制御部３０５によりその動作が制御される。
【０１１９】
ここで、通信方式選択部３２１により切り替えに係る制御が行われるが、その動作は、とは、通信方式選択部２２１にて行われる制御と同一であるので、ここでの説明は省略する。
【０１２０】
なお、通常、通信方式の切り替えが行われた後、マスタ２０と同様に、ビット同期の制御を行うが、発明の本質ではないので、ここでの説明は省略する。
【０１２１】
１．４  通信方式の切り替えについて
ここでは、通信方式の切り替えについて、説明する。
【０１２２】
図１では、通信方式を全二重通信とした場合のデータ通信システム１０を示している。このとき、切替部２０４においては差動トランスミッタ２４５と差動レシーバ２４８とが有効となるように制御され、切替部３０４においては差動トランスミッタ２４７と差動レシーバ２４６とが有効となるように制御される。これにより、通信路４００を下りとし、通信路４０１を上りとする全二重通信が可能となる。
【０１２３】
図８では、通信方式を半二重通信とし、マスタ２０からスレーブ３０へデータを送信する場合のデータ通信システム１０を示している。この場合、半二重送信時の切替部２０４、３０４は、マスタ２０の送信部２０１とスレーブ３０の受信部３０２との間で半二重送信の通信路４００、４０１を用いた送信処理のために、それぞれ全二重通信から半二重通信への切替、半二重通信から全二重通信への切替を行う。具体的には、切替部２０４においては差動トランスミッタ２４５、２４７とが有効となるよう制御され、切替部３０４においては差動レシーバ３４６、３４８とが有効となるよう制御される。これにより、通信路４００及び通信路４０１ともに下りとする半二重通信が可能となる。
【０１２４】
図９では、通信方式を半二重通信とし、マスタ２０がスレーブ３０からデータを受信する場合のデータ通信システム１０を示している。この場合、半二重受信時の切替部２０４、３０４は、マスタ２０の受信部２０２とスレーブ３０の送信部３０１との間で半二重受信の通信路４００、４０１を用いた受信処理のために、それぞれ半二重通信から全二重通信への切替、全二重通信から半二重通信への切替を行う。具体的には、切替部２０４においては差動レシーバ２４６、２４８とが有効となるよう制御され、切替部３０４においては差動トランスミッタ３４５、３４７とが有効となるよう制御される。これにより、通信路４００及び通信路４０１ともに上りとする半二重通信が可能となる。
【０１２５】
１．５  動作
（１）データ通信システム１０の動作概要
ここでは、データ通信システム１０の動作概要について、図１０にて示す流れ図を用いて説明する。
【０１２６】
データ通信システム１０は、マスタ２０及びスレーブ３０の間で、Ｉ／Ｏ受信要求信号５０、Ｉ／Ｏ送信要求信号５１及び制御情報５０３、５１２を送受信して、データ通信に用いる制御情報を共有するための通信初期化処理を行う（ステップＳ５）。この処理により、マスタ２０とスレーブ３０との間で通信を開始する前に必要な制御情報を共有して通信可能な状態となる。
【０１２７】
データ通信システム１０は、マスタ２０及びスレーブ３０の間で、マスタ２０が指定した通信モードフラグ６０２を含む要求信号６０を送受信する通信要求処理を行う（ステップＳ１０）。
【０１２８】
その後、  データ通信システム１０は、マスタ２０及びスレーブ３０の間で、スレーブ３０が指定した通信モードフラグ７０２を含む応答信号７０を送受信する通信応答処理を行う（ステップＳ１５）。
【０１２９】
通信要求処理及び通信応答処理によりマスタ２０とスレーブ３０との間のハンドシェークが成立すると、  データ通信システム１０におけるマスタ２０及びスレーブ３０は、互いが指定した通信モードフラグ６０２、７０２を用いて、同一のアルゴリズムによりデータ通信に用いる通信方式を一意に選択する（ステップＳ２０）。
【０１３０】
データ通信システム１０は、マスタ２０及びスレーブ３０が通信モード選択処理にて一意に選択された通信モードに応じた通信方式により、データを送受信するデータ通信処理を行う（ステップＳ２５）。
【０１３１】
データ通信システム１０は、通信が完了したか否か、つまり残りの通信すべきデータが存在するか否かを判断する。（ステップＳ３０）、通信完了と判断する場合には処理を終了し、そうでなければ再びステップＳ１０に戻ってデータ通信を続行する。
【０１３２】
（２）マスタ２０の動作
ここでは、データ通信時のおけるマスタ２０の動作について、図１１にて示す流れ図を用いて説明する。
【０１３３】
マスタ２０は、図１０にて示す通信初期化処理のうちマスタ２０側における処理を実行する（ステップＳ１００）。具体的には、通信要求部２２０は、Ｉ／Ｏ受信要求信号５０を生成し、スレーブ３０へ送信する。その後、スレーブが有する制御情報５０３を受け取ると、自身が有するの制御情報と受け取った制御情報とを比較してデータ通信に必要な制御情報を確定する。そして、通信要求部２２０は、Ｉ／Ｏ送信要求信号を生成し、生成したＩ／Ｏ送信要求信号に確定した制御情報を付加してスレーブ３０へ送信する。これによりマスタ２０とスレーブ３０とは、通信に必要な制御情報を共有し、通信可能な状態となる。
【０１３４】
通信要求部２２０は、図１０にて示す通信要求処理のうちマスタ２０側における処理を実行する（ステップＳ１０５）。このとき、通信要求部２２０は、スレーブ３０へ通知すべき通信方式を決定し、決定した通信方式を示す通信モードフラグ６０２を含む要求信号６０を生成し、生成した要求信号６０をスレーブ３０へ送信する。詳細な動作については、後述する。
【０１３５】
通信要求部２２０は、図１０にて示す通信応答処理のうちマスタ２０側における処理を実行する（ステップＳ１１０）。具体的には、通信要求部２２０は、要求信号６０を送信後、スレーブ３０が指定した通信方式を示す通信モードフラグ７０２を含む応答信号７０の受信待ちの状態となり、応答信号７０を受け取ると（ステップＳ１１０における「ＹＥＳ」）、次ステップへ移る。
【０１３６】
通信方式選択部２２１は、図１０にて示す通信方式選択処理を実行し、データ通信の通信方式を選択する（ステップＳ１１５）。
【０１３７】
通信方式として全二重通信が選択されると（ステップＳ１１５における「全二重通信」）、図１０にて示すデータ通信処理として、マスタ２０は全二重通信によるデータ通信を行う（ステップＳ１２０）。
【０１３８】
通信方式として半二重通信が選択されると（ステップＳ１１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ１２５〜Ｓ１３５の動作を行う。なお、ステップＳ１２５からＳ１３５の動作は、図１０にて示すデータ通信処理において半二重通信を行う場合に相当する。
【０１３９】
通信方式選択部２２１は、既定方式である全二重通信から半二重通信への通信方式の切り替えを行う（ステップＳ１２５）。具体的には、マスタ２０がデータ受信を要求する場合には、通信方式選択部２２１は、差動レシーバ２４６、２４８とが有効となるよう制御する。また、マスタ２０がデータ送信を要求する場合には、通信方式選択部２２１は、差動トランスミッタ２４５、２４７とが有効となるよう制御する。
【０１４０】
制御部２０５は、切り替えられた通信方式によりデータ通信を行う（ステップＳ１３０）。
【０１４１】
通信方式選択部２２１は、データの送信若しくは受信が終了すると、通信方式の復旧により、通信方式を既定方式へと切り替える（ステップＳ１３５）。具体的には、通信方式選択部２２１は、差動トランスミッタ２４５と差動レシーバ２４８とが有効となるよう制御する。
【０１４２】
制御部２０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ１４０）。
【０１４３】
制御部２０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ１４０における「ＹＥＳ」）、処理を終了する。制御部２０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ１４０における「ＮＯ」）、処理はステップＳ１０５へ戻る。なお、ステップＳ１４０における動作は、図１０にて示すステップＳ３０の動作のうちマスタ２０側の動作に相当する。
【０１４４】
ここで、データ通信システム１０は、全二重通信が選択された場合、図１にて示す通信路４００、４０１の通信方向による全二重通信でデータ通信を行うこととなる。また、半二重通信が選択された場合、マスタ２０からスレーブ３０へデータを送信する場合であれば図８、マスタ２０がスレーブ３０からデータを受信する場合であれば図９のような通信路４００、４０１の通信方向による半二重通信でデータ通信を行うこととなる。
【０１４５】
（３）通信要求処理
ここでは、図１１にて示すステップＳ１０５の通信要求の処理動作について、図１２にて示す流れ図を用いて説明する。
【０１４６】
通信要求部２２０は、スレーブ３０へ指定する通信方式を決定し、決定した通信方式を示す値を通信モードフラグ６０２に設定し（ステップＳ２００）、その通信方式に応じて送受信の準備を行う（ステップＳ２０５）。
【０１４７】
その後、通信要求部２２０は、ステップＳ２００にて決定した通信方式を示す通信モードフラグ６０２を含む要求信号６０を生成し、生成した要求信号６０をスレーブ３０へ出力する（ステップＳ２１０）。
【０１４８】
（４）通信方式の設定処理
ここでは、図１２にて示すステップＳ２００の通信方式の設定の処理動作について、図１３にて示す流れ図を用いて説明する。
【０１４９】
通信要求部２２０は、送信若しくは受信すべきデータのサイズが、予め定められたしきい値より大きいか小さいかを判断する（ステップＳ２５０）。
【０１５０】
小さいと判断する場合には（ステップＳ２５０における「小」）、通信要求部２２０は、通信モードに全二重通信を示す値“０”を通信モードフラグ６０２に設定する（ステップＳ２６５）。
【０１５１】
大きいと判断する場合には（ステップＳ２５０における「大」）、通信要求部２２０は、数式１を用いて、データの書き込みを要求する場合には算出バッファサイズがバッファ２１０にて確保可能であるかを判断し、データの読み込みを要求する場合には算出バッファサイズがバッファ２１１にて確保可能であるかを判断する（ステップＳ２５５）。
【０１５２】
確保可能であると判断する、つまり半二重通信による通信可能と判断する場合（ステップＳ２５５における「半二重通信可能」）、通信要求部２２０は、通信モードフラグ６０２に半二重通信を示すモード（値“１”）を設定する（ステップＳ２６０）。確保不可と判断する、つまり半二重通信による通信不可と判断する場合には（ステップＳ２５５における「半二重通信不可」）、通信要求部２２０は、通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。
【０１５３】
（５）通信方式の選択処理
ここでは、図１１のステップＳ１１５にて示す通信方式の選択の処理について、図１４にて示す流れ図を用いて説明する。
【０１５４】
通信方式選択部２２１は、要求信号６０に含まれる通信モードフラグ６０２と、応答信号７０に含まれる通信モードフラグ７０２とが一致するか否かを判断する（ステップＳ３００）。
【０１５５】
一致すると判断する場合（ステップＳ３００における「ＹＥＳ」）、通信方式選択部２２１は、通信モードフラグ６０２若しくは７０２が示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ３０５）。
【０１５６】
一致しないと判断する場合（ステップＳ３００における「ＮＯ」）、通信方式選択部２２１は、優先フラグ２３０を用いて、通信モードフラグ６０２、７０２のうち優先すべき装置が指定する通信モードフラグが示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ３１０）。
【０１５７】
（６）スレーブ３０の動作
ここでは、データ通信時のおけるスレーブ３０の動作について、図１５にて示す流れ図を用いて説明する。
【０１５８】
スレーブ３０は、図１０にて示す通信初期化処理のうちスレーブ３０側における処理を実行する（ステップＳ４００）。具体的には、通信応答部３２０は、Ｉ／Ｏ受信要求信号５０をマスタ２０から受け取ると、Ｉ／Ｏ受信要求信号５０に応じた制御情報５０３をマスタ２０へ送信する。その後、通信応答部３２０は、マスタ２０と共有すべき制御情報５１２が付加されたＩ／Ｏ送信要求信号５１を受け取ると、受け取った制御情報５１２を所定の記憶領域へ格納する。これによりマスタ２０とスレーブ３０とは、通信に必要な制御情報を共有し、通信可能な状態となる。
【０１５９】
通信応答部３２０は、図１０にて示す通信要求処理のうちスレーブ３０側における処理を実行する（ステップＳ４０５）。具体的には、通信応答部３２０は、マスタ２０が指定した通信方式を示す通信モードフラグ６０２を含む要求信号６０の受信待ちの状態となり、要求信号６０を受け取ると、次ステップへ移る。
【０１６０】
通信応答部３２０は、図１０にて示す通信応答処理のうちスレーブ３０側における処理を実行する（ステップＳ４１０）。このとき、通信応答部３２０は、マスタ２０へ通知すべき通信方式を決定し、決定した通信方式を示す通信モードフラグ７０２を含む応答信号７０を生成し、生成した応答信号７０をマスタ２０へ送信する。詳細な動作については、後述する。
【０１６１】
通信方式選択部３２１は、図１０にて示す通信モード選択処理を実行し、データ通信の通信方式を選択する（ステップＳ４１５）。なお、通信方式の選択処理については、通信モードフラグ６０２（７０２）及び優先フラグ３３０を用いて、図１４と同様の処理の流れで実現できるので、ここでの詳細な説明は省略する。
【０１６２】
通信方式として全二重通信が選択されると（ステップＳ４１５における「全二重通信」）、図１０にて示すデータ通信処理として、スレーブ３０は全二重通信によるデータ通信を行う（ステップＳ４２０）。
【０１６３】
通信方式として半二重通信が選択されると（ステップＳ４１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ４２５〜Ｓ４３５の動作を行う。なお、ステップＳ４２５からＳ４３５の動作は、図１０にて示すデータ通信処理において半二重通信を行う場合に相当する。
【０１６４】
通信方式選択部３２１は、既定方式である全二重通信から半二重通信への通信方式の切り替えを行う（ステップＳ４２５）。具体的には、マスタ２０がデータ受信を要求する場合には、通信方式選択部３２１は、差動トランスミッタ３４５、３４７が有効となるよう制御する。また、マスタ２０がデータ送信を要求する場合には、通信方式選択部３２１は、差動レシーバ３４６、３４８が有効となるよう制御する。
【０１６５】
制御部３０５は、切り替えられた通信方式によりデータ通信を行う（ステップＳ４３０）。
【０１６６】
通信方式選択部３２１は、データの送信若しくは受信が終了すると、通信方式の復旧により、通信方式を既定方式へと切り替える（ステップＳ４３５）。具体的には、通信方式選択部３２１は、差動トランスミッタ３４５と差動レシーバ３４８とが有効となるよう制御する。
【０１６７】
制御部３０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ４４０）。
【０１６８】
制御部３０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ４４０における「ＹＥＳ」）、処理を終了する。制御部３０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ４４０における「ＮＯ」）、処理はステップＳ４０５へ戻る。なお、ステップＳ４４０における動作は、図１０にて示すステップＳ３０の動作のうちスレーブ３０側の動作に相当する。
【０１６９】
（７）通信応答処理
ここでは、図１５にて示すステップＳ４１０の通信応答の処理動作について、図１６にて示す流れ図を用いて説明する。
【０１７０】
通信応答部３２０は、マスタ２０へ指定する通信方式を決定し、決定した通信方式を示す値を通信モードフラグ７０２に設定し（ステップＳ５００）、その通信モードに応じて送受信の準備を行う（ステップＳ５０５）。
【０１７１】
その後、通信応答部３２０は、ステップＳ５００にて決定した通信方式を示す通信モードフラグ７０２を含む応答信号７０を生成し、生成した応答信号７０をマスタ２０へ出力する（ステップＳ５１０）。
【０１７２】
なお、通信方式の設定の処理については、図１３と同様の処理の流れで実現できるので、ここでの詳細な説明は省略する。
【０１７３】
（８）通信方式の切り替えについて
ここでは、通信方式の切り替えについて、図１７にて示す流れ図を用いて説明する。なお、マスタ２０とスレーブ３０とは制御情報を既に共有しているものとする。
【０１７４】
マスタ２０は、データの送信を示す通信種別６０１と、通信方式として半二重通信を示す通信モードフラグ６０２とを含む要求信号６０を生成し、生成した要求信号６０をスレーブ３０へ送出する（ステップＳ５５０）。
【０１７５】
スレーブ３０は、要求信号６０を受け取ると、通信可能を示す情報と、通信方式として半二重を示す通信モードフラグ７０２とを含む応答信号７０を生成し、生成した応答信号７０をマスタ２０へ送出する（ステップＳ５５５）。
【０１７６】
マスタ２０及びスレーブ３０は、要求信号６０及び応答信号７０それぞれに含まれる通信モードフラグ６０２、７０２から通信方式として半二重通信を選択し、自装置が半二重通信にてデータ通信ができるように通信方式の切り替えを行う（ステップＳ５６０）。
【０１７７】
マスタ２０は、切り替えられた通信方式、つまり半二重通信によりデータをスレーブ３０へ送出する（ステップＳ５６５）。
【０１７８】
データ通信が終了すると、マスタ２０及びスレーブ３０は、通信方式を半二重通信から全二重通信へと切り替える（ステップＳ５７０）。
【０１７９】
ここで、上述したように、ステップＳ５５０からステップＳ５６０による通信方式が切り替えられるまでの間の通信方式は全二重通信であり、ステップＳ５６０からステップＳ５７０による通信方式が切り替えられるまでの間の通信方式は半二重通信である。そして、ステップＳ５６０から次に通信方式が切り替えられるまでの間の通信方式は全二重通信となっている。
【０１８０】
１．６  変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１８１】
（１）上記実施の形態にて要求信号６０及び応答信号７０それぞれのデータ構造の一例を図３（ａ）及び図４（ａ）に示したが、これに限定されない。
【０１８２】
例えば、上述した数式１を用いる場合、数式１からも明らかなように、半二重通信が可能なだけの送受信バッファを確保できれば、より通信帯域の狭い全二重通信も可能である。そこで、図３（ｂ）に示すように、通信モードフラグ６０２にて、全二重通信と半二重通信に加えて、全二重通信と半二重通信のいずれも可能であることを示す未選択を設定してもよい。
【０１８３】
この場合、スレーブ３０は、未選択を示す通信モードフラグ６０２（値“１０”若しくは“１１”）を含む要求信号６０を受け取ると、全二重通信と半二重通信との何れかを示す通信モードフラグ７０２が設定されるものとする。
【０１８４】
また、スレーブ３０は、全二重通信と半二重通信との何れかを示す通信モードフラグ６０２を含む要求信号６０を受け取ると、図４（ｂ）に示すように通信モードフラグ７０２に未選択を示す値“１０”若しくは“１１”を設定しても良い。
【０１８５】
ここで、通信モードフラグに未選択が含まれる場合の選択処理について、図１８にて示す流れ図を用いて説明する。なお、ここでは、マスタ２０側の動作について説明するが、スレーブ３０側の動作も同じである。
【０１８６】
通信方式選択部２２１は、要求信号６０に含まれる通信モードフラグ６０２と、応答信号７０に含まれる通信モードフラグ７０２とが一致するか否かを判断する（ステップＳ６００）。
【０１８７】
一致すると判断する場合（ステップＳ６００における「ＹＥＳ」）、通信方式選択部２２１は、通信モードフラグ６０２若しくは７０２が示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ６０５）。
【０１８８】
一致しないと判断する場合（ステップＳ３００における「ＮＯ」）、通信方式選択部２２１は、通信モードフラグ６０２及び通信モードフラグ７０２の何れかが未選択を示しているか否かを判断する（ステップＳ６１０）。
【０１８９】
未選択が設定されていないと判断する場合（ステップＳ６１０における「ＮＯ」）、通信方式選択部２２１は、優先フラグ２３０を用いて、通信モードフラグ６０２、７０２のうち優先すべき装置が指定する通信モードフラグが示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ６１５）。
【０１９０】
未選択が設定されていると判断する場合（ステップＳ６１０における「ＹＥＳ」）、通信方式選択部２２１は、未選択が設定されていない他方の通信モードフラグが示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ６２０）。
【０１９１】
（２）上記実施の形態にて優先フラグ２３０、３３０のデータ構造の一例では、マスタ２０及びスレーブ３０の何れかの装置にて指定された通信方式を優先するかを示すものとした。
【０１９２】
この場合、マスタ２０は、通信初期化処理でスレーブ３０の制御情報としてその通信能力（送受信部の備える送受信バッファの容量や処理部のデータ処理レートなど）を取得し、自らの通信能力と比較して通信能力の低い側を優先とした優先フラグ２３０、３３０を互いの装置にて共有する。それにより、通信能力の低い側が全二重通信を選択した場合、より広帯域な半二重通信は選択されないようにすることができ、互いの通信能力に応じた確実な通信が実現できる。なお、この場合の優先フラグ２３０、３３０には、マスタ２０とスレーブ３０のそれぞれに設定した優先度を格納させてもよく、例えば、通信能力が低いほど優先度を高くすることで上記と同様の通信モード選択が可能である。
【０１９３】
しかしながら、優先すべき通信方式を示す方法は上記の方法に限定されない。
【０１９４】
例えば、図５（ｃ）にて示すように、優先フラグ２３０ａ（３３０ａ）は、送信優先及び受信優先の何れかを示すものであってもよい。
【０１９５】
例えば、通信要求部２２０は、優先フラグの設定時において、マスタ２０とスレーブ３０の受信能力が半二重通信モードの通信帯域以上であるか否かを判断する。具体的には、受信バッファ２１１及び３１１にて、半二重通信モードの通信帯域にて送信されるデータ量を確保できるか否かを判断する。判断結果が肯定的である場合にはデータ通信時における送信側の装置を優先する旨（送信優先）を優先フラグに設定し、判断結果が否定的である場合にはデータ通信時における受信側の装置を優先する旨（受信優先）を優先フラグに設定する。
【０１９６】
例えば、送信優先である場合には、マスタ２０が送信を要求するときにはマスタ２０が指定する通信方式が優先され、マスタ２０が受信を要求するときにはスレーブ３０が指定する通信方式が優先される。一方、受信優先である場合には、マスタ２０が送信を要求するときにはスレーブ３０が指定する通信方式が優先され、マスタ２０が受信を要求するときにはマスタ２０が指定する通信方式が優先される。
【０１９７】
これにより、マスタ２０とスレーブ３０の受信能力が半二重通信モードの通信帯域未満の場合は、受信優先とすることで受信側におけるバッファ溢れを考慮した通信方式を選択でき、一方でそれらの受信能力が半二重通信モードの通信帯域以上の場合は、送信優先とすることで送信側の送信能力を最大限に活かした通信方式を選択することができる。
【０１９８】
また、図５（ｄ）のように、優先フラグ２３０ｂ（３３０ｂ）は、全二重優先か半二重優先かを示すものであってもよい。
【０１９９】
この場合、要求信号６０と応答信号７０の含む通信モードに相違があっても、全二重通信が優先であれば全二重通信モード、半二重通信が優先であれば半二重通信モードを選択することになる。これにより、例えばマスタ２０とスレーブ３０の通信能力が半二重通信モードの通信帯域未満の場合、全二重通信を優先とすることでマスタ２０とスレーブ３０が互いに半二重通信モードを選択する以外は半二重通信モードを制限することができ、一方でそれらの通信能力が半二重通信モードの通信帯域以上の場合、半二重通信を優先とすることでマスタ２０とスレーブ３０が互いに全二重通信モードを選択する以外は全二重通信モードを制限することができる。
【０２００】
さらに、図５（ｅ）に示すように、優先フラグ２３０ｃ（３３０ｃ）は、図５（ｂ）から図５（ｄ）に示した優先フラグのいずれの設定条件も取り得るようなものであってもよい。
【０２０１】
（３）上記実施の形態では、マスタ２０及びスレーブ３０は、データ通信の開始前の通信初期化処理にて優先フラグの共有をし、データ通信が行われている間は、優先フラグの内容は固定されていたが、これに限定されない。
【０２０２】
例えば、図３（ｃ）にて示すように、通信方式を選択する際の要求信号６０に優先度６１０を含めて、スレーブ３０へ送信してもよい。この場合、優先度６１０には、図５（ｂ）にて示される何れかの値が設定されるものとする。なお、設定する優先度の値の決定については、上記の実施の形態と同様であるので、ここでの説明は省略する。
【０２０３】
または、図４（ｃ）に示すように、応答信号７０に優先度７１０を含めたフォーマットとしてもよい。この場合、優先度７１０には、図５（ｂ）にて示される何れかの値が設定されるものとする。なお、設定する優先度の値の決定については、上記の実施の形態と同様であるので、ここでの説明は省略する。
【０２０４】
これにより、マスタ２０、スレーブ３０共に通信方式の設定処理において通信方式の設定と同時に優先度をも設定し、通信方式の選択処理では、要求信号と応答信号の通信モードフラグにて示される通信方式のうち優先度の高い通信方式を選択することができる。
【０２０５】
（４）上記実施の形態において、半二重通信から既定方式（全二重通信）への切り替えを、通信方式選択部２２１が行うとしたが、これに限定されない。この切り替えは、他の構成要素が行ってもよい。
【０２０６】
（５）上記実施の形態において、互いの装置の性能を比較する際に、バッファの容量を用いて比較するものとしたが、これに限定されない。
【０２０７】
例えば、ＵＳＢ２．０、ＩＥＥＥ１３９４やＰＣＩ  Ｅｘｐｒｅｓｓのように、高速シリアル通信を行うために電流駆動の差動信号を扱う通信路を採用した場合、その方向切り替えには通信装置間で電流方向を切り替え、その安定化やビット同期のためにプリアンブルの送受信を行う必要があるなどで数十から数千ビットの転送時間に相当する切り替えオーバヘッドが生じる。そこで、互いの装置の性能を比較として、通信モード切り替え時にはこれらオーバヘッド（切り替え時間）を用いてもよい。
【０２０８】
（６）上記実施の形態では、データ通信においてマスタ２０がデータを一括して送信若しくは受信することを想定しているが、これに限定されない。
【０２０９】
送信若しくは受信すべきデータを複数個のブロックに分割して送信してもよいし、受信してもよい。
【０２１０】
この場合のマスタ２０、スレーブ３０の動作について説明する。
【０２１１】
先ず、マスタ２０の動作について、図１９にて示す流れ図を用いて説明する。
【０２１２】
マスタ２０は、図１０にて示す通信初期化処理のうちマスタ２０側における処理を実行する（ステップＳ７００）。
【０２１３】
通信要求部２２０は、図１０にて示す通信要求処理のうちマスタ２０側における処理を実行する（ステップＳ７０５）。なお、通信要求処理は、図１２及び１３と同様の動作にて実現できるので、ここでの詳細な説明は省略する。
【０２１４】
通信要求部２２０は、図１０にて示す通信応答処理のうちマスタ２０側における処理を実行する（ステップＳ７１０）。
【０２１５】
通信方式選択部２２１は、スレーブ３０から応答信号７０を受け取ると（ステップＳ７１０における「ＹＥＳ」）、図１０にて示す通信モード選択処理を実行し、データ通信の通信方式を選択する（ステップＳ７１５）。なお、通信方式の選択処理は、図１４と同様の動作にて実現できるので、ここでの詳細な説明は省略する。
【０２１６】
通信方式として全二重通信が選択されると（ステップＳ７１５における「全二重通信」）、図１０にて示すデータ通信処理として、マスタ２０（例えば、制御部２０５）は、通信すべきデータのうち１ブロック分のデータに対して全二重通信によるデータ通信を行う（ステップＳ７２０）。当該１ブロック分のデータの通信が完了すると、マスタ２０（例えば、制御部２０５）は、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ７２５）。
【０２１７】
完了したと判断する場合には（ステップＳ７２５における「ＹＥＳ」）、制御部２０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ７５０）。
【０２１８】
制御部２０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ７５０における「ＹＥＳ」）、処理を終了する。制御部２０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ７５０における「ＮＯ」）、処理はステップＳ７０５へ戻り、次のデータに対する通信方式の選択、及びデータ通信を行う。
【０２１９】
全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ７２５における「ＮＯ」）、処理はステップＳ７０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
【０２２０】
通信方式として半二重通信が選択されると（ステップＳ７１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ７３０〜Ｓ７４０の動作を行う。なお、ステップＳ７３０からＳ７４０までの動作は、図１１にて示すステップＳ１２５からステップＳ１３５までの動作を同様であるので、ここでの説明は省略する。
【０２２１】
制御部２０５は、ステップＳ７４０にて通信方式が既定方式へと切り替えられると、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ７４５）。
【０２２２】
完了したと判断する場合には（ステップＳ７４５における「ＹＥＳ」）、処理はステップＳ７５０へ移る。全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ７４５における「ＮＯ」）、処理はステップＳ７０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
【０２２３】
次に、スレーブ３０の動作について、図２０にて示す流れ図を用いて説明する。
【０２２４】
スレーブ３０は、図１０にて示す通信初期化処理のうちスレーブ３０側における処理を実行する（ステップＳ８００）。
【０２２５】
通信応答部３２０は、図１０にて示す通信要求処理のうちスレーブ３０側における処理を実行する（ステップＳ８０５）。
【０２２６】
通信応答部３２０は、マスタ２０から要求信号６０を受け取ると（ステップＳ８０５における「ＹＥＳ」）、図１０にて示す通信応答処理のうちスレーブ３０側における処理を実行する（ステップＳ８１０）。なお、通信応答処理は、図１５と同様の動作にて実現できるので、ここでの詳細な説明は省略する。
【０２２７】
通信方式選択部３２１は、図１０にて示す通信モード選択処理を実行し、データ通信の通信方式を選択する（ステップＳ８１５）。なお、通信方式の選択処理については、図１４と同様の処理の流れで実現できるので、ここでの詳細な説明は省略する。
【０２２８】
通信方式として全二重通信が選択されると（ステップＳ８１５における「全二重通信」）、図１０にて示すデータ通信処理として、スレーブ３０（例えば、制御部３０５）は、通信すべきデータのうち１ブロック分のデータに対して全二重通信によるデータ通信を行う（ステップＳ８２０）。当該１ブロック分のデータの通信が完了すると、スレーブ３０（例えば、制御部３０５）は、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ８２５）。
【０２２９】
完了したと判断する場合には（ステップＳ８２５における「ＹＥＳ」）、制御部３０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ８５０）。
【０２３０】
制御部３０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ８５０における「ＹＥＳ」）、処理を終了する。制御部３０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ８５０における「ＮＯ」）、処理はステップＳ８０５へ戻り、次のデータに対する通信方式の選択、及びデータ通信を行う。
【０２３１】
全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ８２５における「ＮＯ」）、処理はステップＳ８０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
【０２３２】
通信方式として半二重通信が選択されると（ステップＳ８１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ８３０〜Ｓ８４０を行う。なお、ステップＳ８３０からＳ８４０の動作は、図１５にて示すステップＳ４２５からステップＳ４３５までの動作を同様であるので、ここでの説明は省略する。
【０２３３】
制御部３０５は、ステップＳ８４０にて通信方式が既定方式へと切り替えられると、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ８４５）。
【０２３４】
完了したと判断する場合には（ステップＳ８４５における「ＹＥＳ」）、処理はステップＳ８５０へ移る。全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ８４５における「ＮＯ」）、処理はステップＳ８０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
【０２３５】
上述したように、マスタ２０及びスレーブ３０それぞれは、半二重通信時において、１ブロック分のデータ通信が終了すると、常に、全二重通信へと切り替えている。これは、半二重通信において、１ブロック分のデータ通信が完了すると、割り込みが発生することが考えられるためである。例えば、半二重通信時において、受信側となる装置でエラー（例えば、ＣＲＣエラー）が発生すると、全二重通信に切り替え後にそのエラーをデータの送信側の装置へ通知し、同じブロックに対するデータの送信を可能とするためである。なぜなら、半二重通信時には、通信経路は一方向のみ向いているので、互いに通信することができないからである。そのため、全二重通信へと復旧した後（切り替えた後）、エラーメッセージ（アボートメッセージ）を送ることで、そのブロックに対する通信に係る処理をアボート（強制中止）することができる。
【０２３６】
（７）上記実施の形態において、要求信号に、受信若しくは送信すべきデータのサイズを含めるとしたが、これに限定されない。
【０２３７】
要求信号に、受信、若しくは送信すべきデータのサイズを含めなくてもよい。
【０２３８】
この場合、マスタ２０が、スレーブ３０へデータを送信若しくはスレーブ３０からデータを受信する場合、データ送信若しくは受信が完了すると、その後、別のデータとしてデータ送信若しくは受信が完了した旨を示すコンプリーションメッセージをスレーブ３０へ送信する。
【０２３９】
例えば、マスタ２０がスレーブ３０へ半二重通信でデータを送信する場合、送信対象のデータの送信が完了すると、一旦全二重通信へと切り替える。スレーブ３０側では、半二重通信でマスタ２０から送信されたデータを受信すると、一旦全二重通信へと切り替えている。そして、マスタ２０及びスレーブ３０それぞれは、コンプリーションメッセージを送受信するために、要求信号及び応答信号それぞれに含まれる通信モードフラグを用いて通信方式を選択し、選択した通信方式にて当該メッセージの送受信を行う。
【０２４０】
また、例えば、マスタ２０がスレーブ３０から半二重通信でデータを受信する場合、受信対象のデータの受信が完了すると、送信時と同様に、一旦全二重通信へと切り替える。スレーブ３０側では、半二重通信でデータを送信すると、一旦全二重通信へと切り替えている。そして、マスタ２０及びスレーブ３０それぞれは、コンプリーションメッセージを送受信するために、上記と同様に、通信方式を選択し、選択した通信方式にて当該メッセージの送受信を行う。
【０２４１】
上述したように、マスタ２０及びスレーブ３０は、データ通信が完了すると、一旦全二重通信へと切り替えるが、これは、ブロック単位にてデータ通信を行う場合と同様に、受信側にてエラー（バッファのオーバーフロー）が発生すると、そのエラーをデータの送信側の装置へ通知するための割り込みが発生することが考えられるためである。
【０２４２】
（８）上記実施の形態では、マスタ２０とスレーブ３０との関係が固定されているが、これに限定されない。双方の装置の制御部は通信要求部と通信応答部とを備えた構成であってもよい。これよると、マスタとスレーブの関係が動的に入れ替わることができる。例えば、マスタとスレーブとの関係は１通信毎に切り替わっても良い。
【０２４３】
（９）ここで、スレーブとなる装置を、マスタ２０と着脱可能なメモリカードやＩ／Ｏカードであってもよい。例えば、メモリカードはＳＤカードであり、Ｉ／Ｏカードは他の装置と無線通信を行うための無線ＬＡＮカードである。
【０２４４】
ここで、スレーブをＳＤカードとした場合について説明する。
【０２４５】
図２１は、上記にて示すスレーブ３０をＳＤカード３０ａとした場合のデータ通信システム１０ａの構成を示す図であり、データ通信システム１０ａは、マスタ２０ａとＳＤカード３０ａとから構成されている。なお、以下の説明において、実施の形態にて示すマスタ２０及びスレーブ３０の構成要素と同一のものついては、同一の符号を付与し、その説明は省略する。
【０２４６】
マスタ２０ａは、図２１にて示すように、処理部２０３、制御部２０５及びカードＩ／Ｆ部２０６を備えている。
【０２４７】
カードＩ／Ｆ部２０６は、マスタ２０に装着されたＳＤカード３０ａとデータ通信を行うものであり、図２１にて示すように、送信部２０１、受信部２０２、切替部２０４及びピン２０７、２０８を備えている。
【０２４８】
ピン２０７、２０８は、ＳＤカード３０ａと接続されるものである。
【０２４９】
ＳＤカード３０ａは、図２２にて示すように、スレーブ３０の構成要素に加えて、ピン３０６、３０７を備えている。
【０２５０】
ピン３０６、３０７それぞれは、ＳＤカード３０ａがマスタ２０に装着されることで、カードＩ／Ｆ部２０６のピン２０７、２０８に接続される。
【０２５１】
つまり、ピン２０７とピン３０７とが接続されることで上述した通信路４００が、ピン２０８とピン３０８とが接続されることで上述した通信路４０１が、それぞれ形成されることになる。これら形成された通信路４００、４０１と切替部２０４、３０４との接続は、実施の形態にて示す図６、７と同様の接続であるので、ここでの説明は省略する。
【０２５２】
したがって、これらの接続により、実施の形態と同様に、マスタ２０ａとＳＤカード３０ａとが、通信路４００ａ及び４０１ａを介した全二重通信及び半二重通信によるデータ通信が実現できる。
【０２５３】
なお、Ｉ／Ｏカードについても同様の構成にて実現できるので、ここでの説明は省略する。
【０２５４】
（１０）上記実施の形態において、優先フラグを設定する際に、比較する処理能力として、データ処理の処理時間（データの転送レート）としたが、これに限定されない。マスタ２０とスレーブ３０との処理能力を比較できる情報であればよい。例えば、受信バッファの容量や送信バッファの容量、これらの組み合わせである。
【０２５５】
（１１）上記実施の形態において、マスタ２０が設定する通信モードフラグが示す通信方式とスレーブ３０が設定する通信モードフラグが示す通信方式とが異なる場合、優先フラグを用いて通信方式を決定した。
【０２５６】
例えば、優先フラグがスレーブ優先を示している場合、マスタ２０が半二重による通信が可能であるにも関わらず全二重通信を指定したために、スレーブ３０との通信方式の指定が異なることが想定される。そこで優先フラグを用いることで、両装置に半二重通信を選択させることができる。この選択された通信方式は、各装置の通信処理能力を超えるものではないので、通信効率が低下することはない。
【０２５７】
しかしながら、通信方式とが異なる場合の選択方法は、優先フラグを用いた選択方法には限定されない。
【０２５８】
マスタ２０が設定する通信モードフラグが示す通信方式とスレーブ３０が設定する通信モードフラグが示す通信方式とが異なる場合には、常に全二重通信が選択されるようにしてもよい。
【０２５９】
この場合だと、マスタ２０及びスレーブ３０とも優先フラグを記憶するための領域を備える必要がなくなる。また、通信方式とが異なる場合に全二重通信を選択する場合は、通信対象のデータのサイズが小さい場合に有効である。このとき、マスタ２０が基本の通信方式として、半二重通信を指定し、サイズが小さいとき全二重通信を指定すればいいので、スレーブからの要求は必要なくなる。
【０２６０】
また、逆に、通信方式とが異なる場合には、半二重通信が選択されてもよい。
【０２６１】
この場合、例えば、フロー制御を伴うデータ通信において有効となる。
【０２６２】
フロー制御を伴うデータ通信では、互いに通信が開始可能な状態かを確認してからデータ通信を開始するので、いずれの通信モードも可であり、その場合は半二重優先として、溜まったデータを早期に転送してしまう方が効率が良いからである。
【０２６３】
フロー制御の一例について説明する。
【０２６４】
フロー制御の書き込み時においては、マスタ２０は、書き込み対象のデータの準備ができると、スレーブ３０に通知する。スレーブ３０は、通知の受け取り後、書き込み対象のデータのサイズ分の空きバッファが確保できたらマスタに通知する。それら双方からの通知があってから書き込み対象のデータの転送を開始することになる。読み込み時においては、その逆で、マスタ２０は空きバッファの確保、スレーブ３０は読み込み対象のデータの準備ができると、互いに通知してからデータ転送を開始する。このように、フロー制御を伴って、互いにデータ転送が可能な状態となってからデータ通信を開始する場合は、半二重優先が有利となる。
【０２６５】
また、バックプレッシャ型のフロー制御を伴うデータ通信においては、通信方式とが異なる場合には、受信側の装置のバッファに格納状況に応じて全二重通信及び半二重通信を何れかを選択してもよい。
【０２６６】
バックプレッシャ型のフロー制御とは、データが溜まる前に転送を開始し、受信側がオーバーフローしそうになるとＷＡＩＴを通知するものである。この場合、互いが指定する通信方式が異なる場合に常に半二重通信を選択すると効率が悪くなる。なぜなら、データ受信側から任意のタイミングで送信元にＷＡＩＴを通知する必要があるが、２本とも一方向（データ送信側からデータ受信側）に向いていると、ＷＡＩＴを通知することができないからである。
【０２６７】
そこで、スレーブ３０がマスタ２０へ応答信号を返す際に、受信元となる装置に既にデータが溜まっていれば半二重通信を優先し、溜まっていなければＷＡＩＴを発行できるように、全二重通信を優先するようにする。
【０２６８】
（１２）ここで、本発明における通信処理能力には、上述したように、バッファの容量、通信方式の切替時間、データ処理の処理速度、及び数式１により算出される通信時に確保できるバッファサイズを含めるものとする。
【０２６９】
（１３）上記実施の形態において、通信要求部２２０は、優先フラグを制御情報としてスレーブ３０へ送出してもよい。
【０２７０】
また、処理部２０３は、受信部２０２から入力したデータについて所望の処理を行った結果を送信部２０１に出力するデータ処理回路を含むものであってもよいし、受信部２０２から入力したデータを記憶し、送信部２０１から要求されたデータを出力するメモリを含むものであってもよい。
【０２７１】
（１４）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２７２】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０２７３】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２７４】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０２７５】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２７６】
（１５）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【０２７７】
１．７  その他
（１）本発明は、複数の通信装置が全二重通信と半二重通信が可能な複数の通信路を介して接続され、それら通信装置間がマスタとスレーブの関係で要求信号と応答信号のハンドシェークを行ってからデータ通信を行う通信システムであって、マスタとなる通信装置は、データ通信を行う通信モードが全二重通信か半二重通信かを示す通信モードフラグを含む要求信号を出力する通信要求手段を備え、前記要求信号を受けてスレーブとなる通信装置は、データ通信を行う通信モードが全二重通信か半二重通信かを示す通信モードフラグを含む応答信号を出力する通信応答手段を備え、前記マスタとなる通信装置およびスレーブとなる通信装置のいずれについても、前記要求信号と前記応答信号の双方の通信モードフラグに応じて通信モードを選択する通信モード選択手段と、前記複数の通信路を前記通信モード選択手段で選択された通信モードに切替えた後にデータ通信を行うデータ通信手段とを備えることを特徴とする。
【０２７８】
これにより、通信システムは、通信装置間が互いの送受信処理能力を考慮して全二重通信か半二重通信かの通信モードを選択できる。
【０２７９】
（２）ここで、前記通信要求手段は、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む要求信号を出力し、前記通信モード選択手段は、前記要求信号が未選択の通信モードを示す通信モードフラグを含む場合、前記応答信号の通信モードフラグが示す通信モードを選択するとしてもよい。
【０２８０】
または、前記通信応答手段は、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む応答信号を出力し、前記通信モード選択手段は、前記応答信号が未選択の通信モードを示す通信モードフラグを含む場合、前記要求信号の通信モードフラグが示す通信モードを選択するとしてもよい。
【０２８１】
または、前記通信要求手段は、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む要求信号を出力し、前記通信応答手段についても、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む応答信号を出力するとしてもよい。
【０２８２】
これらの構成によると、通信システムは、マスタが指定した通信モードとするか、スレーブの指定した通信モードとするかを１通信毎に切替えることができる。
【０２８３】
（３）ここで、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとの間で予め設定したマスタ優先かスレーブ優先かを示す優先フラグに応じて通信モードを選択するとしてもよい。
【０２８４】
または、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとの間で予め設定した送信優先か受信優先かを示す優先フラグに応じて通信モードを選択することを特徴とする。
【０２８５】
または、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとの間で予め設定した全二重通信優先か半二重通信優先かを示す優先フラグに応じて通信モードを選択するとしてもよい。
【０２８６】
または、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとで通信能力が低い通信装置が出力した通信モードを選択するとしてもよい。
【０２８７】
または、前記通信要求手段は、通信モード選択の優先度をさらに含めた要求信号を出力し、前記通信応答手段は、通信モード選択の優先度をさらに含めた応答信号を出力し、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、前記優先度に応じて通信モードを選択するとしてもよい。
【０２８８】
これらの構成によると、通信システムは、マスタが指定した通信モードとスレーブの指定した通信モードが異なる場合も、一意に通信モードを選択できる。
【０２８９】
（４）ここで、前記通信要求手段は、開始するデータ通信が通信装置間の制御情報を交換するためのＩ／Ｏアクセスであれば全二重通信、データペイロードの読み書きを行うためのメモリアクセスであれば半二重通信の通信モードフラグを含む要求信号を出力するとしてもよい。
【０２９０】
この構成によると、通信システムは、通信の特性（データサイズやレイテンシ要求）に応じた通信モードとすることができる。
【産業上の利用可能性】
【０２９１】
マスタとスレーブとの間で互いの送受信能力に応じて１通信毎に全二重通信か半二重通信かの通信モードを選択でき、また、データ通信を開始するためのハンドシェークと同時に通信モードを一意に選択できる特徴を有し、機器間あるいは機器内の機能ブロック間で効率的なデータ転送を行う通信システムに適用でき、有用である。【０２９２】
また、本発明に係るマスタ２０及びスレーブ３０は、装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
【符号の説明】
【０２９３】
１０    データ通信システム
２０    通信装置（マスタ）
３０    通信装置（スレーブ）
４０    通信経路
２０１    送信部
２０２    受信部
２０３    処理部
２０４    切替部
２０５    制御部
３０１    送信部
３０２    受信部
３０３    処理部
３０４    切替部
３０５    制御部
４００、４０１    通信路
【図１】
2009147785.tif 000004
【図２】
2009147785.tif 000005
【図３】
2009147785.tif 000006
【図４】
2009147785.tif 000007
【図５】
2009147785.tif 000008
【図６】
2009147785.tif 000009
【図７】
2009147785.tif 000010
【図８】
2009147785.tif 000011
【図９】
2009147785.tif 000012
【図１０】
2009147785.tif 000013
【図１１】
2009147785.tif 000014
【図１２】
2009147785.tif 000015
【図１３】
2009147785.tif 000016
【図１４】
2009147785.tif 000017
【図１５】
2009147785.tif 000018
【図１６】
2009147785.tif 000019
【図１７】
2009147785.tif 000020
【図１８】
2009147785.tif 000021
【図１９】
2009147785.tif 000022
【図２０】
2009147785.tif 000023
【図２１】
2009147785.tif 000024
【図２２】
2009147785.tif 000025
【手続補正書】
【提出日】平成21年9月18日(2009.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムであって、
前記第１装置及び前記第２装置それぞれは、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化手段を備え、
前記第１装置は、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出する通信要求手段と、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第１選択手段と、
選択された通信方式にてデータ通信を行う第１通信手段とを備え、
前記第２装置は、
前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出する通信応答手段と、
前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第２選択手段と、
選択された通信方式にてデータ通信を行う第２通信手段とを備える
ことを特徴とするデータ通信システム。
【請求項２】
前記選択情報とは、前記第１装置及び前記第２装置の何れかの装置を示す優先フラグであり、
前記初期化手段は、
前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力とを用いて優先フラグを生成し、生成した前記優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、
前記通信応答手段は、
前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記第１選択手段においては前記第１記録領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記録領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記通信処理能力には、データの受信に用いられるバッファの容量が含まれ、
前記要求信号には、当該第１装置がデータ送信を要求する旨及びデータを受信する旨の通信種別が含まれ、
前記通信要求手段は、
前記第１装置及び前記第２装置双方のバッファの容量が、半二重通信の通信帯域で送信されるデータのデータ量を確保できるか否かを判断し、判断結果が肯定的である場合にはデータを送信する側の装置を示す優先フラグを生成し、判断結果が否定的である場合にはデータを受信する側の装置を示す優先フラグを生成し、
前記第１選択手段及び前記第２選択手段は、
優先フラグがデータを送信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ送信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択し、優先フラグがデータを受信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ受信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択する
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項４】
前記通信要求手段は、
受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置を示す優先フラグを生成し、
前記第１選択手段及び前記第２選択手段は、
優先フラグが前記第１装置を示す場合には前記第１通信フラグが示す通信方式を選択し、優先フラグが前記第２装置を示す場合には前記第２通信フラグが示す通信方式を選択する
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項５】
前記選択情報とは、全二重通信及び半二重通信の何れかを優先するかを示す優先フラグであり、
前記初期化手段は、
前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力のどちらか一方が半二重通信による通信処理能力を満たさない場合には全二重通信を優先とする旨、双方の通信処理能力が半二重通信による通信処理能力を満たす場合には半二重通信を優先とする旨を示す優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、
前記通信応答手段は、
前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記第１選択手段においては前記第１記憶領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記憶領域にて記憶されている優先フラグに基づいて、優先すべき通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項６】
前記第１通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、
前記通信応答手段は、
前記要求信号に含まれる前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記全二重通信による通信を指定する旨及び半二重通信による通信を指定する旨の何れかを示す第２通信フラグを前記応答信号に含め、
前記手順は、
前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第２通信フラグが示す通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項７】
前記第１通信フラグは、半二重通信による通信を指定する旨及び全二重通信による通信を指定する旨の何れかを示し、
前記第２通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、
前記手順は、
前記第２通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第１通信フラグが示す通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項８】
前記通信要求手段は、
自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含めるに先立って、データ通信の対象となるデータのデータサイズが所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第１通信フラグを前記要求信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含め、
前記通信応答手段は、
自装置の通信処理能力に応じた第２通信フラグを前記応答信号に含めるに先立って、前記データ通信の対象となるデータのデータサイズが前記所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第２通信フラグを前記応答信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第２通信フラグを前記応答信号に含める
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項９】
全二重通信が可能な他装置へデータ通信の要求を行い、前記他装置との間で接続された通信路を用いて全二重通信及び半二重通信の何れかを選択してデータ通信を行うデータ通信要求装置であって、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化手段と、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記他装置へ送出する通信要求手段と、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記他装置から受け取り、前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、
選択された通信方式にてデータ通信を行う通信手段とを備える
ことを特徴とするデータ通信要求装置。
【請求項１０】
前記選択情報とは、自装置及び他装置の何れかの装置を示す優先フラグであり、
前記初期化手段は、
前記他装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置を示す優先フラグを、前記他装置と共有するために前記所定の記憶領域へ記憶するとともに、前記他装置へ送信し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記選択手段においては前記記憶領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項９に記載のデータ通信要求装置。
【請求項１１】
前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、
データの送受信毎に、要求信号の生成及び送出がなされ、
前記通信要求手段は、
２回目以降のデータの送受信に対する要求信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記第１記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む要求信号を生成して、前記他装置へ送出する
ことを特徴とする請求項１０に記載のデータ通信要求装置。
【請求項１２】
全二重通信が可能な他装置からデータ通信の要求を受け付け、当該他装置との間で接続された通信路を用いて全二重通信及び半二重通信のうち何れかを選択してデータ通信を行うデータ通信応答装置であって、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化手段と、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記他装置へ送出する通信要求手段と、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記他装置から受け取り、前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、
選択された通信方式にてデータ通信を行う通信手段とを備える
ことを特徴とするデータ通信応答装置。
【請求項１３】
前記選択情報とは、優先フラグであり、
前記初期化手段は、
当該データ通信応答装置と前記他装置とのうち通信処理能力が劣る装置が指定する通信フラグを優先すべきとする旨の優先フラグを受け取ると、受け取った前記優先フラグを所定の記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記記憶領域にて記憶している優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項１２に記載のデータ通信応答装置。
【請求項１４】
前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、
データの送受信毎に、前記他装置から要求信号の送出がなされ、
前記通信応答手段は、
前記データ通信の開始に先立って、前記他装置における通信処理能力に係る情報を受け取り、記憶し、
２回目以降のデータの送受信における要求信号に対する応答信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む応答信号を生成して、前記他装置へ送出する
ことを特徴とする請求項１３に記載のデータ通信応答装置。
【請求項１５】
前記通信路は２本のシリアル通信路から形成されており、
前記他装置は、データ通信に用いられる少なくとも２つの第１端子及び第２端子を備えており、
前記データ通信応答装置は、
データ通信に用いられる少なくとも２つの第３端子及び第４端子を有し、前記他装置と着脱可能であり、前記他装置への装着時に前記第１端子と前記第３端子とが、前記第２端子と前記第４端子とがそれぞれ接続されることで前記２本のシリアル通信路を形成するメモリカード又はＩ／Ｏカードである
ことを特徴とする請求項１２に記載のデータ通信応答装置。
【請求項１６】
全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムで用いられる通信方法であって、
前記第１装置及び前記第２装置それぞれは、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化処理を行い、
前記第１装置は、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出し、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択し、
選択された通信方式にてデータ通信を行い、
前記第２装置は、
前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出し、
前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択し、
選択された通信方式にてデータ通信を行う
ことを特徴とする通信方法。
【手続補正書】
【提出日】平成22年1月6日(2010.1.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全二重通信と半二重通信が可能な通信経路を介して接続された複数の通信装置を含むデータ通信システムにおける通信方法の選択に係る技術に関する。
【背景技術】
【０００２】
近年の半導体微細化・高速化技術の進展に伴って、機器間あるいは機器内に搭載されるＬＳＩ間で通信するデータ量は益々増加傾向にあるが、その一方で、パッケージコストに影響するＬＳＩの端子（パッド）数には厳しい制約がある。
このような制約のもとで用いられる通信方式として、半二重通信方式と全二重通信方式が挙げられる。一般的に制御が容易な全二重通信方式の方が高速化可能であるが、全二重通信方式において送信あるいは受信の一方のみを行っている期間は、他方のための通信路の帯域が無駄になるという課題があった。そこで、送信あるいは受信の一方を行っている期間は、全二重通信を行う通信路の方向を切り替えて全線を用いた半二重通信方式とし、限られた通信路の帯域を効率的に使用する技術が開示されている（特許文献１）。
【０００３】
特許文献１によると、全二重通信が可能な２線式通信路で接続された２つの通信装置間で、双方の通信装置からの送信要求を同時に検出した場合は全二重通信モードを継続したままデータ通信を行い、一方の通信装置からの送信要求のみを検出した場合は半二重通信モードに切替えてからデータ通信を行う。
例えば、一の通信装置のみから他方の通信装置へ送信要求を出力すると、２つの通信路の通信方向が当該１の通信装置から他方の通信装置へなるように、当該２つの通信路を制御して、半二重通信によるデータ通信を行うことを可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−９４６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１にて開示された技術においては、通信装置間で双方からの送信要求を同時に検出したか否かのみに応じて通信モードを決定するため、効率的な通信ができない場合がある。
例えば、送信処理能力が片側の通信路の帯域以下である一の通信装置が半二重通信によるデータの送信を行う場合、当該一の通信装置は送信処理能力を超えた２つの通信路を送信用に占有するので、送信バッファのアンダーフローが発生し、送受信が停止した状態となって通信効率が低下する。
【０００６】
また、同様に、受信処理能力が片側の通信路の帯域以下である一の通信装置が半二重通信によるデータの受信を行う場合、当該一の通信装置は受信処理能力を超えた２つの通信路を受信用に占有するので、受信バッファのオーバーフローが発生し、データ喪失が起こる。そのため、データ喪失が起こると再送手順が必要となって通信効率は大幅に低下する。
【０００７】
そこで、本発明は、通信効率が低下することなく通信方式を切り替えることのできるデータ通信システム、データ通信要求装置、データ通信応答装置、通信方法、データ通信要求方法及びデータ通信応答方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記にて示す目的を達成するために、本発明は、全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムであって、前記第１装置は、自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出する通信要求手段と、前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記第２装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第１選択手段と、選択された通信方式にてデータ通信を行う第１通信手段とを備え、前記第２装置は、前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出する通信応答手段と、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第２選択手段と、選択された通信方式にてデータ通信を行う第２通信手段とを備えることを特徴とする。
【発明の効果】
【０００９】
この構成によると、データ通信システムの第１装置及び第２装置は、通信方式の選択の際に第１通信フラグ、第２通信フラグ、及び互いに予め定められた手順を用いるので、両装置ともに同一の通信方式を選択することができる。また、両装置間でのデータ通信開始のために必要な要求信号と応答信号のハンドシェークによって通信方式を決定できるので、通信方式を決定するための余分な手順を必要とせずに、両装置の通信処理能力に応じた通信方式とすることができる。したがって、データ通信システムは、課題として挙げた送受信バッファのアンダーフローやオーバーフローの発生を抑制し、通信効率を低下させること無くデータ通信を行うことが出来る。
【００１０】
ここで、前記通信要求手段は、前記要求信号の生成に先立って、前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力とを用いて前記第１装置及び前記第２装置の何れかの装置を示す優先フラグを生成し、生成した前記優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、前記通信応答手段は、前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記第１選択手段においては前記第１記録領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記録領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含むとしてもよい。
【００１１】
この構成によると、第１装置及び第２装置は、互いに優先フラグを共有して、通信方式の選択時に用いるので、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合において互いに違った通信方式を選択することを防ぐことができる。
ここで、前記通信処理能力には、データの受信に用いられるバッファの容量が含まれ、前記要求信号には、当該第１装置がデータ送信を要求する旨及びデータを受信する旨の通信種別が含まれ、前記通信要求手段は、前記第１装置及び前記第２装置双方のバッファの容量が、半二重通信の通信帯域で送信されるデータのデータ量を確保できるか否かを判断し、判断結果が肯定的である場合にはデータを送信する側の装置を示す優先フラグを生成し、判断結果が否定的である場合にはデータを受信する側の装置を示す優先フラグを生成し、前記第１選択手段及び前記第２選択手段は、優先フラグがデータを送信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ送信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択し、優先フラグがデータを受信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ受信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択するとしてもよい。
【００１２】
この構成によると、第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合には、第１装置及び第２装置それぞれにおいてデータの受信時に用いられるバッファの容量を用いて定められた優先フラグを用いることでデータを送信する装置及びデータを受信する装置の何れかの装置から送信された通信フラグの内容に基づいて通信方式を選択している。これにより、データ通信システムは、優先フラグが受信側の装置を示す場合には受信側におけるバッファ溢れを防ぐことができ、優先フラグが送信側の装置を示す場合には送信側の送信能力を最大限に利用することができる。
【００１３】
ここで、前記通信要求手段は、受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置を示す優先フラグを生成し、前記第１選択手段及び前記第２選択手段は、優先フラグが前記第１装置を示す場合には前記第１通信フラグが示す通信方式を選択し、優先フラグが前記第２装置を示す場合には前記第２通信フラグが示す通信方式を選択するとしてもよい。
【００１４】
この構成によると、第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合には、優先フラグを用いることで第１装置及び第２装置のうち通信処理能力が劣る装置が指定する通信方式を選択することができる。これにより、データ通信システムの第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合であっても、通信処理能力が劣る装置が指定する通信方式を選択することで、両装置ともデータ通信時において、確実に自身の通信処理能力内で処理を行うことができる。
【００１５】
ここで、前記通信要求手段は、前記要求信号の生成に先立って、前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力のどちらか一方が半二重通信による通信処理能力を満たさない場合には全二重通信を優先とする旨、双方の通信処理能力が半二重通信による通信処理能力を満たす場合には半二重通信を優先とする旨を示す優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、前記通信応答手段は、前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記第１選択手段においては前記第１記憶領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記憶領域にて記憶されている優先フラグに基づいて、優先すべき通信方式を選択することを含むとしてもよい。
【００１６】
この構成によると、第１装置及び第２装置は、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合であっても、双方の通信処理能力に基づいて定められた優先フラグに基づいて通信方式を選択している。これにより、何れかの装置の通信処理能力が半二重通信により処理能力を満たさない場合には、優先フラグにより全二重通信が選択されるので、両装置とも通信処理能力を超えたデータ通信を行うことがない。
【００１７】
ここで、前記第１通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、前記通信応答手段は、前記要求信号に含まれる前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記全二重通信による通信を指定する旨及び半二重通信による通信を指定する旨の何れかを示す第２通信フラグを前記応答信号に含め、前記手順は、前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第２通信フラグが示す通信方式を選択することを含むとしてもよい。
【００１８】
この構成によると、第１通信装置が全二重通信及び半二重通信のどちらの通信でもよい旨を通信フラグに設定する場合には、第２通信装置が指定する第２通信フラグを用いることで、両装置とも通信処理能力内でデータ通信を行うことができる。
ここで、前記第１通信フラグは、半二重通信による通信を指定する旨及び全二重通信による通信を指定する旨の何れかを示し、前記第２通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、前記手順は、前記第２通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第１通信フラグが示す通信方式を選択することを含むとしてもよい。
【００１９】
この構成によると、第２通信装置が全二重通信及び半二重通信のどちらの通信でもよい旨を通信フラグに設定する場合には、第１通信装置が指定する第１通信フラグを用いることで、両装置とも通信処理能力内でデータ通信を行うことができる。
ここで、前記通信要求手段は、自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含めるに先立って、データ通信の対象となるデータのデータサイズが所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第１通信フラグを前記要求信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含め、前記通信応答手段は、自装置の通信処理能力に応じた第２通信フラグを前記要求信号に含めるに先立って、前記データ通信の対象となるデータのデータサイズが前記所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第２通信フラグを前記応答信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第２通信フラグを前記要求信号に含めるとしてもよい。
【００２０】
この構成によると、比較的小さなサイズのデータ通信時に半二重通信が選択され、通信路の方向切り替えに要する時間的オーバヘッドで通信効率が低下することを防ぐことができる。
また、本発明は、全二重通信が可能な他装置へデータ通信の要求を行い、前記他装置との間で接続された通信路を用いて全二重通信及び半二重通信の何れかを選択してデータ通信を行うデータ通信要求装置であって、自装置の通信処理能力に応じた通信方式として半二重通信の利用を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記他装置へ送出する通信要求手段と、前記要求信号の送出後、前記他装置の通信処理能力に基づいた通信方式として半二重通信の利用を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記他装置から受け取り、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記他装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、選択された通信方式にてデータ通信を行う通信手段とを備えることを特徴とする。
【００２１】
この構成によると、データ通信要求装置は、第１通信フラグ及び第２通信フラグに基づいて、予め定められた手順により自装置と他装置ともに同一の通信方式を選択する。また、選択された通信方式は、両装置の通信処理能力に応じたものであるので、各装置は選択された通信方式を用いても、自身の通信処理能力を超えた処理を行うことがない。したがって、データ通信要求装置は、通信効率を低下させることなくデータ通信を行うことができる。
【００２２】
ここで、前記通信要求手段は、前記要求信号の生成に先立って、前記他装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置が指定する通信フラグを優先すべきとする旨の優先フラグを、前記他装置と共有するために前記所定の記憶領域へ記憶するとともに、前記他装置へ送信し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記選択手段においては前記記憶領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含むとしてもよい。
【００２３】
この構成によると、データ通信要求装置は、他装置と優先フラグを共有して、通信方式の選択時に用いるので、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合において互いに違った通信方式を選択することを防ぐことができる。
ここで、前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、データの送受信毎に、要求信号の生成及び送出がなされ、前記通信要求手段は、２回目以降のデータの送受信に対する要求信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記第１記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む要求信号を生成して、前記他装置へ送出するとしてもよい。
【００２４】
この構成によると、データ通信要求装置は、データ通信中において、優先フラグを更新するので、データ通信中のデータ送受信時において、その時点での互いの通信処理能力に応じた通信方式を選択することができる。
また、本発明は、全二重通信が可能な他装置からデータ通信の要求を受け付け、当該他装置との間で接続された通信路を用いて全二重通信及び半二重通信のうち何れかを選択してデータ通信を行うデータ通信応答装置であって、前記他装置の通信処理能力に応じた通信方式として半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を前記他装置から受け取ると、自装置の通信処理能力に基づいた通信方式として半二重通信を指定するか否かを示す第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記他装置へ送出する通信応答手段と、前記第１通信フラグ及び前記第２通信フラグに基づいて、前記他装置との間で互いに予め定められた手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、選択された通信方式にてデータ通信を行う通信手段とを備えることを特徴とする。
【００２５】
この構成によると、データ通信応答装置は、第１通信フラグ及び第２通信フラグに基づいて、予め定められた手順により自装置と他装置ともに同一の通信方式を選択する。また、選択された通信方式は、両装置の通信処理能力に応じたものであるので、各装置は選択された通信方式を用いても、自身の通信処理能力を超えた処理を行うことがない。したがって、データ通信応答装置は、通信効率を低下させることなくデータ通信を行うことができる。
【００２６】
ここで、前記通信応答手段は、前記要求信号の受け取りに先立って、当該データ通信応答装置と前記他装置とのうち通信処理能力が劣る装置が指定する通信フラグを優先すべきとする旨の優先フラグを受け取ると、受け取った前記優先フラグを所定の記憶領域へ記憶し、前記手順は、前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、同一であると判断する場合には、当該内容に基づく通信方式を選択し、同一でないと判断する場合には、前記記憶領域にて記憶している優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含むとしてもよい。
【００２７】
この構成によると、データ通信応答装置は、他装置と優先フラグを共有して、通信方式の選択時に用いるので、第１通信フラグが示す内容と第２通信フラグが示す内容とが異なる場合において互いに違った通信方式を選択することを防ぐことができる。
ここで、前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、データの送受信毎に、前記他装置から要求信号の送出がなされ、前記通信応答手段は、前記データ通信の開始に先立って、前記他装置における通信処理能力に係る情報を受け取り、記憶し、２回目以降のデータの送受信における要求信号に対する応答信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む応答信号を生成して、前記他装置へ送出するとしてもよい。
【００２８】
この構成によると、データ通信応答装置は、データ通信中において、優先フラグを更新するので、データ通信中のデータ送受信時において、その時点での互いの通信処理能力に応じた通信方式を選択することができる。
ここで、前記通信路は２本のシリアル通信路から形成されており、前記他装置は、データ通信に用いられる少なくとも２つの第１端子及び第２端子を備えており、前記データ通信応答装置は、データ通信に用いられる少なくとも２つの第３端子及び第４端子を有し、前記他装置と着脱可能であり、前記他装置への装着時に前記第１端子と前記第３端子とが、前記第２端子と前記第４端子とがそれぞれ接続されることで前記２本のシリアル通信路を形成するメモリカード又はＩ／Ｏカードであるとしてもよい。
【００２９】
この構成によると、データ通信応答装置としてメモリカード又はＩ／Ｏカードを用いることができるので、これらカードは、他装置との間での通信効率を低下させることなくデータ通信を行うことができる。
【図面の簡単な説明】
【００３０】
【図１】データ通信システム１０における通信装置２０、３０の構成を示すブロック図である。
【図２】制御情報を共有する際の通信の流れを示す図である。
【図３】要求信号６０のデータ構造のフォーマット例を示す図である。
【図４】応答信号７０のデータ構造のフォーマット例を示す図である。
【図５】優先フラグ２３０、３３０のフォーマット例を示す図である。
【図６】切替部２０４の構成を示す図である。
【図７】切替部３０４の構成を示す図である。
【図８】半二重通信によりマスタ２０がスレーブ３０へデータを送信する場合の構成を示す図である。
【図９】半二重通信によりマスタ２０がスレーブ３０からデータを受信する場合の構成を示す図である。
【図１０】データ通信システム１０における処理の概要を示す流れ図である。
【図１１】マスタ２０の処理を示す流れ図である。
【図１２】通信要求処理を示す流れ図である。
【図１３】通信方式の設定処理を示す流れ図である。
【図１４】通信方式の選択処理を示す流れ図である。
【図１５】スレーブ３０の処理を示す流れ図である。
【図１６】通信応答処理を示す流れ図である。
【図１７】通信方式の切り替えの動作を示す流れ図である。
【図１８】通信モードフラグに未選択が含まれる場合の通信方式の選択処理を示す流れ図である。
【図１９】送受信対象のデータを複数個のブロックに分割した場合におけるマスタ２０の処理を示す流れ図である。
【図２０】送受信対象のデータを複数個のブロックに分割した場合におけるスレーブ３０の処理を示す流れ図である。
【図２１】データ通信システム１０ａにおける通信装置２０ａの構成を示すブロック図である。
【図２２】データ通信システム１０ａにおけるＳＤカード３０ａの構成を示すブロック図である。
【発明を実施するための形態】
【００３１】
１．実施の形態１
以下、本発明に係る通信装置について、図面を用いて説明する。
１．１  データ通信システム１０の構成
図１は、本発明の実施形態に係るデータ通信システム１０の全体構成を示す。
データ通信システム１０は、図１にて示すように、通信装置（マスタ）２０と通信装置（スレーブ）３０と通信経路４０とから構成されている。
【００３２】
通信経路４０は通信路４００、４０１から構成されており、マスタ２０とスレーブ３０との間における全二重通信及び半二重通信を実現する。
マスタ２０は通信開始のトリガーとして要求信号を出力する装置であり、スレーブ３０はその要求信号を受けて通信準備ができるとマスタ２０に応答信号を出力する装置である。なお、本実施の形態では、これらマスタ２０とスレーブ３０の関係は固定的であることとする。
【００３３】
マスタ２０及びスレーブ３０は、データ通信を行う際に、全二重通信と半二重通信とから自装置の通信処理能力に応じた通信方式を指定し、互いに指定した通信方式から同一の通信方式を選択する。ここで、データ通信とは、マスタ２０が実際に処理する対象となるデータ、つまりマスタ２０からスレーブ３０へ書き込むべきデータ及びマスタ２０がスレーブ３０から読み出すべきデータの送受信のことをいう。
【００３４】
マスタ２０及びスレーブ３０は、選択した同一の通信方式にてデータ通信を行う。
なお、マスタ２０及びスレーブ３０との間において、ハンドシェーク方式により、データ量が少ないデータ通信を行う際は、要求信号と応答信号を同時に転送することを可能とするため、通信路４００を下りの通信路とし、通信路４０１を上りの通信路とする全二重通信モードでの通信を行う。ここで、下りとはデータがマスタ２０からスレーブ３０へ送信されることをいい、逆に、上りとはデータがスレーブ３０からマスタ２０へ送信されることをいう。
【００３５】
また、本実施の形態におけるデータ通信システム１０では、既定の通信方式（以下、「既定方式」という）として全二重通信による通信が行われるものとする。
１．２  マスタ２０の構成
マスタ２０は、図１にて示すように、送信部２０１、受信部２０２、処理部２０３、切替部２０４及び制御部２０５から構成されている。
【００３６】
（１）送信部２０１及び受信部２０２
送信部２０１及び受信部２０２のそれぞれはＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）回路のような機能を有し、装置間の通信路４００、４０１における通信帯域と処理部２０３のデータ処理能力の差を吸収するために、図１にて示すようにバッファ２１０、２１１を有している。
【００３７】
（２）制御部２０５
制御部２０５は、ＣＰＵやメモリなどから構成され、データ通信の状態を監視しながら、データ通信の制御を行うものである。
制御部２０５は、図１にて示すように、通信要求部２２０、通信方式選択部２２１、優先フラグ記憶部２２２を含んでいる。
【００３８】
制御部２０５は、スレーブ３０へ送信すべきデータや、スレーブ３０から受信したデータに係る処理を実行する。ここでいうデータ処理とは、マスタ２０がスレーブ３０からデータを読み出す場合における処理や、スレーブ３０へデータを書き込む場合における処理である。読み出しにおける処理には、スレーブ３０への読み出し要求や受信したデータを自己のＨＤＤ等の記憶部（図示せず）に格納したりする処理が含まれる。また、書き込みにおける処理には、スレーブ３０への書き込み要求に係る処理が含まれる。
【００３９】
また、互いの装置間にて通信に係る情報（制御情報）を共有するために行われる通信の初期化に係る処理をも行う。
（２−１）通信要求部２２０
ここでは、通信要求部２２０について説明する。
（通信初期化時）
先ず通信の初期化に係る動作について説明する。なお、通信の初期化とは、マスタ２０が実際に処理すべきデータの送受信の前に行われる、通信に係る情報の共有のためのデータの送受信のことをいう。
【００４０】
通信要求部２２０は、自装置に対する制御情報を予め記憶している。ここで、制御情報とは、送受信可能なデータアドレス空間、自装置がデータ通信で扱うことのできる基本データブロック長、送信部２０１及び受信部２０２それぞれが有するバッファの容量、自装置における通信方式の切替時間やデータ処理の処理速度（データ処理レート）などである。なお、本実施の形態では、これらのデータそれぞれを制御情報として扱うものとし、これら制御情報（送受信可能なデータアドレス空間、基本データブロック長、バッファ容量、切替時間、処理速度）は、Ｉ／Ｏアドレス空間にマッピングされた制御レジスタとして格納されている。
【００４１】
通信要求部２２０は、通信に必要な制御情報をスレーブ３０と共有するために、スレーブ３０が有する制御情報を要求する旨のＩ／Ｏ受信要求信号５０を生成する。生成されたＩ／Ｏ受信要求信号５０は、処理部２０３にてパケット単位のデータパケット信号に変換されてスレーブ３０へ送出される。例えば、Ｉ／Ｏ受信要求信号５０は、図２（ａ）にて示すように、Ｉ／Ｏ受信５０１とＩ／Ｏアドレス５０２とを含む信号である。Ｉ／Ｏ受信５０１とは、スレーブ３０が有する制御情報の読み出しを要求する旨の識別子であり、Ｉ／Ｏアドレス５０２とは読み出しの要求対象である制御情報（制御レジスタ）を識別するものである。
【００４２】
通信要求部２２０は、読み出しを要求するデータ（例えば、データアドレス空間、バッファの容量、基本データブロック長、切替時間、処理速度）毎に、Ｉ／Ｏ受信要求信号５０を生成し、生成したＩ／Ｏ受信要求信号５０を順次、スレーブ３０へ送出する。
通信要求部２２０は、Ｉ／Ｏ受信要求信号５０を順次送出した後、スレーブ３０が有する制御情報（データアドレス空間、バッファの容量、基本データブロック長、切替時間、処理速度）５０３を順次、処理部２０３を介してスレーブ３０から受け取る。
【００４３】
通信要求部２２０は、受信した制御情報５０３と、対応する自身の制御情報とを比較してデータ通信時に用いる制御情報を確定する。例えば、通信要求部２２０は、スレーブ３０から制御情報としてバッファ容量を受け取ると、自身のバッファ容量と比較し容量の小さいバッファ容量をデータ通信時に用いる制御情報として確定する。また、基本データブロック長の場合にはブロック長の短い方をデータ通信時の制御情報とし、切替時間及び処理時間の場合には時間が長い方をデータ通信時の制御情報として確定する。つまり、通信要求部２２０は、両装置間において通信処理能力が低いものをデータ通信時に用いる制御情報として確定する。
【００４４】
通信要求部２２０は、確定した制御情報５１２が付加されたＩ／Ｏ送信要求信号５１を生成する。生成されたＩ／Ｏ送信要求信号５１は処理部２０３にてパケット単位のデータパケット信号に変換されてスレーブ３０へ送出される。
例えば、Ｉ／Ｏ送信要求信号５１は、図２（ｂ）にて示すように、Ｉ／Ｏ受信５１０とＩ／Ｏアドレス５１１とを含む信号であり、当該信号の後続として確定した制御情報５１２が付加されている。Ｉ／Ｏ受信５１０及びＩ／Ｏアドレス５１１は、Ｉ／Ｏ受信要求信号５０に含まれるものと同一のものである。
【００４５】
また、通信要求部２２０は、互いの通信処理能力に基づいた優先フラグを生成する。ここで、優先フラグとは、互いの装置にて共有され、通信方式を選択する際に必要に応じて用いるものであり、例えば、互いに指定した通信方式のうちマスタ２０が指定したものを優先する旨及びスレーブ３０が指定したものを優先する旨の何れかを示す。
通信要求部２２０は、生成した優先フラグを優先フラグ記憶部２２２へ格納するとともに、スレーブ３０へも送出する。これにより両装置間で、優先フラグを共有することができる。
【００４６】
通信要求部２２０は、優先フラグを生成する際、通信処理能力としてデータ処理の処理時間（データの転送レート）を用いて、処理時間が長い方に対応する装置が指定する通信方式を優先するように決定する。
通信要求部２２０による上記の動作により、自装置とスレーブ３０との間で通信開始前に必要な制御情報を共有することができ、通信可能な状態となる。
【００４７】
（データ通信時）
通信要求部２２０は、上記の通信初期化にて、データ通信に必要な制御情報を共有した後、読み出し若しくは書き込みがなされるデータの送受信に先立って、要求信号６０を生成する。生成された要求信号は処理部２０３にてパケット単位のデータパケット信号に変換されてスレーブ３０へ送出される。
【００４８】
要求信号には、例えば、図３（ａ）にて示すように、通信種別６０１、通信モードフラグ６０２、アドレス６０３及びサイズ６０４が含まれる。通信種別６０１は、当該信号の種別を示すものであり、例えば、値“００”はＩ／Ｏ送信要求信号を、“０１”はＩ／Ｏ受信要求信号を、“１０”はデータ送信要求信号を、“１１”はデータ受信要求信号をそれぞれ示す。通信モードフラグ６０２は、データの送受信に用いる通信方式を識別するものであり、例えば、値“０”は全二重通信を、“１”は半二重通信をそれぞれ示す。ここで、値“０”が全二重通信を示すとは、逆に言うと、半二重通信はできないことを意味する。
【００４９】
アドレス６０３は、マスタ２０がデータの書き込みを要求する場合にはデータを書き込む開始位置を示し、マスタ２０がデータの読み出しを要求する場合にはデータを読み出す開始位置を示す。
サイズ６０４は、マスタ２０がデータの書き込みを要求する場合には書き込むべきデータの大きさを示し、マスタ２０がデータの読み出しを要求する場合には読み出すべきデータの大きさを示す。
【００５０】
なお、図２（ａ）、（ｂ）にて示すＩ／Ｏ受信要求信号５０、Ｉ／Ｏ送信要求信号５１は、図３（ａ）にて示す要求信号６０における通信モードフラグ６０２とサイズ６０４とを省略した信号である。これは、通信種別６０１がＩ／Ｏ受信要求信号又はＩ／Ｏ送信要求信号を示す場合、通信内容は制御情報（制御レジスタ）であり、そのサイズは通常固定されたものであるのでサイズ６０４は省略することができ、さらに、制御情報は比較的サイズが小さいため、通信方式の切り替えのオーバヘッドを考慮すると、Ｉ／Ｏ送受信は全二重通信のみで行うことが望ましいため、既定の全二重通信のままで通信方式を変える必要がないため通信モードフラグ６０２は付加しなくてもよい。なお、Ｉ／Ｏ受信要求信号５０及びＩ／Ｏ送信要求信号５１は、通信モードフラグ６０２及びサイズ６０４を省略することなく、要求信号６０と同一のデータ構造としてもよい。
【００５１】
通信要求部２２０は、要求信号６０を生成する際に、スレーブ３０へ通知すべき通信方式を決定する。例えば、通信要求部２２０は、送信すべき、若しくは受信すべきデータのサイズが通信路４００、４０１の方向切り替えのオーバヘッドを無視できる程の大きさかを判定する。ここでは、通信路４００、４０１の方向切り替えのオーバヘッドに応じて設定したしきい値に比べ、実際に送信すべき、若しくは受信すべきデータのサイズが十分大きければ送受信能力に基づく通信方式の決定を行い、そうでなければスレーブ３０へ指定する通信方式を全二重通信と決定し、つまり通信要求部２２０は、通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。
【００５２】
ここで、送受信能力に基づく通信方式の決定について述べる。
通信要求部２２０は、以下に示す数式１を用いて、データの送受信に必要なバッファサイズを算出する。通信要求部２２０は、データの書き込みを要求する場合には算出バッファサイズがバッファ２１０にて確保可能であるかを判断し、確保可能であると判断する場合には通信モードフラグ６０２に半二重通信を示すモード（値“１”）を設定し、確保不可と判断する場合には通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。また、データの読み込みを要求する場合には算出バッファサイズがバッファ２１１にて確保可能であるかを判断し、確保可能であると判断する場合には通信モードフラグ６０２に半二重通信を示すモード（値“１”）を設定し、確保不可と判断する場合には通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。
【００５３】
【数１】
2009147785.tif 000026
【００５４】
次に、通信要求部２２０は、要求信号６０を送出した後、送出した要求信号に対応する応答信号７０を、処理部２０３を介してスレーブ３０から受け取る。
応答信号７０には、例えば、図４（ａ）にて示すように、通信可否７０１と通信モードフラグ７０２とが含まれる。通信可否７０１は、マスタ２０が送信した要求信号６０を受け付けたか、あるいは要求信号６０に含まれるアドレス６０３やサイズ６０４にエラーがあって受け付けていないかを示すもの情報が格納されており、例えば、値“０”は要求信号６０を受け付けた旨（通信可能）を、“１”は要求信号を受け付けていない旨（通信不可（エラー））をそれぞれ示す。通信モードフラグ７０２は、スレーブ３０にて決定された（指定された）通信方式を識別するものであり、その内容は通信モードフラグ６０２と同様である。
【００５５】
（２−２）通信方式選択部２２１
通信方式選択部２２１は、自装置がスレーブ３０へ送信した要求信号６０とスレーブ３０から受け取った応答信号７０のそれぞれに含まれる通信モードフラグ６０２、７０２から全二重通信及び半二重通信のうち何れかの通信方式を一意に選択し、その結果に応じて切替部２０４の切り替えに係る制御を行う。なお、選択方法、及び切り替えに係る制御については、後述する。
【００５６】
また、通信方式選択部２２１は、半二重通信によるデータ通信が終了すると、通信方式を既定方式へと通信方式の復旧を行う。
（２−３）優先フラグ記憶部２２２
優先フラグ記憶部２２２は、図５（ａ）にて示すように、自装置とスレーブ３０との間で共有する優先フラグ２３０を記憶するための領域を有しており、通信の初期化時に優先フラグが当該領域に格納される。なお、優先フラグの設定は、上述したように通信要求部２２０にて行われる。
【００５７】
ここで、図５（ｂ）にて、優先フラグ２３０の一例を示す。これによると、優先フラグ２３０が示す値が“０”である場合にはマスタ優先である旨、つまり要求信号に含まれる通信モードフラグが示す通信方式を優先する旨を示し、値が“１”である場合にはスレーブ優先である旨、つまり応答信号に含まれる通信モードフラグが示す通信方式を優先する旨を示す。
【００５８】
なお、後述するスレーブ３０が有する優先フラグ３３０についても同様である。
（３）処理部２０３
処理部２０３は、スレーブ３０へ送信すべきデータ（スレーブ３０へ書き込むべきデータ）に対して処理を施して、パケット単位のパケット信号を生成して送信部２０１を介してスレーブ３０へ送信する。
【００５９】
また、処理部２０３は、制御部２０５から受け取ったＩ／Ｏ受信要求信号５０、Ｉ／Ｏ送信要求信号５１、及びデータ通信時における要求信号６０を、パケット単位のパケット信号へと変換して送信部２０１を介してスレーブ３０へ送信する。
また、処理部２０３は、バッファ２１１に蓄積された受信データを処理して、制御部２０５へ伝達する。例えば、処理部２０３は、制御情報５０３、応答信号７０を制御部２０５へ出力する。
【００６０】
（４）切替部２０４
切替部２０４は、通信方式選択部２２１にて選択された通信方式、つまりデータ送受信時の通信モードが全二重通信か半二重通信かに応じて通信路４００、４０１の方向の切り替え、及び送信部２０１、受信部２０２との接続の切り替えを行う。
切替部２０４の詳細を以下に述べる。
【００６１】
切替部２０４は、図６にて示すように、差動トランスミッタ２４５、２４７及び差動レシーバ２４６、２４８を含んでいる。
差動トランスミッタ２４５、２４７、差動レシーバ２４６、２４８は、シリアルデータを通信路４００、４０１を用いてデータを送受信するためのものである。差動トランスミッタ２４５、２４７、差動レシーバ２４６、２４８は、上述したように、制御部２０５によりその動作が制御される。
【００６２】
ここで、上述した通信方式選択部２２１による切り替えに係る制御とは、通信路４００、４０１に接続された差動トランスミッタ２４５、２４７９と差動レシーバ２４６、２４８のいずれか一方を選択的に有効化することで、全二重通信と半二重通信の何れかの通信方式に切り替えることをいう。例えば、通信方式選択部２２１が通信方式として全二重通信を選択すると、通信方式選択部２２１が差動トランスミッタ２４５と差動レシーバ２４８とを有効にするよう制御することで、通信方式の切り替えが行われる。また通信方式として半二重通信が選択されると、マスタ２０がデータ受信を要求する場合には通信方式選択部２２１が差動レシーバ２４６、２４８とを有効にするよう制御し、マスタ２０がデータ送信を要求する場合には通信方式選択部２２１が差動トランスミッタ２４５、２４７とを有効にするよう制御することで、通信方式の切り替えが行われる。
【００６３】
なお、通常、通信方式の切り替えが行われた後、ビット同期の制御を行うが、発明の本質ではないので、ここでの説明は省略する。
１．３  スレーブ３０の構成
スレーブ３０は、図１にて示すように、送信部３０１、受信部３０２、処理部３０３、切替部３０４及び制御部３０５から構成されている。
【００６４】
（１）送信部３０１及び受信部３０２
送信部３０１及び受信部３０２のそれぞれは、マスタ２０が有する送信部２０１及び受信部２０２と同様に、図１にて示すように、バッファ３１０、３１１を有している。
（２）制御部３０５
制御部３０５は、ＣＰＵやメモリなどから構成され、マスタ２０が有する制御部２０５と同様にデータ通信の状態を監視しながら通信の制御を行うものであり、図１にて示すように、通信応答部３２０、通信方式選択部３２１、優先フラグ記憶部３２２を含んでいる。
【００６５】
制御部３０５は、マスタ２０へ送信すべきデータや、マスタ２０から受信したデータに係る処理を実行する。ここでいうデータ処理とは、マスタ２０におけるデータ処理と同様であるので、ここでの説明は省略する。
また、マスタ２０における制御部２０５と同様に、互いの装置間にて通信に係る情報（制御情報）を共有するために行われる通信の初期化に係る処理をも行う。
【００６６】
（２−１）通信応答部３２０
ここでは、通信応答部３２０について説明する。
（通信初期化時）
先ず通信の初期化に係る動作について説明する。
通信応答部３２０は、マスタ２０の通信要求部２２０と同様に、自装置に対する制御情報を予め記憶している。
【００６７】
通信応答部３２０は、マスタ２０からＩ／Ｏ受信要求信号５０を、受信部３０２及び処理部３０３を介して受け取る。
通信応答部３２０は、受け取ったＩ／Ｏ受信要求信号５０にて要求される制御情報５０３を、マスタ２０へ送信する。このとき、送信される制御情報５０３は、処理部３０３にてパケット単位のデータパケット信号に変換されてマスタ２０へ送出されることとなる。
【００６８】
通信応答部３２０は、その後、マスタ２０と共有すべき制御情報５１２が付加されたＩ／Ｏ送信要求信号５１を、処理部３０３を介して受け取ると、受け取ったＩ／Ｏ送信要求信号５１に付加された制御情報５１２を所定の記憶領域へ格納する。
また、通信応答部３２０は、マスタ２０から優先フラグを受け取ると、受け取った優先フラグを優先フラグ記憶部３２２へ格納する。
【００６９】
通信応答部３２０による上記の動作により、自装置とマスタ２０との間で通信開始前に必要な制御情報を共有することができ、通信可能な状態となる。
（データ通信時）
通信応答部３２０は、上記の通信初期化にて、データ通信に必要な制御情報を共有した後、マスタ２０から受信部３０２及び処理部３０３を介して、要求信号６０を受け取ると、応答信号７０を生成する。このとき、通信応答部３２０は、受け取った要求信号６０のエラーチェックを行い、エラーが検出された場合には通信可否７０１に値“１”を設定し、エラーが検出されない場合には通信可否７０１に値“０”を設定する。また、通信応答部３２０は、通信要求部２２０による決定方法と同一の方法によりマスタ２０へ通知すべき通信方式を決定する。
【００７０】
通信応答部３２０は、生成した応答信号７０を、データの送受信が開始可能なタイミングで、処理部３０３及び送信部３０１を介してマスタ２０へ送信する。このとき、送信される応答信号７０は、処理部３０３にてパケット単位のデータパケット信号に変換されてマスタ２０へ送出されることとなる。
（２−２）通信方式選択部３２１
通信方式選択部３２１は、マスタ２０の通信方式選択部２２１と同様であるので、ここでの説明は省略する。
【００７１】
（２−３）優先フラグ記憶部３２２
優先フラグ記憶部３２２は、図５（ａ）にて示すように、自装置とマスタ２０との間で共有する優先フラグ３３０を記憶するための領域を有しており、通信の初期化時に優先フラグ３３０が当該領域に格納される。なお、優先フラグ３３０の設定は、上述したように通信応答部３２０にて行われる。
【００７２】
優先フラグ３３０は、図５（ｂ）にて示すように優先フラグ２３０と同一である。
（３）処理部３０３
処理部３０３は、マスタ２０へ送信すべきデータ（マスタ２０が読み出すべきデータ）に対する処理を施して、パケット単位のパケット信号を生成して送信部３０１を介してマスタ２０へ送信する。
【００７３】
また、処理部３０３は、制御部３０５から受け取った制御情報５０３、及びデータ通信時における応答信号７０を、パケット単位のパケット信号へと変換して送信部３０１を介してマスタ２０へ送信する。
また、処理部３０３は、バッファ３１１に蓄積された受信データを処理して、制御部３０５へ伝達する。例えば、処理部３０３は、制御情報５１２が付加されたＩ／Ｏ送信要求信号５１、要求信号６０を制御部３０５へ出力する。
【００７４】
（４）切替部３０４
切替部３０４は、通信方式選択部３２１にて選択された通信方式、つまりデータ送受信時の通信モードが全二重通信か半二重通信かに応じて通信路４００、４０１の方向の切り替え、及び送信部３０１、受信部３０２との接続の切り替えを行う。
切替部３０４の詳細を以下に述べる。
【００７５】
切替部３０４は、図７にて示すように、差動トランスミッタ３４５、３４７及び差動レシーバ３４６、３４８を含んでいる。
差動トランスミッタ３４５、３４７、差動レシーバ３４６、３４８は、シリアルデータを通信路４００、４０１を用いてデータを送受信するためのものである。差動トランスミッタ３４５、３４７、差動レシーバ３４６、３４８は、上述したように、制御部３０５によりその動作が制御される。
【００７６】
ここで、通信方式選択部３２１により切り替えに係る制御が行われるが、その動作は、とは、通信方式選択部２２１にて行われる制御と同一であるので、ここでの説明は省略する。
なお、通常、通信方式の切り替えが行われた後、マスタ２０と同様に、ビット同期の制御を行うが、発明の本質ではないので、ここでの説明は省略する。
【００７７】
１．４  通信方式の切り替えについて
ここでは、通信方式の切り替えについて、説明する。
図１では、通信方式を全二重通信とした場合のデータ通信システム１０を示している。このとき、切替部２０４においては差動トランスミッタ２４５と差動レシーバ２４８とが有効となるように制御され、切替部３０４においては差動トランスミッタ３４７と差動レシーバ３４６とが有効となるように制御される。これにより、通信路４００を下りとし、通信路４０１を上りとする全二重通信が可能となる。
【００７８】
図８では、通信方式を半二重通信とし、マスタ２０からスレーブ３０へデータを送信する場合のデータ通信システム１０を示している。この場合、半二重送信時の切替部２０４、３０４は、マスタ２０の送信部２０１とスレーブ３０の受信部３０２との間で半二重送信の通信路４００、４０１を用いた送信処理のために、それぞれ全二重通信から半二重通信への切替、半二重通信から全二重通信への切替を行う。具体的には、切替部２０４においては差動トランスミッタ２４５、２４７とが有効となるよう制御され、切替部３０４においては差動レシーバ３４６、３４８とが有効となるよう制御される。これにより、通信路４００及び通信路４０１ともに下りとする半二重通信が可能となる。
【００７９】
図９では、通信方式を半二重通信とし、マスタ２０がスレーブ３０からデータを受信する場合のデータ通信システム１０を示している。この場合、半二重受信時の切替部２０４、３０４は、マスタ２０の受信部２０２とスレーブ３０の送信部３０１との間で半二重受信の通信路４００、４０１を用いた受信処理のために、それぞれ半二重通信から全二重通信への切替、全二重通信から半二重通信への切替を行う。具体的には、切替部２０４においては差動レシーバ２４６、２４８とが有効となるよう制御され、切替部３０４においては差動トランスミッタ３４５、３４７とが有効となるよう制御される。これにより、通信路４００及び通信路４０１ともに上りとする半二重通信が可能となる。
【００８０】
１．５  動作
（１）データ通信システム１０の動作概要
ここでは、データ通信システム１０の動作概要について、図１０にて示す流れ図を用いて説明する。
データ通信システム１０は、マスタ２０及びスレーブ３０の間で、Ｉ／Ｏ受信要求信号５０、Ｉ／Ｏ送信要求信号５１及び制御情報５０３、５１２を送受信して、データ通信に用いる制御情報を共有するための通信初期化処理を行う（ステップＳ５）。この処理により、マスタ２０とスレーブ３０との間で通信を開始する前に必要な制御情報を共有して通信可能な状態となる。
【００８１】
データ通信システム１０は、マスタ２０及びスレーブ３０の間で、マスタ２０が指定した通信モードフラグ６０２を含む要求信号６０を送受信する通信要求処理を行う（ステップＳ１０）。
その後、  データ通信システム１０は、マスタ２０及びスレーブ３０の間で、スレーブ３０が指定した通信モードフラグ７０２を含む応答信号７０を送受信する通信応答処理を行う（ステップＳ１５）。
【００８２】
通信要求処理及び通信応答処理によりマスタ２０とスレーブ３０との間のハンドシェークが成立すると、  データ通信システム１０におけるマスタ２０及びスレーブ３０は、互いが指定した通信モードフラグ６０２、７０２を用いて、同一のアルゴリズムによりデータ通信に用いる通信方式を一意に選択する（ステップＳ２０）。
データ通信システム１０は、マスタ２０及びスレーブ３０が通信モード選択処理にて一意に選択された通信モードに応じた通信方式により、データを送受信するデータ通信処理を行う（ステップＳ２５）。
【００８３】
データ通信システム１０は、通信が完了したか否か、つまり残りの通信すべきデータが存在するか否かを判断する。（ステップＳ３０）、通信完了と判断する場合には処理を終了し、そうでなければ再びステップＳ１０に戻ってデータ通信を続行する。
（２）マスタ２０の動作
ここでは、データ通信時のおけるマスタ２０の動作について、図１１にて示す流れ図を用いて説明する。
【００８４】
マスタ２０は、図１０にて示す通信初期化処理のうちマスタ２０側における処理を実行する（ステップＳ１００）。具体的には、通信要求部２２０は、Ｉ／Ｏ受信要求信号５０を生成し、スレーブ３０へ送信する。その後、スレーブが有する制御情報５０３を受け取ると、自身が有するの制御情報と受け取った制御情報とを比較してデータ通信に必要な制御情報を確定する。そして、通信要求部２２０は、Ｉ／Ｏ送信要求信号を生成し、生成したＩ／Ｏ送信要求信号に確定した制御情報を付加してスレーブ３０へ送信する。これによりマスタ２０とスレーブ３０とは、通信に必要な制御情報を共有し、通信可能な状態となる。
【００８５】
通信要求部２２０は、図１０にて示す通信要求処理のうちマスタ２０側における処理を実行する（ステップＳ１０５）。このとき、通信要求部２２０は、スレーブ３０へ通知すべき通信方式を決定し、決定した通信方式を示す通信モードフラグ６０２を含む要求信号６０を生成し、生成した要求信号６０をスレーブ３０へ送信する。詳細な動作については、後述する。
【００８６】
通信要求部２２０は、図１０にて示す通信応答処理のうちマスタ２０側における処理を実行する（ステップＳ１１０）。具体的には、通信要求部２２０は、要求信号６０を送信後、スレーブ３０が指定した通信方式を示す通信モードフラグ７０２を含む応答信号７０の受信待ちの状態となり、応答信号７０を受け取ると（ステップＳ１１０における「ＹＥＳ」）、次ステップへ移る。
【００８７】
通信方式選択部２２１は、図１０にて示す通信方式選択処理を実行し、データ通信の通信方式を選択する（ステップＳ１１５）。
通信方式として全二重通信が選択されると（ステップＳ１１５における「全二重通信」）、図１０にて示すデータ通信処理として、マスタ２０は全二重通信によるデータ通信を行う（ステップＳ１２０）。
【００８８】
通信方式として半二重通信が選択されると（ステップＳ１１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ１２５〜Ｓ１３５の動作を行う。なお、ステップＳ１２５からＳ１３５の動作は、図１０にて示すデータ通信処理において半二重通信を行う場合に相当する。
通信方式選択部２２１は、既定方式である全二重通信から半二重通信への通信方式の切り替えを行う（ステップＳ１２５）。具体的には、マスタ２０がデータ受信を要求する場合には、通信方式選択部２２１は、差動レシーバ２４６、２４８とが有効となるよう制御する。また、マスタ２０がデータ送信を要求する場合には、通信方式選択部２２１は、差動トランスミッタ２４５、２４７とが有効となるよう制御する。
【００８９】
制御部２０５は、切り替えられた通信方式によりデータ通信を行う（ステップＳ１３０）。
通信方式選択部２２１は、データの送信若しくは受信が終了すると、通信方式の復旧により、通信方式を既定方式へと切り替える（ステップＳ１３５）。具体的には、通信方式選択部２２１は、差動トランスミッタ２４５と差動レシーバ２４８とが有効となるよう制御する。
【００９０】
制御部２０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ１４０）。
制御部２０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ１４０における「ＹＥＳ」）、処理を終了する。制御部２０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ１４０における「ＮＯ」）、処理はステップＳ１０５へ戻る。なお、ステップＳ１４０における動作は、図１０にて示すステップＳ３０の動作のうちマスタ２０側の動作に相当する。
【００９１】
ここで、データ通信システム１０は、全二重通信が選択された場合、図１にて示す通信路４００、４０１の通信方向による全二重通信でデータ通信を行うこととなる。また、半二重通信が選択された場合、マスタ２０からスレーブ３０へデータを送信する場合であれば図８、マスタ２０がスレーブ３０からデータを受信する場合であれば図９のような通信路４００、４０１の通信方向による半二重通信でデータ通信を行うこととなる。
【００９２】
（３）通信要求処理
ここでは、図１１にて示すステップＳ１０５の通信要求の処理動作について、図１２にて示す流れ図を用いて説明する。
通信要求部２２０は、スレーブ３０へ指定する通信方式を決定し、決定した通信方式を示す値を通信モードフラグ６０２に設定し（ステップＳ２００）、その通信方式に応じて送受信の準備を行う（ステップＳ２０５）。
【００９３】
その後、通信要求部２２０は、ステップＳ２００にて決定した通信方式を示す通信モードフラグ６０２を含む要求信号６０を生成し、生成した要求信号６０をスレーブ３０へ出力する（ステップＳ２１０）。
（４）通信方式の設定処理
ここでは、図１２にて示すステップＳ２００の通信方式の設定の処理動作について、図１３にて示す流れ図を用いて説明する。
【００９４】
通信要求部２２０は、送信若しくは受信すべきデータのサイズが、予め定められたしきい値より大きいか小さいかを判断する（ステップＳ２５０）。
小さいと判断する場合には（ステップＳ２５０における「小」）、通信要求部２２０は、通信モードに全二重通信を示す値“０”を通信モードフラグ６０２に設定する（ステップＳ２６５）。
【００９５】
大きいと判断する場合には（ステップＳ２５０における「大」）、通信要求部２２０は、数式１を用いて、データの書き込みを要求する場合には算出バッファサイズがバッファ２１０にて確保可能であるかを判断し、データの読み込みを要求する場合には算出バッファサイズがバッファ２１１にて確保可能であるかを判断する（ステップＳ２５５）。
確保可能であると判断する、つまり半二重通信による通信可能と判断する場合（ステップＳ２５５における「半二重通信可能」）、通信要求部２２０は、通信モードフラグ６０２に半二重通信を示すモード（値“１”）を設定する（ステップＳ２６０）。確保不可と判断する、つまり半二重通信による通信不可と判断する場合には（ステップＳ２５５における「半二重通信不可」）、通信要求部２２０は、通信モードフラグ６０２に全二重通信を示すモード（値“０”）を設定する。
【００９６】
（５）通信方式の選択処理
ここでは、図１１のステップＳ１１５にて示す通信方式の選択の処理について、図１４にて示す流れ図を用いて説明する。
通信方式選択部２２１は、要求信号６０に含まれる通信モードフラグ６０２と、応答信号７０に含まれる通信モードフラグ７０２とが一致するか否かを判断する（ステップＳ３００）。
【００９７】
一致すると判断する場合（ステップＳ３００における「ＹＥＳ」）、通信方式選択部２２１は、通信モードフラグ６０２若しくは７０２が示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ３０５）。
一致しないと判断する場合（ステップＳ３００における「ＮＯ」）、通信方式選択部２２１は、優先フラグ２３０を用いて、通信モードフラグ６０２、７０２のうち優先すべき装置が指定する通信モードフラグが示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ３１０）。
【００９８】
（６）スレーブ３０の動作
ここでは、データ通信時のおけるスレーブ３０の動作について、図１５にて示す流れ図を用いて説明する。
スレーブ３０は、図１０にて示す通信初期化処理のうちスレーブ３０側における処理を実行する（ステップＳ４００）。具体的には、通信応答部３２０は、Ｉ／Ｏ受信要求信号５０をマスタ２０から受け取ると、Ｉ／Ｏ受信要求信号５０に応じた制御情報５０３をマスタ２０へ送信する。その後、通信応答部３２０は、マスタ２０と共有すべき制御情報５１２が付加されたＩ／Ｏ送信要求信号５１を受け取ると、受け取った制御情報５１２を所定の記憶領域へ格納する。これによりマスタ２０とスレーブ３０とは、通信に必要な制御情報を共有し、通信可能な状態となる。
【００９９】
通信応答部３２０は、図１０にて示す通信要求処理のうちスレーブ３０側における処理を実行する（ステップＳ４０５）。具体的には、通信応答部３２０は、マスタ２０が指定した通信方式を示す通信モードフラグ６０２を含む要求信号６０の受信待ちの状態となり、要求信号６０を受け取ると、次ステップへ移る。
通信応答部３２０は、図１０にて示す通信応答処理のうちスレーブ３０側における処理を実行する（ステップＳ４１０）。このとき、通信応答部３２０は、マスタ２０へ通知すべき通信方式を決定し、決定した通信方式を示す通信モードフラグ７０２を含む応答信号７０を生成し、生成した応答信号７０をマスタ２０へ送信する。詳細な動作については、後述する。
【０１００】
通信方式選択部３２１は、図１０にて示す通信モード選択処理を実行し、データ通信の通信方式を選択する（ステップＳ４１５）。なお、通信方式の選択処理については、通信モードフラグ６０２（７０２）及び優先フラグ３３０を用いて、図１４と同様の処理の流れで実現できるので、ここでの詳細な説明は省略する。
通信方式として全二重通信が選択されると（ステップＳ４１５における「全二重通信」）、図１０にて示すデータ通信処理として、スレーブ３０は全二重通信によるデータ通信を行う（ステップＳ４２０）。
【０１０１】
通信方式として半二重通信が選択されると（ステップＳ４１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ４２５〜Ｓ４３５の動作を行う。なお、ステップＳ４２５からＳ４３５の動作は、図１０にて示すデータ通信処理において半二重通信を行う場合に相当する。
通信方式選択部３２１は、既定方式である全二重通信から半二重通信への通信方式の切り替えを行う（ステップＳ４２５）。具体的には、マスタ２０がデータ受信を要求する場合には、通信方式選択部３２１は、差動トランスミッタ３４５、３４７が有効となるよう制御する。また、マスタ２０がデータ送信を要求する場合には、通信方式選択部３２１は、差動レシーバ３４６、３４８が有効となるよう制御する。
【０１０２】
制御部３０５は、切り替えられた通信方式によりデータ通信を行う（ステップＳ４３０）。
通信方式選択部３２１は、データの送信若しくは受信が終了すると、通信方式の復旧により、通信方式を既定方式へと切り替える（ステップＳ４３５）。具体的には、通信方式選択部３２１は、差動トランスミッタ３４５と差動レシーバ３４８とが有効となるよう制御する。
【０１０３】
制御部３０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ４４０）。
制御部３０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ４４０における「ＹＥＳ」）、処理を終了する。制御部３０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ４４０における「ＮＯ」）、処理はステップＳ４０５へ戻る。なお、ステップＳ４４０における動作は、図１０にて示すステップＳ３０の動作のうちスレーブ３０側の動作に相当する。
【０１０４】
（７）通信応答処理
ここでは、図１５にて示すステップＳ４１０の通信応答の処理動作について、図１６にて示す流れ図を用いて説明する。
通信応答部３２０は、マスタ２０へ指定する通信方式を決定し、決定した通信方式を示す値を通信モードフラグ７０２に設定し（ステップＳ５００）、その通信モードに応じて送受信の準備を行う（ステップＳ５０５）。
【０１０５】
その後、通信応答部３２０は、ステップＳ５００にて決定した通信方式を示す通信モードフラグ７０２を含む応答信号７０を生成し、生成した応答信号７０をマスタ２０へ出力する（ステップＳ５１０）。
なお、通信方式の設定の処理については、図１３と同様の処理の流れで実現できるので、ここでの詳細な説明は省略する。
【０１０６】
（８）通信方式の切り替えについて
ここでは、通信方式の切り替えについて、図１７にて示す流れ図を用いて説明する。なお、マスタ２０とスレーブ３０とは制御情報を既に共有しているものとする。
マスタ２０は、データの送信を示す通信種別６０１と、通信方式として半二重通信を示す通信モードフラグ６０２とを含む要求信号６０を生成し、生成した要求信号６０をスレーブ３０へ送出する（ステップＳ５５０）。
【０１０７】
スレーブ３０は、要求信号６０を受け取ると、通信可能を示す情報と、通信方式として半二重を示す通信モードフラグ７０２とを含む応答信号７０を生成し、生成した応答信号７０をマスタ２０へ送出する（ステップＳ５５５）。
マスタ２０及びスレーブ３０は、要求信号６０及び応答信号７０それぞれに含まれる通信モードフラグ６０２、７０２から通信方式として半二重通信を選択し、自装置が半二重通信にてデータ通信ができるように通信方式の切り替えを行う（ステップＳ５６０）。
【０１０８】
マスタ２０は、切り替えられた通信方式、つまり半二重通信によりデータをスレーブ３０へ送出する（ステップＳ５６５）。
データ通信が終了すると、マスタ２０及びスレーブ３０は、通信方式を半二重通信から全二重通信へと切り替える（ステップＳ５７０）。
ここで、上述したように、ステップＳ５５０からステップＳ５６０による通信方式が切り替えられるまでの間の通信方式は全二重通信であり、ステップＳ５６０からステップＳ５７０による通信方式が切り替えられるまでの間の通信方式は半二重通信である。そして、ステップＳ５７０から次に通信方式が切り替えられるまでの間の通信方式は全二重通信となっている。
【０１０９】
１．６  変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）上記実施の形態にて要求信号６０及び応答信号７０それぞれのデータ構造の一例を図３（ａ）及び図４（ａ）に示したが、これに限定されない。
【０１１０】
例えば、上述した数式１を用いる場合、数式１からも明らかなように、半二重通信が可能なだけの送受信バッファを確保できれば、より通信帯域の狭い全二重通信も可能である。そこで、図３（ｂ）に示すように、通信モードフラグ６０２にて、全二重通信と半二重通信に加えて、全二重通信と半二重通信のいずれも可能であることを示す未選択を設定してもよい。
【０１１１】
この場合、スレーブ３０は、未選択を示す通信モードフラグ６０２（値“１０”若しくは“１１”）を含む要求信号６０を受け取ると、全二重通信と半二重通信との何れかを示す通信モードフラグ７０２が設定されるものとする。
また、スレーブ３０は、全二重通信と半二重通信との何れかを示す通信モードフラグ６０２を含む要求信号６０を受け取ると、図４（ｂ）に示すように通信モードフラグ７０２に未選択を示す値“１０”若しくは“１１”を設定しても良い。
【０１１２】
ここで、通信モードフラグに未選択が含まれる場合の選択処理について、図１８にて示す流れ図を用いて説明する。なお、ここでは、マスタ２０側の動作について説明するが、スレーブ３０側の動作も同じである。
通信方式選択部２２１は、要求信号６０に含まれる通信モードフラグ６０２と、応答信号７０に含まれる通信モードフラグ７０２とが一致するか否かを判断する（ステップＳ６００）。
【０１１３】
一致すると判断する場合（ステップＳ６００における「ＹＥＳ」）、通信方式選択部２２１は、通信モードフラグ６０２若しくは７０２が示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ６０５）。
一致しないと判断する場合（ステップＳ６００における「ＮＯ」）、通信方式選択部２２１は、通信モードフラグ６０２及び通信モードフラグ７０２の何れかが未選択を示しているか否かを判断する（ステップＳ６１０）。
【０１１４】
未選択が設定されていないと判断する場合（ステップＳ６１０における「ＮＯ」）、通信方式選択部２２１は、優先フラグ２３０を用いて、通信モードフラグ６０２、７０２のうち優先すべき装置が指定する通信モードフラグが示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ６１５）。
未選択が設定されていると判断する場合（ステップＳ６１０における「ＹＥＳ」）、通信方式選択部２２１は、未選択が設定されていない他方の通信モードフラグが示す通信方式を、データ通信に用いる通信方式として選択する（ステップＳ６２０）。
【０１１５】
（２）上記実施の形態にて優先フラグ２３０、３３０のデータ構造の一例では、マスタ２０及びスレーブ３０の何れかの装置にて指定された通信方式を優先するかを示すものとした。
この場合、マスタ２０は、通信初期化処理でスレーブ３０の制御情報としてその通信能力（送受信部の備える送受信バッファの容量や処理部のデータ処理レートなど）を取得し、自らの通信能力と比較して通信能力の低い側を優先とした優先フラグ２３０、３３０を互いの装置にて共有する。それにより、通信能力の低い側が全二重通信を選択した場合、より広帯域な半二重通信は選択されないようにすることができ、互いの通信能力に応じた確実な通信が実現できる。なお、この場合の優先フラグ２３０、３３０には、マスタ２０とスレーブ３０のそれぞれに設定した優先度を格納させてもよく、例えば、通信能力が低いほど優先度を高くすることで上記と同様の通信モード選択が可能である。
【０１１６】
しかしながら、優先すべき通信方式を示す方法は上記の方法に限定されない。
例えば、図５（ｃ）にて示すように、優先フラグ２３０ａ（３３０ａ）は、送信優先及び受信優先の何れかを示すものであってもよい。
例えば、通信要求部２２０は、優先フラグの設定時において、マスタ２０とスレーブ３０の受信能力が半二重通信モードの通信帯域以上であるか否かを判断する。具体的には、受信バッファ２１１及び３１１にて、半二重通信モードの通信帯域にて送信されるデータ量を確保できるか否かを判断する。判断結果が肯定的である場合にはデータ通信時における送信側の装置を優先する旨（送信優先）を優先フラグに設定し、判断結果が否定的である場合にはデータ通信時における受信側の装置を優先する旨（受信優先）を優先フラグに設定する。
【０１１７】
例えば、送信優先である場合には、マスタ２０が送信を要求するときにはマスタ２０が指定する通信方式が優先され、マスタ２０が受信を要求するときにはスレーブ３０が指定する通信方式が優先される。一方、受信優先である場合には、マスタ２０が送信を要求するときにはスレーブ３０が指定する通信方式が優先され、マスタ２０が受信を要求するときにはマスタ２０が指定する通信方式が優先される。
【０１１８】
これにより、マスタ２０とスレーブ３０の受信能力が半二重通信モードの通信帯域未満の場合は、受信優先とすることで受信側におけるバッファ溢れを考慮した通信方式を選択でき、一方でそれらの受信能力が半二重通信モードの通信帯域以上の場合は、送信優先とすることで送信側の送信能力を最大限に活かした通信方式を選択することができる。
また、図５（ｄ）のように、優先フラグ２３０ｂ（３３０ｂ）は、全二重優先か半二重優先かを示すものであってもよい。
【０１１９】
この場合、要求信号６０と応答信号７０の含む通信モードに相違があっても、全二重通信が優先であれば全二重通信モード、半二重通信が優先であれば半二重通信モードを選択することになる。これにより、例えばマスタ２０とスレーブ３０の通信能力が半二重通信モードの通信帯域未満の場合、全二重通信を優先とすることでマスタ２０とスレーブ３０が互いに半二重通信モードを選択する以外は半二重通信モードを制限することができ、一方でそれらの通信能力が半二重通信モードの通信帯域以上の場合、半二重通信を優先とすることでマスタ２０とスレーブ３０が互いに全二重通信モードを選択する以外は全二重通信モードを制限することができる。
【０１２０】
さらに、図５（ｅ）に示すように、優先フラグ２３０ｃ（３３０ｃ）は、図５（ｂ）から図５（ｄ）に示した優先フラグのいずれの設定条件も取り得るようなものであってもよい。
（３）上記実施の形態では、マスタ２０及びスレーブ３０は、データ通信の開始前の通信初期化処理にて優先フラグの共有をし、データ通信が行われている間は、優先フラグの内容は固定されていたが、これに限定されない。
【０１２１】
例えば、図３（ｃ）にて示すように、通信方式を選択する際の要求信号６０に優先度６１０を含めて、スレーブ３０へ送信してもよい。この場合、優先度６１０には、図５（ｂ）にて示される何れかの値が設定されるものとする。なお、設定する優先度の値の決定については、上記の実施の形態と同様であるので、ここでの説明は省略する。
または、図４（ｃ）に示すように、応答信号７０に優先度７１０を含めたフォーマットとしてもよい。この場合、優先度７１０には、図５（ｂ）にて示される何れかの値が設定されるものとする。なお、設定する優先度の値の決定については、上記の実施の形態と同様であるので、ここでの説明は省略する。
【０１２２】
これにより、マスタ２０、スレーブ３０共に通信方式の設定処理において通信方式の設定と同時に優先度をも設定し、通信方式の選択処理では、要求信号と応答信号の通信モードフラグにて示される通信方式のうち優先度の高い通信方式を選択することができる。
（４）上記実施の形態において、半二重通信から既定方式（全二重通信）への切り替えを、通信方式選択部２２１が行うとしたが、これに限定されない。この切り替えは、他の構成要素が行ってもよい。
【０１２３】
（５）上記実施の形態において、互いの装置の性能を比較する際に、バッファの容量を用いて比較するものとしたが、これに限定されない。
例えば、ＵＳＢ２．０、ＩＥＥＥ１３９４やＰＣＩ  Ｅｘｐｒｅｓｓのように、高速シリアル通信を行うために電流駆動の差動信号を扱う通信路を採用した場合、その方向切り替えには通信装置間で電流方向を切り替え、その安定化やビット同期のためにプリアンブルの送受信を行う必要があるなどで数十から数千ビットの転送時間に相当する切り替えオーバヘッドが生じる。そこで、互いの装置の性能を比較として、通信モード切り替え時にはこれらオーバヘッド（切り替え時間）を用いてもよい。
【０１２４】
（６）上記実施の形態では、データ通信においてマスタ２０がデータを一括して送信若しくは受信することを想定しているが、これに限定されない。
送信若しくは受信すべきデータを複数個のブロックに分割して送信してもよいし、受信してもよい。
この場合のマスタ２０、スレーブ３０の動作について説明する。
【０１２５】
先ず、マスタ２０の動作について、図１９にて示す流れ図を用いて説明する。
マスタ２０は、図１０にて示す通信初期化処理のうちマスタ２０側における処理を実行する（ステップＳ７００）。
通信要求部２２０は、図１０にて示す通信要求処理のうちマスタ２０側における処理を実行する（ステップＳ７０５）。なお、通信要求処理は、図１２及び１３と同様の動作にて実現できるので、ここでの詳細な説明は省略する。
【０１２６】
通信要求部２２０は、図１０にて示す通信応答処理のうちマスタ２０側における処理を実行する（ステップＳ７１０）。
通信方式選択部２２１は、スレーブ３０から応答信号７０を受け取ると（ステップＳ７１０における「ＹＥＳ」）、図１０にて示す通信モード選択処理を実行し、データ通信の通信方式を選択する（ステップＳ７１５）。なお、通信方式の選択処理は、図１４と同様の動作にて実現できるので、ここでの詳細な説明は省略する。
【０１２７】
通信方式として全二重通信が選択されると（ステップＳ７１５における「全二重通信」）、図１０にて示すデータ通信処理として、マスタ２０（例えば、制御部２０５）は、通信すべきデータのうち１ブロック分のデータに対して全二重通信によるデータ通信を行う（ステップＳ７２０）。当該１ブロック分のデータの通信が完了すると、マスタ２０（例えば、制御部２０５）は、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ７２５）。
【０１２８】
完了したと判断する場合には（ステップＳ７２５における「ＹＥＳ」）、制御部２０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ７５０）。
制御部２０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ７５０における「ＹＥＳ」）、処理を終了する。制御部２０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ７５０における「ＮＯ」）、処理はステップＳ７０５へ戻り、次のデータに対する通信方式の選択、及びデータ通信を行う。
【０１２９】
全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ７２５における「ＮＯ」）、処理はステップＳ７０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
通信方式として半二重通信が選択されると（ステップＳ７１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ７３０〜Ｓ７４０の動作を行う。なお、ステップＳ７３０からＳ７４０までの動作は、図１１にて示すステップＳ１２５からステップＳ１３５までの動作を同様であるので、ここでの説明は省略する。
【０１３０】
制御部２０５は、ステップＳ７４０にて通信方式が既定方式へと切り替えられると、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ７４５）。
完了したと判断する場合には（ステップＳ７４５における「ＹＥＳ」）、処理はステップＳ７５０へ移る。全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ７４５における「ＮＯ」）、処理はステップＳ７０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
【０１３１】
次に、スレーブ３０の動作について、図２０にて示す流れ図を用いて説明する。
スレーブ３０は、図１０にて示す通信初期化処理のうちスレーブ３０側における処理を実行する（ステップＳ８００）。
通信応答部３２０は、図１０にて示す通信要求処理のうちスレーブ３０側における処理を実行する（ステップＳ８０５）。
【０１３２】
通信応答部３２０は、マスタ２０から要求信号６０を受け取ると（ステップＳ８０５における「ＹＥＳ」）、図１０にて示す通信応答処理のうちスレーブ３０側における処理を実行する（ステップＳ８１０）。なお、通信応答処理は、図１５と同様の動作にて実現できるので、ここでの詳細な説明は省略する。
通信方式選択部３２１は、図１０にて示す通信モード選択処理を実行し、データ通信の通信方式を選択する（ステップＳ８１５）。なお、通信方式の選択処理については、図１４と同様の処理の流れで実現できるので、ここでの詳細な説明は省略する。
【０１３３】
通信方式として全二重通信が選択されると（ステップＳ８１５における「全二重通信」）、図１０にて示すデータ通信処理として、スレーブ３０（例えば、制御部３０５）は、通信すべきデータのうち１ブロック分のデータに対して全二重通信によるデータ通信を行う（ステップＳ８２０）。当該１ブロック分のデータの通信が完了すると、スレーブ３０（例えば、制御部３０５）は、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ８２５）。
【０１３４】
完了したと判断する場合には（ステップＳ８２５における「ＹＥＳ」）、制御部３０５は、通信が完了したか否か、つまり送信若しくは受信すべきデータが存在するか否かを判断する（ステップＳ８５０）。
制御部３０５は、通信が完了した、つまり送信若しくは受信すべきデータが存在しないと判断する場合（ステップＳ８５０における「ＹＥＳ」）、処理を終了する。制御部３０５は、通信が完了していない、つまり送信若しくは受信すべきデータが存在すると判断する場合（ステップＳ８５０における「ＮＯ」）、処理はステップＳ８０５へ戻り、次のデータに対する通信方式の選択、及びデータ通信を行う。
【０１３５】
全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ８２５における「ＮＯ」）、処理はステップＳ８０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
通信方式として半二重通信が選択されると（ステップＳ８１５における「半二重通信」）、図１０にて示すデータ通信処理として、ステップＳ８３０〜Ｓ８４０を行う。なお、ステップＳ８３０からＳ８４０の動作は、図１５にて示すステップＳ４２５からステップＳ４３５までの動作を同様であるので、ここでの説明は省略する。
【０１３６】
制御部３０５は、ステップＳ８４０にて通信方式が既定方式へと切り替えられると、通信すべきデータの全てのブロックに対するデータ通信が完了したか否かを判断する（ステップＳ８４５）。
完了したと判断する場合には（ステップＳ８４５における「ＹＥＳ」）、処理はステップＳ８５０へ移る。全てのブロックに対するデータ通信が完了していないと判断する場合には（ステップＳ８４５における「ＮＯ」）、処理はステップＳ８０５へ戻り、次に送信すべきブロックに対する通信方式の選択、及びデータ通信を行う。
【０１３７】
上述したように、マスタ２０及びスレーブ３０それぞれは、半二重通信時において、１ブロック分のデータ通信が終了すると、常に、全二重通信へと切り替えている。これは、半二重通信において、１ブロック分のデータ通信が完了すると、割り込みが発生することが考えられるためである。例えば、半二重通信時において、受信側となる装置でエラー（例えば、ＣＲＣエラー）が発生すると、全二重通信に切り替え後にそのエラーをデータの送信側の装置へ通知し、同じブロックに対するデータの送信を可能とするためである。なぜなら、半二重通信時には、通信経路は一方向のみ向いているので、互いに通信することができないからである。そのため、全二重通信へと復旧した後（切り替えた後）、エラーメッセージ（アボートメッセージ）を送ることで、そのブロックに対する通信に係る処理をアボート（強制中止）することができる。
【０１３８】
（７）上記実施の形態において、要求信号に、受信若しくは送信すべきデータのサイズを含めるとしたが、これに限定されない。
要求信号に、受信、若しくは送信すべきデータのサイズを含めなくてもよい。
この場合、マスタ２０が、スレーブ３０へデータを送信若しくはスレーブ３０からデータを受信する場合、データ送信若しくは受信が完了すると、その後、別のデータとしてデータ送信若しくは受信が完了した旨を示すコンプリーションメッセージをスレーブ３０へ送信する。
【０１３９】
例えば、マスタ２０がスレーブ３０へ半二重通信でデータを送信する場合、送信対象のデータの送信が完了すると、一旦全二重通信へと切り替える。スレーブ３０側では、半二重通信でマスタ２０から送信されたデータを受信すると、一旦全二重通信へと切り替えている。そして、マスタ２０及びスレーブ３０それぞれは、コンプリーションメッセージを送受信するために、要求信号及び応答信号それぞれに含まれる通信モードフラグを用いて通信方式を選択し、選択した通信方式にて当該メッセージの送受信を行う。
【０１４０】
また、例えば、マスタ２０がスレーブ３０から半二重通信でデータを受信する場合、受信対象のデータの受信が完了すると、送信時と同様に、一旦全二重通信へと切り替える。スレーブ３０側では、半二重通信でデータを送信すると、一旦全二重通信へと切り替えている。そして、マスタ２０及びスレーブ３０それぞれは、コンプリーションメッセージを送受信するために、上記と同様に、通信方式を選択し、選択した通信方式にて当該メッセージの送受信を行う。
【０１４１】
上述したように、マスタ２０及びスレーブ３０は、データ通信が完了すると、一旦全二重通信へと切り替えるが、これは、ブロック単位にてデータ通信を行う場合と同様に、受信側にてエラー（バッファのオーバーフロー）が発生すると、そのエラーをデータの送信側の装置へ通知するための割り込みが発生することが考えられるためである。
（８）上記実施の形態では、マスタ２０とスレーブ３０との関係が固定されているが、これに限定されない。双方の装置の制御部は通信要求部と通信応答部とを備えた構成であってもよい。これよると、マスタとスレーブの関係が動的に入れ替わることができる。例えば、マスタとスレーブとの関係は１通信毎に切り替わっても良い。
【０１４２】
（９）ここで、スレーブとなる装置を、マスタ２０と着脱可能なメモリカードやＩ／Ｏカードであってもよい。例えば、メモリカードはＳＤカードであり、Ｉ／Ｏカードは他の装置と無線通信を行うための無線ＬＡＮカードである。
ここで、スレーブをＳＤカードとした場合について説明する。
図２１は、上記にて示すスレーブ３０をＳＤカード３０ａとした場合のデータ通信システム１０ａの構成を示す図であり、データ通信システム１０ａは、マスタ２０ａとＳＤカード３０ａとから構成されている。なお、以下の説明において、実施の形態にて示すマスタ２０及びスレーブ３０の構成要素と同一のものついては、同一の符号を付与し、その説明は省略する。
【０１４３】
マスタ２０ａは、図２１にて示すように、処理部２０３、制御部２０５及びカードＩ／Ｆ部２０６を備えている。
カードＩ／Ｆ部２０６は、マスタ２０に装着されたＳＤカード３０ａとデータ通信を行うものであり、図２１にて示すように、送信部２０１、受信部２０２、切替部２０４及びピン２０７、２０８を備えている。
【０１４４】
ピン２０７、２０８は、ＳＤカード３０ａと接続されるものである。
ＳＤカード３０ａは、図２２にて示すように、スレーブ３０の構成要素に加えて、ピン３０６、３０７を備えている。
ピン３０６、３０７それぞれは、ＳＤカード３０ａがマスタ２０に装着されることで、カードＩ／Ｆ部２０６のピン２０７、２０８に接続される。
【０１４５】
つまり、ピン２０７とピン３０７とが接続されることで上述した通信路４００が、ピン２０８とピン３０８とが接続されることで上述した通信路４０１が、それぞれ形成されることになる。これら形成された通信路４００、４０１と切替部２０４、３０４との接続は、実施の形態にて示す図６、７と同様の接続であるので、ここでの説明は省略する。
したがって、これらの接続により、実施の形態と同様に、マスタ２０ａとＳＤカード３０ａとが、通信路４００及び４０１を介した全二重通信及び半二重通信によるデータ通信が実現できる。
【０１４６】
なお、Ｉ／Ｏカードについても同様の構成にて実現できるので、ここでの説明は省略する。
（１０）上記実施の形態において、優先フラグを設定する際に、比較する処理能力として、データ処理の処理時間（データの転送レート）としたが、これに限定されない。マスタ２０とスレーブ３０との処理能力を比較できる情報であればよい。例えば、受信バッファの容量や送信バッファの容量、これらの組み合わせである。
【０１４７】
（１１）上記実施の形態において、マスタ２０が設定する通信モードフラグが示す通信方式とスレーブ３０が設定する通信モードフラグが示す通信方式とが異なる場合、優先フラグを用いて通信方式を決定した。
例えば、優先フラグがスレーブ優先を示している場合、マスタ２０が半二重による通信が可能であるにも関わらず全二重通信を指定したために、スレーブ３０との通信方式の指定が異なることが想定される。そこで優先フラグを用いることで、両装置に半二重通信を選択させることができる。この選択された通信方式は、各装置の通信処理能力を超えるものではないので、通信効率が低下することはない。
【０１４８】
しかしながら、通信方式とが異なる場合の選択方法は、優先フラグを用いた選択方法には限定されない。
マスタ２０が設定する通信モードフラグが示す通信方式とスレーブ３０が設定する通信モードフラグが示す通信方式とが異なる場合には、常に全二重通信が選択されるようにしてもよい。
【０１４９】
この場合だと、マスタ２０及びスレーブ３０とも優先フラグを記憶するための領域を備える必要がなくなる。また、通信方式とが異なる場合に全二重通信を選択する場合は、通信対象のデータのサイズが小さい場合に有効である。このとき、マスタ２０が基本の通信方式として、半二重通信を指定し、サイズが小さいとき全二重通信を指定すればいいので、スレーブからの要求は必要なくなる。
【０１５０】
また、逆に、通信方式とが異なる場合には、半二重通信が選択されてもよい。
この場合、例えば、フロー制御を伴うデータ通信において有効となる。
フロー制御を伴うデータ通信では、互いに通信が開始可能な状態かを確認してからデータ通信を開始するので、いずれの通信モードも可であり、その場合は半二重優先として、溜まったデータを早期に転送してしまう方が効率が良いからである。
【０１５１】
フロー制御の一例について説明する。
フロー制御の書き込み時においては、マスタ２０は、書き込み対象のデータの準備ができると、スレーブ３０に通知する。スレーブ３０は、通知の受け取り後、書き込み対象のデータのサイズ分の空きバッファが確保できたらマスタに通知する。それら双方からの通知があってから書き込み対象のデータの転送を開始することになる。読み込み時においては、その逆で、マスタ２０は空きバッファの確保、スレーブ３０は読み込み対象のデータの準備ができると、互いに通知してからデータ転送を開始する。このように、フロー制御を伴って、互いにデータ転送が可能な状態となってからデータ通信を開始する場合は、半二重優先が有利となる。
【０１５２】
また、バックプレッシャ型のフロー制御を伴うデータ通信においては、通信方式とが異なる場合には、受信側の装置のバッファに格納状況に応じて全二重通信及び半二重通信を何れかを選択してもよい。
バックプレッシャ型のフロー制御とは、データが溜まる前に転送を開始し、受信側がオーバーフローしそうになるとＷＡＩＴを通知するものである。この場合、互いが指定する通信方式が異なる場合に常に半二重通信を選択すると効率が悪くなる。なぜなら、データ受信側から任意のタイミングで送信元にＷＡＩＴを通知する必要があるが、２本とも一方向（データ送信側からデータ受信側）に向いていると、ＷＡＩＴを通知することができないからである。
【０１５３】
そこで、スレーブ３０がマスタ２０へ応答信号を返す際に、受信元となる装置に既にデータが溜まっていれば半二重通信を優先し、溜まっていなければＷＡＩＴを発行できるように、全二重通信を優先するようにする。
（１２）ここで、本発明における通信処理能力には、上述したように、バッファの容量、通信方式の切替時間、データ処理の処理速度、及び数式１により算出される通信時に確保できるバッファサイズを含めるものとする。
【０１５４】
（１３）上記実施の形態において、通信要求部２２０は、優先フラグを制御情報としてスレーブ３０へ送出してもよい。
また、処理部２０３は、受信部２０２から入力したデータについて所望の処理を行った結果を送信部２０１に出力するデータ処理回路を含むものであってもよいし、受信部２０２から入力したデータを記憶し、送信部２０１から要求されたデータを出力するメモリを含むものであってもよい。
【０１５５】
（１４）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１５６】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０１５７】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１５）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
１．７  その他
（１）本発明は、複数の通信装置が全二重通信と半二重通信が可能な複数の通信路を介して接続され、それら通信装置間がマスタとスレーブの関係で要求信号と応答信号のハンドシェークを行ってからデータ通信を行う通信システムであって、マスタとなる通信装置は、データ通信を行う通信モードが全二重通信か半二重通信かを示す通信モードフラグを含む要求信号を出力する通信要求手段を備え、前記要求信号を受けてスレーブとなる通信装置は、データ通信を行う通信モードが全二重通信か半二重通信かを示す通信モードフラグを含む応答信号を出力する通信応答手段を備え、前記マスタとなる通信装置およびスレーブとなる通信装置のいずれについても、前記要求信号と前記応答信号の双方の通信モードフラグに応じて通信モードを選択する通信モード選択手段と、前記複数の通信路を前記通信モード選択手段で選択された通信モードに切替えた後にデータ通信を行うデータ通信手段とを備えることを特徴とする。
【０１５８】
これにより、通信システムは、通信装置間が互いの送受信処理能力を考慮して全二重通信か半二重通信かの通信モードを選択できる。
（２）ここで、前記通信要求手段は、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む要求信号を出力し、前記通信モード選択手段は、前記要求信号が未選択の通信モードを示す通信モードフラグを含む場合、前記応答信号の通信モードフラグが示す通信モードを選択するとしてもよい。
【０１５９】
または、前記通信応答手段は、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む応答信号を出力し、前記通信モード選択手段は、前記応答信号が未選択の通信モードを示す通信モードフラグを含む場合、前記要求信号の通信モードフラグが示す通信モードを選択するとしてもよい。
または、前記通信要求手段は、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む要求信号を出力し、前記通信応答手段についても、全二重通信か半二重通信、あるいはそれら通信モードが未選択かを示す通信モードフラグを含む応答信号を出力するとしてもよい。
【０１６０】
これらの構成によると、通信システムは、マスタが指定した通信モードとするか、スレーブの指定した通信モードとするかを１通信毎に切替えることができる。
（３）ここで、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとの間で予め設定したマスタ優先かスレーブ優先かを示す優先フラグに応じて通信モードを選択するとしてもよい。
【０１６１】
または、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとの間で予め設定した送信優先か受信優先かを示す優先フラグに応じて通信モードを選択することを特徴とする。
または、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとの間で予め設定した全二重通信優先か半二重通信優先かを示す優先フラグに応じて通信モードを選択するとしてもよい。
【０１６２】
または、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、マスタとスレーブとで通信能力が低い通信装置が出力した通信モードを選択するとしてもよい。
または、前記通信要求手段は、通信モード選択の優先度をさらに含めた要求信号を出力し、前記通信応答手段は、通信モード選択の優先度をさらに含めた応答信号を出力し、前記通信モード選択手段は、前記要求信号と前記応答信号の双方が含む通信モードフラグのみから一意に通信モードを決定できない場合、前記優先度に応じて通信モードを選択するとしてもよい。
【０１６３】
これらの構成によると、通信システムは、マスタが指定した通信モードとスレーブの指定した通信モードが異なる場合も、一意に通信モードを選択できる。
（４）ここで、前記通信要求手段は、開始するデータ通信が通信装置間の制御情報を交換するためのＩ／Ｏアクセスであれば全二重通信、データペイロードの読み書きを行うためのメモリアクセスであれば半二重通信の通信モードフラグを含む要求信号を出力するとしてもよい。
【０１６４】
この構成によると、通信システムは、通信の特性（データサイズやレイテンシ要求）に応じた通信モードとすることができる。
【産業上の利用可能性】
【０１６５】
マスタとスレーブとの間で互いの送受信能力に応じて１通信毎に全二重通信か半二重通信かの通信モードを選択でき、また、データ通信を開始するためのハンドシェークと同時に通信モードを一意に選択できる特徴を有し、機器間あるいは機器内の機能ブロック間で効率的なデータ転送を行う通信システムに適用でき、有用である。
また、本発明に係るマスタ２０及びスレーブ３０は、装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
【符号の説明】
【０１６６】
１０    データ通信システム
２０    通信装置（マスタ）
３０    通信装置（スレーブ）
４０    通信経路
２０１    送信部
２０２    受信部
２０３    処理部
２０４    切替部
２０５    制御部
３０１    送信部
３０２    受信部
３０３    処理部
３０４    切替部
３０５    制御部
４００、４０１    通信路
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムであって、
前記第１装置及び前記第２装置それぞれは、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化手段を備え、
前記第１装置は、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出する通信要求手段と、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第１選択手段と、
選択された通信方式にてデータ通信を行う第１通信手段とを備え、
前記第２装置は、
前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出する通信応答手段と、
前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する第２選択手段と、
選択された通信方式にてデータ通信を行う第２通信手段とを備える
ことを特徴とするデータ通信システム。
【請求項２】
前記選択情報とは、前記第１装置及び前記第２装置の何れかの装置を示す優先フラグであり、
前記第１装置の前記通信初期化手段は、
前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力とを用いて優先フラグを生成し、生成した前記優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、
前記第２装置の前記通信初期化手段は、
前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記第１選択手段においては前記第１記録領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記録領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記通信処理能力には、データの受信に用いられるバッファの容量が含まれ、
前記要求信号には、当該第１装置がデータ送信を要求する旨及びデータを受信する旨の通信種別が含まれ、
前記通信要求手段は、
前記第１装置及び前記第２装置双方のバッファの容量が、半二重通信の通信帯域で送信されるデータのデータ量を確保できるか否かを判断し、判断結果が肯定的である場合にはデータを送信する側の装置を示す優先フラグを生成し、判断結果が否定的である場合にはデータを受信する側の装置を示す優先フラグを生成し、
前記第１選択手段及び前記第２選択手段は、
優先フラグがデータを送信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ送信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択し、優先フラグがデータを受信する側の装置を示す内容である場合には、前記通信種別に基づいてデータ受信側となる装置が送信した信号に含まれる通信フラグが示す通信方式を選択する
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項４】
前記第１装置の前記通信初期化手段は、
受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置を示す優先フラグを生成し、
前記第１選択手段及び前記第２選択手段は、
優先フラグが前記第１装置を示す場合には前記第１通信フラグが示す通信方式を選択し、優先フラグが前記第２装置を示す場合には前記第２通信フラグが示す通信方式を選択する
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項５】
前記選択情報とは、全二重通信及び半二重通信の何れかを優先するかを示す優先フラグであり、
前記第１装置の前記通信初期化手段は、
前記第２装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力のどちらか一方が半二重通信による通信処理能力を満たさない場合には全二重通信を優先とする旨、双方の通信処理能力が半二重通信による通信処理能力を満たす場合には半二重通信を優先とする旨を示す優先フラグを所定の第１記憶領域へ記憶するとともに、前記第２装置へ送信し、
前記第２装置の前記通信初期化手段は、
前記優先フラグを受け取ると、受け取った前記優先フラグを所定の第２記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記第１選択手段においては前記第１記憶領域にて記憶されている優先フラグ、前記第２選択手段においては前記第２記憶領域にて記憶されている優先フラグに基づいて、優先すべき通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項６】
前記第１通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、
前記通信応答手段は、
前記要求信号に含まれる前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記全二重通信による通信を指定する旨及び半二重通信による通信を指定する旨の何れかを示す第２通信フラグを前記応答信号に含め、
前記手順は、
前記第１通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第２通信フラグが示す通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項７】
前記第１通信フラグは、半二重通信による通信を指定する旨及び全二重通信による通信を指定する旨の何れかを示し、
前記第２通信フラグは、半二重通信による通信を指定する旨、全二重通信による通信を指定する旨及び全二重通信及び半二重通信のどちらの通信でもよい旨の何れかを示し、
前記手順は、
前記第２通信フラグが全二重通信及び半二重通信のどちらの通信でもよい旨を示す場合には、前記第１通信フラグが示す通信方式を選択することを含む
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項８】
前記通信要求手段は、
自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含めるに先立って、データ通信の対象となるデータのデータサイズが所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第１通信フラグを前記要求信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第１通信フラグを前記要求信号に含め、
前記通信応答手段は、
自装置の通信処理能力に応じた第２通信フラグを前記応答信号に含めるに先立って、前記データ通信の対象となるデータのデータサイズが前記所定サイズ以上であるか否かを判断し、所定サイズより小さいと判断する場合には、半二重通信を指定しない旨の第２通信フラグを前記応答信号に含め、所定サイズ以上であると判断する場合には、自装置の通信処理能力に応じた第２通信フラグを前記応答信号に含める
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項９】
全二重通信が可能な他装置へデータ通信の要求を行い、前記他装置との間で接続された通信路を用いて全二重通信及び半二重通信の何れかを選択してデータ通信を行うデータ通信要求装置であって、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化手段と、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記他装置へ送出する通信要求手段と、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記他装置から受け取り、前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、
選択された通信方式にてデータ通信を行う通信手段とを備える
ことを特徴とするデータ通信要求装置。
【請求項１０】
前記選択情報とは、自装置及び他装置の何れかの装置を示す優先フラグであり、
前記通信初期化手段は、
前記他装置における通信処理能力に係る情報を受け取り、受け取った情報が示す通信処理能力と自装置の通信処理能力と比較し、比較結果により通信処理能力が劣ると判断された装置を示す優先フラグを、前記他装置と共有するために前記所定の記憶領域へ記憶するとともに、前記他装置へ送信し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記選択手段においては前記記憶領域にて記憶されている優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項９に記載のデータ通信要求装置。
【請求項１１】
前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、
データの送受信毎に、要求信号の生成及び送出がなされ、
前記通信要求手段は、
２回目以降のデータの送受信に対する要求信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記第１記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む要求信号を生成して、前記他装置へ送出する
ことを特徴とする請求項１０に記載のデータ通信要求装置。
【請求項１２】
全二重通信が可能な他装置からデータ通信の要求を受け付け、当該他装置との間で接続された通信路を用いて全二重通信及び半二重通信のうち何れかを選択してデータ通信を行うデータ通信応答装置であって、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化手段と、
前記他装置の通信処理能力に応じた通信方式として半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を前記他装置から受け取ると、自装置の通信処理能力に基づいた通信方式として半二重通信を指定するか否かを示す第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記他装置へ送出する通信応答手段と、
前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択する選択手段と、
選択された通信方式にてデータ通信を行う通信手段とを備える
ことを特徴とするデータ通信応答装置。
【請求項１３】
前記選択情報とは、優先フラグであり、
前記通信初期化手段は、
当該データ通信応答装置と前記他装置とのうち通信処理能力が劣る装置が指定する通信フラグを優先すべきとする旨の優先フラグを受け取ると、受け取った前記優先フラグを所定の記憶領域へ記憶し、
前記手順は、
前記第１通信フラグと前記第２通信フラグとが示す内容が同一であるか否かを判断し、
同一であると判断する場合には、当該内容に基づく通信方式を選択し、
同一でないと判断する場合には、前記記憶領域にて記憶している優先フラグに基づいて、通信フラグが示す優先すべき装置が指定する通信方式を選択することを含む
ことを特徴とする請求項１２に記載のデータ通信応答装置。
【請求項１４】
前記データ通信において、前記通信路を用いて複数回のデータの送受信が行われ、
データの送受信毎に、前記他装置から要求信号の送出がなされ、
前記通信応答手段は、
前記データ通信の開始に先立って、前記他装置における通信処理能力に係る情報を受け取り、記憶し、
２回目以降のデータの送受信における要求信号に対する応答信号の生成時において、自装置における現在の通信処理能力と前記他装置の処理能力とを比較し、比較結果に応じて前記記憶領域にて記憶している優先フラグを更新するとともに、更新後に対する優先フラグを含む応答信号を生成して、前記他装置へ送出する
ことを特徴とする請求項１３に記載のデータ通信応答装置。
【請求項１５】
前記通信路は２本のシリアル通信路から形成されており、
前記他装置は、データ通信に用いられる少なくとも２つの第１端子及び第２端子を備えており、
前記データ通信応答装置は、
データ通信に用いられる少なくとも２つの第３端子及び第４端子を有し、前記他装置と着脱可能であり、前記他装置への装着時に前記第１端子と前記第３端子とが、前記第２端子と前記第４端子とがそれぞれ接続されることで前記２本のシリアル通信路を形成するメモリカード又はＩ／Ｏカードである
ことを特徴とする請求項１２に記載のデータ通信応答装置。
【請求項１６】
全二重通信が可能な第１装置と第２装置とからなり、前記第１装置と前記第２装置とを接続する通信路を用いて全二重通信及び半二重通信の何れかの通信方式を選択してデータ通信を行うデータ通信システムで用いられる通信方法であって、
前記第１装置及び前記第２装置それぞれは、
通信初期化時において互いの通信能力の共有と、全二重通信及び半二重通信の何れかを互いに予め定められた手順により選択するための選択情報の共有とを行う通信初期化処理を行い、
前記第１装置は、
自装置の通信処理能力に応じて半二重通信を指定するか否かを示す第１通信フラグを含む要求信号を生成し、前記通信路を介して前記第２装置へ送出し、
前記要求信号の送出後、半二重通信を指定するか否かを示す第２通信フラグを含む、前記要求信号に対する応答信号を前記第２装置から受け取り、前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択し、
選択された通信方式にてデータ通信を行い、
前記第２装置は、
前記要求信号を受け取ると、当該第２装置の通信処理能力に基づいた前記第２通信フラグを含む前記応答信号を生成し、前記通信路を介して前記第１装置へ送出し、
前記第１通信フラグ、前記第２通信フラグ及び前記選択情報に基づいて、前記手順により、全二重通信及び半二重通信のうち双方の通信処理能力に応じた通信方式を選択し、
選択された通信方式にてデータ通信を行う
ことを特徴とする通信方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009147785.tif 000027
【図２】
2009147785.tif 000028
【図３】
2009147785.tif 000029
【図４】
2009147785.tif 000030
【図５】
2009147785.tif 000031
【図６】
2009147785.tif 000032
【図７】
2009147785.tif 000033
【図８】
2009147785.tif 000034
【図９】
2009147785.tif 000035
【図１０】
2009147785.tif 000036
【図１１】
2009147785.tif 000037
【図１２】
2009147785.tif 000038
【図１３】
2009147785.tif 000039
【図１４】
2009147785.tif 000040
【図１５】
2009147785.tif 000041
【図１６】
2009147785.tif 000042
【図１７】
2009147785.tif 000043
【図１８】
2009147785.tif 000044
【図１９】
2009147785.tif 000045
【図２０】
2009147785.tif 000046
【図２１】
2009147785.tif 000047
【図２２】
2009147785.tif 000048
【国際調査報告】
2009147785.tif 000049
2009147785.tif 000050
2009147785.tif 000051
2009147785.tif 000052