特許第5657211号(P5657211)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニスカ株式会社の特許一覧

<>
  • 特許5657211-マイクロプロセッサの監視装置 図000002
  • 特許5657211-マイクロプロセッサの監視装置 図000003
  • 特許5657211-マイクロプロセッサの監視装置 図000004
  • 特許5657211-マイクロプロセッサの監視装置 図000005
  • 特許5657211-マイクロプロセッサの監視装置 図000006
  • 特許5657211-マイクロプロセッサの監視装置 図000007
  • 特許5657211-マイクロプロセッサの監視装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5657211
(24)【登録日】2014年12月5日
(45)【発行日】2015年1月21日
(54)【発明の名称】マイクロプロセッサの監視装置
(51)【国際特許分類】
   G06F 9/445 20060101AFI20141225BHJP
   G06F 11/00 20060101ALI20141225BHJP
   G06F 11/30 20060101ALI20141225BHJP
【FI】
   G06F9/06 610K
   G06F9/06 630A
   G06F11/30 310B
【請求項の数】3
【全頁数】9
(21)【出願番号】特願2009-28261(P2009-28261)
(22)【出願日】2009年2月10日
(65)【公開番号】特開2010-186220(P2010-186220A)
(43)【公開日】2010年8月26日
【審査請求日】2012年1月27日
(73)【特許権者】
【識別番号】000231589
【氏名又は名称】ニスカ株式会社
(74)【代理人】
【識別番号】100098589
【弁理士】
【氏名又は名称】西山 善章
(74)【代理人】
【識別番号】100097559
【弁理士】
【氏名又は名称】水野 浩司
(74)【代理人】
【識別番号】100123674
【弁理士】
【氏名又は名称】松下 亮
(72)【発明者】
【氏名】皆川 義彦
(72)【発明者】
【氏名】依田 一朗
【審査官】 篠塚 隆
(56)【参考文献】
【文献】 特開2007−293735(JP,A)
【文献】 特開平10−269109(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F9/06
9/44−9/445
9/48−9/50
9/54−11/00
11/28−11/36
(57)【特許請求の範囲】
【請求項1】
マイクロプロセッサと、
前記マイクロプロセッサが所定の動作を実行するためのメインプログラムと、
このメインプログラムを書き換える際に実行するためのブートプログラムと、
前記メインプログラムとブートプログラムの各書き換えプログラムを格納する記憶手段と、
前記書き換え時実行するブートプログラムをコピーして記憶する第2の記憶手段と、
前記メインプログラムの動作状態を監視するウォッチドッグタイマ回路と、
を備え、
前記ウォッチドッグタイマ回路には、時間を計時するタイマ手段が設けられ、
前記タイマ手段は、
前記メインプログラムの実行によって所定周期毎にリセットされプログラムの動作状態を監視する第1モードと、
旧ブートプログラムによって作動されると共に、プログラムの書き換えが終了した後に、所定周期毎のリセットを実行ることなく前記マイクロプロセッサを再起動させる第2モードと、
を備え
前記第2モードは、
記第1モードで作動する前記タイマ手段を停止した後に、
新ブートプログラムを、前記旧ブートプログラムが記憶されていた領域とは異なる領域に書き込み、
次いで前記タイマ手段を再起動した後に、
前記旧ブートプログラムを消去して、その記憶領域に新ブートプログラムを書き込む動作の終了後に前記マイクロプロセッサを再起動ることを特徴とするマイクロプロセッサの監視装置。
【請求項2】
前記第2モードにおける前記新ブートプログラムの書き込みは、
前記新メインプログラムを旧メインプログラムが記憶されていた領域に書き込む動作とともに実行し、
前記タイマ手段の作動は、
前記旧ブートプログラムを消去して、その記憶領域に新ブートプログラムを書き込む動作
に要する時間の後に前記マイクロプロセッサを再起動させるタイミングに設定されていることを特徴とする請求項1に記載のマイクロプロセッサの監視装置。
【請求項3】
前記旧ブートプログラムの消去は、
前記第2の記憶手段に記憶された旧ブートプログラムによって実行されることを特徴とする請求項1に記載のマイクロプロセッサの監視装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はCPU(中央処理装置)の動作状態を監視すると同時にCPUをリセット動作するマイクロプロセッサの監視装置に関する。
【背景技術】
【0002】
マイクロプロセッサを有する装置では、ハードウェアの故障等によりプログラムが暴走することがあり、このようなプログラムの暴走を検出するためにウォッチドッグタイマと呼ばれるハードウェアのタイマ回路が設けられている(例えば特許文献1参照)。このウォッチドッグタイマ(以下、WDTという)には、被監視プログラムから一定周期ごとにリセット信号が入力されるようになっており、被監視プログラムが暴走してリセット信号が入力されなくなると、WDTは、マイクロプロセッサを再起動させるようになっている。
【0003】
また、装置機能のバージョンアップやバグの修正等の理由により、マイクロプロセッサが実行するプログラム(ファームウェア)を書き換える場合、新しいプログラムを実行するために、書き換え後マイクロプロセッサを再起動させてメインプログラムを先頭ラインから実行させる必要がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−269109号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来は、再起動用の専用回路を設けて再起動をしていたため、回路が大型化していた。そこで、本願発明は、専用の回路を設けることなくプログラムの書き換え後にマイクロプロセッサを再起動させることが可能な方法およびその方法を用いた装置を提供することを目的としている。
【課題を解決するための手段】
【0006】
上記課題を達成するため本発明は、所定のクロックをカウントするタイマ手段を次の第1モードと第2モードで制御する。第1モードでは、前記タイマ手段をプログラムにより所定周期毎にリセット(カウントクリア)してプログラムの動作状態を監視し、第2モードでは、前記タイマ手段をプログラムにより所定周期毎にリセットすることなく前記マイクロプロセッサを再起動させることを特徴とする。その構成を具体的に説明すると、マイクロプロセッサと、前記マイクロプロセッサが実行するプログラムを格納する記憶手段と、時間を計時するタイマ手段と、前記タイマ手段を制御する制御手段とを備える。そして前記制御手段は、前記タイマ手段を前記プログラムにより所定周期毎にリセットして前記プログラムの動作状態を監視する第1モードと、前記タイマ手段を前記プログラムにより所定周期毎にリセットすることなく前記マイクロプロセッサを再起動させる第2モードを備える。
【発明の効果】
【0007】
本発明は、マイクロプロセッサの動作状態の監視と再起動動作を単一のタイマ手段で構成することが出来、以って回路構成の小型化と簡素化を可能とすることができる。つまり従来マイクロプロセッサの監視装置としてのみ使用されていたタイマ手段を、マイクロプロセッサの再起動を行なわせるように構成することで、再起動専用の回路を設ける必要がなくなる。
【図面の簡単な説明】
【0008】
図1】本発明に係わる画像読取システムの構成説明図。
図2図1の装置に於ける画像読取装置の構成図。
図3図1の装置に於けるハード構成ブロック図。
図4】本発明に係わるROM内のプログラム構成概略図。
図5】プログラム監視動作概略図であり、(a)は第1モード(プログラム監視モード)を示し、(b)は第2モード(プログラム非監視モード)を示す。
図6】プログラム書換フロー。
図7図6のプログラム状態の説明図。
【発明を実施するための形態】
【0009】
本願発明を画像読取システムを例に説明する。図1に示すように、画像読取システムは、原稿画像を読み取る画像読取装置のスキャナ10と、このスキャナ10の上位装置で、スキャナに対して種々のコマンドを送信するパーソナルコンピュータ(以下、PCという)20とを有している。PC20とスキャナ10は例えばUSB、SCSI、Ethernet、PCIe、などのインタフェースを介して接続され、PCにはスキャナ用ユーザインタフェースのアプリケーションプログラム、スキャナを動作させるためのドライバプログラムが内蔵されている。
【0010】
また、PC20はネットワークに接続され、スキャナ10のプログラムを書き換える際には、ネットワークを介してPC20は新プログラムを取得し、さらにその新プログラムがスキャナ10へ送信されるように構成されている。なお、スキャナ10は、プリンタ、ファクシミリなどの各種機能を備えた複合機でも構わず、後述するウォッチドッグタイマ回路を備えたものであれば構わない。
【0011】
さらに本実施例では、スキャナ10の上位装置として、すなわちスキャナ10に対しコマンドを発信する装置としてスキャナとは別体のPC20を例に説明を行ったが、スキャナ内部にPC20と同様の機能を有するコマンド送信部(アプリケーションおよびドライバ)を設けて、スキャナ内部でコマンドや画像データのやり取りをするようにしても構わない。この場合は、スキャナ自身がディスプレイなどの表示部を備え、この表示部の設定画面上でユーザーが各種読み取り条件を設定できるようにすればよい。
【0012】
[スキャナの構成]
図2に示すように、スキャナ10はケーシング5の上面に支持され原稿を載置するためのプラテン15と、このプラテン15上の原稿の読み取りを行う画像読取ユニット17を備えている。この画像読取ユニット17はプラテン15に沿って移動しながらプラテン上の原稿の画像を読み取るよう、モータMcに連結された走行ベルト18がキャリッジ19に連結されている。光源21からプラテン15上の原稿に光を照射し、原稿からの反射光を、ミラー22を介して集光レンズ23に導き、この集光レンズ23で読取センサ(CCD)24上に結像して光電変換することで原稿画像の読取が行われる。
【0013】
図3に示すように、PC20とスキャナ10はポート1を介して接続されており、PC20はネットワークに接続されている。スキャナ10は、各種演算処理を行うマイクロプロセッサのCPU30、CPU30が実行するプログラムが格納されている記憶手段のROM31のフラッシュメモリ、各種処理中にデータなどを一時的に記憶するメモリのRAM32、クロックを発信するクロック発信器33、プログラムの監視を行うためのウォッチドッグタイマ回路(以下、WDT回路という)35を備え、さらに、ポート2を介して光源21、モータMc、CCD24が接続されている。
【0014】
図4に示すように、ROM31には、イニシャルプログラムPnと書換プログラムPkを有するブートプログラムPb、メインプログラムPmとが記憶されている。イニシャルプログラムPnは、装置の電源投入時にRAM32をクリアしたり、各種ハードウェアを初期化したり等のイニシャル処理を実行するためのプログラムであり、ブートプログラムはPb、ブートプログラム自身またはメインプログラムPmを書き換える際に実行されるプログラムである。またメインプログラムPmは、イニシャル処理以降にスキャナ10が各種処理を実行するためのプログラムである。なお、説明のしやすさから図4では書換プログラムPkとイニシャルプログラムPnは別体のプログラムとして示したが、両プログラムは連続した一体のプログラムで構成されている。
【0015】
また、WDT回路35は、カウントアップするカウンタ(CNT)36、カウンタ36の各種設定を行うためのカウンタレジスタ37、カウンタレジスタ37の設定に応じた周波数のクロックをカウンタ36へ入力するクロック選択部38、カウンタ36のカウント数が予め定められた所定値に達した時(オーバーフローしたとき)にCPU30を含む制御系をリセットするためのリセット信号を発生するリセットコントロール39とを備えている。カウンタレジスタ37は、カウンタ36のカウント動作の開始/停止を選択・設定するためのON/OFF設定領域(1の場合はカウント動作を開始し、0の場合はカウント動作を停止してカウント値は0へ初期化される)Ar1、カウンタ36へ入力するクロックの周波数を選択・設定するための周波数設定領域Ar2とを有し、クロック選択部38は、周波数設定領域Ar2の設定内容に従って所定周波数のクロックを選択・入力する。カウンタ36は、予め定められた所定クロック数をカウントしたらオーバーフローする。
【0016】
従って、クロック選択部38から出力されるクロックの周波数によってオーバーフローまでの時間(オーバーフロー時間T)は変更可能であり、周波数が大きければ大きいほどオーバーフロー時間Tは短くなる。
【0017】
[WDT回路によるプログラムの監視]
WDT回路35によるプログラムの監視は以下のようにして行われる。
図5(a)(第1モード)に示すように、WDT回路35によって監視されるプログラム(被監視プログラム)は、所定周期毎にカウンタ(CNT)36のカウント値をリセットするように構成され、上述のオーバーフロー時間Tはこのプログラムによるカウンタ値のリセット周期よりもわずかに長い時間に設定される。よって、被監視プログラムが暴走してオーバーフロー時間T内にカウンタ値がリセットされないと、カウンタ36がオーバーフローする。これを受けてリセットコントロール39から制御リセット信号が出力されてCPU30がリセットされる。
【0018】
本実施例では、図5(a)に示すように、WDT回路35によって監視されるようメインプログラムPmは所定周期毎にカウンタ36をリセットするように構成されている。従って、装置の電源投入後イニシャルプログラムPnに従ってイニシャル処理が実行された後、メインプログラムPmが実行されるが、メインプログラムPmが実行されている間は、WDT回路35は上述したプログラムの監視を行う第1モードで動作している。
【0019】
プログラム書き換え時に実行されるWDT回路35の第2モードの説明を図6のフローチャートを用いて説明する。なお、本実施例では、ブートプログラムPbとメインプログラムPmの両プログラムを書き換えるものを例に説明を行う。ユーザーまたはサービスマンがPC20の所定画面からプログラムの書き換えを選択すると、PC20はスキャナ10に対して書換コマンドを送信し、スキャナ10はこの書換コマンドを受信する(ST001)。書換コマンドを受けたCPU30は、実行するプログラムをメインプログラムPmからROM31上の書換プログラムに移行して以下の処理を行う。
【0020】
カウンタレジスタ37のON/OFF設定領域Ar1を0に設定してWDT回路35のカウンタ36のカウント動作を停止させる(ST002)。これによりWDT回路35はいずれのプログラムも監視していない状態となる。そしてST003では書換プログラムをRAM32へコピーする(なお、これ以降、書き換えられる前の書換プログラム、メインプログラムをそれぞれ旧書換プログラムPkO、旧メインプログラムPmOといい、新しい書換プログラム、メインプログラムをそれぞれ新書換プログラムPkO、新メインプログラムPmNという)。
【0021】
ステップST004では、新メインプログラムPmNと新ブートプログラムPbNをPC20から取得して書込む。具体的には、ROM31に記憶されている旧メインプログラムPmOを消去した後、PC20から送信されてきた新メインプログラムPmN、および新ブートプログラムPbNを受信する。そして新メインプログラムPmNは旧メインプログラムPmOが記憶されていた領域に書込まれ、新ブートプログラムPbNは旧ブートプログラムPbOが記憶されていた領域とは別の領域に書き込まれる。このときの状態を図7に示してある。
【0022】
次にカウンタレジスタ37のON/OFF設定領域Ar1を1に設定してカウンタ36のカウント動作を再開させる(ST005)。なおこのとき、上述のとおり、カウンタ36に入力されるクロックの周波数はオーバーフロー時間Tを決定するため、後述の旧ブートプログラムの消去・新ブートプログラムの移動がなされるに十分な時間となるよう、クロックの周波数を選択・設定する。
【0023】
ST006はRAM32上の旧書換プログラムPkOで実行され、ROM31上の旧ブートプログラムPbOを消去すると共に、この旧ブートプログラムPbOが記憶されていた領域にST004で取得した新ブートプログラムPbNを書込む。なお、ST005でWDT回路35のカウンタ36のカウント動作は再開されたが、プログラムの監視を行わない第2モードで動作している。
【0024】
すなわち、ST006が実行されるRAM32上の旧書換プログラムPkOは図5(b)に示すように、所定周期毎にカウンタ値をリセットするように構成されていないのでWDT回路35による監視を受けていない。従って、カウンタ36は旧書換プログラムPkOからリセットされないためオーバーフローし、リセットコントロール39から制御リセット信号が出力され、CPU30がリセットされる。すなわち、新イニシャルプログラムPnNの実後、新メインプログラムPmNを実行する。
【0025】
このように、RAM32上の旧書換プログラムPkOを、カウンタ36のカウンタ値を定期的にリセットしないように構成して意図的にカウンタ36をオーバーフローさせてプログラムの書換後に自動的にCPU30をリセットさせるようにした。すなわち、WDT回路35をCPU30をリセットするための回路として使用すること(第2モードで使用すること)で、専用の回路を用いることなくCPU30をリセットすることが可能となったものである。
【0026】
なお、本実施例では、カウンタ36の再開をST004とST006との間のタイミングとしたが、ST006の処理終了後にカウンタ36がオーバーフローするようなタイミングであれば、いつでも構わない。
【0027】
なお、本実施例では、書換コマンドを受信した後、ST002でWDT回路35のカウンタ36のカウント動作を一時停止させている。ROM31上の旧書換プログラムPkOもメインプログラムと同様に所定周期でカウンタ36をリセットするように構成しSt003、ST004の処理中もWDT回路35によって監視されるようにしたとしても、ST004でPC20からの新プログラムの取得に時間が掛かってオーバーフローによるCPU30のリセットが起きてしまい新プログラムの取得ができないといった問題が発生するので、このような問題を回避するための一時停止である。
【符号の説明】
【0033】
10 スキャナ
15 プラテン
17 画像読取ユニット
19 キャリッジ
20 PC(パーソナルコンピュータ)
21 光源
24 読取センサ(CCD)
30 CPU(マイクロプロセッサ)
31 ROM
32 RAM
33 クロック発信器
35 ウォッチドッグタイマ回路(WDT回路)
36 カウンタ
37 カウンタレジスタ
38 クロック選択部
39 リセットコントロール
Pn イニシャルプログラム
Pk 書換プログラム
Pb ブートプログラム
Pm メインプログラム
Ar1 ON/OFF設定領域
Ar2 周波数設定領域
図1
図2
図3
図4
図5
図6
図7