説明

記録装置及びその電源投入時の動作方法

【課題】命令コードを格納したフラッシュメモリ等の制御信号をFPGA等により生成する論理を実現する場合、FPGAのコンフィギュレーションに失敗すると情報処理装置が起動できないという課題があった。
【解決手段】FPGAがコンフィギュレーションに失敗した場合は、その成否を通知する信号を入力とする選択信号制御回路がパラレルEEPROMの選択信号を生成する。これに応じて、プロセッサは、例えば、パラレルEEPROMに格納されたコンフィギュレーションの失敗をユーザに通知するための命令コードを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は記録装置及びその電源投入時の動作方法に関し、特に、電源投入のつど内部の揮発性メモリに回路構成情報を設定するプログラマブル論理デバイスを有する記録装置、及びその電源投入時の動作方法に関する。
【背景技術】
【0002】
近年プリンタなどの電子機器を制御するコントローラは機能の高度化や複雑化が進み、プロセッサがメモリ上のプログラムを実行して電子機器を制御する情報処理装置として構成されることが多くなっている。こうしたコントローラのような装置を構成するためにプロセッサやRAMやROMにアクセスするためのメモリコントローラ、特定機能を実現するハードウエアを1つのパッケージに封止したASIC(アプリケーション専用集積回路)を使用することがある。また、情報処理装置に機能を追加する際には、ある機能をプリント回路基板に実装後でも任意に内部の論理を変更することのできるプログラマブル論理デバイスが従来から用いられている。
【0003】
プログラマブル論理デバイスは内部に揮発性または不揮発性のメモリを有しており、このメモリ上に書き込まれた回路構成情報に基づいて論理回路を実現する。回路構成情報を記憶するメモリとして不揮発性メモリを使用しているプログラマブル論理デバイスでは、一度回路構成を書き込むことで論理を保持することができる。一方、揮発性メモリを使用するプログラマブル論理デバイスでは電源投入のつど外部に接続された不揮発性のメモリ素子、例えば、EEPROMから回路構成情報を読み出して内部の揮発性メモリに書き込むコンフィギュレーションと呼ばれる処理を実行する。コンフィギュレーションはノイズ等の要因により失敗することがあるほか、EEPROMに適正な回路構成情報が格納されていないために正常に完了しない場合がある。
【0004】
特許文献1は、複数のプログラマブルデバイスを有する装置において、全てのデバイスのコンフィギュレーションが完了するまで制御信号やバス信号を開放して回路の動作を無効に制御するプログラマブルデバイスの設定状態検出制御装置を開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−319860号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら上記従来例のプログラマブルデバイスの設定状態検出制御装置では、コンフィギュレーションが失敗した場合に回路の動作が無効となるためプロセッサがメモリ上のプログラムを実行できないという課題があった。このため、使用者にコンフィギュレーションの失敗を通知するためのプログラムを実行することができなかった。
【0007】
本発明は上記従来例に鑑みてなされたもので、プログラマブル論理デバイスのコンフィギュレーション動作に失敗時にも適切な制御手順を読み出してCPUに実行させることが可能な記録装置及びその電源投入時の動作方法を提供することを目的としている。
【課題を解決するための手段】
【0008】
上記目的を達成するために本発明の記録装置は次のような構成からなる。
【0009】
即ち、ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置であって、CPUと、前記記録装置への電源投入時に前記CPUにより実行される第1の制御手順を格納した第1のメモリと前記記録装置への電源投入時に前記CPUにより実行される第2の制御手順を格納した第2のメモリとを含む第1の不揮発性記憶手段と、前記装置への電源投入時に回路構成情報に基づいてコンフィギュレーション動作を実行し、前記第1の不揮発性記憶手段に対する前記CPUからのアクセスを仲介するプログラマブル論理デバイスと、前記回路構成情報を格納する第2の不揮発性記憶手段とを有し、前記プログラマブル論理デバイスは、前記コンフィギュレーション動作が正常終了した場合には、前記第1のメモリをアドレスして前記第1の制御手順を読み出し、前記コンフィギュレーション動作が失敗した場合には、前記第2のメモリをアドレスして前記第2の制御手順を読み出するように構成されていることを特徴とする。
【0010】
また本発明を別の側面から見れば、ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置の電源投入時の動作方法であって、前記記録装置への電源投入時に前記記録装置のCPUにより実行される第1の制御手順を第1の不揮発性記憶手段の第1のメモリに格納し、前記記録装置への電源投入時に前記CPUにより実行される第2の制御手順を前記第1の不揮発性記憶手段の第2のメモリに格納し、前記第1の不揮発性記憶手段に対する前記CPUからのアクセスを仲介するプログラマブル論理デバイスが、前記装置への電源投入時に、第2の不揮発性記憶手段に格納された回路構成情報に基づいてコンフィギュレーション動作を実行し、前記コンフィギュレーション動作が正常終了した場合には、前記プログラマブル論理デバイスは、前記第1のメモリをアドレスして前記第1の制御手順を読み出し、前記コンフィギュレーション動作が失敗した場合には、前記プログラマブル論理デバイスは、前記第2のメモリをアドレスして前記第2の制御手順を読み出すことを特徴とする記録装置の電源投入時の動作方法を備える。
【発明の効果】
【0011】
従って本発明によれば、プログラマブル論理デバイスのコンフィギュレーションの成否に応じて、CPUが適切な制御手順を読み出す対象となるメモリを選択することができるという効果がある。従って、プログラマブル論理デバイスのコンフィギュレーションが失敗した場合でも、CPUが適切な動作を記録装置に実行させることが可能になる。
【図面の簡単な説明】
【0012】
【図1】本発明の代表的な実施例であるインクジェット記録装置の概略構成を示す外観斜視図である。
【図2】図1に示した記録装置の制御構成を示すブロック図である。
【図3】図2に示したシステムバスブリッジの動作を説明する図である。
【図4】図2に示したROMコントローラの信号を説明する図である。
【図5】図2に示したROMコントローラのレジスタを説明する図である。
【図6】図2に示したFPGAを構成するFPGAのコンフィギュレーションに関連する信号を示す図である。
【図7】FPGAのコンフィギュレーション動作と信号の変化を説明する図である。
【図8】プリンタコントローラASICとFPGAとROMの接続を示す図である。
【図9】図8に示したFPGAの入力信号と出力信号の関係を示す真理値表を示す図である。
【図10】図8に示したFPGAのコンフィギュレーションの成否に応じて選択されるメモリデバイスのチップセレクト信号の論理を説明する図である。
【発明を実施するための形態】
【0013】
以下に、図面を参照しながら本発明の実施例について詳細に説明する
なお、この明細書において、「記録」(以下、「プリント」とも称する)とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、広く記録媒体上に画像、模様、パターン等を形成する、又は媒体の加工を行う場合も表すものとする。また、人間が視覚で知覚し得るように顕在化したものであるか否かを問わない。
【0014】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【0015】
また、「インク」とは、上記「記録」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成又は記録媒体の加工、或いはインクの処理に供され得る液体を表すものとする。インクの処理としては、例えば記録媒体に付与されるインク中の色剤の凝固又は不溶化させることが挙げられる。
またさらに、「記録素子」(「ノズル」という場合もある)とは、特にことわらない限りインク吐出口乃至これに連通する液路及びインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【0016】
図1は本発明の代表的な実施例であるシリアルスキャン方式のインクジェット記録装置(以下、プリンタ)の概略構成を示す概観図である。
【0017】
プリンタ100は、図1に示すように架設されたガイドレール101および102に沿ってキャリッジ103が矢印“X”で示される方向(主走査方向)に移動自在にガイドされている。キャリッジ103はキャリッジモータ(不図示)とその駆動力を伝達する無端ベルト等の駆動力伝達機構により主走査方向に往復移動する。キャリッジ103には記録ヘッド104が搭載され、プリンタ100に装着された各色のインクタンク(不図示)からチューブを介してインクが供給される。
【0018】
記録ヘッド104はインクジェット方式の記録ヘッドであり、インク滴を吐出可能な吐出口が主走査方向と交差する方向に配列されてノズル列が形成されている。吐出口からインクを吐出させるための機構として、電気熱変換体(ヒータ)や圧電効果を利用したピエゾ素子などを用いることができる。電気熱変換体を用いた場合には、電気熱変換体の発熱によってインクを発泡させ、発泡の際に生じる発泡エネルギーを利用して吐出口からインクを吐出させる。
【0019】
記録用紙のような記録媒体は、ロール状に巻回されたロール紙105をプリンタ100に装着し、ロール紙105から引き出されたシート端がプリンタ100の挿入口から挿入される。そのシートは搬送ローラ106によって主走査方向と直交する矢印“Y”で示される方向(副走査方向)に搬送される。プリンタ100は、記録ヘッド104を主走査方向に往復移動させながらインク滴を記録媒体に吐出して記録を行う動作と、記録ヘッド104の記録幅に対応する距離だけ記録用紙を副走査方向に搬送する動作とを繰り返すことにより、順次画像を記録する。
【0020】
プリンタ100は、記録動作以外の動作モードとしてスタンバイモードとスリープモードの二つのモードを備えている。スタンバイモードでは記録動作を行っていない他はほぼ記録中と同じ状態であり、ホスト装置からプリント指示を受信するとただちに記録を開始することができる状態にある。スリープモードではスタンバイモードよりも消費電力の少ない省電力状態にあり、一部の回路へのクロック信号の停止や電力供給を停止している。スリープモード中にホスト装置からのプリント指示を受信すると、プリンタはクロック信号や電力供給を再開して記録可能な状態へ復帰する。
【0021】
プリンタ100は上述したような機構的な構成をプリンタエンジンということもある。そして、プリンタ100は、プリンタエンジンと、そのプリンタエンジンを制御するとともにホスト装置とのインタフェースとして役割を果たし、装置全体を制御するプリンタコントローラと、電源回路部等から概略構成される。従って、プリンタコントローラは記録データや制御データを処理するので、その意味からすれば、ある種の情報処理装置ということもできる。図1にはプリンタコントローラ200が点線で示されている。
【0022】
以下、情報処理装置としてプリンタコントローラについての実施例を説明する。
【0023】
図2はプリンタコントローラ200の構成を示すブロック図であるが、ホスト装置(以下、ホスト)280とプリンタエンジン290との接続関係も示されている。
【0024】
プリンタコントローラ200は、パーソナルコンピュータ等のホスト280から印刷指示および印刷用の画像データを受信し、受信した画像データをプリンタエンジン290で印刷可能な構成の二値画像データに変換して出力する機能を提供する。プリンタコントローラ200は、CPU201、RAMコントローラ203、ROMコントローラ204、通信インタフェース205、操作部制御回路部206、表示部制御回路部207、及び拡張バス回路部208を備えている。プリンタコントローラ200はさらに、画像処理部209とプリンタエンジンインタフェース210とを備える。これら各ブロックは互いそにバスライン212a〜212jを介してシステムバスブリッジ211に接続されている。
【0025】
これらのブロックはシステムLSIとして一つのパッケージに封止されたプリンタコントローラASIC(アプリケーション専用集積回路)214として実現されている。
【0026】
また、プリンタコントローラ200は、RAM251、ROM252、操作部253、表示部254、機能拡張ユニットを装着する拡張スロット255、EEPROM256、FPGA257を備える。この他、プリンタコントローラ200は、図示しない電源回路部、クロック信号生成回路部、及びリセット信号生成回路部を有している。
【0027】
CPU201は、プリンタコントローラ200全体の制御を司る。CPU201は、ROM252またはRAM251に格納された制御プログラムを順次読み出し実行することによって、通信インタフェース205の制御、操作部253、及び表示部254の制御を行う。また、CPU201は、受信した画像データを画像形成データに変換するための画像処理部209の制御や、生成された画像形成データをプリンタエンジン290へ転送するためのプリンタエンジンインタフェース210の制御等を行う。
【0028】
プリンタコントローラ200への電源の供給が開始され、リセット信号生成回路部(不図示)からプリンタコントローラASIC214に入力されたリセット信号が非リセット状態に遷移するとCPU201が動作を開始する。リセットが解除されるとCPU201はリセットベクタと呼ばれる所定のアドレスから順次命令コードを読み出して実行する。
【0029】
なお、CPU201がアクセスするアドレスバスは32ビット構成であり、リセットベクタのアドレスは“0xFFFF0000”である。なお、後述するシステムバスブリッジ、ROMコントローラ、およびFPGAの機能により、リセットベクタのアドレス“0xFFFF0000”からの命令コードの読み出しはROMへの読み出しコマンドに変換される。
【0030】
RAMコントローラ203は、RAMバス261を介してプリンタコントローラASIC214に接続されたRAM251の制御を行う。RAMコントローラ203はCPU201およびDMACを有する各ブロックとRAM251との間で、書き込みまたは読み出しされるデータの中継を行う。RAMコントローラ203は、CPU201および各ブロックからの読み出し要求や書き込み要求に応じて必要な制御信号を生成してRAM251への書き込みやRAM251からの読み出しを実現する。
【0031】
ROMコントローラ204は、ROMバス262a〜262b及びFPGA257を介してプリンタコントローラASIC214に接続されたROM252の制御を行う。ROMコントローラ204は、CPU201からの読み出し要求に応じて必要な制御信号を生成して、予めROM252に格納された制御手順(プログラム)やデータを読み出し、システムバスブリッジ211を介してCPU201に読み出した内容を送り返す。また、ROM252がフラッシュメモリ等の電気的書換可能なデバイスで構成される場合、ROMコントローラ204は必要な制御信号を発生してROM252の内容を書き換える。
【0032】
通信インタフェース205は、パーソナルコンピュータやワークステーション等のホスト280との間でデータの送受信を行う機能を備え、ホスト280から受信した画像データを、RAMコントローラ203を介してRAM251に格納する機能を備えている。通信インタフェース205の通信方式としては、USBやIEEE1394などの高速シリアル通信、IEEE1284などのパラレル通信、あるいは100BASE−TXや1000BASE−T等のネットワーク通信などいずれの方式であってもよい。またこれらの複数の通信方式に対応していてもよい。さらには、有線通信方式に限らず、無線通信方式であっても良い。
【0033】
操作部制御回路部206は、操作部253を構成するスイッチから出力される電気信号の状態をCPU201からのリード命令に対してレジスタ情報として通知する機能を備えている。また、操作部制御回路部206は、スイッチから出力される電気信号の状態に変化が生じると、CPU201に対して割り込み信号を生成する機能を備えている。表示部制御回路部207は、表示部254を構成するLCDおよびLEDランプに電気信号を出力する機能を備える。拡張バス回路部208は、拡張スロット255に装着した機能拡張ユニットを制御する機能を備え、拡張バス265を介して機能拡張ユニットにデータを送信する制御および機能拡張ユニットが出力するデータを受信する制御を行う。拡張スロット255には、大容量記憶機能を提供するハードディスクドライブユニット、あるいはUSBやIEEE1394のほか、IEEE1284などに準拠した通信機能によりホスト装置と通信を行う通信ユニットなどが装着可能である。
【0034】
画像処理部209は、ホスト280から受信した画像データをプリンタエンジン290で印刷可能な二値画像データに変換する機能を備えている。プリンタエンジンインタフェース210は、プリンタコントローラ200とプリンタエンジン290との間でデータの送受信を行うブロックである。画像処理部209やプリンタエンジンインタフェース210は印刷処理中に動作するブロックであり、プリンタ100がスリープモードの間はクロック信号を停止して電力消費を抑制するクロックゲーティング処理を行う。プリンタエンジンインタフェース210は、DMAC(ダイレクトメモリアクセスコントローラ)を有している。これにより、プリンタエンジンインタフェース210は、画像処理部209で生成されRAM251に格納されている二値画像データを、RAMコントローラ203を介して順次読み出してプリンタエンジン290に転送する。なお、通信インタフェース205、拡張バス回路部208、および画像処理部209は、プリンタエンジンインタフェース210と同様にDMAC機能を有し、メモリアクセス要求を発行する機能を備えている。
【0035】
システムバスブリッジ211は、プリンタコントローラASIC214を構成する各ブロック間を接続する機能を備えるほか、複数のブロックから同時にアクセス要求が発行された場合に、バス権を調停する機能を備えている。CPU201およびDMACを有する各ブロックがRAMコントローラ203を介してRAM251へのアクセス要求をほぼ同時に発行する場合には、システムバスブリッジ211は予め指定されたプライオリティー(優先順位)に従って適切に調停を行う。
【0036】
RAM251は同期DRAM(SDRAM)で構成され、CPU201が実行する制御手順の格納、画像処理部209において生成された画像形成データの一時的な記憶、およびCPU201のワークメモリとしての機能などを提供する。また、RAM251は、通信インタフェース205がホスト280から受信した画像データの一時的なバッファリングや拡張バス265を介して接続された機能拡張ユニットとの間で受け渡しされるデータを一時的に保存する。
【0037】
ROM(第1の不揮発性記憶手段)252はフラッシュメモリ(第1のメモリ)やパラレルEEPROM(第2のメモリ)等で構成され、CPU201が実行する制御手順および記録制御に必要なパラメータを格納する。フラッシュメモリおよびパラレルEEPROMは、決められたシーケンスに従って制御手順やパラメータの書き換えが可能である。この実施例では、25本のアドレス線を備えた32メガバイトのフラッシュメモリおよび13本のアドレス線を備えた8キロバイトのパラレルEEPROMでROM252が構成される。
【0038】
FPGA257は、FPGAおよび付加論理回路で構成される。FPGAはプリンタコントローラ200に機能追加するプログラマブル論理デバイスである。FPGAは内部にSRAMタイプの記憶領域を備え、コンフィギュレーションと呼ばれる動作により論理回路を形成する。FPGAに電力が供給されたのち、コンフィギュレーション動作によりEEPROM(第2の不揮発性記憶手段)256から読み出した回路構成情報を内部の記憶領域に格納して論理回路を構成する。この実施例では、FPGA257はプリンタコントローラASIC214が出力するROMバス262aの信号の一部の信号を入力とし、ROMへ供給するROMバス262aの信号の一部の制御信号を生成する論理を機能の一部として実現する。なお、FPGA257の詳細な構成および動作については図面を参照して後述する。
【0039】
操作部253は、プリンタ100の動作を設定するボタンに連動するスイッチで構成され、これらスイッチの状態を電気信号として出力する機能を備える。また、操作部253は、操作ボタンの操作によるスイッチの状態の変化を電気信号の変化として出力する機能を備えている。操作部253は、プリンタ100の電源のオンおよびオフを指示する電源ボタンを備えている。また、操作部253には、動作モードを切り替えるオンラインボタンやメニュー画面の表示を指示するメニューボタン、メニュー画面から項目を選択するための上下左右方向の十字ボタン、および選択項目を確定するOKボタンを備えている。この他、操作部253は、印刷の停止を指示するストップボタンおよび印刷用紙の給紙方法を選択する給紙選択ボタンを備えている。表示部254は、LEDランプおよびLCD等から構成される。LEDランプはプリンタ100の動作状態や警告を表示し、LCDはプリンタ100の動作状態を表示する他、操作部253のメニューボタンなどの操作によりメニュー画面を表示する。
【0040】
次に、システムバスブリッジ211の動作について説明する。
【0041】
図3は、システムバスブリッジ211が受信したトランザクションをスレーブデバイスに転送する際、トランザクションのアドレス情報と転送先として選択するスレーブデバイスとの関係を示す図である。
【0042】
システムバスブリッジ211はCPU201などのマスターデバイスが発行するトランザクションを各スレーブデバイスに転送する機能を備えており、アクセスするアドレス情報によって転送先となるスレーブデバイスを決定する。システムバスブリッジ211は、図3(a)に示すようにアクセスするアドレスが“0x00000000”〜“0x7FFFFFFF”の範囲の場合は、受信トランザクションをRAMコントローラ203へ転送する。また、アクセスするアドレスが“0x80000000”〜“0x9FFFFFFF”の範囲の場合はプリンタエンジンインタフェース210へ受信トランザクションを転送する。アクセスするアドレスが“0xA0000000”〜“0xBFFFFFFF”の範囲の場合は画像処理部209へトランザクションを転送する。
【0043】
以下同様に、“0xC0000000”〜“0xC7FFFFFF”の範囲へのアクセスは通信インタフェース205へ、“0xC8000000”〜“0xCFFFFFFF”の範囲へのアクセスは拡張バス回路部208へ転送される。
【0044】
“0xE0000000”〜“0xE0FFFFFF”の範囲へのアクセスは各回路ブロックに内蔵されるレジスタへアクセスするアドレス領域となっている。図3(b)に示すように、例えば、“0xE0000000”〜“0xE00FFFFF”のアドレス範囲はROMコントローラのレジスタへのアクセスになる。同様に、“0xE0100000”〜“0xE0FFFFFF”のアドレス範囲はその他の回路ブロック各々のレジスタへのアクセスになる。
【0045】
さらに、図3(a)の最下段に示すように、“0xF0000000”〜“0xFFFFFFFF”のアドレス範囲へのアクセスはROMコントローラ204へ転送される。システムバスブリッジ211の機能により、CPU201がリセットベクタ“0xFFFF0000”からの命令コードの読み出しの際に発行されるトランザクションはROMコントローラ204へ転送される。
【0046】
次に、ROMコントローラについて説明する。
【0047】
図4はROMコントローラ204の入出力信号のうちROMバスを構成する信号を説明する図である。
【0048】
これらの信号はプリンタコントローラASIC214に設けられた出力端子および入出力端子を介して外部デバイスと接続される。ROMコントローラ204は、アクセスするデバイスを選択するためのチップセレクト信号として、チップセレクト0信号CS0#およびチップセレクト1信号CS1#の2本の信号を備えている。また、ROMコントローラ204は、選択したデバイスにデータの出力を指示するデータ出力イネーブル信号OE#、および選択したデバイスにデータを書き込むための書き込みイネーブル信号WE#を備えている。これらのチップセレクト信号CS0#およびCS1#、出力イネーブル信号OE#、ならびに書き込みイネーブル信号WE#は、出力電圧がローレベルのときに有効を意味するアクティブ・ロー信号である。
【0049】
また、ROMコントローラ204はアドレス情報を出力する24本のアドレス信号ADDR[23:0]、およびデータを入出力する8本のデータ信号DATA[7:0]を備えている。
【0050】
ROMコントローラ204がシステムバスブリッジ211から受信するトランザクションには32ビットのアドレス情報が含まれており、このうち下位24ビットのアドレス情報をアドレス信号ADDR[23:0]として出力する。また、ROMコントローラ204とROM252は8ビットのデータ信号DATA[7:0]で接続されているので、バイトアクセス以外のトランザクションは複数回のデータ転送を繰り返すことで必要なデータサイズの転送を実現する。例えば、32ビットのデータを読み出す場合は、ROMバス262a上のチップセレクト信号CS0#またはCS1#および出力イネーブル信号OE#を有効化するリードコマンドを、アドレス値を1ずつ増やしながら4回発行する。
【0051】
プリンタコントローラASIC214の回路ブロック各々はCPU201からアクセス可能なレジスタを備える。CPU201は、これらのレジスタに所定の値をライトして回路ブロックの動作を制御することや、レジスタをリードして各回路ブロックの状態を取得することができる。
【0052】
図5は図2に示すROMコントローラのレジスタを説明する図である。
【0053】
ROMコントローラ204は、図5(a)に示すように、チップセレクト0アドレス設定レジスタ401およびチップセレクト1アドレス設定レジスタ402を備えている。ROMコントローラ204はこの他、ROM252へのアクセスタイミングを設定するレジスタ(不図示)などのレジスタ群を有する。
【0054】
チップセレクト0アドレス設定レジスタ401は、チップセレクト0信号CS0#に対応するアドレス領域を設定するレジスタである。チップセレクト0アドレス設定レジスタ401は、図5(b)に示すようにアドレス領域の先頭アドレスの上位16ビットSA0を設定する16ビットのフィールドを備えている。
【0055】
設定された16ビットの値(SA0)と16ビットの値“0x0000”を連接した32ビットの値がアドレス領域の先頭アドレスとして参照される。また、チップセレクト0アドレス設定レジスタ401は、アドレス領域の最終アドレスの上位16ビットEA0を設定する16ビットのフィールドを備えている。設定された16ビットの値(EA0)と16ビットの値“0xFFFF”を連接した32ビットの値がアドレス領域の最終アドレスとして参照される。例えば、先頭アドレス設定フィールドSA0に“0xFA40”を、最終アドレス設定フィールドEA0に“0xFA7F”を設定した場合は、先頭アドレスが“0xFA400000”、最終アドレスが“0xFA7FFFFF”となる。この時“0xFA400000”〜“0xFA7FFFFF”のアドレス範囲へのトランザクションをシステムバスブリッジ211から受信するとROMコントローラ204はチップセレクト0信号CS0#を有効化してROMバス262aにコマンドを発行する。このとき、アクセスアドレスの下位24ビットがROMバス262aのアドレス信号ADDR[23:0]に出力される。
【0056】
チップセレクト1アドレス設定レジスタ402は、チップセレクト1信号CS1#に対応するアドレス領域を設定するレジスタである。チップセレクト0アドレス設定レジスタ401と同様に、チップセレクト1アドレス設定レジスタ402もアドレス領域の先頭アドレスの上位16ビットSA1を設定するフィールドおよび最終アドレスの上位16ビットEA1を設定するフィールドを備えている。
【0057】
チップセレクト0アドレス設定レジスタ401およびチップセレクト1アドレス設定レジスタ402で設定された二つのアドレス範囲に重複する領域が存在する場合は、チップセレクト0アドレス設定レジスタ401の設定が優先される。即ち、この場合はチップセレクト0信号CS0#がローレベルに有効化され、チップセレクト1信号CS1#はハイレベルで無効化されたままとなる。例えば、チップセレクト0アドレス設定レジスタ401に“0xF000F07F”、チップセレクト1アドレス設定レジスタ402に“0xF040F0BF”を設定した場合を考える。この場合、アドレス領域“0xF000000”〜“0xF07FFFFF”がチップセレクト0信号CS0#に対応し、アドレス領域“0xF0400000”〜“0xF0BFFFFF”がチップセレクト1信号CS1#に対応する。従って、“0xF0400000”〜“0xF07FFFFF”のアドレス範囲は双方に含まれることになるが、チップセレクト0信号CS0#のみが有効になる。
【0058】
なお、チップセレクト0アドレス設定レジスタ401の初期値は“0x0000FFFF”であり、“0x00000000”〜“0xFFFFFFFF”の全アドレス領域がチップセレクト0信号CS0#に対応している。また、チップセレクト1アドレス設定レジスタ402の初期値は“0x00000000”である。この実施例ではリセット解除後にCPU201が最初に発行するリセットベクタのアドレス“0xFFFF0000”への命令読み込みはチップセレクト0信号CS0#に対応する初期値のアドレス領域に含まれる。即ち、ROMコントローラ204はチップセレクト0信号CS0#をローレベルに有効化して命令コードの読み出しを開始する。
【0059】
次に、FPGAとその内部回路情報を保持するEEPROMの接続構成について図面を参照して説明する。
【0060】
図6は、FPGAが内部回路を構成する際に使用する信号を説明する図である。この実施例では、FPGA257はEEPROM256に格納された回路構成情報を読み出して回路を構成する。
【0061】
図6に示す3つの信号(CCLK、SELECT、DATA)は、FPGA257とEEPROM256との間で接続される。CCLKは、FPGA257からEEPROM256に供給するクロック信号で、EEPROM256はクロック信号CCLKに同期してFPGA257の回路構成情報を出力する。SELECTはFPGA257からEEPROM256に供給するデバイス選択信号で、回路構成情報を読み出す際に有効化される。DATAは、EEPROM256が出力するデータ出力端子に接続される信号である。FPGA257はクロック信号CCLKに同期して信号DATA上の回路構成情報信号を内部に取り込む。
【0062】
さらに、FPGA257は2つの信号(STATUS、DONE)信号を出力する。STATUS信号とDONE信号はFPGA257のコンフィギュレーション動作に関する状態を示す信号で、STATUSはコンフィギュレーション動作の進行状況を示し、DONEはコンフィギュレーション動作の終了を通知する。FPGA257は、プリンタコントローラ200に電力供給が開始されるとEEPROM256から回路構成情報を読み出してコンフィギュレーション動作を開始する。
【0063】
図7はFPGAのコンフィギュレーション動作と信号の変化を説明する図である。
【0064】
図7(a)に示すように、電源の立ち上がりのデバイス・パワーアップ後、コンフィギュレーションメモリのクリアなどを行うセットアップ動作が実行される。続いて、CCLKおよびSELECTを出力しEEPROM256から出力される回路構成情報をDATAとして読み込んで内部回路構成を設定するコンフィギュレーション動作を実行する。この結果、コンフィギュレーション動作が正常に終了すると、設定された回路構成によって動作するユーザロジック動作が開始される。セットアップ動作が終了するとSTATUS信号にハイレベルが出力される。また、コンフィギュレーション動作が正常に終了するとDONE信号がハイレベルにアサートされる。
【0065】
一方、コンフィギュレーション動作の途中でコンフィギュレーションに失敗すると、図7(b)に示すように、FPGA257はSTATUS信号をローレベルにしてコンフィギュレーション動作を中止し動作を停止する。このとき、DONE信号もローレベルのまま維持される。
【0066】
コンフィギュレーションが中止される場合として、同期のためのコンフィギュレーションワードが正常に読み出せない場合や、コンフィギュレーションデータのCRC(巡回冗長符号)が一致しない場合などがある。このような事象は、外来ノイズによるデータの読み出し誤りやEEPROMへのデータ書き込み時の異常などにより発生する場合がある。
【0067】
次に、プリンタコントローラASIC、FPGA、およびROMの接続態様について図面を参照して説明する。
【0068】
図8は、プリンタコントローラASIC214とFPGA257とROM252の各回路ブロック間を接続する信号の詳細を示す図である。
【0069】
プリンタコントローラASIC214が出力するROMバス262aの信号のうち、チップセレクト0信号CS0#およびチップセレクト1信号CS1#はFPGA257aに入力される。その他のROMバス信号、即ち、データ出力イネーブル信号OE#、データ書き込みイネーブル信号WE#、アドレス信号、データ信号DATA[7:0]はROM252のフラッシュメモリ252aおよびパラレルEEPROM252bに接続される。アドレス信号ADDR[23:0]はフラッシュメモリ252aのアドレス入力端子の下位24本に接続され、また、アドレス信号ADDR[23:0]の下位13本(ADDR[12:0])がパラレルEEPROM252bのアドレス入力端子に接続される。
【0070】
FPGA257は、プリンタコントローラ200の機能を拡張する論理回路を実現するFPGA257aと論理和演算を行う論理ゲート回路257bとから構成される。FPGA257aはプリンタコントローラASIC214から入力されるチップセレクト0信号CS0#およびチップセレクト1信号CS1#の状態の組み合わせに応じて、チップセレクト信号F_CS#およびアドレス信号ADDR[24]を生成する。チップセレクト信号F_CS#はフラッシュメモリ252aのチップセレクト入力端子CS#に接続され、アドレス信号ADDR[24]はフラッシュメモリ252aのアドレス入力端子の最上位に接続される。論理和演算を行う論理ゲート回路257bには、FPGA257aが出力するSTATUS信号とプリンタコントローラASIC214が出力するチップセレクト0信号CS0#が入力される。両者の論理和を取った信号E_CS#はパラレルEEPROM252bを選択する信号として、パラレルEEPROM252bのチップセレクト入力端子CS#に接続される。
【0071】
このことから分かるように、FPGAはROMコントローラ(即ち、プリンタコントローラASIC)とROMとの間でデータ読み出しの仲介をする機能を果たしている。
【0072】
図9は図8に示したFPGAの入力信号と出力信号の関係を示す真理値表を示す図である。
【0073】
FPGA257aは、図9に示す論理値テーブルに従ってフラッシュメモリ252aのチップセレクト信号F_CS#およびアドレス信号ADDR[24]を出力する。
【0074】
即ち、チップセレクト0信号CS0#がローレベル(L)でチップセレクト1信号CS1#がハイレベル(H)の場合は、フラッシュメモリ252aのチップセレクト信号F_CS#はローレベル(L)になる。このとき、アドレス信号ADDR[24]は“1”を表すハイレベルが出力される。チップセレクト0信号CS0#がハイレベル(H)でチップセレクト1信号CS1#がローレベル(L)の場合も、フラッシュメモリ252aのチップセレクト信号F_CS#はローレベル(L)になる。この場合、アドレス信号ADDR[24]は“0”を表すローレベル(L)が出力される。
【0075】
チップセレクト0信号CS0#とチップセレクト1信号CS1#のいずれもがハイレベル(H)の場合は、フラッシュメモリ252aのチップセレクト信号F_CS#はハイレベル(H)に維持される。また、チップセレクト0信号CS0#とチップセレクト1信号CS1#のいずれもがローレベル(L)の場合も、フラッシュメモリ252aのチップセレクト信号F_CS#としてハイレベル(H)が出力される。これらの場合は、アドレス信号ADDR[24]はハイレベル(H)に固定される。
【0076】
なお、プリンタコントローラASIC214が正常動作している場合、チップセレクト0信号CS0#とチップセレクト1信号CS1#が双方ともローレベル(L)になることはないが、フェールセーフ機構として当該論理がFPGA257aに実装されている。なお、FPGA257aがコンフィギュレーションを行っている間やコンフィギュレーションに失敗した場合は、FPGA257のユーザ入出力端子はハイインピーダンス状態になる。このとき、FPGA257aに接続される各信号端子には、プリンタコントローラ上でプルアップ抵抗(不図示)が接続されており、適宜ハイレベルに維持されている。
【0077】
CPU201がリセットベクタから順次命令コードの実行を開始した際のプリンタコントローラの動作について図面を参照して説明する。
【0078】
図10は、図8に示したFPGAのコンフィギュレーションの成否に応じて選択されるメモリデバイスのチップセレクト信号の論理を説明する図である。
【0079】
CPU201がリセットベクタ“0xFFFF0000”から命令コードの読み出しトランザクションを発行すると、システムバスブリッジ211はこのトランザクションをROMコントローラ204へ転送する。ROMコントローラ204はアクセスアドレスが“0x00000000”〜“0xFFFFFFFF”のアドレス範囲に入っているのでチップセレクト0信号CS0#をローレベル(L)にしてROMバス262aに読み出しコマンドを出力する。このとき、アドレス信号ADDR[23:0]には“0xFFFF0000”の下位24ビットである“0xFF0000”が出力される。
【0080】
電源投入時にFPGA257aのコンフィギュレーションが正常終了した場合は、図10に示すようにフラッシュメモリ252aのチップセレクト信号F_CS#はローレベル(L)になる(有効化)。従って、この場合、フラッシュメモリ252aのアドレス“0x1FF0000”番地から格納されている通常の起動用命令コード列が順次読みだされ通常の制御手順(第1の制御手順)が実行される。
【0081】
一方、FPGA257aのコンフィギュレーションが正常終了しなかった(異常終了)場合は、図10に示すようにSTATUS信号がローレベル(L)になり、パラレルEEPROM252bのチップセレクト信号E_CS#がローレベルになる(有効化)。この場合、パラレルEEPROM252bのアドレス“0x0000”番地から格納されている命令コード列が順次読みだされ、コンフィギュレーションが正常終了しなかった場合に対応する制御手順(第2の制御手順)が実行される。これにより、表示部254に表示するプログラムなどをパラレルEEPROM252bに格納しておくことで、FPGA257aのコンフィギュレーションが失敗した旨をプリンタのユーザに通知することが可能になる。また、一定時間経過後や操作部253のボタン操作により電源回路部(不図示)をオフにする制御手順を格納しておくことで、所定の要因によりプリンタの電源をオフにすることが可能になる。
【0082】
従って以上説明した実施例に従えば、図8に示した回路を構成することにより、プリンタコントローラのFPGAのコンフィギュレーションに失敗した場合でも、CPUはパラレルEEPROMから命令コードを読み出し実行することが可能である。例えば、その命令コードに表示部からユーザ通知命令や電源オフ命令を格納しておくことで、コンフィギュレーション失敗に対応した適切な処置を行うことが可能になる。

