(58)【調査した分野】(Int.Cl.,DB名)
遊技に係る制御を実行する制御部と、前記制御部で生成した情報に基づき所定の処理を実行する副制御部と、前記制御部又は前記副制御部に接続される複数の周辺基板と、前記制御部又は前記副制御部から予め定められた出力データを受け、前記出力データをシリアルデータに変換して送信するとともに、前記複数の周辺基板を制御するためのリセット信号及びラッチ信号を出力するシリアル通信部とを備え、前記シリアル通信部と前記複数の周辺基板が、環状の接続であるループバック接続されている遊技機であって、
前記複数の周辺基板は、それぞれ、前記シリアル通信部又は隣接する前記周辺基板から受けたシリアルデータをパラレルデータに変換する内部レジスタと、前記内部レジスタで変換したパラレルデータを受けて保持する出力レジスタと、前記出力レジスタで保持しているデータを出力するバッファとを含み、
前記内部レジスタは内部のデータをクリアするためのクリア端子を備え、前記出力レジスタは前記内部レジスタのパラレルデータを取り込むためのラッチ端子を備え、前記バッファは出力を制御するためのゲート端子を備え、
前記複数の周辺基板のうち一部のもの(以下、当該一部の周辺基板を「ダイナミック制御周辺基板」と呼ぶ)の前記内部レジスタのクリア端子には前記リセット信号が入力され、前記出力レジスタのラッチ端子と前記バッファのゲート端子には前記ラッチ信号が入力され、
前記複数の周辺基板のうち他のもの(以下、当該他の周辺基板を「スタティック制御周辺基板」と呼ぶ)の前記内部レジスタのクリア端子と前記バッファのゲート端子には前記リセット信号が入力され、前記出力レジスタのラッチ端子にはラッチ入力が接続され、
リセットを行うとき、前記シリアル通信部は、前記ダイナミック制御周辺基板及び前記スタティック制御周辺基板の両方に対して、
前記リセット信号を有効にするステップと、前記リセット信号が有効の状態で前記ラッチ信号を有効にするステップと、前記リセット信号を無効にするステップとを備えるリセット動作を行い、
前記ラッチ信号を有効にした状態で予め定められたエラー復帰処理を行うことを特徴とする遊技機。
【発明を実施するための形態】
【0020】
弾球遊技機の構造概略について
図1、
図2及び
図3を参照して説明を加える。
まず、
図1及び
図2を参照して本発明の実施の形態に係る遊技機の外部的構造につき説明する。
外枠50は、遊技機設置営業店に設けられた設置場所(島設備など)へと固定させるための縦長方形状からなる木製の枠部材である。
本体部材51は、外枠50の内部に備えられ、ヒンジ部51aを介して外枠に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。この本体部材51は、枠状に形成されその内側に空間部を有している。
開口枠扉52は、遊技機の前面側となる前記本体部材51の前面に、ロック機能付きで且つ開閉自在となるように装着され、枠状に構成されることでその内側を開口部とした扉部材である。
なお、開口枠扉52の開口部にガラス製又は樹脂製からなる透明板部材が設けられ、開口部近傍及びその内部に電飾52a、スピーカ52b、などが取り付けられている。
遊技盤10は、本体部材51の空間部に臨むように、本体部材51に所定の固定部材を用いて着脱自在に装着されている。遊技盤の本体部材51への装着後は、その遊技領域を前記開口部より観察することができる。
【0021】
球受皿付き扉53は、遊技機前面において本体部材51の下部に、ロック機能付きで且つ開閉自在となるように装着され、遊技球を貯留する球受皿を少なくとも備えた扉部材である。なお、本実施形態における球受皿付き扉には、以下の部材が取り付けられている。
(1)複数の遊技球が貯留可能で且つ図示しない発射駆動装置へと遊技球を案内させる通路が設けられた球受皿。
(2)該貯留され発射駆動装置へと案内された遊技球を前記遊技盤10の盤面11に設けられた遊技領域へと打出す操作を行う回動式操作ハンドル48b。
(3)ブリペイドカード読込み処理関係及び借り受ける遊技球の貸出し処理関係の指示をするボタンを備えた球貸し関係の操作部。
(4)球受皿に貯留させた遊技球を遊技球収集容器(俗称、ドル箱)へと排出解除するための球受皿用の貯留球排出操作ボタン。
【0022】
次に、
図3を参照して本発明の実施の形態に係る遊技機の内部的構成を説明する。
40は、前述したように、本体部材51若しくは遊技盤10又はこれらに備え付けられる支持部材などを介して設けられ、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部である。
40bは、前記本体部材51若しくは遊技盤10又はこれらに備え付けられる支持部材などを介して設けられ、前記制御部40にて生成した処理情報を得ることにより所定の出力態様処理をさせる制御を行う副制御部である。
42は、賞球の払い出し制御を行う払出制御部である。
【0023】
図4は遊技機の遊技盤の正面図である。
図4において、11は遊技盤10の盤面である。盤面11は、誘導レール12と、誘導レール12で区画された略円形の遊技領域を落下した遊技球を外部へ導く排出口(アウト口)13を備える矩形の盤面である。
【0024】
前述した盤面11の遊技領域は、誘導レール12(遊技球を滑走させる滑走部と遊技球を規制する規制部を含む)により略円形状となるように区画形成され、打出された遊技球の移動範囲を規制する領域である。前記滑走部に規制部が続くように設けられている。前記滑走部は全体として螺旋をなして盤面11に配設されている。
【0025】
前記排出口(アウト口)13は、遊技領域に投入された遊技球が集束する位置に設けられた回収開口部である。
【0026】
図示しないが、盤面11には、遊技領域を移動する遊技球の方向を変化せしめる釘や風車などの障害物を複数個設けられている。障害物としての遊技釘は、遊技球と接触させることにより移動方向を不規則にし、又は移動方向を規制するために、盤面11の適宜な位置に打込まれる複数の棒状部材である。
【0027】
30aは、遊技領域の中央やや上側に設けられ、演出用表示ランプやLCD(液晶表示装置)などの可変表示部をひとつ又は複数有する可変表示装置(センター役物)である。
30bは、スルーチャッカー(入賞チャッカー)である。
30cは、普通入賞口を有する普通入賞装置である。
30dは、始動入賞口を有するスタートチャッカー(始動入賞装置)である。
30eは、大入賞口を有するアタッカーである。
以下の説明で、30b乃至30dをまとめて入賞口30などと記すことがある。
なお、図示されていないが、上記30b、30c、30dの内部には球通過検出器20b、20c、20dが設けられている(同図の括弧内の符号はそのことを意味する)。
【0028】
スタートチャッカー30dの始動入賞装置は特定入賞装置と、アタッカー30eの大入賞装置は特別入賞装置とも呼ばれる。
スタートチャッカー(始動入賞装置)30dは、入賞口の開口範囲の拡縮を行わせる可動片をその両側に備え、遊技球を入賞させることにより可変表示を行わせると共に賞球を遊技者に獲得させる入賞装置である。
アタッカー(大入賞装置)30eは、入賞口を露出させる開口状態と入賞口を閉鎖する閉口状態となる可動扉が駆動制御されるものであり、遊技球を入賞させることにより他の入賞装置と比較してより多くの賞球を獲得させる入賞装置である。
【0029】
図5は本発明の実施の形態に係る遊技機の機能ブロック図である。
40は、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部(「メイン基板」とも呼ばれる)である。制御部40は遊技領域を移動(流下)して入賞口30b〜30dを通過した遊技球をそれぞれ検出する球通過検出器20b〜20dの信号を入力とし、入賞口30b〜30dの遊技球通過に応じた抽選・判定を行う入賞判定部40aを含む。
【0030】
42aは、可変表示装置(センター役物)30aに設けられた第1表示装置(7セグメント表示器など)を点灯制御する第1表示制御部である。
42bは、可変表示装置(センター役物)30aに設けられた第2表示装置(ランプなど)を点灯制御する第2表示制御部である。
スタートチャッカーに入賞して抽選が行われた場合、制御部40は、遊技盤上に設けられた第1表示装置(7セグメント表示器)43aに特別図柄に関する抽選結果を表示するとともに、抽選の結果及び後述の可変表示装置(液晶表示装置)30aでの特別図柄(液晶表示装置上の変動図柄)の変動時間(特別図柄の変動時間は抽選により決定される)を後述の副制御部40bに送信する。副制御部40bは、受信した抽選結果及び特別図柄の変動時間に基づいて特別図柄を変動させる。
なお、大当たりとなった場合は、制御部40が副制御部40bに送った変動時間を把握しており、この変動時間を制御部40が計時し終わった際に、大当たり処理(アタッカー30eを開放する処理)を行う。
ちなみに、スルーチャッカー30bに入賞したときは、盤面上に設けられた第2表示装置(ランプ)43bに普通図柄に関する抽選結果を表示し、当選の場合には、スタートチェッカー30dの可動片を開放させる。また、同時に可変表示装置(液晶表示装置)30aの所定領域においても、普通図柄に関する抽選結果を表示する。
【0031】
可変表示装置(センター役物)30aに設けられたLCDは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。スタートチャッカー(始動入賞装置)30dを遊技球が通過したことが検出されると、表示される図柄が所定時間だけ変動し、遊技球のスタートチャッカー(始動入賞装置)30dの通過時点において抽選された抽選用乱数値により決定される停止図柄をLCDに表示して停止するようになっている。アタッカー30eは、前方に開放可能な開閉板を備える。LCDの変動停止後の図柄が「777」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、アタッカー30eの開閉板が予め定めた回数だけ開放されるようになっている。アタッカー30eの開閉板が開放された後、所定時間が経過し、又は所定数の遊技球が入賞すると開閉板が閉じる。
【0032】
42は、入賞判定部40aの信号を受けて入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた遊技球払出装置43を制御する払出制御部である。
43は、遊技利益として入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた所定数の遊技球を払出す駆動源を備えた遊技球払出装置である。
【0033】
40bは、制御部40にて生成した処理情報を得ることにより、光の点滅・音響の発生などの演出を含む所定の出力態様処理をさせる制御を行う副制御部(「サブ基板」とも呼ばれる)である。副制御部40bは、周辺基板(電飾制御部)44−1と周辺基板(可動体制御部)44−2などの周辺基板へシリアルデータを送信するとともに、周辺基板44−3で入力されたデータを受信し、これを解析するシリアル通信部40Sを含む。
41は可変表示装置(液晶表示装置)30aを制御して演出に係る画像を表示させる表示制御部である。
【0034】
44−1は、遊技盤10あるいは遊技機筐体に設けられたランプ・電飾52aなどを点灯制御するための電飾制御部である。
【0035】
44−2は、遊技盤10に設けられた可動体52cを制御する可動体制御部である。
可動体52cとは、遊技盤10上に打ち出された遊技球の落下動作に変化を与える障害物であって、副制御部40bの処理によって状態が変化するものである(
図4において可動体52cの表示は省略している)。可動体52cは、例えば、通常状態とこれと異なる状態の2つを相互に行き来するものである。可動体とは、例えば、平板状、円柱状、円盤状、凹凸を有する歯車状、等のものである。なお、図示しないが可動体52cを駆動するための動力部を備える。可動体制御部47は、実際には、当該動力部を駆動する。動力部は、例えば、モータ、ソレノイドなどの電力又は磁力を用いた駆動装置又は駆動源を備えた制御装置などである。
【0036】
電飾制御部44−1や可動体制御部44−2は、CPUを含む副制御部40bに接続される周辺基板(第1周辺基板)であり、副制御部40bのCPUからデータを受信する受信部(受信側の装置)でもある。以下の説明において、電飾制御部44−1や可動体制御部44−2を区別することなく、まとめて周辺基板(第1周辺基板)と表現することがある。なお、本発明の実施の形態は、電飾制御部や可動体制御部以外にも、例えば音響制御部に対しても適用することができ、また、nを2以上の整数として、n個(n段)の周辺基板あるいは受信部(受信側の装置)に適用することができる。
図5はあくまで一例である。
【0037】
44−3は、遊技機に設けられた任意のデバイス(入力装置)からのデータを受け、当該データをシリアル通信部40Sへ送る周辺基板(第2周辺基板)である。デバイスは特に限定されないが、ジョグダイヤル入力部などである。
【0038】
44−1及び44−2とともに、44−3も併せて周辺基板と呼ぶことにする。これらは、シリアル通信部40Sに接続され、これの制御下にある点で同じであるが、周辺基板44−1と44−2は、シリアル通信部40Sからデータを受け、当該データに基づき自己の支配下にあるランプ・電飾52aや可動体52cなどのデバイスを制御するものであるのに対し、周辺基板44−3は、受けたデータをシリアル通信部40Sへ送信する点で相違する。いわば、前者は受信機であり後者は送信機である。この機能の違いにより、周辺基板44−1と44−2は出力部を含み、周辺基板44−3は入力部を含むという違いがある。出力部と入力部については、後に詳しく説明する。
【0039】
図5において、周辺基板44−1乃至44−3はチェイン接続かつループバック接続されている。すなわち、シリアル通信部40Sからのデータは、まず、周辺基板44−1で受信されここで処理される。そして、周辺基板44−1は受信したデータを次の周辺基板44−2へそのまま送る(転送する)。当該データは周辺基板44−2で受信されここで処理されるとともに、次の周辺基板44−3へ受信したデータをそのまま送る。周辺基板44−3は受信したデータにデバイスからの値(データ)を加え、その後、当該データをシリアル通信部40Sへ送る(戻す)。
【0040】
チェイン接続とは、n個(n段)の周辺基板が鎖状に連結(接続)されていることである。ループバック接続とは、シリアル通信部40S及びn個(n段)の周辺基板を含めて、それらの接続が環状になっていることであり、言い換えれば、チェイン接続の末端に位置する周辺基板の出力が送信元であるシリアル通信部40Sに戻されることである。
【0041】
なお、周辺基板をチェイン接続かつループバック接続することは、副制御部40だけでなく、制御部40についても適用することができる。例えば、制御部40に関して、表示制御部41と払出制御部42をチェイン接続かつループバック接続するようにしてもよい。以下において、便宜上、副制御部40bの接続を例にとり説明を加える。
【0042】
46は、遊技盤10あるいは遊技機筐体に設けられたスピーカ52bを通じて効果音・音声を発生させる音響制御部である。
【0043】
遊技球が遊技領域に設けられた入賞装置30b〜30dには、それぞれ内部に球通過検出器(例えばスイッチ)20b〜20dが設けられ、遊技球の通過を検出できるようになっている。いずれかの入賞装置30b〜30dの位置を通過すると、これを球通過検出器20b〜20dが検出し、これを受けて入賞判定部40aが所定の抽選・判定処理を行う。例えば、球通過検出器20bがスルーチャッカー(入賞チャッカー)30bを通過した遊技球を検知したとき、所定の抽選を行い、当選したときはスタートチャッカー(始動入賞装置)30dを所定時間開放する。すなわち、スタートチャッカー(始動入賞装置)30dの左右両側に互いに対向して設けられた一対の可動片を、それぞれ外側へ開放させる。そして、遊技球がスタートチャッカー(始動入賞装置)30dを通過したことを検知したとき、所定の抽選を行い、当選したときはアタッカー30eの大入賞装置を開放する。
【0044】
図6は、副制御部40bのハードウエア構成の説明図である。
図5の副制御部40bは、実際には
図6のハードウエア構成で実現される。すなわち、複数のビット(配線)からなるBUSに、CPU(処理部)、ROM(不揮発性記憶部)、メモリM(読み出し及び書き込み可能な記憶部、RAM)及びI/O(入出力装置)が接続されている。
図5の副制御部40bで実行される遊技に係る処理は、
図6のROMに予め記憶されたプログラムに従ってCPUが動作することで実行される。
図5のシリアル通信部40Sの処理も同じである。CPUは、処理を行う際に各種データをメモリMに記憶させ、必要に応じて読み出し、処理を行い、必要に応じて再度記憶する、といった処理を行う。メモリMはバッテリバックアップを受けていることがあり、この場合は電源断の間でもその記憶内容は保持されている。
【0045】
シリアル通信部40Sは、CPUがプログラムを実行することによりソフトウエアで実現されるか、あるいは、複数のICを組み合わせることによりハードウエアで実現される。
【0046】
シリアル通信部40Sは以下の端子を備え、これらを通じて周辺基板と通信を行う。
(1)/LATCH端子
/LATCHは、各周辺基板(
図7に示すIC)のデータ(ワード)を更新するための更新信号を出力する端子である。24ビットを1ワードとする場合は、クロックの24周期ごとに/LATCHが発生する。
(2)SCLK端子
SCLKはクロック(端子)である。SCLKは、例えば水晶発振器により安定した繰返し周期一定の信号が供給される。繰り返し周期は予め定められている。
(3)TxD端子
TxDはシリアル送信データ(端子)である。TxDは、チェイン接続されている最初の周辺基板の先頭のICの入力端子に接続される。
(4)RxD端子
RxDはシリアル受信データ(端子)である。RxDは、チェイン接続されている最後の周辺基板の末端のICの出力端子に接続される。
(5)リセット端子
各周辺基板をリセットするためのリセット信号を出力する端子である。
【0047】
図5の周辺基板44−1,44−2は、その出力部として
図7に示すIC(半導体装置)を備えている。当該ICについて、
図7を参照して説明を加える。
各ICは、8つのDタイプフリップフロップDFF1と、8つのDタイプフリップフロップDFF2と、8つのバッファBUFとを含む。8つのDFF1は8ビットのシフトレジスタを構成する。8つのDFF2は8ビットのストレージレジスタを構成する。8つのBUFはストレージレジスタの出力を制御する(出力するか出力しないか(L又はHレベルを出力するかハイインピーダンス状態にするか))ものである。各ICは他にも複数のバッファ(NOTゲート)を含むが、これらの説明は省略する。
以下の説明において、DFF1を内部レジスタ、DFF2を出力レジスタ、BUFをバッファと呼ぶことがある。
【0048】
シフトレジスタとは、シリアルデータをパラレルデータに変換するものである。ストレージレジスタとは、変換されたパラレルデータを保持するものである。
【0049】
DFF1のR端子はリセット端子、D端子はデータ入力端子、Q端子はデータ出力端子、SCKはクロック入力端子である。DFF2のD端子はデータ入力端子、Q端子はデータ出力端子、RCKはストレージレジスタへのデータのストア端子である。
【0050】
各ICのQA〜QHは、それぞれ8つのDFF2のQ端子に接続されたパラレルデータの出力端子である。QH’は末端のDFF1の出力端子であり、これが次段のICの入力端子に接続される。SI端子は入力端子であり、これが初段のDFF1の入力端子Dに接続される。SCK端子はクロックの入力端子であり、これは8つのDFF1のSCK端子の全部に接続される。/SCLR端子はシフトレジスタのクリア端子であり、これは8つのDFF1のR端子の全部に接続される。RCK端子はストレージレジスタへのデータのストア端子であり、これは8つのDFF2のRCK端子の全部に接続される。/G端子はストレージレジスタの出力イネーブル端子であり、これは8つのBUFの制御端子の全部に接続される。
【0051】
RCK端子はシリアル通信部40Sの/LATCHに接続されている。RCK端子は、予め定められたワード単位で、例えば24ビット(クロックの24周期)ごとに信号を受け、これに従ってシフトレジスタの内容をストレージレジスタに転送させる。1ワード=24ビットつまり1サイクル=クロックの24周期は一例である(このことについては前述した)。
SCK端子はシリアル通信部40SのSCLK端子に接続されている。
【0052】
図5の例では、周辺基板44−1のICのSI端子がシリアル通信部40SのTxD端子に接続され、周辺基板44−1のICのQH’端子と周辺基板44−2のICのSI端子が接続されている。
なお、周辺基板44−3の接続及び動作については、
図11以降及びそれらの説明を参照されたい。
【0053】
説明の便宜上、
図5の周辺基板44−1のICはダイナミック制御回路であり、周辺基板44−2はスタティック制御回路であるとする。これは例示であり、逆であってもよい。また、ダイナミック制御回路、スタティック制御回路のいずれかあるいは両方が複数であってもよい。要するに、シリアル通信部40Sが通信対象としている複数の周辺基板においてダイナミック制御回路とスタティック制御回路が混在していればよい。
【0054】
一般的には、スタティック制御回路とは、例えば表示デバイスとしての7セグLEDのセグメントごとにそれらを点滅させるための端子を個別に備える(言い換えれば、一つの端子を用いて一つのセグメントを点滅させることができる)場合において、複数の端子のいずれか又は全部を選択し、選択した端子に電圧を印加するという制御回路(制御方法)である。これは駆動回路とセグメントが一対一の関係にあるが、これはスタティックな関係であり時間軸において変化することがない。この方法は、制御のための回路及び制御手順が簡単であるというメリットがあるが、各セグメントごとに一対の電圧配線が必要なため配線数が増し、多画素の表示装置では採用することが困難であるというデメリットがある。
【0055】
また、一般的には、ダイナミック制御回路は、表示デバイスの要素を格子状に配列し、格子状に配列された画素に対し縦方向、横方向の電極を配し、その電極を選択して電圧を掛け、縦横の電極がともに選択されて電圧が掛けられている画素を駆動するという制御回路(制御方法)である。これはマトリックス状の所望の画素を縦方向の選択と横方向の選択の動的な組み合わせにより特定し、点滅させるというものである。この方法によれば、画素が並んでいる行数と列数の和の電源配線のみで済むので配線数が大幅に削減されるというメリットがある。ただし、この方式では時分割駆動(すなわちダイナミック駆動)となるので、各画素は次の信号を受け取るまでの時間のメモリ機能を持つか、または目の残像時間以下の時間での多回駆動が必要になるとともに、制御のための回路及び制御手順が複雑になるというデメリットがある。
【0056】
しかし、本明細書においてはダイナミック制御回路とスタティック制御回路は上記のような制御方式(構成)に限定されない。本明細書において、ダイナミック制御回路は
図8の構成をもつものを言い、スタティック制御回路は
図9の構成をもつものを言う。なお、
図8,
図9のような構成は、それぞれダイナミック制御とスタティック制御に好適なものであり、この点に鑑みダイナミック制御回路とスタティック制御回路という用語を用いている(例えば、
図8の構成によればラッチ信号で出力の有無を制御できるので、時分割駆動に好適である)。
【0057】
図8のダイナミック制御回路は、同図(a)に示すように、クリア端子/SCLRにリセット信号(シリアル通信部40Sのリセット端子の信号)の反転信号が、シリアル入力端子SIにシリアル入力信号(シリアル通信部40SのTxD端子又は隣接する周辺基板のICのQH’端子の信号)が、クロック端子SCLKにクロック信号(シリアル通信部40SのSCLK端子の信号)が、ラッチ端子RCKとゲート端子/Gにはいずれもラッチ信号(シリアル通信部40Sの/LATCH端子の信号)が、それぞれ入力される。
【0058】
なお、DFF1,DFF2,BUFは、
図6に示したものである。
【0059】
同図(a)の回路の動作は同図(b)のようになる。すなわち、ラッチ信号の立ち上がりで新しいデータが出力レジスタDFF2に取り込まれ(時刻t1)、ラッチ信号が低レベルに戻ることで当該新しいデータが出力される(時刻t2)。リセット信号の立ち上がり(時刻t3)で内部レジスタがクリアされるが、それとは別にラッチ信号の高レベルの間(時刻t4以降)は出力がされないのでデータがクリアされたと同じ状態になっている。言い換えれば、ダイナミック制御回路はラッチ信号の高レベルで出力がクリアされる。
【0060】
図9のスタティック制御回路は、同図(a)に示すように、クリア端子/SCLRにリセット信号(シリアル通信部40Sのリセット端子の信号)の反転信号が、ゲート端子/Gにリセット信号が、シリアル入力端子SIにシリアル入力信号(シリアル通信部40SのTxD端子又は隣接する周辺基板のICのQH’端子の信号)が、クロック端子SCLKにクロック信号(シリアル通信部40SのSCLK端子の信号)が、ラッチ端子RCKにはラッチ信号(シリアル通信部40Sの/LATCH端子の信号)が、それぞれ入力される。
【0061】
なお、DFF1,DFF2,BUFは、
図6に示したものである。
【0062】
同図(a)の回路の動作は同図(b)のようになる。すなわち、ラッチ信号の立ち上がりで新しいデータが出力レジスタDFF2に取り込まれ、ただちに新しいデータが出力される(時刻t1)。リセット信号の立ち上がり(時刻t3)で内部レジスタがクリアされるとともに、リセット信号の高レベルの間は出力がなされない。ラッチ信号の立ち上がりでクリアデータが出力レジスタに取り込まれ(時刻t4)、これ以降はバッファBUFがクリアデータを出力する。すなわち、スタティック制御回路はリセット信号で出力がクリアされる。
【0063】
ダイナミック制御回路とスタティック制御回路が混在する回路でリセット動作を行う場合には、上述のような動作の違いに鑑み、
図10に示す処理を行う。
【0064】
S100:リセット信号をオンにする。
これにより、スタティック制御回路ではデータ非出力(クリアに相当)となる。
【0065】
S101:ラッチ信号を立ち上げる(有効にする)。
これにより、ダイナミック制御回路ではデータ非出力(クリアに相当)となる。
【0066】
S102:リセット信号をオフにする。
リセット信号をオフにしてもスタティック制御回路、ダイナミック制御回路いずれにおいてもデータクリアの状態である(
図8(b)、
図9(b)の時刻t5以降)。これに対し、リセット信号をオフしているので、内部レジスタDFF1は通常動作が可能である。すなわち、S40以下の異常確認データ解析処理が可能である(異常確認データ解析処理については後に詳述する)。なお、S40以下の処理についは、
図21及びその説明も参照されたい。
【0067】
S103:ラッチ信号を立ち上げたままその状態を維持する。
S40以下の異常確認データ解析処理を行っているときに、誤ってテスト用のデータを取り込まないためである。
【0068】
異常確認データ解析処理の結果、異常がないことが判明して通常動作に移行したときに、ラッチ信号を立ち下げる(低レベルに戻す)(S46参照)。
【0069】
図10のS40〜S46は、シリアル通信部40Sの異常判定処理の概要を示す。ループバックされた異常確認用データは、図示しない異常確認用データのバッファ(以下、「バッファ」と記す)に格納される。当該バッファは、複数の(8個の)異常確認用データを格納している(言い換えれば、複数のフェーズ時間の周期にわたってそれぞれ受信したデータを格納している)。
【0070】
S40:バッファ内の異常確認用データを全部チェックする。
受信した複数の(8個の)異常確認用データを、送信した予め定められた異常確認用データと比較し、一致しているものは「正常」、一致しないものは「異常」と判断する。例えば、そのようなフラグをセットする(
図22及びその説明参照)。
【0071】
S41:チェックの結果を判定する。
全て一致していたとき(全部正常であるとき)、バッファ内のデータを入力イメージとする(入力イメージについては後述)。そして、予め用意されているエラーカウント数を減少させる(S43)。
【0072】
一致しないものがあるとき、データは破棄し、前回の入力イメージを今回の取得値とする。そして、エラーカウント数を増加させる(S42)。
【0073】
S42b:エラーカウント数が4に達したかどうか判定する。
エラーカウント数が4に達していなければ(S42bでNO)、上記S40〜S42の処理を繰り返す。
エラーカウント数が4に達した場合は(S42bでYES)、S100に処理を移し、再度リセット動作を行う。
【0074】
なお、閾値である「4」は言うまでもなく例示であり、これに限定されない。閾値として予め定められている1以上の整数であればよい。閾値を大きくすればリセット動作が行われる頻度は少なくなるがエラーを検知することが少なくなり、エラーの生じたままで通信を行ってしまう可能性が高くなる。閾値を小さくすればリセット動作が行われる頻度が高くなり、エラーの生じたままで通信を行う可能性を低くできる。
【0075】
S44:エラーカウント数が0に戻ったかどうか判定する。
エラーカウント数が0でなければ(S44でNO)、上記処理を繰り返す。
エラーカウント数が0であれば(S44でYES)、エラーフラグをリセットする(S45)。そして、S46:ラッチ信号を復帰させ、ダイナミック制御回路とスタティック制御回路の動作を再開させる。
【0076】
発明の実施の形態に係るダイナミック制御回路においては、上述のようにリセット信号を受けると内部レジスタはクリアされるが、出力はオフにはならない。出力をオフにするためには、ラッチ信号により、内部レジスタのクリアデータを、出力レジスタにシフトさせる必要がある。また、スタティック制御回路においては、上述のように、リセット信号を受けると出力を直接オフにするが、内部レジスタのデータはクリアされない。
【0077】
上記のように構成されている制御系において、ループバック構造を採用した場合、初期不良のように継続的な異常があると対応しきれない、という問題があった。
【0078】
そこで、発明の実施の形態においては、リセット信号のオン→オフが終了した後においても、ラッチ信号を高レベルに固定したままとし、この状態で異常確認データ解析処理を行い、異常が継続するときはリセット動作を繰り返すようにした。このようにすることで、周辺基板からデータを出力させることなく、エラー状態のリセットと当該エラー状態から復帰したかどうかを判定することができるようになった。また、当該判定時には出力を遮断しているので、制御対象である電飾などのデバイスを不必要に駆動することがなくなる。
【0079】
この発明の実施の形態によれば、エラー発生時において、出力を遮断(オフ)しながらエラー復帰のタイミングを図ることで、「正常復帰の即時検知」と「誤データ出力による想定外の発熱や電力消費の対策」を行うことができる。また、意図しない誤データを出力することもない。
【0080】
次に、発明の実施の形態に係るデータ通信の具体的な手順について説明を加える。
【0081】
図11は、シリアル通信部40Sと周辺基板44の接続図(概念図)である。同図では、説明を簡単にするために、2つの周辺基板44aと44bが接続されているものとする。したがって、
図5と
図11は構成の点で異なるが、その処理の点で異なる点はない。周辺基板44aは出力部44OUTを含み、周辺基板44bは入力部44INを含むものとする。シリアル通信部40Sと2つの周辺基板44はチェイン接続かつループバック接続されている。
【0082】
40S−O,−Iは、シリアル通信部40Sの出力端と入力端である。同様に、44a−O,−Iは第1周辺基板44aの出力端と入力端、44b−O,−Iは第2周辺基板44bの出力端と入力端である。同図において、隣接する出力端と入力端はそれぞれ配線で接続されている。
【0083】
出力部44OUTは、シリアル通信部40Sからの送信データ(
図12(a)参照)を受けて、それに含まれるデータ(
図12(a)の出力データ)を取得するものである。周辺基板44aは、取得されたデータに基づき所定の制御を行う。出力部44OUTは、シリアルデータをパラレルデータへ変換するシリアル−パラレル変換器(内部レジスタ)と、シリアル−パラレル変換器で変換したパラレルデータを受け入れるレジスタ(出力レジスタ)とを備える。シリアル−パラレル変換器は、例えば、周辺基板44aで必要とするデータ数(例えば1バイト)に対応したDタイプのフリップフロップを直列に接続したもの(シフトレジスタ)である。レジスタも同様に複数のDタイプのフリップフロップを備えるものである。シリアル−パラレル変換器は、シリアル通信部40Sから受けたクロックに従って動作し、受けたシリアルデータを順番にフリップフロップに格納していく。出力部44OUTのレジスタは、シリアル通信部40Sから受けたラッチ信号に従って、変換したパラレルデータをシリアル−パラレル変換器から受け入れる。シリアル−パラレル変換器やレジスタは公知であるので、詳細な説明は省略する。
【0084】
入力部44INは、シリアル通信部40Sからの送信データ(
図12(a)参照)を受けて、それに含まれるデータ(
図12(a)の入力用ブランクデータ)を、予め用意した入力値(デバイスから出力される値)で置き換えるものである(言い換えれば、入力値を入力用ブランクデータに上書きする)。この結果、
図12(a)の送信データは、同図(b)の受信データに変化する。例えば、
図13(b)のラッチ信号のL又はH(あるいはその立ち上がり又は立ち下がり)において、デバイスから出力される値で置き換えを行う。あるいは、入力部44INは、周辺基板44bが図示しないデバイス(例えばジョグダイヤル入力部)から収集したデータ(例えば1バイト)を保持するレジスタと(図示せず)、レジスタで保持しているデータ(パラレルデータ)をシリアルデータへ変換するパラレル−シリアル変換器(シフトレジスタ、図示せず)とを備えるようにしてもよい。このレジスタとパラレル−シリアル変換器も、Dタイプのフリップフロップを複数備えるものである。出力部44INのレジスタは、シリアル通信部40Sから受けたラッチ信号に従って、レジスタのパラレルデータをパラレル−シリアル変換器へ転送する。パラレル−シリアル変換器は、シリアル通信部40Sから受けたクロックに従って動作し、受けたパラレルデータを順番に出力していく。
【0085】
シリアル通信部40Sは、送信データを生成するデータ送信部40S−1、クロック・ラッチ信号を生成する制御信号生成部40S−2、データを受信するデータ受信部40S−3、受信したデータを解析する受信データ解析部40S−4及び受信したデータに基づき
図11のループに異常があるかどうかを判定する異常判定部40S−5を含む。
【0086】
シリアル通信部40S、周辺基板44a,44bで扱うシリアルデータの単位を1バイトとした場合を例に取り説明する。
【0087】
シリアル通信部40Sと、複数の周辺基板44はループバック構造で接続されているから、1バイトのデータを送信すると、1つ目の出力部44OUTに送信データが溜まり、押し出される形でそこに格納されていたデータが2つの入力部44INに送り出されるそして、データが巡回し、そこにあったデータはシリアル通信部40Sに戻される。
図5の例では3バイトのデータを送信することで、
図11の例では2バイトのデータを送信することで、全ての周辺基板44にデータが行き渡る。
【0088】
図11において、「データ」はシリアルデータ信号又はそれが流れる線(以下同様)を示す。「クロック」はシリアル−パラレル変換器及びパラレル−シリアル変換器(シフトレジスタ)を動作させる信号である。ひとつのクロックでひとつのデータが伝送される。「ラッチ信号」とは出力部44OUTのシリアル−パラレル変換器からレジスタへ、及び、入力部44INのレジスタからパラレル−シリアル変換器へデータを転送するための信号である(詳細は後述)。「リセット信号」は、出力部44OUT及び入力部44INをリセットする信号である。リセット信号により出力部44OUT及び入力部44INは初期状態になる。
【0089】
図12は、シリアル通信部40Sから周辺基板44aへ送信するデータ(送信データ)と、シリアル通信部40Sが周辺基板44bから受信するデータ(受信データ)を示す。
【0090】
図12(a)に示すように、送信データは、「出力データ」「入力用ブランクデータ」「異常確認用データ」の3種類から構成される。送信データは、予め定められた第1の割り込みのタイミング(以下、「フェーズ割り込み」と記す)で送信される。
【0091】
「出力データ」は、周辺基板44aが制御するデバイスに対して出力されるデータである。例えば、LEDの輝度データ、可動体やソレノイドの制御データを含む。
【0092】
「入力用ブランクデータ」は、周辺基板44bの入力部44INが入力値を取得した際に、これで置き換えられるべきデータである。入力用ブランクデータの初期値は、例えば「00H」である。
【0093】
「異常確認用データ」は、ループバックが正常に行われているかどうかを判定するためのデータである。このデータは任意であるが、なるべく「1」「0」が混在しているデータが好ましい。
【0094】
送信データ数は、遊技機が搭載するLEDや可動体、スイッチなどのデバイス数、具体的には、それらを制御する周辺基板の数によって変化する。送信データ数は、(出力部44OUT及び入力部44INの合計数)+1(異常確認用データ)となる。このときの単位はひとつのまとまりのデータ(ワード、例えば1バイト)である。出力部44OUT及び入力部44INの合計数よりひとつ多く送信することで、ひとつの送信データの送信を完了すると(言い換えれば、出力データと入力用ブランクデータが各周辺基板に行き渡ると)、その先頭である「異常確認用データ」はシリアル通信部40Sにループバックされる。これにより、1回の送信で異常確認用データがシリアル通信部40Sに必ず戻るようになり、送信データ毎にデータ伝送に異常があったかどうか確認することができる。
【0095】
例えば、
図5のように、出力部44OUTが2つ、入力部44INが1つ、チェイン接続されており、それぞれで扱うデータが1バイトである場合、(送信データ数)=(出力部44OUTの数)+(入力部44INの数)+1(異常確認用データ)=2バイト+1バイト+1バイト=4バイトとなる。
【0096】
そして、出力データと入力ブランクデータの送信の順番は、シリアル通信部40Sの出力端から見たときの第1周辺基板44a(出力部44OUT)と第2周辺基板44b(入力部44IN)の接続の順番に対応している。
【0097】
図11のように、シリアル通信部40Sの出力端から見たとき、そこから遠い順番に第2周辺基板44bと第1周辺基板44aの順で接続されている場合、送信データの送信の順番は、(異常確認用データ)(入力用ブランクデータ)(出力データ)の順となる。(異常確認用データ)は、常に先頭にあるものとする。
【0098】
図5のように、シリアル通信部40Sの出力端から見たとき、そこから遠い順番に第2周辺基板44−3(44b)、第1周辺基板44−2(44a)、第1周辺基板44−1(44a)の順で接続されている場合、送信データの送信の順番は、(異常確認用データ)(入力用ブランクデータ)(出力データ(その1))(出力データ(その2))の順となる。
【0099】
図12(b)に示すように、受信データは、送信データがループバック構造により巡回して受信された、「出力データ」「入力値」「異常確認用データ」の3種類から構成される。
受信データの順番は、送信データの順番に対応している。
【0100】
「出力データ」は、送信データと同じものであり、前回出力していたデータである。シリアル通信部40Sにとっては不要なデータである。したがって、シリアル通信部40Sは「出力データ」を受信しなくてもよい。
【0101】
「入力値」は、ラッチ信号を契機に入力部44INから入力された値であり、デバイス(PUSHスイッチ、インデックスセンサなど)からの信号・データを意味する。
【0102】
「異常確認用データ」は、送信データのそれと同じものであり、送信したものと同じデータ(値)が受信できれば、他のデータも正常であるとみなす。
【0103】
受信データの数は、送信データの数と同じである。なお、「出力データ」「入力用ブランクデータ」つまり「出力データ」「入力値」の大きさと数並びにそれらの順番は、出力部44OUTと入力部44INの数とそれらの接続順序に対応している。出力部44OUTの数が増減すれば「出力データ」の大きさも増減し、入力部44INの数が増減すれば「入力用ブランクデータ」の大きさも増減する。接続順序が入れ替われば、「出力データ」「入力用ブランクデータ」の位置も入れ替わる。仮に、4つの周辺基板44がチェイン接続され、シリアル通信部40Sの出力端から見たとき、そこから遠い順番に、出力部44OUT、入力部44IN、出力部44OUT、入力部44INという順番で接続されているならば、送信データは「異常確認用データ」「出力データ」「入力用ブランクデータ」「出力データ」「入力用ブランクデータ」となる。
【0104】
図13はラッチ信号のタイミングチャートを示す。
図13(a)は、ラッチ信号を生成するためのタイマカウンタの計時の様子を示す。タイマカウンタは、一定のクロックに従い連続して動作しているので、最小値(例えば0000H)から最大値(FFFFH)の間を繰り返し計数している。同図で「0」は最小値を示し、「フェーズ時間」は最大値を示す。タイマカウンタの繰り返し周期TFは、前記第1の割り込みのタイミングに一致している。つまり、フェーズ割り込みの周期は、同図のTFである。「切り替え1」「切り替え2」は、最小値と最大値の間の値である。これらの値を替えることで、ラッチ信号を調整することができる。
【0105】
図13(b)は、ラッチ信号をタイマカウンタのタイミングチャートと関連付けて表示したものである。ラッチ信号の繰り返し周期は、タイマカウンタのそれと一致している。タイマカウンタが、
図13(a)の「切り替え1」「切り替え2」に一致したときに、ラッチ信号は変化する。
図13(b)の例では、ラッチ信号は、タイマカウンタ=0から「切り替え1」までの間はLレベルであり、「切り替え1」から「切り替え2」までの間はHレベルであり、「切り替え2」からフェーズ時間までの間はLレベルである。
【0106】
ラッチ信号の役割は、出力部44OUTの出力データの出力、入力部44INの入力値の入力、及び、出力部44OUTでLEDの点灯制御をダイナミックに行う場合において「ダイナミックLED制御のブランク期間を設定すること」の3種類がある。なお、ここでの「ダイナミック」は一般的な「ダイナミック」を意味する。
【0107】
出力部44OUTの出力データの制御について簡単に説明を加える。
本発明の実施の形態では、受信→送信→ラッチの順序で処理を行っている。つまり、
図13の期間T1においてデータの受信及び送信が完了しているものとする。なお、送信→ラッチ→受信とすることもできる。
【0108】
出力部44OUTのシリアル−パラレル変換器にデータが揃ったとしても直ちに当該データが出力部44OUTから出力されるわけではない。ラッチ信号の立ち下がり(
図13(b)のtb)でシリアル−パラレル変換器からレジスタにデータが移されることによりデータが出力される。つまり、出力部44OUTは、ラッチ信号の立ち下がりでデータを出力する。
【0109】
入力部44INの入力値の入力について簡単に説明を加える。入力部44INのレジスタにはデバイスからのデータ(値)が適宜入力される。このデータは時刻tbの直前において確定しているものとする。例えば、ラッチ信号の立ち上がり(時刻ta)において、入力部44INのレジスタにデバイスからデータ(値)が取り込まれるものとする。そして、ラッチ信号の立ち下がり(
図13(b)のtb)でレジスタからパラレル−シリアル変換器へデータが移される。これにより、「入力用ブランクデータ」はデバイスの値で上書きされ、「入力値」となる。
【0110】
「ダイナミックLED制御のブランク期間を設定すること」について簡単に説明を加える。LEDのダイナミック点灯方式において、そのコモンを切り替える際にブランクが必要である(LEDのダイナミック点灯方式は公知であるので、その説明は省略する)。もし、ブランク(全てのLEDを非点灯とする状態)がないとすれば、コモンの切り替わりが高速のため、LEDの回路に設けられたコンデンサあるいは浮遊容量(以下、「浮遊容量など」と記す)のためにコモン/シンクのラインに電荷が残ってしまい、LEDの誤点灯が発生する。このため、浮遊容量などに蓄えられた電荷を放電する必要がある。
【0111】
ラッチ信号がLの期間(T2)において、出力部44OUTからLEDへこれら全てを非点灯とする信号、例えば、Hレベルで点灯の場合はLレベルの信号を出力するようにしている。言い換えれば、ラッチ信号がLの期間(T2)において、出力部44OUTのレジスタの出力はオフとなる。期間T2はLEDのブランク期間であり、この期間において浮遊容量などの電荷は放電され、LEDが誤点灯しないレベルまで当該電荷は少なくなる。期間T2は、浮遊容量などの電荷をLEDが誤点灯しないレベルまで放電させるに必要な程度の設定される。浮遊容量などが大きければ期間T2を長くする必要があり、小さければ短くできる。
【0112】
ラッチ信号の立ち上がり(=切り替え1)は、送信データが一巡したことを意味する。送信データ数が、(出力部44OUT及び入力部44INの合計数)+1(異常確認用データ)である場合は、時刻taは、先頭の「異常確認用データ」がシリアル通信部40Sに戻ったタイミングである。
【0113】
例えば、出力部44OUTが2つ、入力部44INが1つで、(送信データ数)=4バイトの場合、シリアル通信部40Sが4バイトのデータを送り終えたタイミングが、
図13(b)の時刻taに対応する。1クロックで1データを送信する場合には、(データ送信時間)=(データ量)×(1クロックの周期)=(4バイト)×(1クロックの周期)=(32クロック周期)となる。
【0114】
以上の説明から分かるように、1つのフェーズ時間TFで送信可能なデータ量には上限がある。(上限:単位はビット)=(フェーズ時間TF)÷(1クロックの周期:1クロックで1ビットのデータを送信する場合)である。これに対応して、(T1+T2の合計)<(タイマカウンタの繰り返し周期:該周期を単位として送信を行う場合)である必要がある。時刻tb以降のタイミングは、いわば未使用の時間帯であり、データ量が上限になると、当該未使用の時間帯はゼロになる。
【0115】
なお、上記上限を超えてデータを送信する場合は、複数のフェーズ時間を使うようにする。例えば、連続する2つのフェーズ時間において、前半でデータの半分を送信し、後半でデータの残りを送信する。この場合、ラッチ信号は、後半において変化する(つまり、2つのフェーズ時間で1回のみ変化する)。
【0116】
図14は、ラッチ信号を生成するための回路の一例を示す。
【0117】
101は、一定のクロックを発生する発振器である。発振器101は、
図11のクロック信号を発生する図示しないクロック信号発生器と兼用できる。
【0118】
102は、発振器101のクロックに基づき動作するタイマカウンタである。タイマカウンタ102は連続的に動作し、原則として停止したりプリセット・リセットされることはない。
【0119】
103は、タイマカウンタ102の値を所定の値(切り替えタイミング1用の設定データ)と比較するコンパレータである。タイマカウンタ102の出力値が当該値に一致したとき(あるいは出力値≧当該値となったとき)、信号を出力する。
【0120】
104は、103と同様のコンパレータである。与えられる値は、切り替えタイミング2用の設定データである。ただし、(切り替えタイミング1用の設定データ)<(切り替えタイミング1用の設定データ)である。
【0121】
105は、コンパレータ104の出力により動作するR−Sフリップフロップである。
図14の回路では、(タイマカウンタ102の出力値)=(切り替えタイミング1用の設定データ)のとき、フリップフロップ105がリセットされてその出力がLになり、(タイマカウンタ102の出力値)=(切り替えタイミング2用の設定データ)のとき、フリップフロップ105がセットされてその出力がHになる。
【0122】
図15は、シリアル通信部40Sのデータ送信部40S−1の処理の概要を示す。以下、この図を参照して説明を加える。
【0123】
S1:予め定められた異常確認用データを用意する。
異常確認用データについては、既に説明した。
【0124】
S2:出力部を備える周辺基板へのデータを準備する。
図5の例では、周辺基板44−1と44−2用のデータ(例えばそれぞれ1バイトづつの2つのデータ)を用意する。
図11の例では、周辺基板44a用の1つのデータを用意する。S2で用意するデータの数は、出力部を備える周辺基板の数と同じである。
【0125】
S3:入力部を備える周辺基板から値を得るためのブランクデータを準備する。
ブランクデータについては、既に説明した。
図5と
図11いずれの例でも、入力部を備える周辺基板はひとつであるので、1つのブランクデータを用意する。S3で用意するデータの数は、入力部を備える周辺基板の数と同じである。
【0126】
S4:異常確認用データ、入力ブランクデータ及び出力データを連結して送信データを生成する。
送信データの例は、
図12(a)に示した。
図5のように、シリアル通信部40S、出力部を備える周辺基板44−1,44−2、入力部を備える周辺基板44−3、シリアル通信部40Sの順番に接続されている場合、データの順番はその先頭から、異常確認用データ、入力用ブランクデータ(周辺基板44−3用)、出力データ(周辺基板44−2用)、出力データ(周辺基板44−1用)となる。
【0127】
S5:送信データを送信する。
図13のフェーズ時間を単位として送信を行う。例えば、
図13のタイマカウンタ=0で送信を開始して、時刻taで送信を完了する(異常確認用データがシリアル通信部40Sに戻り、出力データなどが周辺基板44に行き渡るようにする)。
【0128】
図16は、シリアル通信部40Sのデータ受信部40S−3の処理の概要を示す。以下、この図を参照して説明を加える。
【0129】
S10:データを受信する。
戻されたシリアルデータを受信することで、入力部44INで入力された入力値を受け入れる。
図13の時刻tb以降において(
図11の例では、時刻tb以降において8つのクロックを与えたときに)、入力値を受けることができる。
【0130】
S11:受信データから入力値を取り出す。
次のフェーズ時間において、データ受信部40S−3は入力値を得ることができる。
【0131】
S12:入力値をデバイス毎のデータに変換する。
S13:デバイス毎に用意された所定長のバッファに格納する。
図18は、入力値の例を示す。入力値は1バイト(8ビット)で、各ビットがそれぞれデバイス1乃至デバイス8の値を示すものとする(同図(a))。デバイス1乃至デバイス8それぞれについて、1バイト(8ビット)のバッファが用意されているとする(同図(b)、デバイス3乃至8のバッファの表示は省略)。入力値のバイトから各デバイスの値を取得し、各デバイスのバッファの最後にそれぞれ格納する(同図の矢印)。各デバイスのバッファには、それぞれ受信8回分の値が格納されている。なお、リングバッファのように古いものを順番に破棄するようにしてもよい。これで、入力値のデバイス毎のデータ変換が完了する。
【0132】
S14:
図17の入力イメージ処理を行う。
【0133】
図17の入力イメージ処理について説明する。同図は、シリアル通信部40Sの受信データ解析部40S−4の処理の概要を示す。
図18に示すように、入力値は、デバイス毎に1バイトのバッファに格納されているとする。
【0134】
S20:8個のバッファの任意のひとつ(デバイス1)を指定して、当該バッファ内の全部データ(値)をチェックする。
【0135】
図19(a)はデバイス1の入力値を格納するバッファ(
図18(b)と同じもの)を示す。同図(b)(c)は、デバイス1の入力イメージ(デバイス1からの入力データとして扱われるもの)を格納するバッファ(16ビット)を示す。
【0136】
図19(a)において、「7回前」から「今回」にかけての、これらの8つのデータが全て一致しているときは(S21でYES)、入力値のバッファの値(データ)が入力イメージのバッファの最後に書き込まれる(S22,
図19(b))。そうでないときは(S21でNO)、入力値のバッファの内容は破棄され、代わりに、入力イメージのバッファで最新のものである前回のデータが入力イメージのバッファの最後にコピーされる(S23、
図19(c))。
【0137】
すなわち、入力値が全て同一であれば正常値として取得し、1つでも値が違えばチャタリングやノイズの影響を受けたデータと判断し、前回の入力イメージを今回の取得値とする。
【0138】
なお、入力イメージのバッファは、リングバッファのように古いものを順番に破棄するようにしてもよい。
【0139】
S24:以上の処理を、デバイス2乃至デバイス8について実行する。
【0140】
図19(b)(c)の入力イメージのバッファの他に、同じ大きさの参照用のバッファを設けてもよい。予め定められた第2の割り込み(「フレーム割り込み」、ただし、(フレーム割り込みの周期)>(フェーズ割り込みの周期)周期で、入力イメージのバッファから参照用のバッファへ入力イメージがコピーされる。副制御部40bのCPUは参照用のバッファにアクセスする。
【0141】
図20は、シリアル通信部40Sの異常判定部40S−5の処理の概要を示す。以下、この図及び
図22を参照して説明を加える。ループバックされた異常確認用データは、図示しない異常確認用データのバッファ(以下、「バッファ」と記す)に格納される。当該バッファは、複数の異常確認用データを格納している(言い換えれば、複数のフェース時間の周期にわたってそれぞれ受信したデータを格納している)。
図22では8回分格納している。この例では、バッファの大きさは8バイトである。なお、バッファに格納する際に、
図16や
図17の処理は施されない。
【0142】
S30:バッファ内の異常確認用データを全部チェックする。
受信した複数の(8個の)異常確認用データを、送信した予め定められた異常確認用データと比較し、一致しているものは「正常」、一致しないものは「異常」と判断する。例えば、そのようなフラグをセットする(
図22参照)。
【0143】
S31:チェックの結果を判定する。
全て一致していたとき(全部正常であるとき)、バッファ内のデータを入力イメージとする(前述のS22と同じ)。そして、予め用意されているエラーカウント数を減少させる(S32)。この処理は、
図22(c)の場合に相当する。
【0144】
一致しないものがあるとき、データは破棄し、前回の入力イメージを今回の取得値とする(前述のS23と同じ)。そして、エラーカウント数を増加させる(S33)。この処理は、
図22(a)の場合に相当する。
【0145】
S32:エラーカウント数が4に達したかどうか判定する。
エラーカウント数が4に達していなければ(S32でNO)、上記処理を繰り返す。
【0146】
エラーカウント数が4に達した場合は(S32でYES)、エラーフラグをセットする(S35)。この処理は、
図22(b)の場合に相当する。そして、S36:リセット信号を出力して出力部44OUT、入力部44INの動作を停止される。この間もラッチ信号やクロック信号によるデータの送受信は通常通り行われる。これにより、後述のエラー復帰契機となるカウントの減算も行うことができる。ただし、出力部44OUT、入力部44INに含まれるレジスタは停止しているため、それらの出力はオフとなる。
【0147】
なお、閾値である「4」は言うまでもなく例示であり、これに限定されない。閾値として予め定められている1以上の整数であればよい。閾値を大きくすればエラーフラグがセットされる頻度は少なくなるがエラーを検知することが少なくなり、エラーの生じたままで通信を行ってしまう可能性が高くなる。閾値を小さくすればエラーフラグがセットされる頻度が高くなり、高い確率でエラーを検知できてエラーの生じたままで通信を行う可能性を低くできる。反面、出力部44OUT、入力部44INの動作を停止される関係上、周辺基板から副制御部40bへ渡すべきデータが失われる可能性は高い。例えば、エラー発生頻度が少ないのであれば、閾値を小さくするとよい。最初は閾値を小さくしておき、エラーが頻発するようであれば閾値を少しずつ大きくする(+1する)。これによりエラーフラグをセットする頻度を抑えることができる。しかし、例えば閾値を4より大きくしてもエラーが頻発するようであれば、シリアル伝送系に故障が生じている可能性があるから、閾値を大きくすることに代えて、コネクタの接触不良はないか、ICなどの端子のハンダ付けに問題がないか、配線や接点にゴミが付着して絶縁不良あるいは導通不良が生じていないかなど、シリアル伝送系をチェックすることが望ましい。
【0148】
S37:エラーフラグのセット中は、
図21の処理を行う。
【0149】
S40:バッファ内の異常確認用データを全部チェックする。
S41:チェックの結果を判定する。
S42:エラーカウント数を増加させる。
S43:エラーカウント数を減少させる。
S40乃至S43は、S30、S31、S33、S32と同じ処理である。
【0150】
S44:エラーカウント数が0に戻ったかどうか判定する。
エラーカウント数が0でなければ(S44でNO)、上記処理を繰り返す。
エラーカウント数が0であれば(S44でYES)、エラーフラグをリセットする(S45)。この処理は、
図22(c)の場合に相当する。そして、S46:リセット信号の出力を停止し、出力部44OUT、入力部44INの動作を再開させる。
【0151】
以上の説明から分かるように、今回の入力イメージが採用されるのは、バッファの全てのデータが一致し、かつ、異常確認用データで異常でないことが確認されたときである。
【0152】
この発明の実施の形態によれば、遊技機のシリアル通信部と周辺基板をループバック接続し、周辺基板へデータを送信するとともに、周辺基板からのデータを受信するようにしたので、周辺基板から副制御部へデータを送信することが可能になった。また、データとともに予め定められた異常確認用データを送信し、ループバックされたデータを前記異常確認用データと比較することにより、前記シリアルデータが正しく伝送されたかどうかを判定することができるようになった。シリアル通信における不具合を検出するための専用の装置を必要としないので、コストを抑制しつつシリアル通信の不具合を検知することができる。
【0153】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。