(57)【要約】【課題】バスの長さに関係なく高いデータ伝送速度でデータを伝送可能なシリアルバスシステムを提供すること。【解決手段】マスタ装置とスレーブ装置を接続するデータバスと、共有クロック信号をマスタ装置及びスレーブ装置に供給するように構成された共有クロックシステムとを含む、装置間でマスタースレーブプロトコルに従ってデータ通信するためのシリアルバスシステム。マスタ装置及びスレーブ装置は、共有クロック信号及びデータバス上のデータタイミング指示から、データバス上で受信されたデータに同期した装置固有クロック信号を導出するように構成される。【選択図】図１
2006120146.tif 000002
【特許請求の範囲】
【請求項１】
装置間でマスタースレーブプロトコルに従ってデータ通信するためのシリアルバスシステムであって、
マスタ装置とスレーブ装置を接続するデータバスと、
前記マスタ装置及び前記スレーブ装置に共有クロック信号を供給するように構成された共有クロックシステムと
からなり、前記マスタ装置及び前記スレーブ装置は、前記共有クロック信号及び前記データバス上のデータタイミング指示から、前記データバス上で受信されたデータに同期した装置固有クロック信号を導出するように構成される、シリアルバスシステム。
【請求項２】
前記マスタ装置及び前記スレーブ装置は、データフレームにグループ化されたデータを送受信するように構成され、前記データタイミング指示は、該データフレームにおける特定のビットまたは１グループのビットである、請求項１に記載のシリアルバスシステム。
【請求項３】
前記マスタ装置及び前記スレーブ装置は、データフレームにグループ化されたデータを送受信するように構成され、該データフレームが各自のタイミング指示を有し、前記装置は、データフレームのタイミング指示を利用して各自の装置固有クロック信号をデータフレーム内のデータに同期させるように構成される、請求項１または請求項２に記載のシリアルバスシステム。
【請求項４】
前記マスタ装置及び前記スレーブ装置は、前記共有クロック信号と前記装置固有クロック信号周波数との間の相対位相を調節することにより、内部クロック信号を同期させるように構成される、請求項１〜３のうちのいずれか一項に記載のシリアルバスシステム。
【請求項５】
前記共有クロック信号及び前記装置固有クロック信号は周波数を有し、前記共有クロック信号の周波数が前記装置固有クロック信号の整数倍であり、前記装置は、前記共有クロック信号を分周することにより内部クロック信号を生成し、適当な周波数を有する分周された信号を選択することにより、その内部クロック信号をデータに同期させるように構成される、請求項１〜４のうちのいずれか一項に記載のシリアルバスシステム。
【請求項６】
前記マスタ装置及び前記スレーブ装置は、スレーブ装置宛てに要求を送信することによりマスタ装置だけが伝送を開始することができ、スレーブ装置はマスタ装置からそのスレーブ装置宛てに送信された要求に対する応答としてのみ、データをバスに出力することが出来るように構成される、請求項１〜５のうちのいずれか一項に記載のシリアルバスシステム。
【請求項７】
前記マスタ装置及び前記スレーブ装置は、マスタ装置が要求をスレーブ装置に送信し終えてから、遷移フェイズの後、前記スレーブ装置がバスの制御権を得て、応答を返すような方法で通信するように構成される、請求項６に記載のシリアルバスシステム。
【請求項８】
前記マスタ装置及び前記スレーブ装置は、前記遷移フェイズの後にスレーブ装置が要求の受領を直ぐに確認し、遅延の後に、その要求に対する応答をバスに出力することが出来るような方法で通信するように構成される、請求項７に記載のシリアルバスシステム。
【請求項９】
前記スレーブ装置は、前記遷移フェイズの後、バスを所定のレベルに駆動するように構成され、該所定のレベルへのバスの駆動が、前記マスタ装置において要求の確認とみなされる、請求項８に記載のシリアルバスシステム。
【請求項１０】
前記マスタ装置及び前記スレーブ装置は、スレーブ装置が割り込み状態を状態ビットまたは１グループの状態ビットによって知らせ、マスタ装置がスレーブ装置に要求を絶えず送信し続け、割り込み信号を発しているスレーブ装置から前記割り込み状態ビットまたはビット集合を有する応答を受信することにより、割り込み状態を認識するような方法で通信するように構成される、請求項８または請求項９に記載のシリアルバスシステム。
【請求項１１】
データフレームは、データタイミング指示を含む制御部と、前記装置のうちの１つを宛先に指定するアドレス部と、ペイロードデータを有するペイロード部とを含む、請求項３〜１０のうちのいずれか一項に記載のシリアルバスシステム。
【請求項１２】
データフレームは、伝送エラーを検出するためのデータ検査部を含む、請求項３〜１１のうちのいずれか一項に記載のシリアルバスシステム。
【請求項１３】
データ信号をバス上で差分信号として伝搬させるように構成される、請求項１〜１２のうちのいずれか一項に記載のシリアルバスシステム。
【請求項１４】
前記バスは双方向バスである、請求項１〜１３のうちのいずれか一項に記載のシリアルバスシステム。
【請求項１５】
前記シリアルバスシステムはシリアルバスラインを有し、該シリアルバスラインを介してデータ信号が伝搬され、前記共有クロック信号システムは、前記共有クロック信号を前記装置に供給するための共有クロックラインを有し、前記シリアルバスラインと前記共有クロックラインが共通のバスケーブルに結合される、請求項１〜１４のうちのいずれか一項に記載のシリアルバスシステム。
【請求項１６】
前記シリアルバスシステムはシリアルバスラインを有し、該シリアルバスラインを介してデータ信号が伝搬され、前記共有クロック信号システムは、前記共有クロック信号を前記装置に供給するための共有クロックラインを有し、前記シリアルバスラインと前記共有クロックラインが共通のバスケーブルに結合されず、別々のラインになっている、請求項１〜１５のうちのいずれか一項に記載のシリアルバスシステム。
【請求項１７】
１以上のプリントヘッドと、全体プリントコントローラと、１以上のプリントヘッドコントローラと、前記プリントコントローラと前記１以上のプリントヘッドコントローラとの間でマスタースレーブプロトコルに従ってデータ通信するための請求項１〜１６のうちのいずれか一項に記載のシリアルバスシステムとからなる印刷装置であって、前記プリントコントローラがマスタ装置であり、前記１以上のプリントヘッドコントローラがスレーブ装置である、印刷装置。
【請求項１８】
マスタ装置とスレーブ装置の間でシリアルデータバスを介してマスタースレーブプロトコルに従ってデータ通信する方法であって、
前記マスタ装置及び前記スレーブ装置に共有クロック信号を供給するステップと、
前記マスタ装置及び前記スレーブ装置において前記データバス上で受信されたデータに同期した装置固有クロック信号を生成するステップであって、前記装置により、前記共有クロック信号及び前記データバス上のデータタイミング指示から前記装置固有クロック信号を導出するステップと、
からなる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ通信に関し、例えば、シリアルバスシステム、シリアルバスシステムを含む印刷装置、及びデータ通信方法に関する。
【背景技術】
【０００２】
電子装置間又は電子装置の構成要素間のデータ伝送は、近代技術において重要な役割を果たしている。近年の計算能力及び記憶容量の増大に伴い、電子装置で処理されるデータ量は急増した。そのため、より高いデータレートを有するデータ伝送システムが次々と開発されている。
【０００３】
そうしたデータレートの増大に対処するために、様々な伝送システムが提供されている。伝送システムの多くは共有伝送媒体を備えたバスシステムであり、３以上の装置を接続することが出来る。そのようなバスシステムの例には、ＩＳＡやＰＣＩのようなコンピュータ内部バス、ポータブルコンピュータに使用されるＰＣＭＣＩＡバス、外部装置をコンピュータに接続するためのＰＳ／２バス、ＲＳ２３２バス、ＵＳＢバス、ＳＣＳＩバス、及びＩＥＥＥ１３９４（ファイアワイヤ）バスなどがある。同様に、イーサネットやトークンリングシステムも、コンピュータをＬＡＮ（ローカルエリアネットワーク）に接続するのに使用されている。また、デジタル制御システムにおけるＩＣ間の接続のために設計されたバスシステムの例として、Philips semiconductorsのＩ２Ｃバスがある。
【０００４】
パラレルバスでは、複数のパラレル伝送ラインを介して２ビット以上が一度に伝送される一方、シリアルバスでは、１本の伝送ライン上をビットが順次伝送される。パラレルバスは同時伝送によって比較的高いデータ伝送速度を実現することが出来るが、シリアルバスの方が、必要とされるライン数が少ない（例えば、１本の撚り対線）ので、長い伝送距離に適している。
【０００５】
Ｉ２Ｃバス（例えば、「The I2C-bus Specification」Version 2、２０００年１月を参照）は、８ビット指向デジタル制御アプリケーション向けのシリアルバスシステムである。Ｉ２Ｃバスの概念を利用したシステムは一般に、マイクロコントローラや、バスコントローラによってバスに接続されたメモリやＩ／Ｏエキスパンダなどの周辺機器を含む。Ｉ２Ｃバスでは、マスタースレーブプロトコルを使用して伝送が行われる。バスへのアクセスは「マスタ」装置によって統制される。他のスレーブ装置は、マスタから要求があったときにしかバスにアクセスすることができない。Ｉ２Ｃバスはマルチマスタバスである。つまり、これはマスタの機能を様々な装置で担うことが出来ることを意味する。Ｉ２Ｃバスは、シリアルデータライン（ＳＤＡ）とシリアルクロックライン（ＳＣＬ）という２本のラインを有する。シリアルデータラインは、バスに接続された装置間でデータを搬送する。マスタ装置はマスタクロックを有し、マスタクロックはマスタクロック信号をクロックライン（ＳＣＬ）に出力する。クロックライン（ＳＣＬ）はこのマスタクロック信号を全てのスレーブ装置に供給し、スレーブ装置はこのマスタクロック信号を使用してデータの読み出しや送信を行う。このように、Ｉ２Ｃバスは同期伝送を利用している。そのため、Ｉ２Ｃバスのデータ伝送速度は１００ｋビット／秒〜３Ｍビット／秒程度に制限され、バスケーブルの最大長にも制限がある。
【０００６】
他の既知のバスシステムには、非同期伝送を利用したものがある。非同期伝送とは、伝送データシーケンス（例えば、パケット、フレーム等）中の各データビットの速度がほぼ同じであっても、異なるパケットまたはフレームのデータビットは同じタイミングラスタ内にない場合があることを意味する。各バス装置はそれぞれクロックを有し、新たなデータパケット又はフレームを受信すると、例えば、そのパケット又はフレームの先頭にある開始ビットを利用して、内部クロックをそのパケット又はフレーム内のビットに同期させる。バス装置の内部クロックがこのように同期されるので、装置はパケット又はフレームのビットを読み出すことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的の１つは、バスの長さに関係なく高いデータ伝送速度でデータを伝送可能なシリアルバスシステムを提供することである。本発明の他の目的は、そのようなシリアルバスシステムにおける通信方法を提供することである。本発明の更に他の目的は、下記の説明から明らかになる。
【課題を解決するための手段】
【０００８】
本発明の第１の態様は、マスタースレーブプロトコルに従って装置間でデータを通信するシリアルバスシステムに関する。このバスシステムは、マスタ装置を１以上のスレーブ装置に接続するデータバスと、共有クロック信号をマスタ装置及びスレーブ装置に供給するように構成された共有クロックシステムとから構成される。マスタ装置及びスレーブ装置は、共有クロック信号及びデータバス上のデータタイミング指示から、データバス上で受信したデータに同期した装置固有クロック信号を導出するように構成される。
【０００９】
他の態様によれば、１以上のプリントヘッドと、全体プリントコントローラと、１以上のプリントヘッドコントローラと、プリントコントローラとプリントヘッドコントローラ（複数の場合もあり）の間でマスタースレーブプロトコルに従ってデータを通信するためのシリアルバスシステムとからなる印刷装置が得られる。プリントコントローラはマスタ装置であり、各プリントヘッドコントローラはスレーブ装置である。シリアルバスシステムは、マスタ装置をスレーブ装置に接続するデータバスと、共有クロック信号をマスタ装置及びスレーブ装置に供給するように構成された共有クロックシステムとを含む。マスタ装置及びスレーブ装置は、共有クロック信号及びデータバス上のデータタイミング指示から、データバス上で受信したデータに同期した装置固有クロック信号を導出するように構成される。
【００１０】
他の態様によれば、マスタ装置と１以上のスレーブ装置の間でシリアルバスを介してマスタースレーブプロトコルに従ってデータを通信する方法が得られる。この方法は、共有クロック信号をマスタ装置及びスレーブ装置に供給し、マスタ装置及びスレーブ装置においてデータバス上で受信したデータに同期した装置固有クロック信号を生成することからなり、前記装置固有クロック信号は、共有クロック信号及びデータバス上のデータタイミング指示から導出される。
【００１１】
開示する製品及び方法に固有の特徴は他にもあり、それらは、種々の実施形態に関する下記の詳細な説明と添付の図面から当業者には明らかになるであろう。
【００１２】
次に、本発明の種々の実施形態について添付の図面を参照ながら例として説明する。
【００１３】
図面や図面に関する説明は本発明の実施形態を示すものであり、本発明そのものではない。
【発明を実施するための最良の形態】
【００１４】
図１はシリアルバスシステムのアーキテクチャを示す図である。ただし、図１の詳しい説明に移る前に、幾つかの特定の実施形態について説明する。
【００１５】
記載したシリアルバスシステムの実施形態は、マイクロプロセッサ、メモリ、Ｉ／Ｏチップ、コントローラ、センサ等の電子装置間でデータを交換するように構成される。交換されるデータは、そのバスに接続された装置を制御するための制御データである。この種のバスは「制御バス」と呼ばれることがある（当然ながら、制御バスは「内容データ」を交換することも可能である）。実施形態によって異なるが、バスシステムは同一基板上の複数の装置（例えば、マイクロチップ）を接続する場合もあれば、同一装置の異なる基板上の装置間、例えば、装置の相対移動可能な部品に取り付けられた装置間を接続する場合もある。一実施形態は１以上のプリントヘッドを備えたプリンタである。このプリンタは、メインプリントコントローラをシリアルバスによってプリントヘッドコントローラに接続している。プリントヘッドを往復移動するキャリッジ上のプリントヘッドコントローラに取り付けた、可動式プリントヘッドを有するインクジェットプリンタは、相対移動する装置間をバスで接続している。更に他の実施形態において、バスは他の装置に接続される場合もある。
【００１６】
記載する実施形態のバスシステムはシリアルバスシステムである。すなわち、１本の伝送ラインを介してデータビットを順次伝送するバスシステムである。
【００１７】
記載する実施形態では、様々な論理レベルを表す電気信号を用いてバイナリデータを伝送する。バスに接続された装置は、データの送受信が可能な（すなわち、他の装置によって生成されたバス上の信号を検出したり、信号をバスに出力したりすることが可能な）バスコントローラを有する。バス上の信号を検出したり信号をバスに出力したりするバス駆動回路は、様々な半導体技術、例えばＮＭＯＳ、ＣＭＯＳ、又はバイポーラ技術を用いて実施することができる。また、バイナリデータを電気信号で符号化する方法にも様々なものがある。例えば、ＮＲＺ符号、ＲＺ符号、ＡＭＩ符号、マンチェスタ符号、差分マンチェスタ符号などがある。バスは通常２つの論理レベルを有し、符号によっては３以上の論理レベルを有する場合もある（例えば、ＡＭＩ符号を使用した場合、バスは３つの論理レベルを有する）。バスに信号を出力する装置が存在しないとき、バスは未確定状態、すなわち「浮動」状態になる。
【００１８】
実施形態によっては、バスコントローラは、バスに接続される装置（例えば、マイクロチップ）の一部として、「組み込み」電子回路として実施される場合がある。他の実施形態では、バスコントローラの少なくとも一部がソフトウェアによって実施され、バスコントローラの機能は装置で（例えば、マイクロコントローラで）実行されるプログラムによって提供される場合がある。実施形態によっては、このバスに接続される装置は、他の装置（例えば、バスコントローラを持たないマイクロチップ）をそのバスに接続するだけの「インタフェース装置」である場合もある。
【００１９】
一般に、バスには複数の装置が接続されるので、バスアクセスの衝突が発生する可能性がある。従って、バスシステムの規定には通常、装置がバスにアクセスする方法を規定するプロトコルが含まれる。イーサネット等のマルチアクセスプロトコルを使用する場合、バスへのアクセスを統制する上位装置（「マスタ装置」）から事前に許可を受けることなく、全ての装置がバスにアクセスすることが出来る。このようなプロトコルは通常、調停手順を規定していて、バスアクセスの衝突が起きた場合は、この調停手順によりバスへのアクセスが統制される。一方、記載するシリアルバスシステムの実施形態はマスタースレーブプロトコルを実施する。マスタースレーブプロトコルでは、装置のうちの１つ（マスタ装置）だけが事前許可を受けることなくバスにアクセスする（すなわち、データをバス上に出力する）ことができ、その他の装置（スレーブ装置）はすべて、マスタ装置からそのスレーブ装置宛てに送られた要求に応答してしか、バスにアクセスすることしか出来ない。例えば、シリアルバスシステムを備えたプリンタの実施形態の場合、プリントコントローラがマスタ装置であり、プリントヘッドコントローラがスレーブ装置である。
【００２０】
当然ながら、２つの装置しか有しないバスシステムであって、その一方がマスタ装置の機能を果たし、他方が（単体で）スレーブ装置の機能を果たすようなバスシステムも、本発明の一実施形態である。他の実施形態では、複数のスレーブ装置（すなわち、２以上のスレーブ装置）を有する場合がある。
【００２１】
実施形態によっては、シリアルバスシステムのマスタ装置の機能は特定の装置に固定される場合がある。他の実施形態では、マスタ装置の機能が、例えばＩ２Ｃバスで使用されるようなマスター割り当て手順に従って様々な装置に動的に割り当てられる場合がある。
【００２２】
記載する実施形態では、装置は、バス上の一連の論理レベルをデータ信号に同期してサンプリングすることで、バス上のデジタルデータを読み出す。従来、このサンプリング同期は、全ての装置についてマスタクロック信号を使用し、固定タイミングラスタを得るようにするか（Ｉ２Ｃ等のように）、又は、全ての装置で自走クロックを使用し、各装置を入力パケット（データフレームとも呼ばれる）の始まりに同期させることによって達成される。ビットレートと内部クロックの間のずれが大きすぎず、データパケットが比較的短ければ、後者の方法で十分に同期を達成することができ、全てのパケットのビットを正確にサンプリングすることが出来る。
【００２３】
しかしながら、記載する実施形態では、これらの既知の同期方式と既知の非同期方式の複合方式を使用する。一方、共有クロック信号をマスタ装置及びスレーブ装置に供給するための共有クロックシステムが構成される。ただし、バスからデータを読み出したい装置は、共有クロック信号を単純に使用してサンプリング時点を決定するのではない。そうではなく、装置は、共有クロック信号及びその装置によって検出されたタイミング指示から、データバス上で受信されたデータに同期した装置固有のクロック信号を導出する。実施形態によっては、このデータタイミング指示には、データパケット又はフレームの特定のビット（例えば、開始ビット）又は１グループのビットが使用される場合がある。記載する実施形態では、各データフレームが各自のタイミング指示（例えば、開始ビット）を有し、装置は、共有クロック信号、又は共有クロック信号を分周することで得られる信号を各データフレームにそれぞれ同期させ、装置固有のクロック信号を得る。装置固有のクロック信号は共有クロック信号から導出されるため、従来の非同期バスシステムのように各装置が自走クロックを備える必要はない。むしろ、共有クロック信号の周波数とバス上の信号変化レートが同じである実施形態では、装置固有のクロック信号を共有クロック信号の位相をシフトさせたものにする場合がある。そのような実施形態の場合、各装置は、共有クロック信号とその装置の装置固有クロック信号との間の相対位相を調節することにより、その装置の装置固有クロック信号をデータバス上で受信されたデータに同期させるように構成される。共有クロック信号の周波数が信号変化レートの（整数）倍であるような他の実施形態では、共有クロック信号を縮小した信号を装置固有クロック信号として使用する場合がある。そのような実施形態の場合、各装置は、共有クロック信号を分周する課程で縮小信号の位相を調節することにより、その装置の装置固有クロック信号をバス上で受信されデータに同期させるように構成される。
【００２４】
例えば、共有クロック信号の周波数が比較的高い実施形態において、共有クロック信号は４０ＭＨｚの信号である場合がある。データ信号の信号変化レートは、共有クロック信号周波数の例えば１／４、すなわち１０ＭＨｚである。装置固有クロック信号は、共有クロック信号を除数４で分周することにより生成される。例えば、クロック信号の立ち上がりエッジを４個毎（すなわち、３つ置き）に抽出することで、装置固有クロック信号が形成される。装置固有クロック信号をデータ信号に同期させるために、装置固有クロック信号の位相は、装置固有クロック信号の１周期内に発生する４つの共有クロック信号エッジのうちの特定の１つを選択することにより、４段階（各段階が０．２５×１０−６秒に相当する）に離散的に調節することが出来る。
【００２５】
記載する実施形態の同期−非同期を組み合わせた同期方式は、クロック・スキューの影響を受けにくい。言い換えれば、全ての装置について共有クロック信号とデータ信号の間の相対的なタイミングを一定にする必要はなく、同一装置又は異なる装置からの異なるデータフレームが一定のタイミングラスタ内にある必要もない。むしろ、全ての装置について共有クロック信号とデータの間のタイミングが異なっていてもよく、異なるデータフレームを共通のタイミングラスタに位置合わせする必要もない。そのため、比較的長い距離にわたってデータを高速に、例えば最大で数ギガビット／秒程度で伝送することが可能になる。例えば、大判インクジェットプリンタでは、静止プリントコントローラを可動キャリッジに搭載されたプリントヘッドコントローラに接続するバスの長さが、５ｍ程度になる場合がある。一方、共有クロック信号を位相調節された装置固有のクロック信号のベースとして使用すれば、データフレーム長にわたって確実に同期を保つために、従来の非同期バスシステムのように全ての装置が正確に調節された個別のクロックを備える必要はなくなる。
【００２６】
記載する実施形態では、シリアルバスシステムにおいてマスタースレーブプロトコルを実施する。マスタースレーブプロトコルでは、マスタ装置だけが、許可を受けることなくデータをバスに出力することが出来る。スレーブ装置はバス上のデータを絶えず監視し続ける。また、スレーブ装置は、マスター装置からそのスレーブ装置宛ての要求を受信した後でしかデータをバスに出力することが出来ない。
【００２７】
マスタ装置から要求を受信してから、遷移フェイズの後、その要求の宛先であるスレーブ装置はバスの制御権を得て、応答を返す。多くの場合、スレーブ装置は要求を受信してすぐに応答を送信することはできず（例えば装置は要求に応えるために何らかの作業（例えば、センサデータの収集）を行わなければならない場合がある）、その作業を終えた後でしか応答する（例えば、収集されたセンサデータを返す）ことが出来ない。
【００２８】
原理上、遷移フェイズ中は、要求を受けたスレーブ装置が制御権を引き継ぐまで、バスが未確定（浮動）状態になる。バスが浮動状態である期間を可能な限り短くするために、実施形態によっては、応答を返すまでにまだ時間が必要な場合であっても、スレーブ装置は即座にバスを所定のレベルに駆動する場合がある。スレーブ装置は、マスタ装置からの要求の受領を即座に確認する。実施形態によっては、バスを所定のレベルにする作業をマスタ装置による受領の確認としてみなす場合もある。スレーブ装置はバスを所定のレベルにしてから、及び／又は受領を確認してから、或る遅延の後に、その要求に対する応答をバスに出力することが可能になる。実施形態によっては、この遅延は一定であり、例えばタイマで決定される場合がある。他の実施形態では、スレーブ装置は、予測される遅延長の指示を、マスタ装置に即座に返信される受領確認に含める場合がある。マスタ装置は、（一定の、又は予測される）この遅延に対応して待機状態になる。この待機状態の間、マスタ装置はデータをバスに出力することが出来ない（当然ながら、その他のスレーブ装置も同様に出来ない）。
【００２９】
割り込みは、一般にどの装置にも発生する可能性がある非同期イベントであり、他の装置（通常は上位装置）に非同期に伝達されなければならない。厳密に言えば、純粋なマスタースレーブプロトコルでは、スレーブ装置が割り込みを実施することは出来ない。なぜなら、スレーブ装置は、マスタ装置から要求があったとき以外は、信号を何もバスに出力出来ないからである。しかしながら、実施形態によっては、マスタ装置が疑似割り込み要求を全てのスレーブ装置に絶えず送り続けることで、疑似割り込み機能を実施する場合がある。スレーブ装置は、それらの要求に応答して広範囲の状態情報を含む応答（これは従来、割り込み状態を上位装置に通知するために割り込みと共に送信されていたもの）を返すのではなく、割り込み状態ビット又は割り込み状態ビット群が設定された、または設定されていない短い応答を単に返す。マスタ装置は、割り込み状態ビットが設定されたその短い応答を受信すると、その短い応答を発したスレーブ装置に次の要求を送る。スレーブ装置は、この第２の要求を受信した後にしか、広範囲の状態情報を含む応答を返さない。この２段階の割り込みポーリング手順によれば、メッセージを非同期にやりとりすることなく、また、割り込みに伴なう負荷をバスにあまりかけることなく、スレーブ装置の割り込み状態をマスタ装置に効率的に伝えることが出来る。
【００３０】
記載する実施形態で使用されるデータフレームは、シリアルデータバス上に連続的に伝送される複数のビットからなる。データフレームは３つの部分、すなわち制御部、アドレス部、及びペイロード部を有する。制御部はデータフレームのタイミング指示を含み、例えば、データフレームの最初のビットは、装置固有クロックを同期させる開始ビットとして機能する。制御部は、データフレームの宛先である装置を一意に識別するビット、すなわち装置ＩＤを有する。制御部は、制御関係のデータを更に含む場合があり、例えば上述した割り込み状態ビットを更に含む場合がある。アドレス部は、宛先装置のレジスタ（複数の場合もあり）を識別する。バスに接続された装置は通常全て、全てのデータフレームを受信するが、他の装置の装置ＩＤを有するデータフレームは無視する。装置は、自分宛てのデータフレームにしか反応しない。ペイロード部は、或る装置から他の装置へ伝送された「実際のデータ」を含む。言い換えれば、ペイロードデータは通常、伝送プロセスには関係なく、伝送される内容に関係する。ただし、ペイロードデータは制御に関係しないであろうという意味で、制御部とペイロード部の間に厳密な役割分担はない。例えば、実施形態によっては、割り込みポーリング手順の第２段階では、広範囲の状態情報をフレームのペイロード部に入れて返す場合がある。
【００３１】
実施形態によっては、データフレームは、伝送エラーを検出したり、場合によっては修正したりするためのデータ検査部を更に有する場合がある。伝送プロセスにビットエラーが発生すると、伝送データが誤って伝送される可能性がある。ビットエラーを検出するためにデータ検査／部に冗長性を導入して伝送し、受信側装置はその冗長性を利用してビットエラーが発生したか否かを検出する。付加する冗長性の度合いによっては、特定のビットエラーしか検出することができないばかりか、訂正もできない場合がある。実施形態によっては、１以上のパリティビット、いわゆるブロック検査文字（ＢＣＣ）を、例えば縦方向及び横方向のパリティビットに付加する場合がある。他の実施形態では、特定の生成多項式を用いた多項式演算によるチェックサムを計算し、それを伝送データに付加する場合がある。このようなチェックサムは巡回冗長検査（ＣＲＣ）と呼ばれる。受信側装置は伝送されたパリティデータ又はチェックサムを受信データから予測されるパリティデータ又はチェックサムと比較し、一致しない場合に伝送エラーを検出する。
【００３２】
記載する実施形態では、バスは、データを双方向に伝送するための２本の対称なワイヤからなる一対のライン（この場合、バスは双方向バス又は二重バスになる）か、又は２本の対称なワイヤからそれぞれ成る２対のライン（各ラインが単方向にのみデータを伝送する）を有する。そして、これらのライン対を介して差分信号を伝送する。つまり、一方のワイヤ上の各信号パルスについて、他方のワイヤは常に対応する反転パルスを有する。受信側装置は、２本のワイヤ間の電圧差（変化）だけを検出する。不要な信号のほとんどは一対のラインの両方のワイヤにおいて非差分パルスとして検出されるため、そのような不要な信号は受信側装置においてフィルタリングされ、除去される（すなわち、検出されない）。また、実施形態によっては、ライン対を撚り合わせて、非差分信号の検出を更に抑制する場合もある。
【００３３】
上で説明したように、記載する実施形態のシリアルバスシステムは、同期−非同期を組み合わせた同期技術を使用しているので、クロックスキューの影響を受けにくい。言い換えれば、バスに接続された種々の装置間で、共有クロック信号とデータ信号の間の位相関係が異なっていてよい。従って、共有クロック信号を運ぶラインとデータ信号を運ぶラインは、その長さや信号伝搬速度を互いに異ならせることが出来る。従って、実施形態によっては、データ信号ラインと共有クロック信号ラインを共通のバスケーブルに結合せずに、それらを（異なる長さ及び／又は信号伝搬速度を持つ）別々のラインにする場合がある。他の実施形態では、データ信号ラインと共有クロック信号ラインを共通のバスケーブルに結合する場合がある（これは、両者の長さは同じでも、信号伝播速度は異なるものに出来ることを意味する）。
【００３４】
プリントヘッド、全体プリントコントローラ、及びプリントヘッドに関連するプリントヘッドコントローラを有する印刷装置の一実施形態を開示する。本明細書に記載するタイプのシリアルバスシステムは、プリントコントローラをプリントヘッドコントローラに接続し、それらのコントローラ間においてマスタースレーブプロトコルによる通信を可能にする。プリントコントローラはマスタ装置であり、プリントヘッドコントローラはスレーブ装置である。一実施形態においてプリンタは大判インクジェットプリンタ（ＤＩＮ  Ａ１／ＡＮＳＩ  Ｄ、ＤＩＮ  Ａ０／ＡＮＳＩ  Ｅの印刷幅、又は更に大きな用紙フォーマットを有していてもよい）であり、プリントヘッドはプリントヘッドコントローラと共に往復移動するキャリッジに搭載される。これに対し、プリントコントローラはプリンタの非可動部に搭載される。従って、プリントヘッドコントローラとプリントコントローラは、相対的に移動させることが出来る。シリアルバスケーブルはフレキシブルケーブルであり、それらの相対移動可能な両コントローラに接続される。
【００３５】
次に図１に戻る。図１はシリアルバスシステム１のアーキテクチャを示している。シリアルバスシステム１は、シリアルデータバス５によって接続されたマスタ装置２及び２つのスレーブ装置３、４を含む（マスタ装置及びスレーブ装置は、単に「マスタ」及び「スレーブ」と呼ばれることもある）。装置２、３、４はそれぞれバスコントローラ６を有する。バスコントローラ６はバス５に接続され、バス５からのデータの読み出しやバス５へのデータの出力を行ったり、マスタースレーブプロトコルによる制御タスクを実行したりする働きを持つ。バスコントローラ６の制御タスクの１つは、各装置２、３、４における装置固有クロック信号の導出である。実施形態によって異なるが、装置２、３、４は、バスコントローラ６を組み込んだマイクロチップである場合もあれば、バスコントローラ６又はその一部をソフトウェアとして実行するマイクロプロセッサである場合もある。実施形態によっては、装置２、３、４がインタフェース装置であり、その主要部がバスコントローラ６である場合もある。こうしたインタフェース装置は他の装置（バスインタフェースのない）をバス５に接続する機能を持つ。信号の反射を避けるために、バス５の両端はバス終端７によって終端される。バス終端７には、例えば、バスラインのインピーダンスと同じインピーダンスを有するパッシブ抵抗器が使用される。
【００３６】
共有クロックシステムは、共有クロック信号ＳＣＬＫを生成する共有クロック９と、共有クロック信号ＳＣＬＫをバス５に接続された全ての装置２、３、４のバスコントローラ６に供給する共有クロックライン８とを有する。図１は２つの異なる実施形態を示している。実線で示されている第１の実施形態では、共有クロック９が独立した構成要素になっていて、共有クロック９は装置２、３、４のいずれにも一体化されていない。破線で示されている他方の実施形態では、共有クロック（９’として図示されている）が、マスタ装置２に一体化された構成要素となっている。第１の実施形態とは異なり、一体化された共有クロック９’のマスタ装置のバスコントローラ６への接続は、図１に示すように装置内接続になっている。
【００３７】
図１に示す実施形態では、バスラインと共有クロック信号ライン８が別々のラインになっていて、それらを並列に配置する必要はなく、その長さやインピーダンスも異なっていてよい。他の実施形態（図１２）では、それら２本のラインが並列に配置され、共通のケーブルに結合される場合がある。実施形態によっては、バスラインをワイヤで構成するのではなく、プリント基板上のストリップ導体で構成する場合もある。このようなストリップ導体の実施形態は、例えば、バス５によって接続された装置２、３、４が全て同じプリント基板に取り付けられる場合に使用される。
【００３８】
図２は、バスコントローラ６と、バス５で使用される差分伝送技術を示す図である。バス５は、グラウンドに対して対称な２本のワイヤ１０’、１０’’からなる１つのライン対１０を有する。図２は、バス５が２つの装置（マスタ装置２とスレーブ装置３）しか持たないものとして、単純化して描かれている。図１に示すように、バス５の各部は他の装置やバス終端に繋がっている。各バスコントローラ６は、データをバス５に出力するように構成された駆動回路１１と、バス５上のデータを読み出すように構成された受信器１２とを有する。マスタ装置２からスレーブ装置３へデータ１３を伝送する通信の場合、バスコントローラ６の１つ（この例では、マスタ装置２のバスコントローラ６）は、自分自身の駆動回路１１を作動させ、もう１つのバスコントローラ（この例では、スレーブ装置３のバスコントローラ６）は自分自身の受信器１２を作動させる。駆動回路１１は、対称信号、例えばＬＶＤＳ規格（ＩＥＥＥ規格Ｐ１５９６．３）に準拠する信号をバスライン１０に出力する。この対称信号はパルス１４’、１４’’から構成され、ワイヤ１０’、１０’’にそれぞれ出力される。２つのパルス１４’、１４’’は加算するとゼロになる。すなわち、一方のワイヤ１０’における各パルス１４’について、他方のワイヤ１０’’は常に、同じ大きさで符号が逆のパルス１４’’を有する。受信器１２は、２本のワイヤ１０’、１０’’の間の電圧差パルスしか検出しない。これにより、受信器１２は、２本のワイヤ１０’、１０’’上で同じ符号を持つ信号のピックアップをフィルタリングする。
【００３９】
図２に示すバス５は、二重伝送に使用される双方向バスである。すなわち、装置２、３のバスコントローラ６の役割を変更すれば（すなわち、スレーブ装置３のバスコントローラ６が自分の駆動回路１１を作動させ、マスタ装置２のバスコントローラ６が自分の受信器１２を作動させるようにすれば）、同じバスライン１０上でパルスを逆方向に伝送することも可能である。他の実施形態では、バスが各方向について１本づつ、合計２本の独立したバスラインを有する場合がある。
【００４０】
記載する実施形態において、共有クロック９は差分信号（例えば、ＬＶＤＳ規格に準拠するもの）を更に使用し、共有クロック信号ライン９を介して共有クロック信号ＳＣＬＫを伝送する。
【００４１】
図３は、シリアルバスシステム１を介したデータ通信に使用されるデータフレーム構造を示している。データフレーム１６は開始ビットＳＢで始まる。開始ビットＳＢはデータフレーム１６の始まりを意味し、受信器１２を同期させ、受信器１２がデータバス５からデータを読み出せるようにするために使用される。開始ビットＳＢの後には制御部ＣＴＲＬが続く。制御部ＣＴＲＬは、例えば８つの制御ビットＣＴＲＬ［７・・・０］である。制御部ＣＴＲＬの幾つかのビットは、例えば、「装置ＩＤ」と呼ばれる装置アドレスを表す場合がある。更に他のビット（Ｒ／Ｗビットと呼ばれる）を使用して、マスタがスレーブからのデータの読み出しを望んでいるのか、それともスレーブへのデータの書き込みを望んでいるのかを示すことも出来る。制御部ＣＴＲＬの更に他のビットは、ＣＲＣイネーブルビットである。制御部ＣＴＲＬの後にはアドレス部ＡＤＤＲ（例えば、８つのアドレスビットＡＤＤＲ［７・・・０］）が続く。アドレス部ＡＤＤＲは、例えば、スレーブ３の複数のレジスタのうちの１つを指定するものである。アドレス部ＡＤＤＲの後にはペイロード部ＤＡＴＡ（例えば、８つのデータビットＤＡＴＡ［７・・・０］）が続く。ペイロード部は、アドレス指定されたレジスタに書き込むべきデータを有する（制御部ＣＴＲＬのＲ／Ｗビットが設定されている場合）。マスタ装置２がスレーブのレジスタに対する読み出しを実施する場合（すなわち、制御部ＣＴＲＬのＲ／Ｗビットが設定されていない場合）、データ部ＤＡＴＡの内容は宛先スレーブにとって意味がない。最後に、アドレス部ＡＤＤＲの後にはデータ検査部ＣＲＣ（例えば、４つのチェックサムビットＣＲＣ［３・・０］）が続く。データ検査部は、例えば、データフレーム１６のチェックサムを表すものである。他の実施形態では、制御部やアドレス部の空間をもっと広くしたり、レジスタやＣＲＣチェックサムをもっと大きくしたりする場合がある。また、更に他の実施形態では、２以上のペイロードワードを１つのデータフレーム１６に含める場合がある。
【００４２】
宛先スレーブは、開始ビットＳＢ、制御部ＣＴＲＬ、アドレス部ＡＤＤＲ、及びペイロード部ＤＡＴＡを有し、任意選択でチェックサム部ＣＲＣを更に有する図３と同じようなフレーム構造を使用し、マスタの要求に応答する。宛先スレーブは、マスタからフレーム１６を読み出した後、遷移フェイズの終わりにデータバスの制御権を得る。装置ＩＤがマスタからのフレーム１６に含まれる装置ＩＤに一致しないスレーブは、フレーム１６に反応しない。宛先スレーブは、フレーム１６を応答としてデータバス５に出力する。スレーブから返されるフレーム１６は、その制御部ＣＴＲＬのビットの幾つかが、マスタから送信されたフレームに含まれるものとは異なる意味を持つ場合がある。すなわち、それらのビットはスレーブからの応答に特有の意味を持つ場合がある。例えば、実施形態によっては、制御部ＣＴＲＬの或るビットを割り込みビットにし、スレーブがマスタにデータフレーム１６を送信するときに、そのビットを使用して割り込みを知らせる場合がある。他のビットはスレーブの応答時に返される、すなわち、「エコー（そのまま複製使用）」される場合がある。例えば、応答フレーム１６において、マスタフレーム１６内のＲ／Ｗビット及びアドレスＡＤＤＲはエコーされる場合がある。マスタのフレーム１６が読み出しアクセスを示していた場合、データ部ＤＡＴＡには、スレーブ装置３、４のアドレス指定されたレジスタの内容が格納される。マスタのフレーム１６が書き込みアクセスを示していた場合、データ部ＤＡＴＡには、マスタのフレーム１６のデータ部ＤＡＴＡがエコーされる。
【００４３】
図４は、駆動回路１１がデータをバス５に出力するときに使用されるデータタイミングを示し、図５は、受信器１２がバス５からデータを読み出すときに実行される同期手順を示している。マスタ装置２からスレーブ装置３、４にデータを伝送するのか、それともその逆であるのかに応じて、駆動回路１１の機能が、マスタ装置２と、スレーブ装置３、４のうちのいずれかで実施される。駆動回路１１として機能する装置と受信器として機能する装置はいずれも、その装置に固有のクロック信号ＤＩＣＬＫを生成する。この装置固有クロック信号ＤＩＣＬＫは共有クロック信号ＳＣＬＫから導出される（共有クロック信号ＳＣＬＫは、共有クロック信号ライン８を介して全ての装置２、３、４に供給される）。図４及び図５に示す例では、装置固有クロック信号ＤＩＣＬＫの周波数が共有クロック信号ＳＣＬＫの周波数よりも低く、この装置固有クロック信号ＤＩＣＬＫは、共有クロック信号ＳＣＬＫを所定の除数（例えば除数４）で分周することによって得られる。共有クロック信号ＳＣＬＫの分周は、例えば、ＳＣＬＫパルスの数をカウントし、ＳＬＣＫパルスｎ個毎にＤＩＣＬＫパルスを生成するバスコントローラ６内の分周器（図７）によって実施される。例えば、例えばＳＣＬＫパルス４個毎にＤＩＣＬＫパルスが生成される。
【００４４】
図３のデータフレーム１６に相当する信号が、図４及び図５にＳＤＡＴとして描かれている。データ信号ＳＤＡＴをバス５に出力する駆動回路１１は、ＳＣＬＫ信号を分周することによって得られる周波数に拘束されるが、任意の時点でフレームの送信を自由に開始することができる。例えば、駆動回路１１は、ＳＣＬＫパルスを自由に選択し、選択したその開始パルスからＳＣＬＫパルスの分周を開始し、ＤＩＣＬＫ信号を生成することができる。ＤＩＣＬＫ信号の各パルスは、駆動回路１１がフレームのビットをバス５に出力する際のトリガーとなる。従って、図４に示すように、ＳＤＡＴ信号の各ビットの長さはＤＩＣＬＫ信号の１周期に対応し、データフレーム１６の最初の４ビットに関し、ＳＤＡＴ信号の各ビットは駆動回路１１のＤＩＣＬＫ信号の立ち上がりエッジから開始される。開始ビットＳＢは論理状態間の遷移（例えば、論理０から論理１への）で常に表現される一方、後続のビットは、データフレームのインスタンスの内容に応じて論理「０」と論理「１」のどちらにもなりうる。従って、図４には、起こり得る論理状態を両方とも描いてある。他の実施形態では、他の符号化方式を使用する場合がある。例えば、ＤＩＣＬＫ信号の１周期の中で１よりも多いビットや、１よりも少ないビットを伝送する場合がある。他の実施形態では、ＳＤＡＴ信号のビット間に信号変化が常に存在する場合がある。
【００４５】
受信器側における受信器１２のタスクは、バス５からデータフレーム１６を読み出すことである。データを読み出すために、受信器１２は自分自身をバス５上のフレーム１６に相当するＳＤＡＴ信号に同期させ、例えばＳＤＡＴ信号値のサンプリングが各ビットの中央で行われるようにする。バスシステムのどの場所においても、共有クロック信号ＳＣＬＫとデータ信号ＳＤＡＴの間に１：１の周波数関係が保たれるので（バスシステム内における周波数シフトはなく、位相シフト要素のみがある）、受信器１２は、上と同じ方法で分周されたＳＣＬＫ信号を更に使用して、サンプリング周波数を決定する。ただし、共有クロック信号ＳＣＬＫとデータ信号ＳＤＡＴの間の位相関係は維持されない。その理由は例えば、信号ケーブルやクロックケーブルの長さの違いや、装置２、３、４等におけるタイミング許容範囲の違いによる。従って、フレーム１６を読み出すために、受信器１２は自分自身の装置固有クロック信号ＤＩＣＬＫの位相を調節することにより、その装置固有クロック信号ＤＩＣＬＫをフレーム１６を表すデータ信号ＳＤＡＴに同期させ、データ信号ＳＤＡＴをビット内の特定の位置（例えばビットの中央）でサンプリングする。
【００４６】
この目的のために、受信器１２は全て、新規入力データフレーム１６の開始ビットＳＢに常に反応する。例えば、受信器１２は、開始ビットＳＢの立ち上がりエッジ１７を検出するように構成される。開始ビットＳＢが検出されると、装置固有クロック信号ＤＩＣＬＫの同期及びサンプリングプロセスが開始される。ビットの中央でサンプリングするために、例えば、開始ビットＳＢの立ち上がりエッジ検出後に生じる２番目のＳＣＬＫパルスを開始パルスとして使用することによって半ビットの遅延を付加し、そこからＳＣＬＫ信号の分周を開始し（ｎ個毎に（例えば、４個毎に）ＳＣＬＫパルスを選択することにより）、受信器のＤＩＣＬＫ信号を生成する場合がある。このようにして調節されたＤＩＣＬＫ信号のパルスは、ＳＤＡＴ信号のデータビットの中央に位置する。受信器１２は、このパルスを使用して、読み出すべき現在のデータフレーム１６の全てのビットについてサンプリング時点を決める。当然ながら、開始ビットＳＢの立ち上がりエッジ１７がＳＣＬＫパルスの立ち上がりエッジに一致している必要はなく、むしろ、開始ビットＳＢの立ち上がりエッジ１７は、図５に示すようにＳＣＬＫの信号周期内のどこにあってもよい。従って、サンプリングポイントは、サンプリングすべきビットのちょうど中央にはならないかも知れない。ただし、ＳＣＬＫ信号の周波数はＳＤＡＴ信号のｎ（例えば、４）倍であるから、中央位置からのサンプリングポイントの最大のずれは１／ｎ（例えば、１／４）となり、これがサンプリング手順に影響を与えることはない。
【００４７】
その結果、データバス５上のデータを読み出す各装置２、３、４は、共有クロック信号ＳＣＬＫ及び開始ビットＳＢからデータバス５上のデータに同期した自分自身の装置固有クロック信号ＤＩＣＬＫを導出し、そのサンプリングポイントをデータタイミングに調節する。この同期手順は各データフレームについて個別に実施されるので、データフレームを非同期に伝送することが出来る。
【００４８】
図６は、受信側装置のバスコントローラ６によって実施される同期・サンプリング手順の詳細を示すフロー図である。Ｓ１においてバスコントローラ６は、開始ビットＳＢを検出するための待機状態に置かれる。Ｓ２においてデータバス上で開始ビットＳＢが検出されると、バスコントローラ６はＤＩＣＬＫ信号調節・サンプリング手順を開始する。まず、Ｓ３において、ｎ／２ＳＣＬＫ信号の数をカウントし、ＤＩＣＬＫ信号の位相をデータビットの中央に調節する。次にＳ４においてＳＣＬＫ信号の周期をｎ個カウントし、Ｓ５においてＤＩＣＬＫパルスを生成する。Ｓ６においてデータバス５上の信号ＳＤＡＴをサンプリングする。このとき、サンプリング時点はＳ５のＤＩＣＬＫパルスによって決定される。Ｓ７において、現在のデータフレームの終わりに達したか否かを確認する。まだ終わりに達していない場合、上記のようなＤＩＣＬＫパルス生成及びサンプリングプロセス（Ｓ４〜Ｓ６）を繰り返し行い、フレーム内の次のデータビットをサンプリングする。フレームの終わりに達した場合、コントローラは待機状態（Ｓ１）に戻る。当然ながら、コントローラがフレームの制御部ＣＴＲＬ内の装置ＩＤを読み出したときに、そのコントローラの装置が宛先でないことが検出された場合、フレーム内のビットのサンプリングは、制御部ＣＴＲＬ内のその時点で終わりにしてもよい。
【００４９】
図７は、図５及び図６のＤＩＣＬＫ同期手順及びサンプリング手順を実施するように構成されたＤＩＣＬＫ生成構成要素２６を有するバスコントローラ６を示す図である。開始ビット検出器２６は受信器１２に接続される。開始ビット検出器２６は、受信データ信号１３における新たなフレームの開始ビットＳＢの立ち上がりエッジ１７（図５）を検出するように構成される。ＳＢ検出器２７は、開始ビットＳＢの検出をトリガにして、ＳＣＬＫ開始パルス選択器２８を作動させる。ＳＣＬＫ開始パルス選択器２８は、検出された開始ビットＳＢのタイミングに応じて、ＳＣＬＫ信号の中から、図５に示すような開始ビットＳＢの中央にあるパルスを選択する。ＳＣＬＫ分周器２９は、ＳＣＬＫ開始パルス選択器２８によって選択された前記パルスから開始して、ＳＣＬＫ信号を除数ｎ（例えば、ｎ＝４）で分周する。このようにしてＳＣＬＫ信号を縮小し、その縮小信号を開始ビットＳＢによって決まる開始パルス選択により位相調節することで生成された信号が、装置固有クロック信号ＤＩＣＬＫである。このＤＩＣＬＫ信号は受信器１２に供給され、受信器１２がバスライン１０上の信号をサンプリングしたり、駆動回路１１がデータ１３をバスに出力するタイミングを決定するのに使用される。
【００５０】
図８は、マスタからの要求フレーム１６’及びスレーブからの応答フレーム１６’’のシーケンスを示す高レベル図である（フレーム１６’、１６’’は図３で説明したフレーム１６に対応する）。まず、マスタはバスを駆動し、それと同時に、特定のスレーブ宛てに要求フレーム１６’を送信する。要求フレーム１６’の送信が完了すると、直ぐに遷移フェイズが開始される。遷移フェイズの開始時には、バスに信号を出力する装置が存在しないので、バスは浮動状態にある。次いで、要求フレーム１６’の宛先であるスレーブはバスの制御権を得て、バスを所定のレベルにする。実施形態によっては、マスタがこれを検出し、宛先のスレーブが要求フレーム１６’を受信したという確認とみなす場合がある。その後、或る遅延の後に、スレーブは応答フレーム１６’’をマスタに返す。応答フレーム１６’’の伝送が終了すると、バスはスレーブの制御を受けなくなる。
【００５１】
図９は、図８の要求−応答シーケンスに関係する図４〜図７のタイミング同期の詳細を示す図である。図９の下部に水平バーで示すように、マスタは時間間隔１８、２０中でデータバスを駆動し、スレーブは時間間隔１９の中でデータバスを駆動する。図９は更に、「ＤＩＣＬＫ＿ｍａｓｔｅｒ」及び「ＤＩＣＬＫ＿ｓｌａｖｅ」と呼ばれるマスタ及びスレーブのＤＩＣＬＫ信号のパルス列、及びバスライン上のデータ信号ＳＤＡＴも示している。簡略化のために、マスタの位置におけるＳＴＡＤ信号とスレーブの位置におけるＳＤＡＴ信号は区別していないが、そのタイミングは実際には伝送遅延によって異なる（すなわち、マスタが送信するデータのタイミングはスレーブの位置において遅延し、スレーブが送信するビットのタイミングはマスタの位置において遅延する）。本発明で使用されるサンプリング同期によれば、それらの伝送遅延が装置のサンプリング能力に影響を与えることはないので、図面では伝送遅延がないものと仮定している。
【００５２】
最初は、マスタがバスを制御している。まず、マスタはバスを論理０に駆動する。次にマスタは、開始ビットＳＢから開始して（図９には、伝送データフレームの２つの後続ビットしか描いていない）データフレームをバスに出力する。送信されるビットのタイミングはＤＩＣＬＫ＿ｍａｓｔｅｒ信号によって管理され、図４に関して説明したように、この信号は任意の位相を有するＳＣＬＫ信号から導出される。スレーブは、図５に関して説明した手順に従って、自分自身の内部クロック信号ＤＩＣＬＫ＿ｓｌａｖｅをマスタから送信されたフレームの開始ビットＳＢに同期させる。図９では、この同期手順が、開始ビットＳＢのエッジからＤＩＣＬＫ＿ｓｌａｖｅ信号の最初に同期されるパルスを指す矢印によって示されている。スレーブが自分自身の装置固有クロックを開始ビットＳＢに同期させると、スレーブは、入力フレームのビットをそのフレームのビットに同期させた状態で連続的にサンプリングすることが可能になる。フレームの終わりにおいて、マスタは１ビット周期の間ＳＤＡＴを論理０に駆動してからバスを解放する。他の装置がまだ制御権を得ていないので、バスは図９に２１で示すような中間レベル２１の浮動状態になる。
【００５３】
フレームによって宛先に指定されたスレーブは、フレームの終わりに達したことを認識する（例えば、フレームの長さが所定の固定数である場合、スレーブは開始ビットＳＢの後に続くビットの数をカウントすることでフレームの終わりを判断することができる）。２２において宛先のスレーブは、マスタがバスを解放した後１ビット周期以内にバスを論理０に駆動することによりバスの制御権を得る。マスタは、この論理０へのバスの駆動を宛先スレーブがそのフレームを受け取ったことの確認とみなす。ある遅延（図９では４ビット）の後、スレーブは応答フレームをバスに出力し始める。この場合も、出力は開始ビットＳＢから開始される。スレーブは、応答するまでにまだ時間が必要な場合、応答の準備ができるまでＳＤＡＴを論理０に維持する。実施形態によっては、応答までの制限時間を一定時間に予め定めておく場合もある。宛先のスレーブが最初の要求フレームの受領を確認しない場合、又は時間制限内に応答フレームを返さない場合、マスタはバスの制御権を再び得る。
【００５４】
スレーブの応答フレームが制限時間内に送信された場合、図９に２番目の矢印で示すように、マスタは自身の内部クロックＤＩＣＬＫ＿ｍａｓｔｅｒをスレーブの応答フレームの開始ビットＳＢに同期させ、スレーブの応答フレームのビットをサンプリングする。このとき、マスタは、そのサンプリングのタイミングを同期されたＤＩＣＬＫ＿ｍａｓｔｅｒ信号によって統制する。スレーブは、応答フレームの送信が終わると、バスを論理０に駆動して解放する。この場合も、２３においてバスの制御権を持つ装置がないので、バスは浮動状態になる。２４においてマスタはバスの制御権を再び得て、（例えば、図９における４ビット周期の後に）別のフレームを別のスレーブ又は同じスレーブに送信することができる。
【００５５】
図９の垂直破線は、どのＤＩＣＬＫパルスが、マスタ及びスレーブによるＳＤＡＴパルス（すなわち、ビット）の生成のトリガとなるかを示している。
【００５６】
図９から分かるように、説明した同期手順は、ＤＩＣＬＫ＿ｍａｓｔｅｒ信号の位相を上向き矢印で示すようにジャンプさせ、ＤＩＣＬＫ＿ｓｌａｖｅ信号の位相を右下がりの矢印で示すようにジャンプさせる。
【００５７】
図１０は割り込み手順の一実施形態を示す。Ｓ１１において、マスタは全てのスレーブに対し要求を次々と連続して送信する。宛先のスレーブは、その要求に応答して、応答フレームをマスタに返す。Ｓ１２において、スレーブが割り込み状態である場合、スレーブは、応答フレームの制御部ＣＴＲＬに割り込みビットを設定する。Ｓ１３において、マスタは、受信した応答のいずれかに割り込みビットが設定されているか否かを確認する。答えが肯定である場合、Ｓ１４において、マスタはスレーブに対し、スレーブからレジスタの内容を送ってもらうための要求を送信する。Ｓ１５において、その要求の宛先のスレーブは、要求された参照レジスタの内容を返す。マスタは、２以上のレジスタの内容が必要な場合、２以上の要求を送信することもでき（Ｓ１４）、スレーブは２以上の応答を返すことができる（Ｓ１５）。マスタは、スレーブのレジスタ（複数の場合もあり）に含まれる全ての割り込み関連情報を受信すると、Ｓ１６においてその割り込みを処理する。例えば、スレーブから特定のタスクを終了したという割り込みの通知があった場合、マスタは、そのタスクの終了を待っていたプロセスを再開させることができる。次にフローはＳ１１に戻り、マスタは新たな割り込み状態を認識することが出来る。Ｓ１３において答えが否定であった場合、それ以上の割り込み処理は何も行わずに、フローはＳ１１に直接戻る。
【００５８】
図３に関して述べたように、伝送するデータフレーム１６の一部または全部について、データ検査手順、例えば巡回冗長検査（ＣＲＣ）を任意選択で実施してもよい。ＣＲＣ手順の一実施形態を図１１に示す。図示の例では、データフレームを送信する装置で４つのＣＲＣビットＣＲＣ［３］、・・・、ＣＲＣ［０］を計算し、それらを伝送するデータフレームに付加している。例えば、駆動回路１１として機能する装置のバスコントローラ内のＣＲＣ発生器３４は、伝送すべきフレーム１６のビットから、４ビットフレーム検査シーケンスＦＣＳを生成するように構成される。ＣＲＣ発生器３４は、例えば原始多項式Ｐ（ｘ）＝ｘ４＋ｘ＋１を利用して、分周器を実施する。言い換えれば、ＣＲＣ発生器３４は、下記の関係に従ってフレーム１６内のビットから４つのＦＣＳビットＦＣＳ［３・・・０］を生成する。
ＦＣＳ［０］＝ｄ［２３］＾ｄ［２１］＾ｄ［１９］＾ｄ［１８］＾ｄ［１５］＾ｄ［１１］＾ｄ［１０］＾ｄ［９］＾ｄ［８］＾ｄ［６］＾ｄ［４］＾ｄ［３］＾ｄ［０］＾ＣＲＣ［０］
ＦＣＳ［１］＝ｄ［２３］＾ｄ［２２］＾ｄ［２１］＾ｄ［２０］＾ｄ［１８］＾ｄ［１６］＾ｄ［１５］＾ｄ［１２］＾ｄ［８］＾ｄ［７］＾ｄ［６］＾ｄ［５］＾ｄ［３］＾ｄ［１］＾ｄ［０］＾ＣＲＣ［１］
ＦＣＳ［２］＝ｄ［２３］＾ｄ［２２］＾ｄ［２１］＾ｄ［１９］＾ｄ［１７］＾ｄ［１６］＾ｄ［１３］＾ｄ［９］＾ｄ［８］＾ｄ［７］＾ｄ［６］＾ｄ［４］＾ｄ［２］＾ｄ［１］＾ＣＲＣ［２］
ＦＣＳ［３］＝ｄ［２３］＾ｄ［２２］＾ｄ［２０］＾ｄ［１８］＾ｄ［１７］＾ｄ［１４］＾ｄ［１０］＾ｄ［９］＾ｄ［８］＾ｄ［７］＾ｄ［５］＾ｄ［３］＾ｄ［２］＾ＣＲＣ［３］
【００５９】
ここで、記号「＾」は排他的ＯＲ（ＸＯＲ）演算を意味する。図３に示すように、開始ビットを除いたフレームは２４個のビットｄ［２３・・・０］に４個のＣＲＣビットＣＲＣ［３・・・０］を加えたものからなり、ビットｄ［２３・・・１６］はフレームの制御ビットＣＴＲＬ［７・・・０］を表し、ビットｄ［１５・・・８］はフレームのアドレスビットＡＤＤＲ［７・・・０］を表し、ビットｄ［７・・・０］はフレームのデータビットＤＡＴＡ［７・・・０］を表している。
【００６０】
ＣＲＣ発生器３４を作動させる前に、フレームのＣＲＣビットを予め論理１に設定しておく。次に、ＣＲＣ発生器３４でフレーム１６ａのフレーム検査シーケンスＦＣＳを計算する。次に、そのＦＣＳをＣＲＣビットＣＲＣ［３・・・０］（矢印３６参照）に書き込み、得られたフレーム１６ｂをデータバスを介して伝送する（矢印３８参照）。
【００６１】
受信器１２として機能する装置のバスコントローラは、受信器のＣＲＣ発生器３４を使用し、受信したフレーム１６’を同じ多項式分周器に通す。そして、得られたフレーム検査シーケンスＦＣＳ’（多項式除算の余り）を、伝送エラーがない場合に期待されるビットシーケンス＆ｂ１１１１と比較する。ＦＣＳ’と＆ｂ１１１１の間の不一致はいずれも、伝送されたフレーム１６ｂ’のビットエラーを意味する。その場合、伝送された誤りのあるフレーム１６’は破棄され、フレーム１６の伝送が再度行われる。
【００６２】
図１２は、前の図面に関して説明したように、シリアルバスシステム１を備えたインクジェットプリンタ３９の概略図である。プリンタ３９は大判プリンタであり、ＤＩＮ  Ａ１／ＡＮＳＩ  Ｄ、ＤＩＮ  Ａ０／ＡＮＳＩ  Ｅのプリント幅、又はさらに大きな用紙フォーマットを有する。プリンタ３９は複数（例えば、４個）のプリントヘッド４０を有し、各プリントヘッド４０が各自のプリントヘッドコントローラ４１に接続される。プリントヘッド４０とコントローラ４１は、往復移動するキャリッジ４２に搭載される。全体プリントコントローラ４３は、プリンタ３９に固定的に配置される。プリントコントローラ４３は、印刷すべき画像を表す画像データを外部から受信し、そのデータに対して印刷準備処理を実施するように構成される。プリントコントローラ４３は処理した画像データを出力し、その画像データがプリントヘッドコントローラ４１によって更に処理され、プリントヘッド４０によるインク塗布作業を制御するための制御信号が生成される。この制御は、例えば、プリントヘッドに配置されたインクノズルを制御することによって行われる。
【００６３】
プリントコントローラ４３とプリントヘッドコントローラ４１はシリアルバス５によって接続され、それらは図１〜図１１に関して説明したようなバスコントローラを有する。上で述べたようなマスタ装置及びスレーブ装置２、３、４に対応させた場合、プリントコントローラ４３はマスタ装置であり、プリントヘッドコントローラ４１はスレーブ装置である。プリンタ３９は共有クロックを更に有する。共有クロックは、例えばプリントコントローラ４３の一部である。コントローラ４１及び４３は全て図７に示したようなＤＩＣＬＫ生成構成要素２６を有し、前の図面に関して説明したようにその装置固有クロック信号をバス５上のデータ信号に同期させる。
【００６４】
図１２に示す実施形態では、バスライン１０とクロックライン８が共通のケーブルに結合され、２本のラインが並列に配置される。ケーブルは最大で数ｍの長さを持ち、プリントヘッドコントローラ４１をプリントコントローラ４３に対して相対移動できるように、柔軟なものが使用される。
【００６５】
プリンタ３９の形によっては、ケーブルはもっと長くすることもでき、例えば５ｍ程度にすることも出来る。説明した同期−非同期を組み合わせた同期技術によれば、バスの長さに関係なくデータを高いデータ伝送速度（最大で毎秒Ｇビットまで）で伝送することができ、それでもコントローラ４３、４１は個々のクロックを必要としない。
【００６６】
本明細書において言及した刊行物及び既存のシステムは全て、参照により本明細書に取り込まれる。
【００６７】
本明細書では本発明の教示に従って構成された特定の方法及び製品について説明しているが、本発明の範囲がそれらに限定されることはない。本発明の範囲は、特許請求の範囲に文字通り入る実施形態も均等論によって入る実施形態も含めて、特許請求の範囲に事実上含まれる本発明の教示の実施形態を全て含む。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態によるシリアルバスシステムのアーキテクチャを示す図である。
【図２】図１のシリアルバスシステムに使用されるバスコントローラ、バスライン、及び差分伝送技術を示す概略図である。
【図３】図１のシリアルバスシステムを介したデータ通信に使用されるデータフレーム構造の例を示す概略図である。
【図４】図１のシリアルバスシステムにおいて使用されるデータ信号、駆動回路の装置固有クロック信号、及び共有クロック信号のパルス列の例を示す図である。
【図５】本発明の一実施形態による受信器の装置固有クロック信号をデータ信号に同期させる方法を示す図である。データ信号、受信器の装置固有クロック信号、及び共有クロック信号のパルス列を例として示している。
【図６】図５のクロック同期・サンプリング手順の詳細を示す、本発明の一実施形態によるフロー図である。
【図７】本発明の一実施形態による、装置固有クロック信号を導出するように構成された構成要素を有するバスコントローラを示す図である。
【図８】マスタ装置からの要求及びスレーブ装置からの応答のシーケンスの例を示す高レベル図である。
【図９】本発明の一実施形態による、図８の要求−応答シーケンスに関係する図４〜図７のタイミング同期の詳細を示す図である。。
【図１０】割り込みプロセスの例を示すフロー図である。
【図１１】ＣＲＣ処理の一実施形態を示す図である。
【図１２】本発明の一実施形態による、プリントコントローラとプリントヘッドコントローラを接続するシリアルバスシステムを備えたインクジェットプリンタの例を示す概略図である。
【図１】
2006120146.tif 000003
【図２】
2006120146.tif 000004
【図３】
2006120146.tif 000005
【図４】
2006120146.tif 000006
【図５】
2006120146.tif 000007
【図６】
2006120146.tif 000008
【図７】
2006120146.tif 000009
【図８】
2006120146.tif 000010
【図９】
2006120146.tif 000011
【図１０】
2006120146.tif 000012
【図１１】
2006120146.tif 000013
【図１２】
2006120146.tif 000014