【特許請求の範囲】
【請求項1】
ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置であって、
CPUと、
前記記録装置への電源投入時に前記CPUにより実行される第1の制御手順を格納した第1のメモリと前記記録装置への電源投入時に前記CPUにより実行される第2の制御手順を格納した第2のメモリとを含む第1の不揮発性記憶手段と、
前記装置への電源投入時に回路構成情報に基づいてコンフィギュレーション動作を実行し、前記第1の不揮発性記憶手段に対する前記CPUからのアクセスを仲介するプログラマブル論理デバイスと、
前記回路構成情報を格納する第2の不揮発性記憶手段とを有し、
前記プログラマブル論理デバイスは、前記コンフィギュレーション動作が正常終了した場合には、前記第1のメモリをアドレスして前記第1の制御手順を読み出し、前記コンフィギュレーション動作が失敗した場合には、前記第2のメモリをアドレスして前記第2の制御手順を読み出するように構成されていることを特徴とする記録装置。
【請求項2】
前記記録装置は、前記ホストからの記録データを受信して画像処理を行うとともに、前記記録装置の全体を制御するプリンタコントローラと、前記プリンタコントローラにより処理された記録データに基づいて前記記録媒体に記録を行うプリンタエンジンと前記プリンタコントローラと前記プリンタエンジンとに電力を供給する電源回路部とを含み、
前記プリンタコントローラは、前記CPUと、前記第1の不揮発性記憶手段と、前記プログラマブル論理デバイスと、第2の不揮発性記憶手段とを含むことを特徴とする請求項1に記載の記録装置。
【請求項3】
前記第1の制御手順とは、前記コンフィギュレーション動作が正常終了した場合に、前記記録装置に記録動作を実行させるための制御手順であり、
前記第2の制御手順とは、前記コンフィギュレーション動作が失敗した場合に、前記記録装置にユーザへの通知、或いは、前記電源回路部を制御して装置の電源オフを実行させるための制御手順であることを特徴とする請求項2に記載の記録装置。
【請求項4】
前記第1のメモリはフラッシュメモリであり、
前記第2のメモリは前記フラッシュメモリより容量の小さいEEPROMであり、
前記第2の不揮発性記憶手段はEEPROMであることを特徴とする請求項1乃至3のいずれか1項に記載の記録装置。
【請求項5】
前記プログラマブル論理デバイスはFPGAであり、
前記FPGAは、前記コンフィギュレーション動作の結果として、内部回路構成の設定の成否を示す信号を出力することを特徴とする請求項1乃至4のいずれか1項に記載の記録装置。
【請求項6】
ホストから受信した記録データに基いて、キャリッジに搭載された記録ヘッドを往復移動させながら記録媒体に記録を行う記録装置の電源投入時の動作方法であって、
前記記録装置への電源投入時に前記記録装置のCPUにより実行される第1の制御手順を第1の不揮発性記憶手段の第1のメモリに格納し、
前記記録装置への電源投入時に前記CPUにより実行される第2の制御手順を前記第1の不揮発性記憶手段の第2のメモリに格納し、
前記第1の不揮発性記憶手段に対する前記CPUからのアクセスを仲介するプログラマブル論理デバイスが、前記装置への電源投入時に、第2の不揮発性記憶手段に格納された回路構成情報に基づいてコンフィギュレーション動作を実行し、
前記コンフィギュレーション動作が正常終了した場合には、前記プログラマブル論理デバイスは、前記第1のメモリをアドレスして前記第1の制御手順を読み出し、
前記コンフィギュレーション動作が失敗した場合には、前記プログラマブル論理デバイスは、前記第2のメモリをアドレスして前記第2の制御手順を読み出すことを特徴とする記録装置の電源投入時の動作方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−90067(P2013−90067A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−227431(P2011−227431)
【出願日】平成23年10月14日(2011.10.14)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】