JP6482519B2 - 情報処理装置、情報処理装置の制御方法及びプログラム - Google Patents

情報処理装置、情報処理装置の制御方法及びプログラム Download PDF

Info

Publication number
JP6482519B2
JP6482519B2 JP2016241828A JP2016241828A JP6482519B2 JP 6482519 B2 JP6482519 B2 JP 6482519B2 JP 2016241828 A JP2016241828 A JP 2016241828A JP 2016241828 A JP2016241828 A JP 2016241828A JP 6482519 B2 JP6482519 B2 JP 6482519B2
Authority
JP
Japan
Prior art keywords
program
reader
cpu
transfer
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016241828A
Other languages
English (en)
Other versions
JP2018097629A (ja
Inventor
郁加 山川
郁加 山川
岡 雄志
雄志 岡
朝弘 仲吉
朝弘 仲吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016241828A priority Critical patent/JP6482519B2/ja
Priority to US15/822,750 priority patent/US10341500B2/en
Publication of JP2018097629A publication Critical patent/JP2018097629A/ja
Application granted granted Critical
Publication of JP6482519B2 publication Critical patent/JP6482519B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00007Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for relating to particular apparatus or devices
    • H04N1/00013Reading apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00567Handling of original or reproduction media, e.g. cutting, separating, stacking
    • H04N1/0057Conveying sheets before or after scanning
    • H04N1/00599Using specific components
    • H04N1/00602Feed rollers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00681Detecting the presence, position or size of a sheet or correcting its position before scanning
    • H04N1/00684Object of the detection
    • H04N1/00687Presence or absence
    • H04N1/00697Presence or absence in an output tray
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00885Power supply means, e.g. arrangements for the control of power supply to the apparatus or components thereof
    • H04N1/00888Control thereof
    • H04N1/00896Control thereof using a low-power mode, e.g. standby

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Facsimiles In General (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置の起動制御に関するものである。
複写機、ファクシミリ装置等の画像処理装置には、原稿の画像を光学的に読み取って画像データを得るスキャナ等の画像読取装置が備えられている。近年では、FCOT(First Copy Output Time)、すなわち、コピー開始を指示してから1枚目が出力されるまでの時間、の短縮が望まれていると共に、装置の動作における処理速度の高速化が望まれている。また、画像読取装置に電源が投入されてから、画像読取装置が使用可能になるまでの時間、すなわち、電源投入後画像読取装置の起動処理が終了するまでの時間(以下「起動時間」)の短縮も望まれている。
処理速度の高速化のための手段として、制御プログラムの読み出し速度の高速化が挙げられる。画像読取装置はリードオンリーメモリ(以下「ROM」)及びランダムアクセスメモリ(以下「RAM」)を備えている。制御プログラムはROMに格納されているが、それぞれのメモリに格納されているデータを読み出す速度は、RAMの方が速い。そこで、画像読取装置の起動時に、ROMに格納されている制御プログラムをRAMへ転送し、転送が完了した後、RAMから制御プログラムを読み出して実行する。これにより、ROMから直接制御プログラムを読み出し実行する場合に比べ、制御プログラムの読み出しと実行に要する時間の短縮、すなわち処理速度の高速化が可能となる。
しかし、RAMは揮発性メモリであるので、RAMへの電源供給が停止されると、RAMに格納された内容は失われてしまう。そのため、起動時には毎回、制御プログラムをROMからRAMに転送する必要がある。しかし、まず制御プログラム全量の転送を行ってから、その後にRAMから制御プログラムを読み出して実行すると、制御プログラムの転送を行わずにROMから制御プログラムを読み出し実行する場合に比べ、制御プログラムの転送を行う分だけ起動時間が長くなってしまう。
特許文献1では、ROMから制御プログラムを読み出して実行することと、制御プログラムをROMからRAMに転送することを並行して行うことで、起動時間を短縮する技術が提案されている。制御プログラムの転送が完了した後は、制御プログラムの読み出し先をROMからRAMに切り替えることで、処理速度を高速化できる。
また、特許文献2では、起動時にモードが指定されるデジタルカメラにおいて、制御プログラムのうち各モードに共通する部分を読み込んで実行した後、指定されているモードを判定し、モードに応じ必要な制御プログラムの部分を読み込んで実行する技術が提案されている。すなわち、特許文献2では、起動時に撮影モードが指定されれば、撮影モードに必要な制御プログラムの部分を読み込んで実行し、起動時に再生モードが指定されれば、再生モードに必要な制御プログラムの部分を読み込んで実行する。この技術に依れば、制御プログラムの全量を読み込む場合に比べ、指定されたモードに不要な制御プログラムの部分を読み込まない分だけ起動時間が短縮できる。
特開2013−97715号公報 特許4111649号公報
画像読取装置を起動する際には、装置全体の電源を投入する「電源ON」の場合と、「スリープ(一時的に装置を使用しない間、装置の一部への電力供給を停止することで節電する非動作状態;省電力状態)からの復帰」の場合とがある。ユーザにとって装置の使い勝手をよくするためには、いずれの場合においても、処理の高速化と起動時間の短縮を両立させる必要がある。以下、処理の高速化と起動時間の短縮を両立させる際の課題について説明する。
特許文献1に記載の技術では、先述の通り、制御プログラムの転送が完了し、制御プログラムの読み出し先をROMからRAMに切り替えた後については、ROMから直接制御プログラムを読み出し実行する場合に比べ、処理速度を高速化できる。しかし、制御プログラムの転送中、すなわち制御プログラムの読み出し先をROMからRAMに切り替える前については、むしろ処理速度が低速化する可能性がある。特許文献1の技術では、制御プログラムの転送中は、制御プログラムをROMからRAMに転送することと、ROMから直接制御プログラムを読み出して実行することを並行して行う。そのため、制御プログラムを転送するためのROMへのアクセスと、制御プログラムを読み出して実行するためのROMへのアクセスが競合した場合、どちらか一方が待ち状態となってしまうためである。
また、特許文献2に記載の技術では、電源投入後にまず制御プログラムのうち各モードに共通する部分を読み込むが、共通する部分が大きい場合は、読み込みに時間がかかり、起動時間の短縮量は少なくなってしまう。なお、画像読取装置における起動時のモードには「電源ON」と「スリープ復帰」がある。画像読取装置の「電源ON」と「スリープ復帰」とでは、起動時に行う必要のある処理は同一であるため、必要となる制御プログラムも同一であり、特許文献2に記載の技術を画像読取装置に適用することはできない。
本発明は、起動時間を短縮することができる仕組みを提供することを目的とする。
本発明は、コントローラと通信可能に接続されたプロセッサーと、制御プログラムを格納する不揮発性メモリと、前記不揮発性メモリより読み出し速度が速い揮発性メモリとを、有し、前記不揮発性メモリには、第1プログラム、第2プログラム及び第3プログラムが格納されており、前記プロセッサーは、前記コントローラに電力が供給されている状態から前記情報処理装置が起ち上げられる第1起動処理モードにおいて、前記不揮発性メモリから前記第1プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第1プログラムに基づき、前記不揮発性メモリから前記第2プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第2プログラムに基づく第1処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第3プログラムの転送とを並行して実行し、前記コントローラに電力が供給されていない状態から前記情報処理装置が起ち上げられる第2起動処理モードにおいて、前記不揮発性メモリから前記第1プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第1プログラムに基づき、前記不揮発性メモリから前記第3プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第3プログラムに基づく第2処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第2プログラムの転送とを並行して実行する、ことを特徴とする。
本発明によれば、起動時間を短縮することができる。
本実施例の画像読取装置の断面図 画像読取装置の制御部のブロック図 リーダ用CPUの仮想アドレス空間へのメモリの割り当てを説明する図 光学スキャナユニットのHP出しにおける動作を説明する図 光学スキャナユニットのHP出しにおける制御処理のフローチャート 実施例1の通信初期化処理の流れを示す図 実施例1の通信初期化処理の流れを示す図 リーダ制御部における通信初期化処理のフローチャート コントローラ部における通信初期化処理のフローチャート 実施例1のリーダ制御部の起動処理の実行及び転送の流れを示した図 実施例1のリーダ制御部の起動処理のフローチャート 実施例2の通信初期化処理の流れを示す図 実施例2の通信初期化処理の流れを示す図 実施例2のリーダ制御部の起動処理の実行及び転送の流れを示した図 実施例2のリーダ制御部の起動処理のフローチャート
以下、本発明の実施例における画像読取装置の構成例を、図面を参照して説明する。
<画像読取装置の構成>
図1は、本発明の一実施例を示す画像読取装置の構成を例示する断面図である。
図1に示すように、画像読取装置1000は、原稿の画像を読み取る画像読取部(以下「リーダ」)200と、自動原稿給紙部(以下「ADF」)100を備えており、さらにコントローラ部300(図2)が接続されている。なお、ADFは、Automatic Document Feederの略である。
(リーダ200の構成)
リーダ200の動作について、図1を参照しながら説明する。
リーダ200は、原稿台ガラス209上に載置された原稿について、走査部としての光学スキャナユニット202を図1の矢印に示す副走査方向に一定速度で走査することで、原稿に記録されている画像情報を後述の方法で読み取る。この読取方法を、以下「固定読み」という。
また、リーダ200は、ADF100上の原稿については、光学スキャナユニット202をADF100のリードローラ6の中心位置に来るように移動し、後述の方法で給紙搬送される原稿に記録されている画像情報を、後述の方法で読み取る。この読取方法を、以下「流し読み」という。
また、シェーディング白板210は、シェーディングによる白レベルの基準データを作成するための白板であり、原稿の読み取り直前にシェーディング白板210を後述の方法で読み取り、画像処理することで基準データを作成する。シェーディング白板210の読み取りおよび基準データの作成は、ユーザにより原稿の読み取り指示が入力されてから、原稿の読み取り前に行う。
例外として、予めシェーディング白板210の読み取りおよび基準データの作成を行い、光学スキャナユニット202を原稿の読み取り開始位置に移動させておき、所定時間内(例えば15秒内)にユーザにより原稿の読み取り指示が入力されれば、すぐに原稿の読み取りを開始する。これにより、FCOTを短縮することができる。ただし、所定時間内に原稿の読み取り指示が入力されなかった場合は、予め作成した基準データを用いることなく、原則通りユーザにより原稿の読み取り指示が入力された後、原稿の読み取り前に改めてシェーディング白板210の読み取りおよび基準データの作成を行う。これは、時間の経過により、基準データの信頼性が失われるためである。
画像情報の読み取りは、次の方法で行われる。この方法は、固定読みと流し読み、またシェーディング白板210の読み取りにおいて共通である。
リーダ200の制御を司るリーダ用CPU801(図2)は、光学スキャナユニット202が原稿またはシェーディング白板210の下に位置した状態で、LED203a、203bを点灯し、原稿またはシェーディング白板210の表面を照射させる。その反射光は、ミラー204a、204b、204cで折り返し反射されながら、画像読取センサ208へ達する。画像読取センサ208は、この反射光を入力として、画像情報を1ラインずつ読み取っていく。
(ADF100の構成)
ADF100の動作について、図1を参照しながら説明する。
ADF100は、1枚以上の原稿シートで構成される原稿束Sを積載する原稿トレイ30と、原稿の搬送開始前に、原稿束Sが原稿トレイ30より突出して下流への進出を規制する分離パッド21及び分離ローラ2と、給紙ローラ1とを有する。給紙ローラ1は、原稿トレイ30に積載された原稿束Sの原稿面に落下して回転する。これにより、原稿束の最上面の原稿が給紙される。給紙ローラ1によって給紙された原稿は、分離ローラ2と分離パッド21の作用によって1枚に分離される。この分離は公知の分離技術によって実現されている。
分離ローラ2と分離パッド21によって分離された原稿は、引抜ローラ3により、レジストローラ4へ搬送され、まだ駆動していないレジストローラ4に突き当てられる。これにより原稿はループ状のたわみが形成され、原稿の搬送における斜行が解消される。レジストローラ4の下流側には、レジストローラ4を通過した原稿を流し読みガラス201方向へ搬送する給紙路が配置されている。
給紙路に送られた原稿は、読み取り上流ローラ5によって画像読取位置に搬送される。原稿が流し読みガラス201とリードローラ6の間を通過する際、画像読取センサ208によって、リードローラ6直下の原稿読取位置において、原稿に記録された画像情報が1ラインずつ光学的に読み取られる(流し読み)。読み取り下流ローラ7により搬送された原稿は、排紙ローラ12によって排紙トレイ13まで搬送される。原稿が原稿トレイ30上に複数枚有る場合には、最終原稿の読取及び排紙トレイ13への排紙が終了するまで、前述の原稿束Sからの給紙、分離、搬送処理、原稿読取位置での読み取り処理、及び排紙処理、を繰り返す。なお、原稿トレイ30には原稿検知センサ14があり、原稿トレイ30上の原稿の有無が判断できるようになっている。
<画像読取装置1000の制御部の構成>
図2は、画像読取装置1000の制御部の構成を例示するブロック図である。
まず、画像読取制御部(以下「リーダ制御部」)310について説明する。
リーダ制御部310は、リーダ200及びADF100の動作を制御する。リーダ制御部310は、中央演算処理装置である画像読取用CPU801(以下「リーダ用CPU」)、ROM802、RAM803を備えている。ROM802には、リーダ制御部310の制御プログラムが格納されている。RAM803には、入力データや作業用データが格納されるほか、ROM802から転送されたリーダ制御部310の制御プログラムが格納される。
リーダ用CPU801には、原稿搬送機能を実現するために、各種搬送用のローラを駆動する搬送モータ810、ソレノイド811、クラッチ812、原稿搬送の制御に用いる各種センサである搬送パスセンサ813、原稿検知センサ14等がそれぞれ接続されている。
また、リーダ用CPU801には、画像読取機能を実現するために、LED203、画像読取センサ208、光学スキャナユニット202を副走査方向に移動させるための光学モータ822、ホームポジションセンサ(以下「HPセンサ」)211等がそれぞれ接続されている。
リーダ用CPU801は、光学モータ822の回転の駆動パルス数を管理しながら制御することで、光学スキャナユニット202の位置を情報として管理可能である。画像読取センサ208によって読み取られた画像データは、画像処理部833を介して、一度、画像メモリ832に格納される。画像処理部833は、画像読取センサ208によって読み取られた画像データに対して画像処理を施す。
さらに、リーダ用CPU801には、データの転送を制御する転送制御部840が接続されている。転送制御部840は、例えば、DMA(Direct Memory Access)転送を制御するDMAコントローラである。リーダ用CPU801から転送制御部840に転送に関する情報を指定して転送制御部840に対して転送開始を指示することで、転送制御部840は、ROM802からRAM803への制御プログラムの転送を行うことができる。転送制御部840による転送は、リーダ用CPU801のアクセスバスとは異なる、転送制御部840専用のアクセスバスを用いて行われる。そのため、転送処理そのものについては、リーダ用CPU801が関与することはない。すなわち、転送制御部840がデータの転送を制御している間、リーダ用CPU801は他の処理を行うことができる。例えば、転送制御部840によるデータ転送中においても、リーダ用CPU801はRAM803から制御プログラムを読み出して実行できる。
なお、本実施例においては、転送制御部840は、DMAコントローラであり、ROM802からRAM803への制御プログラムの転送にDMA転送を用いるが、本発明はこれに限定されるものではない。転送制御部840の制御によりリーダ用CPU801とは独立してデータの転送を行うことができ、転送制御部840がデータの転送を制御している間、リーダ用CPU801が、転送処理と競合することなく他の処理を行うことができる構成であれば、どのような構成であってもよい。
次に、コントローラ部300について説明する。
コントローラ部300は、画像読取装置1000の装置全体を制御する。コントローラ部300は、CPU901、ROM902、RAM903を備えている。ROM902には、コントローラ部300の制御プログラムが格納されており、RAM903には、入力データや作業用データが格納されるほか、ROM902から転送されたコントローラ部300の制御プログラムが格納される。
コントローラ部300は、画像処理部833と画像処理部905の間の画像ライン353を通じて、リーダ制御部310から画像メモリ832に格納されている画像データを受信する。受信した画像データは、画像処理部905において各種のフィルタ処理を施され、画像メモリ906に格納される。
コントローラ部300は、CPU901とリーダ用CPU801の間に設けられた通信ライン354を介して、リーダ制御部310と画像読取制御に関する制御コマンド及び制御用データの授受を行う。例えば、CPU901は、リーダ用CPU801から原稿検知センサ14の出力を受信する。CPU901は、受信した原稿検知センサ14の出力に基づき、原稿トレイ30上に原稿束Sが積載されているか否かを判断する。
コントローラ部300には、電源340が接続されている。コントローラ部300は、電力供給ライン350を通じ、電源340から電力の供給を受け動作する。CPU901は、コントローラ部300内の電力の供給を制御している。例えば、CPU901は、スリープ(省電力モード)への切り替え時、すなわちCPU901等の一部の箇所にのみ電力を供給し、他の箇所については電力を供給しない状態(省電力状態)への切り替え時に、CPU901は、ROM902、画像処理部905、画像メモリ906への電力の供給を停止する。
さらに、電力供給ライン350を通じ供給された電力は、CPU901と、リーダ制御部310に接続されたリーダ用電力供給ライン355を介し、リーダ制御部310へ供給される。CPU901は、リーダ用電力供給ライン355を通じ、リーダ制御部310への電力の供給を制御している。
例えば、装置への電源投入時はCPU901が最初に起動し、CPU901によりリーダ制御部310への給電制御が行われる。また、スリープへの切り替え時、CPU901はリーダ制御部310への電力の供給を停止する。スリープからの復帰、すなわち、電力の供給を停止していたリーダ制御部310を含む装置の一部への電力供給の再開も、CPU901による給電制御によって行われる。
コントローラ部300は、CPU901とリーダ用CPU801の間に設けられたスリープ復帰通知ライン356を通じて、スリープ復帰時にリーダ制御部310へスリープ復帰であることを通知する。これにより、リーダ制御部310は、動作開始が電源ONによるものなのか、スリープ復帰によるものなのかを判定できる。
コントローラ部300は、CPU901とリーダ用CPU801の間に設けられた通信準備完了通知ライン357を通じて、起動時にリーダ制御部310へ通信準備完了を通知する。また、リーダ制御部310も、通信準備完了通知ライン357を通じて、コントローラ部300へ通信準備完了を通知する。
また、コントローラ部300は、操作表示部としての操作部904を備えており、ユーザとのインターフェース制御は操作部904を介してCPU901によって行われる。
<画像読取装置1000の動作停止時、動作開始時に行う処理の説明>
本実施例において、画像読取装置1000は「電源OFF」と「スリープ」の2つの非動作状態をもつ。「電源OFF」は、画像読取装置1000全体の電源が停止している状態である。「スリープ」は、制御回路、例えばCPU901等の一部の箇所にのみ電力を供給し、他の箇所については電力を供給しない状態(省電力状態)である。「電源OFF」状態から動作を開始することを「電源ON」と呼ぶ。また、「スリープ」状態から動作を開始することを「スリープ復帰」と呼ぶ。さらに、「電源ON」と「スリープ復帰」を合わせて「動作開始」という。また、動作状態から非動作状態(「電源OFF」又は「スリープ」)へ移行することを「動作停止」と呼ぶ。
以下、画像読取装置1000が動作停止時及び動作開始時に行う処理について、コントローラ部300、リーダ制御部310のそれぞれについて、図2を用いて説明する。
(コントローラ部300 動作停止時:電源OFF)
「電源OFF」時は、動作停止処理の後、画像読取装置1000全体への電力の供給が停止される。操作部904を介し、ユーザから「電源OFF」の指示が入力された時、CPU901は、通信ライン354を介しリーダ用CPU801へ「電源OFF」コマンドを送信し、リーダ制御部310の動作停止を指示する。続いて、CPU901は、コントローラ部300の電源OFF処理を行う。CPU901は、リーダ用CPU801から、通信ライン354を通じてリーダ制御部310の「動作停止準備完了」コマンドを受信し、電力供給ライン355を通じたリーダ制御部310への電力供給を停止する。また、CPU901は、リーダ制御部310への電力供給の停止と、コントローラ部300の電源OFF処理の両方が完了した後、電力供給ライン350を通じたコントローラ部300への電力供給を停止する。
(コントローラ部300 動作停止時:スリープ)
「スリープ」時は、CPU901及びRAM903を含む画像読取装置1000の一部の箇所は電力が供給され、それ以外の部分については電力の供給が停止される。操作部904を介し、ユーザから「スリープ」の指示が入力された時、又は、装置内のタイマーにより自動的に「スリープ」に移行するよう設定されていて、それが実行された時、画像読取装置1000は「スリープ」へ移行する。「スリープ」への移行時、CPU901は、通信ライン354を介しリーダ用CPU801へ「スリープ」コマンドを送信し、リーダ制御部310の動作停止を指示する。続いて、CPU901は、コントローラ部300のスリープ処理を行う。CPU901は、リーダ用CPU801から、通信ライン354を通じてリーダ制御部310の「動作停止準備完了」コマンドを受信し、電力供給ライン355を通じたリーダ制御部310への電力供給を停止する。また、CPU901は、リーダ制御部310への電力供給の停止と、コントローラ部300のスリープ処理の両方が完了した後、コントローラ部300の一部への電力の供給を停止する。具体的には、CPU901は、ROM902、画像処理部905、画像メモリ906への電力の供給を停止する。
(リーダ制御部310 動作停止時:電源OFF,スリープ)
操作部904を介し、ユーザから「電源OFF」又は「スリープ」の指示が入力された時、先述の通り、CPU901は、通信ライン354を介しリーダ用CPU801へ「電源OFF」又は「スリープ」コマンドを送信し、リーダ制御部310の「動作停止」を指示する。リーダ用CPU801は動作停止指示を受け、リーダ制御部310の動作停止処理を行う。リーダ制御部310の動作停止処理としては、例えば、光学スキャナユニット202の移動が挙げられる。具体的には、動作停止指示を受けた時、光学スキャナユニット202がFCOT短縮のために原稿の読み取り開始位置に位置していた場合には、リーダ制御部310は、光学スキャナユニット202をホームポジションH(所定位置)へ移動させる。リーダ制御部310の動作停止処理完了後、リーダ用CPU801は、通信ライン354を介し、CPU901へ「動作停止準備完了」コマンドを送信する。その後、先述の通り、CPU901はリーダ用CPU801の「動作停止準備完了」コマンドを受け、電力供給ライン355を通じたリーダ制御部310への電力供給を停止する。
(コントローラ部300 動作開始時:電源ON)
電源ON、すなわち画像読取装置1000へ電源が投入されると、まずCPU901へ電源が供給される。CPU901へ電力が供給されると、CPU901はハードウェアリセットされる。リセットが解除された後、CPU901は、ROM902に格納されているコントローラ部300の制御プログラムを読み出し、読み出したプログラムに従い、コントローラ部300の起動処理を実行する。コントローラ部300の起動処理とは、例えば以下の処理を含む。CPU901は、コントローラ部300全体への電力の供給を開始する。CPU901は、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。CPU901は、ROM902に格納されているコントローラ部300の制御プログラムをRAM903へ転送する。CPU901は、その他、画像読取システムとして必要な初期動作を行う。これらの処理を行った後に、CPU901は、後述する方法で、リーダ制御部310との通信初期化(通信設定)を行う。CPU901は、リーダ制御部310との通信初期化を終えると、コントローラ部300の起動処理を終了する。コントローラ部300は、起動処理を終えると、操作部904を通じたユーザ操作を受け付け可能な状態となる。
(コントローラ部300 動作開始時:スリープ復帰)
スリープの間は、電源OFFの場合と異なり、CPU901及びRAM903へ電源が供給された状態が保たれている。特に、RAM903については、スリープ以前に格納されたデータが保持されている。したがって、CPU901のハードウェアリセットや、ROM902に格納されているコントローラ部300の制御プログラムをRAM903へ転送する処理など、画像読取システムとして必要な初期動作のうちのいくつかは不要となる。スリープ時にCPU901が何らかのスリープ復帰要求を受けると、CPU901は、コントローラ部300のスリープ復帰処理を実行する。スリープ復帰要求としては、例えば、操作部904へのユーザの入力がある。コントローラ部300のスリープ復帰処理とは、例えば以下の処理を含む。CPU901は、スリープの間電力の供給を停止していたROM902、画像処理部905、画像メモリ906へ電力の供給を開始する。CPU901は、スリープ復帰通知ライン356を通じ、リーダ制御部310へスリープ復帰であることを通知した状態で、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。スリープ復帰通知ライン356は、例えば、電気的な信号線で構成され、信号線の電圧がしきい値より高ければ、スリープ復帰であることを表し、信号線の電圧がしきい値より低ければ、電源ONであることを表すものである。CPU901は、リーダ制御部310へ電力の供給を開始する前に、スリープ復帰通知ライン356の電圧を上げてしきい値より高い状態にし、その状態を保ったまま、リーダ制御部310へ電力の供給を開始する。
CPU901は、その他画像読取システムとして必要な初期動作のうち、スリープ復帰の場合も必要になるものを行う。これらの処理を行った後に、CPU901は、後述する方法で、リーダ制御部310との通信初期化を行う。CPU901は、リーダ制御部310との通信初期化を終えると、コントローラ部300のスリープ復帰処理を終了する。コントローラ部300は、スリープ復帰処理を終えると、操作部904を通じたユーザ操作を受け付け可能な状態となる。なお、スリープ復帰の場合、ROM902に格納されているコントローラ部300の制御プログラムをRAM903へ転送する処理などの、画像読取システムとして必要な初期動作のうちのいくつかが不要なことから、電源ON時のコントローラ部300の起動処理に比較して、コントローラ部300のスリープ復帰処理は実行時間が短縮される。
(リーダ制御部310 動作開始時:電源ON、スリープ復帰)
電源ON時、先述の通り、CPU901は、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。リーダ制御部310への電力の供給が開始されると、リーダ用CPU801は、ハードウェアリセットされる。リセットが解除された後、リーダ用CPU801は、ROM802に格納されているリーダ制御部310の制御プログラムを読み出し、リーダ制御部310の起動処理を開始する。リーダ制御部310の起動処理については後述する。リーダ制御部310は、起動処理を終えると、原稿読み取り可能な状態になる。コントローラ部300とは異なり、リーダ制御部310が動作開始時に行う処理は、「電源ON」と「スリープ復帰」で共通している。しかし、後述するように、「電源ON」の場合と「スリープ復帰」の場合で、処理の実行順序を変えることで、起動時間を短縮することが可能になる。
<リーダ制御部310の制御プログラムについて>
リーダ制御部310は、リーダ制御部310の制御プログラムに基づき各処理を実行する。リーダ用制御プログラムは、初期プログラム、リアルタイムオペレーティングシステム(以下「OS」)、光学モータ制御処理プログラム、通信処理プログラム、その他制御プログラムから成る。初期プログラムには、例えば、リーダ制御部310の制御プログラムの転送処理や、制御プログラムの読み出し先をROM802からRAM803へ切り替える処理、転送制御部840の初期設定や転送指示を行う処理、動作開始要因の判定処理などを行うためのプログラムが含まれる。光学モータ制御処理プログラムは、光学モータ822の駆動を制御するための処理プログラムである。通信処理プログラムは、コントローラ部300との通信ライン354を介した通信を制御するための処理プログラムである。その他制御プログラムには、搬送モータ810の制御処理や、原稿読み取り処理を行うためのプログラム等が含まれる。
(プログラムの読み出しと実行)
リーダ制御部310の制御プログラムは、ROM802に格納されている。リーダ用CPU801は、リーダ制御部310の起動処理、原稿読み取り処理等の動作を行う上で、制御プログラムのうち、その処理に該当する部分を読み出し、実行することでリーダ200及びADF100の動作を制御する。特に、画像読取装置1000の動作開始時、リーダ用CPU801は、ROM802に格納されている制御プログラムのうち、初期プログラムを読み出して実行する。
ROM802は、例えばフラッシュメモリで構成される不揮発性メモリであるため、電源が供給されない状態であっても記録された内容を保持する。一方、RAM803は、揮発性メモリであり、記録されたデータの保持には電力を要する。RAM803では、一度、記録したデータであっても、電源が供給されない状態になると、データは失われてしまう。
リーダ用CPU801は、ROM802及びRAM803に記録されたデータにアクセスし、データを利用する。RAM803は、ROM802と比較して、読み出し速度が速く、記録されたデータへのアクセスをROM802より短時間で行える。したがって、制御プログラムをROM802からRAM803へ転送し、処理の実行時にはRAM803から読み出すことで、処理速度の高速化が可能となる。ただし、先述の通り、RAM803は揮発性メモリであるため、画像読取装置の起動時、すなわち電源ON時やスリープ復帰時には、毎回制御プログラムをROM802からRAM803へ転送する必要がある。
(制御プログラム読み出し先の切り替え)
リーダ用CPU801は、リーダ制御部310の制御プログラムの読み出し先として、ROM802とRAM803が選択可能である。例えば、リーダ用CPU801は、図3に示すように、仮想アドレス空間400に物理アドレス空間をマッピングすることでメモリ管理を行っている。仮想アドレス空間410は仮想アドレス空間400の部分であり、リーダ用CPU801は、制御プログラムの読み出し先として仮想アドレス空間410を用いる。仮想アドレス空間410へのメモリの割り当てを変更することで、制御プログラムの読み出し先が変更できる。以下、図3を用いて詳細に説明する。
図3は、リーダ用CPU801の仮想アドレス空間410へのメモリの割り当てを例示する図である。
図3(a)は、制御プログラムの読み出し先としてROM802が選択されている場合に対応する。画像読取装置1000の動作開始時、仮想アドレス空間410aにはROM802の物理アドレス空間420aが割り当てられ、図3(a)の状態になっている。この状態で、リーダ用CPU801が仮想アドレス空間410aにアクセスすると、仮想アドレス空間410aに割り当てられたROM802の物理アドレス空間420aがアクセスされることになる。すなわち、リーダ用CPU801は、仮想アドレス空間410aにアクセスすることにより、初期プログラムを読み出し、初期プログラムを実行することができる。
図3(b)は、制御プログラムの読み出し先としてRAM803が選択されており、RAM803へ制御プログラムが転送済みである場合に対応する。
RAM803は、ROM802から転送したリーダ制御部310の制御プログラムを格納する制御プログラム用領域と、入力データや作業データを格納する作業用領域からなり、それぞれ物理アドレス空間431及び432が対応する。
リーダ用CPU801が仮想アドレス空間410へのメモリの割り当てをRAM803の制御プログラム用領域の物理アドレス空間431へ変更することを、以下「リマップする」という。
ROM802からRAM803の制御プログラム用領域へ制御プログラムを転送した後に、リーダ用CPU801がリマップすることで、リーダ用CPU801は転送済みの制御プログラムをRAM803から読み出して実行できるようになる。例えば、図3(b)の状態で、リーダ用CPU801が仮想アドレス空間410bにアクセスすると、仮想アドレス空間410bに割り当てられたRAM803の物理アドレス空間431bがアクセスされることになる。すなわち、リーダ用CPU801は、仮想アドレス空間410bにアクセスすることにより、OSを読み出すことができる。
<リーダ制御部310の制御プログラムの転送方法>
リーダ制御部310の制御プログラムの転送には、リーダ用CPU801による転送と、転送制御部840による転送を用いる。以下、リーダ用CPU801により制御プログラムを転送することを、「PIO転送」という。なお、PIOは、Program Input / Outputの略である。また、本実施例においては、転送制御部840はDMAコントローラであるため、以下、転送制御部840により制御プログラムを転送することを「DMA転送」という。以下、PIO転送及びDMA転送について、図2を用いて説明する。
(PIO転送についての説明)
PIO転送では、リーダ用CPU801が転送の制御を行う。例えば、ROM802からRAM803へPIO転送により制御プログラムを転送するとき、リーダ用CPU801は、まず転送元アドレスからROM802にアクセスして格納されているデータを読み出す。そして、リーダ用CPU801は、転送先アドレスからRAM803にアクセスし、上記ROM802から読み出したデータをRAM803に書き込む。リーダ用CPU801は、このデータの読み出しと書き込みを、転送サイズに応じ繰り返し行う。なお、転送サイズ分の転送が完了するまで、リーダ用CPU801は他の処理を実行できない。
(DMA転送についての説明)
DMA転送では、転送制御部840が転送の制御を行う。例えば、ROM802からRAM803へDMA転送により制御プログラムを転送するとき、まず、リーダ用CPU801が、転送制御部840の初期設定を行う。次に、リーダ用CPU801が、転送情報、例えば転送元のアドレス、転送先のアドレス、転送サイズを転送制御部840に指定し、転送開始を指示する。転送制御部840は、転送開始指示を受け、指定された転送元アドレスからROM802にアクセスし、格納されているデータを読み出す。そして、転送制御部840は、指定された転送先アドレスからRAM803にアクセスし、上記ROM802から読み出したデータをRAM803に書き込む。転送制御部840は、このデータの書き出しと読み込みを、指定された転送サイズに応じ繰り返し行う。指定された転送サイズ分の転送が終了すると、転送制御部840は、次の転送開始指示を受けるまで待機状態となる。リーダ用CPU801は、転送制御部840の状態を確認することで、転送が完了したか否かを判断できる。すなわち、リーダ用CPU801は、転送制御部840への転送開始指示後、転送制御部840が待機状態であれば、転送が完了したと判断できる。
なお、本実施例においては、DMA転送が完了したかの判断を転送制御部840が待機状態であるか否かにより行うが、本発明はこれに限定されるものではない。リーダ用CPU801が、正常に転送が完了したかの判断ができる構成であればよい。例えば、DMA転送終了時に割り込みを行い、割り込み処理の中でリーダ用CPU801がフラグを立てるように制御し、転送完了をそのフラグの値によって判断してもよい。
(制御プログラムの転送と実行の並行処理)
PIO転送に対し、DMA転送における利点として、転送制御部840が転送の制御を行うため、転送を行っている間、リーダ用CPU801は他の処理を実行できる、ということが挙げられる。
例えば、リーダ制御部310の制御プログラムのうち、初期化プログラムとOSが既にRAM803に転送されており、光学モータ制御処理プログラムがRAM803に未転送である状態において、リーダ用CPU801がリマップを行う。そこで、リーダ用CPU801が光学モータ制御処理プログラムをROM802からRAM803へ転送するよう、転送制御部840へ転送開始を指示する。すると、転送制御部840は、ROM802からRAM803へ、転送制御部840専用のアクセスバスを用いて、光学モータ制御処理プログラムの転送を行う。リーダ用CPU801は、上記転送開始指示の後、転送制御部840が転送を行う間、リーダ用CPU801のアクセスバスを用いてRAM803にアクセスし、転送済みのOSを読み出して実行できる。
以上のように、転送制御部840による制御プログラムの転送と、リーダ用CPU801による制御プログラムの読み出し及び実行を並行して行うことができる。制御プログラムの転送と、制御プログラムの読み出し及び実行を並行して行うことで、リーダ制御部310の起動時間を短縮することができる。
<リーダ制御部310の起動処理の詳細>
リーダ制御部310の起動処理は、例えば以下の処理を含む。
リーダ用CPU801は、ROM802に格納されているリーダ制御部310の制御プログラムをRAM803へ転送する。リーダ用CPU801は、動作開始の要因、すなわち動作開始が電源ONによるものなのか、スリープ復帰によるものなのかを判定する。リーダ用CPU801は、OSを起動する。リーダ用CPU801は、光学スキャナユニット202のホームポジションHへの移動を行う。また、リーダ用CPU801は、コントローラ部300との通信初期化を行う(通信設定)。それぞれの処理について、以下で説明する。また、上記の他に、リーダ制御部310の起動処理として、例えば、シェーディングデータ生成のためのシェーディング白板210の読み取りがある。
(リーダ制御部310の制御プログラムの転送)
先述の方法で、リーダ制御部310の制御プログラムをROM802からRAM803へ転送する。制御プログラムの転送にあたっては、起動時間短縮のため、制御プログラムの転送と、制御プログラムの読み出し及び実行を並行して行うことが望ましい。また、制御プログラムの読み出し及び実行にかかる時間を短縮するため、動作開始後、可能な限り早く、制御プログラムの読み出し先をROM802からRAM803に切り替える、すなわちリマップすることが望ましい。
動作開始時、リーダ用CPU801はROM802から初期プログラムを読み出して実行する。そこで、初期プログラムにおいて、まず少量の制御プログラム、例えば、初期プログラムを転送する。転送制御部840の初期設定前であるため、これにはPIO転送を用いる。上記少量の制御プログラムの転送が完了した後、リーダ用CPU801は、リマップを行いプログラムの読み出し先を切り替える。これにより、これ以降の制御プログラムの読み出し及び実行に掛かる時間が削減できる。その後、リーダ用CPU801は、転送制御部840の初期設定を行う。これによりDMA転送が使用可能になるため、以後は制御プログラムの転送と制御プログラムの読み出し及び実行を並行して行い、制御プログラムの全量をRAM803へ転送する。
(動作開始要因の判定)
動作開始要因の判定は、リーダ制御部310の制御プログラムのうち、初期プログラムの機能を用いて行われる。
先述の通り、スリープ復帰時、CPU901は、スリープ復帰通知ライン356の電圧をしきい値より高く保った状態で、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。一方、電源ON時、スリープ復帰通知ライン356の電圧は、しきい値より低い状態にある。電源ON時、CPU901は、スリープ復帰通知ライン356の電圧を変更することなく、したがってスリープ復帰通知ライン356の電圧はしきい値より低い状態のまま、リーダ制御部310へ電力の供給を開始する。
リーダ用CPU801は、起動処理においてスリープ復帰通知ライン356の電圧を確認し、電圧がしきい値より高い状態にあると検知すれば、動作開始がスリープ復帰によるものであると判定する。また、電圧がしきい値より低い状態にあると検知すれば、リーダ用CPU801は、動作開始が電源ONによるものであると判定する。
(OSの起動)
リーダ制御部310の制御プログラムには、先述の通り、OSが含まれている。後述する光学スキャナユニット202のホームポジションHへの移動や、コントローラ部300との通信初期化、その他起動処理、原稿読み取り処理等は、全てOSの動作の上で、それぞれの処理プログラムにより行われる。そのため、リーダ制御部310は、これらの処理に先立って、OSの起動を行う。具体的には、リーダ制御部310は、リーダ制御部310の制御プログラムのうち、OSに含まれるカーネルイメージを読み込み、実行する。
(光学スキャナユニット202のホームポジションHへの移動)
光学スキャナユニット202のホームポジションHへの移動は、リーダ制御部310の制御プログラムのうち、光学モータ制御処理プログラムの機能により行われる。リーダ制御部310は、先述の方法で、光学スキャナユニット202の位置情報を管理している。これは、原稿の読み取りやシェーディング白板210の読み取り等の動作を行う際に、光学スキャナユニット202をその動作位置まで正確に移動させるためである。ところが、画像読取装置1000の非動作中、画像読取装置1000の揺動等の影響を受け、光学スキャナユニット202が意図せず移動してしまう場合がある。したがって、画像読取装置1000の動作開始時、リーダ制御部310は、光学スキャナユニット202の正確な位置を把握できていない状態にある。そこで、リーダ制御部310は、起動処理において、光学スキャナユニット202の正確な位置を把握するため、光学スキャナユニット202のホームポジションHへの移動(以下「HP出し」)を行っている。起動処理においては、シェーディングデータ生成のためのシェーディング白板210の読み取りを行うため、光学スキャナユニット202のHP出しは、その前に行う必要がある。
(光学スキャナユニット202のHP出しにおける制御フロー)
図4は、光学スキャナユニット202のHP出しにおける動作を説明するための図である。
図5は、光学スキャナユニット202のHP出しにおける制御処理を例示するフローチャートである。
以下、図4、図5を用いて、光学スキャナユニット202のHP出しにおける制御例を説明する。説明にあたっては、図4における左右の位置関係に基づき、「左」「右」と表現することとする。また、フローチャートでは、光学モータ822を駆動させ、光学スキャナユニット202を左向きに移動させることを「左移動」、右向きに移動させることを「右移動」と表現する。
図4(a)は、光学スキャナユニット202が流し読みガラス201の下部に停止している場合の断面図である。
図4(b)は、光学スキャナユニット202がホームポジションHに停止している場合の断面図である。
図4(a)、図4(b)に破線で示した検知位置Bは、HPセンサ211(図2)の検知位置を表しており、光学スキャナユニット202が検知位置Bよりも左側に位置していれば、HPセンサ211の出力はONとなる。また、光学スキャナユニット202が検知位置Bよりも右側に位置していれば、HPセンサ211の出力はOFFとなる。
HPセンサ211の出力と光学スキャナユニット202の位置関係について、図4(a)、図4(b)の下部に白抜き矢印で示している。光学スキャナユニット202のHP出しにおいては、HPセンサ211の出力が切り替わる点を起点とし、光学モータ822の回転の駆動パルス数を管理しながら制御する。具体的には、図4(a)に矢印で図示したように、検知位置BからホームポジションHまでの移動に要する光学モータ822の駆動パルス数を所定パルス数Pとする。所定パルス数PをRAM803へ保管しておき、実際に駆動したパルス数と所定パルス数Pを比較することで、光学スキャナユニット202をホームポジションHへ正確に停止させている。
以下、図5を用いて、光学スキャナユニット202のHP出しにおける制御フローについて説明する。このフローチャートの処理は、リーダ用CPU801が光学モータ制御処理プログラムを実行することにより実現されるものである。
まず、S101において、リーダ用CPU801は、HPセンサ211の出力がONであるかどうか判定する。そして、HPセンサ211の出力がONであると判定した場合(S101でYESの場合)、すなわち光学スキャナユニット202が検知位置Bより左側に位置していた場合、リーダ用CPU801は、S102に処理を進める。
S102において、リーダ用CPU801は、光学モータ822の駆動を開始し、光学スキャナユニット202を右に移動させていく。この場合、光学スキャナユニット202がホームポジションHへ移動する途中で、HPセンサ211の出力がOFFに切り替わる。
S103において、リーダ用CPU801は、光学スキャナユニット202を移動させていく間、HPセンサ211の出力を監視し、HPセンサ211の出力がOFFに切り替わったかどうかを判定する。そして、まだHPセンサ211の出力がONのままであると判定した場合(S103でNOの場合)、リーダ用CPU801は、そのまま光学スキャナユニット202の移動を継続するように制御する。
一方、HPセンサ211の出力がOFFに切り替わったと判定した場合(S103でYESの場合)、リーダ用CPU801は、S104に処理を進める。
S104において、リーダ用CPU801は、光学モータ822の駆動パルス数のカウントを開始する。
次に、S105において、リーダ用CPU801は、RAM803に格納されている所定パルス数Pの値と、上記S104でカウント開始したカウント値とを比較し、一致しているか否かを判定する。そして、まだ一致しないと判定した場合(S105でNOの場合)、リーダ用CPU801は、光学スキャナユニット202の移動と光学モータ822の駆動パルス数のカウントを継続するように制御する。
一方、所定パルス数Pの値とカウント値とが一致したと判定した場合(S105でYESの場合)、リーダ用CPU801は、S106に処理を進める。
S106において、リーダ用CPU801は、光学スキャナユニット202がホームポジションHに達したと判断し、光学モータ822の駆動を停止し、本フローチャートの処理を終了する(S107)。
また、上記S101において、リーダ用CPU801が、HPセンサ211の出力がOFFであると判定した場合(S101でNOの場合)、すなわち光学スキャナユニット202が検知位置Bより右側に位置していた場合、リーダ用CPU801は、S110に処理を進める。
S110において、リーダ用CPU801は、光学スキャナユニット202が検知位置B上を通過し、HPセンサ211の出力が切り替わるように、左に移動させる。リーダ用CPU801は、光学モータ822の駆動を開始し、光学スキャナユニット202を左に移動させていく。この場合、光学スキャナユニット202が左へ移動する途中で、HPセンサ211の出力がONに切り替わる。
S111において、リーダ用CPU801は、光学スキャナユニット202を移動させていく間、HPセンサ211の出力を監視し、HPセンサ211の出力がONに切り替わったかどうかを判定する。そして、まだHPセンサ211の出力がOFFのままであると判定した場合(S111でNOの場合)、リーダ用CPU801は、そのまま光学スキャナユニット202の移動を継続するように制御する。
一方、HPセンサ211の出力がONに切り替わったと判定した場合(S111でYESの場合)、リーダ用CPU801は、S112に処理を進める。
S112において、リーダ用CPU801は、光学スキャナユニット202が検知位置B上を通過したと判断し、光学モータ822の駆動を停止し、S102に処理を進める。S102〜S106では、動作開始時にHPセンサ211の出力がONであった場合と同様にして、光学スキャナユニット202を右に移動させることでホームポジションHへの移動を行い、本フローチャートの処理を終了する(S107)。
(コントローラ部300との通信初期化)
コントローラ部300との通信初期化は、リーダ制御部310の制御プログラムのうち、通信処理プログラムにより行われる。
リーダ制御部310は、先述の通り、通信ライン354を介して、コントローラ部300と画像読取制御に関する制御コマンド及び制御用データの授受を行っている。起動処理において、リーダ制御部310とコントローラ部300は、互いに通信ライン354を介した通信が可能な状態になったことを確認し、最初の通信を行うことで、通信の初期化を行っている。以下、図6A、図6Bを用いて、リーダ制御部310とコントローラ部300の通信初期化処理の流れについて説明する。
図6A、図6Bは、実施例1におけるリーダ制御部310とコントローラ部300の通信初期化処理の流れを表す図である。
図6A(a)、図6A(b)は、「電源ON」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
図6B(c)、図6B(d)は、「スリープ復帰」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
リーダ制御部310は、「電源ON」と「スリープ復帰」のいずれの場合においても、OSの起動が完了することで、コントローラ部300との通信が開始できる状態になる。そこで、図6A(a)、図6B(c)において、リーダ用CPU801は、起動処理のうちOSの起動までを行い、コントローラ部300との通信初期化処理を行っている。図6A(b)、図6B(d)では、図6A(a)、図6B(c)と異なり、リーダ用CPU801が起動処理のうちOSの起動までを行い、さらに光学スキャナユニット202のHP出し処理まで行った後に、コントローラ部300との通信初期化処理を行っている。
一方、コントローラ部300は、先述の通り、「電源ON」の場合と「スリープ復帰」の場合で、リーダ制御部310との通信が開始できる状態になるまでの処理が異なる。
「電源ON」の場合、CPU901は、コントローラ部300の制御プログラムの転送、画像処理部905の設定など、画像読取システムとして必要な初期動作を行う。CPU901がこれらの処理を行った後に、リーダ制御部310との通信が可能になる(図6A(a)、図6A(b))。
一方「スリープ復帰」の場合、電源ON時と異なり、画像読取システムとして必要な処理のいくつかはスリープ中も動作している。そのため「スリープ復帰」時、CPU901は、画像処理部905の設定などの、画像読取システムとして必要な初期動作のうちスリープ復帰の場合も必要になるものを行った後に、リーダ制御部310との通信が可能になる(図6B(c)、図6B(d))。したがって、「電源ON」の場合は、「スリープ復帰」の場合よりも、リーダ制御部310との通信が可能になるまで時間を要する。それぞれの場合において、リーダ制御部310との通信が可能になれば、CPU901はリーダ制御部310との通信初期化処理を行う。
リーダ制御部310とコントローラ部300の通信初期化処理においては、まず、互いに通信が可能な状態になったことの確認を行う。通信が可能な状態になったことの確認には、通信準備完了通知ライン357を用いる。通信準備完了通知ライン357は、例えば、二本の電気的な信号線で構成される。一方の信号線357aは、リーダ制御部310が通信準備完了であることを表す。他方の信号線357bは、コントローラ部300が通信準備完了であることを表す。それぞれ、その電圧をしきい値より高く保つことで、通信準備完了であることを通信相手に通知する。
図6A(a)、図6A(b)では、リーダ制御部310の方が早く通信が可能な状態になっている。そのため、リーダ用CPU801は、CPU901へ通信準備完了を通知(図中矢印A1)した後、CPU901が通信準備完了を通知(図中矢印A2)してくるまでの間に、待ち時間が生じている(図中白抜き矢印)。
一方、図6B(c)、図6B(d)においては、コントローラ部300の方が早く通信が可能な状態になっている。そのため、CPU901は、リーダ用CPU801へ通信準備完了を通知(図中矢印A2)した後、リーダ用CPU801が通信準備完了を通知(図中矢印A1)してくるまでの間に、待ち時間が生じている(図中白抜き矢印)。
リーダ制御部310とコントローラ部300が共に通信可能になると、リーダ用CPU801及びCPU901は、通信ライン354を使用し、最初の通信を行う。最初の通信では、リーダ制御部310の構成情報の授受が行われる。まず、CPU901が通信ライン354を通じて構成情報要求を送信し(図中矢印A3)、リーダ用CPU801はそれを受け、通信ライン354を通じてリーダ制御部310構成情報を送信する(図中矢印A4)。リーダ制御部310の構成情報とは、例えば、リーダ制御部310の制御プログラムのバージョンや、画像読取範囲等の画像読取に関する機能情報である。CPU901は、リーダ制御部310の構成情報を受け取った後、通信ライン354を通じて構成情報受取完了を送信し(図中矢印A5)、リーダ用CPU801がこれを受け取って通信初期化処理が終了する。
(リーダ制御部310とコントローラ部300の通信初期化における制御フロー)
以下、リーダ制御部310とコントローラ部300の通信初期化処理について、図7、図8を用いて説明する。
図7は、リーダ制御部310におけるコントローラ部300との通信初期化処理を例示するフローチャートである。
図8は、コントローラ部300におけるリーダ制御部310との通信初期化処理を例示するフローチャートである。
まず、図7を用いて、リーダ制御部310におけるコントローラ部300との通信初期化処理の制御フローについて説明する。このフローチャートの処理は、リーダ用CPU801が通信処理プログラムを実行することにより実現されるものである。
S201において、リーダ用CPU801は、まず、リーダ制御部310が通信可能状態であることを、通信準備完了通知ライン357aを介してコントローラ部300へ通知する。
次に、S202において、リーダ用CPU801は、通信準備完了通知ライン357bの状態を見て、コントローラ部300が通信可能状態であるか否かを確認する。そして、まだコントローラ部300が通信可能状態でないと判定した場合(S202でNOの場合)、リーダ用CPU801は、上記S202の確認を繰り返す。
一方、コントローラ部300が通信可能状態であると判定した場合(S202でYESの場合)、リーダ用CPU801は、上記S203に処理を進める。
S203において、リーダ用CPU801は、コントローラ部300から通信ライン354を介し「構成情報要求」コマンドを受信したか否かを確認する。そして、まだ「構成情報要求」コマンドを受信完了していないと判定した場合(S203でNOの場合)、リーダ用CPU801は、上記S203の確認を繰り返す。
一方、すでに「構成情報要求」コマンドを受信完了したと判定した場合(S203でYESの場合)、リーダ用CPU801は、S204に処理を進める。
S204において、リーダ用CPU801は、コントローラ部300へ通信ライン354を介し「構成情報」データを送信する。
次に、S205において、リーダ用CPU801は、コントローラ部300から通信ライン354を介し「構成情報受取完了」コマンドを受信したか否かを確認する。そして、まだ構成情報受取完了」コマンドを受信完了していないと判定した場合(S205でNOの場合)、リーダ用CPU801は、上記S205の確認を繰り返す。
一方、すでに構成情報受取完了」コマンドを受信完了したと判定した場合(S205でYESの場合)、リーダ用CPU801は、本フローチャートの処理を終了する(S206)。
次に、図8を用いて、コントローラ部300におけるリーダ制御部310との通信初期化処理の制御フローについて説明する。このフローチャートの処理は、CPU901がROM902又はRAM903に記憶されるプログラムを読み出して実行することにより実現されるものである。
S301において、CPU901は、まず、コントローラ部300が通信可能状態であることを、通信準備完了通知ライン357bを介してリーダ制御部310へ通知する。
次に、S302において、CPU901は、通信準備完了通知ライン357aの状態を見て、リーダ制御部310が通信可能状態であるか否かを確認する。そして、まだリーダ制御部310が通信可能状態でないと判定した場合(S302でNoの場合)、CPU901は、上記S302の確認を繰り返す。
一方、リーダ制御部310が通信可能状態であると判定した場合(S302でYESの場合)、CPU901は、S303に処理を進める。
S303において、CPU901は、リーダ制御部310へ通信ライン354を介し「構成情報要求」コマンドを送信する。
次に、S304において、CPU901は、リーダ制御部310から通信ライン354を介し「構成情報」データを受信したか否かを確認する(S304)。そして、まだ「構成情報」データを受信していないと判定した場合(S304でNOの場合)、CPU901は、上記S304の確認を繰り返す。
一方、「構成情報」データを受信したと判定した場合(S304でYESの場合)、CPU901は、上記S305に処理を進める。
S305において、CPU901は、リーダ制御部310へ通信ライン354を介し「構成情報受取完了」コマンドを送信し、本フローチャートの処理を終了する(S306)。
(リーダ制御部310の起動処理における起動時間削減)
図6A(a)、図6A(b)に示したように、電源ONの場合には、通信処理化処理においてリーダ用CPU801の待ち時間が生じている。また、図6B(c)、図6B(d)に示したように、スリープ復帰の場合には、通信初期化処理においてCPU901の待ち時間が生じている。これは、「電源ON」の場合には、コントローラ部300は「スリープ復帰」の場合よりも、リーダ制御部310との通信が可能になるまで時間を要するためである。
「電源ON」の場合、図6A(b)に示すように、リーダ制御部310の起動処理において、コントローラ部300との通信初期化処理前に、光学スキャナユニット202のHP出し処理を行っておくことで、図6A(a)と比較してリーダ制御部310の待ち時間を短縮できる。すなわち、リーダ制御部310の起動時間が削減できる。
一方、「スリープ復帰」の場合、図6B(d)に示すように、リーダ用CPU801が通信初期化処理を行う前に光学スキャナユニット202のHP出し処理を行うことで、CPU901に待ち時間が生じる(図中白抜き矢印)。また、生じた待ち時間は、図6B(c)に白抜き矢印で示したCPU901の待ち時間より長い。すなわち、図6B(c)に比較して、図6B(d)では、コントローラ部300の起動処理が長い。したがって、「スリープ復帰」の場合、図6B(c)に示すように、リーダ制御部310の起動処理において、OSの起動後すぐにコントローラ部300との通信初期化処理を行うことで、図6B(d)と比較してコントローラ部300の起動時間が削減できる。
リーダ制御部310の起動時間を短縮できれば、より早く原稿が読み取り可能になる。また、コントローラ部300の起動時間を短縮できれば、より早くユーザからの原稿読取要求の操作を受け付け可能になる。
したがって、本実施例では、「電源ON」の場合には、図6A(b)に示したように、リーダ用CPU801は起動処理においてOSの起動まで行い、光学スキャナユニット202のHP出し処理を行った後に、コントローラ部300との通信初期化処理を行う。これにより、リーダ制御部310の起動時間を短縮する。
また、「スリープ復帰」の場合には、図6B(c)に示したように、リーダ用CPU801は起動処理においてOSの起動まで行い、コントローラ部300との通信初期化処理を行った後に、光学スキャナユニット202のHP出し処理を行う。これにより、コントローラ部300の起動時間を短縮する。
<リーダ制御部310の起動処理における制御例>
以下、図9、図10を用いて、リーダ制御部310の起動処理における制御について説明する。
図9は、実施例1におけるリーダ制御部310の起動処理の実行及び並行して行うリーダ制御部310の制御プログラムのROM802からRAM803への転送の流れを示す図である。
図10は、実施例1におけるリーダ制御部310の起動処理を例示するフローチャートである。
図9(a)は、動作開始要因が「電源ON」である場合に対応する図である。
図9(b)は、動作開始要因が「スリープ復帰」であった場合に対応する図である。
図9(a)、図9(b)ともに、図の上段は、リーダ用CPU801が行うリーダ制御部310の起動処理の実行を表している。また、図9(a)、図9(b)ともに、上段下部に、実行される処理がリーダ制御部310の制御プログラムのうち、どの部分によるものかを「初期プログラム」、「OS」等のように、制御プログラムの名称で示している。
また、図9(a)、図9(b)ともに、図の下段は、ROM802からRAM803への、リーダ制御部310の制御プログラムの転送を表している。なお、網掛けのものは「PIO転送」を表し、そうでないものは「DMA転送」を表している。なお、DMA転送については、リーダ用CPU801が転送制御部840へ転送情報を指定し転送開始を指示するタイミングを、図の上段から下段への破線矢印で表している。
以下、リーダ制御部310の起動処理における制御フローについて、図10を用いて説明する。図10のフローチャートの処理は、リーダ用CPU801が実行するものである。
動作開始時、先述の通り、リーダ用CPU801はハードウェアリセットされる。リセットが解除されると、リーダ用CPU801は、リーダ制御部310の起動処理を開始する(S400)。まず、リーダ用CPU801は、ROM802に格納されているリーダ制御部310の制御プログラムのうち、初期プログラムを読み込み実行する。これにより、リーダ用CPU801は、該初期プログラムに基づく以下の処理が可能になる。
初期プログラムの実行において、リーダ用CPU801は、まず、S401において、初期プログラムのROM802からRAM803へのPIO転送を行う。
次に、S402において、リーダ用CPU801は、リマップすることで、リーダ制御部310のプログラムの読み出し先をROM802からRAM803へ切り替える。以下、リーダ用CPU801は、RAM803へ転送されたプログラムを読み出して処理を行うこととなる。
次に、S403において、リーダ用CPU801は、DMA転送を行うために、転送制御部840の初期設定を行う。該S403の処理により、転送制御部840はDMA転送が可能な状態になる。
次に、S404において、リーダ用CPU801は、リーダ制御部310の制御プログラムのうち、OSの転送を転送制御部840へ指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S405に処理を進める。
S405において、リーダ用CPU801は、上記S404で指示したDMA転送と並行して、動作開始要因が「電源ON」であるか、「スリープ復帰」であるかの判定を行う。そして、動作開始要因が「電源ON」であると判定した場合(S405でNOの場合)、リーダ用CPU801は、S406に処理を進める。
S406において、リーダ用CPU801は、上記S404で指示したOSのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだOSのDMA転送が完了していないと判定した場合(S406でNOの場合)、リーダ用CPU801は、OSの転送が完了するまで上記S406の確認を繰り返す。
一方、OSのDMA転送が完了していると判定した場合(S406でYESの場合)、リーダ用CPU801は、S407に処理を進める。
S407において、リーダ用CPU801は、光学モータ制御処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S408に処理を進める。
S408において、リーダ用CPU801は、上記S407で指示したDMA転送と並行して、制御プログラムのOS部分を読み込み、OSの起動を行う。該OSの起動により、リーダ用CPU801は、該OSに基づく処理が可能になる。
次に、S409において、リーダ用CPU801は、上記S407で指示した光学モータ制御処理プログラムのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ光学モータ制御処理プログラムのDMA転送が完了していないと判定した場合(S409でNOの場合)、リーダ用CPU801は、光学モータ制御処理プログラムのDMA転送が完了するまで上記S409の確認を繰り返す。
一方、光学モータ制御処理プログラムのDMA転送が完了していると判定した場合(S409でYESの場合)、リーダ用CPU801は、S410に処理を進める。
S410において、リーダ用CPU801は、通信処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S411に処理を進める。
S411において、リーダ用CPU801は、上記S410で指示したDMA転送と並行して、光学モータ制御処理プログラムを読み込み、該光学モータ制御処理プログラムを実行し、光学スキャナユニット202のHP出し処理を行う。
次に、S412において、リーダ用CPU801は、上記S410で指示した通信処理プログラムのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ通信処理プログラムのDMA転送が完了していないと判定した場合(S412でNOの場合)、リーダ用CPU801は、通信処理プログラムのDMA転送が完了するまで上記S412の確認を繰り返す。
一方、通信処理プログラムのDMA転送が完了していると判定した場合(S412でYESの場合)、リーダ用CPU801は、S413に処理を進める。
S413において、リーダ用CPU801は、その他制御プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S414に処理を進める。
S414において、リーダ用CPU801は、上記S413で指示したDMA転送と並行して、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。S414の後、リーダ用CPU801は、S415に処理を進める。
S415において、リーダ用CPU801は、上記S413(又は後述するS427)で指示した、その他制御プログラムのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだその他制御プログラムのDMA転送が完了していないと判定した場合(S415でNOの場合)、リーダ用CPU801は、その他制御プログラムのDMA転送が完了するまで上記S415の確認を繰り返す。
一方、その他制御プログラムのDMA転送が完了していると判定した場合(S415でYESの場合)、リーダ用CPU801は、S416に処理を進める。
S416において、リーダ用CPU801は、リーダ制御部310の制御プログラムの全ての転送が完了したと判断し、転送制御部840の設定をクリアする。
次に、S417において、リーダ用CPU801は、その他の起動処理、例えばシェーディングデータ生成のためのシェーディング白板210の読み取り処理等を、対応するプログラムを読み込んで実行し、本フローチャートのリーダ制御部の起動処理を終了する(S418)。
また、上記S405において、動作開始要因が「スリープ復帰」であると判定した場合(S405でYESの場合)、リーダ用CPU801は、S420に処理を進める。
S420において、リーダ用CPU801は、上記S404で指示したOSのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだOSのDMA転送が完了していないと判定した場合(S420でNOの場合)、リーダ用CPU801は、OSのDMA転送が完了するまで上記S420の確認を繰り返す。
一方、OSのDMA転送が完了していると判定した場合(S420でYESの場合)、リーダ用CPU801は、S421に処理を進める。
S421において、リーダ用CPU801は、通信処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S422に処理を進める。
S422において、リーダ用CPU801は、上記S407で指示したDMA転送と並行して、制御プログラムのOS部分を読み込み、OSの起動を行う。該OSの起動により、リーダ用CPU801は、該OSに基づく処理が可能になる。
次に、S423において、リーダ用CPU801は、上記S421で指示した通信処理プログラムのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ通信処理プログラムのDMA転送が完了していないと判定した場合(S423でNOの場合)、リーダ用CPU801は、通信処理プログラムのDMA転送が完了するまで上記S423の確認を繰り返す。
一方、通信処理プログラムのDMA転送が完了していると判定した場合(S423でYESの場合)、リーダ用CPU801は、S424に処理を進める。
S424において、リーダ用CPU801は、光学モータ制御処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S425に処理を進める。
S425において、リーダ用CPU801は、上記S424で指示したDMA転送と並行して、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。
次に、S426において、リーダ用CPU801は、上記S424で指示した光学モータ制御処理プログラムのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ光学モータ制御処理プログラムのDMA転送が完了していないと判定した場合(S426でNOの場合)、リーダ用CPU801は、光学モータ制御処理プログラムのDMA転送が完了するまで上記S426の確認を繰り返す。
一方、光学モータ制御処理プログラムのDMA転送が完了していると判定した場合(S426でYESの場合)、リーダ用CPU801は、S427に処理を進める。
S427において、リーダ用CPU801は、その他制御プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S428に処理を進める。
S428において、リーダ用CPU801は、上記S427で指示したDMA転送と並行して、光学モータ制御処理プログラムを読み込み、該光学モータ制御処理プログラムを実行し、光学スキャナユニット202のHP出し処理を行う。S428の後、リーダ用CPU801は、S415に処理を進める。
S415以降は、リーダ用CPU801は、動作開始要因が「電源ON」であった場合と同じ処理を行い(S415〜S417)、本フローチャートのリーダ制御部の起動処理を終了する(S418)。
以上の制御により、制御プログラムを分割して転送し、最初の部分を転送し終わった段階で制御プログラムの読み出し先をROM802からRAM803に切り替えることで、その後の制御プログラムの転送中については、制御プログラムの読み出しと実行に掛かる時間を短縮できる。
また、先述の通り、動作開始要因が「電源ON」であるか「スリープ復帰」であるかによりコントローラ部300が通信可能になるまでの時間が異なる。上述したように、「電源ON」と「スリープ復帰」のそれぞれの場合に応じて、制御プログラムの転送順序、リーダ制御部310の起動処理の実行順を変えるように制御する。これにより、動作開始要因が「電源ON」、「スリープ復帰」のいずれの場合においても、リーダ制御部310又はコントローラ部300の起動処理における待ち時間を削減し、その結果、リーダ制御部310又はコントローラ部300の起動処理起動時間を削減することができる。
実施例2における画像読取装置1000のハードウェア構成は、実施例1と同様であるので説明を省略する。また、実施例2における画像読取装置1000では、起動時間の削減のため、起動処理における光学スキャナユニット202のHP出し処理を省略している。リーダ制御部310の起動処理を除き、画像読取装置1000の動作停止時、動作開始時に行う処理も実施例1と同じ構成であるので説明を省略する。さらに、リーダ制御部310の制御プログラム、及びその転送方法についても、実施例1と同じ構成であるので説明を省略する。
<リーダ制御部310の起動処理の詳細>
リーダ制御部310の起動処理は、実施例1における、リーダ制御部310の制御プログラムの転送、動作開始要因の判定、OSの起動、コントローラ部300との通信初期化を含む。これらについては、実施例1と同じ処理であるため説明を省略する。
実施例2において、リーダ制御部310の起動処理は、画像処理部833の初期設定処理を含む。画像処理部833の初期設定処理について、以下で説明する。この他に、リーダ制御部310の起動処理として、例えば、シェーディングデータ生成のためのシェーディング白板210の読み取りがある。
(画像処理部833の初期設定)
画像処理部833は、例えば、ASIC(application specific integrated circuit)で構成される。原稿読み取り時、画像読取センサ208によって読み取られた原稿の画像データは、画像処理部833において画像処理が施され、画像メモリ832に格納される。画像処理とは、例えば、原稿台ガラス209や流し読みガラス201にゴミが付着していた場合に、読み取られた画像データのゴミ部分を、その周囲にある原稿の画像データから補正する処理が挙げられる。また、シェーディング白板210にゴミが付着していた場合、シェーディングデータ生成のために読み取ったシェーディング白板210の画像データのゴミ部分を補正する処理が挙げられる。そのため、画像処理部833の初期設定は、シェーディングデータ生成のためのシェーディング白板210の読み取り処理の前に行う必要がある。
なお、本実施例では、画像処理部833の初期設定は、リーダ制御部310の制御プログラムのうち、初期プログラムにおいて行われる。リーダ用CPU801は、初期プログラムに基づいて、画像処理部833が動作可能になるように、所定の設定、例えばレジスタの設定を行う。なお、画像処理部833の初期設定が、初期プログラム以外のリーダ制御部310の制御プログラムで行われる構成でもよい。
(リーダ制御部310の起動処理における起動時間削減)
図11A、図11Bは、実施例2におけるリーダ制御部310とコントローラ部300の通信初期化処理の流れを表す図である。
図11A(a)、図11A(b)は、「電源ON」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
図11B(c)、図11B(d)は、「スリープ復帰」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
図11A(a)、図11B(c)においては、リーダ用CPU801は、起動処理のうちOSの起動までを行い、コントローラ部300との通信初期化処理を行った後、画像処理部833の初期設定処理を行っている。一方、図11A(b)、図11B(d)においては、リーダ用CPU801は、起動処理のうちOSの起動までを行い、画像処理部833の初期設定処理を行った後、コントローラ部300との通信初期化処理を行っている。
実施例1で述べた通り、コントローラ部300は、「電源ON」の場合、「スリープ復帰」の場合よりも、リーダ制御部310との通信が可能になるまで時間を要する。そのため、図11A(a)、図11A(b)においては、リーダ制御部310の方が早く通信が可能な状態になっており、リーダ用CPU801は、CPU901へ通信準備完了を通知(図中矢印A1)した後、CPU901が通信準備完了を通知(図中矢印A2)してくるまでの間に、待ち時間が生じている(図中白抜き矢印)。
一方、図11B(c)、図11B(d)においては、コントローラ部300の方が早く通信が可能な状態になっている。そのため、CPU901は、リーダ用CPU801へ通信準備完了を通知(図中矢印A2)した後、リーダ用CPU801が通信準備完了を通知(図中矢印A1)してくるまでの間に、待ち時間が生じている(図中白抜き矢印)。
「電源ON」の場合、図11A(b)に示すように、リーダ制御部310の起動処理において、コントローラ部300との通信初期化処理前に画像処理部833の初期設定処理を行っておくことで、図11A(a)と比較してリーダ制御部310の待ち時間を短縮できる。すなわち、リーダ制御部310の起動時間が削減できる。
一方、「スリープ復帰」の場合、図11B(c)に示すように、リーダ制御部310の起動処理において、OSの起動後すぐにコントローラ部300との通信初期化処理を行い、その後に画像処理部833の初期設定を行うことで、図11B(d)と比較して、コントローラ部300の起動時間が削減できる。
リーダ制御部310の起動時間を短縮できれば、より早く原稿が読み取り可能になる。コントローラ部300の起動時間を短縮できれば、より早くユーザからの操作を受け付け可能になる。したがって、実施例2では、「電源ON」の場合は、リーダ用CPU801は起動処理においてOSの起動まで行い、画像処理部833の初期設定処理を行った後に、コントローラ部300との通信初期化処理を行う(図11A(b))。これにより、リーダ制御部310の起動時間を短縮する。また、「スリープ復帰」の場合は、リーダ用CPU801は起動処理においてOSの起動まで行い、コントローラ部300との通信初期化処理を行った後に、画像処理部833の初期設定処理を行う(図11B(c))。これにより、コントローラ部300の起動時間を短縮する。以下、図12、図13を用いて、リーダ制御部310の起動処理における制御について説明する。
<リーダ制御部310の起動処理における制御例>
図12は、本実施例における、リーダ制御部310の起動処理の実行及び並行して行うリーダ制御部310の制御プログラムの転送の、流れを示した図である。
図13は、本実施例における、リーダ制御部310の起動処理の制御フローチャートである。
図12(a)は、動作開始要因が「電源ON」である場合に対応する図である。
図12(b)は、動作開始要因が「スリープ復帰」であった場合に対応する図である。
図12(a)、図12(b)ともに、図の上段は、リーダ用CPU801が行うリーダ制御部310の起動処理の実行を表している。また、図12(a)、図12(b)ともに、上段下部に、実行される処理がリーダ制御部310の制御プログラムのうち、どの部分によるものかを、「初期プログラム」、「OS」等のように、制御プログラムの名称で示している。
また、図12(a)、図12(b)ともに、図の下段は、ROM802からRAM803への、リーダ制御部310の制御プログラムの転送を表している。なお、網掛けのものは「PIO転送」、そうでないものは「DMA転送」を表している。なお、DMA転送については、リーダ用CPU801が転送制御部840へ転送情報を指定し転送開始を指示するタイミングを、図の上段から下段への破線矢印で表している。
以下、リーダ制御部310の起動処理における制御フローについて、図13を用いて説明する。図13のフローチャートの処理は、全てリーダ用CPU801によるものとする。
動作開始時、先述の通り、リーダ用CPU801はハードウェアリセットされる。リセットが解除されると、リーダ用CPU801は、リーダ制御部310の起動処理を開始する(S500)。まず、S501〜S506は、図9のS401〜S406の処理と同一であるので説明を省略する。
S507において、リーダ用CPU801は、通信処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S508に処理を進める。
S508において、リーダ用CPU801は、上記S507で指示したDMA転送と並行して、制御プログラムのOS部分を読み込み、OSの起動を行う。該OSの起動により、リーダ用CPU801は、該OSに基づく処理が可能になる。
次に、S509において、リーダ用CPU801は、上記S507で指示した通信処理プログラムのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ通信処理プログラムのDMA転送が完了していないと判定した場合(S509でNOの場合)、リーダ用CPU801は、通信処理プログラムのDMA転送が完了するまで上記S509の確認を繰り返す。
一方、通信処理プログラムのDMA転送が完了していると判定した場合(S509でYESの場合)、リーダ用CPU801は、S510に処理を進める。
S510において、リーダ用CPU801は、残りの制御プログラム、すなわち光学モータ制御処理プログラム及びその他制御プログラムの転送を転送制御部840に指示する。該転送指示が完了し、DMA転送が開始されれば、リーダ用CPU801は、S511に処理を進める。
S511において、リーダ用CPU801は、上記S510で指示したDMA転送と並行して、初期プログラムを読み込み、該初期プログラムを実行し、画像処理部833の初期設定処理を行う。
次に、S512において、リーダ用CPU801は、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。S512の後、リーダ用CPU801は、S513に処理を進める。
S513において、リーダ用CPU801は、上記S510(又は後述するS524)で指示した、残りの制御プログラムのDMA転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ残りの制御プログラムのDMA転送が完了していないと判定した場合(S513でNOの場合)、リーダ用CPU801は、残りの制御プログラムのDMA転送が完了するまで上記S513の確認を繰り返す。
一方、残りの制御プログラムのDMA転送が完了していると判定した場合(S513でYESの場合)、リーダ用CPU801は、S514に処理を進める。なお、S514〜S516は、図9のS416〜S418と同一の処理であるので説明を省略する。
また、上記S505において、動作開始要因が「スリープ復帰」であると判定した場合(S505でYESの場合)、リーダ用CPU801は、S520に処理を進める。なお、S520〜S524は、S506〜S510の処理と同一であるので説明を省略する。
S525において、リーダ用CPU801は、上記S524で指示したDMA転送と並行して、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。
次に、S526において、リーダ用CPU801は、初期プログラムを読み込み、該初期プログラムを実行し、画像処理部833の初期設定処理を行う。S526の後、リーダ用CPU801は、S513に処理を進める。
S513以降は、リーダ用CPU801は、動作開始要因が「電源ON」であった場合と同じ処理を行い(S513〜S514)、本フローチャートのリーダ制御部の起動処理を終了する(S516)。
以上の制御により、実施例2によれば、実施例1と同様の効果を奏する。
なお、動作開始要因が電源ONかスリープ復帰かの判定処理が初期プログラムに含まれる構成について説明したが、他の制御プログラムに含まれる構成でもよい。
また、上記各実施例では、画像読取装置の起動制御を例に説明したが、本発明の起動制御は、画像読取装置の起動制御に限定されるものではなく、各種電子機器の起動制御にも適用可能である。
以上のように、制御プログラムを不揮発性メモリから揮発性メモリに転送する間についても制御プログラムの読み出しと実行にかかる時間を短縮し、電源投入による動作開始と省電力状態からの復帰による動作開始のいずれの場合においても、非動作状態からの起動時間を短縮することができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
1000 画像読取装置
200 リーダ
300 コントローラ
310 リーダ制御部
801 リーダ用CPU
802,902 ROM
803,903 RAM
840 転送制御部

Claims (8)

  1. 情報処理装置であって、
    コントローラと通信可能に接続されたプロセッサーと、
    制御プログラムを格納する不揮発性メモリと、
    前記不揮発性メモリより読み出し速度が速い揮発性メモリとを、有し、
    前記不揮発性メモリには、第1プログラム、第2プログラム及び第3プログラムが格納されており、
    前記プロセッサーは、
    前記コントローラに電力が供給されている状態から前記情報処理装置が起ち上げられる第1起動処理モードにおいて、
    前記不揮発性メモリから前記第1プログラムを前記揮発性メモリに転送し、
    前記揮発性メモリに格納された前記第1プログラムに基づき、前記不揮発性メモリから前記第2プログラムを前記揮発性メモリに転送し、
    前記揮発性メモリに格納された前記第2プログラムに基づく第1処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第3プログラムの転送とを並行して実行し、
    前記コントローラに電力が供給されていない状態から前記情報処理装置が起ち上げられる第2起動処理モードにおいて、
    前記不揮発性メモリから前記第1プログラムを前記揮発性メモリに転送し、
    前記揮発性メモリに格納された前記第1プログラムに基づき、前記不揮発性メモリから前記第3プログラムを前記揮発性メモリに転送し、
    前記揮発性メモリに格納された前記第3プログラムに基づく第2処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第2プログラムの転送とを並行して実行する、
    ことを特徴とする情報処理装置。
  2. 転送制御部をさらに有し、
    前記プロセッサーは、
    前記転送制御部を使用せずに、前記第1プログラムを前記不揮発性メモリから前記揮発性メモリに転送し、
    前記転送制御部を用いて、前記第2プログラム及び前記第3プログラムを前記不揮発性メモリから前記揮発性メモリに転送する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2プログラムは、前記コントローラとの通信を制御するためのプログラムであることを特徴とする請求項に記載の情報処理装置。
  4. 前記第1プログラムは、初期プログラムであることを特徴とする請求項1〜の何れか1項に記載の情報処理装置。
  5. 前記第1プログラムは、リアルタイムオペレーティングシステムであることを特徴とする請求項1〜の何れか1項に記載の情報処理装置。
  6. 前記情報処理装置は,スリープモードを有し、
    前記スリープモードから復帰する場合に、前記第1起動処理モードを実行し、
    電源が投入された場合に、前記第2起動処理モードを実行する、
    ことを特徴とする請求項1〜の何れか1項に記載の情報処理装置。
  7. コントローラと通信可能に接続されたプロセッサーと、制御プログラムを格納する不揮発性メモリと、前記不揮発性メモリより読み出し速度が速い揮発性メモリとを有し、前記不揮発性メモリには、第1プログラム、第2プログラム及び第3プログラムが格納されている情報処理装置の制御方法であって、
    前記プロセッサーは、
    前記コントローラに電力が供給されている状態から前記情報処理装置が起ち上げられる第1起動処理モードにおいて、
    前記不揮発性メモリから前記第1プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第1プログラムに基づき、前記不揮発性メモリから前記第2プログラムを前記揮発性メモリに転送する第1転送工程と、
    前記揮発性メモリに格納された前記第2プログラムに基づく第1処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第3プログラムの転送とを並行して実行する第1並行処理工程とを実行し、
    前記コントローラに電力が供給されていない状態から前記情報処理装置が起ち上げられる第2起動処理モードにおいて、
    前記不揮発性メモリから前記第1プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第1プログラムに基づき、前記不揮発性メモリから前記第3プログラムを前記揮発性メモリに転送する第2転送工程と、
    前記揮発性メモリに格納された前記第3プログラムに基づく第2処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第2プログラムの転送とを並行して実行する第2並行処理工程とを実行する
    ことを特徴とする情報処理装置の制御方法。
  8. 請求項7に記載の制御方法をコンピュータにより実行させるためのプログラム。
JP2016241828A 2016-12-14 2016-12-14 情報処理装置、情報処理装置の制御方法及びプログラム Expired - Fee Related JP6482519B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016241828A JP6482519B2 (ja) 2016-12-14 2016-12-14 情報処理装置、情報処理装置の制御方法及びプログラム
US15/822,750 US10341500B2 (en) 2016-12-14 2017-11-27 Information processing apparatus and image reading apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016241828A JP6482519B2 (ja) 2016-12-14 2016-12-14 情報処理装置、情報処理装置の制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018097629A JP2018097629A (ja) 2018-06-21
JP6482519B2 true JP6482519B2 (ja) 2019-03-13

Family

ID=62489933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016241828A Expired - Fee Related JP6482519B2 (ja) 2016-12-14 2016-12-14 情報処理装置、情報処理装置の制御方法及びプログラム

Country Status (2)

Country Link
US (1) US10341500B2 (ja)
JP (1) JP6482519B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019068218A (ja) * 2017-09-29 2019-04-25 キヤノン株式会社 画像読取装置およびその制御方法
JP6615302B1 (ja) * 2018-11-06 2019-12-04 三菱電機株式会社 電子制御装置
JP7347157B2 (ja) * 2019-11-22 2023-09-20 富士通株式会社 情報処理システム、ストレージ制御プログラム、及び、ストレージ制御装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2695300B2 (ja) * 1991-04-26 1997-12-24 シャープ株式会社 携帯情報端末機
JP3430191B2 (ja) * 1996-05-28 2003-07-28 アルプス電気株式会社 キーボード
JP4111649B2 (ja) * 2000-01-26 2008-07-02 富士フイルム株式会社 デジタルカメラ
US7266254B2 (en) * 2002-02-13 2007-09-04 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US7457943B2 (en) * 2003-06-12 2008-11-25 Fuji Xerox Co., Ltd. Controller, image processing apparatus, and method of controlling execution of program
JP2008065434A (ja) * 2006-09-05 2008-03-21 Matsushita Electric Ind Co Ltd プログラム起動制御装置
JP2008126453A (ja) * 2006-11-17 2008-06-05 Ricoh Co Ltd 画像処理方法、プログラム、記憶媒体、画像処理装置、画像形成装置
JP5836207B2 (ja) * 2011-07-25 2015-12-24 京セラドキュメントソリューションズ株式会社 画像形成装置
JP2013097715A (ja) 2011-11-04 2013-05-20 Nikon Corp 電子機器およびプログラム
JP2013141751A (ja) * 2012-01-09 2013-07-22 Konica Minolta Inc 画像形成装置
JP5484541B2 (ja) * 2012-10-09 2014-05-07 キヤノン株式会社 画像処理装置、画像処理装置の起動方法、及びプログラム
JP6061632B2 (ja) * 2012-11-13 2017-01-18 キヤノン株式会社 情報処理装置
JP6269106B2 (ja) * 2014-01-29 2018-01-31 株式会社リコー 電子装置
JP6465555B2 (ja) * 2014-03-25 2019-02-06 キヤノン株式会社 撮像装置、電子機器、カメラシステム、制御方法、およびプログラム

Also Published As

Publication number Publication date
US10341500B2 (en) 2019-07-02
JP2018097629A (ja) 2018-06-21
US20180167519A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
JP4569522B2 (ja) 画像形成システム
JP6482519B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US9415959B2 (en) Image forming apparatus and image forming method
CN105100530B (zh) 图像形成装置及其控制方法
JP5836207B2 (ja) 画像形成装置
JP2007293702A (ja) 画像形成システム
JP2013111831A5 (ja) 印刷制御装置、その制御方法、及びプログラム
US10859958B1 (en) Image forming apparatus that transfers data from volatile cache memory to non-volatile storage based on power supply state and control method thereof
JP2013218371A (ja) 情報処理装置及び情報処理装置におけるデータ記憶処理方法
JP2008300922A (ja) 画像処理装置、画像処理装置の制御方法、制御プログラム及び記録媒体
KR101596095B1 (ko) 인쇄 장치 및 기록 매체
JP5701043B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP5889833B2 (ja) 画像形成装置及びその起動制御方法
US9336463B2 (en) Image forming apparatus capable of changing partitions of storage unit, and control method and storage medium therefor
US20090122345A1 (en) Image forming apparatus
JP2008216527A (ja) 画像形成装置、制御方法およびプログラム
JP5103350B2 (ja) 画像形成装置
JP2004194254A (ja) 情報処理装置
JP2016161580A (ja) 画像形成装置及び画像形成システム
JP2009223384A (ja) 情報処理装置
JP2011113042A (ja) 画像形成装置
US9386177B2 (en) Information processing apparatus and original reading apparatus
JP2007276401A (ja) 画像形成システム
JP2022096897A (ja) 電子機器および電子機器におけるログ保存方法
JP7119744B2 (ja) 画像形成装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190212

R151 Written notification of patent or utility model registration

Ref document number: 6482519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees