(57)【要約】【課題】ホットスタートの回数をカウントするカウンタを設け、ＣＰＵが自身の判断でホットスタートを繰り返すループ状態を抜け出して、コールドスタートできるようにする。【解決手段】初期設定の終了後（Ｓ１０１）、外部信号に基づきホットスタートすると判定すると（Ｓ１０２）、ＲＡＭ１３０のチェックを行い（Ｓ１０３）、ＲＡＭチェックが正常であれば、カウンタを１つインクリメントし（Ｓ１０４）、カウンタをチェックする（Ｓ１０５）。カウンタの値が１０未満であれば、リセット前の動作を継続し（Ｓ１０６）、所定時間経過後に（Ｓ１０７）、カウンタをクリアする（Ｓ１０８）。カウンタの値が１０以上であれば、ＲＡＭをオールクリアし（Ｓ１０９）、電源投入時処理を行い（Ｓ１１０）、ＲＡＭ用チェックデータを設定する（Ｓ１１１）。【選択図】図３
2007296272.tif 000002
【特許請求の範囲】
【請求項１】
遊技機の動作を制御するＣＰＵがウォッチドッグタイマ機能を内蔵するか、あるいはウォッチドッグタイマ機能を内蔵するリセット回路を接続しており、前記ウォッチドッグタイマ機能により当該ＣＰＵにリセットをかける構成を備える遊技機制御装置において、
前記ＣＰＵのリセット端子から信号を入力したときに外部信号に基づいて前記ＣＰＵをホットスタートするか前記ＣＰＵをコールドスタートするかを判定するスタート判定手段と、
前記スタート判定手段により前記ＣＰＵをホットスタートすると判定されたときにカウントアップするカウンタ手段と、
前記スタート判定手段により前記ＣＰＵをホットスタートすると判定された場合であっても、前記カウンタ手段によるカウント値が所定時間内に予め設定された値以上になったときには前記ＣＰＵをコールドスタートする起動手段と
を備えることを特徴とする遊技機制御装置。
【請求項２】
前記カウンタ手段は、前記ＣＰＵのホットスタート後に前記所定時間が正常に経過したとき、あるいは前記ＣＰＵがコールドスタートされたときにカウント値をリセットする請求項１に記載の遊技機制御装置。
【請求項３】
前記起動手段は、前記スタート判定手段により前記ＣＰＵをホットスタートすると判定された場合であっても、その後に前記ＣＰＵのＲＡＭをチェックして当該ＲＡＭのチェック結果が正常でなければ、前記ＣＰＵをコールドスタートする請求項１または２に記載の遊技機制御装置。
【請求項４】
前記外部信号が、前記ＣＰＵのリセット端子への入力信号がコールドスタート用リセット信号かそれ以外の信号かを識別する信号識別回路からの出力信号である請求項１ないし３のいずれか１項に記載の遊技機制御装置。
【請求項５】
前記外部信号が、電源電圧に基づいて前記ＣＰＵのＲＡＭが電気的に使用可能かどうかを判別する電源監視回路からの出力信号である請求項１ないし４のいずれか１項に記載の遊技機制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は遊技機制御装置に関し、特にパチンコ遊技機，スロットマシン等の遊技機の制御装置に関する。
【背景技術】
【０００２】
遊技機には多数の制御基板があり、それぞれの制御基板は、遊技機の様々な動作を制御している制御装置の一部を構成する。その電気的な制御を実行する各種基板上のＣＰＵ（Central Processing Unit）には様々な信号が入力されている。遊技機は、その特異な使用環境上（金属製の遊技球，遊技メダルの使用による高レベルノイズの発生，信号線が基板をまたぐ等）、正規の信号ではないノイズがＣＰＵの端子に入力されてしまうことがしばしばある。このようなノイズに対する対策として、各種入力端子の直前にノイズを除去するような回路が設けられることもある。また、遊技機全体としては基板，基板上の制御回路，基板上素子等の空間的配置を工夫してノイズの影響を受けないようにする、制御装置周辺の絶縁性を強化するなどの対策が施されている。しかし、基板や素子をノイズから物理的に完全に隔離することは不可能であり、ノイズというのはどのような要因によって発生するかを予測することが難しいため、上記の方法ではノイズに対する予防策が十分とは言い難い。さらには、ＣＰＵの直前にノイズを除去する回路を設けたりした場合、その回路自身がノイズに由来する信号を発生する箇所となってしまうおそれがある。
【０００３】
従来の遊技機制御装置では、リセット信号を各種基板上のＣＰＵが検出した場合、ＲＡＭ（Random Access Memory）を初期化（クリア）して再起動動作を実行する（コールドスタート）か、ＲＡＭを簡易チェックして問題のない場合は記憶されている状態を保持してそのまま継続動作を実行する（ホットスタート）か、どちらかが各種基板の用途や遊技機の機種ごとによって選択されて決定されていた。この回路構成では、ＣＰＵの検出するリセット信号が各種基板から発せられた正規のリセット信号である保証はどこにもなく、ＣＰＵはノイズ等の信号も同じリセット信号として認識してコールドスタートしてしまうおそれがある。しかし、ノイズ等の信号でＣＰＵがコールドスタートされた場合、ＲＡＭが初期化されるため、遊技機は動作を中断した形をとらねばならず、遊技者に対して不都合が生じるおそれがある。すなわち、一般機器を制御するＣＰＵにおいては、ＣＰＵの誤動作や暴走が発生しても、リセットしてコールドスタートさせることで正常復帰できればよい場合がある。もちろん、遊技機においても、ＣＰＵをリセットしてコールドスタートさせることによって、遊技機を正常な動作状態に復旧させることは可能であるが、遊技機には、ＣＰＵをリセットしてコールドスタートさせることが望ましくないという事情がある。詳しくは、遊技機の各種基板では、抽選情報や払出情報等の遊技中の情報などがＲＡＭ上に記憶されており、ＲＡＭ上の遊技中の情報を初期化（クリア）してＣＰＵをコールドスタートすると、ＲＡＭ上の遊技中の情報が消失して遊技を最初からやり直すことになり、遊技に支障をきたすとともに遊技者の興趣を著しく削ぐ恐れがあるという問題があった。また、場合によっては賠償問題にもなりかねないという問題もあった。
【０００４】
そこで、本願発明者は、ＣＰＵのリセット端子に信号が入力されたとき、ＣＰＵをホットスタートさせるかコールドスタートさせるかを判定するホット／コールド判定回路に関する技術をすでに提案した（特許文献１参照）。この技術を採用することで、ＣＰＵのリセット端子に信号が入力されたとき、その信号が正規のリセット信号なのかノイズ等の信号なのかを判定し、正規のリセット信号が入力された場合にのみＲＡＭを初期化（クリア）してＣＰＵをコールドスタートさせ、ノイズ等の他の信号が入力された場合にはＲＡＭを初期化（クリア）することなしにＣＰＵをホットスタートさせることができる。
【０００５】
しかしながら、従来の遊技機制御装置では、ホット／コールド判定回路を採用した場合でも、ホット／コールド判定に用いるＲＡＭチェックでは時間的な制約等の関係で部分的な簡易チェックしか行っていないので、ノイズによるリセットがＲＡＭ書き換え中などのタイミングで起こってしまうと、ＣＰＵが誤動作や暴走を起こしてしまい、ホット／コールド判定回路からの入力信号がずっとホットスタートを示すようになってしまい、ソフトウェアがループ状態に陥ってしまう可能性があった。つまり、ホットスタートと判断してもＣＰＵが誤動作や暴走している可能性があり、ソフトウェアがループ状態に陥っているという可能性を完全に払拭することができないという問題があった。
【０００６】
このようなホット／コールド判定回路を採用した場合の不具合を解消するために、ＣＰＵにウォッチドッグタイマ機能を内蔵するか、あるいはウォッチドッグタイマ機能を内蔵するリセット用集積回路（以下、ＷＤＴ内蔵リセットＩＣ（Integrated Circuit）と略記する）を接続し、ウォッチドッグタイマ機能によりＣＰＵの誤動作や暴走を検出する構成を採用することができる。ウォッチドッグタイマ機能は、所定時間毎にＣＰＵ内のソフトウェアに割込みをかけ、正常な状態では常にＣＰＵからの解除パルスによりリセットされるが、ＣＰＵの誤動作や暴走の場合等には、ＣＰＵから解除パルスが出力されなくなり、ウォッチドッグタイマ機能がＣＰＵをリセットするようにする。
【特許文献１】特許第３７５６４０３号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、既述したように、遊技機にはＣＰＵにＲＡＭ上の遊技中の情報が初期化されるコールドスタートを極力実行させないという要請があり、ＣＰＵにウォッチドッグタイマ機能を内蔵するか、あるいはＷＤＴ内蔵リセットＩＣを接続する場合であっても、ＣＰＵをなるべくホットスタートするようにしなければならない。このためには、各種基板からの正規のリセット信号を数十ミリ秒（ｍｓ）の長パルス幅の信号とすることによりホット／コールド判定回路で検出させてＣＰＵをコールドスタートさせる一方、ＷＤＴ内蔵リセットＩＣからのリセット信号をノイズと同等の数マイクロ秒（μｍ）の短パルス幅の信号とすることによりホット／コールド判定回路で検出させずにＣＰＵをホットスタートさせるようにすることができる。
【０００８】
しかし、従来の遊技機制御装置では、ホット／コールド判定回路を接続するＣＰＵにＷＤＴ内蔵リセットＩＣを接続するようにした場合に、ＷＤＴ内蔵リセットＩＣからのリセット信号を短パルス幅のホットスタート用リセット信号としたとしても、ＣＰＵが誤動作や暴走時に解除パルスを出力することができなくなると、ＷＤＴ内蔵リセットＩＣが短パルス幅のホットスタート用リセット信号を繰り返し出力することになるので、ホットスタートが繰り返されるループ状態に陥ることになり、ＣＰＵ自身の判断でループ状態を抜け出してコールドスタートすることができないという問題点がある。
【０００９】
本発明の目的は、このような事情に鑑み、ホットスタートの回数をカウントするカウンタを設け、ＣＰＵ自身の判断でホットスタートを繰り返すループ状態を抜け出して、コールドスタートすることができるようにした遊技機制御装置を提供することにある。
【課題を解決するための手段及び発明の効果】
【００１０】
請求項１に記載の遊技機制御装置は、遊技機の動作を制御するＣＰＵがウォッチドッグタイマ機能を内蔵するか、あるいはウォッチドッグタイマ機能を内蔵するリセット回路を接続しており、前記ウォッチドッグタイマ機能により当該ＣＰＵにリセットをかける構成を備える遊技機制御装置において、前記ＣＰＵのリセット端子から信号を入力したときに外部信号に基づいて前記ＣＰＵをホットスタートするか前記ＣＰＵをコールドスタートするかを判定するスタート判定手段と、前記スタート判定手段により前記ＣＰＵをホットスタートすると判定されたときにカウントアップするカウンタ手段と、前記スタート判定手段により前記ＣＰＵをホットスタートすると判定された場合であっても、前記カウンタ手段によるカウント値が所定時間内に予め設定された値以上になったときには前記ＣＰＵをコールドスタートする起動手段とを備えることを特徴とする。請求項１に記載の遊技機制御装置によれば、ＣＰＵをホットスタートすると判定された場合であっても、ホットスタートの回数をカウントするカウンタのカウント値がある時間内に予め設定された値以上になったときにはＣＰＵをコールドスタートするようにしたので、ＣＰＵの誤動作や暴走によりソフトウェアがループ状態に陥ったとしても、カウンタのカウント値がある時間内に予め設定された値以上になることにより、ループ状態を抜け出してコールドスタートすることができる。つまり、遊技機においては、よほどのことがない限り、ＣＰＵをコールドスタートすべきでないという要請があるので、ＣＰＵは、リセット信号（ノイズを含む）を１回，２回受信しただけではコールドスタートしないが、リセット信号（ノイズを含む）を所定時間内に所定回数以上受信したときには、ＣＰＵもホットスタートすることを諦めて、ＣＰＵをコールドスタートすることになる。このような仕組みにより、所定時間内に所定回数以上のノイズを受けた場合も、ＣＰＵをコールドスタートすることになるが、これ自体は十分異常な状態であるのでＣＰＵをコールドスタートすることはむしろ望ましい。なお、電源制御基板等の各種基板が本当の電源低下（ノイズレベルの瞬時停電は無視するように設計されている）等を検出し、システムリセット（コールドスタート）する必要があるときなどは、長パルス幅のコールドスタート用リセット信号を出力するため、ＣＰＵはコールドスタートすることになる。
【００１１】
請求項２に記載の遊技機制御装置は、請求項１に記載の遊技機制御装置において、前記カウンタ手段は、前記ＣＰＵのホットスタート後に前記所定時間が正常に経過したとき、あるいは前記ＣＰＵがコールドスタートされたときにカウント値をリセットすることを特徴とする。請求項２に記載の遊技機制御装置によれば、ＣＰＵのホットスタート後に所定時間が正常に経過したとき、あるいはＣＰＵがコールドスタートされたときにカウント値をリセットするので、定期的にコールドスタートしてしまうことを回避できる。
【００１２】
請求項３に記載の遊技機制御装置は、請求項１または２に記載の遊技機制御装置において、前記起動手段は、前記スタート判定手段により前記ＣＰＵをホットスタートすると判定された場合であっても、その後に前記ＣＰＵのＲＡＭをチェックして当該ＲＡＭのチェック結果が正常でなければ、前記ＣＰＵをコールドスタートすることを特徴とする。請求項３に記載の遊技機制御装置によれば、ＲＡＭの異常時にはＣＰＵをホットスタートすることが危険であるので、ＣＰＵをコールドスタートすることにより、ＣＰＵのホットスタートによる誤動作や暴走を未然に防止することができる。
【００１３】
請求項４に記載の遊技機制御装置は、請求項１ないし３のいずれか１項に記載の遊技機制御装置において、前記外部信号が、前記ＣＰＵのリセット端子への入力信号がコールドスタート用リセット信号かそれ以外の信号かを識別する信号識別回路からの出力信号であることを特徴とする。請求項４に記載の遊技機制御装置によれば、信号識別回路からの出力信号に基づいてＣＰＵのリセット端子への入力信号がコールドスタート用リセット信号かそれ以外の信号かを判定するようにしたので、入力信号がコールドスタート用リセット信号の場合にはコールドスタートし、入力信号がホットスタート用リセット信号やノイズの場合にはＣＰＵをホットスタートすることができる。
【００１４】
請求項５に記載の遊技機制御装置は、請求項１ないし４のいずれか１項に記載の遊技機制御装置において、前記外部信号が、電源電圧に基づいて前記ＣＰＵのＲＡＭが電気的に使用可能かどうかを判別する電源監視回路からの出力信号であることを特徴とする。請求項５に記載の遊技機制御装置によれば、電源監視回路からの出力信号に基づいてＣＰＵのＲＡＭが電気的に使用可能であるかどうかを判定するようにしたので、電源電圧が所定電圧範囲外である場合にはＲＡＭが電気的に使用できないためにＣＰＵをコールドスタートし、電源電圧が所定電圧範囲である場合にはＲＡＭが電気的に使用できるためにＣＰＵをホットスタートすることができる。
【００１５】
また、前記外部信号が、前記ＣＰＵのリセット端子への入力信号がコールドスタート用リセット信号かそれ以外の信号かを識別する信号識別回路および電源電圧に基づいて前記ＣＰＵのＲＡＭが電気的に使用可能かどうかを判別する電源監視回路からなるホット／コールド判定回路からの出力信号であるようにすれば、ホット／コールド判定回路からの出力信号に基づいてＣＰＵをホットスタートするかＣＰＵをコールドスタートするかを判定するようにし、ホット／コールド判定回路がホットスタートを指示している場合にはＣＰＵをホットスタートし、ホット／コールド判定回路がコールドスタートを指示している場合にはＣＰＵをコールドスタートすることができる。
【発明を実施するための最良の形態】
【００１６】
ＣＰＵが誤動作や暴走しているときにリセット時に確実にコールドスタートとするという目的を、ＣＰＵをホットスタートすると判定されたときにカウンタをカウントアップし、ＣＰＵをホットスタートすると判定された場合であっても、カウント値がある時間内に予め設定された値以上になったときにはＣＰＵをコールドスタートすることにより実現した。
【００１７】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
【実施例１】
【００１８】
遊技機制御装置は、役割を異にする多数の制御基板から構成されるものであるが、本明細書中ではそれぞれの基板を区別することはしない。本発明は、それら基板上にあるＣＰＵのいずれにも適用できるためである。図に示さないＣＰＵ周辺の素子や回路については従来通りであるため割愛する。
【００１９】
図１は、本発明の実施例１に係る遊技機制御装置の構成を示す回路ブロック図である。本実施例１に係る遊技機制御装置は、ＣＰＵ１００と、ＣＰＵ１００に接続されたＷＤＴ内蔵リセットＩＣ２００と、ＣＰＵ１００の前段に接続されたホット／コールド判定回路３００と、遊技機全般の電源を監視する電源監視基板等の各種基板から出力されるリセット信号（ノイズを含む）とＷＤＴ内蔵リセットＩＣ２００から出力されるリセット信号とを論理和するオア回路４００とから、その主要部が構成されている。なお、電源監視基板等の各種基板から出力されるリセット信号は、信号識別回路３１０で検出可能なように数十ミリ秒の長パルス幅を有する一方、ＷＤＴ内蔵リセットＩＣ２００から出力されるリセット信号は、信号識別回路３１０で検出されないようにノイズと同レベルの数マイクロ秒（μｓ）程度の短パルス幅に設定されている。以下、電源監視基板等の各種基板から出力されるリセット信号をコールドスタート用リセット信号といい、ＷＤＴ内蔵リセットＩＣから出力されるリセット信号をホットスタート用リセット信号ということにより、両者を区別する。
【００２０】
ＣＰＵ１００は、レジスタ群１１０と、ＲＯＭ１２０と、ＲＡＭ１３０とを内蔵し、電源端子Ｖｃｃ，入力ポートＨ／Ｃ，出力ポートＰ１，およびリセット端子ＲＥＳＥＴを備えている。電源端子Ｖｃｃには、電源電圧Ｖｃｃ（電源端子と同一符号を付す）が印加されている。入力ポートＨ／Ｃは、ホット／コールド判定回路３００に接続されている。出力ポートＰ１は、ＷＤＴ内蔵リセットＩＣ２００に接続されている。リセット端子ＲＥＳＥＴは、オア回路４００の出力端子に接続されている。なお、本実施例１では、ＣＰＵ１００内部にＲＯＭ１２０およびＲＡＭ１３０が内蔵されているものを使用したが、ＣＰＵ１００とＲＯＭ１２０およびＲＡＭ１３０とが一体にパッケージされている必要性はかならずしもない。
【００２１】
図２を参照すると、レジスタ群１１０は、データレジスタ，アドレスレジスタ，ステータスレジスタ等の各種レジスタＲ１〜Ｒｎから構成されている。また、ＲＯＭ１２０には、遊技機制御装置を制御するための各種プログラムが格納されており、特にＣＰＵ１００の出力ポートＰ１からＷＤＴ内蔵リセットＩＣ２００に定期的に解除パルスを出力するメインプログラム１２１と、リセット時に起動されるリセット処理ルーチン１２２とが格納されている。さらに、ＲＡＭ１３０には、外部信号であるホット／コールド判定信号およびＲＡＭチェック結果に基づいてＣＰＵ１００をホットスタートすると判定されたときにカウントアップするカウンタ１３１が設けられている。さらにまた、ＲＡＭ１３０の特定アドレス（例えば、先頭アドレス，中間アドレス，末尾アドレス等）には、特定のＲＡＭチェック用データ値（例えば、１６進数の“ＡＡ５５”）が設定される。特定のＲＡＭチェック用データ値は、コールドスタート時にＲＡＭ１３０に設定され、ＲＡＭチェック時にＲＡＭ１３０上のデータ値が正しいかどうかをチェックするために使用される。したがって、ここでいうＲＡＭチェックは、チェック時間の短縮のために、ＲＡＭ１３０の特定アドレスのデータ値が特定のＲＡＭチェック用データ値と一致するかどうかを検証することによって行われる簡易なチェックであり、完全性を期しがたいものである。しかし、ＲＡＭ１３０の特定アドレスは、ＲＯＭ１２０の各種プログラムからは通常はアクセスされないアドレスが選定されており、ＲＡＭチェックの正確性は高いものである。
【００２２】
図３は、リセット処理ルーチン１２２によるリセット処理を示すフローチャートである。リセット処理ルーチン１２２は、ホットスタートのときには、ＲＡＭ１３０をオールクリア（初期化）することなしに継続動作を開始し、コールドスタートのときには、ＲＡＭ１３０をオールクリア（初期化）して再起動動作を開始するソフトウェア構造となっている。また、外部信号に基づいてＣＰＵ１００をホットスタートすると判定された場合であっても、判定後にＲＡＭチェックを実行してその結果が正常でなければ、ＣＰＵ１００をコールドスタートするソフトウェア構造となっている。さらに、外部信号であるホット／コールド判定信号およびＲＡＭチェック結果に基づいてＣＰＵ１００をホットスタートすると判定されたときにカウントアップするカウンタ１３１を備え、ＣＰＵ１００をホットスタートすると判定された場合であっても、カウンタ１３１のカウント値が所定時間内に予め設定された値以上になったときにはＣＰＵ１００をコールドスタートするソフトウェア構造となっている。図３のステップＳ１０２は本発明のスタート判定手段を、ステップＳ１０３は本発明のＲＡＭチェック手段を、ステップＳ１０４〜Ｓ１０５はカウンタ手段を、ステップＳ１０６〜Ｓ１１１は本発明の起動手段をそれぞれ構成する。
【００２３】
ホット/コールド判定回路３００を利用した場合のホットスタートにおいても、ＣＰＵ１００の誤動作や暴走の危険は完全には払拭できない。その理由は、ホット/コールド判定に用いるＲＡＭチェックでは、すべてのＲＡＭ１３０を確認できるわけではなく、部分的なチェックしかできていないためである。詳しくは、ＲＡＭ１３０の特定アドレスに格納されたデータ値が、ＲＡＭチェック用データ値（例えば、１６進数の“ＡＡ５５”）と一致するかどうかを検証し、一致すればＲＡＭチェックが正常（ＯＫ）であるとし、一致しなければＲＡＭチェックが異常（ＮＧ）であるとする。この特定アドレスに格納されたデータ値とＲＡＭチェック用データ値との一致検証は、部分的なチェック方法であるので、ＲＡＭ１３０が異常であってもたまたま一致検証で正常と判断してしまう可能性がある。ノイズによるリセットがＲＡＭ１３０の書き換え中などのタイミングで起こった場合、ＣＰＵ１００が誤動作や暴走を起こしてしまう。その危険を回避するために、ＣＰＵ１００が誤動作や暴走状態に陥った時にＣＰＵ１００に対してリセットをかけるウォッチドッグタイマ機能を持ったＷＤＴ内蔵リセットＩＣ２００を使用する。これを利用し、ＣＰＵ１００の誤動作や暴走時には確実にコールドスタートするような機構をもつソフトウェアを構築する。具体的には、図３のフローチャートのように、ホットスタート時にカウントアップするタイマを設け、その後に正常動作をある所定時間行えればタイマをクリアし、それが、その所定時間内にあらかじめ定めたカウント値を上回る場合にＣＰＵ１００をコールドスタートさせるソフトウェアである。これは、ＣＰＵ１００が誤動作や暴走状態に陥ってホットスタートしても改善されない場合であり、この構成をとることでその状態を検出することが可能になる。すなわち、ホットスタート時のＣＰＵ１００の誤動作や暴走を回避することができる。
【００２４】
ＲＡＭ１３０は、電源電圧Ｖｃｃが所定のスレショルド以下に下がった時、記憶されているデータを保持できなくなる。仮に電源電圧Ｖｃｃが所定のスレショルド以下に降下したときや、ＣＰＵ１００が正常に作動していない可能性があるときに、ＣＰＵ１００にリセット信号が入力されると、ＣＰＵ１００は、ＲＡＭ１３０上のデータが電気的に保持されているのかいないのかを判断する。従来は、ＣＰＵ１００のリセットに基づいてホットスタートとするかコールドスタートとするかが予めプログラムされていたのに対し、本発明では、リセット端子ＲＥＳＥＴとは別に設けられた、ホットスタートとするかコールドスタートとするかを判別するための入力ポートＨ／Ｃの入力状態であるホット／コールド判定信号を検出して、その検出結果を基にＲＡＭ１３０をオールクリア（初期化）するかしないかを選択して実行する。
【００２５】
ＷＤＴ内蔵リセットＩＣ２００は、ＷＤＴ機能（図示せず）を内蔵しており、ＣＰＵ１００から解除パルスを入力しない限り、所定のクロック監視時間ごとにホットスタート用リセット信号を発生して出力するものである。詳しくは、ＣＰＵ１００のメインプログラム１２１が正常に動作していれば所定時間内に通過する位置（ポイント）は予め分かっているので、そのような位置（ポイント）でＷＤＴ内蔵リセットＩＣ２００への解除パルスを出力ポートＰ１から出力するようにプログラミングしておく。ＣＰＵ１００が誤動作や暴走して所定時間（クロック監視時間）が経過してもＷＤＴ機能をリセットできない場合には、ＷＤＴ機能のタイマはオーバーフローするので、ＷＤＴ内蔵リセットＩＣ２００は、ホットスタート用リセット信号をオア回路４００を経由してＣＰＵ１００のリセット端子ＲＥＳＥＴに出力することによりＣＰＵ１００をリセットする。
【００２６】
ホット／コールド判定回路３００は、２つの作用を有するものであり、あえて回路を２つの部分に分けて考えるとすると、一方は入力信号が長パルス幅のコールドスタート用リセット信号であるか、短パルス幅のホットスタート用リセット信号やノイズであるかを識別する信号識別回路３１０と、他方はＲＡＭ１３０が電気的に使用可能かどうかを判別する電源監視回路３２０とすることができる。
【００２７】
信号識別回路３１０は、ＣＰＵ１００のリセット端子ＲＥＳＥＴがＬｏｗレベル（以下、Ｌレベルと略記する）のときに、コールドスタート用リセット信号の入力を検出する。すなわち、信号としてはＬレベルがアクティブレベルである。ただし、端子によってはＨｉｇｈレベル（以下、Ｈレベルと略記する）がアクティブレベルである場合もある。
【００２８】
電源監視回路３２０は、電源電圧Ｖｃｃが所定のスレショルド以下、例えば、ＲＡＭ１３０が電気的に保証されなくなるような電圧になったとき、その変化を反映したレベルのホット／コールド判定信号をＣＰＵ１００に送出する。
【００２９】
図４（ａ）は、ホット／コールド判定回路３００の具体的な回路例を示す図である。このホット／コールド判定回路３００は、インバータシュミットトリガ回路１０，抵抗１１，およびコンデンサ１２からなる信号識別回路３１０と、抵抗１１，コンデンサ１２，およびダイオード１３からなる電源監視回路３２０とを、抵抗１１およびコンデンサ１２でなるＣＲ時定数回路の部分を共通のものとして１つの回路にまとめたものである。図４（ａ）のうち、信号識別回路３１０および電圧監視回路３２０の必須の部分を取り出し、詳しく記載したのが図４（ｂ）である。図４（ｂ）にはＣＭＯＳ（Complementary Metal Oxide Semiconductor）インバータ１０ａが示されるが、この部分は、実際にはインバータシュミットトリガ回路１０の一部分である。電源監視回路３２０におけるコンデンサ１２の充電路を、ＣＭＯＳインバータ１０ａ内のｐＭＯＳ側の導通路に確保している。なお、図４（ａ）および（ｂ）では、基本的にＣＲ時定数回路とＣＭＯＳインバータ１０aとの構成でホットスタート用リセット信号やノイズを除去することとしたが、タイマＩＣ，ローパスフィルタ，バイポーラトランジスタ等を応用してホット／コールド判定回路３００を構成するようにしてもよい。
【００３０】
ＣＭＯＳインバータ１０ａは、入力電位がｐＭＯＳのソースに印加される電源電圧ＶｃｃレベルのときにｎＭＯＳを導通させてＧＮＤレベルを出力させ、入力電位がＧＮＤレベルのときにｐＭＯＳを導通させて電源電圧Ｖｃｃレベルを出力させる。よって、信号識別回路３１０にコールドスタート用リセット信号が入っていない通常時（ＣＰＵ１００のリセット端子ＲＥＳＥＴはＨレベル）は、ＣＭＯＳインバータ１０ａにはインバータシュミットトリガ回路１０で一度反転させたＬレベル（ＧＮＤレベル）が入力されるために電源電圧Ｖｃｃが出力されることになる。電源電圧Ｖｃｃが出力されている間は、コンデンサ１２に電荷が充電される。抵抗１１が挿入してあるためにＣＲ時定数回路の構成となり、時定数がここで決定される。
【００３１】
オア回路４００は、一方の入力端子に遊技機全般の電源を監視する電源監視基板等の各種基板からコールドスタート用リセット信号（ノイズを含む）が入力され、他方の入力端子にＷＤＴ内蔵リセットＩＣ２００からのホットスタート用リセット信号が入力されている。また、オア回路４００の出力端子は、ホット／コールド判定回路３００の入力端子に接続されているとともに、ＣＰＵ１００のリセット端子ＲＥＳＥＴに接続されている。
【００３２】
次に、このように構成された本実施例１に係る遊技機制御装置の動作について説明する。
【００３３】
例えば、遊技機全般の電源を監視する電源監視基板等の各種基板からコールドスタート用リセット信号またはノイズ（Ｌレベルの信号）が入力されるか，またはＣＰＵ１００の動作を監視するＷＤＴ内蔵リセットＩＣ２００でホットスタート用リセット信号が発生すると、コールドスタート用リセット信号，ホットスタート用リセット信号またはノイズはＣＰＵ１００のリセット端子ＲＥＳＥＴおよびホット／コールド判定回路３００に同時に入力される。
【００３４】
ＣＰＵ１００のリセット端子ＲＥＳＥＴに入力された信号は、コールドスタート用リセット信号であるか，ホットスタート用リセット信号やノイズであるかにかかかわらず、ＣＰＵ１００をリセットする。これにより、ＣＰＵ１００のレジスタ群１１０に一時的に記憶されている設定値等は揮発してクリアされる。また、ＣＰＵ１００のリセット用出力ポートＰｎを含む入出力ポートの値は不定となる。
【００３５】
次に、ＣＰＵ１００は、リセット処理ルーチン１２２の先頭アドレスにプログラムカウンタを設定して、リセット処理ルーチン１２２の実行を開始する。
【００３６】
リセット処理ルーチン１２２の実行が開始されると、ＣＰＵ１００は、まず、初期設定を行う（図３のＳ１０１）。例えば、入出力ポートの値やポート方向レジスタの設定等を順次行う。
【００３７】
一方、ＣＰＵ１００のリセット端子ＲＥＳＥＴに入力されると同時にホット／コールド判定回路３００に入力された信号は、インバータシュミットトリガ回路１０で一度反転させるためにＨレベルで入力される。Ｈレベルの信号が入力されたとき、ＣＭＯＳインバータ１０ａは、導通路を反転させてＧＮＤレベルを出力する。すると、それまでコンデンサ１２に蓄積されていた電荷は、ＣＭＯＳインバータ１０ａのＧＮＤに放電され始める。ここまでは、入力信号がコールドスタート用リセット信号であっても、ホットスタート用リセット信号やノイズであっても同様である。ホットスタート用リセット信号やノイズのＬレベル持続時間は、コールドスタート用リセット信号と比較して非常に短い。場合にもよるがミリ秒にも及ばないことがほとんどであり、１０ミリ秒以上持続することはほとんどありえない。それに対し、コールドスタート用リセット信号は、数十ミリ秒にわたって出力させることも容易である。
【００３８】
ＣＭＯＳインバータ１０ａに入力される信号のＨレベル持続時間が、ＣＲ時定数回路の時定数よりも長い場合、すなわちコールドスタート用リセット信号である場合には、コンデンサ１２が十分に放電され、コンデンサ１２の電極電位で決まる信号レベルはＬレベルに反転する。よって、波形整形のためのインバータシュミットトリガ回路１０を挟んで、ＣＰＵ１００の入力ポートＨ／ＣにＬレベルのコールドスタート用リセット信号（ホット／コールド判定信号）を伝えることができる。すなわち、信号識別回路３１０を経由してＣＰＵ１００の入力ポートＨ／Ｃに入力されるコールドスタート用リセット信号は、ＣＲ時定数回路の時定数だけ遅延されることになる。
【００３９】
ホット／コールド判定回路３００に入力された信号がホットスタート用リセット信号やノイズであった場合には、コンデンサ１２の電荷が十分に放電されないうちに、ＣＭＯＳインバータ１０ａの導通路が切り替わってしまい、充電が再開される。すなわち、コンデンサ１２の電極電位がＨレベルのまま維持されてしまうため、ＣＰＵ１００の入力ポートＨ／ＣにＬレベルの信号を出力することができない。
【００４０】
他方、コンデンサ１２には、電源電圧Ｖｃｃが印加されるため、電源電圧Ｖｃｃが低下するなどの異常がない限り、コンデンサ１２の電極電位によって決まる入力ポートＨ／Ｃの入力信号は、Ｈレベルに保たれる。ところが、電源電圧Ｖｃｃが瞬間的にでも０Ｖに低下してしまった場合、コンデンサ１２に蓄積されていた電荷は、ダイオード１３を経て電源部へ逆流するなどして、瞬時に放電される。コンデンサ１２の電極電位は直ちにＬレベルに切り替わるので、それに伴いＬレベルが出力され、ＣＰＵ１００の入力ポートＨ／ＣもＬレベルに変化する。電源電圧Ｖｃｃが正常な値に戻ると、コンデンサ１２が充電され始めるが（正確にはコンデンサ１２の電極電位が電源電圧Ｖｃｃよりも小さくなった時）、抵抗１１を挟んだＣＲ時定数回路の構成となっているため、コンデンサ１２の電極電位がインバータシュミットトリガ回路１０のスレショルドで規定されるＨレベルに変化するには、予め定めた時定数以上の時間が必要である。
【００４１】
すなわち、電源監視回路３２０からＨレベルが出力されて、ＣＰＵ１００の入力ポートＨ／ＣがＨレベルになるには、電源電圧Ｖｃｃが復帰した時点よりも後である。その間に、ＣＰＵ１００が入力ポートＨ／Ｃの入力状態を検出するようにすれば、ＲＡＭ１３０が電気的に保持されていたか否かの履歴情報が得られることになり、その結果に基づいてＲＡＭ１３０を初期化するか否かを選択できる。また、電源電圧Ｖｃｃが瞬間的に降下したときに限らず、コールドスタート用リセット信号，ホットスタート用リセット信号やノイズが入力されてＣＰＵ１００がリセット処理を開始したときにも、その履歴に基づいて処理を実行することは有効であり、誤作動を回避できる確率は確実に向上する。
【００４２】
電源電圧Ｖｃｃが０Ｖに低下し、再び正常値まで戻った時のＣＰＵ１００のリセット端子ＲＥＳＥＴおよび入力ポートＨ／Ｃの入力状態では、電源電圧Ｖｃｃは復帰し、ＣＰＵ１００はリセット処理を開始して入力ポートＨ／Ｃの入力状態を検出する。この時点では、入力ポートＨ／Ｃの入力状態はＬレベルのままである。この後、所定の時間が経過すると、電源監視回路３２０の出力がＨレベルに変化する。この所定の時間、すなわち電源電圧Ｖｃｃの復帰後、入力ポートＨ／Ｃの入力状態がＨレベルに変化するまでにかかる時間は、ＣＰＵ１００の再起動に必要な時間よりも長くなければ意味がないことに注意されたい。それを考慮してＣＲ時定数回路を構成する。
【００４３】
ＣＰＵ１００のリセット処理に戻ると、初期設定の終了後、ＣＰＵ１００は、ホット／コールド判定回路３００から出力されるホット／コールド判定信号（入力ポートＨ／Ｃ）に基づき、ＣＰＵ１００をホットスタートするかＣＰＵ１００をコールドスタートするかを判定する（図３のＳ１０２）。入力ポートＨ／ＣがＨレベルであれば（図３のＳ１０２：Ｈｉｇｈ）、ＣＰＵ１００をホットスタートすると判定し、入力ポートＨ／ＣがＬレベルであれば（図３のＳ１０２：Ｌｏｗ）、ＣＰＵ１００をコールドスタートすると判定する。
【００４４】
ＣＰＵ１００をホットスタートすると判定された場合には（図３のＳ１０４：Ｈｉｇｈ）、ＣＰＵ１００は、さらにＲＡＭ１３０のチェックを行う（図３のＳ１０３）。詳しくは、ＲＡＭ１３０の特定アドレスに格納されたデータ値が、ＲＡＭチェック用データ値（例えば、１６進数の“ＡＡ５５”）と一致するかどうかを検証し、一致すればＲＡＭチェックが正常（ＯＫ）であるとし、一致しなければＲＡＭチェックが異常（ＮＧ）であるとする。
【００４５】
ＲＡＭチェックが正常の場合（図３のＳ１０３：ＯＫ）、ＣＰＵ１００は、カウンタ１３１を１つインクリメントし（図３のＳ１０４）、カウンタ１３１をチェックする（図３のＳ１０５）。カウンタ１３１の値が１０未満であれば、ＣＰＵ１００は、ホットスタートを行う。詳しくは、ＣＰＵ１００は、ＲＡＭ１３０をクリアすることなく、ＲＡＭ１３０に保持されたリセット時のプログラムカウンタが示す位置（ポイント）から動作を再開し、リセット前の動作を継続し（図３のＳ１０６）、所定時間経過後に（図３のＳ１０７）、カウンタ１３１をクリアする（図３のＳ１０８）。なお、「所定時間」と記載したが、実際の遊技機制御装置では、専用のタイマを持たせず、１回の図柄変動が終了するごとにカウンタをリセットするように設計することができる。つまり、「所定時間」は固定の時間である必要はない。
【００４６】
ＣＰＵ１００をコールドスタートすると判定された場合（図３のＳ１０４：Ｌｏｗ）、ＲＡＭチェックが異常の場合（図３のＳ１０４：ＮＧ）、またはカウンタ１３１の値が１０以上である場合には（図３のＳ１０５：ＮＧ）、ＣＰＵ１００は、コールドスタートを行う。詳しくは、ＣＰＵ１００は、ＲＡＭ１３０をオールクリア（初期化）し（図３のＳ１０９）、ＲＯＭ１２０の各種プログラムおよびデータのＲＡＭ１３０へのロード等の電源投入時の処理を行う（図３のＳ１１０）。ＲＡＭ１３０のすべてのデータがクリアされることにより、ＣＰＵ１００は初期状態に戻ることになる。続いて、ＣＰＵ１００は、ＲＡＭチェック用データ値（例えば、１６進数の“ＡＡ５５”）をＲＡＭ１３０の特定アドレスに設定する（図３のＳ１１１）。この後、ＣＰＵ１００は、プログラムカウンタをメインプログラム１２１の先頭アドレスに設定し、初期状態から動作を開始する。
【００４７】
実施例１によれば、ＣＰＵ１００をホットスタートすると判定された場合であっても、カウンタのカウント値が所定時間内に予め設定された値以上になったときにはＣＰＵ１００をコールドスタートするようにしたので、ＣＰＵ１００の誤動作や暴走によりソフトウェアがループ状態に陥ったとしても、所定時間内にカウント値が予め設定された値以上になることにより、ループ状態を抜け出してＣＰＵ１００をコールドスタートさせることができる。
【実施例２】
【００４８】
図５は、本発明の実施例２に係る遊技機用制御装置の回路図を示す。図１に示した実施例１に係る遊技機用制御装置では、ＷＤＴ内蔵リセットＩＣ２００を利用してホットスタート用リセット信号を発生するようにしていたが、実施例２に係る遊技機用制御装置では、ＷＤＴ１４０を内蔵するＣＰＵ１００を使用してＷＤＴ内蔵リセットＩＣ２００およびオア回路４００を不要としている。したがって、その他の部分は、実施例１に係る遊技機用制御装置と同様に構成されているので、詳しい説明を割愛する。
【００４９】
このように構成された実施例２に係る遊技機用制御装置では、ＣＰＵ１００のリセット端子ＲＥＳＥＴにコールドスタート用リセット信号（ノイズを含む）が入力されることを契機としてばかりでなく、メインプログラム１２１からＷＤＴ１４０がカウント値のカウントアップを解除されずにカウント値が所定の値までカウントアップされたことを契機としても、ＣＰＵ１００にリセットがかかることになる。ただし、このリセットの時点では、ＣＰＵ１００のポートＨ／ＣはＨレベルであるので、図３のステップＳ１０２の判定はＨｉｇｈで抜けることになる。このため、図３に示したリセット処理ルーチン１２２のリセット処理が、実施例２に係る遊技機用制御装置にも全く同様に適用可能である。
【００５０】
よって、実施例２に係る遊技機用制御装置においても、実施例１に係る遊技機用制御装置と同様の効果が得られる。すなわち、ＣＰＵ１００をホットスタートすると判定された場合であっても、カウント値が所定時間内に予め設定された値以上になったときにはＣＰＵ１００をコールドスタートするようにしたので、ＣＰＵの誤動作や暴走によりソフトウェアがループ状態に陥ったとしても、所定時間内にカウント値が予め設定された値以上になることにより、ループ状態を抜け出してＣＰＵ１００をコールドスタートさせることができる。
【００５１】
なお、上記各実施例では、ＣＰＵ１００の入力ポートＨ／Ｃにホット／コールド判定信号を入力する回路をホット／コールド判定回路３００としたが、信号識別回路３１０または電源監視回路３２０のいずれか一方であってもよいことはいうまでもない。
【００５２】
また、上記各実施例では、ＣＰＵ１００のリセット端子ＲＥＳＥＴがＬアクティブな場合を例にとって説明したが、リセット端子ＲＥＳＥＴがＨアクティブであっても、本発明が同様に適用できることはいうまでもない。
【００５３】
さらに、上記各実施例では、リセット信号に基づいてリセット処理を開始させる場合について説明したが、リセット信号以外の信号、例えばインターラプト信号やノンマスカブルインターラプト信号等の信号に基づいてリセット処理を開始させる場合にも、本発明を同様に適用できることはいうまでもない。
【００５４】
以上、本発明の各実施例を説明したが、これらはあくまでも例示にすぎず、本発明はこれらに限定されるものではなく、特許請求の範囲の趣旨を逸脱しない限りにおいて、当業者の知識に基づく種々の変更が可能である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施例１に係る遊技機制御装置の回路の一部を表す回路ブロック図。
【図２】ＣＰＵのレジスタ群，ＲＯＭ，ＲＡＭの内容を例示する図。
【図３】リセット処理ルーチンによるリセット処理を示すフローチャート。
【図４】信号識別回路と電圧監視回路とを共存させたホット／コールド判定回路の一例を示す回路図。
【図５】本発明の実施例２に係る遊技機制御装置の回路の一部を表す回路ブロック図。
【符号の説明】
【００５６】
１００ ＣＰＵ
１１０  レジスタ群
１２０  ＲＯＭ
１２１  メインプログラム
１２２  リセット処理ルーチン
１３０ ＲＡＭ
１３１  カウンタ
１４０  ＷＤＴ
２００  ＷＤＴ内蔵リセットＩＣ
３００  ホット／コールド判定回路
３１０ 信号識別回路
３２０ 電源監視回路
４００  オア回路
【図１】
2007296272.tif 000003
【図２】
2007296272.tif 000004
【図３】
2007296272.tif 000005
【図４】
2007296272.tif 000006
【図５】
2007296272.tif 000007