以上説明した本発明の構成および作用を一層明らかにするために、以下本発明を適用した遊技機について説明する。なお、本明細書において、信号名の先頭に「#」が付されているものは、負論理であることを意味している。「ハイレベル」は2値信号の2つのレベルのうちの「1」レベルを意味し、「ローレベル」は「0」レベルを意味している。
A.パチンコ機10の構成:
本発明の実施例の1つであるパチンコ機10の構成について説明する。図1はパチンコ機10の全体構成を示す正面図であり、図2はパチンコ機10の背面構成を示す図であり、図3は遊技球をパチンコ機10内に誘導する各種誘導通路を示す図であり、図4は遊技球をパチンコ機10外に排出する各種排出通路を示す図である。まず、パチンコ機10の正面構成について説明し、続いてパチンコ機10の背面構成について説明する。
パチンコ機10は、図1に示すように、パチンコ店のいわゆる島に固定される外枠11、外枠11に嵌め込まれる内枠12、内枠12の中央上寄りに配置され遊技球による遊技が行われる遊技盤13、遊技盤13の前面に配置され中央部にガラス板を有するガラス枠14、遊技盤13に遊技球を発射するための遊技者による操作を受け付けるハンドル15、パチンコ機10の裏面に配置されパチンコ島設備(図示しない)から供給される払出用の遊技球を貯留する球タンク17,遊技者に対して払い出された遊技球を貯留する上皿16および下皿19,プリペイドカードによる遊技球の貸し出しを受け付けるカードユニット90などを備える。
遊技盤13の中央部には、液晶ディスプレイ(Liquid Crystal Display、以下、LCDという)35を備えるセンター役物装置34が設けられ、このセンター役物装置34の下方には、遊技球の入賞を受け付ける始動入賞口61が設けられている。この始動入賞口61は、入賞した遊技球を検知する遊技球センサ65、所定の場合に遊技球の導入経路を拡縮する遊技板駆動部66を備える。始動入賞口61の左方および右方には普通入賞口63、下方には大入賞口64がそれぞれ配置されている。
パチンコ機10は、発光ダイオード(Light Emitting Diode、LED)を有する電飾55,56,57,58,59を備える。電飾55,56は遊技盤13の左右の端にそれぞれ設けられ、電飾57はLCD35の上部に設けられ、電飾58,59は、ガラス枠14の上部の左右にそれぞれ設けられている。また、ガラス枠14の上部の左には、遊技球の払い出しに関する状態を表示する状態表示部72が設けられている。内枠12の正面中央には、音声を出力するスピーカ45が内蔵されている。
次に、パチンコ機10の背面構成について説明する。パチンコ機10の背面には、図2に示すように、上側に球タンク17、その右側に払出装置76がそれぞれ装着されている。球タンク17の下方に、球タンク17から払出装置76に向けて遊技球が転動するよう傾斜した状態(図2中、右下がりの勾配を持たせた状態)でタンクレール18が設けられている。球タンク17は図示しないパチンコ島設備から供給される遊技球を受け、この遊技球はタンクレール18を転動して払出装置76で取り込まれる。
タンクレール18の下方には、図1に示した遊技盤13が配置されている。この遊技盤13の裏面中央上寄りには図1に示したセンター役物装置34が配置されており、このセンター役物装置34の後部にはLCD35が取り付けられている。このLCD35はLCD35の表示制御を行う図柄制御基板30とモジュール化されており、図柄制御基板ボックス31に収容されている。
遊技盤13の裏面下側には、ボックス装着台39が配置されている。このボックス装着台39は、サブ制御基板40が収容されたサブ制御基板ボックス41と、主制御基板20が収容された主制御基板ボックス21と、が装着されている。具体的には、サブ制御基板ボックス41に重ね合わされた状態で主制御基板ボックス21が装着されている。ボックス装着台39は、サブ制御基板ボックス41および主制御基板ボックス21が装着された状態でもサブ制御基板ボックス41および主制御基板ボックス21が遊技盤13の外郭より外側にはみ出さないように配置されている。
このように、タンクレール18の下方には、図柄制御基板ボックス31および主制御基板ボックス21等が突出している。このため、球タンク18から落下した遊技球による損傷又は電気的な短絡が生じないよう後カバー42が設けられている。この後カバー42は、図柄制御基板ボックス31および主制御基板ボックス21の上側を覆いかぶさる大きさの矩形状に形成されており、図示しないカバーヒンジ機構により開閉および着脱可能に装着されている。なお、後カバー42は半透明の合成樹脂材により形成されており、後カバー42が閉状態であっても、例えば作業者が図柄制御基板ボックス31等を目視できるようになっている。
主制御基板ボックス21は、その上側を除いて後カバー42に覆われることなく露出されている。主制御基板20は、その下側に検査用コネクタ22およびRAMクリアスイッチ23を備えており、検査用コネクタ22およびRAMクリアスイッチ23が主制御基板ボックス21から露出されている。このため、後カバー42が閉状態であっても、検査用コネクタ22に図示しない基板検査装置のコネクタを差し込むことができ、主制御基板20の検査を行うことができる。また、RAMクリアスイッチ23を操作して、主制御基板20から遊技に関する各種情報を消去(クリア)することができる。
パチンコ機10の背面下側領域(以下、単に「下側領域」と記載する。)には、その左側に発射装置43が装着されている。この発射装置43は、発射モータ44および発射ハンマー45を備えて構成されている。発射モータ44は、発射ハンマー46を作動させて遊技球を、遊技盤13に区画形成された遊技領域に向けて発射する(打ち込む)。下側領域の中央には、払出制御基板70が収容された払出制御基板ボックス71が装着されている。払出制御基板70は、払出装置76の駆動源である払出駆動部75(本実施形態では、ステッピングモータを用いている。)の駆動制御を行って払出制御を行う。下側領域の右側には、インターフェース基板47が収容されたインターフェース基板ボックス48が装着されている。インターフェース基板47は、パチンコ機10に隣接して設置されている、図1に示したカードユニット90と払出制御基板70とを電気的に接続し、球貸に関する信号を送受信する。
次に、パチンコ機10およびパチンコ島設備の遊技球の循環について説明する。球タンク17に貯留した遊技球は、図3に示すように、タンクレール18を転動して払出装置76で取り込まれる。この取り込まれた遊技球は、払出駆動部75の出力軸と一体となって回転する球切り出し部材77により上皿用誘導通路16a又は球抜き排出通路16bのいずれかに切り出される。
上皿用誘導通路16aに切り出された遊技球は、上皿16と連通する上皿球貯留部16cに誘導されて落下する。そして上皿16および上皿球貯留部16cが満タンとなり、さらに遊技球が落下してくると、上皿球貯留部16cから溢れた遊技球は、仕切壁16dを超えて下皿用誘導通路19aを通って下皿19と連通する下皿球貯留部19bに誘導されて落下する。
一方、球抜き排出通路16bに切り出された遊技球は、図4に示すように、抜き球として抜き球排出通路16eを通ってパチンコ島設備へ誘導される。なお、図1に示した始動入賞口61、大入賞口62および普通入賞口63に入球した遊技球はセーフ球としてセーフ球排出通路16fを通ってパチンコ島設備へ誘導される。また、図1に示したアウト口64で回収された遊技球は、アウト球としてアウト球排出通路16gを通ってパチンコ島設備へ誘導される。パチンコ島設備に誘導された抜き球、セーフ球およびアウト球は図3に示した球タンクに再び供給されており、パチンコ機10およびパチンコ島設備では、遊技球が循環するようになっている。この循環する遊技球は、互いにこすれ合って帯電し、静電放電してノイズが発生する。
抜き球排出通路16e、セーフ球排出通路16fおよびアウト球排出通路16gは、上皿用誘導通路16aおよび下皿用誘導通路19aに連通しないよう配置されている。このように、図2に示した払出制御基板ボックス71の裏面には、抜き球排出通路16e、セーフ球排出通路16f、アウト球排出通路16g、上皿用誘導通路16aおよび下皿用誘導通路19aが配置されており、払出制御基板ボックス71に収容された払出制御基板70はノイズの影響を極めて受けやすい環境下にある。
図5は、パチンコ機10の電気的な概略構成を示すブロック図である。パチンコ機10は、遊技の進行を制御する主制御基板20と、主制御基板20からのコマンドに基づいて遊技球の払出を制御する払出制御基板70と、遊技進行に応じてLCD35やスピーカ45,電飾55〜59を用いた演出を制御するサブ制御基板40と、LCD35における動画像表示を制御する(表示制御を行う)図柄制御基板30とを備える。払出制御基板70は、遊技球の払い出しを実行する払出駆動部75と、上述した払い出しに関する状態を表示する状態表示部72とに接続されている。
主制御基板20,払出制御基板70,サブ制御基板40,図柄制御基板30の各基板は、種々の演算処理を行うセントラルプロセッシングユニット(Central Processing Unit、中央演算処理装置、以下、CPUという),CPUの演算処理を規定したプログラムを予め記憶するリードオンリメモリ(Read Only Memory、以下、ROMという),CPUが取り扱うデータを一時的に記憶するランダムアクセスメモリ(Random Access Memory、以下、RAMという)などの各基板に応じた電子部品が実装された回路基板である。
主制御基板20と払出制御基板70との間では、種々のコマンドがシリアルで送信される。主制御基板20と払出制御基板70との間のコマンドは、2バイト単位で構成され、1バイト単位に分割してシリアルで送信される。コマンドを正常に受信した基板は、コマンドを送信した基板に対して、正常にコマンドを受け取ったことを伝える確認信号であるACK(アック、Acknowledge)信号を送信する。主制御基板20と払出制御基板70との間のコマンドの送受信について詳しくは後述する。
主制御基板20からサブ制御基板40に対してや、サブ制御基板40から図柄制御基板30に対しては、それぞれ種々のコマンドがパラレルで送信される。主制御基板20からサブ制御基板40に対する主なコマンドとしては、いわゆる「大当たり」や「はずれ」などの遊技に関する基本的な演出を指示するコマンドがある。サブ制御基板40から図柄制御基板30に対する主なコマンドとしては、主制御基板20からのコマンドに基づくLCD35における動画像の表示態様を指示するコマンドがある。
図6は、主制御基板20および払出制御基板70の電気的な構成の詳細を示すブロック図である。主制御基板20は、主制御基板20における種々の演算処理を行うCPUとして、外部とのシリアル通信機能およびパラレル通信機能を有する主CPU200を備える。主CPU200には、演算処理を行う演算処理部210と、外部とのシリアル通信を行うシリアルIF部220と、外部とのパラレル通信を行うパラレルIF部230とが回路構成されている。
シリアルIF部220は、演算処理部210からパラレルデータTDaを受け取り記憶する送信バッファレジスタ240と、送信バッファレジスタ240に記憶されたデータを受け取りシリアルデータDabに変換して払出制御基板70にシリアルで送信する送信シフトレジスタ250と、払出制御基板70からシリアルデータDbaを受け取り記憶する受信シフトレジスタ260と、受信シフトレジスタ260に記憶されたデータを受け取り演算処理部210によってパラレルデータRDaとして読み出し可能に記憶する受信バッファレジスタ270と、シリアルIF部220における各部の動作状態を管理するシリアル管理部280とを備え、これらシリアルIF部220の構成回路は1チップに集積されている。送信バッファレジスタ240,送信シフトレジスタ250,受信シフトレジスタ260,受信バッファレジスタ270は、それぞれ1バイトの記憶容量を有するレジスタである。
シリアル管理部280は、送信シフトレジスタ250および送信バッファレジスタ240に関して、送信シフトレジスタ250がシリアルの送信中でない場合に、送信バッファレジスタ240から送信シフトレジスタ250へのデータの受け渡しを許可しデータが受け渡された後、送信バッファレジスタ240からデータを消去するように回路構成されている。
シリアル管理部280は、受信シフトレジスタ260および受信バッファレジスタ270に関して、受信バッファレジスタ270にデータが記憶されていない場合に、受信シフトレジスタ260から受信バッファレジスタ270へのデータの受け渡しを許可し、演算処理部210が受信バッファレジスタ270からパラレルデータRDaを読み出した後に、受信バッファレジスタ270からデータを消去するように回路構成されている。
なお、シリアルIF部220によるシリアルの送信レートは、主CPU200を動作させるためのクロック信号を分周した信号に基づいて決定される。この送信レートを決定するクロック信号の分周比は、シリアルIF部220に内蔵されたレジスタ(図示しない)の値によって設定することができる。
演算処理部210は、送信バッファレジスタ240に対して書き込み信号#WRaを立ち下げることによって、送信バッファレジスタ240へのパラレルデータTDaの書き込みを行い、受信バッファレジスタ270に対して読み出し信号#REaを立ち下げることによって、受信バッファレジスタ270からのパラレルデータRDaの読み出しを行う。
演算処理部210は、シリアルIF部220における種々の状態を示す信号を、シリアル管理部280から受ける。演算処理部210がシリアル管理部280から受ける信号としては、送信バッファレジスタ240がクリアされている際にハイレベルとされる送信バッファ空き信号TEaと、送信シフトレジスタ250がシリアルで送信中である際にハイレベルとされるシリアル送信中信号TCaと、受信バッファレジスタ270にデータが記憶されている際にハイレベルとされる受信データ有り信号DFaとがある。
図6に示すように、払出制御基板70は、払出制御基板70における種々の演算処理を行う払出CPU710と、外部とのシリアル通信およびパラレル通信を行う回路が形成されたシリパラIFチップ720と、シリパラIFチップ720にクロック信号CLKを出力する発振器792と、払出CPU710およびシリアパラIFチップ720をリセットするリセット信号RSTを出力するリセットIC794とを備える。なお、本実施形態では、クロック信号CLKとして8メガヘルツ(MHz)が設定されている。
シリパラIFチップ720には、外部とのシリアル通信を行うシリアルIF部722と、外部とのパラレル通信を行うパラレルIF部730と、所定の帯域周波数成分を取り出すデジタルフィルタ部790とが回路構成されており、これらシリパラIFチップ720の構成回路は1チップに集積されている。
なお、デジタルフィルタ部790には、発振器792からのクロック信号CLKおよびリセットIC794からのリセット信号RSTがそれぞれ入力されている。デジタルフィルタ部790は、クロック信号CLKに基づいて所定の帯域周波数成分をリセット信号RSTから取り出すフィルタ処理を行う。このフィルタ処理では、実験により得た1マイクロ秒(μs)のノイズを除去するために2μs以下の信号を除去している。フィルタ処理されたリセット信号RSTはシリアルIF部722およびパラレル部750に入力されており、ノイズの影響によるインパルス状のリセット信号RSTがシリアルIF部722およびパラレルIF部730に入力されないようになっている。このように、ノイズの影響によるリセットがシリアルIF部722およびパラレルIF部730に働かないようにしている。
シリアルIF部722は、払出CPU710からパラレルデータTDbを受け取り記憶する送信バッファレジスタ740と、送信バッファレジスタ740に記憶されたデータを受け取りシリアルデータDbaに変換して主制御基板20にシリアルで送信する送信シフトレジスタ750と、主制御基板20からシリアルデータDabを受け取り記憶する受信シフトレジスタ760と、受信シフトレジスタ760に記憶されたデータを受け取り払出CPU710によってパラレルデータRDbとして読み出し可能に記憶する受信バッファレジスタ770と、シリパラIFチップ720における各部の動作状態を管理するシリアル管理部780とを備える。送信バッファレジスタ740,送信シフトレジスタ750,受信シフトレジスタ760,受信バッファレジスタ770は、それぞれ1バイトの記憶容量を有するレジスタである。
シリアル管理部780は、受信バッファレジスタ770をクリアするために払出CPU710から出力されるセット信号CBbを受けてセットされるクリアレジスタ782を備える。シリアル管理部780は、クリアレジスタ782がセットされた場合に、受信バッファレジスタ770からデータを消去し、受信バッファレジスタ770からデータがクリアされるのに応じて、クリアレジスタ782をリセットするように回路構成されている。シリアル管理部780は、受信バッファレジスタ770にデータが記憶されていない場合に、受信シフトレジスタ760から受信バッファレジスタ770へのデータの受け渡しを許可するようにも回路構成されている。
シリアル管理部780は、送信シフトレジスタ750および送信バッファレジスタ740に関して、送信シフトレジスタ750がシリアルで送信中でない場合に、送信バッファレジスタ740から送信シフトレジスタ750へのデータの受け渡しを許可しデータが受け渡された後に、送信バッファレジスタ740からデータを消去するように回路構成されている。
なお、主制御基板20からシリアルで送信されたコマンドをシリパラIFチップ720が受信するタイミング(受信タイミング)は、発振器792から出力されたクロック信号CLKに基づいて決定されており、シリパラIFチップ720に内蔵された分周器796により作られている。その分周比は固定されており、受信タイミングはシリパラIFチップ720(送信シフトレジスタ750)から主制御基板20にシリアルで送信する際の送信レートの16倍に設定されている。具体的には、発振器792のクロック信号CLKが8MHzであるときには、このクロック信号CLKが分周器796で分周され、送信レートは1200ボーレート(bps)に設定され、受信タイミングは19.2キロヘルツ(kHz)に設定される。このように、送信レート及び受信タイミングは、シリパラIFチップ720に外付けされた発振器792のクロック信号CLKによって一義的に決定される。
ここで、プログラムによって受信タイミング(送信レート)を設定するような場合では、送受信形式設定レジスタを内蔵する必要があり、ノイズの影響を受けて意図しない値が設定されたり又は設定したはずの値がクリアされたりすると、本来設定すべき受信タイミング(送信レート)が変わり、シリアルでの送受信ができなくなる。払出CPU710に接続されるシリパラIFチップ720は、上述したように、外付けされた発振器792のクロック信号CLKによって受信タイミング(送信レート)が一義的に決定されるためノイズの影響を受けなくなり、例えば主制御基板20からシリアルで送信されたコマンドの取りこぼし等を防止することができる。また受信タイミング(送信レート)の設定の他に、プログラムによってフレーミングエラー等のエラー検出を設定する場合では、送受信形式設定レジスタに設定値を設定する必要があり、ノイズの影響を受けて意図しない値が設定されたり又は設定したはずの値がクリアされたりすると、本来設定すべきエラー検出ができなくなる。本実施形態におけるシリパラIFチップ720に内蔵するシリアルIF部722は、エラー検出を行うように固定設定されているためノイズの影響を受けてもエラー検出ができなくなることがない。なお、「フレーミングエラー」とは、シリアルで送信されたデータの最後に付加されているビット(「ストップビット」という。)を受信できないときに検出されるエラーである。
払出CPU710は、送信バッファレジスタ740に対して書き込み信号#WRbを立ち下げることによって、送信バッファレジスタ740へのパラレルデータTDbの書き込みを行い、受信バッファレジスタ770に対して読み出し信号#REbを立ち立ち下げることによって、受信バッファレジスタ770からのパラレルデータRDbの読み出しを行う。
払出CPU710は、シリパラIFチップ720における種々の状態を示す信号を、シリアル管理部780から受ける。払出CPU710がシリアル管理部780から受ける信号としては、送信バッファレジスタ740がクリアされている際にハイレベルとされる送信バッファ空き信号TEbと、送信シフトレジスタ750がシリアルで送信中である際にハイレベルとされるシリアル送信中信号TCbと、受信バッファレジスタ770にデータが記憶されている際にハイレベルとされる受信データ有り信号DFbとがある。
主制御基板20が払出制御基板70に送信するコマンドは、遊技球の払い出しに関する払出コマンドである。払出コマンドは、例えば、遊技球の払い出し個数を指定するコマンドであり、複数ビットのコマンドである。払出コマンドは、送信シフトレジスタ250から受信シフトレジスタ760にシリアルで送信される。払出CPU710は、払出コマンドを正常に受信したと判断すると、アック信号を主制御基板20に送信する。アック信号は、パラレルIF部730からパラレルIF部230にパラレルで送信される。図示は省略したが、パラレルIF部730とパラレルIF部230には複数のパラレルポートが備えられている。アック信号は1ビットの信号であり、パラレルIF部730とパラレルIF部230の間で、各々複数のパラレルポートのうち1ビット分のポートを利用して送受信される。
払出制御基板70が主制御基板20に送信するコマンドは、払出CPU710が検知するパチンコ機10の動作状態を、主制御基板20に通知するための動作状態コマンドである。払出コマンドは複数ビットのコマンドであり、動作状態コマンドには、例えば、遊技球が賞球ユニット内に十分ないことを示す球切れ情報と、カードユニット90がパチンコ機10に接続されていないことを示す情報と、主制御基板20と払出制御基板70の間でコマンドを正常に送受信できないことを示す情報が含まれる。動作状態コマンドは、送信シフトレジスタ750から受信シフトレジスタ260にシリアルで送信される。主CPU200は、動作状態コマンドを正常に受信したと判断すると、アック信号を払出制御基板70に送信する。アック信号は1ビットの信号であり、パラレルIF部230とパラレルIF部730の間で、各々複数のパラレルポートのうち1ビット分のポートを利用して送受信される。
なお、パラレルIF部730は、上述したように、複数のパラレルポートを備えており、パラレルポートごとに入力方向又は出力方向のいずれかに固定されている。ここで、パラレルポートの入出力方向をプログラムにより設定するような場合では、入出力方向設定レジスタを内蔵する必要があり、ノイズの影響を受けて意図しない値が設定されたり又は設定したはずの値がクリアされたりすると、本来設定すべき入出力方向が変わる。そうすると、上述したアック信号は、パラレルIF部730から出力されないおそれが生じ、払出制御基板70(パラレルIF部730)が主制御基板20に払出コマンドを受信した旨を伝えることができなくなる。このように、本実施形態におけるシリパラIFチップ720に内蔵するパラレルIF部730は、パラレルポートごとに入出力方向が固定されているためノイズの影響を受けてもその入出力方向が変わることがない。
B.パチンコ機10の動作:
B−1.払出制御基板70による払出定時割り込み処理:
パチンコ機10の動作の一つとして、払出制御基板70における払出定時割り込み処理について説明する。図7は、払出制御基板70による払出定時割り込み処理を示すフローチャートである。払出定時割り込み処理は、払出制御基板70の払出CPU710によって、所定の間隔(本実施形態では、1ミリセカンド(以下、msと表記))で繰り返し実行される。
払出制御基板70の払出CPU710は、払出定時割り込み処理において種々の処理を実行する。本実施形態では、払出CPU710は、アック出力処理(ステップS10)、CR通信処理(ステップS20)、満タン・球切れチェック処理(ステップS30)、コマンド受信処理(ステップS40)、コマンド解析処理(ステップS50)、払出処理(ステップS60)、状態表示処理(ステップS70)、コマンド送信処理(ステップS80)の順に種々の処理を実行する。払出定時割り込み処理における各処理(ステップS10〜S80)は、遊技の進行状態に応じて処理内容が異なってくるため、完了までに要する時間が遊技の進行に応じて変動する。払出定時割り込み処理におけるアック出力処理(ステップS10)の処理は、他の処理(ステップS20〜S80)の処理に優先し、本実施形態では、アック出力処理(ステップS10)の処理は、払出定時割り込み処理の先頭で実行される。
アック出力処理(ステップS10)は、主制御基板20からコマンドを正常に受信した際に主制御基板20に対してアック信号を出力するための処理である。アック出力処理(ステップS10)の詳細は後述する。
CR通信処理(ステップS20)は、カードユニット90と間で遊技球の貸し出しに関するデータをやり取りするための処理である。満タン・球切れチェック処理(ステップS30)は、下皿19に貯留されている遊技球が満杯となっていないか、球タンク17に貯留されている遊技球が空となっていないかを確認することによって、遊技球の払い出しに障害となる物理的な状態を検出するための処理である。
コマンド受信処理(ステップS40)は、主制御基板20から1バイト単位でシリアルで送信された払出コマンドを受信するための処理である。コマンド受信処理(ステップS40)の詳細は後述する。コマンド解析処理(ステップS50)は、コマンド受信処理(ステップS40)にて受信された払出コマンドの内容を解析するための処理である。具体的には、コマンド解析処理(ステップS50)では、払出コマンドが示す払い出し個数が正常値(例えば1個〜15個)の範囲内であるか否か判断し、正常値の範囲内でなければ、遊技球の払い出しを行わないものとして、払出コマンドを無視する。払い出し個数が正常値の範囲内であれば、払出コマンドが示す払い出し個数を、払い出し個数バッファで記憶している総払い出し個数に加算する。払い出し個数バッファは、パチンコ機10が払い出すべき遊技球の総数を記憶するバッファである。
払出処理(ステップS60)は、遊技球の払い出しを実行するための処理である。払出処理(ステップS60)において、CR通信処理(ステップS20)にて得られた貸し出しの指示や、払い出し個数バッファの内容に応じて、払出CPU710は、払出駆動部75に対して動作を指示するための信号を出力する。本実施形態では、カードユニット90や主制御基板20から払い出しを要求された遊技球の個数に異常な変化があった場合や、満タン・球切れチェック処理(ステップS30)にて物理的な障害が確認された場合には、払出CPU710は、遊技球の払い出しを一時的に停止する。
状態表示処理(ステップS70)は、状態表示部72に払出CPU710が検知するパチンコ機10の動作状態を表示させるための処理である。本実施形態では、状態表示部72における動作状態の表示は、各状態に対応する数字を表示することによって行われ、例えば、主制御基板20と払出制御基板70とのコマンドの送受信に異常が発生した場合には状態表示部72に「0」が表示され、球タンク17において球切れが発生した場合には状態表示部72に「1」が表示され、カードユニット90が払出制御基板70に接続されていない場合には状態表示部72に「7」が表示される。
コマンド送信処理(ステップS80)は、払出制御基板70から主制御基板20に2バイト単位の動作状態コマンドを1バイト単位で送信するための処理である。コマンド送信処理の詳細は後述する。
B−2.払出定時割り込み処理におけるコマンド受信処理:
図8は、払出定時割り込み処理において実行されるコマンド受信処理(ステップS40)の詳細を示すフローチャートである。コマンド受信処理(ステップS40)は、前述した通り、図7に示した払出定時割り込み処理における種々の処理のうちの一つであり、払出制御基板70の払出CPU710によって実行される。コマンド受信処理は、主制御基板20からシリアルで送信された払出コマンドを受信するための処理である。
払出CPU710は、図8に示したコマンド受信処理を開始すると、「受信データ有り信号DFbがハイレベル」であるか否か、すなわち、「受信バッファレジスタ770にデータが記憶されている場合」であるか否かを判断する(ステップS410)。ここで、コマンド受信処理において「受信データ有り信号DFbがハイレベル」であると判断される場合(ステップS410)には、主制御基板20から払出制御基板70に対して送信された2バイトの払出コマンドのうち、1バイト目が受信バッファレジスタ770に記憶された状態である。
「受信データ有り信号DFbがハイレベル」である場合(ステップS410)には、払出CPU710は、受信バッファレジスタ770に記憶されている払出コマンドの1バイト目を読み出した後(ステップS412)、払出CPU710は、シリパラIFチップ720のクリアレジスタ782にセット信号CBbを出力し、クリアレジスタ782のビットをセットする(ステップS420)。クリアレジスタ782がセットされることによって、シリパラIFチップ720のシリアル管理部780は、受信バッファレジスタ770に記憶された払出コマンドの1バイト目をクリアし、受信シフトレジスタ760に記憶されていた払出コマンドの2バイト目が、受信バッファレジスタ770に受け渡される。その後、クリアレジスタ782は自動的にリセットされる。
払出CPU710は、クリアレジスタ782をセットした後(ステップS420)、受信バッファレジスタ770に記憶されている払出コマンドの2バイト目を読み出し(ステップS422)、シリパラIFチップ720のクリアレジスタ782にセット信号CBbを出力し、クリアレジスタ782のビットをセットする(ステップS430)。これによって、シリパラIFチップ720のシリアル管理部780は、受信バッファレジスタ770に記憶された払出コマンドの2バイト目をクリアする。
払出CPU710は、クリアレジスタ782をセットした後(ステップS430)、読み出した払出コマンドの1バイト目と、読み出したコマンドの2バイト目とを照合して(ステップS440)、両者が整合するか否かを判断する(ステップS445)。本実施形態では、払出コマンドの2バイト目は、主制御基板20において払出コマンドの1バイト目の各ビットを反転して生成されたデータである。読み出した払出コマンドの1バイト目と2バイト目とが整合する場合には(ステップS445)、払出CPU710は、主制御基板20に対してアック信号を送信するためのアックフラグFaをセットし(ステップS450)、コマンド送信処理を終了する。アックフラグFaは、前述したアック出力処理(ステップS10)において用いられ、払出CPU710に内蔵のレジスタやRAM(図示しない)に格納されるデータである。アックフラグFaは、払出CPU710の起動時には「0」に設定されている。
一方、読み出したコマンドの1バイト目と2バイト目とが整合しない場合には(ステップS445)、払出CPU710は、アックフラグFaをセットすることなくコマンド受信処理を終了する。これによって、払出コマンドが正常でない場合、アック信号は主制御基板20に出力されず、主制御基板20側では、アック信号が返信されないことにより払出コマンドの送信に異常が生じたことを判断することができる。
本実施形態では、受信バッファレジスタ770に記憶されている払出コマンドを読み出したあと、クリアレジスタ782にセット信号CBbを出力して記憶をクリアしたが、2度読み出しを行って結果が一致したとき、正しく読み出しが行われたと判断して記憶をクリアしてもよい。これによって、読み出し時にノイズの影響を受け、誤った情報として読み込んでしまうことを防止することができる。
図9は、コマンド受信処理(ステップS40)が実行される際の払出制御基板70における各信号の様子を示すタイムチャートである。なお、説明の便宜上、図9では、払出コマンドの1バイト目と2バイト目とのシリアルの送信時間のスケールは、払出CPU710の演算処理時間のスケールと比べ縮小されている。
図8に示したコマンド受信処理にて、読み出し信号#REbの立ち下がりによって、「受信データ有り信号DFbがハイレベル」であると判断されると(図8中のステップS410)、受信バッファレジスタ770からパラレルデータRDbに払出コマンドの1バイト目が出力され、払出コマンドの1バイト目が、払出CPU710によって受信バッファレジスタ770から読み出される(タイミングtb11〜tb12,図8中のステップS412)。
払出コマンドの1バイト目の読み出しが完了した後、クリアレジスタ782のセットに応じて受信バッファレジスタ770がクリアされ、受信データ有り信号DFbはローレベルとなる(タイミングtb13,図8中のステップS420)。その後、受信シフトレジスタ760から受信バッファレジスタ770へと払出コマンドの2バイト目が受け渡されると、受信データ有り信号DFbはハイレベルとなる(タイミングtb14)。
その後、払出コマンドの2バイト目が、コマンドの1バイト目と同様にして受信バッファレジスタ770から読み出される(タイミングtb21〜tb22,図8中のステップS422)。払出コマンドの2バイト目の読み出しが完了した後、クリアレジスタ782のセットに応じて受信バッファレジスタ770がクリアされ、受信データ有り信号DFbはローレベルとなる(タイミングtb23,図8中のステップS430)。
本実施形態では、シリパラIFチップ720の受信タイミングは、上述したように、送信レート(1200bps)の16倍である19.2kHzに設定されている。またシリパラIFチップ720は、スタートビットST,払出コマンドの各データビットD0〜D7,ストップビットSPのビット毎に、それぞれ3回のサンプリングを行い、この3回のサンプリングで検出された値を多数決判定する。これによって、払出コマンド受信の信頼性の向上が図られている。
B−3.払出定時割り込み処理におけるアック出力処理:
図10は、払出定時割り込み処理において実行されるアック出力処理(ステップS10)の詳細を示すフローチャートである。アック出力処理(ステップS10)は、前述した通り、図7に示した払出定時割り込み処理における種々の処理のうちの一つであり、払出制御基板70の払出CPU710によって実行される。
払出CPU710は、図10に示したアック出力処理(ステップS10)を開始すると、アックフラグFaがセットされている場合には(ステップS110)、アック信号をシリパラIFチップ720のパラレルIF部730を介して主制御基板20に出力する(ステップS120)。その後、払出CPU710は、アックフラグFaをリセットした後(ステップS130)、アック出力処理を終了する。アックフラグFaがセットされていない場合には(ステップS110)、払出CPU710は、アック信号を出力せずにアック出力処理を終了する。
アックフラグFaがセットされている場合とは、図8に示したコマンド受信処理(ステップS40)において、払出コマンドが正常に受信された際にアックフラグFaがセットされた場合(図8中のステップS450)である。図7に示したように、定時割り込み処理において、アック出力処理(ステップS10)の処理は、コマンド受信処理(ステップS40)の処理に優先して先に実行されるため、アックフラグFaがセットされた際には、次回の定時割り込み処理におけるアック出力処理(ステップS10)にてアック信号が出力されることとなる。
B−4.払出定時割り込み処理におけるコマンド送信処理:
図11は、払出定時割り込み処理において実行されるコマンド送信処理(ステップS80)の詳細を示すフローチャートである。コマンド送信処理(ステップS80)は、前述した通り、図7に示した払出定時割り込み処理における種々の処理のうちの一つであり、払出制御基板70の払出CPU710によって実行される。コマンド送信処理は、動作状態コマンドを主制御基板20にシリアルで送信するための処理である。
払出CPU710は、図11に示したコマンド送信処理を開始すると、送信ジョブフラグFjの値を判断する(ステップS810)。送信ジョブフラグFjは、コマンド送信処理における状態を示すフラグであり、払出CPU710の起動時には「0」に設定されており、払出CPU710に内蔵のレジスタやRAM(図示しない)に格納されるデータである。
「送信ジョブフラグFj=0」の場合には、払出CPU710は、主制御基板20に対して送信すべき動作状態コマンドを準備するためのコマンド準備処理(ステップS815)を実行する。コマンド準備処理では、払出CPU710は、シリパラIFチップ720の複数のポートに入力される各センサからの信号に基づいて、動作状態コマンドを送信する必要があると判断すると、該センサからの信号に基づいて動作状態コマンドの1バイト目を生成する。そして、送信ジョブフラグFjを「1」に設定した後、コマンド準備処理(ステップS815)を終了する。
「送信ジョブフラグFj=1」の場合には、払出CPU710は、主制御基板20に対して2バイト単位の動作状態コマンドを出力するためのコマンド出力処理を実行し(ステップS820)、「送信ジョブフラグFj=2」の場合には、主制御基板20からのアック信号を確認するためのアック待ち処理を実行する(ステップS860)。払出CPU710は、コマンド準備処理(ステップS815),コマンド出力処理(ステップS820),アック待ち処理(ステップS860)のいずれかを終了した後、コマンド送信処理(ステップS80)を終了する。なお、コマンド出力処理(ステップS820),アック待ち処理(ステップS860)の詳細については後述する。
図12は、コマンド送信処理(ステップS80)におけるコマンド出力処理(ステップS820)の詳細を示すフローチャートである。払出CPU710は、図12に示すコマンド出力処理(ステップS820)を開始すると、「送信バッファ空き信号TEbがハイレベル」かつ「シリアル送信中信号TCbがローレベル」であるか否か、すなわち、「送信バッファレジスタ740にデータが記憶されていない場合」かつ「送信シフトレジスタ750がシリアルでの送信中でない場合」であるか否かを判断する(ステップS822)。「送信バッファ空き信号TEbがハイレベル」かつ「シリアル送信中信号TCbがローレベル」である場合(ステップS822)には、払出CPU710は、動作状態コマンドの1バイト目の各ビットを反転して、すなわち、1バイト目のビットのうち、「0」であるビットを「1」とし、「1」であるビットを「0」として、動作状態コマンドの残りの下位1バイトである2バイト目を生成する(ステップS834)。本実施形態では、動作状態コマンドの1バイト目は、動作状態コマンドとしての実質的な意味を持つデータであり、動作状態コマンドの2バイト目は、主制御基板20側で動作状態コマンドの正誤を判断するためのデータである。
そして、動作状態コマンドの2バイト目を生成した後(ステップS834)、動作状態コマンドの1バイト目を、送信バッファレジスタ740に書き込む(ステップS842)。その後、予め設定された書込待機期間Lwaの待機を行った後(ステップS844)、生成した動作状態コマンドの2バイト目を、送信バッファレジスタ740に書き込む(ステップS846)。払出CPU710は、動作状態コマンドを出力した後(ステップS846)、送信ジョブフラグFjを「2」に設定し(ステップ850)、コマンド出力処理を終了する。
ここで、書込待機期間Lwaは、送信バッファレジスタ740への動作状態コマンドの1バイト目の書き込みから、この1バイト目が送信シフトレジスタ750へと受け渡しされるまでの期間である送信レジスタ引渡期間Lbsよりも長い期間であり、その定時割り込み処理の終了までに2バイト目の書き込み処理(図12のステップS846)を実行可能な十分な時間を残す期間であり、次の定時割り込み処理の開始まで長引くような期間ではない。また、書込待機期間Lwaは、動作状態コマンドの1バイト目のシリアルでの送信が完了するまでの期間であるシリアル送信期間Lscよりも短い期間であり、定時割り込み処理の間隔である1msよりも短い期間である。本実施形態では、書込待機期間Lwaは、2.5マイクロセカンドに設定されている。なお、本実施形態のシリパラIFチップ720のハードウェア仕様による送信レジスタ引渡期間Lbsは、約1.25マイクロセカンドである。また、2バイト目の書き込み処理(図12のステップS846)に要する払出CPU710の演算処理時間が、シリパラIFチップ720の送信レジスタ引渡期間Lbs以上である場合には、図12に示したコマンド待機処理のソフトウェアによる待機処理(ステップS844)は不要である。
図13は、コマンド出力処理(ステップS820)が実行される際の払出制御基板70における各信号の様子を示すタイムチャートである。図12に示したコマンド出力処理にて、「送信バッファ空き信号TEbがハイレベル」かつ「シリアル送信中信号TCbがローレベル」であると判断され(図12中のステップS822)、1バイト目の書き込みが実行される場合には(図12中のステップS842)、パラレルデータTDbに動作状態コマンドの1バイト目の出力が開始され(タイミングta1)、その後、書き込み信号#WRbの立ち下がりによって、送信バッファレジスタ740に動作状態コマンドの1バイト目が書き込まれる(タイミングta2)
送信バッファレジスタ740は、書き込まれた動作状態コマンドの1バイト目を送信シフトレジスタ750に引き渡し、この引き渡しが完了するとシリアル管理部780によってクリアされる。送信シフトレジスタ750は、送信バッファレジスタ740から受け取った動作状態コマンドの1バイト目をシリアルデータDbaに出力する。シリアル送信中のシリアルデータDbaには、スタートビットSTに続いて、コマンドの1ビット目D0から8ビット目D7までの各ビットが続き、最後にストップビットSPが出力される。このように、動作状態コマンドの1バイト目のシリアルでの送信が開始されると、シリアル送信中信号TCbはハイレベルとなる(タイミングta3)。
動作状態コマンドの1バイト目の書き込み(タイミングta2,図12中のステップS842)から、書込待機期間Lwaの待機を経た後(図12中のステップS844)、動作状態コマンドの1バイト目と同様に、送信バッファレジスタ740に動作状態コマンドの2バイト目が書き込まれる(タイミングta4,図12中のステップS846)。この際、送信シフトレジスタ750は、動作状態コマンドの1バイト目をシリアルで送信中であり、動作状態コマンドの2バイト目を送信バッファレジスタ740から受け取ることができないため、送信バッファレジスタ740は、書き込まれた動作状態コマンドの2バイト目を記憶して保持し、送信バッファ空き信号TEbはローレベルとなる(タイミングta4)。
その後、送信シフトレジスタ750による動作状態コマンドの1バイト目のシリアルでの送信が終了すると、送信バッファレジスタ740は、記憶する動作状態コマンドの2バイト目を送信シフトレジスタ750に引き渡し、この引き渡しが完了するとシリアル管理部780によってクリアされ、送信バッファ空き信号TEbはハイレベルとなる(タイミングta5)。その後、送信シフトレジスタ750は、動作状態コマンドの1バイト目と同様に、送信バッファレジスタ740から受け取った動作状態コマンドの2バイト目をシリアルデータDbaに出力する(タイミングta6〜ta7)。
本実施形態では、払出CPU710は、1msの間隔で定時割り込み処理を繰り返し実行するのに対し、シリパラIFチップ720は、1200bps(Bit Per Second)の送信レートでシリアルでの送信を実行する。1200bpsは、比較的安価なフォトカプラなどの、応答速度が低速の送受信素子を使用することができ、かつ、電気的ノイズの影響を受けない低速の通信速度である。シリアル送信における送信レートを1200bpsとすると、電気的ノイズに対するコマンドの送信の信頼性を確保できる。送信レートが1200bpsなので、本実施形態では、シリパラIFチップ720が2バイトの動作状態コマンドをシリアルで送信する時間は約16.7msとなり、払出CPU710は、その間に定時割り込み処理を約16回繰り返し実行することとなる。このように、払出CPU710は、送信バッファレジスタ740にコマンドを書き込んでしまえば、主制御基板20に対する動作状態コマンドのシリアルでの送信をシリパラIFチップ720に任せることができる。つまり、払出CPU710は、シリアルでの送信中(送信バッファレジスタ740に動作状態コマンドが有る状態)であっても、制御処理を中断することなく実行することができる。
図14は、コマンド送信処理(ステップS80)におけるアック待ち処理(ステップS860)の詳細を示すフローチャートである。払出CPU710は、図14に示すアック待ち処理を開始すると、パラレルIF部730が主制御基板20からのアック信号を検出したか否かを判断する(ステップS862)。アック信号を検出した場合には(ステップS862)、払出CPU710は、コマンドが主制御基板20へと正常に送信されたと判断し(ステップS870)、送信ジョブフラグFjを「0」に設定し(ステップS880)、アック待ち処理を終了する。
一方、アック信号を検出しない場合には(ステップS862)、払出CPU710は、コマンドの書き込み(図12中のステップS846)を終えてから所定の時間が経過したか否かを判断する(ステップS864)。この所定の時間は、主制御基板20からのアック信号の返答を待つ時間であり、本実施形態では、100msに設定されている。所定の時間が経過していない場合には(ステップS864)、払出CPU710は、そのままアック待ち処理を終了し、所定の時間が経過している場合には(ステップS864)、主制御基板20へのコマンド送信がエラーであると判断し(ステップS875)、送信ジョブフラグFjを「0」に設定した後(ステップS880)、アック待ち処理を終了する。本実施形態では、払出CPU710は、動作状態コマンドの主制御基板20への送信がエラーであると判断した場合には(ステップS875)、送信エラーとなった動作状態コマンドを再送する。
ところで、主CPU200が払出コマンドを払出制御基板70に送信した場合も、上記と同様にアック待ち処理を実行する。なお、主CPU200は、アック待ち処理中に入賞口61に遊技球が入賞した場合、払出コマンドを生成する必要がある。主CPU200は、アック待ち処理において、所定時間以上アック信号を受信せずに、払出コマンドの払出制御基板70への送信がエラーであると判断した場合には、払出コマンドの再送に代えて、払出制御基板70からアック信号が返ってくるか否かを再度確認するための確認コマンドを送信する。払出コマンドを再送すると、計2回送信された払出コマンドに基づき、払出制御基板70が払出コマンド2回分の賞球を払い出す可能性があるためである。払出制御基板70は、該確認コマンドを受信した場合は、主制御基板20にアック信号を送信する。払出制御基板70は、該確認コマンドを受信した場合は、動作状態コマンドを送信するものとしても良い。主CPU200は、アック信号を受信すると、次の払出コマンドを払出制御基板70に送信する。
以上では、払出CPU710における定時割り込み処理について説明したが、主CPU200においても同様に定時割り込み処理を実行しており、該定時割り込み処理の中で、動作状態コマンドを受信する処理や、アック信号を送信する処理や、払出コマンドを送信する処理や、アック待ち処理を実行する。
なお、主制御基板20が、払出制御基板70に対して払出コマンドやアック信号を送信する動作は、払出CPU710に代えて演算処理部210、送信バッファレジスタ740に代えて送信バッファレジスタ240、送信シフトレジスタ750に代えて送信シフトレジスタ250、パラレルIF部730に代えてパラレルIF部230が、それぞれ上述した払出制御基板70のアック出力処理(ステップS10)やコマンド送信処理(ステップS80)と同様の動作を行うことによって実現される。
また、主制御基板20が、払出制御基板70から動作状態コマンドやアック信号を受信する動作は、払出CPU710に代えて演算処理部210、受信シフトレジスタ760に代えて受信シフトレジスタ260、受信バッファレジスタ770に代えて受信バッファレジスタ270、パラレルIF部730に代えてパラレルIF部230が、それぞれ上述した払出制御基板70のコマンド受信処理(ステップS40)やアック待ち処理(ステップS860)と同様の動作を行うことによって実現される。
以上説明した本実施形態のパチンコ機10によれば、遊技球を貯留する球タンク17と、この球タンク17から下流側に向けて遊技球が転動するよう傾斜した状態でその球タンク17の下方に設けられたタンクレール18と、このタンクレール18から供給された遊技球を賞球として払い出す払出装置76と、この払出装置76から払い出された遊技球を誘導する上皿用誘導通路16aおよび下皿用誘導通路19aと、遊技盤13に打ち込まれた遊技球をパチンコ島設備に排出する球抜き排出通路16b、抜き球排出通路16e、セーフ球排出通路16fおよびアウト球排出通路16gと、遊技の進行を制御する主制御基板20と、この主制御基板20からの払出コマンドに基づいて払出装置76による遊技球の払出制御を行う払出制御基板70と、を備えている。
主制御基板20は、払出コマンドをシリアルで送受信するシリアルIF部220を内蔵する主CPU200を備えている。払出制御基板70は、払出コマンドを送受信する、シリアパラIFチップ720に内蔵されたシリアルIF部722と、このシリアルIF部722から払出コマンドを読み込み解析して払出装置76の払出制御を行ったり、動作状態コマンドをシリアルIF部722から主CPU200にシリアルで送信する制御を行ったりする払出CPU710と、シリアルIF部722に8MHzのクロック信号CLKを出力する発振器792と、を備えている。
シリパラIFチップ720に内蔵されたシリアルIF部722は、8MHzのクロック信号CLKを分周して、主CPU200に動作状態コマンドをシリアルで送信する送信レートには1200bpsに設定し、主CPU200からシリアルで送信される払出コマンドの受信タイミングには送信レートの1200bpsの16倍に設定する。このように、遊技球が互いにこすれ合って帯電し、静電放電してノイズが発生しても、シリパラIFチップ720に内蔵されたシリアルIF部722は発振器792から入力される8MHzのクロック信号CLKに基づいて分周し、受信タイミングおよび送信レートをそれぞれ設定する。このため、受信タイミングおよび送信レートがノイズの影響を受けなくなり、上皿用誘導通路16a、下皿用誘導通路19a、排出通路16b、抜き球排出通路16e、セーフ球排出通路16fおよびアウト球排出通路16gの近辺に払出制御基板70を配置してノイズの影響を極めて受ける環境下にある場合でも、主制御基板20と払出制御基板70との基板間において払出コマンドおよび動作状態コマンドをシリアルで送受信することができる。
なお、本発明は上述した実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
例えば、上述した実施形態では、パチンコ機10を例にとって説明したが、本発明が適用できる遊技機はパチンコ機に限定されるものではなく、パチンコ機以外の遊技機、例えばスロットマシン又はパチンコ機とスロットマシンとを融合させた融合遊技機(遊技玉を用いてスロット遊技を行うもの。)などにも適用することができる。
10…パチンコ機(遊技機)、11…外枠、12…内枠、13…遊技盤、14…ガラス枠、15…ハンドル、16…上皿、16a…上皿用誘導通路(誘導通路)、16b…球抜き排出通路(排出通路)、16e…抜き球排出通路(排出通路)、16f…セーフ球排出通路(排出通路)、16g…アウト球排出通路(排出通路)、17…球タンク(球タンク)、18…タンクレール(タンクレール)、19…下皿、19a…下皿用誘導通路(誘導通路)、20…主制御基板(主制御基板)、30…図柄制御基板、35…LCD、40…サブ制御基板、45…スピーカ、55,56,57,58,59…電飾、61…入賞口、65…遊技球センサ、66…遊技板駆動部、70…払出制御基板(払出制御基板)、72…状態表示部、75…払出駆動部、76…払出装置(払出装置)、90…カードユニット、200…主CPU(主制御中央演算処理装置)、210…演算処理部、220…シリアルIF部(シリアルインターフェース部)、230…パラレルIF部、240…送信バッファレジスタ、250…送信シフトレジスタ、260…受信シフトレジスタ、270…受信バッファレジスタ、280…シリアル管理部、710…払出CPU(払出制御中央演算処理装置)、720…シリパラIFチップ、722…シリアルIF部(シリアルインターフェース装置)、730…パラレルIF部(パラレルインターフェース装置)、740…送信バッファレジスタ、750…送信シフトレジスタ、760…受信シフトレジスタ、770…受信バッファレジスタ、780…シリアル管理部、782…クリアレジスタ、790…デジタルフィルタ、792…発振器(発振器)、794…リセットIC、796…分周器(分周器)、CBb…セット信号、CLK…クロック信号(クロック信号)、RST…リセット信号、Fa…アックフラグ、Fj…ジョブフラグ、Dab…シリアルデータ、Dba…シリアルデータ、Lbs…送信レジスタ引渡期間、Lsc…シリアル送信期間、Lwa…書込待機期間。