(57)【特許請求の範囲】
【請求項１】
第１装置から第２装置へのｎ本のデータ線を用いた第１データの送信と、前記第２装置から前記第１装置へのｍ本のデータ線を用いた第２データの送信と、を平行して行うデータ通信方法であって、
前記第１装置から前記第２装置への前記第１データの送信と前記第２装置から前記第１装置への前記第２データの送信とを同時に行うに際して、フレーム長Ｌ１の第１データにそのデータに対応するフレーム長Ｌｃのチェックコードを付加し、フレーム長Ｌ２の第２データにそのデータに対応するフレーム長Ｌｃのチェックコードを付加し、前記第２データのフレーム長はＬ２＝（ｍ／ｎ）＊（Ｌ１＋Ｌｃ）−Ｌｃとして、前記チェックコードが付加された第１データ及び第２データを連続して送信し、
前記第１装置での前記第２装置からの前記第２データの受信と前記第２装置での前記第１装置からの前記第１データの受信とを同時に行うに際して、前記第２装置が受信した前記第１データ及び前記第１装置が受信した前記第２データに付加された前記チェックコードを用いて対応する第１及び第２データのエラー判別を行う
ことを特徴とするデータ通信方法。
【請求項２】
前記第１装置からの前記第１データの送信に際しては、クロック信号線によるクロック信号の送信と同期させて前記第１データを送信し、前記第２装置での前記第１データの受信に際しては、前記クロック信号を検出したことに応答して前記ｎ本のデータ線を読み出すことにより前記第１データを受信し、
前記第２装置での第１データの受信におけるエラー判別の結果、前記第１データにエラーが発生したと判別した場合、前記データ線の読み出しを所定時間遅らすことを特徴とする請求項１に記載のデータ通信方法。
【請求項３】
前記チェックコードを、巡回符号化チェックコードとすることを特徴とする請求項１または２に記載のデータ通信方法。
【請求項４】
第１装置から第２装置へのｎ本のデータ線を用いた第１データの送信と、前記第２装置から前記第１装置へのｍ本のデータ線を用いた第２データの送信と、を平行して行うデータ通信システムであって、
前記第１装置は、
前記第１装置から前記第２装置への前記第１データの送信と前記第２装置から前記第１装置への前記第２データの送信とを同時に行うに際して、フレーム長Ｌ１の第１データにそのデータに対応するフレーム長Ｌｃのチェックコードを付加し、前記チェックコードが付加された第１データを連続して送信する第１送信手段と、
前記第１装置での前記第２装置からの前記第２データの受信と前記第２装置での前記第１装置からの前記第１データの受信とを同時に行うに際して、受信した第２データに付加された前記チェックコードを用いて対応する第２データのエラー判別を行う第１判別手段と、を有し、
前記第２装置は、
前記第１装置から前記第２装置への前記第１データの送信と前記第２装置から前記第１装置への前記第２データの送信とを同時に行うに際して、フレーム長Ｌ２の第２データにそのデータに対応するフレーム長Ｌｃのチェックコードを付加し、前記第２データのフレーム長はＬ２＝（ｍ／ｎ）＊（Ｌ１＋Ｌｃ）−Ｌｃとして、前記チェックコードが付加された第２データを連続して送信する第２送信手段と、
前記第１装置での前記第２装置からの前記第２データの受信と前記第２装置での前記第１装置からの前記第１データの受信とを同時に行うに際して、受信した第１データに付加された前記チェックコードを用いて対応する第１データのエラー判別を行う第２判別手段と、を有する
ことを特徴とするデータ通信システム。
【請求項５】
前記第１装置では、前記第１データの送信に際し、クロック信号線によるクロック信号の送信と同期させて前記第１データを送信し、
前記第２装置では、前記第１データの受信に際し、前記クロック信号を検出したことに応答して前記ｎ本のデータ線を読み出すことにより前記第１データを受信し、前記第１データの受信におけるエラー判別の結果、前記第１データにエラーが発生したと判別した場合、前記データ線の読み出しを所定時間遅らすことを特徴とする請求項４に記載のデータ通信システム。
【請求項６】
前記チェックコードを、巡回符号化チェックコードとすることを特徴とする請求項４または５のいずれかに記載のデータ通信システム。
【請求項７】
前記第２装置はパーソナルコンピュータであり、前記第１装置はその周辺機器であることを特徴とする請求項４〜６のいずれかに記載のデータ通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信方法及びデータ通信システムに関するものである。
【０００２】
【従来の技術】
従来では、プリンターポートを使用して双方向通信を行う場合、例えばIEEE 1284に記載されているニブルモードの様に、パーソナルコンピュータからは8本のデータ出力線と1本のクロック信号出力線が周辺機器に接続され、周辺機器からは4本のデータ出力線と1本のクロック信号出力線がパーソナルコンピュータに接続される。そして、所定の手順に従ってデータを出力した後、クロック信号を変化させる事によってパーソナルコンピュータと周辺機器間で双方向のデータ通信が行われる。
【０００３】
【発明が解決しようとする課題】
しかしながら、周辺機器が受信するデータに比べて送信するデータが多い場合、実質的な通信時間は、周辺機器が1度に出力できるデータサイズ(この場合は4bit)に依存する。このため周辺機器にパーソナルコンピュータが1度に出力できるデータサイズ(この場合は8bit)分の受信バッファを備えても、その使用効率が低い。
【０００４】
また、様々なメーカーから販売されているコンピュータのプリンターポートにおいては、安定した通信ができるように、データ信号を出力してからクロック信号を変化させるまでに所定の時間以上の遅延を必要とする。このため、 コンピュータの種類によっては、周辺機器との通信速度が、そのプリンターポートの性能が許容する通信速度よりも、かなり遅いものとなってしまう。
【０００５】
【課題を解決するための手段】
上記の技術的課題を解決するために、本発明に係るデータ通信方法は、以下の構成とる。
【０００６】
すなわち、第１装置から第２装置へのｎ本のデータ線を用いた第１データの送信と、前記第２装置から前記第１装置へのｍ本のデータ線を用いた第２データの送信と、を平行して行うデータ通信方法であって、前記第１装置から前記第２装置への前記第１データの送信と前記第２装置から前記第１装置への前記第２データの送信とを同時に行うに際して、フレーム長Ｌ１の第１データにそのデータに対応するフレーム長Ｌｃのチェックコードを付加し、フレーム長Ｌ２の第２データにそのデータに対応するフレーム長Ｌｃのチェックコードを付加し、前記第２データのフレーム長はＬ２＝（ｍ／ｎ）＊（Ｌ１＋Ｌｃ）−Ｌｃとして、前記チェックコードが付加された第１データ及び第２データを連続して送信し、前記第１装置での前記第２装置からの前記第２データの受信と前記第２装置での前記第１装置からの前記第１データの受信とを同時に行うに際して、前記第２装置が受信した前記第１データ及び前記第１装置が受信した前記第２データに付加された前記チェックコードを用いて対応する第１及び第２データのエラー判別を行うことを特徴とする。
【００２１】
【発明の実施の形態】
（第１の実施形態）
以下、図面に基づいて、本発明の第1の実施形態を説明する。
【００２２】
図１は、本発明の第１の実施形態によるデータ通信方式を簡略化して示す回路図である。
【００２３】
図１において、１は周辺機器、２はパーソナルコンピュータ、３及び１４はＣＰＵ，４及び１５はメモリ、５及び１６は内部バスであり、６〜１０は出力バッファ、１１〜１３は入力バッファである。
【００２４】
また、１７はプリンターポートであり、このプリンターポート１７は、図２に示すようなピン配置になっている。この第１の実施形態では、図１で示す様に周辺機器1の5つの出力ポートをBUSY,PE,SLCT,-ERROR,-ACKに接続し、かつ周辺機器1の3つの入力ポートにData 0, Data 1, Data 2を接続する。CPU3はメモリ4から5ビットのデータを読みだし、内部バス5を介して出力バッファ6〜10に、読みだした5ビットの値に応じて「H」「L」を出力し、その出力された値をCPU14が内部バス16を介してプリンターポート17から読みこみ、その結果をメモリ15に書き込むことによって周辺機器1からパーソナルコンピュータ2にデータを送信することができる。
【００２５】
また、CPU14がメモリ15から3ビットのデータを読みだし、内部バス16を介してプリンターポート17に、読みだした3ビットの値に応じて「H」「L」を出力し、その出力された信号を、CPU3が内部バス5を介して入力バッファ11〜13から読み込み、その結果をメモリ4に書き込むことによって、パーソナルコンピュータ2から周辺機器1にデータを送信することができる。
【００２６】
そして、それぞれのCPU3,14がデータを読みだすタイミングを定まったものとし、連続したデータの送受信を行うために、-ACKとData 2をデータのタイミングを伝えるためのクロック信号として使用する。そして、そのことにより、図3に示すようなハンドシェイクを行うので、双方向の通信が可能となる。
【００２７】
また、この時送受信するデータフォーマット(以下フレームと呼ぶ)を図4に示す。周辺機器1からパーソナルコンピュータ2へ送信するフレームのデータフィールドの長さ（以下、フィールド長）をＬ１、該送信のためのデータ線の本数をｎ本、パーソナルコンピュータ2から周辺機器1への送信のためのデータ線の本数をｍ本、巡回符号化チェックコード（以下、ＣＲＣ）のフレーム長をＬｃとすると、パーソナルコンピュータ２から周辺機器１に送信するフレーム長Ｌ２は、
L2 = (m / n) * ( L1 + Lc ) - Lc
という数式で表される。
【００２８】
例えば、ｎ＝４，ｍ＝２，Ｌｃ＝２のような場合、上式は、
L2 = L1 /2 - 1
のようになる。ただしＬ１は偶数とする。このようにしてフィールド長を定義することによって、パーソナルコンピュータ2と周辺機器1とが同時にCRCのチェックを行う事ができるようになる。
【００２９】
次に、データの転送手順の詳細を図3、5、6を参照して説明する。
【００３０】
周辺機器１における動作を図５に、パーソナルコンピュータ２における動作を図６にフローチャートとして示す。双方の動作は連動しているので、図５及び図６を互いに参照しながら処理を説明する。
【００３１】
まず最初に、周辺機器1は、-ACKに「H」を出力し（ステップＳ５００）、パーソナルコンピュータ2は、Data 2に「L」を出力する（ステップＳ６００）。
【００３２】
次に、周辺機器1は転送するバイトデータをメモリ4から読み込み(ステップＳ５０1)、下位4ビット、bit 0, bit 1, bit 2, bit 3に応じてそれぞれ-ERROR, SLCT, PE, BUSYに「H」「L」を出力する(ステップＳ５０2)。次に、-ACKに「L」を出力する(ステップＳ５０3)。
【００３３】
パーソナルコンピュータ2は、-ACKからの入力が「L」に変化した事を検出すると(ステップＳ６０2)、所定時間後に-ERROR, SLCT, PE, BUSYの状態を読み込む(ステップＳ６０3)。次に、パーソナルコンピュータ2は、転送するバイトデータの下位2ビット,bit 0, bit 1に応じてそれぞれData 0, Data 1に「H」「L」を出力し(ステップＳ６０4)、その後、Data 2に「H」を出力する(ステップＳ６０5)。
【００３４】
周辺機器1は、Data 2からの入力が「H」に変化した事を検出すると(ステップＳ５０4)、所定時間後に Data 0, Data 1の状態を読みだし(ステップＳ５０5)、バイトデータの上位4ビット、bit 4, bit 5, bit 6, bit 7に応じてそれぞれ-ERROR, SLCT, PE, BUSYに「H」「L」を出力し(ステップＳ５０6)、その後、-ACKに「H」を出力する(ステップＳ５０7)。
【００３５】
パーソナルコンピュータ2は、-ACKからの入力が「H」に変化した事を検出すると(ステップＳ６０6)、所定時間後に -ERROR, SLCT, PE, BUSYの状態を読みだす(ステップＳ６０7)。パーソナルコンピュータ2は、転送するバイトデータのbit 2, Bit 3に応じてそれぞれData 0, Data 1に「H」「L」を出力し(ステップＳ６０8)、その後Data 2に「L」を出力する(ステップＳ６０9)。引き続き、パーソナルコンピュータ2は、前回-ERROR, SLCT, PE, BUSYから読みだした値と今回-ERROR, SLCT, PE, BUSYから読みだした値から1バイトのデータを復元する(ステップＳ６１0)。ここまでの動作によって周辺機器1からパーソナルコンピュータ2に1バイトのデータ転送が完了する。
【００３６】
周辺機器1はData 2からの入力が「L」に変化した事を検出すると(ステップＳ５０8)、所定時間後に Data 0,Data 1の状態を読みだす(ステップＳ５０9)。そして、前回 Data 0とData 1から読み出した値と今回Data 0とData 1から読み出した値から、4ビットのデータを復元する。
【００３７】
以上の動作をもう一度繰り返すことによって、周辺機器1は合計2バイトのデータをパーソナルコンピュータ2に転送し、パーソナルコンピュータ2は1バイトのデータを周辺機器1に転送する。
【００３８】
また、一般的なプリンターポートでは、-ERROR, SLCT, PE, BUSY, -ACKはステータス信号として使用し、Data 0〜Data 7は STROBE信号と同期して使用する事が前提となって設計されている。この為、周辺機器1とパーソナルコンピュータ2が、それぞれData 2と-ACKの変化を検出した後に、データ線として使用しているData 0, Data 1, -ERROR, SLCT, PE, BUSYの状態を直ちに読み出すとデータが安定していない場合がある。そこで、データを読み出すまでに所定の時間を設けることにより、本第１の実施形態の様に使用する事が前提とされていないプリンターポートにおいても、安定したデータ読みだしが可能となる。
【００３９】
（第2の実施形態）
本発明の第2の実施形態を図７を参照して説明する。
【００４０】
第2の実施形態は、第1の実施形態とはデータ転送手順が異なる。第1の実施形態においては、元々第1の実施形態のような信号線の使用を前提されていないプリンターポートにおいて安定したデータをプリンターポート端子から読みだす為に、図７に示す様に、クロック信号(Data 1または-ACK)の変化を検出してからデータ信号を読みだすまでの時間として、一定の値の読み出し遅延時間Tdを使用していた。
【００４１】
しかしながら、パーソナルコンピュータ2の種類によっては、クロック信号が変化した時点で既にデータ信号の状態が安定しているものもあるので、このような種類のパーソナルコンピュータ2を使用した際には、データを読みだすタイミングをTd時間も遅延させていることは、通信速度を低下させるだけである。
【００４２】
そこで、本発明の第2の実施形態においては、読み出し遅延時間Tdを調整しながらデータ転送を行う。読み出し遅延時間Tdの調整手順を図8に従って説明する。
【００４３】
まず、管理情報の初期化をおこなう(ステップＳ８０１)。ここで、Td、CRC_error_cnt、Continue_cntを0にする。次に、プリンターポート17の初期化を行う(ステップＳ８０2)。プリンターポート17の初期化は、周辺機器1の場合は、所定の手順によって、
{ -ACk, BUSY, -ERROR, SLCT, PE } = { H, H, L, L, L }
とする。また、パーソナルコンピュータ2の場合は、所定の手順によって、
{ Data 0, Data 1, Data 2 } = { L, L, L }
とする。
【００４４】
その後、フレームの送受信を行い(ステップＳ８０3)、その結果CRCエラーが発生した否かを判別する(ステップＳ８０4)。そして、CRCエラーが発生したと判別された場合は、CRC_error_cntとContinue_cntを1つづつカウントアップする(ステップＳ８０6)。また、CRCエラーが発生していないと判別された場合は、Continue_cntを0にリセットする(ステップＳ８０5)。次に、Continue_cntが1を超えていないか否かを判別する(ステップＳ８０7)。Continue_cntが1を超えていると判別された場合は、読み出し遅延時間Tdを所定の値Taだけ増加させる(ステップＳ８０8)。Continue_cntが1を超えていないと判別された場合は、Tdを変化させずに再びフレームの送受信を行う(ステップＳ８０2)。以上の処理によって、パーソナルコンピュータ2の種類によっては、クロック信号の検出とデータの読みだしを1度に行うことができる。
【００４５】
また、本第２の実施形態においては、データ信号をプリンターポート17に出力した後、クロック信号を変化させている。しかしながら、本第２の実施形態の様にTdを調節することによって、データ信号とクロック信号を同時にプリンターポート17に出力しても、CRCエラー無しにデータ信号を読みだすことができる。
【００４６】
なお、本発明の２つの実施形態では、データバスが、パーソナルコンピュータから周辺機器への方向である場合のみしか考慮されていないが、近年のパーソナルコンピュータでは、データバスの方向を逆に切換えることができるモデルが存在している。その場合、INIT、STROBEの２つの信号線をパーソナルコンピュータからのデータ１ビット及びクロックに割り当て、データバス、及び本発明の２つの実施形態で使用した周辺機器側の信号を用いて通信を行うようにすると、１回のハンドシェークで１２ビットの転送ができるようになる。
【００４７】
【発明の効果】
以上詳述したように、本発明によれば、送信が頻繁に発生する機器側のデータ線を増やし、送信があまり発生しない機器側のデータ線を減らす事により、通信路の使用効率を向上させることができるという効果がある。
【００４８】
さらに、本発明によれば、一定データサイズの送信毎に、パーソナルコンピュータと周辺機器が同時に転送データの誤りを判定することができるという効果がある。
【００４９】
また、本発明によれば、伝送路の特性によらず、送信側がデータ信号とクロック信号とを同時にセットすることができ、より高速なデータ交換が可能となるという効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施形態によるデータ通信方法を簡略化して示す回路図である。
【図２】プリンターポートのピン配置図である。
【図３】本発明の第１の実施形態におけるハンドシェイクを示す図である。
【図４】本発明の第１の実施形態におけるデータフォーマットを示す図である。
【図５】周辺機器１における本発明の第１の実施形態によるデータ通信方法の動作を示すフローチャートである。
【図６】パーソナルコンピュータ２における本発明の第１の実施形態によるデータ通信方法の動作を示すフローチャートである。
【図７】本発明の第２の実施形態におけるクロック信号の変化とデータ信号の読み出しタイミングを示す図である。
【図８】本発明の第２の実施形態における読み出し遅延時間Tdを調節する動作を示すフローチャートである。
【符号の説明】
１  周辺機器
２  パーソナルコンピュータ
３、１４  ＣＰＵ
４、１５  メモリ
５、１６  内部バス
６〜１０  出力バッファ
１１〜１３  入力バッファ
１７  プリンターポート
【図１】
0004054394.tif 000002
【図２】
0004054394.tif 000003
【図３】
0004054394.tif 000004
【図４】
0004054394.tif 000005
【図５】
0004054394.tif 000006
【図６】
0004054394.tif 000007
【図７】
0004054394.tif 000008
【図８】
0004054394.tif 000009