(57)【特許請求の範囲】
【請求項１】
第１の装置と第２の装置との間でシリアル回線を介してデータ通信を行うためのシリアル通信方法において、
前記第１の装置から、有限数の有効ボーレートのうちのいずれか任意のボーレートで、立上りを１つだけ有する所定のデータを当該任意のボーレートに応じて複数個連続して送信し、
前記第２の装置において前記所定のデータの受信が認識できるようになるまで、前記第２の装置のボーレートを前記有効ボーレートのいずれかに順次変更するようにしたことを特徴とするシリアル通信方法。
【請求項２】
前記所定のデータが、少なくとも前記第２の装置に対する一連のコマンドの先頭に配置されて送信されることを特徴とする請求項１に記載のシリアル通信方法。
【請求項３】
前記第２の装置のボーレートを、前記有効ボーレートの最高速度から最低速度へと順番に低下させるように変更することを特徴とする請求項１または２に記載のシリアル通信方法。
【請求項４】
前記所定のデータを前記有限数の有効ボーレートのうちの最低ボーレートよりも小さいボーレートで少なくとも１つ送信してから、前記有限数の有効ボーレートのうちのいずれか任意のボーレートで複数個連続して送信することを特徴とする請求項１〜３のいずれか１項に記載のシリアル通信方法。
【請求項５】
有限数の有効ボーレートのうちのいずれか任意のボーレートで、立上りを１つだけ有する所定のデータを当該任意のボーレートに応じて複数個連続して送信することが可能であることを特徴とするシリアル回線を介してデータ送信を行うためのシリアル送信装置。
【請求項６】
有限数の有効ボーレートのうちのいずれか任意のボーレートで当該任意のボーレートに応じて複数個連続して送信された、立上りを１つだけ有する所定のデータを受信した際に、前記所定のデータの受信が認識できるようになるまで、ボーレートが前記有効ボーレートのいずれかに順次変更されるように構成されたことを特徴とするシリアル回線を介してデータ受信を行うためのシリアル受信装置。
【請求項７】
シリアル回線を介してデータ通信を行うためのシリアル通信システムにおいて、
有限数の有効ボーレートのうちのいずれか任意のボーレートで、立上りを１つだけ有する所定のデータを当該任意のボーレートに応じて複数個連続して送信するシリアル送信手段と、
前記シリアル送信手段から送信された前記所定のデータの受信が認識できるようになるまで、受信側のボーレートを前記有効ボーレートのいずれかに順次変更するボーレート変更手段とを備えていることを特徴とするシリアル通信システム。
【請求項８】
前記シリアル送信手段が、前記所定のデータを、少なくとも前記受信側に送信される一連のコマンドの先頭に配置して送信することを特徴とする請求項７に記載のシリアル通信システム。
【請求項９】
前記ボーレート変更手段が、前記受信側のボーレートを、前記有効ボーレートの最高速度から最低速度へと順番に低下させるように変更することを特徴とする請求項７または８に記載のシリアル通信システム。
【請求項１０】
前記シリアル送信手段が、前記所定のデータを前記有限数の有効ボーレートのうちの最低ボーレートよりも小さいボーレートで少なくとも１つ送信してから、前記有限数の有効ボーレートのうちのいずれか任意のボーレートで複数個連続して送信することを特徴とする請求項７〜９のいずれか１項に記載のシリアル通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シリアル通信方法、シリアル送信装置、シリアル受信装置およびシリアル通信システムに関し、２つの装置の間のシリアル通信速度を簡単な制御で確実に設定するために用いて好適である。
【０００２】
【従来の技術】
例えばパーソナルコンピュータ同士或いはパーソナルコンピュータとプリンタやモデムなどの周辺機器といった２つの装置の間でシリアルデータ通信を行うためには、２つの装置におけるデータのボーレート（通信速度）を同一にする必要がある。そのための手段として、ＡＴコマンドを使用して送信側から送られてきたデータのボーレートを受信側で自動的に検知し、受信側のボーレートを制御することが、主にモデムを用いる場合に広く行われている。
【０００３】
【発明が解決しようとする課題】
しかしながら、ＡＴコマンドを用いてボーレートを制御する場合、１回だけ送信されるＡＴコードでボーレート設定のためのデータを含む受信データの確認を行わなければならないため、データの受信に失敗した場合にはボーレートの設定ができなくなり、さらに、通信の始めにスタートビットの時間を計測しなければならないため、タイマなどのハードウェアが必要となり且つ計測した時間を記憶し比較するなどの処理が複雑になるという問題がある。
【０００４】
また、ＡＴコマンドを用いた場合には、ボーレート設定のためのデータが立上りや立下り個所を複数有する複雑なパターンになるので、データの先頭に設けられたスタートビットが何らかの原因により十分な幅を持つことができなかったときにはデータの読み取りに失敗する可能性が高く、そのためにボーレートの設定ミスが発生するという問題がある。
【０００５】
そこで、本発明の目的は、シリアル回線を介してデータ通信を行うに当たってボーレートを簡単な制御で確実に設定することができるようにするシリアル通信方法、シリアル送信装置、シリアル受信装置およびシリアル通信システムを提供することである。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、請求項１のシリアル通信方法は、第１の装置と第２の装置との間でシリアル回線を介してデータ通信を行うためのシリアル通信方法において、前記第１の装置から、有限数の有効ボーレートのうちのいずれか任意のボーレートで、立上りを１つだけ有する所定のデータを当該任意のボーレートに応じて複数個連続して送信し、前記第２の装置において前記所定のデータの受信が認識できるようになるまで、前記第２の装置のボーレートを前記有効ボーレートのいずれかに順次変更するようにしたことを特徴とするものである。
【０００７】
請求項１のシリアル通信方法によると、第１の装置が複数個の所定のデータを送信し、第２の装置において前記所定のデータの受信が認識できるようになるまで第２の装置のボーレートが有効ボーレートのいずれかに順次変更される。そのために、ＡＴコマンドを用いる必要なく、通常のシリアル回線を用いて、第１の装置と第２の装置との間のボーレートを簡単な制御で確実に設定することができるようになる。
【０００８】
【０００９】
また、第１の装置が送信する所定のデータが立上りを１つだけ有するデータであるので、立上り部分が必ず１つのデータの開始位置となり、データの開始位置の誤認によるデータの読み違いが生じるのを防止することができる。
また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【００１０】
また、請求項２のシリアル通信方法は、前記所定のデータが、少なくとも前記第２の装置に対する一連のコマンドの先頭に配置されて送信されることを特徴とするものである。
【００１１】
請求項２によると、一連のコマンドの先頭に所定のデータを配置することにより、第２の装置の電源ＯＦＦやボーレート変更などによって再度ボーレート設定の必要が生じた場合であっても、第２の装置に送信されたコマンドの読み違いが生じることがなくなる。なお、ここで「一連のコマンド」とは、第２の装置への命令として第１の装置から第２の装置に連続して送信されるコマンドをいい、例えば第２の装置がプリンタであれば文書印刷時に送信される連続した１行印刷コマンドなどを含む複数のコマンドの集合を意味している。
【００１２】
【００１３】
【００１４】
また、請求項３のシリアル通信方法は、前記第２の装置のボーレートを、前記有効ボーレートの最高速度から最低速度へと順番に低下させるように変更することを特徴とするものである。
【００１５】
請求項３によると、第２の装置のボーレートを有効ボーレートの最高速度から最低速度へと順番に低下させることにより、後で実施の形態において詳述するように、第１の装置と第２の装置とのボーレートが一致するまではフレーミングエラーだけが発生することになる。しかしながら、請求項３の方法以外の場合には、送受信のわずかなずれによってフレーミングエラーとなったり所定のデータの読み間違いが生じたりするなど安定したボーレート設定ができなくなるおそれがある。従って、請求項３の方法は、他の方法に比べて安定したボーレート設定ができるという利点がある。
【００１６】
また、請求項４のシリアル通信方法は、前記所定のデータを前記有限数の有効ボーレートのうちの最低ボーレートよりも小さいボーレートで少なくとも１つ送信してから、前記有限数の有効ボーレートのうちのいずれか任意のボーレートで複数個連続して送信することを特徴とするものである。
【００１７】
請求項４によると、所定のデータを有限数の有効ボーレートのうちの最低ボーレートよりも小さいボーレートで少なくとも１つ送信したときには、受信側では必ず受信エラーが発生することになり、速やかにボーレートの設定を開始することが可能である。これに対して、所定のデータを有限数の有効ボーレートのうちのいずれか任意のボーレートまたは有効ボーレートのうちの最高ボーレートよりも大きいボーレートで送信したときには、受信側のボーレートによっては受信エラーが発生せず受信バッファにデータが入ってしまいすでに受信バッファに他のデータが入っている場合にはボーレート設定を開始するまでに比較的長い時間を要することになる。そのため、ボーレート設定を開始するまでにすべての所定のデータの送信が終了してしまってボーレート設定が行えなくなるという事態が生じることがある。すなわち、請求項４の方法により、最初に送信した所定のデータについて故意に受信エラーを起こすことによって、常にボーレートの設定が速やかに開始されるようになる。
【００１８】
また、請求項５は、有限数の有効ボーレートのうちのいずれか任意のボーレートで、立上りを１つだけ有する所定のデータを当該任意のボーレートに応じて複数個連続して送信することが可能であることを特徴とするシリアル回線を介してデータ送信を行うためのシリアル送信装置である。
【００１９】
請求項５のシリアル送信装置によると、有限数の有効ボーレートのうちのいずれか任意のボーレートで複数個の所定のデータを送信することが可能であるので、請求項６のシリアル受信装置と併せて用いることにより、これらの間におけるボーレートを簡単な制御で確実に設定することができるようになる。
また、所定のデータが立上りを１つだけ有するデータであるので、立上り部分が必ず１つのデータの開始位置となり、データの開始位置の誤認によるデータの読み違いが生じるのを防止することができる。
また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【００２０】
また、請求項６は、有限数の有効ボーレートのうちのいずれか任意のボーレートで当該任意のボーレートに応じて複数個連続して送信された、立上りを１つだけ有する所定のデータを受信した際に、前記所定のデータの受信が認識できるようになるまで、ボーレートが前記有効ボーレートのいずれかに順次変更されるように構成されたことを特徴とするシリアル回線を介してデータ受信を行うためのシリアル受信装置である。
【００２１】
請求項６のシリアル受信装置によると、有限数の有効ボーレートのうちのいずれか任意のボーレートで送信された所定のデータの受信が認識できるようになるまで、ボーレートが有効ボーレートのいずれかに順次変更されるように構成されているので、請求項５のシリアル送信装置と併せて用いることにより、これらの間におけるボーレートを簡単な制御で確実に設定することができるようになる。
また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【００２２】
また、請求項７のシリアル通信システムは、シリアル回線を介してデータ通信を行うためのシリアル通信システムにおいて、有限数の有効ボーレートのうちのいずれか任意のボーレートで、立上りを１つだけ有する所定のデータを当該任意のボーレートに応じて複数個連続して送信するシリアル送信手段と、前記シリアル送信手段から送信された前記所定のデータの受信が認識できるようになるまで、受信側のボーレートを前記有効ボーレートのいずれかに順次変更するボーレート変更手段とを備えていることを特徴とするものである。
【００２３】
請求項７のシリアル通信システムによると、有限数の有効ボーレートのうちのいずれか任意のボーレートで所定のデータを複数個連続して送信するシリアル送信手段と、シリアル送信手段から送信された前記所定のデータの受信が認識できるようになるまで、受信側のボーレートを有効ボーレートのいずれかに順次変更するボーレート変更手段とを備えているので、通常のシリアル回線を用いて、受信側と送信側との間のボーレートを簡単な制御で確実に設定することができるようになる。
また、所定のデータが立上りを１つだけ有するデータであるので、立上り部分が必ず１つのデータの開始位置となり、データの開始位置の誤認によるデータの読み違いが生じるのを防止することができる。
また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【００２４】
また、請求項８のシリアル通信システムは、前記シリアル送信手段が、前記所定のデータを、少なくとも前記受信側に送信される一連のコマンドの先頭に配置して送信することを特徴とするものである。
【００２５】
請求項８のシリアル通信システムによると、請求項２と同様に、送信側でのコマンドの読み違いが生じることがなくなる。
【００２６】
【００２７】
【００２８】
また、請求項９のシリアル通信システムは、前記ボーレート変更手段が、前記受信側のボーレートを、前記有効ボーレートの最高速度から最低速度へと順番に低下させるように変更することを特徴とするものである。
【００２９】
請求項９のシリアル通信システムによると、請求項３と同様に、他のシステムに比べて安定したボーレート設定ができるという利点がある。
【００３０】
また、請求項１０のシリアル通信システムは、前記シリアル送信手段が、前記所定のデータを前記有限数の有効ボーレートのうちの最低ボーレートよりも小さいボーレートで少なくとも１つ送信してから、前記有限数の有効ボーレートのうちのいずれか任意のボーレートで複数個連続して送信することを特徴とするものである。
【００３１】
請求項１０によると、請求項４と同様に、最初に送信した所定のデータについて故意に受信エラーを起こすことによって、常にボーレートの設定が速やかに開始されるようになる。
【００３２】
【発明の実施の形態】
以下、本発明の好適な実施の形態について、図面を参照して説明する。
【００３３】
図１は、本発明の第１の実施の形態に係るシリアル送信装置であるパーソナルコンピュータ１と、シリアルケーブル３を介してパーソナルコンピュータ１と接続された本発明の第１の実施の形態に係るシリアル受信装置であるプリンタ２とを具備したシリアル通信システムを示す模式図である。データ端末装置（ＤＴＥ）としてのパーソナルコンピュータ１と、回線終端装置（ＤＣＥ）としてのプリンタ２は、例えばＲＳ−２３２Ｃなどのシリアルインターフェイス規格で接続されてよい。プリンタ２としては、ラベルを作成するためのカッティングプリンタ、テーププリンタ、インクジェットプリンタ、レーザプリンタなどの公知のプリンタを使用することができる。なお、プリンタ以外に、特開平１１−７８１９２号公報に記載されているスタンプ作成装置のほかモデムやターミナルアダプタなどのシリアル接続が可能な装置を接続することも可能である。
【００３４】
図２は、図１に示されたパーソナルコンピュータ１およびプリンタ２を具備したシリアル通信システムの制御系を簡略化して示すブロック図である。シリアル送信手段を含むパーソナルコンピュータ１は、ＣＰＵ１２と、ＲＡＭ１６と、ハードディスク１７と、シリアルインターフェイス１８とを有しており、これらはバス１１によって互いに接続されている。また、シリアルインターフェイス１８には、シリアルケーブル３との接続のために電圧変換などを行なうＲＳ−２３２Ｃドライバ回路１９が接続されている。
【００３５】
ハードディスク１７は、本実施の形態に係るシリアル通信方法をパーソナルコンピュータ１側で実行するためのプログラムや、プリンタ２のドライバソフトウェアプログラムなどを磁気的に記憶している。ＲＡＭ１６は、ハードディスク１７から読み出されたプログラムや図示しないキーボードなどの入力装置から与えられたデータなどを一時的に記憶する。
【００３６】
ＣＰＵ１２は、ハードディスク１７に記憶されたプログラムおよび入力装置から入力されたデータなどに基づいて、以下に詳述するような所定の演算処理を行い、その結果に応じてシリアル回線３を介してプリンタ２に所定ボーレートでデータを送るなどの命令を発し、またＲＡＭ１６および／またはハードディスク１７に演算結果を記憶させ、さらに必要であれば図示しないモニタにデータなどを表示させる。シリアルインターフェイス１８は、パラレル／シリアル変換を行って、ＣＰＵ１２側とシリアルケーブル３側とのインターフェイスとして機能する。
【００３７】
シリアルインターフェイス１８内にはボーレートジェネレータが設けられており、このボーレートジェネレータは、基準クロック信号発生器や可変分周器などを含んでおり、ＣＰＵ１２からの命令を受けて、９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓのいずれかのボーレートクロックを生成することが可能に構成されている。ＲＳ−２３２Ｃドライバ回路１９には、ＲＳ−２３２Ｃ規格によってシリアルケーブル３が接続される。なお、ボーレートジェネレータの生成するボーレートクロックは、上記に限定されるものではなく、種々のボーレートクロックを生成可能である。
【００３８】
また、ボーレート変更手段を含むプリンタ２は、ＣＰＵ２２と、出力インターフェイス２３と、ＲＡＭ２６と、ＲＯＭ２７と、シリアルインターフェイス２８とを有しており、これらはバス２１によって互いに接続されている。また、出力インターフェイス２３には、例えばモータやサーマルヘッドのような機構部２５を制御するための機構部制御回路２４が接続されており、シリアルインターフェイス２８には、シリアルケーブル３との接続のために電圧変換などを行なうＲＳ−２３２Ｃドライバ回路２９が接続されている。なお、プリンタ２の筐体表面には、ボーレート設定に失敗したときに点灯するエラーランプ（図示せず）が設けられている。
【００３９】
図３は、図２に示したプリンタ２のシリアルインターフェイス２８の構造を示すブロック図である。図４は、シリアルインターフェイス２８に関連した信号のタイミングチャートを示す図である。図３に示すように、シリアルインターフェイス２８は、インターフェイス制御部３２と、ボーレートジェネレータ３３と、受信シフトレジスタ３４と、受信データレジスタ３５とを具備している。
【００４０】
パーソナルコンピュータ１からのシリアル入力信号（図４（ａ）参照）は、ＲＳ−２３２Ｃドライバ回路２９を経てシリアルインターフェイス２８のインターフェイス制御部３２と受信シフトレジスタ３４とに与えられる。また、ＣＰＵ２２からは、設定されている受信ボーレートがバス２１を介してインターフェイス制御部３２に与えられ、インターフェイス制御部３２はこれを検出する。
【００４１】
また、インターフェイス制御部３２は、シリアル入力信号の立上りを検出し、ＣＰＵ２２により設定された受信ボーレートに対応する周期のクロック信号をボーレートジェネレータ３３に発生させる。さらに、インターフェイス制御部３２は、１バイト分のデータが受信シフトレジスタ３４に取り込まれた時点でストップビットを検出すると、ラッチ信号（図４（ｃ）参照）および割込み要求フラグ信号（図４（ｄ）参照）を発生し、ラッチ信号を受信データレジスタ３５に、割込み要求フラグ信号をＣＰＵ２２にそれぞれ与える。もしストップビットが検出できなければ、インターフェイス制御部３２の受信エラーフラグがＯＮにされる。
【００４２】
ボーレートジェネレータ３３は、基準クロック信号発生器や可変分周器などを含んでおり、ＣＰＵ２２からの命令を受けて、９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓのいずれかのシフトクロック信号（図４（ｂ）参照）を生成することが可能に構成されている。なお、ボーレートジェネレータの生成するボーレートクロックは、上記に限定されるものではなく、種々のボーレートクロックを生成可能である。
【００４３】
受信シフトレジスタ３４は、ボーレートジェネレータ３３から与えられたシフトクロック信号の立上りのタイミングで、入力されたシリアル信号を１ビットずつ取り込む。受信データレジスタ３５は、インターフェイス制御部３２からのラッチ信号に応じて、受信シフトレジスタ３４に取り込まれた１バイト分のデータを取り込み、データバスに出力する。
【００４４】
ＲＯＭ２７は、本実施の形態に係るシリアル通信方法をプリンタ２側で実行するためのプログラムを含み、プリンタ２の全体の作動を制御する制御プログラムなどを記憶している。ＲＡＭ２６は、パーソナルコンピュータ１から与えられた印刷画像データ、ＲＯＭ２７から読み出されたプログラム、シリアルケーブル３を介してパーソナルコンピュータ１から与えられたデータ、図示しない操作ボタンなどの入力装置から与えられたデータなどを一時的に記憶する。
【００４５】
ＣＰＵ２２は、ＲＯＭ２７に記憶されたプログラムやＲＡＭ２６に記憶されたデータに基づいて、以下に詳述するような所定の演算処理を行い、その結果に応じて命令を発し、ＲＡＭ２６に演算結果を記憶させる。さらに、印刷時には、出力インターフェイス２３を介して機構部制御回路２４に命令を与えて機構部２５を動作させる。シリアルインターフェイス２８は、パラレル／シリアル変換を行って、ＣＰＵ２２側とシリアルケーブル３側とのインターフェイスとして機能する。ＲＳ−２３２Ｃドライバ回路２９には、ＲＳ−２３２Ｃ規格によってシリアルケーブル３が接続される。
【００４６】
本実施の形態のシリアル通信方法では、パーソナルコンピュータ１とプリンタ２との間のシリアル通信速度を設定するために、所定パターンのデータ（以下、「ボーレート設定データ」という）を上述した５種類のうちのいずれか希望する任意のボーレートでパーソナルコンピュータ１からプリンタ２に送信する。そして、プリンタ２のボーレートを上述した５種類のうちのいずれかに順次変更していくことにより、プリンタ２が受信したデータがボーレート設定データであることをプリンタ２が認識できるようになるボーレートが見つかるので、そのときのボーレートをプリンタ２のボーレートとして設定する。このような方法により、ＡＴコマンドを用いずとも、簡易で確実なボーレート設定が可能となる。
【００４７】
また、本実施の形態のシリアル通信方法において、ボーレート設定データは、ＡＳＣＩＩコードで表すと、図５（ａ）に示すような”００ｈ”となる１０ビットのデータである。また、ボーレート設定データの別の好適な例として、図５（ｂ）に示すような”ＦＦｈ”がある。これら”００ｈ”または”ＦＦｈ”といったデータは、立上りを１つしか有しておらずその立上りがデータの先頭にあるという特徴を有している。つまり、立上りがスタートビット（図５（ａ）、（ｂ）、（ｃ）において塗りつぶしたビット）にしか存在していない。そのため、何らかの理由によって送信データの途中から受信が開始されてしまった場合であっても、当該ボーレート設定データ内の唯一の立下り部分を有するストップビットの後にくる次のボーレート設定データのスタートビットまで立上りがないために、スタートビットの位置誤認が生じることがない。
【００４８】
例えば、図５（ｃ）に示したような”３Ｆｈ”という立上りを２つ有するデータがボーレート設定データである場合、スタートビットの認識に失敗すると、そのデータ内の次の立上り部分のビットがスタートビットであると誤認されてしまい、本来”３Ｆｈ”であるデータが”ＦＡｈ”と認識されてしまう。しかし、本実施の形態によるボーレート設定データによると、このようなスタートビットの位置誤認によるデータの読み間違いが生じることがない。
【００４９】
また、本実施の形態では、データ誤認によるボーレートの設定ミスを完全に排除するために、ボーレート設定データにこれとは異なるパターンのデータ（後述する実施の形態では、「ｂ」と「ｒ」）を付加して送信するようにしている。つまり、本実施の形態では、初期化時やボーレート変更時やコマンド送信前などのボーレート設定時に、”００ｈ”＋”００ｈ”＋”００ｈ”＋・・・・・＋「ｂ」＋「ｒ」というデータがパーソナルコンピュータ１からシリアル回線３を介してプリンタ２に送信される。そして、受信側のボーレート設定を順次変更して”００ｈ”が認識できるようになり、さらに、この付加データを受信側で認識することができたときにボーレート設定を終了するようにしている。
【００５０】
また、本実施の形態では、ボーレート設定データが、少なくともプリンタ２に対する一連のコマンドの先頭に配置されてパーソナルコンピュータ１から送信される。プリンタ２に対する一連のコマンドとは、例えば印刷コマンドであり、操作者がパーソナルコンピュータ１のモニタ上のボタンを押すことなどにより印刷指令を発した場合、上述した”００ｈ”＋”００ｈ”＋”００ｈ”＋・・・・・＋「ｂ」＋「ｒ」というデータに引き続いて、複数の連続した１行印刷コマンドや改ページコマンドを含む印刷コマンドが送信される。
【００５１】
ボーレート設定のために”００ｈ”＋”００ｈ”＋”００ｈ”＋・・・・・＋「ｂ」＋「ｒ」というデータを送信するタイミングとしては、パーソナルコンピュータ１側でのエディタなどの印刷用プログラムの起動時や、操作者によるボーレート変更時なども考えられるが、プリンタ２に対する一連のコマンドの先頭に送信することが最も確実であり、たとえプリンタ２の電源ＯＦＦやボーレート変更などによって再度ボーレート設定の必要が生じた場合であっても、プリンタ２に送信されたコマンドの読み違いが生じることがなくなるという利点がある。
【００５２】
次に、本実施の形態によるシリアル通信方法の具体的なフローを説明する前に、本実施の形態においてパーソナルコンピュータ１およびプリンタ２が選択可能な５つの有効ボーレート（９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓ）の相互関係について説明する。本実施の形態では、ボーレート設定データ”００ｈ”の受信側であるプリンタ２は、プリンタ２のボーレートにおいてスタートビットから１０ビット目の中央位置となるようなタイミングでストップビットをチェックする。
【００５３】
例えば、図６（ａ）に示すように、受信側のボーレートが９６００ｂｐｓの場合、ストップビットの中央となるタイミング位置”Ａ”でストップビットのチェック（”０”または”１”のいずれであるか。なお、ここでは負論理を採用しているのでストップビットが”１”となる）が行われる。このとき、パーソナルコンピュータ１から送信されてきたボーレート設定データ”００ｈ”のボーレートが９６００ｂｐｓであればストップビットが”１”として認識され、データが”００ｈ”であると正常に認識することができる。
【００５４】
しかし、送信側のボーレートが１９２００ｂｐｓの場合には、わずかなタイミングの差でフレーミングエラー（ストップビットを”０”として認識すること）となったり、或いは、ストップビットが”１”として認識されてもデータが”０８ｈ”であると認識される。また、送信側のボーレートが３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓの場合には、いずれもフレーミングエラーとなる。なお、図６の各図では送信側が受信側よりも高速の場合について、図７の各図では送信側が受信側より低速の場合についてそれぞれ説明する。
【００５５】
また、図６（ｂ）に示すように、受信側のボーレートが１９２００ｂｐｓの場合、ストップビットの中央となるタイミング位置”Ｂ”でストップビットのチェックが行われる。このとき、パーソナルコンピュータ１から送信されてきたボーレート設定データ”００ｈ”のボーレートが３８４００ｂｐｓの場合には、わずかなタイミングの差でフレーミングエラーとなったり、或いは、データが”０８ｈ”であると認識される。また、送信側のボーレートが５７６００ｂｐｓ、１１５２００ｂｐｓの場合には、いずれもフレーミングエラーとなる。
【００５６】
また、図６（ｃ）に示すように、受信側のボーレートが３８４００ｂｐｓの場合、ストップビットの中央となるタイミング位置”Ｃ”でストップビットのチェックが行われる。このとき、パーソナルコンピュータ１から送信されてきたボーレート設定データ”００ｈ”のボーレートが５７６００ｂｐｓ、１１５２００ｂｐｓの場合には、いずれもフレーミングエラーとなる。また、図６（ｄ）に示すように、受信側のボーレートが５７６００ｂｐｓの場合、ストップビットの中央となるタイミング位置”Ｄ”でストップビットのチェックが行われる。このとき、パーソナルコンピュータ１から送信されてきたボーレート設定データ”００ｈ”のボーレートが１１５２００ｂｐｓの場合、わずかなタイミングの差でフレーミングエラーとなったり、或いは、データが”０８ｈ”であると認識される。
【００５７】
また、図７（ａ）に示すように、受信側のボーレートが１１５２００ｂｐｓの場合、ストップビットの中央となるタイミング位置”Ｅ”でストップビットのチェックが行われる。このとき、パーソナルコンピュータ１から送信されてきたボーレート設定データ”００ｈ”のボーレートが９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓのいずれであっても、フレーミングエラーとなる。また、図７（ｂ）〜（ｄ）に示すように、受信側のボーレートが５７６００ｂｐｓ、３８４００ｂｐｓ、１９２００ｂｐｓの場合、それよりも遅いボーレートでボーレート設定データ”００ｈ”が送られてきてもすべてフレーミングエラーとなる。
【００５８】
また、本実施の形態では、プリンタ２のボーレートを順次変更するにあたって、最高速度である１１５２００ｂｐｓから最低速度である９６００ｂｐｓへと順番に低下させるように変更する。このようにすることにより、図６（ａ）でみたように、ボーレート設定データ”００ｈ”をわずかなタイミングの差で”０８ｈ”と認識したりフレーミングエラーとなることがない。つまり、このようなことは、図６（ａ）、（ｂ）、（ｃ）のように受信側ボーレートが送信側ボーレートよりも低い場合だけに生じるものであり、図７（ａ）、（ｂ）、（ｃ）のように送信側ボーレートが受信側ボーレートよりも低い場合には生じない。従って、本実施の形態では、ボーレート設定データの読み間違いの可能性をできる限り排除することができるため、安定したボーレート設定ができるようになる。なお、後述する本実施の形態のシリアル通信方法の具体的ステップによると、プリンタ２のボーレートを最高速度から最低速度へと順番に低下させなくとも、ボーレート設定が可能になっている。
【００５９】
また、プリンタ２のボーレートを最高速度から最低速度へと順番に低下させる際に、送信ボーレートの速度に応じてボーレート設定データの送信回数を変更することにより、過剰に多いデータを無駄に送信するのを防止することができるという利点がある。これについて、図８を参照して説明する。
【００６０】
図８（ａ）〜（ｅ）は、ボーレート設定にあたってプリンタ２の受信ボーレートを最高速度から最低速度へと順番に低下させる場合の模式図である。まず、図８（ａ）のように、パーソナルコンピュータ１からの送信ボーレートが９６００ｂｐｓであり、そのときのプリンタ２のボーレートが１９２００ｂｐｓであった場合、△印の個所で受信エラー（ここでは、フレーミングエラーおよび”０８ｈ”への誤認の両方を含むものとする）が発生する。そして、次のボーレート設定データがパーソナルコンピュータ１から送信されたときには、プリンタ２のボーレートをまず最高速度である１１５２００ｂｐｓに設定してストップビットのタイミング位置（図中↑印の個所）でデータを読み込んでそのデータが”００ｈ”であると判定されるまでボーレートを順番に低下させていく。
【００６１】
図８（ａ）から明らかなように、送信ボーレートが９６００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「６」である。
【００６２】
また、図８（ｂ）から明らかなように、送信ボーレートが１９２００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「６」である。また、図８（ｃ）から明らかなように、送信ボーレートが３８４００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「７」である。また、図８（ｄ）から明らかなように、送信ボーレートが５７６００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「８」である。さらに、図８（ｅ）から明らかなように、送信ボーレートが１１５２００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「１３」である。
【００６３】
このように、図８（ａ）〜（ｅ）からも明らかなように、プリンタ２のボーレート設定完了までに必要なボーレート設定データの送信数が送信ボーレートによって異なるので、本実施の形態では、パーソナルコンピュータ１からプリンタ２へのボーレート設定データの送信回数をパーソナルコンピュータ１の送信ボーレートに応じて変更するようにしている。
【００６４】
例えば、送信ボーレートの最高速度である１１５２００ｂｐｓの場合、ボーレート設定完了までにボーレート設定データが「１３」必要である。この「１３」に安全のために「２」加えた数「１５」のボーレート設定データを、送信ボーレートの速度とは無関係に、各送信ボーレートについて一律に送信すると、最低速度である９６００ｂｐｓの場合、ボーレート設定データが「６」送られてきた時点でボーレートの設定が完了しているのにも拘らず、さらに「９」もの過剰なボーレート設定データが送信されることになる。９６００ｂｐｓは１１５２００ｂｐｓに比べて同じ個数のボーレート設定データを送信するのに１２倍の時間を費やすため、過剰なボーレート設定データが送信されることにより、ボーレート設定完了までに多大な時間を費やしてしまい、ボーレート設定が能率的に行えない。
【００６５】
そこで、送信ボーレートが９６００ｂｐｓであれば最低限必要な６個に加えて安全のためにいくつか加えた数のボーレート設定データ”００ｈ”を送信すればよい。また、送信ボーレートが増大するにつれて、ボーレート設定データの送信数も増やしていく。このようにすることによって、送信ボーレートに応じた最小必要数よりも過剰に多いボーレート設定データを無駄に送信するのを防止することができて、短時間で能率的なボーレート設定が可能になる。
【００６６】
一方、ボーレート設定にあたってプリンタ２の受信ボーレートを最低速度から最高速度へと順番に増大させることも可能である。このときには、図９（ａ）から明らかなように、送信ボーレートが９６００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「２」である。また、図９（ｂ）から明らかなように、送信ボーレートが１９２００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「５」である。また、図９（ｃ）から明らかなように、送信ボーレートが３８４００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「１１」である。また、図９（ｄ）から明らかなように、送信ボーレートが５７６００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「１８」である。さらに、図９（ｅ）から明らかなように、送信ボーレートが１１５２００ｂｐｓの場合には、ボーレート設定完了までのボーレート設定データの必要送信数は「３６」である。
【００６７】
従って、ボーレート設定にあたって、プリンタ２のボーレートを最低速度から最高速度へと順番に増大させる場合、最低速度では必要送信数が少なく、速度が増大するに伴って必要送信数も増えるが、ボーレート設定完了までの時間に大きな差はなくボーレート設定に要する時間が平均化されているために、効率よくボーレートを設定することができる。
【００６８】
ところで、送信データは連続して休みなく送られてくるとは限らず、パーソナルコンピュータ１の都合により断続的に送られてくる場合がある。プリンタ２のボーレートがパーソナルコンピュータ１のボーレートよりも低い場合、送信データが途切れている時をストップビットであるとプリンタ２が誤判断して、それまでに受信したデータを誤認することが起こる可能性がある。しかしながら、図８（ａ）〜（ｅ）で説明したように、ボーレート設定を行うに当たりプリンタ２のボーレートを最高速度から最低速度へと順番に低下させれば、このような誤認を避けることができ、ボーレートの設定を能率的に行うことが可能である。
【００６９】
つまり、図９（ａ）〜（ｅ）で説明したように、プリンタ２のボーレートを最低速度から最高速度へと順番に増加させる場合には、パーソナルコンピュータ１から送信された１つのボーレート設定データの長さがプリンタ２のボーレートで同じビット数のときの受信シフトクロック信号長さよりも短いために、パーソナルコンピュータ１からの送信データが途切れて送信ボーレート設定データ同士の間隔が開いてしまうと、その途切れた部分をストップビットと誤認してしまう。一方、図８（ａ）〜（ｅ）で説明したように、プリンタ２のボーレートを最高速度から最低速度へと順番に低下させれば、パーソナルコンピュータ１から送信された１つのボーレート設定データの長さがプリンタ２のボーレートで同じビット数のときの受信シフトクロック信号長さよりも長いために、パーソナルコンピュータ１からの送信データが途切れて送信ボーレート設定データ同士の間隔が開いたとしても、それに合わせてプリンタ２側の受信シフトクロック信号の立上りがずれるだけであり、途切れた部分をストップビットと誤認してしまうことがない。
【００７０】
次に、本実施の形態によるシリアル通信方法の具体的なフローについて、図１０〜図１３をさらに参照して説明する。図１０は、シリアル通信のメインフローチャートである。図１１は、シリアル通信におけるＲＳ−２３２Ｃ割り込みのフローチャートである。図１２は、ボーレート設定に関するサブルーチンのフローチャートである。また、図１３は、シリアルインターフェイス２８の動作を説明するためのフローチャートである。なお、以下の各ステップは、特に記載する場合以外、プリンタ２のＣＰＵ２２を中心として行われる。
【００７１】
まず、図１０に示すように、ステップＳ１において、プリンタ２の電源がＯＮになると、シリアル通信を開始する準備として、ＲＳ−２３２Ｃ規格によるシリアル通信を有効にしたりＲＳ−２３２Ｃ割り込みを可能にするほか、後述するボーレート設定中フラグ、受信フラグまたは受信エラーフラグなどの各種初期化が行われる。次に、ステップＳ２において、後述するＲＳ−２３２Ｃ割り込みのステップＴ４でＯＮに設定されるボーレート設定中フラグがＯＮであるかどうかが判断される。ボーレート設定中フラグがＯＮであれば（Ｓ２：ＹＥＳ）、ステップＳ７に進んでボーレート設定処理が行われる。
【００７２】
また、ボーレート設定中フラグがＯＦＦであれば（Ｓ２：ＮＯ）、ステップＳ３に進んでＲＡＭ２６内の受信バッファに受信データが有るかどうかがチェックされる。受信データがなければ（Ｓ３：ＮＯ）、ステップＳ２に戻り、受信データが有れば（Ｓ３：ＹＥＳ）、ステップＳ４に進む。ステップＳ４においては、受信したデータが”００ｈ”および”０８ｈ”のいずれかであるかどうかが判断される。もし受信データが”００ｈ”或いは”０８ｈ”であれば（Ｓ４：ＹＥＳ）、ステップＳ７に進んでボーレート設定処理が行われ、受信データが”００ｈ”或いは”０８ｈ”のいずれでもなければ（Ｓ４：ＮＯ）、ステップＳ５に進む。
【００７３】
ステップＳ５においては、受信データが例えば「ＭＯＶＥ」や「ＣＵＴ」などのボーレート設定データ以外のコマンドコードであるかどうかが判断される。もしコマンドコードであれば（Ｓ５：ＹＥＳ）、ステップＳ６に進んで各コマンドが実行された後、ステップＳ２に戻り、コマンドコードでなければ（Ｓ５：ＮＯ）、そのままステップＳ２に戻る。
【００７４】
次に、シリアルインターフェイス２８の動作について説明する。まず、図１３のステップＷ１において、受信したシリアル入力信号のスタートビットが立ち上がったかどうかを、立上りが検出されるまでインターフェイス制御部３２によって繰り返して判断する。そして、シリアル入力信号の立上りが検出されると（Ｗ１：ＹＥＳ）、ステップＷ２に進んでボーレートジェネレータ３３での受信シフトクロックの生成をスタートさせる。
【００７５】
次に、ステップＷ３に進んで、スタートビットの中央となるタイミング位置で受信シフトクロック信号が立ち上がるまで、その立上りがインターフェイス制御部３２によって繰り返して検出される。受信シフトクロック信号の立上りが検出されると（Ｗ３：ＹＥＳ）、ステップＷ４において、シリアル入力信号が”Ｈｉ”すなわち”０”であるかどうかがインターフェイス制御部３２によって判断される。もし、そのときのシリアル入力信号が”Ｌｏｗ”すなわち”１”であれば（Ｗ４：ＮＯ）、スタートビットが見つからないのでノイズとみなして、ステップＷ５で受信シフトクロック信号を停止してからステップＷ１に戻り、次の入力の立上りを待つ。
【００７６】
ステップＷ４でシリアル入力信号が”Ｈｉ”であると判断されると（Ｗ４：ＹＥＳ）、ステップＷ６において、最初のデータビット（ｂ０）の中央となるタイミング位置で受信シフトクロック信号が立ち上がるまで、その立上りがインターフェイス制御部３２によって繰り返して検出される。受信シフトクロック信号の立上りが検出されると（Ｗ６：ＹＥＳ）、ステップＷ７において、最初のデータビットのデータ値が受信シフトレジスタ３４に取り込まれる。
【００７７】
次に、ステップＷ８において、予定した８ビットのデータビット（ｂ０〜ｂ７）のデータ値の取り込みが終了したかどうかが判断され、終了していないと判断されると（Ｗ８：ＮＯ）、１ビットづつシフトしながらステップＷ６〜Ｗ７を繰り返して実行し、予定した８ビットのデータビット（ｂ０〜ｂ７）のデータ値を受信シフトレジスタ３４に取り込む。
【００７８】
次に、ステップＷ９において、ストップビットの中央となるタイミング位置で受信シフトクロック信号が立ち上がるまで、その立上りがインターフェイス制御部３２によって繰り返して検出される。受信シフトクロック信号の立上りが検出されると（Ｗ９：ＹＥＳ）、ステップＷ１０において、シリアル入力信号が”Ｌｏｗ”であるかどうかがインターフェイス制御部３２によって判断される。もし、そのときのシリアル入力信号が”Ｌｏｗ”であれば（Ｗ１０：ＹＥＳ）、ステップＷ１１において、受信シフトレジスタ３４に取り込まれたデータがインターフェイス制御部３２からのラッチ信号によって受信データレジスタ３５にラッチされる。
【００７９】
もし、ストップビットの中央となるタイミング位置でのシリアル入力信号が”Ｈｉ”であれば（Ｗ１０：ＮＯ）、ストップビットが見つからないのでエラーとみなして、ステップＷ１２において、シリアルインターフェイス内受信エラーフラグがＯＮにされる。
【００８０】
そして、ステップＷ１１、Ｗ１２の終了後にステップＷ１３に進んで割り込み要求フラグがＯＮにされてからステップＷ１に戻る。なお、ステップＷ１３でＯＮにされた割り込み要求フラグは、後述するＲＳ−２３２Ｃ割り込みルーチンの開始直後または終了直前においてＯＦＦにされる。
【００８１】
次に、ＲＳ−２３２Ｃ割り込みについて説明する。ＲＳ−２３２Ｃ割り込みは図１０のメインチャートおよび図１２のボーレート設定に関するサブルーチンのフローチャートの各ステップの間の任意の個所に割り込むことができる。ＲＳ−２３２Ｃ割り込みは、図１３のステップＷ１３において割り込み要求フラグがＯＮになるごとに開始される。
【００８２】
まず、図１１のステップＴ１において、ボーレート設定中フラグがＯＮであるかどうかが判断される。ボーレート設定中フラグがＯＮであれば（Ｔ１：ＹＥＳ）、ステップＴ５において受信フラグをＯＮにしてからＲＳ−２３２Ｃ割り込みを終了して図１０または図１２の各ステップの元の位置に戻る。受信フラグは、ボーレート設定中に割り込みがあったかどうかを示すフラグである。また、ボーレート設定中フラグがＯＦＦであれば（Ｔ１：ＮＯ）、ステップＴ２に進んで受信エラーが有るかどうか、つまりプリンタ２の受信したデータに関してフレーミングエラーが生じているかどうかがチェックされる。
【００８３】
受信エラーがなければ（Ｔ２：ＮＯ）、ステップＴ３において受信バッファへのデータの取り込みが行われた後、ＲＳ−２３２Ｃ割り込みを終了する。受信エラーが有れば（Ｔ２：ＹＥＳ）、ステップＴ４に進む。そして、ステップＴ４においてボーレート設定中フラグがＯＮにされた後、ＲＳ−２３２Ｃ割り込みを終了する。
【００８４】
次に、ボーレート設定に関するサブルーチンについて説明する。まず、図１２のステップＶ１において、プリンタ２のボーレートが最高速、すなわち、１１５２００ｂｐｓに設定される。次に、ステップＶ２において、ＲＡＭ２６内に設けられた受信フラグがＯＦＦに設定される。そして、ステップＶ３において、ステップＷ１２でＯＮに設定されたシリアルインターフェイス内受信エラーフラグがＯＦＦに設定される。
【００８５】
次に、ステップＶ４において、受信フラグがＯＮであるかどうかが判断される。受信フラグがＯＮであれば（Ｖ４：ＹＥＳ）、ステップＶ５に進み、受信フラグがＯＦＦであれば（Ｖ４：ＮＯ）、ステップＶ４を繰り返す。つまり、ステップＶ４では、ＲＳ−２３２Ｃ割り込みによって受信フラグがＯＮになるのを待機している。
【００８６】
ステップＶ５においては、シリアルインターフェイス内受信エラーフラグがＯＮであるかどうかが判断される。シリアルインターフェイス内受信エラーフラグがＯＮであれば（Ｖ５：ＹＥＳ）、ステップＶ７に進み、受信エラーフラグがＯＦＦであれば（Ｖ５：ＮＯ）、ステップＶ６に進む。ステップＶ６においては、受信したデータが”００ｈ”であるかが判断される。もし受信データが”００ｈ”であれば（Ｖ６：ＹＥＳ）、ステップＶ９に進み、受信データが”００ｈ”でなければ（Ｖ６：ＮＯ）、ステップＶ７に進む。
【００８７】
ステップＶ７においては、すべてのボーレートへの変更が終了したか、つまり現在のボーレートが最低速度である９６００ｂｐｓであるかどうかが判断される。もし現在のボーレートが９６００ｂｐｓであれば（Ｖ７：ＹＥＳ）、ステップＶ１９に進む。現在のボーレートが９６００ｂｐｓでなければ（Ｖ７：ＮＯ）、ステップＶ８に進んで、ボーレートが一段下げられる。すなわち、現在のボーレートが１１５２００ｂｐｓであれば５７６００ｂｐｓに、５７６００ｂｐｓであれば３８４００ｂｐｓに、というようにボーレートが順番に低下するように変更される。その後、ステップＶ２に戻る。つまり、ステップＶ２〜Ｖ８では、パーソナルコンピュータ１から連続して送信されるボーレート設定データ”００ｈ”の受信が認識できるようになるまで、プリンタ２のボーレートを１１５２００ｂｐｓから９６００ｂｐｓまで段階的に順次変更している。
【００８８】
次に、ステップＶ９でＲＡＭ２６内に設けられた受信フラグがＯＦＦに設定された後、ステップＶ１０において、受信フラグがＯＮであるかどうかが判断される。受信フラグがＯＮであれば（Ｖ１０：ＹＥＳ）、ステップＶ１１に進み、ＯＦＦであれば（Ｖ１０：ＮＯ）、ステップＶ１０を繰り返す。つまり、ステップＶ１０では、ＲＳ−２３２Ｃ割り込みによって受信フラグがＯＮになるのを待機している。
【００８９】
ステップＶ１１においては、シリアルインターフェイス内受信エラーフラグがＯＮであるかどうかが判断される。受信エラーフラグがＯＮであれば（Ｖ１１：ＹＥＳ）、ステップＶ７に進み、受信エラーフラグがＯＦＦであれば（Ｖ１１：ＮＯ）、ステップＶ１２に進む。
【００９０】
ステップＶ１２においては、受信したデータが”００ｈ”であるかが判断される。もし受信データが”００ｈ”であれば（Ｖ１２：ＹＥＳ）、ステップＶ９に戻り、受信データが”００ｈ”でなければ（Ｖ１２：ＮＯ）、ステップＶ１３に進む。つまり、ステップＶ９〜Ｖ１２では、プリンタ２のボーレートがパーソナルコンピュータ１のボーレートと一致した状態で、パーソナルコンピュータ１から送信された所定個数のボーレート設定データ”００ｈ”の送信が終了するのを待機している。
【００９１】
ステップＶ１３においては、受信したデータが「ｂ」（”６２ｈ”）であるかが判断される。もし受信データが「ｂ」であれば（Ｖ１３：ＹＥＳ）、ステップＶ１４に進み、受信データが「ｂ」でなければ（Ｖ１３：ＮＯ）、ステップＶ１９に進む。
【００９２】
そして、ステップＶ１４でＲＡＭ２６内に設けられた受信フラグがＯＦＦに設定された後、ステップＶ１５において、受信フラグがＯＮであるかどうかが判断される。受信フラグがＯＮであれば（Ｖ１５：ＹＥＳ）、ステップＶ１６に進み、ＯＦＦであれば（Ｖ１５：ＮＯ）、ステップＶ１５を繰り返す。つまり、ステップＶ１５では、ＲＳ−２３２Ｃ割り込みによって受信フラグがＯＮになるのを待機している。
【００９３】
ステップＶ１６においては、シリアルインターフェイス内受信エラーフラグがＯＮであるかどうかが判断される。受信エラーフラグがＯＮであれば（Ｖ１６：ＹＥＳ）、ステップＶ１９に進み、受信エラーフラグがＯＦＦであれば（Ｖ１６：ＮＯ）、ステップＶ１７に進む。
【００９４】
ステップＶ１７においては、受信したデータが「ｒ」（”７２ｈ”）であるかが判断される。もし受信データが「ｒ」であれば（Ｖ１７：ＹＥＳ）、ステップＶ１８に進み、受信データが「ｒ」でなければ（Ｖ１７：ＮＯ）、ステップＶ１９に進む。つまり、ステップＶ１３〜Ｖ１７では、所定個数のボーレート設定データ”００ｈ”の後に引き続いて「ｂ」および「ｒ」が受信できたかどうかを確認している。
【００９５】
ステップＶ１８においては、プリンタ２のボーレート設定が成功したものとしてプリンタ２のエラーランプが消灯され、そしてステップＶ２１に進む。また、ステップＶ１９においては、シリアルインターフェイス２８の受信エラーフラグがＯＦＦにされる。そして、ステップＶ２０に進んで、プリンタ２のボーレート設定が失敗したものとしてプリンタ２のエラーランプが点灯させられ、そしてステップＶ２１に進む。ステップＶ２１では、ボーレート設定中フラグがＯＦＦにされて、ボーレート設定サブルーチンが終了する。
【００９６】
このように、本実施の形態のシリアル通信方法によると、パーソナルコンピュータ１がボーレート設定時に、”００ｈ”＋”００ｈ”＋”００ｈ”＋・・・・・＋「ｂ」＋「ｒ」というデータをシリアル回線３を介してプリンタ２に送信し、プリンタ２において”００ｈ”が認識できるようになるまでプリンタ２のボーレート設定を順次変更するという簡易な方法で確実なボーレート設定ができるようになっている。
【００９７】
なお、ステップＶ１３およびステップＶ１７の「ｂ」および「ｒ」を受信したかどうかチェックするステップは、確認のために設けられたものであり、いずれか一方だけ行ってもよいし、両方行わなくともよく、必ずしも必要なものではない。また、シリアル通信の有効ボーレートは、本実施の形態では、９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓの５種類であるが、これら以外のボーレートを有効ボーレートとしてもよい。また、本実施の形態では、シリアル送信装置であるパーソナルコンピュータ１とシリアル受信装置であるプリンタ２とがシリアルケーブル３を介して接続されているが、両者が赤外線通信などの方法により無線で接続されていてもよい。
【００９８】
また、本発明のシリアル通信方法は、立上り１つのボーレート設定データを用いることによって、上述のようにスタートビットの位置誤認防止という利益のほか、ボーレート設定の具体的なフローを簡略化するという利益が得られる。
【００９９】
次に、本発明の第２の実施の形態について説明する。上述した第１の実施の形態では、ボーレート設定を行うに当たって最初から希望する任意のボーレートでボーレート設定データをパーソナルコンピュータ１からプリンタ２に送信していたが、本実施の形態では、パーソナルコンピュータ１から最初に送信するボーレート設定データのボーレートを９６００ｂｐｓよりも遅いボーレート（本実施の形態では４８００ｂｐｓとする）で送信し、２番目以降のボーレート設定データを希望するボーレートで送信する。
【０１００】
そのため、本実施の形態は、パーソナルコンピュータ１のシリアルインターフェイス１８内に設けられたボーレートジェネレータが９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓのほかに４８００ｂｐｓのボーレートクロックを生成することが可能に構成されている点、および、図１０で説明したメインフローチャートにおいてステップＳ４が存在しない点において上述した第１の実施の形態と相違している。そのほかの点では、本実施の形態の装置構成やステップなどは第１の実施の形態と同様であるので、その詳細な説明を省略する。
【０１０１】
ここで、本実施の形態にしたがってパーソナルコンピュータ１とプリンタ２との間のボーレート設定を行う具体的な例について、第１の実施の形態の説明で用いた図面を参照しながら簡単に説明する。本実施の形態によってボーレート設定を行うには、まず、パーソナルコンピュータ１から１つのボーレート設定データ”００ｈ”を４８００ｂｐｓでプリンタ２に送信する。すると、このときプリンタ２側で設定されていたボーレートが９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓの５つのいずれであろうとも必ずフレーミングエラーが発生する（図７で説明したように、送信側ボーレートが受信側ボーレートよりも小さい場合には必ずフレーミングエラーとなるため）。すなわち、最初のボーレート設定データの送信ボーレートを４８００ｂｐｓとすることにより、必ずフレーミングエラーが発生し、”０８ｈ”や”００ｈ”と認識されたりすることがない。
【０１０２】
そのため、図１１で説明したＲＳ−２３２Ｃ割り込みのステップＴ２で受信エラーが生じていると判断されて（Ｔ２：ＹＥＳ）、ステップＴ４においてボーレート設定中フラグがＯＮにされる。そのため、図１０で説明したメインフローチャートに戻ったときに、ステップＳ２においてボーレート設定中フラグがＯＮであると判断され（Ｓ２：ＹＥＳ）、速やかにステップＳ７に進んでボーレート設定処理が行われる。そして、図１２で説明したボーレート設定に関するサブルーチンでは、パーソナルコンピュータ１から送られるボーレート設定データのボーレートが上述した５つのいずれか希望するものになっているため、第１の実施の形態で説明したのと同様の動作が行われる。このように、本実施の形態によると、最初のボーレート設定データを４８００ｂｐｓで送信することにより、プリンタ２側で必ず受信エラーが発生するので、速やかにボーレートの設定を開始することが可能である。
【０１０３】
これに対して、上述した第１の実施の形態のようにボーレート設定データを最初から９６００ｂｐｓ、１９２００ｂｐｓ、３８４００ｂｐｓ、５７６００ｂｐｓ、１１５２００ｂｐｓのいずれか希望する任意のボーレートで送信したとき、または、１１５２００ｂｐｓよりも大きいボーレートで送信したときには、プリンタ２側のボーレートによっては受信エラーが発生しない可能性もあり（Ｔ２：ＮＯ）、その場合にはボーレート設定中フラグがＯＦＦのままに維持され、ステップＴ３で説明したように受信バッファにデータが入ってしまうことになる。すると、メインフローチャートに戻ったときに、ステップＳ２でボーレート設定中フラグがＯＦＦであると判断されてステップＳ３に進むので、速やかにステップＳ７のボーレート設定処理に移行することができず、すでに受信バッファに他のデータが入っている場合にはステップＳ４、Ｓ５、Ｓ８などの処理を行うことが必要になる。そのため、上述の第１の実施の形態では、ボーレート設定を開始するまでに比較的長い時間を要することになり、ステップＳ７のボーレート設定処理を開始するまでにすべてのボーレート設定データの送信が終了してしまってボーレート設定が行えなくなるという事態が生じることがある。
【０１０４】
このように、本実施の形態によると、第１の実施の形態で説明した利益が得られるほか、最初に送信した所定のデータについて故意に受信エラーを起こすことによって、常にボーレートの設定が速やかに開始され、ボーレート設定を確実に行うことが可能であるという利点がある。
【０１０５】
なお、本実施の形態では、最初に送信するボーレート設定データを４８００ｂｐｓとしたが、９６００ｂｐｓよりも小さい他のボーレートに変更してもよい。また、４８００ｂｐｓで送信するボーレート設定データは本実施の形態にしたがった具体的なフローでは最初の１つだけで必要且つ十分であるが、フローの詳細を変更すれば最初から２つ以上のボーレート設定データを４８００ｂｐｓで送信することも可能である。
【０１０６】
【発明の効果】
以上説明したように、請求項１のシリアル通信方法によると、第１の装置が複数個の所定のデータを送信し、第２の装置のボーレートが有効ボーレートのいずれかに順次変更されるために、通常のシリアル回線を用いて、第１の装置と第２の装置との間のボーレートを簡単な制御で確実に設定することができるようになる。
【０１０７】
また、第１の装置が送信する所定のデータが立上りを１つだけ有するデータであるので、立上り部分が必ず１つのデータの開始位置となり、データの開始位置の誤認によるデータの読み違いが生じるのを防止することができる。
また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【０１０８】
請求項２のシリアル通信方法によると、一連のコマンドの先頭に所定のデータを配置することにより、第２の装置に送信されたコマンドの読み違いが生じることがなくなる。
【０１０９】
【０１１０】
請求項３のシリアル通信方法によると、第２の装置のボーレートを有効ボーレートの最高速度から最低速度へと順番に低下させることにより、安定したボーレート設定ができる。
【０１１１】
請求項４のシリアル通信方法によると、最初に送信した所定のデータについて故意に受信エラーを起こすことによって、常にボーレートの設定が速やかに開始されるようになる。
【０１１２】
請求項５のシリアル送信装置によると、有限数の有効ボーレートのうちのいずれか任意のボーレートで所定のデータを当該任意のボーレートに応じて複数個連続して送信することが可能であるので、請求項６のシリアル受信装置と併せて用いることにより、これらの間におけるボーレートを簡単な制御で確実に設定することができるようになる。また、所定のデータが立上りを１つだけ有するデータであるので、立上り部分が必ず１つのデータの開始位置となり、データの開始位置の誤認によるデータの読み違いが生じるのを防止することができる。また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【０１１３】
請求項６のシリアル受信装置によると、有限数の有効ボーレートのうちのいずれか任意のボーレートで送信された所定のデータの受信が認識できるようになるまで、ボーレートが有効ボーレートのいずれかに順次変更されるように構成されているので、請求項５のシリアル送信装置と併せて用いることにより、これらの間におけるボーレートを簡単な制御で確実に設定することができるようになる。また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【０１１４】
請求項７のシリアル通信システムによると、有限数の有効ボーレートのうちのいずれか任意のボーレートで所定のデータを当該任意のボーレートに応じて複数個連続して送信するシリアル送信手段と、シリアル送信手段から送信された前記所定のデータの受信が認識できるようになるまで、受信側のボーレートを有効ボーレートのいずれかに順次変更するボーレート変更手段とを備えているので、通常のシリアル回線を用いて、受信側と送信側との間のボーレートを簡単な制御で確実に設定することができるようになる。また、所定のデータが立上りを１つだけ有するデータであるので、立上り部分が必ず１つのデータの開始位置となり、データの開始位置の誤認によるデータの読み違いが生じるのを防止することができる。また、ボーレート設定に必要な最小送信データ数が送信ボーレートによって異なるために、送信ボーレートに応じた最小送信データ数よりも過剰に多いデータを無駄に送信するのを防止することができて、能率的なボーレート設定が可能になる。
【０１１５】
請求項８〜１０のシリアル通信システムによると、請求項２〜４と同様の効果を得ることができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態に係るシリアル通信システムを示す模式図である。
【図２】  図１に示されたパーソナルコンピュータおよびプリンタを具備したシリアル通信システムの制御系を簡略化して示すブロック図である。
【図３】  図２に示したプリンタ側のシリアルインターフェイスの構造を示すブロック図である。
【図４】  図２に示したプリンタ側のシリアルインターフェイスに関連した信号のタイミングチャートを示す図である。
【図５】  本発明の一実施の形態に係るシリアル通信方法で用いられるボーレート設定データについて説明するための模式図である。
【図６】  送信側が受信側よりも高速の場合であって受信側のボーレート設定と送信側のボーレート設定が異なるときに、本発明の一実施の形態に係るシリアル通信方法で用いられるボーレート設定データが受信側でどのように認識されるかを説明するための図である。
【図７】  受信側が送信側よりも高速の場合であって受信側のボーレート設定と送信側のボーレート設定が異なるときに、本発明の一実施の形態に係るシリアル通信方法で用いられるボーレート設定データが受信側でどのように認識されるかを説明するための図である。
【図８】  本発明の一実施の形態に係るシリアル通信方法において、受信側のボーレートを最高速度から最低速度へと順番に低下させていくときにボーレート設定完了までに必要なボーレート設定データの送信数について説明するための図である。
【図９】  本発明の一実施の形態に係るシリアル通信方法において、受信側のボーレートを最低速度から最高速度へと順番に増大させていくときにボーレート設定完了までに必要なボーレート設定データの送信数について説明するための図である。
【図１０】  本発明の一実施の形態に係るシリアル通信方法のメインフローチャートである。
【図１１】  本発明の一実施の形態に係るシリアル通信方法におけるＲＳ−２３２Ｃ割り込みのフローチャートである。
【図１２】  本発明の一実施の形態に係るシリアル通信方法におけるボーレート設定に関するサブルーチンのフローチャートである。
【図１３】  図２に示したプリンタ側のシリアルインターフェイスの動作を説明するためのフローチャートである。
【符号の説明】
１  パーソナルコンピュータ
２  プリンタ
３  シリアルケーブル
１１  バス
１２  ＣＰＵ
１６  ＲＡＭ
１７  ハードディスク
１８  シリアルインターフェイス
１９  ＲＳ−２３２Ｃドライバ回路
２１  バス
２２  ＣＰＵ
２３  出力インターフェイス
２４  機構部制御回路
２５  機構部
２６  ＲＡＭ
２７  ＲＯＭ
２８  シリアルインターフェイス
２９  ＲＳ−２３２Ｃドライバ回路
【図１】
0003994583.tif 000002
【図２】
0003994583.tif 000003
【図３】
0003994583.tif 000004
【図４】
0003994583.tif 000005
【図５】
0003994583.tif 000006
【図６】
0003994583.tif 000007
【図７】
0003994583.tif 000008
【図８】
0003994583.tif 000009
【図９】
0003994583.tif 000010
【図１０】
0003994583.tif 000011
【図１１】
0003994583.tif 000012
【図１２】
0003994583.tif 000013
【図１３】
0003994583.tif 000014