(57)【要約】【課題】命令コードを格納したフラッシュメモリ等の制御信号をＦＰＧＡ等により生成する論理を実現する場合、ＦＰＧＡのコンフィギュレーションに失敗すると情報処理装置が起動できないという課題があった。【解決手段】ＦＰＧＡがコンフィギュレーションに失敗した場合は、その成否を通知する信号を入力とする選択信号制御回路がパラレルＥＥＰＲＯＭの選択信号を生成する。これに応じて、プロセッサは、例えば、パラレルＥＥＰＲＯＭに格納されたコンフィギュレーションの失敗をユーザに通知するための命令コードを実行する。【選択図】  図８
2013090067.tif 000002
【特許請求の範囲】
【請求項１】
ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置であって、
ＣＰＵと、
前記記録装置への電源投入時に前記ＣＰＵにより実行される第１の制御手順を格納した第１のメモリと前記記録装置への電源投入時に前記ＣＰＵにより実行される第２の制御手順を格納した第２のメモリとを含む第１の不揮発性記憶手段と、
前記装置への電源投入時に回路構成情報に基づいてコンフィギュレーション動作を実行し、前記第１の不揮発性記憶手段に対する前記ＣＰＵからのアクセスを仲介するプログラマブル論理デバイスと、
前記回路構成情報を格納する第２の不揮発性記憶手段とを有し、
前記プログラマブル論理デバイスは、前記コンフィギュレーション動作が正常終了した場合には、前記第１のメモリをアドレスして前記第１の制御手順を読み出し、前記コンフィギュレーション動作が失敗した場合には、前記第２のメモリをアドレスして前記第２の制御手順を読み出するように構成されていることを特徴とする記録装置。
【請求項２】
前記記録装置は、前記ホストからの記録データを受信して画像処理を行うとともに、前記記録装置の全体を制御するプリンタコントローラと、前記プリンタコントローラにより処理された記録データに基づいて前記記録媒体に記録を行うプリンタエンジンと前記プリンタコントローラと前記プリンタエンジンとに電力を供給する電源回路部とを含み、
前記プリンタコントローラは、前記ＣＰＵと、前記第１の不揮発性記憶手段と、前記プログラマブル論理デバイスと、第２の不揮発性記憶手段とを含むことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記第１の制御手順とは、前記コンフィギュレーション動作が正常終了した場合に、前記記録装置に記録動作を実行させるための制御手順であり、
前記第２の制御手順とは、前記コンフィギュレーション動作が失敗した場合に、前記記録装置にユーザへの通知、或いは、前記電源回路部を制御して装置の電源オフを実行させるための制御手順であることを特徴とする請求項２に記載の記録装置。
【請求項４】
前記第１のメモリはフラッシュメモリであり、
前記第２のメモリは前記フラッシュメモリより容量の小さいＥＥＰＲＯＭであり、
前記第２の不揮発性記憶手段はＥＥＰＲＯＭであることを特徴とする請求項１乃至３のいずれか１項に記載の記録装置。
【請求項５】
前記プログラマブル論理デバイスはＦＰＧＡであり、
前記ＦＰＧＡは、前記コンフィギュレーション動作の結果として、内部回路構成の設定の成否を示す信号を出力することを特徴とする請求項１乃至４のいずれか１項に記載の記録装置。
【請求項６】
ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置の電源投入時の動作方法であって、
前記記録装置への電源投入時に前記記録装置のＣＰＵにより実行される第１の制御手順を第１の不揮発性記憶手段の第１のメモリに格納し、
前記記録装置への電源投入時に前記ＣＰＵにより実行される第２の制御手順を前記第１の不揮発性記憶手段の第２のメモリに格納し、
前記第１の不揮発性記憶手段に対する前記ＣＰＵからのアクセスを仲介するプログラマブル論理デバイスが、前記装置への電源投入時に、第２の不揮発性記憶手段に格納された回路構成情報に基づいてコンフィギュレーション動作を実行し、
前記コンフィギュレーション動作が正常終了した場合には、前記プログラマブル論理デバイスは、前記第１のメモリをアドレスして前記第１の制御手順を読み出し、
前記コンフィギュレーション動作が失敗した場合には、前記プログラマブル論理デバイスは、前記第２のメモリをアドレスして前記第２の制御手順を読み出すことを特徴とする記録装置の電源投入時の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記録装置及びその電源投入時の動作方法に関し、特に、電源投入のつど内部の揮発性メモリに回路構成情報を設定するプログラマブル論理デバイスを有する記録装置、及びその電源投入時の動作方法に関する。
【背景技術】
【０００２】
近年プリンタなどの電子機器を制御するコントローラは機能の高度化や複雑化が進み、プロセッサがメモリ上のプログラムを実行して電子機器を制御する情報処理装置として構成されることが多くなっている。こうしたコントローラのような装置を構成するためにプロセッサやＲＡＭやＲＯＭにアクセスするためのメモリコントローラ、特定機能を実現するハードウエアを１つのパッケージに封止したＡＳＩＣ（アプリケーション専用集積回路）を使用することがある。また、情報処理装置に機能を追加する際には、ある機能をプリント回路基板に実装後でも任意に内部の論理を変更することのできるプログラマブル論理デバイスが従来から用いられている。
【０００３】
プログラマブル論理デバイスは内部に揮発性または不揮発性のメモリを有しており、このメモリ上に書き込まれた回路構成情報に基づいて論理回路を実現する。回路構成情報を記憶するメモリとして不揮発性メモリを使用しているプログラマブル論理デバイスでは、一度回路構成を書き込むことで論理を保持することができる。一方、揮発性メモリを使用するプログラマブル論理デバイスでは電源投入のつど外部に接続された不揮発性のメモリ素子、例えば、ＥＥＰＲＯＭから回路構成情報を読み出して内部の揮発性メモリに書き込むコンフィギュレーションと呼ばれる処理を実行する。コンフィギュレーションはノイズ等の要因により失敗することがあるほか、ＥＥＰＲＯＭに適正な回路構成情報が格納されていないために正常に完了しない場合がある。
【０００４】
特許文献１は、複数のプログラマブルデバイスを有する装置において、全てのデバイスのコンフィギュレーションが完了するまで制御信号やバス信号を開放して回路の動作を無効に制御するプログラマブルデバイスの設定状態検出制御装置を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３１９８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら上記従来例のプログラマブルデバイスの設定状態検出制御装置では、コンフィギュレーションが失敗した場合に回路の動作が無効となるためプロセッサがメモリ上のプログラムを実行できないという課題があった。このため、使用者にコンフィギュレーションの失敗を通知するためのプログラムを実行することができなかった。
【０００７】
本発明は上記従来例に鑑みてなされたもので、プログラマブル論理デバイスのコンフィギュレーション動作に失敗時にも適切な制御手順を読み出してＣＰＵに実行させることが可能な記録装置及びその電源投入時の動作方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の記録装置は次のような構成からなる。
【０００９】
即ち、ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置であって、ＣＰＵと、前記記録装置への電源投入時に前記ＣＰＵにより実行される第１の制御手順を格納した第１のメモリと前記記録装置への電源投入時に前記ＣＰＵにより実行される第２の制御手順を格納した第２のメモリとを含む第１の不揮発性記憶手段と、前記装置への電源投入時に回路構成情報に基づいてコンフィギュレーション動作を実行し、前記第１の不揮発性記憶手段に対する前記ＣＰＵからのアクセスを仲介するプログラマブル論理デバイスと、前記回路構成情報を格納する第２の不揮発性記憶手段とを有し、前記プログラマブル論理デバイスは、前記コンフィギュレーション動作が正常終了した場合には、前記第１のメモリをアドレスして前記第１の制御手順を読み出し、前記コンフィギュレーション動作が失敗した場合には、前記第２のメモリをアドレスして前記第２の制御手順を読み出するように構成されていることを特徴とする。
【００１０】
また本発明を別の側面から見れば、ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置の電源投入時の動作方法であって、前記記録装置への電源投入時に前記記録装置のＣＰＵにより実行される第１の制御手順を第１の不揮発性記憶手段の第１のメモリに格納し、前記記録装置への電源投入時に前記ＣＰＵにより実行される第２の制御手順を前記第１の不揮発性記憶手段の第２のメモリに格納し、前記第１の不揮発性記憶手段に対する前記ＣＰＵからのアクセスを仲介するプログラマブル論理デバイスが、前記装置への電源投入時に、第２の不揮発性記憶手段に格納された回路構成情報に基づいてコンフィギュレーション動作を実行し、前記コンフィギュレーション動作が正常終了した場合には、前記プログラマブル論理デバイスは、前記第１のメモリをアドレスして前記第１の制御手順を読み出し、前記コンフィギュレーション動作が失敗した場合には、前記プログラマブル論理デバイスは、前記第２のメモリをアドレスして前記第２の制御手順を読み出すことを特徴とする記録装置の電源投入時の動作方法を備える。
【発明の効果】
【００１１】
従って本発明によれば、プログラマブル論理デバイスのコンフィギュレーションの成否に応じて、ＣＰＵが適切な制御手順を読み出す対象となるメモリを選択することができるという効果がある。従って、プログラマブル論理デバイスのコンフィギュレーションが失敗した場合でも、ＣＰＵが適切な動作を記録装置に実行させることが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の代表的な実施例であるインクジェット記録装置の概略構成を示す外観斜視図である。
【図２】図１に示した記録装置の制御構成を示すブロック図である。
【図３】図２に示したシステムバスブリッジの動作を説明する図である。
【図４】図２に示したＲＯＭコントローラの信号を説明する図である。
【図５】図２に示したＲＯＭコントローラのレジスタを説明する図である。
【図６】図２に示したＦＰＧＡを構成するＦＰＧＡのコンフィギュレーションに関連する信号を示す図である。
【図７】ＦＰＧＡのコンフィギュレーション動作と信号の変化を説明する図である。
【図８】プリンタコントローラＡＳＩＣとＦＰＧＡとＲＯＭの接続を示す図である。
【図９】図８に示したＦＰＧＡの入力信号と出力信号の関係を示す真理値表を示す図である。
【図１０】図８に示したＦＰＧＡのコンフィギュレーションの成否に応じて選択されるメモリデバイスのチップセレクト信号の論理を説明する図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照しながら本発明の実施例について詳細に説明する
なお、この明細書において、「記録」（以下、「プリント」とも称する）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、広く記録媒体上に画像、模様、パターン等を形成する、又は媒体の加工を行う場合も表すものとする。また、人間が視覚で知覚し得るように顕在化したものであるか否かを問わない。
【００１４】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００１５】
また、「インク」とは、上記「記録」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成又は記録媒体の加工、或いはインクの処理に供され得る液体を表すものとする。インクの処理としては、例えば記録媒体に付与されるインク中の色剤の凝固又は不溶化させることが挙げられる。
またさらに、「記録素子」（「ノズル」という場合もある）とは、特にことわらない限りインク吐出口乃至これに連通する液路及びインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【００１６】
図１は本発明の代表的な実施例であるシリアルスキャン方式のインクジェット記録装置（以下、プリンタ）の概略構成を示す概観図である。
【００１７】
プリンタ１００は、図１に示すように架設されたガイドレール１０１および１０２に沿ってキャリッジ１０３が矢印“Ｘ”で示される方向（主走査方向）に移動自在にガイドされている。キャリッジ１０３はキャリッジモータ（不図示）とその駆動力を伝達する無端ベルト等の駆動力伝達機構により主走査方向に往復移動する。キャリッジ１０３には記録ヘッド１０４が搭載され、プリンタ１００に装着された各色のインクタンク（不図示）からチューブを介してインクが供給される。
【００１８】
記録ヘッド１０４はインクジェット方式の記録ヘッドであり、インク滴を吐出可能な吐出口が主走査方向と交差する方向に配列されてノズル列が形成されている。吐出口からインクを吐出させるための機構として、電気熱変換体（ヒータ）や圧電効果を利用したピエゾ素子などを用いることができる。電気熱変換体を用いた場合には、電気熱変換体の発熱によってインクを発泡させ、発泡の際に生じる発泡エネルギーを利用して吐出口からインクを吐出させる。
【００１９】
記録用紙のような記録媒体は、ロール状に巻回されたロール紙１０５をプリンタ１００に装着し、ロール紙１０５から引き出されたシート端がプリンタ１００の挿入口から挿入される。そのシートは搬送ローラ１０６によって主走査方向と直交する矢印“Ｙ”で示される方向（副走査方向）に搬送される。プリンタ１００は、記録ヘッド１０４を主走査方向に往復移動させながらインク滴を記録媒体に吐出して記録を行う動作と、記録ヘッド１０４の記録幅に対応する距離だけ記録用紙を副走査方向に搬送する動作とを繰り返すことにより、順次画像を記録する。
【００２０】
プリンタ１００は、記録動作以外の動作モードとしてスタンバイモードとスリープモードの二つのモードを備えている。スタンバイモードでは記録動作を行っていない他はほぼ記録中と同じ状態であり、ホスト装置からプリント指示を受信するとただちに記録を開始することができる状態にある。スリープモードではスタンバイモードよりも消費電力の少ない省電力状態にあり、一部の回路へのクロック信号の停止や電力供給を停止している。スリープモード中にホスト装置からのプリント指示を受信すると、プリンタはクロック信号や電力供給を再開して記録可能な状態へ復帰する。
【００２１】
プリンタ１００は上述したような機構的な構成をプリンタエンジンということもある。そして、プリンタ１００は、プリンタエンジンと、そのプリンタエンジンを制御するとともにホスト装置とのインタフェースとして役割を果たし、装置全体を制御するプリンタコントローラと、電源回路部等から概略構成される。従って、プリンタコントローラは記録データや制御データを処理するので、その意味からすれば、ある種の情報処理装置ということもできる。図１にはプリンタコントローラ２００が点線で示されている。
【００２２】
以下、情報処理装置としてプリンタコントローラについての実施例を説明する。
【００２３】
図２はプリンタコントローラ２００の構成を示すブロック図であるが、ホスト装置（以下、ホスト）２８０とプリンタエンジン２９０との接続関係も示されている。
【００２４】
プリンタコントローラ２００は、パーソナルコンピュータ等のホスト２８０から印刷指示および印刷用の画像データを受信し、受信した画像データをプリンタエンジン２９０で印刷可能な構成の二値画像データに変換して出力する機能を提供する。プリンタコントローラ２００は、ＣＰＵ２０１、ＲＡＭコントローラ２０３、ＲＯＭコントローラ２０４、通信インタフェース２０５、操作部制御回路部２０６、表示部制御回路部２０７、及び拡張バス回路部２０８を備えている。プリンタコントローラ２００はさらに、画像処理部２０９とプリンタエンジンインタフェース２１０とを備える。これら各ブロックは互いそにバスライン２１２ａ〜２１２ｊを介してシステムバスブリッジ２１１に接続されている。
【００２５】
これらのブロックはシステムＬＳＩとして一つのパッケージに封止されたプリンタコントローラＡＳＩＣ（アプリケーション専用集積回路）２１４として実現されている。
【００２６】
また、プリンタコントローラ２００は、ＲＡＭ２５１、ＲＯＭ２５２、操作部２５３、表示部２５４、機能拡張ユニットを装着する拡張スロット２５５、ＥＥＰＲＯＭ２５６、ＦＰＧＡ２５７を備える。この他、プリンタコントローラ２００は、図示しない電源回路部、クロック信号生成回路部、及びリセット信号生成回路部を有している。
【００２７】
ＣＰＵ２０１は、プリンタコントローラ２００全体の制御を司る。ＣＰＵ２０１は、ＲＯＭ２５２またはＲＡＭ２５１に格納された制御プログラムを順次読み出し実行することによって、通信インタフェース２０５の制御、操作部２５３、及び表示部２５４の制御を行う。また、ＣＰＵ２０１は、受信した画像データを画像形成データに変換するための画像処理部２０９の制御や、生成された画像形成データをプリンタエンジン２９０へ転送するためのプリンタエンジンインタフェース２１０の制御等を行う。
【００２８】
プリンタコントローラ２００への電源の供給が開始され、リセット信号生成回路部（不図示）からプリンタコントローラＡＳＩＣ２１４に入力されたリセット信号が非リセット状態に遷移するとＣＰＵ２０１が動作を開始する。リセットが解除されるとＣＰＵ２０１はリセットベクタと呼ばれる所定のアドレスから順次命令コードを読み出して実行する。
【００２９】
なお、ＣＰＵ２０１がアクセスするアドレスバスは３２ビット構成であり、リセットベクタのアドレスは“０ｘＦＦＦＦ００００”である。なお、後述するシステムバスブリッジ、ＲＯＭコントローラ、およびＦＰＧＡの機能により、リセットベクタのアドレス“０ｘＦＦＦＦ００００”からの命令コードの読み出しはＲＯＭへの読み出しコマンドに変換される。
【００３０】
ＲＡＭコントローラ２０３は、ＲＡＭバス２６１を介してプリンタコントローラＡＳＩＣ２１４に接続されたＲＡＭ２５１の制御を行う。ＲＡＭコントローラ２０３はＣＰＵ２０１およびＤＭＡＣを有する各ブロックとＲＡＭ２５１との間で、書き込みまたは読み出しされるデータの中継を行う。ＲＡＭコントローラ２０３は、ＣＰＵ２０１および各ブロックからの読み出し要求や書き込み要求に応じて必要な制御信号を生成してＲＡＭ２５１への書き込みやＲＡＭ２５１からの読み出しを実現する。
【００３１】
ＲＯＭコントローラ２０４は、ＲＯＭバス２６２ａ〜２６２ｂ及びＦＰＧＡ２５７を介してプリンタコントローラＡＳＩＣ２１４に接続されたＲＯＭ２５２の制御を行う。ＲＯＭコントローラ２０４は、ＣＰＵ２０１からの読み出し要求に応じて必要な制御信号を生成して、予めＲＯＭ２５２に格納された制御手順（プログラム）やデータを読み出し、システムバスブリッジ２１１を介してＣＰＵ２０１に読み出した内容を送り返す。また、ＲＯＭ２５２がフラッシュメモリ等の電気的書換可能なデバイスで構成される場合、ＲＯＭコントローラ２０４は必要な制御信号を発生してＲＯＭ２５２の内容を書き換える。
【００３２】
通信インタフェース２０５は、パーソナルコンピュータやワークステーション等のホスト２８０との間でデータの送受信を行う機能を備え、ホスト２８０から受信した画像データを、ＲＡＭコントローラ２０３を介してＲＡＭ２５１に格納する機能を備えている。通信インタフェース２０５の通信方式としては、ＵＳＢやＩＥＥＥ１３９４などの高速シリアル通信、ＩＥＥＥ１２８４などのパラレル通信、あるいは１００ＢＡＳＥ−ＴＸや１０００ＢＡＳＥ−Ｔ等のネットワーク通信などいずれの方式であってもよい。またこれらの複数の通信方式に対応していてもよい。さらには、有線通信方式に限らず、無線通信方式であっても良い。
【００３３】
操作部制御回路部２０６は、操作部２５３を構成するスイッチから出力される電気信号の状態をＣＰＵ２０１からのリード命令に対してレジスタ情報として通知する機能を備えている。また、操作部制御回路部２０６は、スイッチから出力される電気信号の状態に変化が生じると、ＣＰＵ２０１に対して割り込み信号を生成する機能を備えている。表示部制御回路部２０７は、表示部２５４を構成するＬＣＤおよびＬＥＤランプに電気信号を出力する機能を備える。拡張バス回路部２０８は、拡張スロット２５５に装着した機能拡張ユニットを制御する機能を備え、拡張バス２６５を介して機能拡張ユニットにデータを送信する制御および機能拡張ユニットが出力するデータを受信する制御を行う。拡張スロット２５５には、大容量記憶機能を提供するハードディスクドライブユニット、あるいはＵＳＢやＩＥＥＥ１３９４のほか、ＩＥＥＥ１２８４などに準拠した通信機能によりホスト装置と通信を行う通信ユニットなどが装着可能である。
【００３４】
画像処理部２０９は、ホスト２８０から受信した画像データをプリンタエンジン２９０で印刷可能な二値画像データに変換する機能を備えている。プリンタエンジンインタフェース２１０は、プリンタコントローラ２００とプリンタエンジン２９０との間でデータの送受信を行うブロックである。画像処理部２０９やプリンタエンジンインタフェース２１０は印刷処理中に動作するブロックであり、プリンタ１００がスリープモードの間はクロック信号を停止して電力消費を抑制するクロックゲーティング処理を行う。プリンタエンジンインタフェース２１０は、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）を有している。これにより、プリンタエンジンインタフェース２１０は、画像処理部２０９で生成されＲＡＭ２５１に格納されている二値画像データを、ＲＡＭコントローラ２０３を介して順次読み出してプリンタエンジン２９０に転送する。なお、通信インタフェース２０５、拡張バス回路部２０８、および画像処理部２０９は、プリンタエンジンインタフェース２１０と同様にＤＭＡＣ機能を有し、メモリアクセス要求を発行する機能を備えている。
【００３５】
システムバスブリッジ２１１は、プリンタコントローラＡＳＩＣ２１４を構成する各ブロック間を接続する機能を備えるほか、複数のブロックから同時にアクセス要求が発行された場合に、バス権を調停する機能を備えている。ＣＰＵ２０１およびＤＭＡＣを有する各ブロックがＲＡＭコントローラ２０３を介してＲＡＭ２５１へのアクセス要求をほぼ同時に発行する場合には、システムバスブリッジ２１１は予め指定されたプライオリティー（優先順位）に従って適切に調停を行う。
【００３６】
ＲＡＭ２５１は同期ＤＲＡＭ（ＳＤＲＡＭ）で構成され、ＣＰＵ２０１が実行する制御手順の格納、画像処理部２０９において生成された画像形成データの一時的な記憶、およびＣＰＵ２０１のワークメモリとしての機能などを提供する。また、ＲＡＭ２５１は、通信インタフェース２０５がホスト２８０から受信した画像データの一時的なバッファリングや拡張バス２６５を介して接続された機能拡張ユニットとの間で受け渡しされるデータを一時的に保存する。
【００３７】
ＲＯＭ（第１の不揮発性記憶手段）２５２はフラッシュメモリ（第１のメモリ）やパラレルＥＥＰＲＯＭ（第２のメモリ）等で構成され、ＣＰＵ２０１が実行する制御手順および記録制御に必要なパラメータを格納する。フラッシュメモリおよびパラレルＥＥＰＲＯＭは、決められたシーケンスに従って制御手順やパラメータの書き換えが可能である。この実施例では、２５本のアドレス線を備えた３２メガバイトのフラッシュメモリおよび１３本のアドレス線を備えた８キロバイトのパラレルＥＥＰＲＯＭでＲＯＭ２５２が構成される。
【００３８】
ＦＰＧＡ２５７は、ＦＰＧＡおよび付加論理回路で構成される。ＦＰＧＡはプリンタコントローラ２００に機能追加するプログラマブル論理デバイスである。ＦＰＧＡは内部にＳＲＡＭタイプの記憶領域を備え、コンフィギュレーションと呼ばれる動作により論理回路を形成する。ＦＰＧＡに電力が供給されたのち、コンフィギュレーション動作によりＥＥＰＲＯＭ（第２の不揮発性記憶手段）２５６から読み出した回路構成情報を内部の記憶領域に格納して論理回路を構成する。この実施例では、ＦＰＧＡ２５７はプリンタコントローラＡＳＩＣ２１４が出力するＲＯＭバス２６２ａの信号の一部の信号を入力とし、ＲＯＭへ供給するＲＯＭバス２６２ａの信号の一部の制御信号を生成する論理を機能の一部として実現する。なお、ＦＰＧＡ２５７の詳細な構成および動作については図面を参照して後述する。
【００３９】
操作部２５３は、プリンタ１００の動作を設定するボタンに連動するスイッチで構成され、これらスイッチの状態を電気信号として出力する機能を備える。また、操作部２５３は、操作ボタンの操作によるスイッチの状態の変化を電気信号の変化として出力する機能を備えている。操作部２５３は、プリンタ１００の電源のオンおよびオフを指示する電源ボタンを備えている。また、操作部２５３には、動作モードを切り替えるオンラインボタンやメニュー画面の表示を指示するメニューボタン、メニュー画面から項目を選択するための上下左右方向の十字ボタン、および選択項目を確定するＯＫボタンを備えている。この他、操作部２５３は、印刷の停止を指示するストップボタンおよび印刷用紙の給紙方法を選択する給紙選択ボタンを備えている。表示部２５４は、ＬＥＤランプおよびＬＣＤ等から構成される。ＬＥＤランプはプリンタ１００の動作状態や警告を表示し、ＬＣＤはプリンタ１００の動作状態を表示する他、操作部２５３のメニューボタンなどの操作によりメニュー画面を表示する。
【００４０】
次に、システムバスブリッジ２１１の動作について説明する。
【００４１】
図３は、システムバスブリッジ２１１が受信したトランザクションをスレーブデバイスに転送する際、トランザクションのアドレス情報と転送先として選択するスレーブデバイスとの関係を示す図である。
【００４２】
システムバスブリッジ２１１はＣＰＵ２０１などのマスターデバイスが発行するトランザクションを各スレーブデバイスに転送する機能を備えており、アクセスするアドレス情報によって転送先となるスレーブデバイスを決定する。システムバスブリッジ２１１は、図３（ａ）に示すようにアクセスするアドレスが“０ｘ００００００００”〜“０ｘ７ＦＦＦＦＦＦＦ”の範囲の場合は、受信トランザクションをＲＡＭコントローラ２０３へ転送する。また、アクセスするアドレスが“０ｘ８０００００００”〜“０ｘ９ＦＦＦＦＦＦＦ”の範囲の場合はプリンタエンジンインタフェース２１０へ受信トランザクションを転送する。アクセスするアドレスが“０ｘＡ０００００００”〜“０ｘＢＦＦＦＦＦＦＦ”の範囲の場合は画像処理部２０９へトランザクションを転送する。
【００４３】
以下同様に、“０ｘＣ０００００００”〜“０ｘＣ７ＦＦＦＦＦＦ”の範囲へのアクセスは通信インタフェース２０５へ、“０ｘＣ８００００００”〜“０ｘＣＦＦＦＦＦＦＦ”の範囲へのアクセスは拡張バス回路部２０８へ転送される。
【００４４】
“０ｘＥ０００００００”〜“０ｘＥ０ＦＦＦＦＦＦ”の範囲へのアクセスは各回路ブロックに内蔵されるレジスタへアクセスするアドレス領域となっている。図３（ｂ）に示すように、例えば、“０ｘＥ０００００００”〜“０ｘＥ００ＦＦＦＦＦ”のアドレス範囲はＲＯＭコントローラのレジスタへのアクセスになる。同様に、“０ｘＥ０１０００００”〜“０ｘＥ０ＦＦＦＦＦＦ”のアドレス範囲はその他の回路ブロック各々のレジスタへのアクセスになる。
【００４５】
さらに、図３（ａ）の最下段に示すように、“０ｘＦ０００００００”〜“０ｘＦＦＦＦＦＦＦＦ”のアドレス範囲へのアクセスはＲＯＭコントローラ２０４へ転送される。システムバスブリッジ２１１の機能により、ＣＰＵ２０１がリセットベクタ“０ｘＦＦＦＦ００００”からの命令コードの読み出しの際に発行されるトランザクションはＲＯＭコントローラ２０４へ転送される。
【００４６】
次に、ＲＯＭコントローラについて説明する。
【００４７】
図４はＲＯＭコントローラ２０４の入出力信号のうちＲＯＭバスを構成する信号を説明する図である。
【００４８】
これらの信号はプリンタコントローラＡＳＩＣ２１４に設けられた出力端子および入出力端子を介して外部デバイスと接続される。ＲＯＭコントローラ２０４は、アクセスするデバイスを選択するためのチップセレクト信号として、チップセレクト０信号ＣＳ０＃およびチップセレクト１信号ＣＳ１＃の２本の信号を備えている。また、ＲＯＭコントローラ２０４は、選択したデバイスにデータの出力を指示するデータ出力イネーブル信号ＯＥ＃、および選択したデバイスにデータを書き込むための書き込みイネーブル信号ＷＥ＃を備えている。これらのチップセレクト信号ＣＳ０＃およびＣＳ１＃、出力イネーブル信号ＯＥ＃、ならびに書き込みイネーブル信号ＷＥ＃は、出力電圧がローレベルのときに有効を意味するアクティブ・ロー信号である。
【００４９】
また、ＲＯＭコントローラ２０４はアドレス情報を出力する２４本のアドレス信号ＡＤＤＲ［２３：０］、およびデータを入出力する８本のデータ信号ＤＡＴＡ［７：０］を備えている。
【００５０】
ＲＯＭコントローラ２０４がシステムバスブリッジ２１１から受信するトランザクションには３２ビットのアドレス情報が含まれており、このうち下位２４ビットのアドレス情報をアドレス信号ＡＤＤＲ［２３：０］として出力する。また、ＲＯＭコントローラ２０４とＲＯＭ２５２は８ビットのデータ信号ＤＡＴＡ［７：０］で接続されているので、バイトアクセス以外のトランザクションは複数回のデータ転送を繰り返すことで必要なデータサイズの転送を実現する。例えば、３２ビットのデータを読み出す場合は、ＲＯＭバス２６２ａ上のチップセレクト信号ＣＳ０＃またはＣＳ１＃および出力イネーブル信号ＯＥ＃を有効化するリードコマンドを、アドレス値を１ずつ増やしながら４回発行する。
【００５１】
プリンタコントローラＡＳＩＣ２１４の回路ブロック各々はＣＰＵ２０１からアクセス可能なレジスタを備える。ＣＰＵ２０１は、これらのレジスタに所定の値をライトして回路ブロックの動作を制御することや、レジスタをリードして各回路ブロックの状態を取得することができる。
【００５２】
図５は図２に示すＲＯＭコントローラのレジスタを説明する図である。
【００５３】
ＲＯＭコントローラ２０４は、図５（ａ）に示すように、チップセレクト０アドレス設定レジスタ４０１およびチップセレクト１アドレス設定レジスタ４０２を備えている。ＲＯＭコントローラ２０４はこの他、ＲＯＭ２５２へのアクセスタイミングを設定するレジスタ（不図示）などのレジスタ群を有する。
【００５４】
チップセレクト０アドレス設定レジスタ４０１は、チップセレクト０信号ＣＳ０＃に対応するアドレス領域を設定するレジスタである。チップセレクト０アドレス設定レジスタ４０１は、図５（ｂ）に示すようにアドレス領域の先頭アドレスの上位１６ビットＳＡ０を設定する１６ビットのフィールドを備えている。
【００５５】
設定された１６ビットの値（ＳＡ０）と１６ビットの値“０ｘ００００”を連接した３２ビットの値がアドレス領域の先頭アドレスとして参照される。また、チップセレクト０アドレス設定レジスタ４０１は、アドレス領域の最終アドレスの上位１６ビットＥＡ０を設定する１６ビットのフィールドを備えている。設定された１６ビットの値（ＥＡ０）と１６ビットの値“０ｘＦＦＦＦ”を連接した３２ビットの値がアドレス領域の最終アドレスとして参照される。例えば、先頭アドレス設定フィールドＳＡ０に“０ｘＦＡ４０”を、最終アドレス設定フィールドＥＡ０に“０ｘＦＡ７Ｆ”を設定した場合は、先頭アドレスが“０ｘＦＡ４０００００”、最終アドレスが“０ｘＦＡ７ＦＦＦＦＦ”となる。この時“０ｘＦＡ４０００００”〜“０ｘＦＡ７ＦＦＦＦＦ”のアドレス範囲へのトランザクションをシステムバスブリッジ２１１から受信するとＲＯＭコントローラ２０４はチップセレクト０信号ＣＳ０＃を有効化してＲＯＭバス２６２ａにコマンドを発行する。このとき、アクセスアドレスの下位２４ビットがＲＯＭバス２６２ａのアドレス信号ＡＤＤＲ［２３：０］に出力される。
【００５６】
チップセレクト１アドレス設定レジスタ４０２は、チップセレクト１信号ＣＳ１＃に対応するアドレス領域を設定するレジスタである。チップセレクト０アドレス設定レジスタ４０１と同様に、チップセレクト１アドレス設定レジスタ４０２もアドレス領域の先頭アドレスの上位１６ビットＳＡ１を設定するフィールドおよび最終アドレスの上位１６ビットＥＡ１を設定するフィールドを備えている。
【００５７】
チップセレクト０アドレス設定レジスタ４０１およびチップセレクト１アドレス設定レジスタ４０２で設定された二つのアドレス範囲に重複する領域が存在する場合は、チップセレクト０アドレス設定レジスタ４０１の設定が優先される。即ち、この場合はチップセレクト０信号ＣＳ０＃がローレベルに有効化され、チップセレクト１信号ＣＳ１＃はハイレベルで無効化されたままとなる。例えば、チップセレクト０アドレス設定レジスタ４０１に“０ｘＦ０００Ｆ０７Ｆ”、チップセレクト１アドレス設定レジスタ４０２に“０ｘＦ０４０Ｆ０ＢＦ”を設定した場合を考える。この場合、アドレス領域“０ｘＦ００００００”〜“０ｘＦ０７ＦＦＦＦＦ”がチップセレクト０信号ＣＳ０＃に対応し、アドレス領域“０ｘＦ０４０００００”〜“０ｘＦ０ＢＦＦＦＦＦ”がチップセレクト１信号ＣＳ１＃に対応する。従って、“０ｘＦ０４０００００”〜“０ｘＦ０７ＦＦＦＦＦ”のアドレス範囲は双方に含まれることになるが、チップセレクト０信号ＣＳ０＃のみが有効になる。
【００５８】
なお、チップセレクト０アドレス設定レジスタ４０１の初期値は“０ｘ００００ＦＦＦＦ”であり、“０ｘ００００００００”〜“０ｘＦＦＦＦＦＦＦＦ”の全アドレス領域がチップセレクト０信号ＣＳ０＃に対応している。また、チップセレクト１アドレス設定レジスタ４０２の初期値は“０ｘ００００００００”である。この実施例ではリセット解除後にＣＰＵ２０１が最初に発行するリセットベクタのアドレス“０ｘＦＦＦＦ００００”への命令読み込みはチップセレクト０信号ＣＳ０＃に対応する初期値のアドレス領域に含まれる。即ち、ＲＯＭコントローラ２０４はチップセレクト０信号ＣＳ０＃をローレベルに有効化して命令コードの読み出しを開始する。
【００５９】
次に、ＦＰＧＡとその内部回路情報を保持するＥＥＰＲＯＭの接続構成について図面を参照して説明する。
【００６０】
図６は、ＦＰＧＡが内部回路を構成する際に使用する信号を説明する図である。この実施例では、ＦＰＧＡ２５７はＥＥＰＲＯＭ２５６に格納された回路構成情報を読み出して回路を構成する。
【００６１】
図６に示す３つの信号（ＣＣＬＫ、ＳＥＬＥＣＴ、ＤＡＴＡ）は、ＦＰＧＡ２５７とＥＥＰＲＯＭ２５６との間で接続される。ＣＣＬＫは、ＦＰＧＡ２５７からＥＥＰＲＯＭ２５６に供給するクロック信号で、ＥＥＰＲＯＭ２５６はクロック信号ＣＣＬＫに同期してＦＰＧＡ２５７の回路構成情報を出力する。ＳＥＬＥＣＴはＦＰＧＡ２５７からＥＥＰＲＯＭ２５６に供給するデバイス選択信号で、回路構成情報を読み出す際に有効化される。ＤＡＴＡは、ＥＥＰＲＯＭ２５６が出力するデータ出力端子に接続される信号である。ＦＰＧＡ２５７はクロック信号ＣＣＬＫに同期して信号ＤＡＴＡ上の回路構成情報信号を内部に取り込む。
【００６２】
さらに、ＦＰＧＡ２５７は２つの信号（ＳＴＡＴＵＳ、ＤＯＮＥ）信号を出力する。ＳＴＡＴＵＳ信号とＤＯＮＥ信号はＦＰＧＡ２５７のコンフィギュレーション動作に関する状態を示す信号で、ＳＴＡＴＵＳはコンフィギュレーション動作の進行状況を示し、ＤＯＮＥはコンフィギュレーション動作の終了を通知する。ＦＰＧＡ２５７は、プリンタコントローラ２００に電力供給が開始されるとＥＥＰＲＯＭ２５６から回路構成情報を読み出してコンフィギュレーション動作を開始する。
【００６３】
図７はＦＰＧＡのコンフィギュレーション動作と信号の変化を説明する図である。
【００６４】
図７（ａ）に示すように、電源の立ち上がりのデバイス・パワーアップ後、コンフィギュレーションメモリのクリアなどを行うセットアップ動作が実行される。続いて、ＣＣＬＫおよびＳＥＬＥＣＴを出力しＥＥＰＲＯＭ２５６から出力される回路構成情報をＤＡＴＡとして読み込んで内部回路構成を設定するコンフィギュレーション動作を実行する。この結果、コンフィギュレーション動作が正常に終了すると、設定された回路構成によって動作するユーザロジック動作が開始される。セットアップ動作が終了するとＳＴＡＴＵＳ信号にハイレベルが出力される。また、コンフィギュレーション動作が正常に終了するとＤＯＮＥ信号がハイレベルにアサートされる。
【００６５】
一方、コンフィギュレーション動作の途中でコンフィギュレーションに失敗すると、図７（ｂ）に示すように、ＦＰＧＡ２５７はＳＴＡＴＵＳ信号をローレベルにしてコンフィギュレーション動作を中止し動作を停止する。このとき、ＤＯＮＥ信号もローレベルのまま維持される。
【００６６】
コンフィギュレーションが中止される場合として、同期のためのコンフィギュレーションワードが正常に読み出せない場合や、コンフィギュレーションデータのＣＲＣ（巡回冗長符号）が一致しない場合などがある。このような事象は、外来ノイズによるデータの読み出し誤りやＥＥＰＲＯＭへのデータ書き込み時の異常などにより発生する場合がある。
【００６７】
次に、プリンタコントローラＡＳＩＣ、ＦＰＧＡ、およびＲＯＭの接続態様について図面を参照して説明する。
【００６８】
図８は、プリンタコントローラＡＳＩＣ２１４とＦＰＧＡ２５７とＲＯＭ２５２の各回路ブロック間を接続する信号の詳細を示す図である。
【００６９】
プリンタコントローラＡＳＩＣ２１４が出力するＲＯＭバス２６２ａの信号のうち、チップセレクト０信号ＣＳ０＃およびチップセレクト１信号ＣＳ１＃はＦＰＧＡ２５７ａに入力される。その他のＲＯＭバス信号、即ち、データ出力イネーブル信号ＯＥ＃、データ書き込みイネーブル信号ＷＥ＃、アドレス信号、データ信号ＤＡＴＡ［７：０］はＲＯＭ２５２のフラッシュメモリ２５２ａおよびパラレルＥＥＰＲＯＭ２５２ｂに接続される。アドレス信号ＡＤＤＲ［２３：０］はフラッシュメモリ２５２ａのアドレス入力端子の下位２４本に接続され、また、アドレス信号ＡＤＤＲ［２３：０］の下位１３本（ＡＤＤＲ［１２：０］）がパラレルＥＥＰＲＯＭ２５２ｂのアドレス入力端子に接続される。
【００７０】
ＦＰＧＡ２５７は、プリンタコントローラ２００の機能を拡張する論理回路を実現するＦＰＧＡ２５７ａと論理和演算を行う論理ゲート回路２５７ｂとから構成される。ＦＰＧＡ２５７ａはプリンタコントローラＡＳＩＣ２１４から入力されるチップセレクト０信号ＣＳ０＃およびチップセレクト１信号ＣＳ１＃の状態の組み合わせに応じて、チップセレクト信号Ｆ＿ＣＳ＃およびアドレス信号ＡＤＤＲ［２４］を生成する。チップセレクト信号Ｆ＿ＣＳ＃はフラッシュメモリ２５２ａのチップセレクト入力端子ＣＳ＃に接続され、アドレス信号ＡＤＤＲ［２４］はフラッシュメモリ２５２ａのアドレス入力端子の最上位に接続される。論理和演算を行う論理ゲート回路２５７ｂには、ＦＰＧＡ２５７ａが出力するＳＴＡＴＵＳ信号とプリンタコントローラＡＳＩＣ２１４が出力するチップセレクト０信号ＣＳ０＃が入力される。両者の論理和を取った信号Ｅ＿ＣＳ＃はパラレルＥＥＰＲＯＭ２５２ｂを選択する信号として、パラレルＥＥＰＲＯＭ２５２ｂのチップセレクト入力端子ＣＳ＃に接続される。
【００７１】
このことから分かるように、ＦＰＧＡはＲＯＭコントローラ（即ち、プリンタコントローラＡＳＩＣ）とＲＯＭとの間でデータ読み出しの仲介をする機能を果たしている。
【００７２】
図９は図８に示したＦＰＧＡの入力信号と出力信号の関係を示す真理値表を示す図である。
【００７３】
ＦＰＧＡ２５７ａは、図９に示す論理値テーブルに従ってフラッシュメモリ２５２ａのチップセレクト信号Ｆ＿ＣＳ＃およびアドレス信号ＡＤＤＲ［２４］を出力する。
【００７４】
即ち、チップセレクト０信号ＣＳ０＃がローレベル（Ｌ）でチップセレクト１信号ＣＳ１＃がハイレベル（Ｈ）の場合は、フラッシュメモリ２５２ａのチップセレクト信号Ｆ＿ＣＳ＃はローレベル（Ｌ）になる。このとき、アドレス信号ＡＤＤＲ［２４］は“１”を表すハイレベルが出力される。チップセレクト０信号ＣＳ０＃がハイレベル（Ｈ）でチップセレクト１信号ＣＳ１＃がローレベル（Ｌ）の場合も、フラッシュメモリ２５２ａのチップセレクト信号Ｆ＿ＣＳ＃はローレベル（Ｌ）になる。この場合、アドレス信号ＡＤＤＲ［２４］は“０”を表すローレベル（Ｌ）が出力される。
【００７５】
チップセレクト０信号ＣＳ０＃とチップセレクト１信号ＣＳ１＃のいずれもがハイレベル（Ｈ）の場合は、フラッシュメモリ２５２ａのチップセレクト信号Ｆ＿ＣＳ＃はハイレベル（Ｈ）に維持される。また、チップセレクト０信号ＣＳ０＃とチップセレクト１信号ＣＳ１＃のいずれもがローレベル（Ｌ）の場合も、フラッシュメモリ２５２ａのチップセレクト信号Ｆ＿ＣＳ＃としてハイレベル（Ｈ）が出力される。これらの場合は、アドレス信号ＡＤＤＲ［２４］はハイレベル（Ｈ）に固定される。
【００７６】
なお、プリンタコントローラＡＳＩＣ２１４が正常動作している場合、チップセレクト０信号ＣＳ０＃とチップセレクト１信号ＣＳ１＃が双方ともローレベル（Ｌ）になることはないが、フェールセーフ機構として当該論理がＦＰＧＡ２５７ａに実装されている。なお、ＦＰＧＡ２５７ａがコンフィギュレーションを行っている間やコンフィギュレーションに失敗した場合は、ＦＰＧＡ２５７のユーザ入出力端子はハイインピーダンス状態になる。このとき、ＦＰＧＡ２５７ａに接続される各信号端子には、プリンタコントローラ上でプルアップ抵抗（不図示）が接続されており、適宜ハイレベルに維持されている。
【００７７】
ＣＰＵ２０１がリセットベクタから順次命令コードの実行を開始した際のプリンタコントローラの動作について図面を参照して説明する。
【００７８】
図１０は、図８に示したＦＰＧＡのコンフィギュレーションの成否に応じて選択されるメモリデバイスのチップセレクト信号の論理を説明する図である。
【００７９】
ＣＰＵ２０１がリセットベクタ“０ｘＦＦＦＦ００００”から命令コードの読み出しトランザクションを発行すると、システムバスブリッジ２１１はこのトランザクションをＲＯＭコントローラ２０４へ転送する。ＲＯＭコントローラ２０４はアクセスアドレスが“０ｘ００００００００”〜“０ｘＦＦＦＦＦＦＦＦ”のアドレス範囲に入っているのでチップセレクト０信号ＣＳ０＃をローレベル（Ｌ）にしてＲＯＭバス２６２ａに読み出しコマンドを出力する。このとき、アドレス信号ＡＤＤＲ［２３：０］には“０ｘＦＦＦＦ００００”の下位２４ビットである“０ｘＦＦ００００”が出力される。
【００８０】
電源投入時にＦＰＧＡ２５７ａのコンフィギュレーションが正常終了した場合は、図１０に示すようにフラッシュメモリ２５２ａのチップセレクト信号Ｆ＿ＣＳ＃はローレベル（Ｌ）になる（有効化）。従って、この場合、フラッシュメモリ２５２ａのアドレス“０ｘ１ＦＦ００００”番地から格納されている通常の起動用命令コード列が順次読みだされ通常の制御手順（第１の制御手順）が実行される。
【００８１】
一方、ＦＰＧＡ２５７ａのコンフィギュレーションが正常終了しなかった（異常終了）場合は、図１０に示すようにＳＴＡＴＵＳ信号がローレベル（Ｌ）になり、パラレルＥＥＰＲＯＭ２５２ｂのチップセレクト信号Ｅ＿ＣＳ＃がローレベルになる（有効化）。この場合、パラレルＥＥＰＲＯＭ２５２ｂのアドレス“０ｘ００００”番地から格納されている命令コード列が順次読みだされ、コンフィギュレーションが正常終了しなかった場合に対応する制御手順（第２の制御手順）が実行される。これにより、表示部２５４に表示するプログラムなどをパラレルＥＥＰＲＯＭ２５２ｂに格納しておくことで、ＦＰＧＡ２５７ａのコンフィギュレーションが失敗した旨をプリンタのユーザに通知することが可能になる。また、一定時間経過後や操作部２５３のボタン操作により電源回路部（不図示）をオフにする制御手順を格納しておくことで、所定の要因によりプリンタの電源をオフにすることが可能になる。
【００８２】
従って以上説明した実施例に従えば、図８に示した回路を構成することにより、プリンタコントローラのＦＰＧＡのコンフィギュレーションに失敗した場合でも、ＣＰＵはパラレルＥＥＰＲＯＭから命令コードを読み出し実行することが可能である。例えば、その命令コードに表示部からユーザ通知命令や電源オフ命令を格納しておくことで、コンフィギュレーション失敗に対応した適切な処置を行うことが可能になる。
【図１】
2013090067.tif 000003
【図２】
2013090067.tif 000004
【図３】
2013090067.tif 000005
【図４】
2013090067.tif 000006
【図５】
2013090067.tif 000007
【図６】
2013090067.tif 000008
【図７】
2013090067.tif 000009
【図８】
2013090067.tif 000010
【図９】
2013090067.tif 000011
【図１０】
2013090067.tif 000012