(57)【要約】【課題】駆動される回路装置の個数に応じて、出力バッファーの駆動能力を可変に設定できる制御装置及びシステム等を提供すること。【解決手段】制御装置４００は、バスＢＳＧを介して接続される第１〜第ｎ（ｎは２以上の整数）の回路装置１００−１〜１００−ｎを制御する。制御装置４００は、バスＢＳＧの第１の信号線ＳＧ１に接続される制御装置側入出力回路ＩＯＸと、制御装置側入出力回路ＩＯＸの制御装置側出力バッファーＯＢＸの駆動能力を設定するための制御装置側駆動能力設定レジスターＲＡと、制御部４１０とを含む。制御部４１０は、第１〜第ｎの回路装置１００−１〜１００−ｎの第１〜第ｎのレジスター部ＲＥＧ１〜ＲＥＧｎに対してレジスター値を書き込むための書き込み制御を行い、バスＢＳＧを介した通信において通信エラーが発生した場合には、制御装置側出力バッファーＯＢＸの駆動能力を増加させる設定を行う。【選択図】図１
2011224944.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して接続される第１の回路装置〜第ｎ（ｎは２以上の整数）の回路装置を制御する制御装置であって、
前記バスの第１の信号線に接続される制御装置側入出力回路と、
前記制御装置側入出力回路の制御装置側出力バッファーの駆動能力を設定するための制御装置側駆動能力設定レジスターと、
制御部とを含み、
前記制御部は、
前記第１の回路装置〜前記第ｎの回路装置の第１のレジスター部〜第ｎのレジスター部に対してレジスター値を書き込むための書き込み制御を行い、
前記バスを介した通信において通信エラーが発生した場合には、前記制御装置側駆動能力設定レジスターに前記制御装置側出力バッファーの駆動能力を増加させる設定を行うことを特徴とする制御装置。
【請求項２】
請求項１において、
前記制御部は、
前記制御装置側駆動能力設定レジスターに対して初期値を設定し、
前記第１の回路装置〜前記第ｎの回路装置の前記第１のレジスター部〜前記第ｎのレジスター部に対してレジスター値を書き込むための第１の書き込み動作〜第ｎの書き込み動作の制御を行い、
前記第１の書き込み動作〜前記第ｎの書き込み動作のいずれかの書き込み動作において通信エラーが発生した場合には、前記制御装置側駆動能力設定レジスターに前記制御装置側出力バッファーの駆動能力を増加させる設定を行うことを特徴とする制御装置。
【請求項３】
請求項１又は２において、
前記第１の回路装置〜前記第ｎの回路装置の各回路装置は、
前記第１の信号線に接続される回路装置側入出力回路と、
前記回路装置側入出力回路の回路装置側出力バッファーの駆動能力を設定するための回路装置側駆動能力設定レジスターを含み、
前記制御部は、
前記制御装置側駆動能力設定レジスターにレジスター値が設定された後に、前記回路装置側駆動能力設定レジスターに対してレジスター値を書き込むための制御を行うことを特徴とする制御装置。
【請求項４】
請求項３において、
前記制御部は、
前記回路装置側駆動能力設定レジスターに対してレジスター値が書き込まれた後に、前記回路装置側駆動能力設定レジスターからのレジスター値の読み出し制御を行い、
レジスター値の読み出し動作において通信エラーが発生した場合には、駆動能力を増加させるレジスター値を、前記回路装置側駆動能力設定レジスターに書き込むための制御を行うことを特徴とする制御装置。
【請求項５】
請求項３又は４において、
前記制御部は、
前記回路装置側駆動能力設定レジスターに対して初期値を書き込み、
前記第１の回路装置〜前記第ｎの回路装置の前記回路装置側駆動能力設定レジスターからレジスター値を読み出すための第１の読み出し動作〜第ｎの読み出し動作の制御を行い、
前記第１の読み出し動作〜前記第ｎの読み出し動作のいずれかの読み出し動作において通信エラーが発生した場合には、駆動能力を増加させるレジスター値を、前記回路装置側駆動能力設定レジスターに書き込むための制御を行うことを特徴とする制御装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記第１の回路装置〜前記第ｎの回路装置は、メモリーを含む記憶装置であることを特徴とする制御装置。
【請求項７】
請求項６において、
前記記憶装置は、液体容器に設けられた記憶装置であることを特徴とする制御装置。
【請求項８】
請求項１乃至７のいずれかに記載の制御装置とホスト装置とを含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及びシステム等に関する。
【背景技術】
【０００２】
バスを介して接続される複数の回路装置とそれらを制御する制御装置とを含むシステムにおいて、接続される回路装置の個数が変化する場合がある。例えば、メモリーシステムなどでは、必要とする記憶容量に応じて、搭載されるメモリー装置の個数が増減する。またプリンターなどでは、プリンターの仕様やインクカートリッジの種類に応じて、装着されるインクカートリッジの個数が増減する。このようなシステムでは、出力バッファーの駆動能力を、接続可能な最大の回路装置数に対応させて設定すると、回路装置数が少ない場合には駆動能力が過大になりオーバーシュート等の信号品質の劣化や妨害電磁波の発生などが生じるおそれがある。
【０００３】
この課題に対して例えば特許文献１には、搭載されるメモリー装置の個数を検出して、駆動能力を可変に設定する手法が開示されている。
【０００４】
しかしながらこの手法では、回路装置の個数に応じて駆動能力を可変に設定できるが、設定された駆動能力で確実にデータの送信が行われたかどうかをチェックして、その結果により駆動能力を設定し直すことができないなどの課題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−４６５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の幾つかの態様によれば、駆動される回路装置の個数に応じて、出力バッファーの駆動能力を可変に設定できる制御装置及びシステム等を提供できる。
【課題を解決するための手段】
【０００７】
本発明の一態様は、バスを介して接続される第１の回路装置〜第ｎ（ｎは２以上の整数）の回路装置を制御する制御装置であって、前記バスの第１の信号線に接続される制御装置側入出力回路と、前記制御装置側入出力回路の制御装置側出力バッファーの駆動能力を設定するための制御装置側駆動能力設定レジスターと、制御部とを含み、前記制御部は、前記第１の回路装置〜前記第ｎの回路装置の第１のレジスター部〜第ｎのレジスター部に対してレジスター値を書き込むための書き込み制御を行い、前記バスを介した通信において通信エラーが発生した場合には、前記制御装置側駆動能力設定レジスターに前記制御装置側出力バッファーの駆動能力を増加させる設定を行う制御装置に関係する。
【０００８】
本発明の一態様によれば、第１〜第ｎの回路装置の有する第１〜第ｎのレジスター部に対してレジスター値を書き込む際に、制御装置側出力バッファーの駆動能力を通信エラーが発生しないように設定することができる。その結果、バスに接続される回路装置の個数が多く、バスの配線負荷が大きい場合であっても、通信エラーが発生せずに確実にデータを送信することなどが可能になる。また回路装置数に対して駆動能力を過大に設定することを防止できるから、オーバーシュート及びアンダーシュートなどによる信号品質の劣化や、クロストークによる他の信号線への干渉や、ノイズによる他の電子機器へのＥＭＩ（Electro Magnetic Interference）などを低減することが可能になる。
【０００９】
また本発明の一態様では、前記制御部は、前記制御装置側駆動能力設定レジスターに対して初期値を設定し、前記第１の回路装置〜前記第ｎの回路装置の前記第１のレジスター部〜前記第ｎのレジスター部に対してレジスター値を書き込むための第１の書き込み動作〜第ｎの書き込み動作の制御を行い、前記第１の書き込み動作〜前記第ｎの書き込み動作のいずれかの書き込み動作において通信エラーが発生した場合には、前記制御装置側駆動能力設定レジスターに前記制御装置側出力バッファーの駆動能力を増加させる設定を行ってもよい。
【００１０】
このようにすれば、バスに接続された例えば全ての回路装置に対して通信エラーが発生せずにデータを送信できるように、制御装置側出力バッファーの駆動能力を設定することができる。
【００１１】
また本発明の一態様では、前記第１の回路装置〜前記第ｎの回路装置の各回路装置は、前記第１の信号線に接続される回路装置側入出力回路と、前記回路装置側入出力回路の回路装置側出力バッファーの駆動能力を設定するための回路装置側駆動能力設定レジスターを含み、前記制御部は、前記制御装置側駆動能力設定レジスターにレジスター値が設定された後に、前記回路装置側駆動能力設定レジスターに対してレジスター値を書き込むための制御を行ってもよい。
【００１２】
このようにすれば、制御装置側出力バッファーの駆動能力が設定された後に、回路装置側駆動能力設定レジスターに対してレジスター値を書き込むことができるから、回路装置側駆動能力設定レジスターに確実にレジスター値を書き込むことができる。その結果、回路装置側出力バッファーの駆動能力を確実に設定することができる。
【００１３】
また本発明の一態様では、前記制御部は、前記回路装置側駆動能力設定レジスターに対してレジスター値が書き込まれた後に、前記回路装置側駆動能力設定レジスターからのレジスター値の読み出し制御を行い、レジスター値の読み出し動作において通信エラーが発生した場合には、駆動能力を増加させるレジスター値を、前記回路装置側駆動能力設定レジスターに書き込むための制御を行ってもよい。
【００１４】
このようにすれば、回路装置からレジスター値を読み出す際に、回路装置側出力バッファーの駆動能力を通信エラーが発生しないように設定することができる。その結果、バスに接続される回路装置の個数が多く、バスの配線負荷が大きい場合であっても、通信エラーが発生せずに確実に回路装置からのデータを受信することが可能になる。
【００１５】
また本発明の一態様では、前記制御部は、前記回路装置側駆動能力設定レジスターに対して初期値を書き込み、前記第１の回路装置〜前記第ｎの回路装置の前記回路装置側駆動能力設定レジスターからレジスター値を読み出すための第１の読み出し動作〜第ｎの読み出し動作の制御を行い、前記第１の読み出し動作〜前記第ｎの読み出し動作のいずれかの読み出し動作において通信エラーが発生した場合には、駆動能力を増加させるレジスター値を、前記回路装置側駆動能力設定レジスターに書き込むための制御を行ってもよい。
【００１６】
このようにすれば、バスに接続された例えば全ての回路装置から、通信エラーが発生せずに確実にデータを受信できるように、回路装置側出力バッファーの駆動能力を設定することができる。
【００１７】
また本発明の一態様では、前記第１の回路装置〜前記第ｎの回路装置は、メモリーを含む記憶装置であってもよい。
【００１８】
また本発明の一態様では、前記記憶装置は、液体容器に設けられた記憶装置であってもよい。
【００１９】
本発明の他の態様は、上記のいずれかに記載の制御装置とホスト装置とを含むことを特徴とするシステムに関係する。
【図面の簡単な説明】
【００２０】
【図１】制御装置及び回路装置の基本的な構成例。
【図２】出力バッファーの詳細な構成例。
【図３】レジスター値ａ、ｂと付加的な出力バッファーとの関係を説明する図。
【図４】制御装置の動作を説明するフローチャート。
【図５】制御装置の動作を説明するフローチャート。
【図６】制御装置を含むシステムの基本的な構成例。
【図７】液体容器の詳細な構成例。
【図８】図８（Ａ）、図８（Ｂ）は、回路基板の詳細な構成例。
【発明を実施するための形態】
【００２１】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２２】
１．制御装置
図１に本実施形態の制御装置４００及び回路装置１００の基本的な構成例を示す。本実施形態の制御装置４００は、バスＢＳＧを介して接続される第１〜第ｎ（ｎは２以上の整数）の回路装置１００−１〜１００−ｎを制御する。制御装置４００は、制御装置側入出力回路ＩＯＸ、制御装置側駆動能力設定レジスターＲＡ及び制御部４１０を含む。なお、本実施形態の制御装置４００は図１の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００２３】
制御装置側入出力回路ＩＯＸは、制御装置側出力バッファーＯＢＸ及び制御装置側入力バッファーＩＢＸを含み、バスＢＳＧの第１の信号線ＳＧ１に接続される。なお、図１では、第１の信号線ＳＧ１のみを示してあり、バスの他の信号線については図示していない。
【００２４】
制御装置側駆動能力設定レジスターＲＡは、制御装置側出力バッファーＯＢＸの駆動能力を設定するためのレジスター値ａを格納する。ＯＢＸの駆動能力は、ＲＡのレジスター値ａに基づいて可変に設定される。ＯＢＸの詳細な構成については、後で説明する。
【００２５】
また制御装置４００は、回路装置側出力バッファーＯＢＹ１〜ＯＢＹｎの駆動能力を設定するためのレジスター値ｂを格納するレジスターＲＢと、所定の回路装置数を設定するためのレジスター値ｃを格納するレジスターＲＣとを含んでもよい。
【００２６】
第１〜第ｎの回路装置１００−１〜１００−ｎは、回路装置側入出力回路ＩＯＹ１〜ＩＯＹｎ及び第１〜第ｎのレジスター部ＲＥＧ１〜ＲＥＧｎを含む。そして第１〜第ｎのレジスター部ＲＥＧ１〜ＲＥＧｎは、回路装置側出力バッファーＯＢＹ１〜ＯＢＹｎの駆動能力を設定するためのレジスター値ｂを格納する回路装置側駆動能力設定レジスターＲＹＢを含む。ＯＢＹ１〜ＯＢＹｎの駆動能力は、各回路装置のＲＹＢのレジスター値ｂに基づいて可変に設定される。ＯＢＹ１〜ＯＢＹｎの詳細な構成については、後で説明する。
【００２７】
回路装置側入出力回路ＩＯＹ１〜ＩＯＹｎは、回路装置側出力バッファーＯＢＹ１〜ＯＢＹｎ及び回路装置側入力バッファーＩＢＹ１〜ＩＢＹｎをそれぞれ含み、バスの第１の信号線ＳＧ１に接続される。
【００２８】
本実施形態の制御装置４００によれば、バスＢＳＧを介して接続された第１〜第ｎの回路装置１００−１〜１００−ｎに対して信号を送信するための出力バッファーＯＢＸの駆動能力を、回路装置数に応じて最適な値に近づけることができる。
【００２９】
制御部４１０は、第１〜第ｎの回路装置１００−１〜１００−ｎの第１〜第ｎのレジスター部ＲＥＧ１〜ＲＥＧｎに対してレジスター値を書き込むための書き込み制御を行う。そして上記の書き込み動作において通信エラーが発生した場合には、制御装置側駆動能力設定レジスターＲＡに、制御装置側出力バッファーＯＢＸの駆動能力を増加させる設定を行う。
【００３０】
具体的には、制御部４１０は、始めに制御装置側駆動能力設定レジスターＲＡに対して初期値を設定する。この初期値は、例えば所定の回路装置数に対応して設定され、この初期値に基づいて、制御装置側出力バッファーＯＢＸの駆動能力の初期設定が行われる。次に制御部４１０は、第１〜第ｎのレジスター部ＲＥＧ１〜ＲＥＧｎに対してレジスター値を書き込むための第１〜第ｎの書き込み動作の制御を行う。そして第１〜第ｎの書き込み動作のいずれかの書き込み動作において通信エラーが発生した場合には、制御装置側駆動能力設定レジスターＲＡに制御装置側出力バッファーＯＢＸの駆動能力を増加させる設定を行う。この設定は、ＲＡのレジスター値ａを例えば増加させることにより行われる。
【００３１】
このようにすることで、回路装置数に対応して、制御装置側出力バッファーの駆動能力を可変に設定することができる。その結果、バスに接続される回路装置の個数が多く、バスの配線負荷が大きい場合であっても、接続された全ての回路装置に対して、通信エラーが発生せずに確実にデータを送信することができる。また、回路装置数に対して駆動能力を過大に設定することを防止できるから、オーバーシュート及びアンダーシュートなどによる信号品質の劣化や、クロストークによる他の信号線への干渉や、ノイズによる他の電子機器へのＥＭＩ（Electro Magnetic Interference）などを低減することが可能になる。
【００３２】
また本実施形態の制御装置４００によれば、バスを介して接続された第１〜第ｎの回路装置１００−１〜１００−ｎから制御装置４００へ信号を送信するための出力バッファーＯＢＹ１〜ＯＢＹｎの駆動能力を、回路装置数に応じて最適な値に近づけることができる。
【００３３】
制御部４１０は、制御装置側駆動能力設定レジスターＲＡにレジスター値（最適化された駆動能力に対応するレジスター値）ａが設定された後に、回路装置側駆動能力設定レジスターＲＹＢに対してレジスター値ｂを書き込むための制御を行う。このようにすれば、制御装置４００の出力バッファーＯＢＸの駆動能力が最適化されているから、ＲＹＢに対してレジスター値ｂを確実に書き込むことができる。そしてＲＹＢにレジスター値ｂが書き込まれた後に、ＲＹＢからのレジスター値ｂの読み出し制御を行う。この読み出し動作において通信エラーが発生した場合には、レジスター値ｂを増加させ、この増加されたレジスター値ｂをＲＹＢに書き込むための制御を行う。
【００３４】
具体的には、制御部４１０は、始めに各回路装置のＲＹＢに対して初期値を書き込む。この初期値は、例えば所定の回路装置数に対応して設定され、この初期値に基づいて、回路装置側出力バッファーＯＢＹ１〜ＯＢＹｎの駆動能力の初期設定が行われる。次に制御部４１０は、各回路装置のＲＹＢからレジスター値ｂ（始めに書き込まれた初期値）を読み出すための第１〜第ｎの読み出し動作の制御を行う。そして第１〜第ｎの読み出し動作のいずれかの読み出し動作において通信エラーが発生した場合には、レジスター値ｂを増加させて、この増加されたレジスター値ｂを各回路装置のＲＹＢに書き込むための制御を行う。
【００３５】
このようにすることで、回路装置数に対応して、回路装置側出力バッファーの駆動能力を可変に設定することができる。その結果、バスに接続される回路装置の個数が多く、バスの配線負荷が大きい場合であっても、接続された全ての回路装置から、通信エラーが発生せずに確実にデータを受信することができる。また、回路装置数に対して駆動能力を過大に設定することを防止できるから、オーバーシュート及びアンダーシュートなどによる信号品質の劣化や、クロストークによる他の信号線への干渉や、ノイズによる他の電子機器へのＥＭＩなどを低減することが可能になる。
【００３６】
なお、出力バッファーの駆動能力を最適化するための制御については、図４、図５のフローチャートにより、さらに詳細に説明する。
【００３７】
２．出力バッファー
図２に、本実施形態の制御装置側出力バッファーＯＢＸの詳細な構成例を示す。出力バッファーＯＢＸは、基本の出力バッファーＢＦＡ及び３つの付加的な出力バッファーＢＦ１〜ＢＦ３を含む。出力バッファーＢＦＡ、ＢＦ１〜ＢＦ３は、それぞれＰ型トランジスターとＮ型トランジスターとで構成される。また、Ｐ型トランジスターＴＰ１〜ＴＰ３及びＮ型トランジスターＴＮ１〜ＴＮ３は３つの付加的な出力バッファーＢＦ１〜ＢＦ３を選択するためのトランジスターである。なお、本実施形態の出力バッファーＯＢＸは図２の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば、付加的な出力バッファーの個数は３に限定されるものではなく、２或いは４以上であってもよい。
【００３８】
本実施形態の制御装置側出力バッファーＯＢＸでは、制御装置側駆動能力設定レジスターＲＡのレジスター値ａに基づいて出力バッファーの駆動能力が可変に設定される。図２では、ＲＡのレジスター値ａは３ビットで構成され、１〜７の値をとることができる。例えばａ＝１（すなわち２進数で００１）の場合には、ＢＦ１が選択され、ＢＦ２、ＢＦ３が非選択になる。また、ａ＝５（すなわち２進数で１０１）の場合には、ＢＦ１とＢＦ３が選択され、ＢＦ２が非選択になる。
【００３９】
具体的には、ａ＝１の場合には、ノードＮ１はＨレベル（高電位レベル、ＶＤＤレベル）に設定され、ノードＮ２、Ｎ３はＬレベル（低電位レベル、ＶＳＳレベル）に設定される。従って、ＴＮ１、ＴＰ１がオン状態になり、ＴＮ２、ＴＰ２、ＴＮ３、ＴＰ３がオフ状態になるから、ＢＦ１が選択され、ＢＦ２、ＢＦ３が非選択になる。すなわち、基本の出力バッファーＢＦＡと付加的な出力バッファーＢＦ１とが有効な出力バッファーとして動作する。
【００４０】
またａ＝５の場合には、ノードＮ１、Ｎ３はＨレベルに設定され、ノードＮ２はＬレベルに設定される。従って、ＴＮ１、ＴＰ１、ＴＮ３、ＴＰ３がオン状態になり、ＴＮ２、ＴＰ２がオフ状態になるから、ＢＦ１、ＢＦ３が選択され、ＢＦ２が非選択になる。すなわち、基本の出力バッファーＢＦＡと付加的な出力バッファーＢＦ１、ＢＦ３とが有効な出力バッファーとして動作する。
【００４１】
このようにして、出力バッファーの駆動能力を７段階に設定することができる。なお、ａ＝０の場合も含めて、８段階に設定することもできる。ａ＝０の場合には、基本の出力バッファーＢＦＡだけが有効な出力バッファーとして動作する。
【００４２】
付加的な出力バッファーＢＦ１〜ＢＦ３の駆動能力は、各出力バッファーを構成するトランジスターのゲート幅（チャネル幅）に比例する。例えばＢＦ１のゲート幅をＷＧとした場合に、ＢＦ２のゲート幅を２×ＷＧ、ＢＦ３のゲート幅を４×ＷＧに設定すれば、ＢＦ２の駆動能力はＢＦ１の２倍になり、ＢＦ３の駆動能力はＢＦ１の４倍になる。
【００４３】
以上は、制御装置側出力バッファーＯＢＸについての説明であるが、回路装置側出力バッファーＯＢＹ１〜ＯＢＹｎについても、図２と同様な構成をとることができる。すなわち回路装置側駆動能力設定レジスターＲＹＢのレジスター値ｂに基づいて出力バッファーの駆動能力が可変に設定される。例えばＲＹＢのレジスター値ｂが３ビットで構成される場合には、出力バッファーの駆動能力を７段階に設定することができる。
【００４４】
図３に、ＲＡ又はＲＹＢのレジスター値ａ、ｂと付加的な出力バッファーＢＦ１〜ＢＦ３との関係を示す。ＢＦ１〜ＢＦ３のうちの選択される出力バッファーを「１」で示し、非選択の出力バッファーを「０」で示す。図３では、ＢＦ１のゲート幅をＷＧとした場合に、ＢＦ２のゲート幅を２×ＷＧ、ＢＦ３のゲート幅を４×ＷＧに設定している。このようにすることで、例えばａ＝３（又はｂ＝３）の場合には、ＢＦ１、ＢＦ２が選択されるから、ＢＦ１の３倍の駆動能力を有する出力バッファーが付加されることになる。またａ＝７（又はｂ＝７）の場合には、ＢＦ１、ＢＦ２、ＢＦ３が選択されるから、ＢＦ１の７倍の駆動能力を有する出力バッファーが付加されることになる。
【００４５】
以上説明したように、本実施形態の出力バッファーによれば、駆動能力設定レジスターのレジスター値に基づいて、駆動能力を段階的に可変に設定することができる。こうすることで、バスに接続される回路装置の個数に応じて駆動能力を最適な値に近づけることが可能になる。
【００４６】
３．制御装置の動作
図４、図５は、本実施形態の制御装置４００の動作を説明するフローチャートである。以下では、図４、図５に示すステップＳ１〜Ｓ３８に従って、制御装置４００の動作を説明する。
【００４７】
図４に示す第１の制御フローでは、最初に、バスに接続される回路装置の個数（所定の回路装置数）ｃを設定する（ステップＳ１）。例えば図４のフローチャートでは、ｃ＝４に設定する。次に、回路装置の有無を検出する（ステップＳ２）。この検出手法としては、様々な手法をとることができる。例えば、各回路装置に予め検出用の抵抗素子を設けておき、バスに接続された各回路装置の抵抗素子の合成抵抗値から回路装置の個数を検出する手法などがある。検出の結果に基づいて、所定の個数の回路装置が適正に接続されているか否かを判断する（ステップＳ３）。所定の個数の回路装置が適正に接続されていない場合には、回路装置無し（ステップＳ１７）と判断して、制御を終了する。
【００４８】
所定の個数の回路装置が適正に接続されている場合には、制御装置の出力バッファーＯＢＸの駆動能力を設定するためのレジスター値ａ及び各回路装置の出力バッファーＯＢＹ１〜ＯＢＹｃの駆動能力を設定するためのレジスター値ｂの初期値を設定する（ステップＳ４）。例えば図４では、所定の回路装置数ｃ＝４に対応して、ａ＝４、ｂ＝４に設定している。
【００４９】
次に、制御装置側駆動能力設定レジスターＲＡ、回路装置側駆動能力設定レジスターＲＢ、所定の回路装置数を設定するためのレジスターＲＣに、上記のレジスター値（初期値）ａ、ｂ、ｃをセットする（ステップＳ５）。
【００５０】
次に、通信リトライカウンターｍに初期値をセットする（ステップＳ６）。この初期値は、通信エラーが発生した場合に、通信をリトライする回数の上限値である。例えば図４では、ｍ＝３に設定している。そして第１の回路装置から第ｃの回路装置まで、各回路装置の駆動能力設定レジスターＲＹＢにレジスター値ｂを書き込む（ステップＳ７〜Ｓ１０）。また、レジスター値ｂ以外に、通信エラー発生率の高いテストパターンを書き込んでも良い。通信エラー発生率の高いテストパターンで書き込みを行うことで、より精度の高い駆動能力設定が可能になる。
【００５１】
上記の書き込み動作の終了後に、通信エラーが発生したか否かを判断する（ステップＳ１１）。この判断には、パリティチェックなどを用いる。各回路装置で制御装置からの書き込みデータのエラー判定（パリティチェック）を行い、通信エラーが発生しているか判定する。各回路装置でエラー判定後、エラー判定の結果を各回路装置から制御装置へ返送する（例えば、通信エラー無しの場合に１、通信エラー有りの場合に０を返送する）。エラー判定結果を返送する際に、制御装置と回路装置との間で実行される通信において通常用いられる通信速度よりも遅い通信速度で返送することで、信頼できるデータ転送が可能である。通信エラーが発生しない場合には、図５のフローチャートに進む。
【００５２】
通信エラーが発生した場合には、上記の書き込み動作を繰り返す。すなわち、ステップＳ１２、Ｓ１３を経てステップＳ７に戻り、各回路装置のレジスターＲＹＢに再度レジスター値ｂを書き込む（ステップＳ７〜Ｓ１０）。そして通信エラーの有無を判断し（ステップＳ１１）、通信エラーが発生した場合には、さらに書き込み動作を繰り返す。
【００５３】
書き込み動作の繰り返し回数が通信リトライ回数の上限値に達しても通信エラーが発生する場合には、制御装置の出力バッファーＯＢＸの駆動能力を増加させる設定を行う。すなわち、ＯＢＸの駆動能力を設定するためのレジスター値ａの値を１だけ増加させて（ステップＳ１４、Ｓ１５）、ステップＳ５に戻る。そして上記の書き込み動作を繰り返し（ステップＳ７〜Ｓ１０）、通信エラーの有無を判断する（ステップＳ１１）。通信エラーが発生する場合は、さらにレジスター値ａを増加させる（ステップＳ１５）。
【００５４】
このようにして、通信エラーが発生しなくなるまでレジスター値ａを増加させ、通信エラーが解消されれば、レジスター値ａの最適化が完了し、図５のフローチャートに進む。しかしレジスター値ａの上限値（図４ではａ＝７）に達しても通信エラーが発生する場合には、回路装置への書き込みフェイタルエラーと判断して（ステップＳ１６）、制御を終了する。
【００５５】
図５に示す第２の制御フローでは、各回路装置の出力バッファーＯＢＹ１〜ＯＢＹｃの駆動能力を設定するためのレジスター値ｂの最適化を実行する。最初に、制御装置側駆動能力設定レジスターＲＡ及び回路装置側駆動能力設定レジスターＲＢに、最適化されたレジスター値ａ及びレジスター値ｂの初期値（ｂ＝４）をセットする（ステップＳ１８）。
【００５６】
次に、通信リトライカウンターｍに初期値（ｍ＝３）をセットして（ステップＳ１９）、第１の回路装置から第ｃの回路装置まで、各回路装置の駆動能力設定レジスターＲＹＢにレジスター値ｂを書き込む（ステップＳ２０〜Ｓ２３）。書き込み動作の終了後に、通信エラーが発生したか否かを判断する（ステップＳ２４）。この判断は、図４のステップＳ１１と同様に行うことができる。こうすることで、レジスター値ｂが確実に回路装置のレジスターＲＹＢに書き込まれたことを確認できる。
【００５７】
通信エラーが発生した場合には、書き込み動作を繰り返す。書き込み動作の繰り返し回数が上限値に達しても通信エラーが発生する場合には、レジスター値ａが不適当である可能性があるから、図４のステップＳ２に戻って、再度レジスター値ａの最適化をやり直す。
【００５８】
通信エラーが発生しない場合には、通信リトライカウンターｍに初期値（ｍ＝３）をセットして（ステップＳ２７）、各回路装置からレジスターＲＹＢに書き込まれたレジスター値ｂを読み出す（ステップＳ２８〜Ｓ３１）。読み出し動作の終了後に、通信エラーが発生したか否かを判断する（ステップＳ３２）。この判断は、制御装置から回路装置に送信したレジスター値ｂと、制御装置が回路装置から受信したレジスター値ｂとが一致するか否かで判断することができる。レジスター値ｂ以外に、通信エラー発生率の高いテストパターンも書き込んでいる場合には、回路装置からテストパターンの書き込みを行なったレジスターの値も読み出すことで、より精度の高い駆動能力設定が可能になる。
【００５９】
通信エラーが発生しない場合には、２つのレジスター値ａ、ｂの最適化が完了し（ステップＳ３７）、制御を終了する。
【００６０】
通信エラーが発生した場合には、上記の読み出し動作を繰り返す。すなわち、ステップＳ３３、Ｓ３４を経てステップＳ２８に戻り、各回路装置のレジスターＲＹＢから再度レジスター値ｂを読み出す（ステップＳ２８〜Ｓ３１）。そして通信エラーの有無を判断し（ステップＳ３２）、通信エラーが発生した場合には、さらに読み出し動作を繰り返す。
【００６１】
読み出し動作の繰り返し回数が通信リトライ回数の上限値に達しても通信エラーが発生する場合には、各回路装置の出力バッファーＯＢＹ１〜ＯＢＹｃの駆動能力を増加させる設定を行う。すなわち、ＯＢＹ１〜ＯＢＹｃの駆動能力を設定するためのレジスター値ｂの値を１だけ増加させて（ステップＳ３５、Ｓ３６）、ステップＳ１８に戻る。そして増加させたレジスター値ｂを各回路装置のレジスターＲＹＢに書き込み（ステップＳ２０〜Ｓ２３）、確実に書き込まれたことを確認して（ステップＳ２４）、上記の読み出し動作を繰り返す（ステップＳ２８〜Ｓ３１）。読み出し動作終了後に通信エラーの有無を判断し（ステップＳ３２）、通信エラーが発生する場合は、さらにレジスター値ｂを増加させる（ステップＳ３６）。
【００６２】
このようにして、通信エラーが発生しなくなるまでレジスター値ｂを増加させていき、通信エラーが解消されれば、レジスター値ａ、ｂの最適化が完了し（ステップＳ３７）、制御を終了する。しかしレジスター値ｂの上限値（図５ではｂ＝７）に達しても通信エラーが発生する場合には、回路装置からの読み出しフェイタルエラーと判断して（ステップＳ３８）、制御を終了する。
【００６３】
以上のように本実施形態の手法によれば、上述した制御フローに示すように、第１の制御フロー（図４に示すフロー）において、制御装置側の駆動能力を設定するレジスター値ａを決定し、その後の第２の制御フロー（図５に示すフロー）において、回路装置側の駆動能力を設定するレジスター値ｂを決定する。すなわち第１の制御フローにより、制御装置が回路装置側レジスターに対して確実にレジスター値ｂを書き込めることが保証される。そして、レジスター値ｂが確実に書き込まれることが保証された後に、第２の制御フローであるレジスター値ｂの最適化のフローが実行される。
【００６４】
レジスター値ｂの最適化のフローでは、各回路装置側レジスターに対してレジスター値を書き込み（ステップＳ２１）、次に書き込まれたレジスター値を制御装置が読み出し（ステップＳ２９）、読み出されたレジスター値と書き込んだレジスター値とを比較することで、読み出し時の通信エラーの有無を判定する（ステップＳ３２）。従って、回路装置側レジスターにレジスター値が確実に書き込まれることが保証されなければ、レジスター値ｂの最適化は適正に行われない。
【００６５】
このように本実施形態の手法によれば、制御装置は、制御装置側駆動能力設定レジスターにレジスター値が設定された後に、回路装置側駆動能力設定レジスターに対してレジスター値を書き込むための制御を行う。そして回路装置側駆動能力設定レジスターに対してレジスター値が書き込まれた後に、回路装置側駆動能力設定レジスターからのレジスター値の読み出し制御を行う。レジスター値の読み出し動作において通信エラーが発生した場合には、駆動能力を増加させるレジスター値を、回路装置側駆動能力設定レジスターに書き込むための制御を行う。
【００６６】
例えば、本実施形態の比較例の手法として、始めにレジスター値ｂを最適化する手法も考えられる。しかしながら、この比較例の手法では、書き込んだレジスター値と読み出されたレジスター値とが不一致の場合に、書き込み時の通信エラーによるものか、読み出し時の通信エラーによるものかを区別することができない。もし書き込み時の通信エラーであれば、書き込もうとしたレジスター値と実際に書き込まれたレジスター値とが異なるから、回路装置側の出力バッファーを意図しない駆動能力に設定することになってしまう。このような状況では、回路装置側の駆動能力を増加させる処理を繰り返しても、レジスター値ｂを適正に決定することができなくなる。
【００６７】
この点、本実施形態の手法によれば、第１の制御フローにおいてレジスター値ａを決定し、その後の第２の制御フローにおいてレジスター値ｂを決定している。従って、レジスター値ｂが確実に書き込まれることが保証された上で、レジスター値ｂを最適化することができる。その結果、２つのレジスター値ａ、ｂの最適化を適正に実行することが可能になる。すなわち、回路装置側駆動能力設定レジスターに対してレジスター値が確実に書き込まれることが保証された上で、回路装置側駆動能力設定レジスターからのレジスター値の読み出し制御を行って、通信エラーが発生した場合には、駆動能力を増加させるレジスター値を、回路装置側駆動能力設定レジスターに書き込むための制御を行うことが可能になる。
【００６８】
以上説明したように、本実施形態の制御装置によれば、バスに接続される回路装置の個数が変化する場合であっても、上述した制御動作により、制御装置側及び回路装置側の出力バッファーの駆動能力を最適な値に近づけることができる。その結果、通信エラーが発生せずに確実にデータの送受信を行うことができる。さらにオーバーシュート及びアンダーシュートなどによる信号品質の劣化や、クロストークによる他の信号線への干渉や、ノイズによる他の電子機器等へのＥＭＩ（Electro Magnetic Interference）などを低減することが可能になる。
【００６９】
４．システム
図６に、本実施形態の制御装置４００を含むシステムの基本的な構成例を示す。本構成例のシステムは、例えばプリンターであって、第１〜第ｎの記憶装置１００−１〜１００−ｎ、ｎ個の基板２００−１〜２００−ｎ、ｎ個の液体容器（インクカートリッジ）３００−１〜３００−ｎ、制御装置４００及びホスト装置５００を含む。なお、本実施形態のシステムは図６の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００７０】
図６の第１〜第ｎの記憶装置１００−１〜１００−ｎは、図１の第１〜第ｎの回路装置に対応する。また図６のデータ信号線ＳＤＡは、図１の信号線ＳＧ１に対応する。
【００７１】
第１〜第ｎの記憶装置１００−１〜１００−ｎは、リセット信号線ＸＲＳＴ、クロック信号線ＳＣＫ、データ信号線ＳＤＡからなるバスを介して、制御装置４００と接続される。また、各記憶装置には、高電位電源線ＶＤＤ及び低電位電源線ＶＳＳを介して、制御装置４００から電源電圧が供給される。各記憶装置は、メモリー（例えば不揮発性メモリー等）を含み、各メモリーにはｎ個の液体容器（インクカートリッジ）３００−１〜３００−ｎを識別するためのＩＤ（Identification）情報、製造情報やホスト装置５００から書き込まれる情報が記憶される。例えば、製造情報としては、製造日の情報、インク色の情報などがあり、ホスト装置５００から書き込まれる情報としては、インク残量の情報などがある。メモリーは、例えばＦＥＲＡＭ（強誘電体メモリー）や、フラッシュメモリー等の不揮発性メモリーにより構成することができる。
【００７２】
また、第１〜第ｎの記憶装置１００−１〜１００−ｎは、基板２００−１〜２００−ｎにそれぞれ設けられ、基板２００−１〜２００−ｎは、液体容器（インクカートリッジ）３００−１〜３００−ｎにそれぞれ設けられる。基板及び液体容器の詳細な構成例については、後述する。
【００７３】
ホスト装置５００は、例えばプリンター本体などであって、ホスト制御部５１０、表示部５２０、操作部５３０を含む。ホスト制御部５１０は、プリンターの印刷処理に必要な制御や、インクカートリッジ（液体容器）のインク残量の算出、外部機器との通信処理の制御などを行う。表示部５２０は、例えばＬＣＤ（液晶ディスプレイ）等であって、プリンターの操作画面、動作状態、エラーメッセージ等を表示する。操作部４５０は、例えばキーパッド等で構成され、使用者がプリンターを操作するために用いられる。
【００７４】
例えばインクジェット方式のプリンターなどでは、インクカートリッジ（液体容器）として１色のインクを格納する単色型を使用したり、或いは複数色のインクを格納する一体型を使用したりする。使用するインクカートリッジのタイプによって、プリンターに装着されるインクカートリッジの個数が変化する。すなわち、バスに接続される記憶装置（回路装置）の個数が変化する。
【００７５】
本実施形態の制御装置によれば、バスに接続される回路装置の個数が変化する場合であっても、制御装置側及び回路装置側の出力バッファーの駆動能力を最適な値に近づけることができるから、装着されるインクカートリッジ（液体容器）の個数が変化しても、その個数に対応して最適な駆動能力の設定が可能になる。その結果、確実なデータ通信が可能になり、さらにプリンターから放射されるノイズ等を抑えることができるから、他の電子機器等へのＥＭＩ（Electro Magnetic Interference）を低減することなどが可能になる。
【００７６】
５．基板及び液体容器
図７に、本実施形態の記憶装置（回路装置）１００が設けられた液体容器３００の詳細な構成例を示す。なお以下では、ホスト装置５００がインクジェット方式のプリンターであり、液体容器３００がインクカートリッジであり、基板２００が、インクカートリッジに設けられた回路基板である場合を例に説明する。但し、本実施形態では、ホスト装置、制御装置、液体容器、基板は、他の装置、容器、基板であってもよい。例えば、ホスト装置はメモリーカードのリーダー／ライターであってもよく、基板はメモリーカードに設けられた回路基板であってもよい。
【００７７】
図７に示すインクカートリッジ３００（広義には液体容器）の内部には、インクを収容するための図示しないインク室が形成される。また、インクカートリッジ３００には、インク室に連通するインク供給口３４０が設けられる。このインク供給口３４０は、インクカートリッジ３００がプリンターに装着されたときに、印刷ヘッドユニットにインクを供給するためのものである。
【００７８】
インクカートリッジ３００は、回路基板２００（広義には基板）を含む。回路基板２００には、本実施形態の記憶装置１００が設けられ、データの記憶や制御装置４００を介してホスト装置５００とのデータ送受信を行う。回路基板２００は、例えばプリント基板により実現され、インクカートリッジ３００の表面に設けられる。回路基板２００には、高電位電源ＶＤＤ等の端子が設けられる。そして、インクカートリッジ３００がプリンターに装着されたときに、それらの端子とプリンター側の端子が接触（電気的に接続）することで、電源やデータのやり取りが行われる。
【００７９】
図８（Ａ）、図８（Ｂ）に、本実施形態の記憶装置１００が設けられた回路基板２００の詳細な構成例を示す。図８（Ａ）に示すように、回路基板２００の表面（プリンターと接続される面）には、複数の端子を有する端子群が設けられる。この端子群は、低電位電源端子ＶＳＳ、高電位電源端子ＶＤＤ、リセット端子ＸＲＳＴ、クロック端子ＳＣＫ、データ端子ＳＤＡを含む。各端子は、例えば矩形状（略矩形状）に形成された金属端子により実現される。そして、各端子は、回路基板２００に設けられた図示しない配線パターン層やスルーホールを介して、記憶装置１００に接続される。
【００８０】
図８（Ｂ）に示すように、回路基板２００の裏面（プリンターと接続される面の裏側の面）には、本実施形態の記憶装置１００が設けられる。記憶装置１００は、例えば、強誘電体メモリーを有する半導体記憶装置により実現できる。この記憶装置１００には、インク又はインクカートリッジ３００に関連する種々のデータが格納され、例えば、インクカートリッジ３００を識別するためのＩＤ情報やインクの消費量等のデータが格納される。インク消費量のデータは、インクカートリッジ３００内に収容されたインクについて、印刷の実行等に伴い消費されるインク量の累計を示すデータである。このインク消費量のデータは、インクカートリッジ３００内のインク量を示す情報であってもよく、消費したインク量の割合を示す情報であってもよい。
【００８１】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義又は同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また制御装置及びシステムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【００８２】
１００  回路装置（記憶装置）、２００  基板（回路基板）、３００  液体容器、
３４０  インク供給口、４００  制御装置、４１０  制御部、
５００  ホスト装置、５１０  ホスト制御部、５２０  表示部、５３０  操作部、
ＢＳＧ  バス、ＳＧ１  第１の信号線、ＩＯＸ  制御装置側入出力回路、
ＯＢＸ  制御装置側出力バッファー、ＲＡ  制御装置側駆動能力設定レジスター、
ＲＥＧ１〜ＲＥＧｎ  第１〜第ｎのレジスター部、
ＩＯＹ１〜ＩＯＹｎ  回路装置側入出力回路、
ＯＢＹ１〜ＯＢＹｎ  回路装置側出力バッファー、
ＲＹＢ  回路装置側駆動能力設定レジスター、
ＳＣＫ  クロック端子、ＳＤＡ  データ端子、ＸＲＳＴ  リセット端子、
ＶＤＤ  高電位電源端子、ＶＳＳ  低電位電源端子
【図１】
2011224944.tif 000003
【図２】
2011224944.tif 000004
【図３】
2011224944.tif 000005
【図４】
2011224944.tif 000006
【図５】
2011224944.tif 000007
【図６】
2011224944.tif 000008
【図７】
2011224944.tif 000009
【図８】
2011224944.tif 000010