(57)【要約】      （修正有）【課題】複数の基板を持つシステムにおいて、一つの基板にウォッチドッグタイマ機能を持たせるだけで、その他の基板のプログラムの暴走を簡単かつ低コストにて検出することができるようにする。【解決手段】個別のプログラムを実行する複数の基板１，２を有するシステムにおいて、複数の基板１，２はそれぞれ基板制御手段１１，１２を備え、一方の基板２におけるプログラムの暴走を監視する基板監視手段を他方の基板制御手段１１に設け、一方の基板２は、暴走を検出するプログラムよりも処理の優先度が低い周期起動タスクを周期的に起動させて、起動する毎に所定の情報変化が他方の基板１に伝達し、前記基板監視手段は、一定時間の間に一方の基板２から前記所定の情報変化が伝達されたか否かを監視し、前記一定時間の間に前記所定の情報変化が伝達されなかった場合を、一方の基板２のプログラムの暴走として検出する。【選択図】図１
2009075769.tif 000002
【特許請求の範囲】
【請求項１】
個別のプログラムを実行する複数の基板を有するシステムにおいて、
前記複数の基板はそれぞれ基板制御手段を備え、
一方の基板におけるプログラムの暴走を監視する基板監視手段を他方の基板制御手段に設け、
前記一方の基板は、暴走を検出するプログラムよりも処理の優先度が低い周期起動タスクを周期的に起動させて、起動する毎に所定の情報変化が前記他方の基板に伝達し、
前記基板監視手段は、一定時間の間に前記一方の基板から前記所定の情報変化が伝達されたか否かを監視し、前記一定時間の間に前記所定の情報変化が伝達されなかった場合を、前記一方の基板のプログラムの暴走として検出することを特徴とするプログラムの暴走検出システム。
【請求項２】
前記所定の情報変化は、１ビットの情報変化であることを特徴とする請求項１記載のプログラムの暴走検出システム。
【請求項３】
前記プログラムの暴走が検出された場合は、システム全体の電源を遮断することを特徴とする請求項１又は２に記載のプログラムの暴走検出システム。
【請求項４】
前記システムは、メディアへのデータの書き込み及びメディアへのレーベル面への印刷を行うメディア処理装置であり、
前記一方の基板は、キャリッジモータを駆動してメディアのレーベル位置にプリントするプリンタ基板であり、
前記他方の基板は、メディアの搬送機構を制御するオートローダ基板であることを特徴とする請求項１〜４の何れか一項に記載のプログラムの暴走検出システム。
【請求項５】
前記暴走を検出するプログラムは、前記キャリッジモータを駆動するプログラムであることを特徴とする請求項５に記載のプログラムの暴走検出システム。
【請求項６】
個別のプログラムを実行する複数の基板を有し、前記複数の基板はそれぞれ基板制御手段を備え、一方の基板におけるプログラムの暴走を監視する基板監視手段を他方の基板制御手段に設けたシステムのプログラムの暴走検出方法であって、
前記一方の基板は、暴走を検出するプログラムよりも処理の優先度が低い周期起動タスクを周期的に起動させて、起動する毎に所定の情報変化が前記他方の基板に伝達し、
前記基板監視手段は、一定時間の間に前記一方の基板から前記所定の情報変化が伝達されたか否かを監視し、前記一定時間の間に前記所定の情報変化が伝達されなかった場合を、前記一方の基板のプログラムの暴走として検出することを特徴とするシステムのプログラムの暴走検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基板で発生したプログラムの暴走を検出するプログラムの暴走検出システムおよびプログラムの暴走検出方法に関する。
【背景技術】
【０００２】
プログラムの暴走を検出するものにウォッチドッグタイマがある。このウォッチドッグタイマは、プログラム内のあらゆるところにクリア命令を入れておき、一定時間内にウォッチドッグタイマがクリアされない場合に割り込みを発生させる。この割り込みの発生により、プログラムの暴走やデッドロックの発生を検出することができる（例えば、特許文献１参照）。また、この検出情報を用いてプログラムの暴走を停止することができる。
【特許文献１】特開平５−３５５３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記ウォッチドッグタイマによるプログラムの暴走検出方法では、プログラム内にクリア命令を過不足なく配置する作業が複雑になり、設計コストが高くなる。
また、機能の追加や削除などの仕様変更が発生した場合には、これらの機能追加や削除を行う箇所について再度ウォッチドッグタイマのクリア命令の要否を判断する必要があり、設計後の保守も困難になるという問題があった。
さらに、システムが複数の基板を有するものでは、プログラムの暴走検知のために、各基板ごとにウォッチドッグタイマ機能を持つ回路を設置する必要があり、必然的に基板コストが嵩む。
【０００４】
そこで、本発明の目的は、複数の基板を持つシステムにおいて、一つの基板にウォッチドッグタイマ機能を持たせるだけで、その他の基板のプログラムの暴走を簡単かつ低コストにて検出することができるプログラムの暴走検出システムおよびプログラムの暴走検出方法を提供することにある。
【課題を解決するための手段】
【０００５】
前記課題を解決することができる本発明に係るプログラムの暴走検出システムは、個別のプログラムを実行する複数の基板を有するシステムにおいて、前記複数の基板はそれぞれ基板制御手段を備え、一方の基板におけるプログラムの暴走を監視する基板監視手段を他方の基板制御手段に設け、前記一方の基板は、暴走を検出するプログラムよりも処理の優先度が低い周期起動タスクを周期的に起動させて、起動する毎に所定の情報変化が前記他方の基板に伝達し、前記基板監視手段は、一定時間の間に前記一方の基板から前記所定の情報変化が伝達されたか否かを監視し、前記一定時間の間に前記所定の情報変化が伝達されなかった場合を、前記一方の基板のプログラムの暴走として検出することを特徴とする。
【０００６】
このように構成されたプログラムの暴走検出システムにおいては、一つの基板にのみプログラムの暴走を監視する基板監視手段を設けることにより、従来のように、基板毎にウォッチドッグタイマ機能を持つ回路を設置する必要がなくなり、コストを低減することができる。
【０００７】
また、本発明に係るプログラムの暴走検出システムにおいて、前記所定の情報変化は、１ビットの情報変化であることが好ましい。
【０００８】
このように構成されたプログラムの暴走検出システムにおいては、一方の基板のプログラムがプログラムの暴走したことを、最小の情報量で簡単、迅速に他方の基板に伝達することができる。
【０００９】
また、前記プログラムの暴走が検出された場合は、システム全体の電源を遮断することが好ましい。
【００１０】
このように構成されたプログラムの暴走検出システムにおいては、システムが有する全ての基板に対し電力供給を遮断することができ、暴走したプログラムを確実に停止させてシステム全体の安全を確保することができる。
【００１１】
また、本発明に係るプログラムの暴走検出システムにおいて、前記システムは、メディアへのデータの書き込み及びメディアへのレーベル面への印刷を行うメディア処理装置であり、前記一方の基板は、キャリッジモータを駆動してメディアのレーベル位置にプリントするプリンタ基板であり、前記他方の基板は、メディアの搬送機構を制御するオートローダ基板であることが好ましい。
【００１２】
このように構成されたプログラムの暴走検出システムにおいては、メディア処理装置のプリンタ基板にウォッチドッグタイマ機能を持つ回路を設置する必要がなくなり、コストを低減することができる。
【００１３】
また、本発明に係るプログラムの暴走検出システムにおいて、前記暴走を検出するプログラムは、前記キャリッジモータを駆動するプログラムであることが好ましい。
【００１４】
このように構成されたプログラムの暴走検出システムにおいては、キャリッジモータの異常発熱およびこの発熱によるパワー制御回路部品の焼損などの事故を効果的に回避でき、システム（メディア処理装置）全体の安全を確保することができる。
【００１５】
前記課題を解決することができる本発明に係るプログラムの暴走検出方法は、個別のプログラムを実行する複数の基板を有し、前記複数の基板はそれぞれ基板制御手段を備え、一方の基板におけるプログラムの暴走を監視する基板監視手段を他方の基板制御手段に設けたシステムのプログラムの暴走検出方法であって、前記一方の基板は、暴走を検出するプログラムよりも処理の優先度が低い周期起動タスクを周期的に起動させて、起動する毎に所定の情報変化が前記他方の基板に伝達し、前記基板監視手段は、一定時間の間に前記一方の基板から前記所定の情報変化が伝達されたか否かを監視し、前記一定時間の間に前記所定の情報変化が伝達されなかった場合を、前記一方の基板のプログラムの暴走として検出することを特徴とする。
【００１６】
このようなプログラムの暴走検出方法においては、一方の基板おいてプログラムの暴走が発生した場合に、優先度の低い周期起動タスクからの他方の基板に対する情報変化が停止するため、この情報変化の停止の検知によって他方の基板側のプログラムの暴走発生を確実に検出することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明に係るプログラムの暴走検出システムの一実施形態を、図面を参照しながら説明する。図１は、プログラムの暴走検出システムのハードウェア構成を示すブロック図、図２は、前記プログラムの暴走検出システムのファームウェア構成を示すブロック図、図３は、プログラムの暴走検出システムによるプログラムの暴走検出手順を示すフローチャートである。
【００１８】
まず、本実施の形態によるプログラムの暴走検出システムの全体構成について説明する。図１は、プログラムの暴走検出システムのハードウェア構成の一例であるメディア処理装置１０を示し、ここでは、システム内の２つの基板がメディア処理装置１０を構成するオートローダ基板１およびプリンタ基板２である場合について説明する。
【００１９】
メディア処理装置１０は、ＣＤやＤＶＤ等の円盤状のメディアへのデータの書き込み及びメディアへのレーベル面への印刷を行う装置である。オートローダ基板１は、前記メディアを把持して、メディア保管部、データ書き込み用のメディアドライブ、レーベル面に印刷をするレーベルプリンタへそれぞれ搬送するためのメディア搬送制御回路およびその制御プログラムなどを備えた一方の基板である。
プリンタ基板２は、メディアのレーベル面に対して印刷する印刷制御回路およびその制御プログラムを備えた他方の基板である。
【００２０】
オートローダ基板１およびプリンタ基板２は、プリンタ基板２からオートローダ基板１に対し１ビットの情報（「１」または「０」）を伝達する信号線３を介し接続されている。オートローダ基板１は、信号線３からの情報によりプリンタ基板２の状態を監視するとともに、システム（メディア処理装置）全体の電源４を管理する。
【００２１】
プリンタ基板２は、印刷用のヘッドを備えたキャリッジを往復移動させるためのモータ（キャリッジモータ）５を駆動する。また、このプリンタ基板２は、モータの駆動中におけるプログラムの異常（プログラムの暴走）の有無を検知して、１ビットの情報（「１」または「０」）を用いてオートローダ基板１へ伝達する。オートローダ基板１およびプリンタ基板２はそれぞれハブ基板６の各ポートに集線され、外部のホストコンピュータ７の制御下で一括制御可能となっている。
【００２２】
本実施形態では、モータ５によって移動するインクヘッドがオートローダ基板１によって搬送されたメディアのレーベル上に、レーベルプリンタによってレーベル印刷を行う。このとき、プリント基板２側のモータ駆動のプログラムに異常（プログラムの暴走）が発生した場合には、プリンタ基板２は、１ビットの情報（「１」または「０」）を信号線３を通じてオートローダ基板１へ伝送する。
【００２３】
オートローダ基板１では、プリンタ基板２からの前記情報を受けて、プリンタ基板２のプログラムの暴走を検知する。オートローダ基板１は、このプログラムの暴走検知に基づいて、システム全体（メディア処理装置１０）の電源４を遮断する。このため、プリンタ基板２により駆動されていたモータ５が停止する。これにより、プログラムの暴走に基づくモータの異常回転や異常発熱を未然に回避することができる。
【００２４】
従って、従来のように、前記他方の基板ごとにウォッチドッグタイマ回路を設けなくても、前記一方の基板で発生するプログラムの暴走検知が可能になり、その検知情報によりシステムの電源を遮断することができる。該システムの電源の遮断によって、一方の基板が制御するモータの異常動作や異常発熱を未然に回避することができる。
【００２５】
また、図１において、オートローダ基板１は、ファームウェアとして後述するオートローダ基板制御手段１１を有しており、プリンタ基板２は、ファームウェアとして後述するプリンタ基板制御手段１２を有している。
以下、図２を参照して本実施の形態によるプログラムの暴走検出システムのファームウェア構成について説明する。
【００２６】
図２は、プログラムの暴走検出を実行するファームウェア構成を示すブロック図である。図２において、オートローダ基板制御手段１１は、システム電源管理用のファームウェアとともにウォッチドッグタイマとして機能するプリンタ基板監視手段１３を持ち、プリンタ基板制御手段１２はモータ割り込み１４および周期起動タスク１５を持つ。モータ割り込み１４はモータ５の駆動を行う割り込みであり、周期起動タスク１５は一定周期ごとに起動するタスクである。
【００２７】
周期起動タスク１５では、一定周期ごとに信号線３に送出する情報を変化させることで、プリンタ基板２が正規に動作していることをオートローダ基板１に対して通知する。プリンタ基板制御手段１２におけるモータ割り込み１４の処理は、周期起動タスク１５の処理に対して優先度が高い。従って、モータ１５の駆動を行う割り込みでは、この割り込みの処理が終了するまで、周期起動タスク１５の処理を行うことはできない。
【００２８】
割り込み処理によってモータ５を駆動しているときにプログラムの暴走が発生した場合には、一定周期で起動されていた優先度の低い周期起動タスクは動作を停止する。このため、周期起動タスク１５から信号線３への情報変化が停止することになり、オートローダ基板制御手段１１では、プリンタ基板監視手段１３がプリンタ基板２側のプログラムの暴走を検出する。
【００２９】
オートローダ基板１では、プリンタ基板２側のプログラムの暴走検出結果に従って、システム全体（メディア処理装置１０）の電源４を遮断し、前記モータ５が動作し続けることによる弊害、例えば過回転や異常発熱、焼損といった不安全状態を回避することができる。
【００３０】
図３は、前述のようなプログラムの暴走検出の手順を詳細に示すフローチャートである。
これによれば、プリンタ基板２で実行されるプログラムに従ってモータ割り込みの処理を実行してモータ５の駆動を行う（ステップＳ１）。
【００３１】
また、プリンタ基板２では、一定周期（例えば１秒毎）で周期起動タスクが起動され（ステップＳ２）、前回起動されたときの情報を変化（「１」から「０」、あるいは「０」から「１」に変化）させて、オートローダ基板１に対し信号線３を通じて伝達する。
【００３２】
オートローダ基板１は、プリンタ基板監視手段１３により上記の信号線３を通じて伝達される情報変化を監視している。
【００３３】
プリンタ基板監視手段１３に対し、プリンタ基板２からの情報変化が伝達されると（ステップＳ３）、この時点でプリンタ基板監視手段１３は計時をスタートさせる。次に、プリンタ基板２からの情報変化が伝達された時点で計時情報はリセットされ、再び０から計時をスタートさせる。
プログラムの暴走が発生しない間はステップＳ１〜Ｓ３の処理に続いて同様の処理をステップＳ４〜Ｓ６以降についても実行する。
【００３４】
ところが、プリンタ基板２によるモータ割り込みの処理中に、プログラムの暴走が発生した場合（ステップＳ７）は、モータ割り込みよりも優先度が低い周期起動タスク１５は実行されない。このため、オートローダ基板１に信号線３を通じて伝達される情報の変化がない（図の情報変化なし）。
【００３５】
この情報変化なしの状態が一定時間（例えば１０秒）以上継続し、プリンタ基板監視手段１３の計時情報が上記一定時間（例えば１０秒）を越えると、プリンタ基板監視手段１３は、プリンタ基板２におけるプログラムの暴走を検出したとみなす（ステップＳ８）。
【００３６】
オートローダ基板１ではこのプログラムの暴走検出結果に従い、例えばＬＥＤにより警告表示した後、前述のようにシステム全体の電源４を遮断する（ステップＳ９）。これによりプログラムの暴走によるモータ５への電流の流し放しおよびこれによるモータ５の過回転や異常発熱を未然に回避することができる。
【００３７】
このように、本実施形態のプログラムの暴走検出では、ウォッチドッグタイマ回路を用いないため基板コストを削減できる。このプログラムの暴走検出は、プリンタ基板２からオートローダ基板１への情報通知を１ビット（「１」または「０」）の情報変化として周期的に実行するだけであり、ハードウェアおよびファームウェアの実装の容易化およびファームウェア開発コストの削減を実現できる。
【００３８】
なお、本実施形態におけるプログラムの暴走検出は、モータ割り込み以外のタスクや割り込みにも対応することができる。例えば、プリンタ基板２の全てのタスク及び割り込みのプログラムの暴走を検出する場合には、プリンタ基板２の最も優先度が低いタスクでオートローダ基板１への情報通知を実施する。
【００３９】
これにより、プリンタ基板２におけるいかなる割り込み・タスクでプログラムの暴走が発生した場合においても、最も優先度が低いタスクは動作できないことになるため、最もプログラムの暴走検出レベルが高い実装をすることができる。この場合は、通常動作時も最も優先度が低いタスクが動作できるタイミングが遅いため、オートローダ基板１への情報変化の周期を長めにするといった工夫が必要である。
【００４０】
なお、上記実施形態においては、システム内で個別のプログラムを実行する複数の基板のうちの一方の基板はプリンタ基板に限定されるものではなく、他の機能を持つ基板でもかまわない。また、一方の基板は複数でもよく、その場合には各基板から他方の基板（オートローダ基板）への信号線をそれぞれ設け、各基板の周期起動タスクのうち最も長い周期起動タスクを基準としてプログラムの暴走検出を行えばよい。
【００４１】
以上のように、本発明に係る実施形態によるプログラムの暴走検出システムおよびプログラムの暴走検出方法では、システム内で個別のプログラムを実行する複数の基板のうち、一方の基板２が、モータ５を割り込みによって駆動し、一定周期ごとに起動する周期起動タスクによって他方の基板１へ伝達する情報を変化させ、前記一定周期内で前記情報が変化しなくなったとき、他方の基板１が、システム全体の電源４を遮断することとしたので、基板ごとにウォッチドッグタイマ機能を持つ回路を設けなくても、一方の基板２におけるプログラムの暴走を他方の基板１側で簡単に検出でき、これを低コストにて実現することができる。
【図面の簡単な説明】
【００４２】
【図１】本発明に係るプログラムの暴走検出システムの一実施形態を示すハードウェア構成図である。
【図２】本発明に係るプログラムの暴走検出システムの一実施形態を示すファームウェア構成図である。
【図３】本発明に係るプログラムの暴走検出方法の一実施形態を示すフローチャートである。
【符号の説明】
【００４３】
１…オートローダ基板（他方の基板）、２…プリンタ基板（一方の基板）、３…信号線、４…電源、５…モータ、１０…メディア処理装置、１１…オートローダ基板制御手段、１２…プリンタ基板制御手段、１３…プリンタ基板監視手段、１４…モータ割り込み、１５…同期起動タスク。
【図１】
2009075769.tif 000003
【図２】
2009075769.tif 000004
【図３】
2009075769.tif 000005