(57)【特許請求の範囲】
【請求項１】
第１の拡張ボードと第２の拡張ボードが必要に応じて選択的に接続可能な拡張ボード制御装置において、
第１のバッファと、
第２のバッファと、
前記第１の拡張ボード又は第２の拡張ボードの何れか一方が装着された場合、その装着された拡張ボードから出力されるデータを前記第１のバッファと第２のバッファに交互に出力制御する交互出力制御手段と、
該交互出力制御手段により前記第１のバッファ及び第２のバッファに格納されたデータを交互に送信出力する交互送信出力手段と、
前記第１の拡張ボード及び第２の拡張ボードの両方が装着された場合、両拡張ボードから出力されるデータをそれぞれ対応する前記第１のバッファと第２のバッファに出力制御する個別出力制御手段と、
該個別出力制御手段により前記第１のバッファ及び第２のバッファに格納されたデータをそれぞれ個別に送信出力する個別送信出力手段と、
を有することを特徴とする拡張ボード制御装置。
【請求項２】
前記交互送信出力手段及び個別送信出力手段が出力するデータは、メモリに供給されることを特徴とする請求項１記載の拡張ボード制御装置。
【請求項３】
前記交互送信出力手段及び個別送信出力手段が前記メモリに出力するデータは、ダイレクトメモリアクセス処理に従って出力されることを特徴とする請求項１記載の拡張ボード制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は複数の拡張ボードを接続し、又は複数の拡張ボードが接続可能な場合において一の拡張ボードを接続し、該拡張ボードとの間でデータの授受を行う拡張ボード制御装置に関する。
【０００２】
【従来の技術】
パーソナルコンピュータにおけるＲＡＭの増設や、印刷装置におけるＬＡＮボード、セントロボードの増設が今日広く行われている。このような拡張ボードの使用はメモリの増設や印刷機能の拡大のために使用され、通常１枚又は２枚の拡張ボードが使用される。
【０００３】
また、拡張ボードとのデータの入出力制御はボード制御装置が行う。ボード制御装置は、拡張ボードとの間のデータの入出力制御を行い、又その際、ＣＰＵ（ＭＰＵ）に対してデータ転送のためのダイレクトメモリアクセス（ＤＭＡ）の許可を要求する。また、拡張ボードとボード制御装置間のデータの授受はバッファを介して行われている。
【０００４】
このような拡張ボード制御装置において、（イ）上記バッファは接続される拡張ボード毎に専用のバッファが使用され、１枚の拡張ボードが接続された時はその拡張ボードに対応する専用バッファが使用され、２枚の拡張ボードが接続された時はそれぞれの専用バッファが使用され、データの入出力制御を行っていた。
【０００５】
また、（ロ）従来、拡張ボード制御装置がデータ転送のためダイレクトメモリアクセス（ＤＭＡ）処理を行う場合、ＣＰＵ（ＭＰＵ）はある決まった時間だけ強制的にインターバルを設けて要求を受け付けていた。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来の装置では以下の問題が発生する。
先ず、上述の（イ）の場合、拡張ボード毎に専用バッファを使用するのでデータの授受に時間を要する。例えば、２枚のバッファを有するにも関わらず、１枚のボードのみが接続された時、一方の専用バッファのみしか使用できず、データの授受に時間を要する。また、２枚のボードが接続された時でもバッファの使用は専用化されているため、一方のボードへのデータの授受がないにも関わらず、空いているバッファの使用ができず、データの授受に時間を要していた。
【０００７】
さらに、複数枚（例えば２枚）の拡張ボードに対して処理の優先順位が予め設定されており、フレキシブルに選択して拡張ボードから入力するデータの受信処理を行うことができなかった。
【０００８】
したがって、従来の拡張ボード制御装置では拡張ボードへのデータの授受が極めて効率の悪いものであった。
また、（ロ）の場合、拡張ボード制御装置からダイレクトメモリアクセス（ＤＭＡ）の要求があった時、ある決まった時間だけ強制的にインターバルを設けていたので、拡張ボードへのデータの授受に上述の時間だけ遅れが生じ、トータル的にデータの処理時間が遅れ、効率よくデータの授受を行うことができなかった。
【０００９】
本発明の課題は複数のバッファを効率よく使用し、データ転送処理を高速に行うことができる拡張ボード制御装置を提供することによって達成できる。
【００１８】
【課題を解決するための手段】
請求項１記載の発明は上記課題を解決するため、第１の拡張ボードと第２の拡張ボードが必要に応じて選択的に接続可能な拡張ボード制御装置において、第１のバッファと、第２のバッファと、前記第１の拡張ボード又は第２の拡張ボードの何れか一方が装着された場合、その装着された拡張ボードから出力されるデータを前記第１のバッファと第２のバッファに交互に出力制御する交互出力制御手段と、該交互出力制御手段により前記第１のバッファ及び第２のバッファに格納されたデータを交互に送信出力する交互送信出力手段と、前記第１の拡張ボード及び第２の拡張ボードの両方が装着された場合、両拡張ボードから出力されるデータをそれぞれ対応する前記第１のバッファと第２のバッファに出力制御する個別出力制御手段と、該個別出力制御手段により前記第１のバッファ及び第２のバッファに格納されたデータをそれぞれ個別に送信出力する個別送信出力手段と、を有することを特徴とする拡張ボード制御装置を提供することにより達成できる。
【００１９】
本例の発明は、第１の拡張ボードと第２の拡張ボードが必要に応じて選択的に接続可能な拡張ボード制御装置において、一方の拡張ボードにのみボードが接続された場合でも、第１、第２のバッファを交互に使用し、いわゆるダブルバッファ処理により効率よくデータの転送処理を行うものである。
【００２０】
すなわち、従来のバッファは拡張ボード毎に専用化していたため、接続された拡張ボードに対応するバッファのみを使用してデータの転送処理を行っていたが、本例のように構成することにより、バッファを交互に使用してデータの書き込みと読み出しを同時に行い、データ転送処理を効率よく行うことができる。
【００２１】
請求項２の記載は、前記請求項１記載の発明を具体化するものであり、前記送信出力手段が出力するデータは、例えばメモリに供給される。本例において拡張ボードに格納されるデータはセントロデータやＬＡＮデータであり、これらのデータは第１、第２のバッファに交互に格納された後、送信出力手段によってＲＡＭやＥＥＰＲＯＭ等のメモリに供給される。
【００２２】
請求項３の記載は、上記請求項１記載の発明を具体化するものであり、前記送信出力手段が前記メモリに出力するデータは、例えばダイレクトメモリアクセス処理によって出力される構成である。
【００２３】
すなわち、バッファに格納した第１の拡張ボード又は第２の拡張ボードのデータは、ダイレクトメモリアクセス処理（ＤＭＡ）によってメモリに書き込まれる。
【００２４】
ここで、前記請求項には記載しないが、ダイレクトメモリアクセス（ＤＭＡ）を行う際、本例の拡張ボード制御装置は、例えばＭＰＵに対してアクセスのリクエストを行うが、この時一定時間インターバルが必要であった。このため、メモリに転送するデータ転送速度が長くなり、データ転送に長時間を要していた。
【００２５】
そこで、以下のような発明を追加してもよい。すなわち、
ＤＭＡ転送を要求する要求出力手段と、ＭＰＵの非アクティブ状態を検出し、当該状態を検出後一定時間を計数する計数手段と、前記要求出力手段からＤＭＡ転送要求が出力された後、前記計数手段が一定時間の計数を完了すると、ＨＯＬＤ信号を出力するＨＯＬＤ信号出力手段と、ＨＯＬＤ信号出力手段がＨＯＬＤ信号を出力した後、ＤＭＡ転送の許可信号を出力する手段とを有する拡張ボード制御装置を提供する。
【００２６】
上記構成の拡張ボード制御装置を使用することで、バッファに格納されたデータをより短時間でメモリ等に転送でき、ダイレクトメモリアクセス（ＤＭＡ）を使用するデータ転送をより高速に行うことができる。
【００２７】
【発明の実施の形態】
以下、本発明の実施形態例を図面を用いて詳細に説明する。
《第１の実施形態例》
図２は、本発明の拡張ボード制御装置を説明する図であり、本発明の拡張ボード制御装置をプリンタ装置に適用した例を示すシステム構成図である。
【００２８】
同図において、プリンタ装置１はインターフェイスコントローラ（以下、Ｉ／Ｆコントローラという）２と、このＩ／Ｆコントローラ２に接続する印字装置（エンジン）３で構成され、Ｉ／Ｆコントローラ２にはパーソナルコンピュータ４が接続されている。
【００２９】
Ｉ／Ｆコントローラ２はパーソナルコンピュータ４から出力される印字情報に従って、記録紙に１対１で対応するビットマップデータを作成する機能を有し、ＭＰＵ５、ＲＯＭ６、ＲＡＭ７、オペレーションパネル制御部８、画像制御部９、エンジン制御部１０、メモリ制御部１１、ＤＭＡ制御部１２、拡張ボード制御部１３、インターフェイス部１４で構成されている。尚、上記Ｉ／Ｆコントローラ２内の各部はバスラインによって接続されている。
【００３０】
ここで、上述の拡張ボード制御部１３が本発明の拡張ボード制御装置に対応し、この拡張ボード制御部１３には拡張ボード１５と１６、又は拡張ボード１５、１６の一方が接続される。また、この拡張ボード１５からパラレルなセントロデータ、又はＬＡＮデータが入力し、前述のＲＡＭ７に格納される。尚、ＲＡＭ７に格納されたセントロデータ、又はＬＡＮデータは、パーソナルコンピュータ４から入力したデータと同様、Ｉ／Ｆコントローラ２によって、例えばビットマップデータに変換される。
【００３１】
ＭＰＵ５は本例のプリンタ装置１の印刷制御を行うマイクロ・プロセッサ・ユニットであり、ＲＯＭ６に記憶するプログラムに従って印刷制御を行う。ＲＡＭ７はＭＰＵ５が印刷処理を行う際のワークエリアを有し、また上述のパーソナルコンピュータ４や拡張ボード制御部１３を介して入力するデータを格納する格納エリアを有する。
【００３２】
オペレーションパネル制御部８は、不図示のオペレーションパネルから供給されるキー操作信号をＭＰＵ５に出力し、オペレータの指示する処理を実行させる。また、エンジン制御部１０は印字装置（エンジン）３内の各部、例えば転写部、印字部、現像部、等に制御信号を出力し、各部の駆動制御を行う。
【００３３】
尚、図示しないが、印字装置３は用紙搬送機構、画像形成部、定着部、等で構成され、用紙搬送機構は給紙カセットから搬出された用紙を用紙搬送経路を介して待機ロールに送り、例えば感光体ドラムに形成されるトナー像と一致するタイミングで搬送ベルト上に用紙を供給する。また、用紙が搬送ベルト上を移動する間、搬送ベルト上の用紙には画像形成ユニットからトナー像が転写され、用紙への転写処理が行われる。その後、定着部によって熱定着処理が施され、排紙ロールによって機外に排出される。
【００３４】
一方、メモリ制御部１１とＤＭＡ制御部１２も上述の拡張ボード制御部１３と共に拡張ボード制御装置を構成している。メモリ制御部１１とＤＭＡ制御部１２は、プリンタ装置１のメモリ制御、及びデータ転送の制御を行うと共に、拡張ボード１５及び１６とＩ／Ｆコントローラ２間のデータの入出力制御も行う。
【００３５】
図１は本例の拡張ボード制御装置の構成を説明する図であり、メイン基板Ａ側に配設されたメモリ制御部１１、ＤＭＡ制御部１２（尚、同図では両部をまとめてメモリ・ＤＡＭ制御部１８とする）、拡張ボード制御部１３と、拡張ボードＢ側に設けられた２枚の拡張ボード１５、１６の接続構成を示す。
【００３６】
同図において、拡張ボード１５、１６は前述のようにセントロデータやＬＡＮデータが入力するボードであり、例えばメイン基板Ａに設けられた拡張スロットにボードを差し込むことにより拡張ボード１５、１６を拡張ボード制御部１３に接続することができる。この接続により、拡張ボード制御部１３と各拡張ボード１５、１６間の信号線とデータ線がそれぞれ接続される。
【００３７】
例えば、この信号線を介して拡張ボード１５からデータ送信要求信号（Ｄｒｅｑ１）が拡張ボード制御部１３に出力され、拡張ボード制御部１３からデータ送信許可信号（Ｄａｃｋ１）が拡張ボード１５に出力される。同様に、信号線を介して拡張ボード１６からデータ送信要求信号（Ｄｒｅｑ２）が拡張ボード制御部１３に出力され、拡張ボード制御部１３からデータ送信許可信号（Ｄａｃｋ２）が拡張ボード１６に出力される。また、上述のデータ線を介して拡張ボード１５から８ビットデータＤ１が拡張ボード制御部１３に出力され、拡張ボード制御部１３から８ビットデータＤ１’が拡張ボード１５に出力される。同様に、データ線を介して拡張ボード１６から８ビットデータＤ２が拡張ボード制御部１３に出力され、拡張ボード制御部１３から８ビットデータＤ２’が拡張ボード１６に出力される。尚、拡張ボード制御部１３から８ビットデータが拡張ボード１５及び１６に出力される理由は、プリンタ装置１からデータをセントロニクスインターフェイスを介して出力する場合である。
【００３８】
一方、拡張ボード制御部１３は、メモリ制御部１１とＤＭＡ制御部１２、及びメモリ（ＲＡＭ）７とバスラインを介して接続されている。尚、図１においては前述したようにメモリ制御部１１とＤＭＡ制御部１２を一つのブロックとしてメモリ・ＤＭＡ制御部１８で示す。ここで、拡張ボード制御部１３とメモリ・ＤＭＡ制御部１８間では、拡張ボード制御部１３からメモリ・ＤＭＡ制御部１８に対し、ＤＭＡ（ダイレクトメモリアクセス）処理の要求信号（ＤＭＡｒｅｑ１）と（ＤＭＡｒｅｑ２）を出力し、メモリ・ＤＭＡ制御部１８から拡張ボード制御部１３に対しＤＭＡ処理の許可信号（ＤＭＡａｃｋ１）と（ＤＭＡａｃｋ２）を出力する。ここで、上述の要求信号（ＤＭＡｒｅｑ１）は拡張ボード１５から供給されたデータが後述するバッファに６４ビット格納された時出力される信号であり、許可信号（ＤＭＡａｃｋ１）は上述の要求を許可する時出力される信号である。また、同様に要求信号（ＤＭＡｒｅｑ２）は拡張ボード１６から供給されたデータが後述するバッファに６４ビット格納された時出力される信号であり、許可信号（ＤＭＡａｃｋ２）は上述の要求を許可する時出力される信号である。
【００３９】
また、拡張ボード制御部１３からメモリ（ＲＡＭ）７に出力されるデータＤは、前述の拡張ボード１５又は１６から拡張ボード制御部１３に供給されたデータであり、６４ビットのデータがメモリ（ＲＡＭ）７に出力される。尚、逆にメモリ（ＲＡＭ）７から拡張ボード制御部１３にデータＤを出力する場合もある。
【００４０】
また、メモリ・ＤＭＡ制御部１８からメモリ（ＲＡＭ）７に供給されるデータａはアドレスデータであり、拡張ボード制御部１３からデータを入力する際、又はメモリ（ＲＡＭ）７からデータを出力する際、メモリ（ＲＡＭ）７内の書き込み、又は読み出しアドレスを指定するデータである。
【００４１】
さらに、メモリ・ＤＭＡ制御部１８から出力されるＨＯＬＤ信号は、ＭＰＵ５に対してＤＭＡ転送処理を行うための要求信号であり、ＨＯＬＤＡ信号は、ＭＰＵ５がメモリ・ＤＭＡ制御部１８に対し、ＤＭＡ転送処理を行うことを許可した時出力する信号である。また、ＭＰＵ５からメモリ・ＤＭＡ制御部１８に供給されるデータｂはアドレスデータであり、データｄは実データ（メモリ（ＲＡＭ）７に格納されたデータ、又はメモリ（ＲＡＭ）７から出力されるデータ）である。
【００４２】
図３は上述の拡張ボード制御部１３の具体的な回路図である。拡張ボード制御部１３は、バスアービタ２０、ボード制御部２１、２２、バッファ２３、２４、アンド回路２５、セレクタ２６で構成されている。同図から分かるように、前述の拡張ボード制御部１３から出力されたデータ送信要求信号（Ｄｒｅｑ１）は、具体的にはボード制御部２１から出力され、データ送信許可信号（Ｄａｃｋ１）はボード制御部２１に入力する。同様に、前述の拡張ボード制御部１３から出力されたデータ送信要求信号（Ｄｒｅｑ２）は、ボード制御部２２から出力され、データ送信許可信号（Ｄａｃｋ２）はボード制御部２２に入力する。
【００４３】
また、拡張ボード制御部１３からメモリ・ＤＭＡ制御部１８に出力されるＤＭＡ処理の要求信号（ＤＭＡｒｅｑ１）は、バスアービタ２０にも出力され、許可信号（ＤＭＡａｃｋ１）はバスアービタ２０にも入力する。同様に、拡張ボード制御部１３からメモリ・ＤＭＡ制御部１８に出力されるＤＭＡ処理の要求信号（ＤＭＡｒｅｑ２）も、バスアービタ２０にも出力され、許可信号（ＤＭＡａｃｋ２）はバスアービタ２０にも入力する。
【００４４】
バッファ２３、２４は、それぞれ拡張ボード１５、１６に対応するバッファであり、バッファ２３は拡張ボード１５に対応し、バッファ２４は拡張ボード１６に対応する。但し、バッファ２３、２４はそれぞれ拡張ボード１５、１６に対応するだけであり、対応する拡張ボードが専用するものではない。したがって、場合によって自由に使用し合うことができる構成である。このため、アンド回路２５を介してボード制御部２１からライト信号ｗ１がバッファ２３、２４に供給され、アンド回路２５を介して拡張ボード制御部２２からライト信号ｗ２がバッファ２３、２４に供給される。
【００４５】
また、セレクタ２６はバッファ２３、２４から出力されるデータを選択して前述のメモリ（ＲＡＭ）７に出力する構成であり、ボード制御部２１から出力される選択信号Ｓ１、又はボード制御部２２から出力される選択信号Ｓ２によってデータ選択処理が行われる。例えば、選択信号Ｓ１が選択された時、セレクタ２６はバッファ２３から出力されるデータをメモリ（ＲＡＭ）７に出力する。また、選択信号Ｓ２が選択された時、セレクタ２６はバッファ２４から出力されるデータをメモリ（ＲＡＭ）７に出力する構成である。
【００４６】
以上の構成の拡張ボード制御装置において、以下にその処理動作を説明する。尚、本例の拡張ボード制御装置は２個の拡張スロットを有し、その一方のみ、又はその両方に拡張ボードを装着することができる。そこで、以下の説明では拡張ボードを１枚使用した場合と、２枚使用した場合に分けて説明する。
《拡張ボード１枚の場合》
先ず、拡張ボードを１枚使用した場合について説明する。尚、本例では、拡張ボード１５のみを使用するものとして説明する。
【００４７】
また、図４乃至図６はこの処理を説明する図であり、図４はバッファ２３、２４に拡張ボード１５から送信されるデータＤ１を格納する処理であり、図５はその時のバスアービタ２０の処理動作を示すフローチャートであり、図６は２枚のバッファ２３、２４に格納したデータＤ１をメモリ（ＲＡＭ）７にＤＭＡ転送する処理である。
【００４８】
また、データ送信要求信号「Ｄｒｅｑ１」（又は「Ｄｒｅｑ２」）は「０」の時アクティブであり、「１」の時非アクティブである。また、データ送信許可信号「Ｄａｃｋ１」（又は「Ｄａｃｋ２」）も「０」の時アクティブであり、「１」の時非アクティブである。
【００４９】
先ず、図４のフローチャートにおいて、初期設定処理を行う（ステップ（以下Ｓで示す）１）。この初期設定処理は、例えばバッファ２３、２４に残るデータをクリアし、セレクタ２６を例えばバッファ２３側の初期位置に設定し、メモリ（ＲＡＭ）７に残るデータをクリアする等の処理である。また、不図示のフラグ「Ｈ」及び「Ｆ」を「０」に初期設定し、カウンタを「０」に初期設定する。
【００５０】
このような処理を行った後、判断（Ｓ２）を実行する。この判断（Ｓ２）は、「Ｈ＝１」か否か判断する処理であり、この「Ｈ」はボード制御部２１内の例えばフラグであり、バッファ２３に６４ビットのデータが格納されると、フラグ「Ｈ」が「１」となる。具体的には、ボード制御部２１から出力されるライト信号Ｗ１によって、拡張ボード１５からデータＤ１（８ビットデータ）が入力し、上記ライト信号Ｗ１を８回出力することによってバッファ２３に６４ビットのデータを格納し、フラグ「Ｈ」を「１」に設定する。
【００５１】
但し、初期時フラグ「Ｈ」は「０」であり（Ｓ２がＮＯ）、拡張ボード１５からデータ送信要求信号（Ｄｒｅｑ１）が出力されているか判断する（Ｓ３）。このデータ送信要求信号（Ｄｒｅｑ１）は、拡張ボード１５がバッファ２３にデータ出力を希望する時出力する信号であり、この要求がない場合にはデータ送信要求信号（Ｄｒｅｑ１）の入力を待つ（Ｓ３がＮＯ）。
【００５２】
一方、上述のデータ送信要求信号（Ｄｒｅｑ１）があると（Ｓ３がＹＥＳ）、ボード制御部２１はバスアービタ２０を介してデータ送信許可信号（Ｄａｃｋ１）を拡張ボード２１に出力し、ライト信号Ｗ１をバッファ２３に出力する（Ｓ４）。この処理によってバッファ２３には８ビットデータが書き込まれ、拡張ボード１５からのデータ送信要求信号（Ｄｒｅｑ１）が「１」になったことを判断し（Ｓ５がＹＥＳ）、更にデータ送信許可信号（Ｄａｃｋ１）を「１」とする（Ｓ６）。
【００５３】
以上の処理によって、バッファ２３への８ビットデータの書き込み処理が終了し、例えばボード制御部２１に設けられたカウンタが「７」まで計数されたか判断し、最初の処理ではカウンタ値は「０」に初期設定されているので、当該カウンタのカウント値を＋１する（Ｓ７がＮＯ、Ｓ８）。この処理により、カウンタの計数値は「１」となり、上述の判断（Ｓ３）に戻ってデータ送信要求信号（Ｄｒｅｑ１）の入力を判断する（Ｓ３）。
【００５４】
以後、上述の処理を繰り返し（Ｓ３〜Ｓ８）、バッファ２３に８ビット毎にデータを書き込むと共にカウンタの値を「１」→「２」→「３」、・・・と加算し、カウント値が「７」になると、判断（Ｓ７）がＹＥＳとなり、前述のフラグ「Ｈ」を「１」とする（Ｓ８’）。すなわち、上述の８回のデータ供給によってバッファ２３には６４ビットのデータが格納されたものとして、ボード制御部２１にフラグ「Ｈ」を設定する（フラグ「Ｈ」を「１」）とする。
【００５５】
次に、装着された拡張ボードが１枚か否か判断する（Ｓ９）。本例の説明では、上述のように拡張ボード１５のみを接続しているので、判断（Ｓ９）はＹＥＳである。
【００５６】
そこで、次にフラグ「Ｆ」が「１」か否か判断する（Ｓ１０）。この「Ｆ」はバッファ２４に６４ビットのデータが格納された時、「１」がセットされるフラグである。初期時、このフラグは前述のように初期設定されているので、判断（Ｓ１０）はＮＯであり、次に再度データ送信要求信号（Ｄｒｅｑ１）があるか判断する（Ｓ１１）。この要求がない場合にはデータ送信要求信号（Ｄｒｅｑ１）の入力を待つ（Ｓ１１がＮＯ）。
【００５７】
一方、上述のデータ送信要求信号（Ｄｒｅｑ１）があると（Ｓ１１がＹＥＳ）、ボード制御部２１は前述と同様、バスアービタ２０を介してデータ送信許可信号（Ｄａｃｋ１）を拡張ボード２１に出力し、ライト信号Ｗ１をバッファ２４に出力し（Ｓ１２）、バッファ２４に８ビットデータを書き込む。そして、拡張ボード１５からのデータ送信要求信号（Ｄｒｅｑ１）が「１」になったことを判断し（Ｓ１３がＹＥＳ）、データ送信許可信号（Ｄａｃｋ１）を「１」とする（Ｓ１４）。その後、前述と同様、カウンタが「１５」まで計数されたか判断し、最初の処理ではカウンタ値は前述の「７」であり、当該カウンタのカウント値を＋１し（Ｓ１５がＮＯ、Ｓ１６）、上述の処理を繰り返す（Ｓ１１〜Ｓ１６）。したがって、上述の処理を繰り返すうち、カウンタ値は「８」→「９」→「１０」、・・・と加算し、カウント値が「１５」になると、判断（Ｓ１５）がＹＥＳとなり、前述のフラグ「Ｆ」を「１」に設定する（Ｓ１７）。すなわち、８回のデータ供給によってバッファ２４には６４ビットのデータが格納され、ボード制御部２１に上述のフラグ「Ｆ」を設定するものである（フラグ「Ｆ」を「１」とする）。
【００５８】
以上のように制御することにより、拡張ボード１５から出力されるデータは、先ずバッファ２３に６４ビットのデータが格納され、次にバッファ２４に６４ビットのデータが格納される。以後、同様の制御を行うことによって、再度図４に示すフローチャートの処理を繰り返し、拡張ボード２１から出力されるデータはバッファ２３とバッファ２４に交互に格納される。
【００５９】
したがって、上述の処理を繰り返すことにより、バッファ２３とバッファ２４に交互にデータを供給しつつ、供給しない側のバッファ２４又はバッファ２３からデータを後述するように出力し、効率よくデータ転送を行うことができる。尚、上述のバッファ２３、２４からのデータ転送処理については図６のフローチャートを用いて後述する。
【００６０】
一方、図５は上述のバッファ２３、２４へのデータ格納処理をバスアービタ２０から見た処理であり、先ず初期設定処理（ステップ（以下ＳＴで示す）１）を行う。この処理は前述の初期設定処理（Ｓ１）と同様であり、バスアービタ２０内のデータのクリア処理等を行う。
【００６１】
次に、データ送信要求信号（Ｄｒｅｑ１）の入力を判断する（ＳＴ２）。ここで、データ送信要求信号（Ｄｒｅｑ１）が拡張ボード１５又は１６からボード制御部２１又は２２に供給されれば、拡張ボードは１枚のみ装着されているか判断する（ＳＴ３）。ここで、本例の説明では拡張ボード１５のみにボードが接続されているので（ＳＴ３がＹＥＳ）、データ送信要求信号（Ｄｒｅｑ１）がボード制御部２１から出力されているとする（ＳＴ４）。そして、拡張ボード１５へのデータ送信許可信号（Ｄａｃｋ１）の出力を確認し（ＳＴ５）、送信信号と許可信号を１とし、処理を終了する（ＳＴ６、ＳＴ７）。
【００６２】
次に、拡張ボード１６からデータ送信要求信号（Ｄｒｅｑ２）が出力されていないか判断するが（ＳＴ８）、本例の説明では拡張ボード１６に拡張ボードが接続されていないので、判断（ＳＴ８）はＮＯであり、上述の処理に戻って、同じ処理を繰り返す（ＳＴ２〜ＳＴ８）。すなわち、バスアービタ２０は上述の処理によって、バッファ２３、２４に交互にデータを格納する。
次に、２つのバッファ２３、２４に格納されたデータＤ１をメモリ（ＲＡＭ）７に出力するデータ転送処理動作を説明する。バッファ２３、２４に格納された６４ビットのデータは、図６に示す処理に従ってメモリ（ＲＡＭ）７に転送される。
【００６３】
先ず、前述の例と同様、初期設定処理を行う（ステップ（以下ＳＴＰで示す）１）。次に、ボード制御部２１はフラグ「Ｈ」が「１」であるか判断する（ＳＴＰ２）。ここで、フラグ「Ｈ」が「１」である時、前述のように、既にバッファ２３には６４ビットのデータが格納されていることを示し、ボード制御部２１はメモリ・ＤＭＡ制御部１８に対し、要求信号（ＤＭＡｒｅｑ１）を出力する（ＳＴＰ３）。
【００６４】
この要求信号（ＤＭＡｒｅｑ１）の入力により、メモリ・ＤＭＡ制御部１８はＭＰＵ５に対してＨＯＬＤ信号を出力し、ＭＰＵ５からＨＯＬＤＡ信号が出力されるのを待つ。そして、ＭＰＵ５からこの信号が供給されると、ＭＰＵ５はＤＭＡ処理のためにバスを解放したと判断し、メモリ・ＤＭＡ制御部１８は許可信号（ＤＭＡａｃｋ１）をボード制御部２１に返送する（ＳＴＰ４）。
【００６５】
ボード制御部２１はこのデータ送信許可信号（ＤＭＡａｃｋ１）が入力すると、バッファ２３に格納された６４ビットデータをメモリ（ＲＡＭ）７にＤＭＡ転送する。その後、データ送信要求信号（ＤＭＡｒｅｑ１）の出力を停止し（ＳＴＰ５）、データ送信許可信号（Ｄａｃｋ１）の出力が停止したことを判断し（ＳＴＰ６がＹＥＳ）、フラグ「Ｈ」を「０」にする（ＳＴＰ７）。
【００６６】
次に、ボード制御部２１はフラグ「Ｆ」が「１」であるか判断する（ＳＴＰ８）。この時、前述のようにバッファ２４には６４ビットのデータが格納されているので、フラグ「Ｆ」が「１」であり（ＳＴＰ８がＹＥＳ）、ボード制御部２１はメモリ・ＤＭＡ制御部１８に対し、要求信号（ＤＭＡｒｅｑ１）を出力する（ＳＴＰ９）。
【００６７】
この要求信号（ＤＭＡｒｅｑ１）の出力により、メモリ・ＤＭＡ制御部１８は前述と同様、ＭＰＵ５に対してＨＯＬＤ信号を出力し、ＭＰＵ５からＨＯＬＤＡ信号が出力されると、ＭＰＵ５がＤＭＡ処理のためにバスを解放したと判断し、メモリ・ＤＭＡ制御部１８は許可信号（ＤＭＡａｃｋ１）をボード制御部２１に返送する（ＳＴＰ１０がＹＥＳ）。
【００６８】
ボード制御部２１はこのデータ送信許可信号（ＤＭＡａｃｋ１）が入力すると、前述と同様バッファ２４に格納された６４ビットデータをメモリ（ＲＡＭ）７にＤＭＡ転送し、要求信号（ＤＭＡｒｅｑ１）の出力を停止し（ＳＴＰ１１）、更に許可信号（ＤＭＡａｃｋ１）の出力が停止したことを判断し（ＳＴＰ１２がＹＥＳ）、フラグ「Ｆ」を「０」に設定する（ＳＴＰ１３）。
【００６９】
以上のように、拡張ボードを１枚のみ使用する場合、バッファ２３と２４を交互に使用し、拡張ボード１５から供給されるデータを交互にバッファ２３、２４に格納し、２枚のバッファ２３、２４に格納したデータを交互にメモリ（ＲＡＭ）７に出力することにより、効率よいデータ転送を行うことができる。
《拡張ボードが２枚の場合》
次に、拡張ボード２枚を使用する場合について説明する。この場合も前述の図４と図５のフローチャートは使用する。但し、図６フローチャートは使用しない。以下、具体的な処理動作について説明する。
【００７０】
先ず、図４のフローチャートにおいて、前述と同様の初期設定処理を行う（Ｓ１）。次に、「Ｈ＝１」か否かの判断を行い（Ｓ２）、前述と同様、初期時フラグ「Ｈ」は「０」であり（Ｓ２がＮＯ）、拡張ボード１５からデータ送信要求信号（Ｄｒｅｑ１）が出力されているか判断する（Ｓ３）。このデータ送信要求信号（Ｄｒｅｑ１）は、拡張ボード１５がバッファ２３にデータ出力を希望する時出力する信号であり、前述と同様、カウンタのカウントアップを行いつつ、バッファ２３に６４ビットデータを格納する（Ｓ２〜Ｓ８）。このようにして、バッファ２３には６４ビットのデータが格納され、フラグ「Ｈ」を「１」とする（Ｓ８’）。
【００７１】
次に、装着された拡張ボードが１枚か否か判断する（Ｓ９）。本例の説明では２枚であるので、判断（Ｓ９）はＮＯとなり、再度フラグ「Ｈ」＝「１」の判断を行う。以下、拡張ボード１５からデータ送信要求信号（Ｄｒｅｑ１）が出力される度にバッファ２３には６４ビットのデータが格納される。
【００７２】
また、上述の処理は拡張ボード１５から出力されるデータに対しての説明であり、拡張ボード１６から同様にデータ送信要求信号（Ｄｒｅｑ２）が入力すると、上述と同様の処理によって、バッファ２４には６４ビットデータが書き込まれる。
【００７３】
また、図５に示すフローチャートで上述のバッファ２３、２４への書き込み処理を説明すると、初期設定処理（ＳＴ１）の後、データ送信要求信号（Ｄｒｅｑ１）の入力を判断し（ＳＴ２）、接続された拡張ボードは１枚のみか判断する（ＳＴ３）。ここで、本例の説明では拡張ボード１５、１６の２枚が接続されているので（ＳＴ３がＮＯ）、判断（ＳＴ４’）を実行する。この判断は、前述のメモリ・ＤＭＡ制御部１８に対し要求信号（ＤＭＡｒｅｑ１）や、許可信号（ＤＭＡａｃｋ１）が出力されているか否か判断するものであり、これらの信号がメモリ・ＤＭＡ制御部１８との間でやり取りされている場合にはバッファ２３に格納されたデータはＤＭＡ転送中であるので新たなバッファ２３へのデータ格納処理は行わない（ＳＴ４’がＮＯ）。
【００７４】
一方、バッファ２３に格納されたデータがＤＭＡ転送中でなければ（ＳＴ４’がＹ）、前述と同様、拡張ボード１５からバッファ２３に６４ビットのデータを格納する（ＳＴ２〜ＳＴ８）。
【００７５】
次に、拡張ボード１６からデータ送信要求信号（Ｄｒｅｑ２）が出力されていないか判断する（ＳＴ８）。本例では２枚の拡張ボードが接続されているため、データ送信要求信号（Ｄｒｅｑ２）が入力する場合がある。したがって、拡張ボード１６からデータ送信要求信号（Ｄｒｅｑ２）があった場合（ＳＴ８がＹＥＳ）、拡張ボードが１枚か否か判断し（ＳＴ９）、本例では２枚の拡張ボードが接続されているので、上述と同様、ボード制御部２２がメモリ・ＤＭＡ制御部１８に対し要求信号（ＤＭＡｒｅｑ２）や、許可信号（ＤＭＡａｃｋ２）を出力し、ＤＭＡ転送処理中ではないか判断する（ＳＴ１０）。そして、ＤＭＡ転送中であれば、バッファ２４への新たなデータの格納処理は行わない（ＳＴ１０がＮＯ）。
【００７６】
一方、バッファ２４に格納されたデータがＤＭＡ転送中でなければ、前述と同様、拡張ボード１６からバッファ２４に６４ビットのデータを格納する（ＳＴ１１〜ＳＴ１４）。
【００７７】
以上のように、複数の拡張ボード１５、１６が接続されている場合、データ送信要求信号（Ｄｒｅｑ）のあった拡張ボードからのデータを優先して対応するバッファ２３又は２４に格納し、バッファ２３、２４を効率よく使用する。
【００７８】
最後に、２つのバッファ２３、２４に格納されたデータＤ１、Ｄ２をメモリ（ＲＡＭ）７に出力するデータ転送処理を行う。この処理は、特にフローチャートには示さないが、バッファ２３又は２４に６４ビットデータが格納され、フラグ「Ｈ」又は「Ｆ」に「１」が設定されると駆動する。例えば、バッファ２３に６４ビットデータが格納されると、ボード制御部２１にはフラグ「Ｈ」が設定され、このフラグの設定に基づいてバッファ２３からデータをメモリ（ＲＡＭ）７にＤＭＡ転送する。一方、バッファ２４に６４ビットデータが格納されると、拡張ボード制御部２２にはフラグ「Ｆ」が設定され、このフラグの設定に基づいてバッファ２４からデータをメモリ（ＲＡＭ）７にＤＭＡ転送する。
【００７９】
以上の制御から、本例は６４ビットデータのデータがバッファ２３又は２４に格納され、６４ビットデータが格納されたバッファに対応する拡張ボード制御部２１又は２２から要求信号（ＤＭＡｒｅｑ１）の出力が行われ、当該バッファ２３又は２４からデータの送信をメモリ（ＲＡＭ）７に行うものである。
【００８０】
このように構成することにより、効率よくバッファ２３及び２４を使用し、データ転送処理を行うことができる。
＜第２の実施形態例＞
次に、第２の実施形態例について説明する。
【００８１】
図７は第２の実施形態例を説明する図である。本例も基本構成は、前述の第１実施形態例の説明で使用した図２と同じである。したがって、本発明の拡張ボード制御装置をプリンタ装置１に適用し、プリンタ装置１はＩ／Ｆコントローラ２と、このＩ／Ｆコントローラ２に接続する印字装置（エンジン）３で構成され、プリンタ装置１にはパーソナルコンピュータ４が接続されている。また、Ｉ／Ｆコントローラ２はパーソナルコンピュータ４から出力される印字情報に従って、記録紙に１対１で対応するビットマップデータを作成する機能を有し、ＭＰＵ５、ＲＯＭ６、ＲＡＭ７、オペレーションパネル制御部８、画像制御部９、エンジン制御部１０、メモリ制御部１１、ＤＭＡ制御部１２、拡張ボード制御部１３、インターフェイス部１４で構成されている。
【００８２】
ここで、上述の拡張ボード制御部１３が本発明の拡張ボード制御装置に対応し、この拡張ボード制御部１３には拡張ボード１５、１６が接続される。また、ＭＰＵ５は前述の実施形態例と同様、本例のプリンタ装置１の印刷制御を行うマイクロ・プロセッサ・ユニットであり、ＲＯＭ６に格納するプログラムに従って印刷制御を行う。
【００８３】
ここで、本例で使用する拡張ボード制御装置の具体的な構成を図７を用いて説明する。拡張ボード１５（又は１６）はメイン基板Ａに接続され、拡張ボード制御部１３は前述の構成と同じである。拡張ボード１５（又は１６）からはリクエスト信号（ＲＥＱ）が出力され、拡張ボード制御部１３から拡張ボード１５（又は１６）へはアクノリッジ信号（ＡＣＫ）、アドレスデータが出力される。尚、データＤは拡張ボード１５（又は１６）と拡張ボード制御部１３間で相互に授受が行われる。
【００８４】
ここで、リクエスト信号（ＲＥＱ）としては、前述のデータ送信要求信号（Ｄｒｅｑ１（又はＤｒｅｑ２））が対応し、アクノリッジ信号（ＡＣＫ）としては前述のデータ送信許可信号（Ｄａｃｋ１（Ｄａｃｋ２））が対応する。
【００８５】
一方、拡張ボード制御部１３からはＭＰＵ５に対してＨＯＬＤ信号が出力され、ＭＰＵ５から拡張ボード制御部１３へはＨＯＬＤＡ信号が出力される。上述のＨＯＬＤ信号はＭＰＵ５に対しダイレクトメモリアクセス（ＤＭＡ）転送の許可を要求する信号であり、ＨＯＬＤＡ信号はその応答信号である。
【００８６】
図８は、本例の特徴である拡張ボード制御部１３内の回路構成を示す。但し、拡張ボード制御部１３内は、勿論図８に示す回路のみで構成されているのではない。同図において、先ずナンドゲート３０とタイマ３１で構成されたインターバル設定回路３２が設けられている。このインターバル設定回路３２はＭＰＵ５から出力されるＨＯＬＤＡ信号が非アクティブになった時からの時間を計数し、一定のインターバル時間を計数した後、リクエスト信号（ＲＥＱ）の出力を条件にＨＯＬＤ信号をＭＰＵ５に出力する回路である。具体的には、ＭＰＵ５から出力されるＨＯＬＤＡ信号が非アクティブになった時点からタイマ３１を駆動し、タイマ３１に設定されたインターバル時間を計数し、ナンドゲート３０に出力する。ナンドゲート３０はタイマ３１からタイムアップ信号が入力し、且つリクエスト信号（ＲＥＱ）も入力すると、ナンドゲート３０からＨＯＬＤ信号をＭＰＵ５に出力する。ＨＯＬＤ信号はＭＰＵ５へのＤＭＡ転送要求であり、ＭＰＵ５はＨＯＬＤ信号の入力があると、その後ＨＯＬＤＡ信号を拡張ボード制御部１３に出力する。このＨＯＬＤＡ信号は拡張ボード制御部１３に対してアクノリッジ信号（ＡＣＫ）として機能する。
【００８７】
また、拡張ボード制御部１３にはバッファ３３も設けられ、ＭＰＵ５から出力されたアドレスデータを一旦保持する構成である。また、拡張ボード制御部１３に設けられたカウンタ３４はデータ授受の際、前述の例のように８ビット毎にデータをカウントして、例えば６４ビットデータとして出力するためのカウンタである。
【００８８】
以上の構成の第２実施形態例について、以下にその処理動作を説明する。
図９（ａ）は本例の処理動作を説明するタイムチャートである。先ず、拡張ボード１５（又は１６）からリクエスト信号（ＲＥＱ）が出力されると、拡張ボード制御部１３はＨＯＬＤ信号をＭＰＵ５に出力する。その後、ＭＰＵ５から出力されるＨＯＬＤＡ信号が非アクティブになると、タイマ３１はこれを検出し、一定のインターバル時間（ｔ）だけ計数を行う。したがって、その後短時間でＨＯＬＤＡ信号がアクティブになり、アクノリッジ信号（ＡＣＫ）の出力タイミングを早めることができる。
【００８９】
すなわち、図９（ｂ）は従来の場合の処理動作のタイムチャートを示すものであり、リクエスト信号（ＲＥＱ）の出力停止後一定時間（ｔ）を計数するので、ＨＯＬＤ信号の出力の終了時間が遅れ、従ってＭＰＵ５から出力されるＨＯＬＤＡ信号の供給タイミングも遅れることになる。
【００９０】
このように、従来例ではＭＰＵ５から出力されるＨＯＬＤＡ信号の出力が遅れ、その遅れがトータル的にデータ処理の遅延につながる。しかし、本例によればＨＯＬＤＡ信号が非アクティブになった後、タイマ３１によって予め一定のインターバル時間（ｔ）を計数するので、ＨＯＬＤ信号が出力された後、短時間でＨＯＬＤＡ信号（アクノリッジ信号（ＡＣＫ））を拡張ボード制御部１３に出力することができ、データ転送を高速に行うことができる。
【００９１】
【発明の効果】
以上説明したように、本発明によれば以下のような効果が発生する。
一の発明によれば、複数の拡張ボードが接続されていても、バッファを有効に使用し、効率よいデータの送受信処理を行うことができる。
【００９２】
また、一の発明によれば、複数の拡張ボードが接続可能な場合において、一の拡張ボードのみが接続されている場合、バッファを交互に使用し、効率よいデータの送受信処理を行うことができる。
【００９３】
さらに、ＤＭＡ転送の際インターバル時間を予め計数することにより転送許可信号の出力タイミングを早め、トータル的なＤＭＡ転送処理を高速に行うことができる。
【図面の簡単な説明】
【図１】実施形態例のボード制御装置の構成を説明する図である。
【図２】実施形態例の拡張ボード制御装置をプリンタ装置に適用した例を示す、プリンタ装置のシステム構成図である。
【図３】拡張ボード制御部の具体的な回路図である。
【図４】拡張ボード制御部の書き込み処理を説明するフローチャートである。
【図５】バスアービタの処理動作を示すフローチャートである。
【図６】拡張ボード制御部のＤＭＡ処理を説明するフローチャートである。
【図７】第２の実施形態例を説明する図である。
【図８】拡張ボード制御部内の回路構成を示す遅延回路のタイムチャートである。
【図９】（ａ）は本例の処理動作を説明するタイムチャートであり、（ｂ）は従来の場合の処理動作のタイムチャートである。
【符号の説明】
１  プリンタ装置
２  Ｉ／Ｆコントローラ
３  印字装置（エンジン）
４  パーソナルコンピュータ
５  ＭＰＵ
６  ＲＯＭ
７  ＲＡＭ
８  オペレーションパネル制御部
９  画像制御部
１０  エンジン制御部
１１  メモリ制御部
１２  ＤＭＡ制御部
１３  拡張ボード制御部
１４  インターフェイス制御部
１５、１６  拡張ボード
１８  メモリ・ＤＭＡ制御部
３０  ナンドゲート
３１  タイマ
３２  インターバル設定回路
３３  バッファ
３４  カウンタ
【図１】
0003764964.tif 000002
【図２】
0003764964.tif 000003
【図３】
0003764964.tif 000004
【図４】
0003764964.tif 000005
【図５】
0003764964.tif 000006
【図６】
0003764964.tif 000007
【図７】
0003764964.tif 000008
【図８】
0003764964.tif 000009
【図９】
0003764964.tif 000010