(57)【特許請求の範囲】
【請求項１】
調歩同期でシリアル通信によりデータを受信する受信装置であって、 
前記データを所定の周期で受信する受信手段と、
記憶手段と、
前記受信手段によって１つ前の周期と同じデータが受信された場合に、更新される受信カウンタと、
前記受信カウンタの値が第１の値に達した場合には、前記受信手段によって受信されたデータを前記記憶手段に格納し、前記受信手段によって受信されたデータが１つ前の周期に受信されたデータと異なる場合には、前記１つ前の周期に受信されたデータを前記記憶手段に格納するよう制御する記憶制御手段と、
前記受信手段によって受信されたデータが１つ前の周期に受信されたデータと異なる場合には、前記受信カウンタに前記第１の値と異なる第２の値を設定する設定手段とを有することを特徴とする受信装置。
【請求項２】
送信装置は、前記受信手段がデータを受信する周期より大きい周期で、前記受信装置に対してデータを送信することを特徴とする請求項１に記載の受信装置。
【請求項３】
前記設定手段は、前記受信カウンタの値が前記第１の値に達した場合には、前記受信カウンタに初期値を設定することを特徴とする請求項１に記載の受信装置。
【請求項４】
前記記憶制御手段が前記記憶手段に同じ値が格納するよう制御する場合に、更新されるデータカウンタをさらに有し、
前記データカウンタの値が第３の値に達すれば、前記記憶制御手段は、前記記憶手段へのデータを格納しないことを特徴とする請求項１に記載の受信装置。
【請求項５】
前記受信手段は、１ビットの単位でデータを受信し、
前記受信手段は、２ビットのシフトレジスタを有することを特徴とする請求項１に記載の受信装置。
【請求項６】
調歩同期でシリアル通信によりデータを受信する受信装置であって、 
前記データの１ビットを所定の周期で受信する受信手段と、
記憶手段と、
前記受信手段によって受信された１ビットのデータが、１つ前の周期で受信した１ビットのデータと同じ値である場合に、更新される受信カウンタと、
前記受信カウンタの値が第１の値に達した場合には、前記受信手段によって受信された１ビットのデータを前記記憶手段に格納し、前記受信手段によって受信された１ビットのデータが１つ前の周期に受信されたデータと異なる場合には、前記１つ前の周期に受信された１ビットのデータを前記記憶手段に格納するよう制御する記憶制御手段と、
前記記憶手段に同じ値の１ビットのデータが格納される場合に、更新されるカウンタとを有し、
前記カウンタの値が第３の値に達すれば、前記記憶制御手段は、前記記憶手段へのデータを格納しないよう制御することを特徴とする受信装置。
【請求項７】
請求項６に記載の受信装置に調歩同期のシリアル通信によりデータを送信する送信装置であって、
データを生成する生成手段と、
前記生成手段により生成されたデータにおいて、１ビットのデータがすぐ前に生成された１ビットのデータと同じであれば、ビット数をインクリメントし、該インクリメントされたビット数が予め定められた条件を満たしたならば、前記１ビットのデータと同じでないビットデータをダミービットのデータとして付加する付加手段と、
前記生成手段により生成されたデータ或いは前記付加手段により付加されたダミービットのデータを、前記所定の周期とは別の所定の周期で送信する送信手段とを有し、
前記別の所定の周期の最大周期（Ｔ）と前記所定の周期（ＳＣＬＫ）の間には、ＳＣＬＫ＝Ｔ／ｎ（ｎは３以上の自然数）の関係があり、
前記予め定められた条件は、前記ダミービットのデータを付加する条件となるビット数（ｍ）がｍ≦ｎ−１であることを特徴とする送信装置。
【請求項８】
請求項６に記載の受信装置と請求項７に記載の送信装置とを含むシリアル通信装置。
【請求項９】
請求項８に記載のシリアル通信装置を含む記録装置であって、
前記シリアル通信装置に含まれる送信装置は、ユーザが前記記録装置を操作する操作部に設けられ、
前記シリアル通信装置に含まれる受信装置は、前記ユーザによる指示を前記操作部から受信し、前記記録装置の動作を制御する制御部に設けられることを特徴とする記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、調歩同期式を採用した送信装置、受信装置、シリアル通信装置、その装置を備えた記録装置に関する。
【背景技術】
【０００２】
従来より、調歩同期式を採用したシリアル通信では、送信側の送信クロックと受信側の受信クロックの間に周波数偏差があるため、例えば、特許文献１に示される方法によってデータの受信をより確実なものにするとともに、通信の同期補正を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３３６１９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら上記従来例は、通信クロックより速い周波数のサンプリングクロックによって受信データをサンプリングし、１ビット長分のサンプリング結果から、“０”又は“１”の成分の多い方を受信データと判定している。このため、原理上、周波数偏差によって生じた誤差は、後続のビットに累積されていってしまう。つまり後続のビットほど、サンプリング結果に含まれる誤差の割合が増えていってしまうことになる。
【０００５】
そのため、１つの通信単位（例えば、スタートビット／データ／パリティビット／ストップビットで構成された単位など）を１フレームと定義した時、１フレーム受信中に１／２ビット長以上の誤差が累積された場合は正しく受信できないと言う課題があった。
【０００６】
図１５は調歩同期シリアル通信における１フレームの構成を示す図である。
【０００７】
図１５に示すように１フレームを、ＳＴＡＲＴビット（１ビット）、データ（８ビット）、パリティビット（１ビット）、ＳＴＯＰビット（１ビット）と定義しているので、±５％未満の偏差までしか正しく受信することができない。さらに、１フレーム中のデータのビット数が増えれば、当然許容される偏差はさらに小さくなってしまう。
【０００８】
また、ＥＭＩ（電磁雑音）対策として、ＳＳＣＧ（スペクトラム拡散クロックジェネレータ）技術によって、送信クロックに揺らぎを持たせて送信信号から発生する放射ノイズの低減を図ることも提案されている。しかしながら、その場合にも前記の許容可能な偏差の制約によってあまりクロックを揺らすことが出来ないため、十分なノイズ低減効果が得られない。
【０００９】
本発明は上記従来例に鑑みてなされたもので、１フレーム中のデータビット数に制限がなく送信と受信クロックの間の大きな周波数偏差にも対応可能な送信装置、受信装置、通信装置、及び、その装置を用いた記録装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の受信装置は次のような構成からなる。
【００１１】
即ち、調歩同期でシリアル通信によりデータを受信する受信装置であって、 前記データを所定の周期で受信する受信手段と、記憶手段と、前記受信手段によって１つ前の周期と同じデータが受信された場合に、更新される受信カウンタと、前記受信カウンタの値が第１の値に達した場合には、前記受信手段によって受信されたデータを前記記憶手段に格納し、前記受信手段によって受信されたデータが１つ前の周期に受信されたデータと異なる場合には、前記１つ前の周期に受信されたデータを前記記憶手段に格納するよう制御する記憶制御手段と、前記受信手段によって受信されたデータが１つ前の周期に受信されたデータと異なる場合には、前記受信カウンタに前記第１の値と異なる第２の値を設定する設定手段とを有することを特徴とする。
【００１２】
本発明を別の側面から見れば、調歩同期でシリアル通信によりデータを受信する受信装置であって、 前記データの１ビットを所定の周期で受信する受信手段と、記憶手段と、前記受信手段によって受信された１ビットのデータが、１つ前の周期で受信した１ビットのデータと同じ値である場合に、更新される受信カウンタと、前記受信カウンタの値が第１の値に達した場合には、前記受信手段によって受信された１ビットのデータを前記記憶手段に格納し、前記受信手段によって受信された１ビットのデータが１つ前の周期に受信されたデータと異なる場合には、前記１つ前の周期に受信された１ビットのデータを前記記憶手段に格納するよう制御する記憶制御手段と、前記記憶手段に同じ値の１ビットのデータが格納される場合に、更新されるカウンタとを有し、前記カウンタの値が第３の値に達すれば、前記記憶制御手段は、前記記憶手段へのデータを格納しないよう制御することを特徴とする受信装置を備えても良い。
【００１３】
本発明をさらに別の側面から見れば、上記構成の受信装置に調歩同期のシリアル通信によりデータを送信する送信装置であって、データを生成する生成手段と、前記生成手段により生成されたデータにおいて、１ビットのデータがすぐ前に生成された１ビットのデータと同じであれば、ビット数をインクリメントし、該インクリメントされたビット数が予め定められた条件を満たしたならば、前記１ビットのデータと同じでないビットデータをダミービットのデータとして付加する付加手段と、前記生成手段により生成されたデータ或いは前記付加手段により付加されたダミービットのデータを、前記所定の周期とは別の所定の周期で送信する送信手段とを有し、前記別の所定の周期の最大周期（Ｔ）と前記所定の周期（ＳＣＬＫ）の間には、ＳＣＬＫ＝Ｔ／ｎ（ｎは３以上の自然数）の関係があり、前記予め定められた条件は、前記ダミービットのデータを付加する条件となるビット数（ｍ）がｍ≦ｎ−１であることを特徴とする送信装置を備える。
【００１４】
本発明をまたさらに別の側面から見れば、上記受信装置と上記送信装置とを有するシリアル通信装置を備える。
【００１５】
本発明をまたさらに別の側面から見れば、上記のシリアル通信装置を含む記録装置であって、前記シリアル通信装置に含まれる送信装置は、ユーザが前記記録装置を操作する操作部に設けられ、前記シリアル通信装置に含まれる受信装置は、前記ユーザによる指示を前記操作部から受信し、前記記録装置の動作を制御する制御部に設けられることを特徴とする記録装置を備える。
【発明の効果】
【００１６】
従って本発明によれば、１フレーム中のデータのビット数に関係なく、受信側の１ビット分のサンプリングクロック周期を基準と考えれば相対的に送信クロックの周期が最大で、例えば、０〜−３３％変動しても正確に通信できるという効果がある。
【図面の簡単な説明】
【００１７】
【図１】本発明の代表的な実施例であるインクジェット記録装置の要部の斜視図である。
【図２】記録装置１００における制御回路の構成を示すブロック図である。
【図３】本発明の特徴を強調した記録装置の構成を示すブロック図である。
【図４】調歩同期送信部２５０と調歩同期受信部２４０の構成とその接続形態を示すブロック図である。
【図５】調歩同期受信器２４３の詳細な構成を示すブロック図である。
【図６】図５に示した調歩同期受信器のさらに詳細な構成を示すブロック図である。
【図７】図６に示す調歩同期受信器の動作を示すフローチャートである。
【図８】図６に示す調歩同期受信器の動作を説明する図である。
【図９】調歩同期受信器の別の実施例を示すブロック図である。
【図１０】図９に示す構成の調歩同期受信器の動作を示すフローチャートである。
【図１１】図９に示す調歩同期受信器の動作を説明する図である。
【図１２】調歩同期送信器２５３の詳細な構成を示すブロック図である。
【図１３】調歩同期送信器の動作を示すフローチャートである。
【図１４】具体的な調歩同期シリアル通信の例を示す図である。
【図１５】調歩同期シリアル通信における１フレームの構成を示す図である。
【発明を実施するための形態】
【００１８】
以下に、図面を参照しながら本発明の実施例について詳細に説明する
なお、この明細書において、「記録」（以下、「プリント」とも称する）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、広く記録媒体上に画像、模様、パターン等を形成する、又は媒体の加工を行う場合も表すものとする。また、人間が視覚で知覚し得るように顕在化したものであるか否かを問わない。
【００１９】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００２０】
また、「インク」とは、上記「記録」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成又は記録媒体の加工、或いはインクの処理に供され得る液体を表すものとする。インクの処理としては、例えば記録媒体に付与されるインク中の色剤の凝固又は不溶化させることが挙げられる。
【００２１】
またさらに、「記録素子」（「ノズル」という場合もある）とは、特にことわらない限りインク吐出口乃至これに連通する液路及びインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【００２２】
［記録装置の構成］
図１は本発明の代表的な実施例であるインクジェット記録装置（以下、記録装置）の要部の斜視図である。
【００２３】
図１において、１０は４つのインクカートリッジであり、それらはインクタンクと複数の記録素子が集積配列されたインクジェット記録ヘッド（以下、記録ヘッド）１１とより構成されている。それらのインクタンクには、ブラック（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）のインクが収容される。記録ヘッド１１は、インクタンクと別体に構成されるものであってもよい。記録ヘッド１１が備える記録素子は、インク吐出口と、それに対応する吐出エネルギー発生素子とを含み、その吐出エネルギー発生素子としては、ヒータ（発熱抵抗素子）やピエゾ素子などが用いられる。以下においては、このようなインク吐出口と吐出エネルギー発生素子とを含む部分を「ノズル」ともいう。
【００２４】
搬送ローラ１０３は補助ローラ１０４と共に記録紙（記録媒体）Ｐを抑えながら矢印方向に回転することにより、記録媒体Ｐを矢印Ｙ方向（副走査方向）に間欠的に搬送する。給紙ローラ１０５により記録媒体Ｐの給紙が行われると共に、搬送ローラ１０３および１０４と同様に、記録媒体Ｐを抑える役割も果たす。１０６は、４つのインクカートリッジ１０はキャリッジで１０６に搭載され、矢印Ｘ方向（主走査方向）に往復移動する。以下、−Ｘの方向を往路方向Ｘ１、＋Ｘの方向を復路方向Ｘ２という。主走査方向と副走査方向は互いに交差し、この実施例の場合は、互いに直交する。キャリッジ１０６は、記録を行っていないとき、あるいは記録ヘッド１１の回復処理などを行うときには、図中点線の位置のホームポジション（ｈ）に移動して待機する。
【００２５】
［記録装置の制御構成概要］
図２は、記録装置１００における制御回路の構成を示すブロック図である。記録装置１００において、２０１はＣＰＵ、２０２はＣＰＵ２０１が実行する制御プログラムを格納するＲＯＭである。ホスト２００から受信したラスタ単位の画像データは、まず受信バッファ２０３に格納される。受信バッファ２０３に格納された画像データは、ホスト２００からの送信データ量を減らす為に、圧縮されている。このため、ＣＰＵ２０１或いは不図示の圧縮データ展開用回路により画像データの展開が行われ、記録バッファ２０４に格納される。記録バッファ２０４は、例えばＤＲＡＭである。記録バッファ２０４に格納されるデータの形式は、ラスタ形式のデータである。記録バッファ２０４の容量は、１回の走査で記録する幅に対応したラスタ数のデータを格納できる容量を備えている。
【００２６】
記録バッファ２０４に格納された画像データは、ＨＶ変換回路２０５によってＨＶ変換処理が行われ、ＡＳＩＣ２０６に備えられた、例えば、ＳＲＡＭのノズルバッファ（不図示）に格納される。即ち、ノズルバッファにはカラム形式のデータが格納される。このデータの形式は、ノズルの配置に対応している。なお、記録装置１００にはユーザが種々の操作を行なうためのキーや記録装置の状態を表示するＬＥＤランプ、ＬＣＤなどからなる操作部が備えられている。
【００２７】
図３は本発明の特徴を強調した記録装置の構成を示すブロック図である。
【００２８】
図３に示されるように、記録装置１００は機能的には、記録装置を操作する操作部２１０と、記録装置全体を制御するメイン制御部２２０と、記録を行う記録部２３０とに分けられる。メイン制御部２２０には調歩同期受信部２４０を内蔵し、操作部２１０には調歩同期送信部２５０を内蔵し、ユーザのキー操作によるキー入力情報をデータ化してメイン制御部に調歩同期式シリアル通信方式に従って送信する。
【００２９】
図３からも分かるように、操作部２１０とメイン制御部２２０とは調歩同期式シリアル通信に従って接続されている。なお、この例では、記録装置の操作部２１０とメイン制御部２２０との間の通信に調歩同期シリアル通信方式を用いたが、本発明の適用はこれに限定されるものではない。例えば、スキャナ部を備えた多機能プリンタ装置（ＭＦＰ）であれば、スキャナ部が読み取った画像データをメイン制御部に送信する際の通信に用いてもよい。
【００３０】
図４は調歩同期送信部２５０と調歩同期受信部２４０の構成とその接続形態を示すブロック図である。
【００３１】
図４に示されるように、調歩同期送信部２５０は、送信クロック（ＴＣＬＫ）を生成するクロック生成部２５１と、そのクロック信号によって同期してデータを送信する調歩同期送信器２５３とから構成される。一方、調歩同期受信部２４０は、サンプリングクロック（ＳＣＬＫ）を生成するサンプルクロック生成部２４１と、そのクロック信号によって送信されるデータをサンプリングして受信する調歩同期受信器２４３とから構成される。
【００３２】
図５は調歩同期受信器２４３の詳細な構成を示すブロック図である。
【００３３】
図５が示すように、データ受信部２１１は調歩同期送信器２５３から送られてくる信号（以下、受信信号）をサンプリングクロック（ＳＣＬＫ）によってサンプリングし、その結果をデータ制御部２２１に転送する。データ制御部２２１は受け取ったサンプルデータを解析し、有効な受信データと判定すると受信レジスタ２３１の該当するビット位置に受信データを書き込むことで受信を行う。
【００３４】
図６は、図５に示した調歩同期受信器２４３のさらに詳細な構成を示すブロック図である。
【００３５】
図６に示すように、データ受信部２１１は受信データを一時的に格納する２ビットのシフトレジスタ２１２を含み、受信信号をサンプリングする毎にサンプルデータを、レジスタ内のアドレスｄからアドレスｄ−１にシフトしてゆく。従って、アドレスｄにはサンプリングした最新データが、アドレスｄ−１には１クロック前にサンプリングしたデータが格納される。サンプル制御部２２２は、サンプリングカウント数や連続するデータ数などの条件によって、シフトレジスタ２１２に保持されているサンプルデータから有効なデータを受信レジスタ２３１に出力させる。サンプリングカウント数は、サンプルカウンタ２２４に保持される。サンプルカウンタ２２４は、別の表現をすれば受信カウンタである。
【００３６】
データ制御部２２１に備えられたセレクタ２２３では、サンプル制御部２２２の指示に応じて、アドレスｄに保持されているデータまたはアドレスｄ−１に保持されているデータを受信レジスタ２３１に出力する。このとき、サンプルカウンタ２２４は、サンプリングクロック（ＳＣＬＫ）のパルスを所定数カウントするとサンプル制御部２２２に通知する。
【００３７】
まず、この実施例に従うシリアル通信の基本動作について説明する。なお、調歩同期送信器を含む装置を送信装置、調歩同期受信器を含む装置を受信装置という。そして、その送信装置とその受信装置とを含む装置をシリアル通信装置という。
【００３８】
調歩同期送信器２５３の送信クロック（ＴＣＬＫ）の最大周期をＴとすると、Ｔ／ｎ（ｎは３以上の自然数で第１の値ともいう）の関係となるように調歩同期受信器２４３のサンプリングクロック（ＳＣＬＫ）を設定する。送信クロック１の周期を最大周期Ｔとし、送信クロック２を送信クロック１の周期の−２５％とする。
【００３９】
送信クロック（ＴＣＬＫ）とサンプリングクロック（ＳＣＬＫ）に偏差がない場合、つまりサンプリングクロックをｎ回カウントした時間が必ずＴになる場合は、受信信号をサンプリングクロック（ＳＣＬＫ）によってサンプリングする。そして、サンプリングクロックをｎ回カウントする毎に、シフトレジスタ２１２のｄのデータを受信レジスタの該当するビット位置に記憶し、サンプルカウンタ２２４のカウント値をリセットする。
【００４０】
次に、送信クロック（ＴＣＬＫ）とサンプリングクロック（ＳＣＬＫ）に偏差がある場合（例えば、サンプリングクロックをｎ回カウントした時間とＴの間に誤差がある）やサンプリングクロックを基準にしたときにＴが変動する場合の動作について説明する。
【００４１】
図７は、調歩同期受信器２４３が行う処理を示すフローチャートである。このフローチャートに沿って調歩同期受信器２４３の動作の詳細を説明する。ここで、ｎ＝４である。
【００４２】
信号受信に先立ち、ステップＳ１ではサンプルカウンタ２２４のカウント値をリセットする（０をセットする）。ステップＳ２では受信信号のサンプリングを開始し、サンプリングする毎にシフトレジスタ２１２に入力する。サンプル制御部２２２はサンプリングしたデータ（アドレスｄに入力されたデータ）を監視して、ステップＳ３でデータが反転したかどうかを検査する。つまり、アドレスｄのデータ≠アドレスｄ−１のデータかどうかを調べる。ここで、データが反転していなければ（同じ値であれば）、処理はステップＳ４に進み、サンプルカウンタ２２４のカウント値（ＳＣＮＴ）を“＋１”インクリメントする。
【００４３】
次に、ステップＳ５ではサンプルカウンタ２２４のカウント値がｎと等しいかどうかを調べる。ここで、ＳＣＮＴ≠ｎであれば、処理はステップＳ２に戻り、次のデータサンプリングを行なう。これに対して、ＳＣＮＴ＝ｎであれば、１ビット分のデータを受信したことになり、処理はステップＳ６に進む。そして、サンプル制御部２２２からの指示によりセレクタ２２３を通じてアドレスｄに保持されているデータを受信レジスタ２３１の該当するビット位置に記憶するよう記憶制御する。続いて、ステップＳ７ではサンプルカウンタ２２４のカウント値をリセットする（初期値０をセットする）。その後、処理はステップＳ２に戻り、次のデータサンプリングを行なう。
【００４４】
また、ステップＳ３において、データが反転していたと判断された場合は、処理はステップＳ１１に進み、サンプルカウンタ２２４のカウント値（ＳＣＮＴ）が“０”か否かを確認する。ここで、ＳＣＮＴ＝０であれば、ｎ回のサンプリング途中のデータ反転ではないので、処理はステップＳ１２に進み、サンプルカウンタ２２４のカウント値を“＋１”インクリメントする。その後、処理はステップＳ２に戻り、次のデータサンプリングを行なう。これに対して、ＳＣＮＴ≠０であれば、処理はステップＳ１３に進む。
【００４５】
ステップＳ１３では、シフトレジスタ２１２のアドレスｄ−１に保持されているデータを、サンプル制御部２２２からの指示によりセレクタ２２３を通じて受信レジスタ２３１の該当するビット位置に記憶させるよう記憶制御する。
【００４６】
次に、ステップＳ１４でサンプルカウンタ２２４に初期値の次の値である“１”をセットする。これは第２の値ともいう。このように、サンプルカウンタ２２４にデータを予め定めた値をセットすることにより、サンプリングタイミングの再同期をとる。その後、処理はステップＳ２に戻り、次のデータサンプリングを行なう。
【００４７】
図８は図７に示すフローチャートで動作する調歩同期受信器２４３の動作を説明する図である。図８は、図７に示すフローチャートにおいてｎ＝４の場合の処理を示している。つまり、送信クロック１の４分の１の周期のサンプリングクロックで、同じデータを４回サンプリングすると、これを有効データとして受信レジスタに記憶する。
【００４８】
調歩同期送信器２５３は、最長周期Ｔの送信クロック１でなく、周期が−２５％である送信クロック２で送信している。このため、送信クロック１を想定した受信クロックで動作しているために、調歩同期受信器２４３は、実際には、１ビットの時間的な長さが、サンプリングクロック３回分の長さしかない。
【００４９】
図８では、受信クロックの立下りエッジを基準にデータがシフトレジスタに入力されることを表している。例えば、受信クロックの最初の立下りエッジでアドレスｄに“０”が入力される。受信クロックの２つ目の立下りエッジでアドレスｄに保持されたデータはアドレスｄ−１にセットされ、アドレスｄに“０”が入力される。また、受信クロックの７つ目の立下りエッジで、アドレスｄに“１”が入力される。
【００５０】
図８は、図７のステップＳ３の判定結果（ＹＥＳかＮＯか）、サンプルカウンタ（受信カウンタ）２２４に値を設定する様子や、図７のステップＳ４でのサンプルカウンタ２２４の値の更新や、図７のステップＳ７、Ｓ１２、Ｓ１４での設定を示している。更に図８は、受信レジスタへデータを格納する様子を示している。例えば、ステップＳ４でサンプルカウンタ２２４がカウントアップされ、サンプルカウンタ２２４の値が所定の値（ｎ＝４）となる。このため、ステップＳ５の判定でＹＥＳと判定され、ステップＳ６の処理が行われる。図８はまた、図７のステップＳ６で、シフトレジスタ２１２のアドレスｄに保持されたデータ“０”（斜線で示した）が、受信レジスタの１ビット目に格納されることを示している。
【００５１】
また、図８には、図７のステップＳ３でデータが反転したと判定した結果（ＹＥＳの判定）、図７のステップＳ１３でアドレスｄ−１に保持されたデータ“０”（斜線で示した）が受信レジスタの２ビット目に格納されることを示している。そして、ステップＳ１４で、データのサンプリングの再同期を行うために、初期値“０”の次の値である“１”をサンプルカウンタ２２４にセットしていることを示している。
【００５２】
以上のような構成により、送信クロック（ＴＣＬＫ）とサンプリングクロック（ＳＣＬＫ）に偏差がある場合でも、適切にデータを受信することができる。
【００５３】
しかしながら、送信クロック（ＴＣＬＫ）とサンプリングクロック（ＳＣＬＫ）に偏差が大きい場合やデータのビット数が大きい場合には、適切にデータを受信することができない場合がある、そこで、以下に別の実施例を説明する。
【００５４】
この実施例では、調歩同期送信器２５３は、調歩同期受信器２４３に送信するデータに予め定めた規則に従ってダミーデータを付加し、このデータを調歩同期受信器２４３へ送信する。具体的には、ｎに対して、ｍ≦（ｎ−１）となるように、ダミービットの挿入条件ｍを決定する。ここで、ｍとはダミービットが挿入されるビット間隔である。
【００５５】
調歩同期送信器２５３は、同じデータがｍ個連続した場合に、反転したダミーデータ１ビットをデータ列に挿入し（例えば、“１”がｍ個連続したら、“０”をダミービットとしてデータ列に挿入する）。つまり、調歩同期送信器２５３は、同じデータがｍ個連続した場合に、このデータと異なる値をダミーデータ１ビットとしてデータ列に付加する。一方、調歩同期受信器２４３は、同じデータがｍ個連続した後に続く、反転したデータ１ビットは無効データとして破棄する（例えば、“１”がｍ個連続した後に続く、“０”はダミービットとして無効とする。このようなことを調歩同期送受信器間の通信プロトコルとして取り決める。なお、ｍの決め方は送信クロックとサンプリングクロックの間の偏差とサンプリング数ｎによって決まるので後述する。この場合の調歩同期受信器の構成と動作の概要は次のようになる。
【００５６】
調歩同期受信器２４３は、図９に示すように、図７の構成にデータカウンタ２２５を追加された構成である。調歩同期受信器２４３は、前記の周波数誤差が無い場合と同様に、受信信号をサンプリングクロック（ＳＣＬＫ）をｎ回カウントするごとにシフトレジスタ２１２のアドレスｄのデータを受信レジスタ２３１の該当するビット位置に記憶してゆく。もし、１ビット分のサンプリングの途中、つまりｎ回のサンプリングの途中にデータの反転があった場合は、１クロック前のデータ、つまりシフトレジスタ２１２のアドレス（ｄ−１）のデータを受信レジスタ２３１の該当するビット位置に記憶する。そして、これと同時にサンプルカウンタ２２４を１にセットする。この動作によって、受信データが反転する毎に、サンプリングタイミングの再同期をとることができる。また、同じデータがｍ個連続した後のデータ反転だった場合は、その反転したデータはダミービットと判定して無効データとする。調歩同期受信器２４３は、この無効データは受信レジスタ２３１に格納しない。
【００５７】
要するに、調歩同期受信器では反転データを検出する毎にサンプリングタイミングの再同期をとれるよう動作する。一方、同じデータが何ビットも連続してしまうと再同期をとることができずにデータを取りこぼしてしまうため、同じデータがｍビット連続した場合ダミービットを挿入して再同期をとれるようにしている。
【００５８】
図１０はシリアル通信方法の受信側の処理を示すフローチャートである。
【００５９】
ここで、このフローチャートに沿って調歩同期受信器の動作の詳細を説明する。
【００６０】
信号受信に先立ち、ステップＳ１０１ではサンプルカウンタ（受信カウンタ）２２４及びデータカウンタ２２５のカウント値をリセットする。ステップＳ１０２では受信信号のサンプリングを開始し、サンプリングする毎にシフトレジスタ２１２に入力する。サンプル制御部２２２はサンプリングしたデータ（シフトレジスタのｄのデータ）を監視して、ステップＳ１０３でデータが反転したかどうかを（つまり、ｄ≠ｄ−１か？）検査する。ここで、反転していなければ、処理はステップＳ１０４に進み、サンプルカウンタ２２４のカウント値（ＳＣＮＴ）を“＋１”インクリメントする。
【００６１】
次に、ステップＳ１０５ではサンプルカウンタ２２４のカウント値がｎと等しいかを調べる。ここで、ＳＣＮＴ≠ｎであれば、処理はステップＳ１０２に戻り、次のデータサンプリングを行なう。これに対して、ＳＣＮＴ＝ｎであれば、１ビット分のデータを受信したことになり、処理はステップＳ１０６に進み、データカウンタ２２５のカウント値（ＤＣＮＴ）がｍ（第３の値）と等しいかを調べる。ここで、ＤＣＮＴ≠ｍであれば、有効なデータであるので、処理はステップＳ１０７に進み、サンプル制御部２２２からの指示によりセレクタ２２３を通じてｄのデータを受信レジスタ２３１の該当するビット位置に記憶するよう記憶制御する。続いてステップＳ１０８でデータカウンタ２２５のカウント値を“＋１”インクリメントし、ステップＳ１０９でサンプルカウンタ２２４のカウント値をリセットする。その後、処理はステップＳ１０２に戻り、次のデータサンプリングを行なう。
【００６２】
さて、ステップＳ１０６において、ＤＣＮＴ＝ｍである場合は、受信したデータはダミーデータであり無効なデータであるので、受信レジスタ２３１にはこれを記憶せずに、処理はステップＳ１１０においてデータカウンタ２２５に“１”をセットする。その後、処理はステップＳ１０９でサンプルカウンタ２２４のカウント値のリセットを行い、ステップＳ１０２に戻り、次のデータサンプリングを行なう。
【００６３】
また、ステップＳ１０３において、データが反転していたと判断された場合は、処理はステップＳ１１１でサンプルカウンタ２２４のカウント値が“０”か否かを確認する。ここで、ＳＣＮＴ＝０であれば、ｎ回のサンプリング途中のデータ反転ではないので、処理はステップＳ１１２でサンプルカウンタ２２４のカウント値を“＋１”インクリメントし、その後、処理はステップＳ１０２に戻り。次のデータサンプリングを行なう。これに対して、ＳＣＮＴ≠０であれば、処理はステップＳ１１３に進み、データカウンタ２２５のカウント値がｍと等しいかどうか、つまり同じデータがｍ個連続した後のダミービットなのか否かを確認する。
【００６４】
ここで、ＤＣＮＴ≠ｍであれば、処理はステップＳ１１４に進む。そして、１クロック前にサンプリングしたデータ、つまりシフトレジスタ２１２のアドレス（ｄ−１）のデータを、サンプル制御部２２２からの指示によりセレクタ２２３を通じて受信レジスタ２３１の該当するビット位置に記憶させるよう記憶制御する。さらにステップＳ１１５でデータカウンタ２２５のカウント値を“＋１”インクリメントする。
【００６５】
次に、ステップＳ１１６でサンプルカウンタ２２４に“１”をセットすることによりサンプリングタイミングの再同期をとる。その後、処理はステップＳ１０２に戻り、次のデータサンプリングを行なう。なお、ステップＳ１１３でＤＣＮＴ＝ｍであった場合は、直前のサンプリングデータはダミービットであるので、データの記憶は行わずに、ステップＳ１１７において、データカウンタ２２５のカウント値をリセットする。さらに、ステップＳ１１６ではサンプルカウンタ２２４に“１”をセットしてサンプリングタイミングの再同期をとり、その後、処理はステップＳ１０２に戻り、次のデータサンプリングを行なう。
【００６６】
図１１は、図１０に示すフローチャートに従って動作する調歩同期受信器２４３の動作を説明する図である。なお、説明を簡単にするために、図８と同様に、送信クロック２に従って調歩同期送信器２５３から出力された６ビットのデータ“０００１１０”を受信クロックに従って受信することを示す。図１１には、図８と同様にシフトレジスタに入力されるデータの値、サンプルカウンタの値が更新される様子が示されている。図１１には更に、データカウンタの値が更新される様子が示されている。図１１には、図１０のステップＳ１０８、Ｓ１１０、Ｓ１１５でデータカウンタの値が更新されることが示されている。
【００６７】
次に調歩同期シリアル通信の送信側の処理について説明する。
【００６８】
図１２は調歩同期送信器２５３の詳細な構成を示すブロック図である。
【００６９】
図１２に示すように、送信データ生成部２６１は、送信したいデータに対して必要に応じてダミービットを付加して送信データを生成し、送信レジスタ２６２に記憶させる。データ送信部２６３は、送信レジスタ２６２に記憶された送信データを読出し、クロック生成部２５１が生成する送信クロック（ＴＣＬＫ）に同期して送信する。
【００７０】
図１３は調歩同期送信器の動作を示すフローチャートである。
【００７１】
ここで、そのフローチャートに沿って送信側の処理について説明する。
【００７２】
まず、スタートビットは必ず“０”なので、ステップＳ２０１でデータカウンタ（不図示）に“１”をセットする。次に、ステップＳ２０２で送信したいデータを１ビット、送信レジスタ２６２に記憶させるとともに、ステップＳ２０３で１クロック前のビットデータと比較する。即ち、データ反転が生じているかどうかを検査する。
【００７３】
ここで、データが前のビットと同じであれば、処理はステップ２０４に進んでデータカウンタのカウント値（ＴＤＣＮＴ）を“＋１”インクリメントし、さらにステップＳ２０５でそのカウント値がｍと等しいかを比較する。ここで、ＴＤＣＮＴ≠ｍであれば、処理はステップＳ２０２に戻って、次のビットを送信レジスタ２６２に記憶させる。
【００７４】
これに対して、ＴＤＣＮＴ＝ｍである場合は、処理はステップＳ２０６に進んで反転データ（例えば、ステップＳ２０２で記憶したデータが“０”だった場合は“１”）をダミーデータとして送信レジスタ２６２に記憶する。そして、ステップＳ２０７でデータカウンタに“１”をセットし、処理はステップＳ２０２に戻る。
【００７５】
さて、ステップＳ２０３において、データが前のビットから反転していたと判断された場合、処理はステップＳ２０７に進んでデータカウンタに“１”をセットし、その後、処理はステップＳ２０２に戻り、次のビットを送信レジスタ２６２に記憶する。
【００７６】
以上の処理を繰り返すことでデータの送信を行う。
【００７７】
次に、ダミービットの挿入条件ｍの決め方について説明する。
【００７８】
対象となる通信システムに於いて、同じデータが連続し得るビット数分の伝送時間の最大値（即ち、最大周期Ｔで送信したとき）と最小値（即ち、送信クロックの周期が最小値で変動したときの伝送時間）の差分を最大周期Ｔから差し引いた値（ＴＳ）を調べる。つまり、ＴＳ＜Ｔ／ｎである場合、ｍ≦ｎ−１の条件でダミービットの挿入が必要となる。
【００７９】
説明を簡単のために数式で説明すると、送信クロック（ＴＣＬＫ）の周期の変動量が−Ａ％、同じデータが連続し得るビット数がＣであった場合、Ｃビット分の伝送時間の最大値と最小値の差分をΔｄとすると、Δｄは次のように表わされる。即ち、
Δｄ＝Ｃ×Ｔ−Ｃ×Ｔ（１−Ａ／１００）
と表わされる。
【００８０】
ここで、ＴＳ＝（Ｔ−Δｄ）＜Ｔ／ｎである場合、ダミービットの挿入が必要となる。
【００８１】
図１４は具体的な調歩同期シリアル通信の例を示す図である。この例ではダミービットの挿入条件をｍ＝３としている。図１４において、（ａ）は調歩同期送信器側の動作を示しており、（ｂ）は調歩同期受信器側の動作を示している。
【００８２】
まず、送信側に動作を説明する。
【００８３】
図１４（ａ）の一番上に調歩同期送信器が送りたいデータを示し、その下がダミービットの挿入条件ｍ＝３に従ってダミービットを付加した、実際に送信されるデータ列を示している。この例では、送信器が送りたいデータは、Ｓｔａｒｔビット等のオーバーヘッドビットを含めて“０００１１１１０１００”であるが、ｍ＝３としているので、実際に送信されるデータは“０００１１１０１１０１００”となる。その下はデータ送信部２６３から送信される送信信号と送信クロック（ＴＣＬＫ）を示していて、送信データが送信クロック（ＴＣＬＫ）に同期して送信される様子を示している。
【００８４】
次に、受信器側の動作を説明する。
【００８５】
図１４（ｂ）には、送信クロックの最大周期Ｔに対して、２５％少ない周期の送信クロック（周波数としては１．３３倍）で送信された場合を示しており、受信器のサンプル数をｎ＝４としている。図１４（ｂ）の一番上の矢印がサンプリングタイミングを示しており、その上の数字がサンプリング時のサンプルカウンタのカウンタ値を示している。次が参考のために最長周期Ｔの場合の１フレームのデータ列の長さを示していて、その下が実際に通信ラインを転送された受信信号を示している。
【００８６】
当然ながらこの受信信号は、図１４（ａ）に示している送信器にとっての送信信号と同じものである。さらにその下が、その受信信号をサンプリング制御して受信レジスタ２３１に記憶された受信データを示している。
【００８７】
この図を参照して再度受信動作の概要を説明すると、図中のタイミングＡでｎ＝４となるので、その時サンプリングした“０”のデータを受信レジスタ２３１の１ビット目の位置に記憶する。タイミングＢも同様にｎ＝４となるので、その時サンプリングした“０”のデータを受信レジスタ２３１の２ビット目の位置に記憶する。タイミングＣでサンプリングしたデータが反転したので（図１０のステップＳ１０３におけるＹＥＳの判定）、１クロック前にサンプリングした“０”のデータを受信レジスタの３ビット目の位置に記憶する（図１０のステップＳ１１４）。これとともに、サンプルカウンタのカウント値を“１”に戻す（図１０のステップＳ１１６）ことで再同期をとる。タイミングＤでｎ＝４となるが（図１０のステップＳ１０５におけるＹＥＳの判定）、これは“０”のデータが３回連続したあとの“１”のデータである（即ち、ｍ＝３であり、これが図１０のステップＳ１０６におけるＹＥＳの判定を示唆する）。従って、これをダミービットと判定して、処理はステップＳ１１０を経てステップＳ１０９に進む。つまり、ステップＳ１０７の処理は実行しない。このため、受信レジスタ２３１にはデータを記憶せずに破棄する。タイミングＥでもサンプリングしたデータの反転を検出する。しかしながら、１クロック前にサンプリングしたデータがダミービットを含めて“１”のデータを３回連続した後の“０”なので、タイミングＤの場合と同様にダミービットと判定し、受信レジスタ２３１には記憶せずに破棄する。
【００８８】
以上説明した動作を繰り返すことでデータの受信を行い、結果として受信レジスタに記憶されるデータは“０００１１１１０１００”となり、送信器が送りたいデータと一致する。
【００８９】
従って、この実施例に従えば、データのシリアル転送において、たとえ送信クロックにずれが発生しても、ダミーデータの挿入と検出により、クロックの再同期を行なうので、正確なデータ伝送を行なうことができる。
【００９０】
なお、本発明は、受信信号の反転を検出する毎にサンプリングクロックの再同期をとることが重要であるので、ダミービットの挿入ではなく、同じデータがｍ個連続しないように符号化して通信を行うようにしてもよい。
【図１】
0005922991.tif 000002
【図２】
0005922991.tif 000003
【図３】
0005922991.tif 000004
【図４】
0005922991.tif 000005
【図５】
0005922991.tif 000006
【図６】
0005922991.tif 000007
【図７】
0005922991.tif 000008
【図９】
0005922991.tif 000009
【図１０】
0005922991.tif 000010
【図１２】
0005922991.tif 000011
【図１３】
0005922991.tif 000012
【図１５】
0005922991.tif 000013
【図８】
0005922991.tif 000014
【図１１】
0005922991.tif 000015
【図１４】
0005922991.tif 000016