(57)【要約】      （修正有）【課題】ROMをRAMにロードしてからプログラムを実行する複合機において、機能が増えても、起動時にユーザに待たせる時間を増加させないようにする。【解決手段】起動時に初期画面起動に必要なプログラム部分のみDMA転送によりROMからRAMにロードする。DMA転送中にDMA転送完了サイズから転送済みデータのチェックサムを転送処理と平行して計算し、ROMに格納されているチェックサム値と比較する。チェックサムが等しいときのみプログラムを起動する。また、ロード処理を各処理ブロック単位にする事で、ロードに失敗した処理ブロックの機能を無効とし、ロードに失敗した機能以外の動作を可能とする。【選択図】図２
2006285738.tif 000002
【特許請求の範囲】
【請求項１】
プログラムをROMからRAMに展開して処理を実行する複合機（MFP）において、
ROMに格納されているプログラムデータをRAMにコピーするDMA（Direct Memory Access）転送手段と、
転送された転送サイズを取得する転送サイズ取得手段と、
前記転送サイズ取得手段により取得された転送サイズ分だけチェックサムを計算するチェックサム手段を有し、
起動時に初期画面起動に必要なプログラム部分（基本プログラム・DMA転送手段および転送サイズ取得手段およびチェックサム手段を有する）のみ上記DMA転送手段によりROMからRAMに展開して実行し、
装置のユーザインターフェース制御、読み取り制御、記録制御、外部I/F制御プログラムを上記DMA転送手段によりRAMに展開し、RAMへの展開中に転送サイズ取得手段により取得されたサイズ分のチェックサムをチェックサム手段により計算し、転送手段が終了した時点でチェックサム手段により計算されたチェックサムが正しいかをROMに格納されているチェックサムと比較し、
チェックサムが等しいときは、プログラムを起動し、
チェックサムが異なるときは、ROMが壊れている事をユーザに通知する事を特徴とする複合機。
【請求項２】
プログラムをROMからRAMに展開して処理を実行する複合機（MFP）において、
ROMに格納されているプログラムデータをRAMにコピーするDMA（Direct Memory Access）転送手段と、
転送された転送サイズを取得する転送サイズ取得手段と、
前記転送サイズ取得手段により取得された転送サイズ分だけチェックサムを計算するチェックサム手段を有し、
起動時に初期画面起動に必要なプログラム部分（基本プログラム・DMA転送手段および転送サイズ取得手段およびチェックサム手段を有する）のみ上記DMA転送手段によりROMからRAMに展開して実行し、
装置のユーザインターフェース制御、読み取り制御、記録制御、外部I/F制御プログラムを上記DMA転送手段により各処理プログラムをブロック単位に分割しながらRAMに展開し、
RAMへの展開中に転送サイズ取得手段により取得されたサイズ分チェックサムを分割された処理ブロック毎にチェックサム手段により計算し、
転送手段が終了した時点で各処理ブロックのチェックサムが正しいかをROMに格納されている各処理ブロックのチェックサムと比較し、
チェックサムが等しいときは、その処理ブロックを有効化してプログラムを起動し、
チェックサムが異なるときは、その処理ブロックを無効化してプログラムを起動し、
UI/記録のメイン処理となるプログラムのチェックサムが異なるときは、ROMが壊れている事をユーザに通知する事を特徴とする複合機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コピー・ファクシミリ・プリンタ・スキャナなどの複合機を起動する時、プログラムをROMからRAMに展開して実行するためのプログラムロード方法に関する発明である。
【背景技術】
【０００２】
従来、ROMからRAMに展開する際、プログラムをROMからRAMにコピーした後、コピー後のRAM上でチェックサム、CRCなどを計算し、正常にコピー出来たかを確認していた。
【０００３】
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開平９−１６７１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、複合機は、記録・読み取り・ユーザI/F・外部I/Fなど多くの処理を実行するため、プログラムサイズの増加が顕著になってきている。そのため、ROMからRAMへのロード時間が非常に長く、それに加えてチェックサムの計算も行っている為、数秒で済んでいた起動時間（待機状態になるまでユーザが待たされる時間）が、数十秒という長い時間がかかるようになっている。
【課題を解決するための手段】
【０００５】
DMA転送手段を用いてプログラムをロードし、DMAの転送サイズを取得する手段により転送サイズ分だけDMA転送処理と平行してチェックサム計算を行う。
【発明の効果】
【０００６】
ROMからRAMにプログラムをロードして実行する複合機において、ROMからRAMにプログラムをDMA転送しながらチェックサムの計算を同時に実行する事で、ROMからRAMへのロード時間を短縮し、起動時にユーザに待たせる時間を短縮出来る。
【０００７】
また、ROMからRAMにロードするプログラムを制御プログラム毎に分けてロードする事で、一部の制御プログラムロードが失敗した場合でも、プログラムの実行が可能となる。
【発明を実施するための最良の形態】
【０００８】
（実施例１）
図１は、本発明の実施形態にかかる画像処理装置２００の概略的な構成を示すブロック図である。スキャナインタフェース（以下、「スキャナＩ／Ｆ」という。）部１０には、アナログフロントエンド（ＡＦＥ）１５を介して、ＣＣＤ１７、ＣＩＳ１８が接続し、個別の専用回路を介在することなく、その読み取りデータを画像処理装置２００に取り込むことができる。スキャナI／Ｆ部１０のデータ処理については、後に詳細に説明する。
【０００９】
２０はスキャナ画像処理部であり、スキャナI／Ｆ部１０の処理によりメインメモリ１００に展開された画像データに対して、画像処理動作モード（カラーコピー、モノクロコピー、カラースキャン、モノクロスキャン等）に応じた画像処理を実行する処理部である。スキャナ画像処理部２０の詳細については、後に説明する。
【００１０】
バッファ調停部７７はスキャナI／Ｆ部１０とスキャナ画像処理部間のデータの受け渡しをメインメモリ１００上のリングバッファ領域を介して行う場合、データの書き込みと、読み出しを調停する。
【００１１】
プリンタ画像処理部３０は、入力する画像の領域編集や、解像度変換を行い、得られた画像データをプリンタ出力するための処理ユニットであり、４０は接続するレーザビームプリンタ（ＬＢＰ）４５に画像処理結果を出力するためのＬＢＰインタフェース（Ｉ／Ｆ）。
【００１２】
バッファ調停部７８はプリンタ画像処理部３０とＬＢＰインタフェース４０間のデータの受け渡しをメインメモリ１００上のリングバッファ領域を介して行う場合、データの書き込みと、読み出しを調停する。バッファ調停部７７，７８は基本構成は同一のブロックであるが、使用する用途により、制御方法が異なる。詳細については後述する。
【００１３】
５０、６０はＪＰＥＧ、ＪＢＩＧモジュールであり、所定の規格に準拠した画像データの圧縮、伸張処理を実行する処理部である。
【００１４】
７０はメモリ制御部であり、画像処理系の第１ＢＵＳ８３，第２ＢＵＳ８４及びコンピュータ系の第３ＢＵＳ８５とそれぞれ接続し、メインメモリ（ＳＤＲＡＭ）１００に対するデータの書き込み、読み出しのためのデータ転送制御を行なう。
【００１５】
９０はＤＭＡコントローラ（ＤＭＡＣ）であり、メモリ制御部７０と協働して、ＲＯＭＩＳＡ９７を介してＲＯＭ９５と接続し、外部デバイスや種々のインタフェース部（１７０）、とメインメモリ１００との間のデータ授受に関し、ＤＭＡ制御するための所定のアドレス情報を生成、設定する。
【００１６】
９１はＤＭＡコントローラ（ＤＭＡＣ）であり、メモリ制御部７０と協働して、各画像処理部（１０、２０、３０、４０）とメインメモリ１００との間のデータ授受に関し、ＤＭＡ制御するための所定のアドレス情報を生成、設定する。例えば、画像読み取りデバイスの種類、ＣＣＤ１７、ＣＩＳ１８の別に応じて、スキャナＩ／Ｆ部１０で読み取り処理された画像データをメインメモリ１００にＤＭＡ転送するためのアドレス情報をＤＭＡのチャンネルごとに生成し、または、メインメモリ１００上に展開された画像データを読み出すためのアドレス情報をＤＭＡのチャンネルに応じて生成し、スキャナ画像処理部２０にＤＭＡ転送する等、メインメモリ１００と、画像処理部（１０、２０、３０、４０）とメインメモリ１００間におけるＤＭＡ制御を、メモリ制御手段７０と共に司るユニットとして機能する。ＲＯＭ９５には画像読み取りデバイス（ＣＣＤ１７やＣＩＳ１８）に応じて、適した制御パラメータ、制御プログラムデータが格納されており、制御パラメータ等を画像読み取りデバイスに応じて種々設定することができるので、ＣＣＤ１７、ＣＩＳ１８の個別のデータ出力形式に応じた画像データの入力処理が可能となるため、専用のインタフェース回路を設ける必要がなくなる。
【００１７】
８３は、メインメモリー１００から読み出したデータを画像処理系の各処理部（１０〜６０）に送出することが可能な第１ＢＵＳであり、８４は、画像処理系の各処理部（１０〜６０）から読み出したデータをメインメモリー１００に送出することが可能な第２ＢＵＳであり、第１，２ＢＵＳは対になって画像処理ブロックとメインメモリー１００間の画像データの授受を行う。８５は、ＣＰＵ１８０、通信及びユーザインタフェース制御部１７０、メカトロ系制御部１２５、画像処理部内部の制御レジスタ、及びＤＭＡＣ９０が接続するコンピュータ系の第３ＢＵＳである。
【００１８】
メカトロ系制御部１２５にはモータ制御部１１０と、モータの駆動タイミングや、画像処理系の処理の同調を制御するためのタイミング制御を司る割り込みタイマー制御部１２０が含まれる。
【００１９】
ＬＣＤ制御部１３０は、画像処理装置の種々の設定、処理状況等をＬＣＤ１３５に表示するための表示制御を司るユニットである。
【００２０】
１４０、１５０は周辺機器との接続を可能にするＵＳＢインタフェース部である。
【００２１】
１６０はメディアアクセス制御（ＭＡＣ）部であり、接続する機器に対してデータをどのようなタイミングで送り出せばよいか（アクセス）等を制御するユニットである。
【００２２】
１８０はＣＰＵであり、画像処理装置２００の全体的な動作を制御する。
【００２３】
＜スキャナＩ/Ｆ部１０の構成＞
スキャナＩ/Ｆ部１０は、画像読み取りデバイスとして、ＣＣＤ１７及びＣＩＳ１８に対応可能であり、両画像読み取りデバイスの信号を入力処理する。ここで入力された画像データは、メモリ制御部７０によりＤＭＡ転送されてメインメモリ１００上に展開される。
【００２４】
図2は、本発明の請求項１に関わる実施形態によるプログラムのロードフローである。
【００２５】
電源ON時に基本プログラムがロードされた後、基本プログラムによる画像処理装置２００を動作する為のプログラムをロードする処理を図2に示す。
【００２６】
２−１にて、９１のDMACに対して、ROM（９５および９７のROM）からRAM(１００のSDRAM)への転送設定を行う。具体的には、ROMに格納されているMAINプログラムの先頭アドレスと転送サイズ、そしてRAM上に展開するための先頭アドレスを設定する。尚、本発明によるMAINプログラムは、JBIGやSLIMなどの圧縮手法を用い、データ圧縮された状態でROMに格納されている。
【００２７】
２−２にて、９１のDMACの転送開始を指定する為のトリガをONに設定する。
【００２８】
２−３にて、DMACのステータスレジスタから転送完了サイズを取得する。
【００２９】
２−４にて、転送完了サイズ分、RAMに転送されたデータとROMのデータを比較（コンペア）しながらチェックサムの計算も実行する。尚、ROMコンペアおよびチェックサムの計算は、前回実行したアドレス以降から実行する。
【００３０】
２−５にて、２−４で実行されたROMーRAMのコンペアで、同じなら、２−６に移行し、異なっていたら、ロードが正常に出来なかったとして２−９に移行する。
【００３１】
２−６にて、DMACのステータスレジスタから転送完了ステータスを取得し、２−１にて設定されたROM→RAMの転送が終了したかを確認し、転送終了したら２−７に移行し、転送中なら２−４に戻る。
【００３２】
２−７にて、DMACの転送完了サイズを取得し、残りのROMコンペアおよびチェックサム計算を実行する。
【００３３】
２−８にて、ROMコンペアおよびチェックサムの計算値がROMに格納しているチェックサム値との比較で、正しくROMがロードされているかを確認し、正しくROMがロードされた（ROMコンペアでROM/RAMのデータが等しく、チェックサムの値がROMの格納値と２−７にて求められたチェックサム値が等しい）場合、２−１０の解凍処理を実行し、正しくプログラムがロードされなかった場合、２−９に移行する。
【００３４】
２−９にて、正しくROMがロード出来なかったことをユーザに通知する為のエラー表示を実行し、ロード失敗とする。
【００３５】
２−１０にて、ロードされたROMデータ(圧縮データ)を解凍し、プログラムの実行開始領域にコピーする。
【００３６】
複合機は、２−１０のロード終了後、プログラムをロード領域の先頭アドレスから実行開始する。
【００３７】
（実施例２）
本発明における請求項２の実施例を図3,4,5により説明する。
【００３８】
図3は、ROMのプログラム配置を簡単に図示したものである。
【００３９】
3-1は、操作部の制御プログラムである。
【００４０】
3-2は、記録処理プログラムである。
【００４１】
3-3は、読み取り処理プログラムである。
【００４２】
3-4は、Fax通信プログラムである。
【００４３】
3-5は、ネットワーク通信プログラムである。
【００４４】
3-6は、印刷処理プログラムである。（PDL言語１のデータを解析して3-2で出力可能な画像データに変換する）
3-7も印刷処理プログラムである。（複数のPDL言語をサポートする場合）
3-8は、USBの制御プログラムである。
【００４５】
以上の各制御プログラムは、処理ブロック１から８とし、それぞれROMのセクターを分割して配置される。
【００４６】
図4は、各制御プログラムのロード方法である。
【００４７】
4-1にて、制御プログラムを示す変数ｘに１を代入する。
【００４８】
4-2にて、処理ブロックｘのロード処理を実行する。ロード処理に関しては、図5に説明する。
【００４９】
4-3にて、ｘを１つインクリメントする。
【００５０】
4-4にて、８つの処理ブロックのロードが終了したか(x>8)を判定し、ロードが終了していないYESの場合、4-2に戻り、ロードが終了しているNOの場合、4-5に移行する。
【００５１】
4-5にて、基本プログラムである、１，２が有効か無効か(4-2処理ブロックｘのロードにて設定される)を判定し、無効YESの場合、4-5にてROMエラー表示を行い、ロード失敗とする。
【００５２】
有効NOの場合、ロード完了とする。
【００５３】
図5は、処理ブロックxのロード処理について説明している。
【００５４】
基本的な流れは、図2と同様であるので、ここでは異なる部分のみ説明する。
【００５５】
5-1にて、DMAC91に対して、ROMからRAMへの転送設定を行う。具体的には、ROMに格納されている各処理ブロックｘの先頭アドレスと転送サイズ、そしてRAM上に展開するための先頭アドレスを設定する。尚、本発明による各処理ブロックｘのプログラムは、JBIGやSLIMなどの圧縮手法を用い、データ圧縮された状態でROMに格納されている。
【００５６】
5-2〜5-8、5-10は、2-2〜2-8、2-10と全く同じ処理を実行する。
【００５７】
5-9にて、現在ロード中の処理ブロックｘの機能を無効化する。
【００５８】
以上で、各処理ブロックｘのロードフローを終了する。
【図面の簡単な説明】
【００５９】
【図１】本発明における装置のブロック図
【図２】本発明における請求項１のROMからRAMへのロード処理に関するフローチャート
【図３】本発明における請求項2のROMの制御ブロックプログラムの配置図
【図４】本発明における請求項２のROMからRAMへのロード処理に関するフローチャート
【図５】本発明における請求項２の処理ブロック毎のROMからRAMへのロード処理に関するフローチャート
【図１】
2006285738.tif 000003
【図２】
2006285738.tif 000004
【図３】
2006285738.tif 000005
【図４】
2006285738.tif 000006
【図５】
2006285738.tif 000007