【実施例1】
【0026】
本実施例は、本発明をスロットマシンに適用したものである。
図1,2に示すように、スロットマシン1の筐体2は前方に開放しており、前方から前扉3によって覆われている。
図1に示すように、前扉3の中央部には、筐体2の内部に配設された三つのリール9を視認するための視認窓4が設けられる。そして、視認窓4の上方には、横長矩形状の液晶表示器10が配設される。また、前扉3の前面側には、視認窓4の下方に、遊技操作に用いるベットスイッチ5a,5b、スタートスイッチ6、ストップスイッチ7、精算スイッチ8などの各種スイッチが配設される。また、前扉3には、スピーカ11や演出用ランプ12が適宜箇所に複数配設される。
【0027】
また、筺体2の内部には、
図2に示すように、リール9の上方に、メイン制御基板14やサブ制御基板15がケースに収納された状態で設置される。メイン制御基板14とサブ制御基板15は、スロットマシン1の制御装置を構成するものであり、基板間を接続する信号線16を介してメイン制御基板14からサブ制御基板15に一方向にコマンド(制御情報)が送信されるよう構成されている。また、筺体2の内部には、リール9の下方に、電源投入スイッチ18を具備する電源ボックス19や、ホッパーユニット20が配設される。また、筺体2の右側部には、前扉3の開放を検出する前扉開放検出センサ22が設けられる。この前扉開放検出センサ22は、前扉3に設けられた反射板23と対向するよう配設され、前扉3の開放を光学的に検出するものである。
【0028】
次に、スロットマシン1の作動を制御する制御回路を、
図3を参照して説明する。
メイン制御基板14は、遊技の進行に関する制御を行うものであり、メイン用マイクロコンピュータ30と、乱数発生回路と、ラッチ回路と、シリアル通信回路32とを備えている。メイン用マイクロコンピュータ30は、CPU、RAM、ROM、I/Oポート等からなり、上述のスタートスイッチ6、ストップスイッチ7、ベットスイッチ5a,5b、精算スイッチ8、及び前扉開放検出センサ22などからの信号は、メイン用マイクロコンピュータ30のI/Oポートに入力する。メイン用マイクロコンピュータ30からは、I/Oポートを介してリール9を駆動するモータ、ホッパーユニット20を駆動するモータ、及び、機外に信号を送信するための外部信号出力基板に夫々信号が出力される。メイン用マイクロコンピュータ30は、シリアル通信回路32を介してサブ制御基板15に、各種のコマンドを送信する。なお、メイン制御基板14からサブ制御基板15へ送信されるコマンドは一方向のみで送られ、サブ制御基板15からメイン制御基板14へ向けてコマンドが送られることはない。メイン用マイクロコンピュータ30は、1.8ミリ秒の間隔でCPUに割込みを発生させる。そして、この割込みの発生毎に後述のコマンド送信処理等が実行される。また、メイン用マイクロコンピュータ30のRAMには、送信するコマンドを一時的に記憶しておくための送信バッファとしての記憶領域が予め確保されている。メイン用マイクロコンピュータ30のCPUは、コマンドを生成し、生成したコマンドを送信バッファに格納する。なお、送信バッファは、複数のコマンドを格納可能である。メイン用マイクロコンピュータ30は、送信バッファに格納した順番でコマンドを送信する。
【0029】
サブ制御基板15は、メイン制御基板14から受信するコマンドに従って、遊技に関する演出等の制御を行うものであり、サブ用マイクロコンピュータ31と、シリアル通信回路33と、乱数発生回路と、ラッチ回路と、音声制御回路と、画像制御回路と、LED駆動回路とを備えている。サブ用マイクロコンピュータ31は、CPU、RAM、ROM、I/Oポート等からなるものである。サブ用マイクロコンピュータ31のROMには、多岐に渡る演出パターンに関する固定データが記憶されている。また、サブ用マイクロコンピュータ31のRAMには、メイン制御基板14から送信されたコマンドを受信するための受信バッファ34(
図5参照)が設けられている。メイン制御基板14とサブ制御基板15のシリアル通信回路32,33は、信号線16によって相互接続されており、メイン制御基板14から送信されるコマンドは、両制御基板14,15のシリアル通信回路32,33を介して受信バッファ34に転送される。サブ用マイクロコンピュータ31のCPUは、1.2ミリ秒の間隔で割込みを発生させる。そして、この割込みの発生毎に受信バッファ34にバッファしたコマンドを取得する。そして、サブ用マイクロコンピュータ31のCPUは、取得したコマンドに対応した処理を実行する。具体的には、I/Oポートから信号を音声制御回路へ出力することで音声制御回路がスピーカーから音を出力し、また、I/Oポートから信号を画像制御回路へ出力することで画像制御回路が液晶表示器に画像を出力し、また、I/Oポートから信号をLED駆動回路へ出力することでLED駆動回路が演出用ランプを点灯させる。
【0030】
また、本実施例では、メイン制御基板14及びサブ制御基板15から外部信号出力基板へスロットマシン1の状態を特定可能な情報が出力される。外部信号出力基板は、遊技場等において遊技機の稼働状況を集中管理するために設置されるコンピュータなどの外部装置に必要な信号を出力する。本実施例では、投入された遊技媒体の数、払い出された遊技媒体の数、ボーナスが発生した旨、エラーが発生した旨を示す信号等がメイン制御基板14から外部信号出力基板を介して外部装置に対して出力される。また、本実施例では、サブ制御基板15からも外部信号出力基板を介して各種信号を外部装置に出力し得るよう構成される。
【0031】
図4(A)は、メイン制御基板14からサブ制御基板15に送信されるコマンドのデータフォーマットを示したものである。このコマンドは、本発明に係る制御情報に相当するものである。
図4(A)に示す通り、コマンドは、1バイトの構成データが5個で1組となった5バイトのデータである。つまり、コマンドは、複数個の構成データにより意味を成すものである。コマンドを構成する構成データは、通信を正常に行うための通信部と、メイン制御基板14の情報を格納するためのデータ部とから成る。具体的には、
図4(B)に示すように、コマンドの先頭の構成データ「ST」は、通信部を構成するものであり、コマンドの先頭を示す固定値が格納される。そして、二番目と三番目の構成データ「DATA1」,「DATA2」は、データ部を構成するものであり、コマンドの種類と内容に応じた値が格納される。また、四番目の構成データ「CH」には、誤り訂正符号であるチェックサムが格納される。具体的には、構成データ「CH」には、「DATA1」と「DATA2」を加算した時の下位1バイトが格納される。そして、五番目の構成データ「EN」は、通信部を構成するものであり、コマンドの終端を示す固定値が格納される。
【0032】
図4(C)は、コマンドのデータ部(「DATA1」及び「DATA2」)の具体例を示したものである。なお、図中の「h」は、16進数であることを意味する。本実施例では、内部当選コマンド、左リール停止コマンド、中リール停止コマンド、右リール停止コマンド、入賞判定コマンド、電源投入コマンド、ドアコマンド、アクティブコマンドを含む複数種類のコマンドをメイン制御基板14からサブ制御基板15へ送信する。内部当選コマンドは、役抽選処理の抽選結果を特定可能なコマンドであり、スタートスイッチ6が操作され役抽選処理が実行されたときに送信される。左リール停止コマンドは、左リールの停止位置を特定可能なコマンドであり、左リールが停止したときに送信される。中リール停止コマンドは、中リールの停止位置を特定可能なコマンドであり、中リールが停止したときに送信される。右リール停止コマンドは、右リールの停止位置を特定可能なコマンドであり、右リールが停止したときに送信される。入賞判定コマンドは、入賞の有無、並びに入賞の種類を特定可能なコマンドであり、全てのリールが停止して停止図柄判定処理が行われたときに送信される。電源投入コマンドは、メイン制御基板14に電源の供給が開始され、メイン制御基板14における起動時の初期設定が完了したときに送信される。ドアコマンドは、前扉開放検出センサ22の検出状態、すなわちON(開放状態)/OFF(閉状態)を示すコマンドであり、電源投入時、1ゲーム終了時(ゲーム終了後、次のゲームの賭数の設定が開始可能となる前までの時点)、前扉開放検出センサ22の検出状態が変化(ONからOFF、OFFからON)した時に送信される。アクティブコマンドは、メイン制御基板14におけるエラー発生の有無、並びにエラーの種類を特定可能なコマンドである。ここで、アクティブコマンド以外のコマンドは、遊技の進行状況やスイッチ・センサの作動状態に応じて生成・送信されるのに対し、アクティブコマンドは、これらのコマンドが送信されない期間に定常的に生成・送信される。すなわち、かかるアクティブコマンドは、本発明に係る特定の制御情報に相当するものである。
【0033】
図5は、メイン制御基板14とサブ制御基板15の通信に係る制御回路を示すブロック図である。本実施例では、構成データは、1本の信号線16を用いて1ビットずつ所定の間隔で所定の順序で所定の時間間隔毎に直列に送信する方式(シリアル通信)により、メイン制御基板14からサブ制御基板15へ送信される。
【0034】
具体的には、メイン用マイクロコンピュータ30は、送信バッファに格納された構成データをデータバス端子より出力する。メイン用マイクロコンピュータ30のデータバス端子とシリアル通信回路32のデータバス端子とはメイン制御基板14上のデータバスを介して接続されている。メイン制御基板14のシリアル通信回路32は、データバス端子に入力される構成データを1ビットずつ所定の通信手順で接続端子より出力するためのものである。メイン制御基板14のシリアル通信回路32は、データバス端子に構成データが入力すると、入力したデータを送信データレジスタに一時的に格納し、送信レジスタに格納された構成データを、シリアルパラレル変換部が1ビットずつ所定の通信手順で接続端子から出力する。また、このとき、メイン制御基板14のシリアル通信回路32は、送信データレジスタを初期化する。
【0035】
メイン制御基板14から出力されるデータは、信号線16を介して、サブ制御基板15のシリアル通信回路33の接続端子へ入力する。サブ制御基板15のシリアル通信回路33のシリアルパラレル変換部は、接続端子に1ビットのデータが入力すると、順次、入力したデータを受信データレジスタへ格納する。サブ制御基板15のシリアル通信回路33は、受信データレジスタへ1個の構成データが格納されると(すなわち1バイト分のデータが格納されると)、受信データレジスタへ格納されているデータをデータバス端子から外部へ出力する。また、このとき、サブ制御基板15のシリアル通信回路33は、受信データレジスタを初期化する。サブ制御基板15のシリアル通信回路33のデータバス端子から出力された構成データは、サブ制御基板15上のデータバスを介して、サブ用マイクロコンピュータ31上のデータバス端子に入力する。サブ用マイクロコンピュータ31は、データバス端子に構成データが入力すると、サブ用マイクロコンピュータ31のRAM上に確保された記憶領域である受信バッファ34に入力した構成データを記憶する。
このように、メイン用マイクロコンピュータ30から構成データ単位で送信するデータは、両制御基板14,15のシリアル通信回路32,33と信号線16を介して、サブ用マイクロコンピュータ31の受信バッファ34に構成データ単位で受信される。すなわち、本実施例では、かかるシリアル通信回路32,33と信号線16が、本発明に係る通信手段に相当し、また、受信バッファ34は、本発明に係る受信手段を構成するものである。
【0036】
図6は、メイン制御基板14のCPUの制御内容にあって、メインルーチンを構成するメイン制御処理の制御内容を示したものである。メイン制御処理において実行される各ステップS100〜S108の詳細は下記の通りである。
S100:規定数(1回の遊技を実行するのに必要なメダルの枚数)の賭数が設定されるまで待機する。
S101:スタートスイッチ6が操作されるまで待機する。
S102:スタートスイッチ6が操作されると乱数発生回路が発生させる乱数をラッチ回路が抽出する。抽出した乱数の値に基づいて当選役の入賞を許容するか否かを決定する。
S103:各リール9の回転を開始し、リール9が所定の回転速度に達すると、ストップスイッチ7の操作を有効とする。
S104:遊技者がストップスイッチ7を操作するまで待機する。
S105:遊技者がストップスイッチ7を操作すると、操作されたストップスイッチ7に対応したリール9が回転を停止する。
S106:全てのリール9の回転が停止するまで待機する。
S107:リール9によって導出された表示結果が予め定められた態様であるか否かを判定する。具体的には、入賞ライン上に表示されている図柄の組合せが所定の入賞役として定められた図柄の組合せと一致しているか否かを判定し、一致している場合には入賞が発生したと判定する。
S108:停止図柄判定処理の判定結果に応じた処理を行う。具体的には、入賞が発生したと判定された場合に、その入賞に応じた払出枚数をクレジットに加算し、クレジットが所定数(50枚)を超えた場合には、超過分のメダルを払い出す。
【0037】
図7は、メイン用マイクロコンピュータ30のCPUが実行するコマンド送信処理の内容を示したものである。このコマンド送信処理は、前述の割込みが発生するたびに、すなわち1.8ミリ秒間隔で実行される。コマンド送信処理では、まず、コマンドを構成する構成データが全て送信された状態であるか否か、つまり、コマンドの送信途上であるか否かを判定する(S200)。そして、コマンドの送信途上であると判定した場合は、ステップS203に移行し、コマンドの送信途上ではないと判定した場合は、ステップS201に移行する。ステップS201では、送信バッファが空であるか否かを判定し、送信バッファが空であると判定した場合は、アクティブコマンドを生成して送信バッファに格納してから(S202)、ステップS203に移行し、送信バッファが空でないと判定した場合はそのままステップS203に移行する。そして、ステップS203では、送信バッファに格納されているコマンドの1バイト(構成データ)をデータバス端子より出力し、シリアル通信回路32を介してサブ制御基板15に送信し、コマンド送信処理を終了する。
【0038】
このように、メイン用マイクロコンピュータ30のCPUは、メイン制御処理の実行状況に応じて遊技の進行に応じたコマンドを生成し、送信バッファに格納する。また、メイン用マイクロコンピュータ30のCPUは、前述の割込みの発生毎に前扉開放検出センサ22の検出状態が変化したか否かを判定し、変化した時にはドアコマンドを生成し、送信バッファに格納する。そして、メイン用マイクロコンピュータ30のCPUは、送信バッファが空になると、アクティブコマンドを生成して送信バッファに格納することで、コマンドを途切れなくサブ制御基板15へ送信し、これにより、構成データが常時1.8ミリ秒間隔でサブ制御基板15に送信されるようにしている。すなわち、本発明に係る制御情報生成手段は、上記メイン制御処理及びコマンド送信処理によって主に実現される。また、本発明に係る送信手段は、上記ステップS203によって主に実現される。
【0039】
図8(A)は、サブ用マイクロコンピュータ31のCPUの制御内容にあって、メインルーチンを構成するサブ制御処理の制御内容を示したものである。
図8(A)に示すように、かかるサブ制御処理では、サブ用マイクロコンピュータ31のCPUが、所定数(5個)の構成データを受信したか否か、すなわち、1個のコマンドを受信したか否かを繰返し判定し(S301)、1個のコマンドを受信したと判定した場合は、受信したコマンドに応じた処理を実行する(S302)。例えば、内部当選コマンドを受信した場合は、役抽選処理の結果に基づいた演出を開始する。具体的には、液晶表示器10に左リール対応画像、中リール対応画像、右リール対応画像を表示する。左リール停止コマンド・中リール停止コマンド・右リール停止コマンドを受信した場合は、各リールに対応した演出を行う。具体的には、左リール停止コマンドを受信した場合には、左リール対応画像を消去する。また、停止位置に基づいて役抽選処理の結果に対応した役の入賞が実現しない場合には、内部当選コマンドの受信に基づき開始した演出を中止する。入賞判定コマンドを受信した場合は、内部当選コマンドの受信に基づき開始した演出を終了する。さらに、入賞があったときには、入賞の種類に応じて演出を実行する。電源投入コマンドを受信した場合、受信時に通信エラーが発生していなければ、サブ制御基板15は初期化の処理を実行する。また、ドアコマンドを受信した場合、前扉3が開放している旨を報知する。具体的には、液晶表示器10にその旨を表示する等を行う。また、エラー状態を示すアクティブコマンドを受信した場合は、エラーの種類を特定可能な態様で報知を行う。具体的には、液晶表示器10に、エラーの種類に対応したエラーコードを表示する等を行う。
【0040】
図8(B)は、サブ用マイクロコンピュータ31のCPUで実行される通信エラー処理の制御内容を示したものである。この通信エラー処理は、本発明に係る第一のエラー処理に相当するものであり、後述する通信エラーの検出を契機に実行される。具体的には、かかる通信エラー処理では、液晶表示器10に通信エラーの発生を示す通信エラー表示を行い(S401)、エラー解除条件が成立したか否かを判定する(S402)。そして、エラー解除条件が成立したと判定するまで、通信エラー表示(S401)を継続する。この通信エラー表示(S401)が継続している間は、液晶表示器10には、その他の画像は表示されない。そして、本実施例では、電源の入れ直しが行われ、かつ、前扉3が開放されていることをもって、通信エラー処理を終了するエラー解除条件とする。具体的には、電源投入コマンドとドアコマンドとを受信し、かつ、ドアコマンドが前扉3の開放を示している場合にのみ、初期化の処理が実行され、初期化により通信エラー処理が終了する。つまり、通信エラー処理の実行中は、電源投入コマンドのみを受信しても、初期化処理が行われず、通信エラー処理は終了しない。本実施例では、エラー解除条件がこのように構成されているため、通信エラー処理を終了させる場合には、施錠された前扉3を開かなくてはいけない。このため、不正行為に起因して通信エラー処理が実行された場合に、不正行為を働いた者が通信エラー処理を解除することを防止できる。また、仮に、不正行為者が前扉3を開放することができたとしても、営業時間中に遊技場の係員以外の者が前扉3を開放しているのは、明らかに不自然であり、遊技場の係員を含む第三者の注目を集めることになるため、不正行為の早期発見を実現できる。
【0041】
サブ用マイクロコンピュータ31のCPUは、前述の割込みの発生毎に通信エラー検出処理を実行する。通信エラー検出処理では、メイン制御基板14から受信するデータに基づいて通信エラーを検出し、検出した通信エラーの内容に応じて上記通信エラー処理を実行する。すなわち、かかる通信エラー検出処理は、本発明に係る第一の通信エラー検出処理及び第二の通信エラー検出処理を実現するものである。具体的には、通信エラー検出処理では、サブ用マイクロコンピュータ31のCPUは、割込みが発生する1.2ミリ秒間隔で、受信バッファ34が新しい構成データ(新規構成データ)を受信したか否かを判定するとともに、新しい構成データを受信していないと連続して判定した回数を計数することで、構成データの受信間隔を監視する。上述のように、メイン制御基板14からは、常時1.8ミリ秒間隔で構成データが送信されるため、通信が正常に行われている場合は、通信エラー検出処理において、少なくとも2回(2.4ミリ秒)に1回は、受信バッファ34で新規構成データが確認される。換言すれば、通信エラー検出処理で、2回以上連続して新規構成データの受信を確認できない場合は、正常に通信が行われていない場合である。通信エラー検出手段では、このように、2回以上連続して構成データの受信を確認できない場合を、通信エラーとして検出する。
【0042】
ここで、本実施例では、通信エラー検出処理で、3回以上連続して構成データの受信を確認できない場合を重度通信エラーとし、2回連続で構成データの受信を確認できない場合を軽度通信エラーとして区別して検出する。構成データの受信を3回以上連続して確認できない場合とは、構成データを3.6ミリ秒間受信できていない状態に相当し、1.8ミリ秒間隔で受信すべき構成データを、2個連続して受信できなかった場合である。自然発生的に生じる通信エラーでは、構成データを単独で受信できないことが殆どであるため、このように2個連続で構成データを受信できない場合は、不正行為が原因である可能性が極めて高い。このため、本実施例では、かかる場合を重度通信エラーを区別して検出し、重度通信エラーを検出した場合は、直ちに通信エラー処理を実行することとしている。すなわち、重度通信エラーは、本発明に係る第一の通信エラーに相当するものであり、重度通信エラーの検出に係る3.6ミリ秒間の判定時間が、本発明に係る第一の判定時間に相当する。
【0043】
一方、軽度通信エラーとして検出される場合とは、構成データを2.4ミリ秒間受信できていない場合であり、メイン制御基板14側から1.8ミリ秒間隔で受信すべき構成データが、何らかの原因で1個だけ受信できなかった場合である。かかる事象は、不正行為が原因である可能性もあるが、自然発生的に生じた可能性もある。このため、本実施例では、単に軽度通信エラーを検出しただけでは通信エラー処理を実行せず、軽度通信エラーが、自然発生的なものとは考えられない程度の頻度で繰り返された場合に、通信エラー処理を実行することとしている。具体的には、
図9(A)に示すように、サブ用マイクロコンピュータ31のCPUは、軽度通信エラーの検出回数をエラーカウントとして計数し、エラーカウントが3回に達した時に通信エラー処理を実行するとともに、軽度通信エラーの検出間隔をタイマで計測し、
図9(B)に示すように、軽度通信エラーが所定時間検出されない場合は、エラーカウントを初期設定(0回)にする。すなわち、軽度通信エラーは、本発明に係る第二の通信エラーに相当するものであり、軽度通信エラーの検出に係る2.4ミリ秒の判定時間が、本発明に係る第二の判定時間に相当する。また、エラーカウントは、本発明に係るエラー計数手段に相当するものであり、エラーカウントの3回が、本発明に係る第一の検出回数に相当する。そして、上記タイマは、本発明に係るエラー計数手段の初期化手段を構成するものである。
【0044】
次に、通信エラー検出処理の実行態様を、タイミングチャートを用いて説明する。
図10(A)は、入賞判定コマンドとアクティブコマンドが正常に送受信された場合のタイミングチャートである。かかる例では、メイン制御基板14は、入賞判定コマンドとアクティブコマンドを構成データ毎に1.8ミリ秒間隔で送信する。一方、サブ制御基板15は、1.2ミリ秒間隔で通信エラー検出処理を実行し、受信バッファ34に構成データを確認した場合は、受信カウントを初期値「5」に設定し、構成データを確認できない場合は受信カウントから1を減算する。この受信カウントは、通信エラー検出処理において、構成データの受信を連続して確認できない回数を計数するためのものであり、この受信カウントが「3」になると軽度通信エラーとなり、受信カウントが「2」になると重度通信エラーとなる。すなわち、この受信カウントは、本発明に係る未受信回数計数手段を構成するものである。
図10(A)の例では、構成データが正常に受信されたため、受信カウントは3以下とはならず、通信エラー処理が実行されることはない。
【0045】
図10(B)は、重度通信エラーを検出した場合のタイミングチャートである。かかる例では、メイン制御基板14から入賞判定コマンドとアクティブコマンドが送信されるものの、何らかの原因により、入賞判定コマンドの2個の構成データ(「05」、「01」)が、連続して受信バッファ34まで到達しない。この場合、サブ制御基板15では、到達しなかった2個の構成データを受信するはずのタイミング(T2,T4)で、受信バッファ34に新規構成データなし(Err)と判定され、受信カウントが減算される。このため、かかる例では、図中のT4の時点で、受信カウントが「2」に減算されて重度通信エラーとなり、図中のT5の時点で通信エラー処理が実行される。
【0046】
図11は、軽度通信エラーを検出した場合のタイミングチャートである。かかる例では、メイン制御基板14から入賞判定コマンドとアクティブコマンドが送信されるものの、何らかの原因により、入賞判定コマンドとアクティブコマンドの構成データ(「05」,「08」)が1個単位で受信バッファ34まで到達しない。この場合、サブ制御基板15では、到達しなかった2個の構成データを受信するはずのタイミング(T2,T10)で、受信バッファ34に構成データなし(Err)と判定され、受信カウントが減算される。このため、かかる例では、図中のT3の時点で、受信カウントが「3」に減算されて軽度通信エラーとなって、エラーカウントが加算されて1になるとともに、所定時間を計測するタイマが作動する。そして、図中のT10の時点では、再び受信カウントが「3」に減算されて軽度通信エラーとなり、エラーカウントが加算されて2になるとともに、前記タイマは初期設定に戻されて、所定時間の計測を最初から開始する。なお、かかる例では、タイマが所定時間の計測を満了する前に軽度通信エラーが検出されたため、エラーカウントが2となるが、軽度通信エラーの検出前にタイマが計測満了した場合は、エラーカウントが0にリセットされる。
【0047】
以上のように、本実施例では、サブ用マイクロコンピュータ31のCPUが、新規構成データを受信したか否かを一定間隔(1.2ミリ秒間隔)で判定し、構成データを連続して受信ていないと判定した回数を計数することで、構成データの受信間隔を監視し、構成データの受信間隔が構成データの送信間隔の二倍を超えた時に、重度通信エラーとして検出する。上述のように、かかる重度通信エラーは、自然発生的な通信エラーでなく、不正行為に起因する通信エラーである可能性が極めて高いものであるから、かかる重度通信エラーの検出に基づいて、厳しい通信エラー処理を実行しても、正しく遊技を行っている遊技者に迷惑をかけることがない。したがって、本実施例のスロットマシン1によれば、コマンドの通信を妨害する不正行為を好適に取り締まることが可能となる。
【0048】
また、本実施例では、サブ用マイクロコンピュータ31で、構成データの受信間隔が構成データの送信間隔を超えた時に、軽度通信エラーとして検出し、この軽度通信エラーを一定頻度以上で検出すると、重度通信エラー処理と同じ通信エラー処理を実行する。軽度通信エラーは、不正行為に起因する可能性もあり、また、自然発生的なものである可能性もあるが、このように、検出頻度が一定頻度以上となった場合にのみ通信エラー処理を実行すれば、不正行為に起因する通信エラーと考えられる場合に限定して通信エラー処理を実行でき、重度通信エラーとしては検出できない不正行為も好適に取り締まることが可能となる。また、軽度通信エラーと重度通信エラーは、構成データの受信間隔の判定基準が異なるだけであるから、本実施例にあっては、簡単な構成によって二種類の通信エラーを検出できるという利点がある。
【0049】
また、本実施例では、メイン用マイクロコンピュータ30が、送信バッファにコマンドが存在しない時にアクティブコマンドを生成し、送出することで、構成データが1.8ミリ秒間隔で常時送出されるよう構成されているため、サブ用マイクロコンピュータ31で、通信エラー検出処理を常時実行し、不正行為を間断なく監視できるという利点がある。
【0050】
次に、通信エラー検出処理の制御処理について説明する。
図12,13は、サブ用マイクロコンピュータ31のCPUで実行される通信エラー検出処理の制御内容を示すフローチャートである。通信エラー検出処理では、サブ用マイクロコンピュータ31のCPUは、まず、受信カウントを減算し(S501)、次いで、受信カウントが1であるか否かを判定する(S502)。そして、受信カウントが1であると判定した場合は、上記通信エラー処理(
図8(B)参照)を実行し(S503)、通信エラー検出処理を終了する。ステップS502で受信カウントが1でないと判定した場合は、エラーカウントをリセットするためのタイマが0でなければ当該タイマから1を減算して(S601)、受信バッファ34に新たな構成データが記憶されているか否かを判定する(S601)。ここで、受信バッファ34に新規構成データなしと判定した場合はステップS607に移行し、受信バッファ34に構成データありと判定した場合はステップS603に移行する。ステップS603では、受信カウントが2であるか否かを判定し、受信カウントが2でないと判定した場合は、受信カウントを初期値「5」に設定してステップS607に移行する。一方、受信カウントが2であると判定した場合は、エラーカウントに1を加算し(S604)、エラーカウントが3であるか否かを判定する(S605)。ここでエラーカウントが3であると判定した場合は、3回の軽度通信エラー検出に基づく通信エラー処理(
図8(B)参照)を実行し(S609)、通信エラー検出処理を終了する。一方、ステップS605でエラーカウントが3でないと判定した場合は、タイマに初期値(所定時間)を設定し(S606)、ステップS607に移行する。ステップS607では、タイマが0か否か、すなわち、設定時間の計測を満了したか否かを判定し、タイマが0でないと判定した場合は、そのまま通信エラー検出処理を終了し、タイマが0であると判定した場合は、エラーカウンタを0に初期化してから(S608)、通信エラー検出処理を終了する。
【0051】
上記通信エラー検出処理の制御内容にあって、本発明に係る第一の通信エラー検出手段は、ステップS501,S502,S602,S610によって主に実現される。また、本発明に係る第二の通信エラー検出手段は、ステップS501,S602,S603,S610によって主に実現される。また、本発明に係る受信状態確認手段は、ステップS602によって主に実現される。また、本発明に係る未受信回数計数手段は、ステップS501,S610によって主に実現される。また、本発明に係るエラー計数手段は、ステップS604によって主に実現される。また、本発明に係る初期化手段は、ステップS601,S606,S607,S608によって主に実現される。また、本発明に係る第一のエラー処理実行手段は、ステップS503,S609によって主に実現される。
【実施例4】
【0057】
本実施例は、実施例1からコマンドの送信態様を変更し、それに合わせて通信エラー検出処理を一部変更したものである。具体的には、実施例1では、アクティブコマンドを生成することで、メイン制御基板14が1.8ミリ秒間隔で構成データを常時送信するのに対し、本実施例では、メイン制御基板14は、アクティブコマンドを生成・送信せず、状況によって、メイン制御基板14がコマンドを送信しない休止期間が存在する。そして、本実施例では、かかる休止期間に対応するために、休止期間中は、サブ用マイクロコンピュータ31で、構成データの受信間隔に基づく通信エラーを検出しないようにする。
【0058】
具体的には、サブ用マイクロコンピュータ31は、通信エラーの検出を有効/無効を管理するカウントフラグを備え、カウントフラグの有効時のみ通信エラーを検出するようにする。カウントフラグは、コマンドの先頭を示す構成データ「ST」を受信すると有効となり、コマンドの終端を示す構成データ「EN」を受信すると無効となる。すなわち、本実施例にあっては、サブ用マイクロコンピュータ31は、1個のコマンドの先頭から終端までの構成データを受信するまでの間、1.2ミリ秒間隔で、新規構成データを受信したか否かを判定する。そして、実施例1同様に、3回以上連続して構成データの受信を確認できない場合は重度通信エラーとして検出し、直ちに通信エラー処理を実行する。また、2回連続で構成データの受信を確認できない場合は軽度通信エラーとして検出し、エラーカウントが3回に達した時点で通信エラー処理を実行する。ここで、本実施例では、コマンドの先頭又は終端の構成データ「ST」,「EN」を正常に受信できない場合には、通信エラー検出処理が正常に実行されないため、コマンドの先頭又は終端の構成データ「ST」,「EN」が確認できない場合は、直ちに通信エラーとするよう構成される。このように、本発明は、メイン制御基板14がコマンドを送信しない休止期間のある構成にも適用できる。なお、本実施例では、コマンドの先頭と終端の構成データに基づいて、通信エラー検出の有効/無効を切り替えるようにしているが、かかる構成に替えて、コマンドの送信前と送信後に、メイン制御基板14から通信エラー検出の有効/無効を切り替えさせる信号を別途送信するようにしてもよい。
【0059】
次に、通信エラー検出処理の実行態様を、タイミングチャートを用いて説明する。
図17(A)は、入賞判定コマンドが正常に送受信された場合のタイミングチャートである。かかる例では、メイン制御基板14は、入賞判定コマンドを構成データ毎に1.8ミリ秒間隔で送信し、その後は、コマンドの送信を休止する。かかる場合は、サブ用マイクロコンピュータ31は、入賞判定コマンドの先頭の構成データ「ST」を受信した時点(T1)で、カウントフラグが無効(N)から有効(Y)に切り替わり、1.2ミリ秒間隔で受信バッファ34の構成データの有無を確認する。そして、終端の構成データ「EN」を受信した時点(T7)で、カウントフラグが有効(Y)から無効(N)に切り替わり、サブ用マイクロコンピュータ31は、通信エラーの検出を休止する。このため、サブ用マイクロコンピュータ31は、入賞判定コマンド受信後(T8〜T15)は、構成データを受信しなくても、通信エラーとして検出せず、通信エラー処理を実行することもない。
【0060】
図17(B)は、重度通信エラーを検出した場合のタイミングチャートである。かかる例では、メイン制御基板14は、
図17(A)と同様に、入賞判定コマンドを送信後、コマンドの送信を休止する。ここで、かかる例では、入賞判定コマンドの2個の構成データ(「05」、「01」)が、連続して受信バッファ34まで到達しない。かかる場合は、入賞判定コマンドの先頭の構成データ「ST」を受信した時点で、カウントフラグが有効(Y)となっているから、サブ用マイクロコンピュータ31は、到達しなかった2個の構成データを受信するはずのタイミング(T2,T4)で、受信バッファ34に新規構成データなし(Err)と判定し、受信カウントを減算する。このため、かかる例では、図中のT4の時点で、受信カウントが「2」に減算されて重度通信エラーとなり、図中のT5の時点で通信エラー処理が実行される。
【0061】
図18は、軽度通信エラーを検出した場合のタイミングチャートである。かかる例では、メイン制御基板14は、入賞判定コマンドを送信し、コマンドの送信を一時休止した後に、アクティブコマンドを送信する。そして、かかる例では、何らかの原因により、入賞判定コマンドとアクティブコマンドの構成データ(「05」,「08」)が1個単位で受信バッファ34まで到達しない。かかる場合は、サブ用マイクロコンピュータ31は、入賞判定コマンド及びアクティブコマンドの受信中(T1〜T7,T11〜T15)は、カウントフラグが有効(Y)になっているから、それぞれの構成データの未受信(「05」,「08」)は、受信カウントに反映され、図中のT3及びT13の時点で軽度通信エラーとなってエラーカウントが加算される。また、サブ用マイクロコンピュータ31は、入賞判定コマンドの終端の構成データ「EN」を受信してから、アクティブコマンドの先頭の構成データ「ST」を受信するまでの間(T8〜T10)は、カウントフラグが無効(N)となっているから、構成データを受信していなくても、エラーカウントが加算されることはない。
【0062】
なお、本実施例では、コマンドの終端の構成データを受信してから、次のコマンドの先頭の構成データを受信するまでの間、すなわち、通信エラーの検出を休止している期間は、エラーカウントをリセットするためのタイマを停止している。例えば、
図19(A)のタイミングチャートは、コマンドA、C、Dの受信時に夫々軽度通信エラーが検出され、コマンドDの受信時にエラーカウントが3となって通信エラー処理が実行された例である。かかる例にあって、タイマは、各コマンドの構成データを受信している間のみ作動し、構成データを受信しない期間はタイマを停止する。具体的には、タイマは、図中のTa1,Ta2,・・・,Taxで作動し、初期設定された後に、Tb1,・・・,Tbxで作動する。なお、
図19(A)では、タイマが所定時間の計測を満了せず、コマンドDの受信時にエラーカウントが3回に達しているが、例えば、
図19(B)に示すように、図中のTb1,・・・,Tbxが所定時間に達すると、タイマの計測満了により、エラーカウントが0にリセットされる。
【0063】
次に、実施例4に係る通信エラー検出処理の制御処理について説明する。
図20,21,22は、サブ用マイクロコンピュータ31のCPUで実行される通信エラー検出処理の制御内容を示すフローチャートである。通信エラー検出処理では、サブ用マイクロコンピュータ31のCPUは、まず、カウントフラグがY(有効)であるか否かを判定し(S701)、カウントフラグがN(無効)であると判定した場合は、ステップS801に移行する。一方、カウントフラグがYであると判定した場合は、受信カウントを減算し(S702)、次いで、受信カウントが1であるか否かを判定する(S703)。そして、受信カウントが1であると判定した場合は、上記通信エラー処理を実行し(S704)、通信エラー検出処理を終了する。ステップS703で受信カウントが1でないと判定した場合は、ステップS801に移行する。
【0064】
ステップS801では、カウントフラグがYであるか否かを判定し、カウントフラグがNであると判定した場合は、そのままステップS803に移行し、カウントフラグがYであると判定した場合は、タイマが0でなければタイマから1を減算してから(S802)、ステップS803に移行する。ステップS803では、受信バッファ34に新たな構成データが記憶されているか否かを判定する。ここで、受信バッファ34に構成データなしと判定した場合はステップS904に移行し、受信バッファ34に構成データありと判定した場合はステップS804に移行する。ステップS804では、受信バッファ34の構成データがコマンドの最初(1バイト目)の構成データとして受信したデータであるか否かを判定する。そして、最初の構成データであると判定した場合はステップS809に移行し、最初の構成データでないと判定した場合はステップS805に移行する。ステップS805では、受信バッファ34の構成データがコマンドの最後(5バイト目)の構成データとして受信したデータであるか否かを判定する。そして、最後のデータであると判定した場合は、受信した構成データが、コマンドの終端の構成データ「EN」であるかを判定し(S806)、終端の構成データ「EN」でないと判定した場合はステップS812に移行し、終端の構成データであると判定した場合は、カウントフラグをNに設定し(S807)、ステップS808に移行する。ステップS808では、受信カウントが2であるか否かを判定し、受信フラグが2であると判定した場合は、ステップS901に移行し、受信フラグが2でないと判定した場合は、ステップS811に移行する。ステップS809では、受信した構成データが、コマンドの先頭の構成データ「ST」であるかを判定し、先頭の構成データ「ST」でないと判定した場合はステップS812に移行し、先頭の構成データであると判定した場合は、カウントフラグをYに設定し(S810)、ステップS811で受信カウントに初期値(5)を設定し、ステップS904に移行する。また、ステップS812では、上記通信エラー処理を実行し、続いて、カウントフラグをNに設定して(S813)、通信エラー検出処理を終了する。
【0065】
ステップS901では、エラーカウントに1を加算し、続いて、ステップS902でエラーカウントが3であるか否かを判定する。そして、エラーカウントが3でないと判定した場合は、タイマに初期値を設定し(S903)、ステップS904に移行する。ステップS904では、タイマが0か否か、すなわち、設定時間の計測を終了したか否かを判定し、タイマが0でないと判定した場合は、そのまま通信エラー検出処理を終了し、タイマが0であると判定した場合は、エラーカウンタを初期化してから(S905)、通信エラー検出処理を終了する。一方、ステップS902で、エラーカウントが3であると判定した場合は、上記通信エラー処理を実行して(S906)、通信エラー検出処理を終了する。
【0066】
なお、本発明の遊技機は、上記実施例の形態に限らず本発明の要旨を逸脱しない範囲内において種々変更を加えることができる。例えば、上記実施例は、本発明をスロットマシンに適用したものであるが、本発明は、パチンコ機等の遊技機にも同様にして適用可能である。また、上記実施例は、スロットマシンのメイン制御基板とサブ制御基板の通信に本発明を適用したものであるが、本発明は、メイン制御基板とサブ制御基板の間の通信に限定されるものではない。なお、本発明は、第一の制御手段から第二の制御手段に制御情報が一方向に送信される構成に特に有効であるが、本発明は、制御情報が双方向に送信される構成にも適用可能である。
【0067】
また、上記実施例では、本発明の通信手段を、両制御基板14,15のシリアル通信回路32,33と信号線16とによって構成しているが、本発明の通信手段は、パラレル通信方式の通信回路によって構成することもできる。また、上記実施例では、制御情報(コマンド)が5バイトデータであり、各制御情報を1バイト単位の構成データに分割して送信しているが、本発明に係る制御情報は、可変長であってもよいし、制御情報と構成データのサイズを等しくして、制御情報を分割せず、一つの構成データとして送信することもできる。また、上記実施例では、本発明に係る第一の判定時間が、構成データの送信間隔(1.8ミリ秒)の二倍(3.6ミリ秒)に設定され、構成データを二個連続して受信できない場合を重度通信エラーとして検出しているが、本発明に係る第一の判定時間は、自然発生的な通信エラーを十分に排除し得る長さに設定すべきものであり、通信手段の仕様によっては、構成データの送信間隔の二倍以外の値に設定され得る。
【0068】
また、上記実施例では、重度通信エラー(第一の通信エラー)を検出した時に、液晶表示器10で通信エラー表示を行っているが、本発明に係る第一のエラー処理の内容や解除条件は、適宜設定可能である。また、上記実施例では、軽度通信エラー(第二の通信エラー)を高頻度で検出した時に、通信エラー処理(第一のエラー処理)を実行しているが、本発明にあっては、軽度通信エラーを一回、又は低頻度で検出した時に、通信エラー処理よりも軽度のエラー処理を実行してもかまわない。
【0069】
また、上記実施例では、軽度通信エラーを検出するたびにエラーカウント(エラー計数手段)をリセットするためのタイマを初期化しているが、2回目の軽度通信エラーの検出時はタイマを初期化せず、3回目の軽度通信エラーを検出するまでの間にタイマが所定時間を計測満了した時に、エラーカウントを初期化するようにしてもよい。また、タイマの計測満了に替えて、所定コマンドを所定回数受信した場合にエラーカウントを初期化するようにしてもよい。
【0070】
また、上記実施例3では、コマンドのチェックサムが不一致となった場合を軽度検出エラーとして検出しているが、チェックサムによるチェックに替えて、又は加えて、コマンドのうち固定値を有する構成データが、正常値であるか否かを判定するようにしても良い。例えば、上記実施例1のコマンドでは、先頭の構成データ「ST」は、いずれのコマンドであっても、固定値である「AA(16進数)」が格納されている。このため、サブ用マイクロコンピュータ31のCPUは、1バイト目の構成データを受信した場合に、受信した構成データが「AA」であるか否かを判定することで、通信エラーの発生を検出できる。