以下、本発明の実施の形態について、図面を参照しながら説明する。
(第1の実施の形態)
図1は、本発明の実施の形態の遊技機1の説明図である。
遊技機1の前面枠(遊技枠)3は、本体枠(外枠)2にヒンジ4を介して、遊技機1の前面に開閉回動可能に組み付けられる。前面枠3の表側には、遊技盤10(図2参照)が収装される。また、前面枠3には、遊技盤10の前面を覆うカバーガラス(透明部材)を備えたガラス枠18が取り付けられている。
ガラス枠18のカバーガラスの周囲には、装飾光が発光される装飾部材9a、9bが備えられている。装飾部材9a、9bの内部にはランプやLED等からなる装飾装置が備えられている。装飾装置を所定の発光態様によって発光させることによって、装飾部材9a、9bが所定の発光態様によって発光する。
ガラス枠18の左右には、音響(例えば、効果音)を発するスピーカ30が備えられている。また、ガラス枠18の上方には照明ユニット11が備えられている。
照明ユニット11には、第1可動式照明13及び第2可動式照明14が左右に配置されている。第1可動式照明13及び第2可動式照明14には、LEDなどの照明部材の他に、照明駆動第1モータ(MOT)13a及び照明駆動第2モータ(MOT)14aが備えられており、演出内容に応じて動作するように制御される。
照明ユニット11の右下方には、遊技機1において異常が発生したことを報知するための異常報知LED29が備えられている。
前面枠3の下部の開閉パネル20には図示しない打球発射装置に遊技球を供給する上皿が、固定パネル22には下皿23及び打球発射装置の操作部24等が備えられる。下皿23には、下皿23に貯まった遊技球を排出するための下皿球抜き機構16が備えられる。前面枠3下部右側には、ガラス枠18を施錠するための鍵25が備えられている。
また、遊技者が操作部24を回動操作することによって、打球発射装置は、上皿21から供給される遊技球を発射する。
また、上皿21の上縁部には、遊技者からの操作入力を受け付けるための演出ボタン17が備えられている。遊技者が演出ボタン17を操作することによって、遊技盤10に設けられた表示装置53(図2参照)における特図変動表示ゲームの演出内容を選択して、表示装置53における特図変動表示ゲームに、遊技者の操作を介入させた演出を行うことができる。
特図変動表示ゲームは、発射された遊技球が遊技盤10に備わる始動口36(図2参照)に入賞した場合に開始される。特図変動表示ゲームでは、表示装置53において複数の識別情報が変動表示する。そして、変動表示していた識別情報が停止し、停止した識別情報の結果態様が特定の結果態様である場合に、遊技機1の状態が遊技者に有利な状態(特典が付与される状態)である特別遊技状態に遷移する。
上皿21の右上部には、遊技者が遊技球を借りる場合に操作する球貸ボタン26、及び、図示しないカードユニットからプリペイドカードを排出させるために操作される排出ボタン27が設けられている。さらに、これらの球貸ボタン26と排出ボタン27との間には、プリペイドカードの残高を表示する残高表示部28が設けられる。
図2は、本発明の実施の形態の遊技盤10の正面図である。
図1に示す遊技機1は、内部の遊技領域10a内に遊技球を発射して(弾球して)遊技を行うもので、ガラス枠18のカバーガラスの奥側には、遊技領域10aを構成する遊技盤10が設置されている。
遊技盤10は、各種部材の取付ベースとなる平板状の遊技盤本体10b(木製又は合成樹脂製)を備え、該遊技盤本体10bの前面にガイドレール32で囲まれた遊技領域10aを有している。また、遊技盤本体10bの前面であってガイドレール32の外側には、前面構成部材33が取り付けられている。そして、このガイドレール32で囲まれた遊技領域10a内に発射装置から遊技球(打球;遊技媒体)を発射して遊技を行う。
遊技領域10aの略中央には、特図変動表示ゲームの表示領域となる窓部52を形成するセンターケース51が取り付けられている。センターケース51に形成された窓部52の後方には、複数の識別情報を変動表示する特図変動表示ゲームの演出を実行可能な演出表示装置としての表示装置53が配される。表示装置53は、例えば、液晶ディスプレイを備え、表示内容が変化可能な表示部53aがセンターケース51の窓部52を介して遊技盤10の前面側から視認可能となるように配されている。なお、表示装置53は、液晶ディスプレイを備えるものに限らず、EL、CRT等のディスプレイを備えるものであってもよい。
また、センターケース51の上部には、大当たりの可能性(信頼度)を報知する信頼度報知装置15が備えられる。信頼度報知装置15には、複数色のLED(例えば、赤、青、緑の3色のLED)が備えられており、信頼度に応じた色及び態様で発光するように制御される。
さらに、センターケース51の左部には、遊技球が流下可能な球導入路(ワープ流路)50が設けられ、遊技領域10aに向けて入口50aが開放した状態で開設されている。球導入路50は、センターケース51の内部に連通しており、入口50aから流入した遊技球は、センターケース51の裏側を通過して、ユニット側ステージ部49b上に排出される。さらに、ユニット側ステージ部49b上で転動した遊技球が当該ユニット側ステージ部49bの下方に配置されたベース側ステージ部49a上に流下できるように構成されている。
センターケース51の周縁部には、複数の装飾具47が配置される。センターケース51の左下部には、装飾ランプ48が配置される、センターケース51の上部には、複数の装飾ピース46を上下動可能な状態で配置される。装飾具47、装飾ランプ48及び装飾ピース46は、後述する演出制御装置550からの命令に従って演出動作を行う。センターケース51の構成については、図3を参照しながらさらに詳細に説明する。
また、遊技領域10aのうちセンターケース51の下方には、遊技球を受入可能(入賞可能)な特図変動表示ゲームを始動させるための始動口36が配置される。さらに、センターケース51の側方(左側方)には、普図変動表示ゲームを始動させるための普図始動ゲート34が配置される。
さらに、遊技領域10aには、センターケース51の左下方及び右下方に、発光によって各種装飾表示を行うサイドランプ45が配置される。また、サイドランプ45には、一般入賞口44が備えられている。
さらに、始動口36の下方には大入賞口42が配置され、該大入賞口42の下方であって遊技領域10aの下縁部には、入賞せずに流下した遊技球を回収するアウト口43が開設される。大入賞口42は、上端側が手前側に倒れる方向に回動して開放可能になっているアタッカ形式の開閉扉42aを備える。特図変動表示ゲームの結果によって開閉扉42aを閉じた状態(遊技者にとって不利な状態)から開放状態(遊技者にとって有利な状態)に変換する。
また、センターケース51、始動口36やサイドランプ45等の取付部分を除いた遊技領域10a内には、この他、遊技領域10aには、打球方向変換部材としての風車(図示略)、及び多数の障害釘(図示略)などが配設されている。そして、センターケース51と、該センターケース51を挟んで普図始動ゲート34とは反対側に位置する前面構成部材33との間に縦長な円弧状の遊技球通路57が形成されている。
さらに、遊技盤10には、特図変動表示ゲーム及び普図変動表示ゲームを実行する普図・特図表示器35が備えられている。普図・特図表示器35には、特図変動表示ゲームの未処理回数(特図始動記憶数)及び普図変動表示ゲームの未処理回数(普図始動記憶数)が表示される。普図・特図表示器35は、遊技状態を表す遊技状態表示LED(図示略)と併せて、セグメントLEDとして設けられている。
普図始動ゲート34内には、該普図始動ゲート34を通過した遊技球を検出するためのゲートSW34a(図9参照)が設けられている。そして、遊技領域10a内に打ち込まれた遊技球が普図始動ゲート34内を通過すると、普図変動表示ゲームが開始される。
また、普図変動表示ゲームを開始できない状態で、普図始動ゲート34を遊技球が通過すると、普図始動記憶数が上限数未満であるならば、普図始動記憶数が1加算されて、当該普図変動表示ゲームが当りとなるか否かを示す乱数が普図始動記憶として一つ記憶される。
普図変動表示ゲームが開始できない状態とは、例えば、普図変動表示ゲームが既に行われ、その普図変動表示ゲームが終了していない状態や、普図変動表示ゲームに当選して始動口36が開状態に変換されている状態のことをいう。
なお、普図変動表示ゲームは、表示装置53の表示領域の一部で普図変動表示ゲームを表示するようにしてもよく、この場合は識別図柄として、例えば、数字、記号、キャラクタ図柄などを用い、この識別図柄を所定時間変動表示させた後、停止表示させることによって行うようにする。
普図変動表示ゲームの停止表示が特別の結果態様となった場合には、普図変動表示ゲームに当選したものとして、始動口36の開閉部材36aが所定時間(例えば、0.5秒間)開放される。これにより、始動口36に遊技球が入賞しやすくなり、特図変動表示ゲームの始動が容易となる。始動口36の開閉部材36aは、通常時は遊技球の直径程度の間隔をおいて閉じた状態(遊技者にとって不利な状態)を保持しているが、普図変動表示ゲームの結果が所定の停止表示態様となった場合(普図変動表示ゲームに当選した場合)には、ソレノイド(普電SOL36b、図9参照)によって、逆「ハ」の字状に開いて始動口36に遊技球が流入し易い状態(遊技者にとって有利な状態)に変化させられる。
また、本発明の実施の形態の遊技機1は、特図変動表示ゲームの結果態様に基づいて、遊技状態として、表示装置53における特図変動表示ゲームの変動表示時間を短縮する時短動作状態(第2動作状態)を発生可能となっている。時短動作状態(第2動作状態)は、通常動作状態(第1動作状態)と比較して始動口36の開閉部材36aが開放状態となりやすい状態である。
時短動作状態においては、普図変動表示ゲームの実行時間が通常動作状態における実行時間よりも短くなるように制御され(例えば、10秒が1秒)、単位時間当りの始動口36の開放回数が実質的に多くなるように制御される。また、時短動作状態においては、普図変動表示ゲームに当選したことによって始動口36が開放される場合に、開放時間が通常動作状態の開放時間よりも長くなるように制御される(例えば、0.3秒が1.8秒)。また、時短動作状態においては、普図変動表示ゲームの1回の当選結果に対して、始動口36が1回ではなく、複数回(例えば、2回)開放される。さらに、時短動作状態においては普図変動表示ゲームの当選結果となる確率が通常動作状態よりも高くなるように制御される。すなわち、通常動作状態よりも始動口36の開放回数が増加され、始動口36に遊技球が入賞しやすくなり、特図変動表示ゲームの始動が容易となる。
また、始動口36の内部には、始動口36を通過した遊技球を検出するための、始動口SW36d(図9参照)が備えられる。始動口SW36dによって遊技球を検出すると、補助遊技としての特図変動表示ゲームを開始する始動権利が発生する。このとき、特図変動表示ゲームを開始する始動権利は、所定の上限数(例えば4)の範囲内で特図始動記憶として記憶される。
特図変動表示ゲームを直ちに開始できない状態、例えば、既に特図変動表示ゲームが行われ、その特図変動表示ゲームが終了していない状態や、特別遊技状態となっている場合に、始動口36に遊技球が入賞すると、特図始動記憶数が上限数未満(例えば、4個未満)ならば、特図始動記憶数が1加算され、始動口36に遊技球が入賞したタイミングで抽出された乱数が特図始動記憶として一つ記憶される。そして、特図変動表示ゲームが開始可能な状態となると、特図始動記憶に基づき特図変動表示ゲームが開始される。
補助遊技としての特図変動表示ゲームは、遊技盤10に設けられた普図・特図表示器35で実行され、複数の識別情報を変動表示したのち、所定の結果態様を停止表示することで行われる。また、表示装置53にて特図変動表示ゲームに対応して複数種類の識別情報(例えば、数字、記号、キャラクタ図柄など)が変動表示される。そして、特図変動表示ゲームの結果として、普図・特図表示器35の表示態様が特別結果態様となった場合には、大当たりとなって特別遊技状態(いわゆる、大当たり状態)となる。また、これに対応して表示装置53の表示態様も特別結果態様(例えば、「7,7,7」等のゾロ目数字の何れか)となる。なお、普図・特図表示器35ではなく、表示装置53のみで特図変動表示ゲームを実行するように構成してもよい。
また、本発明の実施の形態の遊技機1は、特図変動表示ゲームの結果態様に基づき、遊技状態として確変状態(第2確率状態)を発生可能となっている。この確変状態(第2確率状態)は、特図変動表示ゲームでの当り結果となる確率が、通常確率状態(第1確率状態)に比べて高い状態である。なお、確変状態と上述した時短動作状態はそれぞれ独立して発生可能であり、両方を同時に発生することも可能であるし、一方のみを発生させることも可能である。
図3は、本発明の実施の形態のセンターケース51の分解斜視図である。
センターケース51は、遊技盤本体10b(遊技盤10)の表面側に前面構成部として配置される枠装飾部65と、遊技盤本体10bの裏面側に裏面構成部として配置される枠体基部60とを前後に重合して構成されている。枠装飾部65は、遊技盤本体10bの表面に止着される環状の装飾ベース66を備える。装飾ベース66の裏面側には、装飾ベース66と略同じ大きさで円形状に形成された装飾パネルユニット67を備え、枠装飾部65は、装飾ベース66と装飾パネルユニット67とを前後に重合して構成されている。
装飾ベース66の下部には、上面に遊技球を前後方向及び左右方向に転動可能なベース側ステージ部49aが配置され、該ベース側ステージ部49aと遊技球通路57との間には装飾ランプ48が配置されている(図2参照)。そして、ベース側ステージ部49aを挟んで装飾ランプ48とは反対側には、遊技球が流下可能な球導入路(ワープ流路)50が設けられ、球導入路50の入口50aを装飾ベース66の外方へ向けて開放した状態で開設し、球導入路50の出口50bを後述する装飾パネルユニット67の裏側へ連通している。
装飾パネルユニット67は、略円形状の透明樹脂板で形成されたカバーパネル部69を備え、該カバーパネル部69の前面側の周縁に複数の装飾具47を配置している。装飾パネルユニット67と枠装飾部65とを重合すると、装飾具47が装飾ベース66の内周縁に沿って配置されるように設定されている(図2参照)。また、カバーパネル部69の上部には、信頼度報知装置15が配置されている。
また、カバーパネル部69の裏面側の下部には、上面に遊技球を前後方向及び左右方向に転動可能なユニット側ステージ部49bが配置される。ユニット側ステージ部49bは、装飾ベース66のベース側ステージ部49aよりも上方に配置される。
さらに、カバーパネル部69のうち球導入路50の出口50bに重合する箇所には球流入口68を開設し、該球流入口68を介して球導入路50とユニット側ステージ部49bとを連通している。したがって、遊技領域10aを流下する遊技球が球導入路50に流入すると、球導入路50がこの遊技球をユニット側ステージ部49b上に導入できるように構成されている。
枠体基部60は、遊技盤10の裏面側に止着される額縁状の基部ケース61を前側が開放した状態で備え、該基部ケース61の内側(言い換えるとセンターケース51の内部)に、開口部62aが前面側に設けられた凹室62を形成している。
また、基部ケース61のうち凹室62の後方には矩形状の窓部52を前後方向へ貫通して開設し、基部ケース61の後方から表示装置53を装着して、表示装置53の表示部53aを窓部52及び凹室62を通してセンターケース51の前方へ臨ませている。
さらに、窓部52の上縁部の前側には、役物駆動ソレノイド(図示せず)によって上下動可能な複数の装飾ピース46が配置され、窓部52の左右両側の周縁には、表示部53aの前方へ移動して演出動作を行う可動演出装置58が備えられる。
そして、枠体基部60の前方に枠装飾部65を重合すると、凹室62の開口部62a及び窓部52をカバーパネル部69で前方から被覆し、表示装置53の表示部53aを枠装飾部65の内側(カバーパネル部69が露出した箇所)からセンターケース51の前方へ臨ませるように構成されている。
図4及び図5は、本発明の実施の形態の可動演出装置58の構成を説明する図である。
可動演出装置58は、第1演出ユニット63と第2演出ユニット64とを互いに離間した位置に備えて構成され、第1演出ユニット63及び第2演出ユニット64が連動して演出動作が実行される。
図4は、可動演出装置58が動作する前の状態を示す図であり、図5は、可動演出装置58が動作し、第1演出ユニット63及び第2演出ユニット64が動作した結果、当接部(第1当接部121及び第2当接部122)にて当接している状態を示す図である。
第1演出ユニット63は、センターケース51の左側、すなわち、基部ケース61の窓部52の周縁の左側に配置される。また、第2演出ユニット64は、センターケース51の右側に配置される。センターケース51の前方から見て第1演出ユニット63と第2演出ユニット64との間に凹室62及び窓部52を臨ませるように配置される。
第1演出ユニット63は、表示部53aの前方へ移動可能な第1演出部材70と、該第1演出部材70の駆動力を発生する第1演出駆動源としての役物駆動第1モータ(MOT)71と、役物駆動第1MOT71から発生した駆動力(回動力)を第1演出部材70へ伝達する第1演出伝達機構(第1主腕部材73及び第1副腕部材74)とを備える。
また、役物駆動第1MOT71の出力軸(第1出力軸)71aがセンターケース51の前後方向に延在し、第1出力軸71aには第1駆動ギア76を共回り可能に軸着している。
第1主腕部材73は、第1駆動ギア76と噛合される第1主腕ギア77が形成され、当該第1駆動ギア76の上方に軸着される。第1副腕部材74は、第1駆動ギア76と噛合される第1副腕ギア78が形成され、当該第1駆動ギア76の下方に軸着される。第1主腕部材73及び第1副腕部材74は、基部ケース61と軸着された端部の反対側の端部が互いに異なる位置で第1演出部材70に軸着し、第1演出部材70を支持している。
第1演出ユニット63は、役物駆動第1MOT71を駆動して第1駆動ギア76をセンターケース51の正面から見て時計方向へ回動すると、役物駆動第1MOT71の駆動力(回動力)を第1駆動ギア76及び第1主腕ギア77を介して第1主腕部材73へ伝達し、この駆動力により第1主腕部材73がセンターケース51の正面から見て反時計方向へ回動する。また、役物駆動第1MOT71の駆動力を第1駆動ギア76及び第1副腕ギア78を介して第1副腕部材74へ伝達し、この駆動力により第1副腕部材74が第1主腕部材73と同じ反時計方向へ回動する。この結果、第1演出部材70が第1主腕部材73及び第1副腕部材74に支持された状態で上昇する。
そして、役物駆動第1MOT71の駆動力により第1主腕部材73及び第1副腕部材74を上方へ延出して縦向き姿勢に設定すると、図4に示すように、第1演出部材70を表示部53aの前方から外れて位置させた第1演出停止状態となり、第1演出部材70が窓部52の側方に位置して、枠装飾部65の後方及び遊技盤本体10bの後方に隠れる(図2参照)。
一方、第1演出停止状態から役物駆動第1MOT71を駆動して第1駆動ギア76をセンターケース51の正面から見て反時計方向へ回動すると、役物駆動第1MOT71の駆動力(回動力)を第1駆動ギア76及び第1主腕ギア77を介して第1主腕部材73へ伝達し、この駆動力により第1主腕部材73がセンターケース51の正面から見て時計方向へ回動する。
また、役物駆動第1MOT71の駆動力を第1駆動ギア76及び第1副腕ギア78を介して第1副腕部材74へ伝達し、この駆動力により第1副腕部材74が第1主腕部材73と同じ時計方向へ回動する。この結果、第1演出部材70が第1主腕部材73及び第1副腕部材74に支持された状態で下降する。
そして、役物駆動第1MOT71の駆動力により第1主腕部材73及び第1副腕部材74を表示部53aの前方へ延出して横向き姿勢に設定すると、図5に示すように、第1演出部材70を表示部53aの前方へ位置させた第1演出実行状態となり、第1演出部材70が表示部53aとカバーパネル部69との間の空間部のうち表示部53aの中央部分の前方に位置する。
第2演出ユニット64は、表示部53aの前方へ移動可能な第2演出部材80と、該第2演出部材80の駆動力を発生する第2演出駆動源としての役物駆動第2モータ(MOT)81と、役物駆動第2MOT81から発生した駆動力(回動力)を第2演出部材80へ伝達する第2演出伝達機構(第2主腕部材83及び第2副腕部材84)とを備える。
また、役物駆動第2MOT81を出力軸(第2出力軸)81aがセンターケース51の前後方向に延在し、第2出力軸81aには第2駆動ギア86を共回り可能に軸着している。
第2主腕部材83は、第2駆動ギア86と噛合される第2主腕ギア87が形成され、当該第2駆動ギア86よりも第1演出ユニット63寄りの位置に軸着される。第2副腕部材84は、第2駆動ギア86と噛合される第2副腕ギア88が形成され、当該第2駆動ギア86の下方に軸着される。第2主腕部材83及び第2副腕部材84は、基部ケース61と軸着された端部の反対側の端部が互いに異なる位置で第2演出部材80に軸着し、第2演出部材80を支持している。
第2演出ユニット64は、役物駆動第2MOT81を駆動して第2駆動ギア86をセンターケース51の正面から見て時計方向へ回動すると、役物駆動第2MOT81の駆動力(回動力)を第2駆動ギア86及び第2主腕ギア87を介して第2主腕部材83へ伝達し、この駆動力により第2主腕部材83がセンターケース51の正面から見て反時計方向へ回動する。また、役物駆動第2MOT81の駆動力を第2駆動ギア86及び第2副腕ギア88を介して第2副腕部材84へ伝達し、この駆動力により第2副腕部材84が第2主腕部材83と同じ反時計方向へ回動する。この結果、第2演出部材80が第2主腕部材83及び第2副腕部材84に支持された状態で下降する。
そして、役物駆動第2MOT81の駆動力により第2主腕部材83及び第2副腕部材84を回動して第2演出部材80を下死点へ到達させ、引き続き第2主腕部材83及び第2副腕部材84を回動して斜め下方へ延出して縦向き姿勢に設定し、第2演出部材80を下死点から僅かに上昇させると、図4に示すように、第2演出部材80を表示部53aの前方から外れて位置させた第2演出停止状態となり、第2演出部材80が枠装飾部65の後方及び遊技盤本体10bの後方に隠れる(図2参照)。
一方、第2演出停止状態から役物駆動第2MOT81を駆動して第2駆動ギア86をセンターケース51の正面から見て反時計方向へ回動すると、役物駆動第2MOT81の駆動力(回動力)を第2駆動ギア86及び第2主腕ギア87を介して第2主腕部材83へ伝達し、この駆動力により第2主腕部材83がセンターケース51の正面から見て時計方向へ回動する。
また、役物駆動第2MOT81の駆動力を第2駆動ギア86及び第2副腕ギア88を介して第2副腕部材84へ伝達し、この駆動力により第2副腕部材84が第2主腕部材83と同じ時計方向へ回動する。この結果、第2演出部材80が第2主腕部材83及び第2副腕部材84に支持された状態で上昇する。
そして、役物駆動第2MOT81の駆動力により第2主腕部材83及び第2副腕部材84を表示部53aの前方へ延出して横向き姿勢に設定すると、図5に示すように、第2演出部材80を表示部53aの前方へ位置させた第2演出実行状態となり、第2演出部材80が表示部53aとカバーパネル部69との間の空間部のうち表示部53aの中央部分の前方に位置する。
図6は、本発明の実施の形態の第1演出部材70の分解斜視図である。
第1演出部材70は、センターケース51の正面から見て略半円形状の部材であり、第1演出ユニット63側に円弧面を配置した姿勢に設定されている。
第1演出部材70には、基部となる第1演出ベース100が備えられる。第1演出ベース100は、透明な樹脂によって形成される。第1演出ベース100の上部には、第1主腕部材73を第1演出ベース100の前方から軸着する第1主腕軸着部101を形成し、第1演出ベース100の下部には、第1副腕部材74を第1演出ベース100の後方から軸着する第1副腕軸着部102を形成している。
第1演出ベース100の前面には、光を拡散しながら透過可能な第1光拡散シート103が重合される。さらに、第1光拡散シート103の前面に透明な第1保護パネル104を重合することによって、第1光拡散シート103が第1演出部材70から脱落することを阻止している。
また、第1演出ベース100の後部を前方へ窪ませて第1基板収納空間部105を形成し、該第1基板収納空間部105にLEDなどの発光装置(装飾装置620、図17参照)が実装された第1発光基板106を収納する。さらに、この状態で第1基板収納空間部105を第1ベース蓋部107で閉塞し、第1発光基板106が第1演出部材70から脱落することを阻止している。
そして、第1発光基板106の発光装置から光を発生すると、この光が第1演出ベース100、第1光拡散シート103、第1保護パネル104を透過してセンターケース51の前方へ照射されるように構成されている。
さらに、第1当接部121の第1基板収納空間部105側には、後部が開放された第1演出磁石ホルダ124を窪ませて形成されている。第1演出磁石ホルダ124には、ボタン形状の永久磁石からなる第1磁石125を磁極が第2演出部材80側へ向いた姿勢で、第1磁石125が第1当接部121(第1演出磁石ホルダ124)から脱落しないように収納されている。
第1発光基板106には、装飾装置620の発光を制御するためのI2CI/Oエクスパンダ615(図17参照)が搭載され、演出制御装置550から出力された制御信号(電気信号)など送信するためのデータ線及びクロック線(信号線)が接続される。さらに、装飾装置620を発光させるために必要な電力を供給するための電源線などが接続される。これらの接続線は、ケーブル108としてまとめられて接続されている。
図7は、本発明の実施の形態の第2演出部材80の分解斜視図である。
第2演出部材80は、センターケース51の正面から見て上部に切欠部分がある略平行四辺形状となっている。第2演出停止状態においては第2演出部材80の上下両側面を第2演出ユニット64側から第1演出ユニット63側へ向けて下り傾斜させ(図4参照)、第2演出実行状態においては当該第2演出部材80の左右両側面を第2演出ユニット64側から第1演出ユニット63側へ向けて下り傾斜させる姿勢に設定されている(図5参照)。
第2演出部材80には、基部となる第2演出ベース110が備えられる。第2演出ベース110は、透明な樹脂によって形成される。第2演出ベース110の上部には、第2主腕部材83を第2演出ベース110の前方から軸着する第2主腕軸着部111を形成し、第2演出ベース110の下部には、第2副腕部材84を第2演出ベース110の後方から軸着する第2副腕軸着部112を形成している。
さらに、第2演出ベース110の前面には、光を拡散しながら透過可能な第2光拡散シート113を重合される。第2光拡散シート113の前面に透明な第2保護パネル114を重合することによって、第2光拡散シート113が第2演出部材80から脱落することを阻止している。
また、第2演出ベース110の後部を前方へ窪ませて第2基板収納空間部115を形成し、該第2基板収納空間部115にLEDなどの発光装置(装飾装置620)が実装された第2発光基板116を収納し、この状態で第2基板収納空間部115を第2ベース蓋部117で閉塞して、第2発光基板116が第2演出部材80から脱落することを阻止している。
そして、第2発光基板116の発光装置から光を発生すると、この光が第2演出ベース110、第2光拡散シート113、第2保護パネル114を透過してセンターケース51の前方へ照射されるように構成されている。
さらに、第2当接部122の第2基板収納空間部115側には、後部が開放された第2演出磁石ホルダ128を窪ませて形成されている。第2演出磁石ホルダ128には、ボタン形状の永久磁石からなる第2磁石129が、第1当接部121及び第2当接部122を挟んで第1磁石125とは対称となる位置に収納されている。
第2発光基板116には、第1発光基板106と同様に、装飾装置620の発光を制御するためのI2CI/Oエクスパンダ615(図17参照)が搭載され、演出制御装置550から出力された制御信号などを送信するためのデータ線及びクロック線(信号線)が接続される。さらに、装飾装置620を発光させるために必要な電力を供給するための電源線などが接続される。これらの接続線は、ケーブル118としてまとめられて接続されている。
可動演出装置58は、第1演出部材70に第1当接部121を備えるとともに、第2演出部材80に第2当接部122を備える。そして、第1演出ユニット63を第1演出実行状態へ変換するとともに、第2演出ユニット64を第2演出実行状態へ変換すると、第1当接部121と第2当接部122とが当接し、第1演出部材70と第2演出部材80とで1つの装飾体を形成する。このとき、第1磁石125と第2磁石129との間で吸引力を発生するように第1磁石125及び第2磁石129が配置されている。さらに、この形成された装飾体を表示部53aの中央部の前方に位置させるように構成している。
図8は、本発明の実施の形態の遊技機1の配線を説明する図である。
図8では、遊技盤本体10bにセンターケース51が取り付けられ、表示装置53がセンターケース51に取り付けられる前の状態を示している。また、表示装置53の背面には、演出制御装置550が取り付けられている。演出制御装置550には、接続端子90が備えられており、接続端子90を介して制御対象の演出装置に対し、制御信号の送信や電力の供給を行う。具体的には、後述する中継基板600にケーブル91を介して接続する。
また、遊技盤本体10bの背面下部には、遊技制御装置500や各種制御基板を含む制御ユニット700が配置される。制御ユニット700に搭載される制御基板には、演出制御装置550から送信された制御信号を、装飾制御装置610(図11参照)に中継する中継基板600が含まれる。装飾制御装置610は、詳細については後述するが、遊技を演出するための発光装置(例えば、LED)や可動物(例えば、モータ)などの演出装置の制御を行う。また、中継基板600は、装飾制御装置610と同様に、発光装置や可動物を接続可能である。
中継基板600には、演出制御装置550にケーブル91を介して接続される上流コネクタ601が備えられる。ケーブル91の一方のコネクタ91aは、前述のように、演出制御装置550の接続端子90に接続される。ケーブル91の他方のコネクタ91bは、中継基板600の上流コネクタ601に接続される。さらに、遊技機1に備えられた各演出装置の制御を行う装飾制御装置610に接続するためのコネクタ602a〜602eを備える。
さらに、中継基板600には、接続されたケーブルの接続状態を示す空き端子モニタ603が備えられている。空き端子モニタ603の詳細については、図15にて説明する。
また、図示は略するが、遊技制御装置500を構成するユニットが、中継基板600のコネクタ装着面を覆うようにして設けられている。そのため、遊技制御装置500は、中継基板600の各コネクタに必要なケーブルを装着した後に取り付けられる配置構成となっている。
前面枠3には、当該前面枠3に配置されたスピーカ30及び装飾部材9a、9bなどを制御するための信号を送信するケーブル3bが接続されている。このケーブル3bのコネクタは、演出制御装置550の接続端子92に接続される。
遊技盤本体10bには、サイドランプ45を取り付けるための開口部45bが形成されている。サイドランプ45には、電力及び信号を送信するケーブル45aが接続され、開口部45bから遊技盤10の裏面側へ導入される。遊技盤10の裏面側へ導入されたケーブル45aは、中継基板600に接続され、例えば、コネクタ602dに接続される。
また、遊技盤10の下部には、図2に示したように、始動口36及び大入賞口42が配置される。始動口36が配置されている遊技盤10の裏側には、普図変動表示ゲームに当選した場合に開放される開閉部材36aを開閉するための普電ソレノイド(SOL)36bが配置される。また、特図変動表示ゲームに当選した場合に、大入賞口42を開閉するための大入賞口SOL42bも遊技盤10の裏側に配置されている。普電SOL36b及び大入賞口SOL42bには、制御信号の入力を受け付けるためのケーブル(図示略)が接続され、このケーブルは遊技制御装置500に接続されている。また、ケーブル42Cは、大入賞口42の内部に備えられる演出用のLEDを点灯させるための電力及び信号を伝達するケーブルとして中継基板600に接続され、例えば、コネクタ602fに接続される。
前述のように、遊技盤10の中央部には、センターケース51が取り付けられている。センターケース51の内部には、第1演出部材70及び第2演出部材80によって構成される可動演出装置58が備えられる。図8では、第1演出部材70及び第2演出部材80が当接面(121,122)で当接している状態となっている。
また、可動演出装置58の第1演出ユニット63及び第2演出ユニット64には、前述のように、第1演出部材70及び第2演出部材80を稼動させるためのモータ(役物駆動第1モータ71、役物駆動第2モータ81)が備えられている。そして、これらのモータを制御するための信号及びモータを駆動させるための電力を供給するためのケーブル652が可動演出装置58に接続されている。また、可動演出装置58には、これらのモータの動作状態を検知するためのモータ位置検出センサ(図示せず)が備えられており、センシング結果を受信するためのケーブル651が接続されている。ケーブル652及びケーブル651は、センターケース51の開口部51bから遊技盤10の裏面側に延びており、中継基板600に接続される。例えば、ケーブル652はコネクタ602Cに接続され、ケーブル651はコネクタ602eに接続される。
さらに、演出制御装置550から出力された制御信号を、センターケース51の内部に配置されたLEDなどの演出装置を制御するための装飾制御装置610(図11参照)へ伝達するケーブル653が接続される。ケーブル653は、センターケース51に設けられた開口部51aから遊技盤10の裏面側の中継基板600に接続され、例えば、コネクタ602aに接続される。
図9は、本発明の実施の形態の遊技機1の構成を示すブロック図である。
遊技機1は、遊技を統括的に制御する遊技制御装置500、各種演出を行うために表示装置53及びスピーカ30等を制御する演出制御装置550、遊技球を払い出すために図示しない払出モータを制御する払出制御装置580を備える。
まず、遊技制御装置500の構成について説明する。なお、演出制御装置550については、図10にて説明する。
遊技制御装置500は、遊技用マイコン501、入力I/F(Interface)505、出力I/F(Interface)506、及び外部通信端子507を備える。
遊技用マイコン501は、CPU502、ROM(Read Only Memory)503及びRAM(Random Access Memory)504を備える。
CPU502は、遊技を統括的に制御する主制御装置であって、遊技制御を司る。ROM503は、遊技制御のための不変の情報(プログラム、データ等)を記憶している。RAM504は、遊技制御時にワークエリアとして利用される。
外部通信端子507は、遊技制御装置500の設定情報等を検査する検査装置等の外部機器に遊技制御装置500を接続する。
CPU502は、入力I/F505を介して各種入力装置(始動口SW36d、一般入賞口SW44a〜44n、ゲートSW34a、カウントSW42d、ガラス枠開放SW18a、前面枠開放SW3a、球切れSW54、振動センサ55、及び磁気センサ56)からの検出信号を受けて、大当り抽選等、種々の処理を行う。
始動口SW36dは、始動口36に遊技球が入賞したことを検出するスイッチである。一般入賞口SW44a〜44nは、一般入賞口44に遊技球が入賞したことを検出するスイッチである。
ゲートSW34aは、普図始動ゲート34を遊技球が通過したことを検出するスイッチである。カウントSW42dは、大入賞口42に遊技球が入賞したことを検出するスイッチである。
ガラス枠開放SW18aは、ガラス枠18が開放されたことを検出するスイッチである。前面枠開放SW3aは、前面枠3が開放されたことを検出するスイッチである。
球切れSW54は、遊技機1の内部に貯留され、払い出しに用いられる遊技球の数が所定数以下になったことを検出するスイッチである。
振動センサ55は、遊技機1に与えられた振動を検出するセンサであり、遊技機1を振動させるなどの不正行為を検出する。磁気センサ56は、始動口36の第2始動入賞口、一般入賞口44、大入賞口42、及び普図始動ゲート34付近に設けられ、磁力を検出するセンサである。磁気センサ56は、各入賞口付近に磁石を近づけて、遊技領域10aに発射された遊技球を各入賞口に導く不正を検出する。
また、CPU502は、出力I/F506を介して、普図・特図表示器35、普電SOL36b、大入賞口SOL42b、払出制御装置580、及び演出制御装置550に指令信号を送信して、遊技を統括的に制御する。
普図・特図表示器35には、前述のように、特図変動表示ゲーム及び普図変動表示ゲームが実行される。さらに、特図変動表示ゲームの未処理回数(特図始動記憶数)及び普図変動表示ゲームの未処理回数(普図始動記憶数)が表示される。普図変動表示ゲームが当りとなるか否かを示す乱数を含む普図始動記憶、及び特図変動表示ゲームが当りとなるか否かを示す乱数を含む特図始動記憶が記憶されている。
普電SOL36bは、普図変動表示ゲームの停止表示が特別の結果態様となった場合に、開閉部材36aを開放することによって、始動口36に遊技球が入賞しやすい状態にする。
大入賞口SOL42bは、特図変動表示ゲームの結果が特別の結果態様となって、特別遊技状態(大当たり状態)となった場合に、大入賞口42の開閉扉42aを開放して、遊技球が入賞しやすい状態に変換する。
遊技制御装置500は、外部情報端子508から図示しない情報収集端末装置を介して、遊技機データを図示しない遊技場管理装置に出力する。遊技場管理装置は、遊技場に設置された遊技機1の遊技データを収集管理する計算機である。
払出制御装置580は、遊技球が一般入賞口44又は大入賞口42に入賞した場合に、入賞した入賞口に対応する数の遊技球の払出指令を遊技制御装置500から受信する。また、球貸ボタン26が操作された場合にも所定数の遊技球の払い出しを行う払出指令を遊技制御装置500から受信する。払出制御装置580は、受信した払出指令に基づいて、図示しない払出モータを制御し、払出指令に指定された数の遊技球を払い出す。
遊技制御装置500は、変動開始コマンド、客待ちデモコマンド、ファンファーレコマンド、確率情報コマンド、及びエラー指定コマンド等を、遊技の状況を示す遊技データとして、出力I/F506を介して、演出制御装置550へ送信する。
図10は、本発明の実施の形態の演出制御装置550の構成を示すブロック図である。
演出制御装置550は、遊技制御装置500から入力される遊技データに基づいて、演出内容を決定し、表示装置53を制御するとともに、遊技盤10及び前面枠3に備えられた各種演出装置を制御する。演出装置には、LEDなどの発光装置やモータ又はソレノイドなどの可動物が含まれる。
演出制御装置550は、CPU551、制御ROM552、RAM553、画像ROM554、音ROM555、VDP556、音LSI557、入力I/F558b、出力I/F558a、電源投入検出回路559、第1マスタIC570a、第2マスタIC570b、NORゲート回路561及び監視タイマ回路562を備える。さらに、演出制御装置550は、遊技盤10に接続される接続端子90と、前面枠3に接続される接続端子92を備える。なお、第1マスタIC570a及び第2マスタIC570bに共通の機能については、単に「マスタIC」として説明する。
CPU551は、遊技制御装置500から送信された指令信号が通信割込としての割込信号(INT)として入力され、入力された指令信号に基づいて、各種演出を制御する。また、CPU551には、第1マスタIC570a及び第2マスタIC570bからマスタ割込としての割込信号(INT)が入力されるとともに、VDP556からも画像更新割込としての割込信号(INT)が入力される。
さらに、CPU551は、監視タイマ回路562からもタイムアウト割込としての割込信号(INT)が入力される。監視タイマ回路562は、複数種類の監視タイマが内蔵されており、CPU551によって設定された監視タイマ値がタイムアップすると、CPU551に割込信号を出力する。CPU551は、割込信号の入力を受け付けると、実行中の処理を中断し、入力された割込信号に対応する処理を実行する。
制御ROM552には、演出制御のための不変の情報(プログラム、データ等)が格納されている。RAM553は、演出制御時にワークエリアとして利用される。
画像ROM554は、VDP556に接続され、表示装置53に表示される画像データを格納する。VDP556は、表示装置53への画像出力を制御するプロセッサである。
また、VDP556は、表示装置53に表示される画像を更新する周期(33ms周期)と同期する同期信号を発生させる同期信号発生手段を備える。同期信号発生手段は、同期信号を発生させるごとに、発生させた同期信号をCPU551に割込信号として入力する。
音ROM555は、音LSI557に接続され、前面枠3に備えられたスピーカ30から出力される音データを格納する。音LSI557は、スピーカ30からの音声出力を制御する回路である。
入力I/F558bは、フィルタ565a及び565bを介して外部から入力された情報を受け付けるインタフェースである。具体的には、前面枠3に備えられた演出ボタン17が操作されたことを示す信号の入力を受け付けたり、遊技盤10に備えられたモータ位置検出センサによって検出された各モータの位置情報などの入力を受け付けたりする。
電源投入検出回路559は、演出制御装置550に電源が投入された場合に、第1マスタIC570a及び第2マスタIC570bのレジスタをデフォルト状態(すべて0)に初期化するリセット信号を発生させ、NORゲート回路561に出力する。
また、CPU551は、所定の条件が成立した場合に、バス563を介してリセット信号を出力I/F558aに出力する。そして、出力I/F558aは、入力されたリセット信号をNORゲート回路561に出力し、さらに、NORゲート回路561から、第1マスタIC570a及び第2マスタIC570bに当該リセット信号を出力する。所定の条件とは、例えば、すべての装飾制御装置610において、エラーフラグが「ON」になった場合などである(図32及び図33参照)。
また、出力I/F558aは、ドライバ564a及びドライバ564bを介して、遊技盤10や前面枠3に備えられた演出装置(モータ又はソレノイドなどの可動物で駆動する演出装置)へ制御信号を出力する。
なお、電源投入検出回路559からNORゲート回路561に入力されるリセット信号と、CPU551から出力I/F558aを介してNORゲート回路561に入力されるリセット信号は、いずれの場合にもLOWレベルの状態のときにリセットを指令する信号として機能する。そのため、電源投入検出回路559及びCPU551の少なくとも一方からNORゲート回路561にリセット信号が出力されていれば、NORゲート回路561を介してリセット信号が第1マスタIC570a及び第2マスタIC570bに入力される。
図11は、本発明の実施の形態の演出制御装置550に備えられた第1マスタIC570aと遊技盤10に備えられた演出装置の構成を示すブロック図である。
遊技盤10は、第1マスタIC570aに接続される中継基板600、当該中継基板600に接続される装飾装置基板625及び補助遊技装置ユニット12を備える。
中継基板600は、第1マスタIC570aから送信された電気信号を、遊技盤10に備えられた装飾制御装置610に送信(中継)する。また、中継基板600には、装飾制御装置610と同様に、演出装置を制御する機能を有し、当該中継基板600に直接接続された装飾装置基板625を制御する。
装飾装置620は、装飾制御装置610に備えられるI2CI/Oエクスパンダ615(図17参照)によって制御され、電流を流すことによって光が点滅して演出を行う発光装置であり、例えばLEDなどである。装飾装置基板625は、サイドランプ45(図8参照)に設けられる基板であり、サイドランプ45の発光装置(LED)が搭載されている。このサイドランプ45の発光装置は、中継基板600に備えられるI2CI/Oエクスパンダ615によって、直接制御される。
補助遊技装置ユニット12には、LEDなどの発光装置である装飾装置620、可動物である役物駆動第1モータ(MOT)71及び役物駆動第2MOT81が含まれている。補助遊技装置ユニット12内の装飾装置620は、当該補助遊技装置ユニット12に含まれる装飾制御装置610によって制御される。本発明の実施の形態では、役物駆動第1MOT71及び役物駆動第2MOT81は、中継基板600によって制御されるように構成されているが、装飾装置620と同様に当該補助遊技装置ユニット12に含まれる装飾制御装置610によって制御されるように構成してもよい。
役物駆動第1MOT71及び役物駆動第2MOT81は、電流が流れると回転動作することによって演出動作を行う駆動装置である。役物駆動第1MOT71及び役物駆動第2MOT81は、演出制御装置550のドライバ564により中継基板600を経由して直接制御されるので、I2CI/Oエクスパンダ615を介在させる処理は行われない。
本発明の実施の形態では、役物駆動第1MOT71及び役物駆動第2MOT81は、可動演出装置58に含まれ、具体的には、役物駆動第1MOT71は第1演出ユニット63、役物駆動第2MOT81は第2演出ユニット64に含まれている。
演出制御装置550は、役物駆動第1MOT71及び役物駆動第2MOT81を制御することによって、第1演出ユニット63及び第2演出ユニット64が連動した演出動作を実行させる。
第1マスタIC570aは、制御対象となる装飾装置620を制御する装飾制御装置610に個別に割り当てられたアドレスを指定して、指定した個別アドレスの装飾制御装置610に装飾装置620の制御内容を出力する。なお、装飾制御装置610の個別アドレスは、正確には、装飾制御装置610に含まれるI2CI/Oエクスパンダ615(図17参照)の個別アドレスである。
第1マスタIC570aは、接続線SDA、接続線SCL、接続線GND、接続線Vcc、接続線Vled、接続線Vms、及び接続線Vseの7種類の接続線を介して、中継基板(装飾制御装置)600に接続される。これらの接続線は、第1マスタIC570aと中継基板600とを接続するケーブル91(図8参照)により構成される。
接続線SDAは、演出制御装置550と装飾制御装置610との間でデータ信号を授受するための接続線であり、本発明の実施の形態におけるデータ線として機能する。接続線SCLは、接続線SDAでのデータ通信に用いられるクロック信号を入出力するための接続線であり、本発明の実施の形態におけるタイミング信号線として機能する。接続線GNDは、接続線Vcc、接続線Vled、接続線Vms、及び接続線Vseで供給される電源のグランドである。
接続線Vccは、中継基板600及び装飾制御装置610にロジック用の電源を供給するための接続線である。接続線Vledは、LED(装飾装置620)を発光させるための電源を供給するための接続線である。接続線Vmsは、補助遊技装置ユニット12に含まれるモータやソレノイド(具体的には、役物駆動第1MOT71、役物駆動第2MOT81)に電源を供給するための接続線である。接続線Vseは、各種センサ(演出装置に含まれるモータの状態を検出する状態検出センサであって、具体的には、モータ位置検出センサ560aが相当する)に電源を供給するための接続線である。
中継基板600と補助遊技装置ユニット12との間は、演出制御装置550と中継基板600との間を接続する7種類の接続線が接続される。本発明の実施の形態では、モータ位置検出センサ560a、役物駆動第1MOT71及び役物駆動第2MOT81は、中継基板600によって直接制御されるため、前述した7種類の接続線のうち、接続線Vms及び接続線Vse以外の5種類の接続線が、補助遊技装置ユニット12の最上流に配置された装飾制御装置610に接続される。具体的には、中継基板600と装飾制御装置610との間は、接続線Vcc、接続線Vled、接続線SDA、接続線SCL及び接続線GNDが接続される。
なお、図8に示した配線(ケーブル)と各接続線を対応させると、演出制御装置550から中継基板600に引き渡される各種接続線(接続線Vcc、接続線Vled、接続線SDA、接続線SCL、接続線Vms、接続線Vse、及び接続線GND)は、ケーブル91に含まれている。
また、これらの各種接続線は、中継基板600からさらに分岐して別の基板に引き渡され、中継基板600から分岐する接続線Vcc、接続線Vled、接続線SDA、及び接続線SCLはケーブル653に、接続線Vmsはケーブル652に、接続線Vseはケーブル651に含まれている。また、中継基板600から分岐する接続線GNDが、ケーブル651〜653の全てに含まれている。
第1マスタIC570aと装飾制御装置610とは、接続線SDA及び接続線SCLによって2ライン双方向通信を行う。第1マスタIC570aは、CPU551からの指令に基づいて、装飾制御装置610との間に接続された接続線SDA及び接続線SCLの各信号レベルを制御する(第1の)信号レベル制御手段として機能する。
第1マスタIC570aは、中継基板600及び装飾制御装置610にデータを送信する場合には、まず、接続線SCLの信号レベルをHIGHに維持したまま、接続線SDAの信号レベルをHIGHからLOWに変化させることにより、装飾制御装置610へのデータ出力を開始するためのスタート条件を成立させる(装飾制御装置610に対してスタートコンディションを発行(出力)する)。
この後、第1マスタIC570aは、接続線SCLの信号レベルをLOWに変更し、接続線SCLの信号レベルがLOWである間に接続線SDAの信号レベルを送信データの最初のビットのレベルに設定し、所定時間後に接続線SCLの信号レベルをLOWからHIGHに変化させる。接続線SCLの信号レベルがHIGHに変化すると、装飾制御装置610は接続線SDAの信号レベルを取得し、送信データの最初のビットとして認識する。次いで、第1マスタIC570aは、接続線SCLの信号レベルをHIGHからLOWに戻す。
この手順を1回実行すると、第1マスタIC570aから装飾制御装置610へ1ビットのデータが送信され、最終的にはこの手順が8回繰り返されることで、送信データの8ビットすべてが第1マスタIC570aから装飾制御装置610へ送信される(1バイト分のデータが送信される)。
そして、第1マスタIC570aは、最後の8ビット目のデータ送信が終了すると、接続線SCLの信号レベルをHIGHからLOWに戻した際に、接続線SDAを解放して装飾制御装置610からの返答信号を受信することを待機する受信待機状態にする。
受信待機状態になると、装飾制御装置610は、接続線SDAを介して1ビットの返答信号(後述するACK又はNACK)を第1マスタIC570aに返す。次いで、第1マスタIC570aは、接続線SCLの信号レベルをLOWからHIGHに変化させて返答信号のレベルを取り込み、所定時間後に接続線SCLの信号レベルをHIGHからLOWに変化させると、装飾制御装置610は接続線SDAを解放する。
第1マスタIC570aは、このような1バイト分のデータ送信(下り方向データの送信)と1ビット分の返答信号の受信(上り方向データの受信)とを交互に繰り返し、装飾制御装置610へ出力すべきデータがすべて出力されるまで継続する。第1マスタIC570aは、出力すべきデータの出力が終了した場合には、接続線SCLの信号レベルをHIGHに維持したまま、接続線SDAの信号レベルをLOWからHIGHに変更させることにより、装飾制御装置610へのデータ出力を終了するためのストップ条件を成立させる(装飾制御装置610に対してストップコンディションを発行する)。
入力用バッファ571は、装飾制御装置610から接続線SDAを介して入力されたデータが一時的に記憶される記憶装置である。
具体的には、第1マスタIC570aが入力モードに設定された場合において、装飾制御装置610から第1マスタIC570aに送信されたデータが、フィルタ575aによりノイズが除去されて入力用バッファ571に一時的に記憶される。
出力用バッファ572は、装飾制御装置610に接続線SDAを介して出力するデータが一時的に記憶される。
リセットレジスタ(REG)573は、バス563に接続され、演出制御装置550のCPU551からの指令を受け付けてリセット信号をコントローラ574に出力する。コントローラ574は、第1マスタIC570aを統括的に制御し、各種処理を実行する。
フィルタ575aは、接続線SDAから入力されたデータのノイズを除去する。ドライバ576aは、接続線SDAからデータを出力する場合に、トランジスタ578aが動作可能な電圧をトランジスタ578aに印加する。
接続線SDAは、プルアップ抵抗Rによって所定の電圧が印加され(図21参照)、フィルタ575a及びトランジスタ578aに接続されている。
トランジスタ578aは、電力消費を抑えるために電界効果トランジスタ(FET)が用いられている。トランジスタ578aのゲートはドライバ576aに接続され、ドレインはプルアップ抵抗Rにより所定の電圧が印加された接続線SDAに接続され、ソースは接地されている。
トランジスタ578aのゲートに印加される電圧がトランジスタ578aを動作させる所定値よりも小さければ、ドレインとソースとの間に電流が流れないので、接続線SDAに印加された電圧は降下せず、その結果、接続線SDAはHIGHレベルとなる。一方、トランジスタ578aのゲートに印加される電圧がトランジスタ578aを動作させる所定値以上であれば、所定値の電圧が印加されたドレインから接地されているソースへ電流が流れることによって、接続線SDAの電圧が低下し、その結果、接続線SDAはLOWレベルとなる。
なお、トランジスタ578aは、10ミリアンペア程度の電流をドレインからソースへ流しても破損しない仕様のものを用いている。このため、接続線SDAには、通常のI2Cバス使用で用いられる電流値よりもはるかに大きい10ミリアンペア程度の電流を流すことが可能であり、演出制御装置550と装飾制御装置610との間のデータ送信が、ノイズによる障害に耐えうる構成となっている。
ドライバ576aは、データを接続線SDAから出力する場合に、トランジスタ578aにドレインとソースとの間に電流を流すためにトランジスタ578aのゲートにトランジスタ578aが動作可能な値の電圧を印加する。そして、ドライバ576aは、接続線SDAの電圧を、HIGHレベル又はLOWレベルに設定することによって、データを接続線SDAから出力する。
また、フィルタ575bは、接続線SCLから入力されたデータのノイズを除去する。ドライバ576bは、接続線SCLからデータを出力する場合に、トランジスタ578bが動作可能な電圧をトランジスタ578bに印加する。
接続線SCLは、プルアップ抵抗Rによって所定の電圧が印加され(図21参照)、フィルタ575b及びトランジスタ578bに接続されている。
トランジスタ578bは、電力消費を抑えるために電界効果トランジスタ(FET)が用いられている。トランジスタ578bのゲートはドライバ576bに接続され、ドレインはプルアップ抵抗Rにより所定の電圧が印加された接続線SCLに接続され、ソースは接地されている。
トランジスタ578bのゲートに印加される電圧がトランジスタ578bを動作させる所定値よりも小さければ、ドレインとソースとの間に電流が流れないので、接続線SCLに印加された電圧は降下せず、その結果、接続線SCLはHIGHレベルとなる。一方、トランジスタ578bのゲートに印加される電圧がトランジスタ578bを動作させる所定値以上であれば、所定値の電圧が印加されたドレインから接地されているソースへ電流が流れることによって、接続線SCLの電圧が低下し、その結果、接続線SCLはLOWレベルとなる。
なお、トランジスタ578bは、10ミリアンペア程度の電流をドレインからソースへ流しても破損しない仕様のものを用いている。そのため、接続線SCLには、通常のI2Cバス使用で用いられる電流値よりもはるかに大きい10ミリアンペア程度の電流を流すことが可能であり、演出制御装置550と装飾制御装置610との間のデータ送信が、ノイズによる障害に耐えうる構成となっている。
ドライバ576bは、クロック信号を接続線SCLから出力する場合に、トランジスタ578bにドレインとソースとの間に電流を流すためにトランジスタ578bのゲートにトランジスタ578bが動作可能な値の電圧を印加する。そして、ドライバ576bは、接続線SCLの電圧を、HIGHレベルとLOWレベルとに繰り返し変化させることによって、クロック信号を接続線SCLから出力する。
電源投入リセット回路577は、第1マスタIC570aに電源が投入されて、電源投入リセット回路577内の電圧が所定値に達した場合に、入力用バッファ571及び出力用バッファ572などの記憶領域をデフォルト状態にするためのリセット信号をコントローラ574に出力する。なお、電源投入リセット回路577については、第1マスタIC570aの外部に設け、後述する第2マスタIC570bの共通としてもよい。
コマンドレジスタ(REG)581は、演出制御装置550のCPU551からコマンドを受け付けるためのレジスタである。本発明の実施の形態では、コマンドレジスタ581には、STA、STO、SI、及びMODEの各ビットが予め割り当てられており、CPU551によって、各ビット毎個別に“0”又は“1”が設定可能となっている。
STAは、第1マスタIC570aが制御対象の装飾制御装置610に対し、スタート条件(スタートコンディション)の出力を指示するためのビットである。STAに“1”が設定されると、第1マスタIC570aは、制御対象の装飾制御装置610に対し、スタートコンディションを発行(出力)し、スタート条件を成立させる。
STOは、第1マスタIC570aが制御対象の装飾制御装置610に対し、ストップ条件(ストップコンディション)の出力を指示するためのビットである。STOに“1”が設定されると、第1マスタIC570aは、制御対象の装飾制御装置610に対し、ストップコンディションを発行(出力)し、ストップ条件を成立させる。
SIは、第1マスタIC570aから、演出制御装置550において割込みを発生させるときに設定されるビットである。第1マスタIC570aからCPU551に割込みを発生させるときには、コントローラ574によってSIに“1”が設定され、割込信号(INT)がCPU551に入力される。その後、SIに“1”が設定されている間は、第1マスタIC570aは処理を中断しているが、CPU551によってSIに“0”が設定されると、第1マスタIC570aは、割込を中断して処理を再開する。
MODEは、データを送信するモードを指定するビットであり、“1”が設定されている場合には「バッファモード」、“0”が設定されている場合には「バイトモード」が指定される。バッファモードは、連続する複数バイトのデータを1度にまとめて送信するモードであり、最大68バイトのデータの送信が可能である。また、バイトモードは、1回の送信で1バイトのデータだけが送信可能なモードであり、バイト単位でのデータの送受信に利用される。
ステータスレジスタ(REG)582は、第1マスタIC570aのステータスを示す情報が格納される。下位2ビットには常に“0”が設定され、上位5ビットにステータスコードが設定される。
自身アドレス設定レジスタ(REG)583は、第1マスタIC570aがスレーブ(装飾制御装置)として機能する場合に設定されるレジスタである。市販されているマスタICは、通常、マスタとしての機能とスレーブとしての機能を備えており、用途に応じて使用される。自身アドレス設定REG583には、第1マスタIC570aがスレーブとして機能する場合に、自身を特定するためのアドレスが設定される。
図12は、本発明の実施の形態の演出制御装置550に備えられた第2マスタIC570bと前面枠3に備えられた演出装置の構成を示すブロック図である。
前面枠3には、第2マスタIC570bに接続される簡易中継基板1600、当該簡易中継基板1600に接続される装飾制御装置610、スピーカ30、モータ位置検出センサ560b、照明駆動第1MOT13a及び照明駆動第2MOT14aなどが含まれる。
簡易中継基板1600は、第2マスタIC570bから送信された電気信号を、前面枠3に備えられた装飾制御装置610に送信(中継)する。なお、簡易中継基板1600は、中継基板600とは異なり、I2CI/Oエクスパンダ615を備えていないので、簡易中継基板1600に備えた電子部品には、演出装置を制御するための演算処理を実行する機能を有していない。したがって、簡易中継基板1600に直接接続された照明駆動第1MOT13a及び照明駆動第2MOT14aを、自己の判断によって制御することができないため、簡易中継基板1600は、第2マスタIC570bから受信した電気信号を入力して、照明駆動第1MOT13a及び照明駆動第2MOT14aへ中継する役目を果たしている。
照明駆動第1MOT13a及び照明駆動第2MOT14aは、演出制御装置550から送信された信号に基づいて内部に備えられた発光部材を駆動させ、各種演出を実行する。
また、演出制御装置550は、演出ボタン17から当該演出ボタン17が操作されたことを示す信号が簡易中継基板1600を介して入力される。さらに、モータ位置検出センサ560bによって検出された照明駆動第1MOT13a及び照明駆動第2MOT14aの位置情報が、簡易中継基板1600を介して入力される。
さらに、簡易中継基板1600は、演出制御装置550の音LSI557からの信号を受信し、スピーカ30から出力する。
なお、第2マスタIC570bの構成は、第1マスタIC570aと同じ構成であるため、第2マスタIC570bの各構成には同じ符号を割り当てて説明を省略する。また、第2マスタIC570bは、第1マスタIC570aと同様に、CPU551からの指令に基づいて、装飾制御装置610との間に接続された接続線SDA及び接続線SCLの各信号レベルを制御する(第2の)信号レベル制御手段として機能する。
なお、演出制御装置550と中継基板600との接続方法、及び中継基板600と中継基板600以外の装飾制御装置610との接続方法については、図13〜図16にて詳細を後述する。また、中継基板600及び装飾制御装置610の構成などについては、図17〜図21にて詳細を後述する。
装飾制御装置610は、主として、遊技盤10及び前面枠3に取り付けられている。前面枠3に取り付けられた装飾制御装置610が制御する装飾装置(LED)620は、装飾部材9a、9b、照明ユニット11、及び異常報知LED29を照射するものである。一方、遊技盤10に取り付けられる装飾制御装置610は、センターケース51、表示装置53、及び演出制御装置550を一体化して構成される補助遊技装置ユニット12に含まれている。
図13では、遊技盤10に備えられる中継基板600及び補助遊技装置ユニット12に含まれる装飾制御装置610の構成及び接続形態について説明する。図14では、前面枠3に備えられる簡易中継基板1600及び装飾制御装置610の構成及び接続形態について説明する。
図13は、本発明の実施の形態の遊技盤10の構成を示す図である。
補助遊技装置ユニット12を構成するセンターケース51は、前述したように、枠装飾部65と枠体基部60とを組み合わせて構成される。
枠装飾部65には、変動表示ゲームなどの補助遊技の演出を行うための演出装置や当該演出装置を制御するための装飾制御装置610などが複数個備えられる。これらの装飾制御装置610同士を所定の信号ケーブルにより相互に接続し、さらに、この装飾制御装置610に制御される演出装置もケーブルで接続することにより、当該枠装飾部65が一体構成される。
また、枠体基部60にも、変動表示ゲームなどの補助遊技の演出を行うための演出装置や当該演出装置を制御するための装飾制御装置610が複数個備えられる。これらの装飾制御装置610同士を所定の信号ケーブルにより相互に接続し、さらに、この装飾制御装置610に制御される演出装置もケーブルで接続することにより、当該枠体基部60が一体構成される。
ゆえに、枠装飾部65や枠体基部60は、本実施形態における一体型演出ユニットを構成している。これに対し、サイドランプ45などは、一体型演出ユニットに含まれない単体の演出装置であるので、分離型演出装置を構成することになる。
なお、補助遊技装置ユニット12に含まれる演出装置のすべてが補助遊技装置ユニット12内部の装飾制御装置610によって制御される必要はない。例えば、本発明の実施の形態では、センターケース51内に配置される可動物は、中継基板600を介して、演出制御装置550により直接制御される。
装飾制御装置610には、前述のように、装飾装置620を制御するためのI2CI/Oエクスパンダ615が搭載され、I2CI/Oエクスパンダ615には、個々のI2CI/Oエクスパンダ615を識別するための個別アドレスが割り当てられている。本発明の実施の形態では、前述のように、I2CI/Oエクスパンダ615の個別アドレスが、装飾制御装置610の個別アドレスとして利用される。
演出制御装置550は、I2CI/Oエクスパンダ615の個別アドレスを指定して制御信号を送信することによって、装飾装置620を個別に制御して演出動作を実行することが可能となる。各装飾制御装置610には、原則的に、それぞれ異なる個別アドレス(図中に「ad=」で示す)が割り当てられる。
また、装飾制御装置610は、接続形態によって、分岐型(分岐基板)、連結型(連結基板)及び終端型(終端基板)の三種類に分類される。分岐型、連結型及び終端型いずれの装飾制御装置610にも装飾装置620を接続可能であり、接続された装飾装置620を制御することが可能である。
分岐型の装飾制御装置610は、下流側に複数の装飾制御装置610が直接接続され、これらの複数の装飾制御装置610に受信した制御信号を送信する。連結型の装飾制御装置610は、下流側に一つの装飾制御装置610が接続され、接続された装飾制御装置610に受信した制御信号を送信する。終端型の装飾制御装置610は、下流側に装飾制御装置610が接続されず、装飾装置620の制御のみを行う。分岐型、連結型、終端型の装飾制御装置610の詳細に関しては、図17を用いて後述する。
なお、上流側とは、演出制御装置550から途中の装飾制御装置610を経て末端の装飾制御装置610までへ電気信号を送信する構成において、この電気信号を送信する側のことである。反対に、下流側とは、この電気信号を受信する側のことである。
要するに、演出制御装置550から末端の装飾制御装置610への信号ケーブルを順に辿っていったときに、より演出制御装置550に近い側へ接続されている装飾制御装置610が上流側となり、より末端の装飾制御装置610に近い側へ接続されている装飾制御装置610が下流側となる。例えば、装飾制御装置610A、610Cは、装飾制御装置610Hの上流側に配置されており、装飾制御装置610I、610Jは、装飾制御装置610Hの下流側に配置されていることになる。
ここで、本発明の実施の形態では、前述のように、可動演出装置58を構成する第1演出部材70及び第2演出部材80の可動部分に装飾制御装置610が配置されている。言い換えれば、図6において、第1演出部材70の可動部(第1演出ベース100)に装飾制御装置610(第1発光基板106)が配置され、図7において、第2演出部材80の可動部(第2演出ベース110)に装飾制御装置610(第2発光基板116)が配置されている。
このとき、従来のシフトレジスタのように、各装飾制御装置610をデイジーチェーンで配線すると、デイジーチェーンの末端となる何れか一方の装飾制御装置610だけは、入力用のケーブルのみを接続するだけで済む。しかし、デイジーチェーンの途中に接続される構成となる他方の装飾制御装置610には、入力用のケーブルと出力用のケーブルを接続する必要がある。可動部に複数のケーブルが接続されると、可動部とともに装飾制御装置610(第1発光基板106、第2発光基板116)自体が可動する構造となってケーブルも移動するため、配線の引き回しが困難になってしまうおそれがある。さらに、ケーブルの移動により、ケーブルを構成する接続線が断線する可能性が生じ、演出に影響を与えるおそれがある。
本発明の実施の形態では、第1演出部材70及び第2演出部材80に配置された装飾制御装置610を終端型とし、これらの装飾制御装置610の上流に分岐型の装飾制御装置610を配置している。そのため、終端型の装飾制御装置610(第1発光基板106、第2発光基板116)には、第1演出部材70及び第2演出部材80の外部に備えた他の装飾制御装置610へ信号を伝達するケーブルが、接続されない構造となる。このように装飾制御装置610を配置すれば、可動部に配置された装飾制御装置610には入力ケーブルのみを接続すればよいことになる。したがって、デイジーチェーンで配線する場合と比較して、配線の引き回しが容易になり、断線する可能性を少なくすることができる。
装飾制御装置610は、受信した制御信号の宛先アドレスが自宛でない場合、下流側にさらに装飾制御装置610が接続されていれば受信した制御信号を送信する。また、送信先がなければ受信した制御信号を破棄する。
装飾制御装置610は、16個のポートに対応するLEDを制御することが可能であり、装飾制御装置610に搭載されたLEDと、当該装飾制御装置610に接続された外部の装飾装置基板625に搭載されたLEDとの合計数が16以下であれば、両方のLEDを制御することが可能である。すなわち、一体型の装飾制御装置610(I2CI/Oエクスパンダ615と装飾装置620がともに配置される主動型基板に相当)では、装飾装置基板625(I2CI/Oエクスパンダ615が配置されず、装飾装置620が配置される従動型基板に相当)をさらに接続することによって、内部に備えられた装飾装置620と外部に接続した装飾装置620の両方を制御することが可能である。
こうすることによって、離れて配置された装飾装置620を1つの装飾制御装置610で制御することが可能となり、装飾制御装置610の数を最小限にすることができる。
中継基板600は、上流側では演出制御装置550に搭載された第1マスタIC570aに接続し、第1マスタIC570aから送信された制御信号を受信する。また、下流側では補助遊技装置ユニット12に含まれる装飾制御装置610A(正確には一体型演出ユニットである枠体基部60に含まれる装飾制御装置610A)に接続する。さらに、中継基板600は、遊技盤10に備えられた分離型演出装置である装飾装置基板625(サイドランプ45(図8参照)に設けられた基板)に接続し、当該中継基板600に備えられたI2CI/Oエクスパンダ615によって、当該装飾装置基板625に搭載された装飾装置620を制御する。
補助遊技装置ユニット12には、装飾制御装置610A〜610Jが含まれる。装飾制御装置610Aは、分岐型の装飾制御装置であり、装飾制御装置610B及び装飾制御装置610Cに第1マスタIC570aから受信した制御信号を送信する。また、装飾制御装置610Bには、装飾装置基板625Bが接続されており、装飾装置基板625Bに配置されたLEDなどの演出装置(装飾装置620)が装飾制御装置610Bによって制御される。
装飾制御装置610Cは、分岐型の装飾制御装置610であり、下流側の装飾制御装置610D及び装飾制御装置610Hに受信した制御信号を送信する。装飾制御装置610Dは、分岐型の装飾制御装置610Eが接続され、さらに、装飾装置基板625Dに含まれる装飾装置620Dを制御する。
装飾制御装置610Eには、第1演出部材70を制御する装飾制御装置610Fと、第2演出部材80を制御する装飾制御装置610Gとが接続される。第1演出部材70及び第2演出部材80は、連動して演出動作が実行される。装飾制御装置610Fは、第1演出部材70に含まれる第1発光基板106に配置され(図6)、また、装飾制御装置610Gは、第2演出部材80に含まれる第2発光基板116に配置されている(図7)。
なお、第1発光基板106自体が装飾制御装置610Fとして機能し、第2発光基板116自体が装飾制御装置610Gとして機能していてもよい。
本発明の実施の形態では、装飾制御装置610Fは第1演出部材70に含まれるLEDなどを制御し、装飾制御装置610Gは第2演出部材80に含まれるLEDなどを制御する。なお、第1演出部材70及び第2演出部材80をそれぞれ表示部53aの前方に移動させるための駆動力を出力するための役物駆動第1MOT71及び役物駆動第2MOT81は、中継基板600によって制御される。
演出制御装置550は、変動表示ゲーム実行時など、所定の条件を満たすと、第1演出ユニット63(第1演出部材70)及び第2演出ユニット64(第2演出部材80)を制御して演出動作を実行する。具体的には、第1演出ユニット63に含まれる役物駆動第1MOT71及び第2演出ユニット64に含まれる役物駆動第2MOT81を制御するために、中継基板600の個別アドレス(「0000」)を指定して、これらのモータを動作させるための制御信号を送信する。さらに、第1演出部材70に含まれるLEDなどの発光装置を制御する制御信号を、第1演出部材70を制御する装飾制御装置610Fの個別アドレス(「0110」)を指定して送信する。同様に、第2演出部材80に含まれるLEDなどの発光装置を制御する制御信号を、第2演出部材80を制御する装飾制御装置610Gの個別アドレス(「0111」)を指定して送信する。その後、ストップコンディションを発行する。
装飾制御装置610Hは、連結型の装飾制御装置610であり、さらに、連結型の装飾制御装置610I及び終端型の装飾制御装置610Jが接続される。終端型の装飾制御装置610Jは、装飾装置基板625Jに含まれる装飾装置620Jを制御する。
本発明の実施の形態では、装飾制御装置610H及び装飾制御装置610Iは、信頼度報知装置15に含まれる演出装置(LED)を制御する。所定の条件を満たした場合には、演出制御装置550の第1マスタIC570aから所定の態様を示すようにするための制御信号が送信され、指定された態様で演出を行う。
図14は、本発明の実施の形態の前面枠3の構成を示す図である。
本発明の実施の形態の遊技機1には複数の仕様があり、通常版遊技機1と廉価版遊技機1とがある。通常版遊技機1は、標準仕様の装飾部材を備えている前面枠3(以下、通常版前面枠3とする)を備えている。廉価版遊技機1は、標準仕様の装飾部材よりも廉価なコストで構成された装飾部材を備えている前面枠3(以下、廉価版前面枠3’とする)を備えている。図14の上側には、通常版前面枠3の構成を示し、下側には、廉価版前面枠3’の構成を示しており、遊技機1では、何れか一方の仕様の前面枠3のみが取り付けられて演出制御装置550と接続されるので、第2マスタIC570bには、通常版前面枠3か廉価版前面枠3’の何れか一方のみが接続される。
通常版前面枠3と廉価版前面枠3’とは、装飾部材9a、9bに含まれる装飾装置620の数が相違し、さらに、装飾装置620を制御する装飾制御装置610の数も相違する。具体的には、通常版前面枠3の装飾部材9a、9bは7つの装飾制御装置610によって制御され、廉価版前面枠3’の装飾部材9a’、9b’は5つの装飾制御装置610によって制御される。装飾部材9a、9bは、装飾部材9a’、9b’よりも多くのLEDによって照射するので、通常版前面枠3のほうが廉価版前面枠3’よりも明るくなり、実行可能な演出のバリエーションを増やすことも可能である。このため、通常版前面枠3が取り付けられた場合の装飾装置620の制御と、廉価版前面枠3’が取り付けられた場合の装飾装置620の制御が相違する。
このため、通常版前面枠3に取り付けられる装飾制御装置610の個別アドレスと廉価版前面枠3’に取り付けられる装飾制御装置610の個別アドレスに同じアドレスを割り当てた場合には、演出制御装置550から装飾制御装置610へ送信する演出制御データを、通常版前面枠3の場合と廉価版前面枠3’の場合とで異ならせる必要があるので、遊技機1に取り付けられる前面枠3に応じて通常版用の演出制御装置550と廉価版用の演出制御装置550をそれぞれ用意しなければならない。したがって、製造メーカーが遊技機1を出荷する場合には、通常版用の演出制御装置550と廉価版用の演出制御装置550とを用意しなければならず、製造コストが上昇してしまう。
そこで、本発明の実施の形態では、通常版前面枠3と廉価版前面枠3’とで制御が異なる装飾制御装置610の個別アドレスには、異なるアドレスを割り当て、演出制御装置550から装飾制御装置610へ送信する演出制御データが、通常版前面枠3の場合と廉価版前面枠3’の場合とで共通となるように構成することで、一つの演出制御装置550で通常版用の制御と廉価版用の制御とを実行できるように構成した。こうすることによって、通常版用の演出制御装置550と廉価版用の演出制御装置550とをそれぞれ用意する必要がなくなり、製造コストを抑えることができる。なお、本発明の実施の形態では、遊技盤10の構成については、通常版であっても廉価版であっても同じ構成となっている。
以下、通常版前面枠3及び廉価版前面枠3’の構成について具体的に説明する。
通常版前面枠3には、第2マスタIC570bに接続される簡易中継基板1600を備える。簡易中継基板1600には、分岐型の装飾制御装置610K及び照明駆動モータ(13a、14a)が接続される。
装飾制御装置610Kは、照明ユニット11内に配置され、装飾装置基板625Kに備えられた装飾装置620を制御する。具体的には、照明ユニット11に含まれるLEDや異常報知LED29などが制御される。
また、装飾制御装置610Kは、分岐型の装飾制御装置であり、装飾制御装置610L及び装飾制御装置610Pに受信した制御信号を送信する。装飾制御装置610L〜610Nは、通常版前面枠3の左側部分の装飾部材9aを制御する。また、装飾制御装置610P〜610Rは、通常版前面枠3の右側部分の装飾部材9bを制御する。
通常版前面枠3の左側部分の装飾部材9aは、連結型の装飾制御装置610L、610M及び終端型の装飾制御装置610Nを含む。装飾制御装置610Lは、演出制御装置550の第2マスタIC570bから送信された制御信号を、装飾制御装置610Kから受信し、装飾制御装置610M及び610Nに送信する。
通常版前面枠3の右側部分の装飾部材9bは、前述のように、連結型の装飾制御装置610P、610Q及び終端型の装飾制御装置610Rを含む。装飾制御装置610Pは、演出制御装置550の第2マスタIC570bから送信された制御信号を、装飾制御装置610Kから受信し、装飾制御装置610Q及び610Rに送信する。
また、装飾部材9a及び装飾部材9bに含まれる装飾制御装置610L〜610Rにも、それぞれ異なる個別アドレスが割り当てられており、第2マスタIC570bから送信された制御信号に基づいて、それぞれ別々の演出動作を実行させることができる。具体的には、照明ユニット11に含まれる装飾制御装置610Kの個別アドレスには「0000」、装飾部材9aに含まれる装飾制御装置610L、610M及び610Nの個別アドレスには「0001」「0010」及び「0011」、装飾部材9bに含まれる装飾制御装置610P、610Q及び610Rの個別アドレスには「0100」「0101」及び「0110」が割り当てられている。
一方、廉価版前面枠3’は、通常版前面枠3と同様に、第2マスタIC570bに接続される簡易中継基板1600と、ほぼ同様の機能を有する基板(以下、廉価版の簡易中継基板1600’とする)を備える。ただし、廉価版前面枠3’では、簡易中継基板1600’に分岐型の装飾制御装置610Sのみが接続されており、照明駆動モータ(13a、14a)を備えずにコストダウンが図られている。
装飾制御装置610Sは、照明ユニット11内に配置されており、装飾装置基板625Sに備えられた装飾装置620を制御する。具体的には、照明ユニット11に含まれるLEDや異常報知LED29などが制御され、通常版前面枠3と同様である。また、装飾制御装置610Sは、通常版前面枠3の照明ユニット11を制御する装飾制御装置610Kと同一の基板であり、同じ個別アドレス(「0000」)が割り当てられている。そのため、通常版前面枠3の装飾制御装置610Kと、廉価版前面枠3’の装飾制御装置610Sでは、同じ制御が実行される。
また、装飾制御装置610Sは、分岐型の装飾制御装置であり、装飾制御装置610T及び装飾制御装置610Vに受信した制御信号を送信する。装飾制御装置610T及び610Uは、通常版前面枠3の左側部分の装飾部材9a’を制御する。また、装飾制御装置610V及び610Wは、通常版前面枠3の右側部分の装飾部材9b’を制御する。
また、廉価版前面枠3’では、左側の装飾部材9a’を制御する装飾制御装置610T及び610U、及び右側の装飾部材9b’を制御する装飾制御装置610V及び610Wが取り付けられている。装飾制御装置610Tは、通常版前面枠3の装飾制御装置610Lと同一の基板であり、同じ個別アドレス(「0001」)が割り当てられている。同様に、装飾制御装置610Vは、通常版前面枠3の装飾制御装置610Pと同一の基板であり、同じ個別アドレス(「0001」)が割り当てられている。そのため、通常版前面枠3の装飾制御装置610Lと、廉価版前面枠3’の装飾制御装置610Tでは、同じ制御が実行され、通常版前面枠3の装飾制御装置610Pと、廉価版前面枠3’の装飾制御装置610Vでは、同じ制御が実行される。
装飾制御装置610U及び610Wには、同じ個別アドレス(「0111」)が割り当てられている。したがって、廉価版前面枠3’では、左右の装飾部材で装飾制御装置610U及び610Wで同じ制御が実行され、すなわち、制御対象のLEDによる照射が同じタイミングで実行される。また、装飾制御装置610U及び610Wには、通常版前面枠3の装飾制御装置610に割り当てられていない個別アドレスが割り当てられている。
そして、通常版前面枠3と廉価版前面枠3’の何れに使用される場合であっても、演出制御装置550からは、装飾部材9a、9b、9a’、9b’に含まれる装飾制御装置610のI2CI/Oエクスパンダ615に割り当てられたすべての個別アドレスに対して演出制御データが送信される。
以上のように、廉価版前面枠3’には、備えられている装飾制御装置のうち、装飾制御装置610M、610N、610Q及び610R(第1の仕様依存型グループ単位制御手段)に相当するものが存在せず、代わりに、装飾制御装置610U及び610W(第2の仕様依存型グループ単位制御手段)が取り付けられている。通常版前面枠3には、装飾制御装置610M、610N、610Q及び610R(第1の仕様依存型グループ単位制御手段)が取り付けられているのに対し、廉価版前面枠3’には、より少ない数の装飾制御装置610U及び610W(第2の仕様依存型グループ単位制御手段)が取り付けられている。
また、装飾制御装置610Kと装飾制御装置610S、装飾制御装置610Lと装飾制御装置610T、装飾制御装置610Vと装飾制御装置610Pは、互いに、通常版前面枠3と廉価版前面枠3’とに共通利用可能な基板として構成されている。
したがって、本発明の実施の形態の演出制御装置550は、通常版用の制御と廉価版用の制御とを共通化することが可能となり、前面枠ごとに制御を変更する必要が無く、演出制御装置550の製造コストを削減することができる。
なお、以降の説明では、特に断らない限り、本発明の実施の形態の遊技機1では通常版前面枠が取り付けられているものとする。
なお、廉価版前面枠3’では、個別アドレスが「0010」、「0011」、「0101」及び「0110」となるI2CI/Oエクスパンダ615は使用されず、通常版前面枠3では、個別アドレスが「0111」となるI2CI/Oエクスパンダ615は使用されない。そのため、いずれの前面枠3であっても、異常判定テーブル3300(図33参照)において、接続されないI2CI/Oエクスパンダ615が存在することになる。しかしながら、後述するように、異常判定テーブル3300に登録されている少なくとも1つのI2CI/Oエクスパンダ615と、第2マスタIC570bとの間で正常にデータ送信が行われていれば、正常に動作していると判定されるため、これが原因で処理が中断することはない。
図15は、本発明の実施の形態の演出制御装置550と遊技盤10に含まれる中継基板600及び装飾制御装置610の接続状態を説明する図である。
図15では、演出制御装置550、中継基板600、装飾制御装置610A、610B及び610Cの接続について説明する。また、説明の都合上、装飾制御装置610として、1個の中継基板600と、装飾制御装置610Cよりも下流に接続されている各装飾制御装置(610D〜610J)については記載を省略する。なお、各装飾制御装置610間の接続はそれぞれ同じである。
演出制御装置550は、接続線Vcc、接続線Vled、接続線SDA、接続線SCL、接続線GND、接続線M11〜M14、接続線M21〜M24、接続線M31〜M34、接続線SL1、接続線SL2、接続線SE1〜3、接続線Vms、及び接続線Vseによって中継基板600と接続される。
接続線Vcc、接続線Vled、接続線SDA、接続線SCL、接続線GND、接続線Vms、及び接続線Vseについては、図11にて説明した通りである。
接続線M11〜M14は、第1演出ユニット63に含まれる役物駆動第1MOT71の第1〜4相を制御するための信号が送信される。接続線M21〜M24は、第2演出ユニット64に含まれる役物駆動第2MOT81の第1〜4相を制御するための信号が送信される。役物駆動第1MOT71、役物駆動第2MOT81は4相駆動のステッピングモータを用いている。
接続線M31〜M34は、モータを制御するための接続線であるが、本発明の実施の形態では、中継基板600に対応するモータが接続されないため、接続状態を表示する空き端子モニタ603が接続される。空き端子モニタ603は、接続線M31〜M34に対応した、4個のLEDによって構成されており、各接続線が断線しているか否かを確認することができる。したがって、一部又は全部の接続線が断線している場合には、空き端子モニタ603の一部が点灯しないことになるので、ケーブルの品質を悪いと判断することができる。
特に、本発明の実施の形態の遊技機1のように、第1マスタIC570aと中継基板600とを接続するケーブル91には、電源を供給するための接続線GND、接続線Vcc、接続線Vled、接続線Vms、及び接続線Vseが含まれている(図11若しくは図15参照)。これらの電力を供給する線は、安定した動作を実現するために、充分な電流量が確保できる断面積の大きい(太い)ケーブルが本来であれば用いられる。
しかしながら、ケーブル91の様なフラット形状のケーブルを用いる場合には、コネクタを接続する関係から、各ケーブルの断面積の大きさを同一(共通化)する必要がある。そこで、断面積の大きいケーブルを代わりに、複数の接続線を用いて電源供給を行うことが考えられ、例えば、接続線GNDとして6本のケーブルを使用し、接続線Vmsとして3本のケーブルを使用するといった構成を実現することができる。
このとき、電力を供給する接続線の一部が断線していても、すべての接続線が断線していなければ、見た目上は問題なく動作していることになるので、LEDを点灯させたり、モータを駆動させたりすることが可能であるが、充分な電流量が確保できていない状態であるため、ケーブル上で異常な発熱が発生したりする恐れがある。このような場合に、空き端子モニタ603に電力を供給する線を接続することによって、一見正常に動作していても、一部の接続線が断線しているような品質の劣るケーブルを発見することができ、障害が発生する前に交換したり必要なメンテナンスを行ったりすることが可能となる。
また、中継基板600は、役物駆動モータ(役物駆動第1MOT71、役物駆動第2MOT81)を駆動するために、接続線Vmsから供給された電力を各モータに供給する。なお、装飾ピース46を上下動させるための役物駆動ソレノイドに供給される電力についても接続線Vmsから供給される。
また、中継基板600には、役物駆動モータの回転位置を検出するためのモータ位置検出センサ560aが接続される。接続線SE1〜3は、モータ位置検出センサ560による検出結果を受信するための接続線であり、中継基板600は、モータ位置検出センサ560aによって検出された役物駆動モータの回転位置を、接続線SE1〜3を介して演出制御装置550に送信する。
接続線SL1及び接続線SL2は、役物駆動ソレノイドを制御するための接続線である。接続線SL1及び接続線SL2も、役物駆動ソレノイドを使用しないときは、前述の接続線M31〜M34と同様に、接続状態を表示する空き端子モニタ603が接続される。
中継基板600を含む装飾制御装置610は、接続線Vcc、接続線Vled、接続線SDA、接続線SCL、及び接続線GND(以下、この5種類の接続線を束ねたものを一つのハーネスという)を介して互いに接続される。
また、装飾制御装置610Aにはハーネスを介して装飾制御装置610B及び装飾制御装置610Cが接続され、装飾制御装置610Cにはハーネスを介して図示しない装飾制御装置610Dが接続される。
各装飾制御装置610は、ハーネスを自身に接続するための取付口となるコネクタを備える。このコネクタは各装飾制御装置610で共通であるため、各接続線の接続順が共通となっており、誤配線を防止することができる。
図16は、本発明の実施の形態の演出制御装置550と、通常版前面枠3に含まれる簡易中継基板1600及び装飾制御装置610の接続状態を説明する図である。
図16では、演出制御装置550、簡易中継基板1600、装飾制御装置610K、610L及び610Pの接続について説明する。また、説明の都合上、装飾制御装置610として、装飾制御装置610L及び装飾制御装置610Pよりも下流に接続されている各装飾制御装置については記載を省略する。
演出制御装置550は、接続線Vcc、接続線Vled、接続線SDA、接続線SCL、接続線GND、接続線M11〜M14、接続線M21〜M24、接続線M31〜M34、接続線SL1、接続線SL2、接続線SE1〜3、接続線Vms、及び接続線Vseに加え、演出ボタン17からのボタン信号を受信する接続線及び音信号をスピーカ30に送信する接続線によって簡易中継基板1600と接続される。
接続線Vcc、接続線Vled、接続線SDA、接続線SCL、接続線GND、接続線Vms、及び接続線Vseについては、図15にて説明したように、演出制御装置550と遊技盤10とを接続する場合と同様に、下流側に配置されている各装飾制御装置610に各種信号を送受信する。
接続線M11〜M14は、照明ユニット11に含まれる第1可動式照明13の照明駆動第1MOT13aを制御するための信号が送信される。接続線M21〜M24は、照明ユニット11に含まれる第2可動式照明14の照明駆動第2MOT14aを制御するための信号が送信される。
接続線M31〜M34は、モータを制御するための接続線であるが、本発明の実施の形態では、対応するモータが簡易中継基板1600に接続されないため、中継基板600と同様に、接続状態を表示する空き端子モニタ603が接続される。
さらに、照明駆動モータ(照明駆動第1MOT13a、照明駆動第2MOT14a)を駆動するために、接続線Vmsから供給された電力を各モータに供給する。
また、簡易中継基板1600には、照明駆動モータの回転位置を検出するためのモータ位置検出センサ560bが接続される。簡易中継基板1600は、モータ位置検出センサ560bによって検出された照明駆動モータの回転位置を、接続線SE1〜3を介して演出制御装置550に送信する。
ここで、装飾制御装置610に設けられたI2CI/Oエクスパンダ615(図18で後述)が装飾装置620を制御する方法について説明する。
演出制御装置550は、遊技制御装置500から入力された遊技データに基づいて、演出装置(装飾装置620)の出力態様を決定する。そして、演出制御装置550は、決定された出力態様となるように、制御対象となる装飾制御装置610の個別アドレス(I2CI/Oエクスパンダ615の個別アドレス)を含む演出制御データ(演出制御情報)を中継基板600に出力する。このとき、演出制御データは、中継基板600から接続線SDAを介してすべての制御対象の装飾制御装置610に出力される。
なお、本発明の実施の形態では装飾制御装置610によって制御される演出装置は主としてLED等の発光装置であるため、LEDの発光態様が演出装置の出力態様に相当する。この場合、演出制御データによって、LEDの点灯/点滅/消灯が指示され、さらに、LEDの点滅周期や点灯輝度も指示される。
各装飾制御装置610には、前述のようにあらかじめ一意な個別アドレスが設定されており、演出制御データが入力されると、入力された演出制御データに含まれるアドレスと設定されている個別アドレスとが一致するか否かを判定する。そして、入力された演出制御データに含まれるアドレスと設定されている個別アドレスとが一致すると判定された場合には、装飾制御装置610のI2CI/Oエクスパンダ615は、演出制御データを取り込んで、対応する装飾装置620の出力態様を制御するとともに、8ビット目のデータが入力された直後に返答信号をマスタIC(第1マスタIC570a、第2マスタIC570b)に出力する。
以上のように、マスタICは、当該マスタICに接続されるすべての装飾制御装置610に演出制御データを送信し、当該演出制御データに含まれる個別アドレスに対応する装飾制御装置610において、要求した出力態様となるように演出装置を制御することができる。
なお、各装飾制御装置610には、個別アドレス以外にも、装飾制御装置610のI2CI/Oエクスパンダ615を初期化するためのリセット用アドレスが設定されている。このリセットアドレスは、すべてのI2CI/Oエクスパンダ615に対して共通に設けられたアドレスであり、個別アドレスとして使用することはできない。また、このリセットアドレスの値を変更することもできないように構成されている(詳細は後述する)。
演出制御装置550は、装飾制御装置610(正確には、装飾制御装置610のI2CI/Oエクスパンダ615)を初期化する場合に、このリセット用の共通アドレスを含んだ初期化指示データを、中継基板600又は簡易中継基板1600に出力する。このとき、初期化指示データ演出制御データは、中継基板600又は簡易中継基板1600を介して、演出制御装置550に接続されるすべての装飾制御装置610に対して接続線SDAから出力される。
各装飾制御装置610には、リセット用の共通アドレスがあらかじめ設定されているので、入力されたデータに含まれるアドレスと、リセット用の共通アドレスとが一致するか否かを判定する。一致すると判定された場合には、装飾制御装置610のI2CI/Oエクスパンダ615は、返答信号をマスタICに出力するとともに、入力データを初期化指示データとして取り込み、I2CI/Oエクスパンダ615自身を初期化する。
なお、I2CI/Oエクスパンダ615が初期化されると、当該初期化されたI2CI/Oエクスパンダ615によって制御される演出装置はオフ状態となる。
このように、装飾制御装置610は、演出制御装置550からの指令に基づく制御を行うので、演出制御装置550と装飾制御装置610との関係は、演出制御装置550の第1マスタIC570a及び第2マスタIC570bがマスタであり、各装飾制御装置610のI2CI/Oエクスパンダ615がスレーブとなる。
図15及び図16では、中継基板600以外の装飾制御装置610の制御対象は、LEDなどの発光装置である装飾装置620となっているが、モータやソレノイドなどの可動物を制御することも可能である。この場合には、演出装置がモータやソレノイドなどの駆動源となることから、これらの駆動源の動作態様が演出装置の出力態様に相当する。演出制御データには、駆動源の作動/停止指示が含まれ、さらに動作速度を指定することも可能である。
なお、遊技機1の構成として、通常版前面枠3の代わりに廉価版前面枠3’を設けた場合でも、廉価版前面枠3’に含まれる各種基板の接続状態は、図16とほぼ同等の構成となる。
ただし、廉価版前面枠3’には、照明駆動モータ(照明駆動第1MOT13a、照明駆動第2MOT14a)が設けられていないため、廉価版の簡易中継基板1600’には、照明駆動モータが接続されるコネクタが存在せず、接続線M11〜M14、及び接続線M21〜M24も使用されない。そのため、廉価版の簡易中継基板1600’では、接続線M11〜M14、及び接続線M21〜M24にも、空き端子モニタ603が接続される。
また、廉価版前面枠3’には、モータ位置検出センサ560bが設けられていないため、廉価版の簡易中継基板1600’では、接続線SE1〜3をグランドに接続して、一定のレベルの信号が、常時、演出制御装置550に入力されるように構成している。
図17は、本発明の実施の形態の装飾制御装置610のブロック図である。
本発明の実施の形態の装飾制御装置610は、前述のように、接続形態に基づいて、分岐型、連結型、及び終端型の3種類に分類される。図17には、分岐型の装飾制御装置610Xに終端型の装飾制御装置610Yが接続されている例を示している。さらに、装飾制御装置610Yには、装飾装置基板625が接続されている。
分岐型の装飾制御装置とは、I2CI/Oエクスパンダ615と、I2CI/Oエクスパンダ615が受信する信号を受け入れるためのコネクタ(上流コネクタ)と、上流コネクタから受け入れた信号を、複数の装飾制御装置610に伝達するコネクタ(下流コネクタ)を備えたものである。例えば、図中の装飾制御装置610Xのように、内部にI2CI/Oエクスパンダ615及びLED(装飾装置620)を備え、さらに、一つの上流コネクタ611と二つの下流コネクタ612A、612Bを備える。
接続線SDA及び接続線SCLは、装飾制御装置610内で二つに分岐し、一方は、そのまま次の装飾制御装置610Yに出力するための下流コネクタ612Bに接続される。他方は、さらに分岐し、一方はI2CI/Oエクスパンダ615に接続され、他方は別の下流コネクタ612Aに接続される。
また、装飾制御装置610XのI2CI/Oエクスパンダ615の出力側には、制御対象となる装飾装置620が接続される。I2CI/Oエクスパンダ615の出力側は、図20で説明するポート0〜15によって構成される。さらに、装飾制御装置610のすべてのポートが、図19で後述する電流制限抵抗R0〜R15を介して、内部のLEDに接続されている。なお、この電流制限抵抗R0〜R15も、装飾制御装置610に備えられている。
前述したように、I2CI/Oエクスパンダ615は、演出制御装置550から入力された演出制御データに含まれるアドレスと、当該I2CI/Oエクスパンダ615に設定されている個別アドレスとが一致する場合にのみ、演出制御データに含まれる装飾データに基づいて、I2CI/Oエクスパンダ615に接続されている装飾装置620を制御する。
なお、下流コネクタが1個しか備えないために、上流コネクタから受け入れた信号が、1つの装飾制御装置610にのみ伝達可能となっている装飾制御装置は、連結型の装飾制御装置となる。例えば、前述した装飾制御装置610Xにて、下流コネクタ612Bのみが備えられ、下流コネクタ612Aが存在しないようなものが該当する。
また、終端型の装飾制御装置とは、I2CI/Oエクスパンダ615と、I2CI/Oエクスパンダ615が受信する信号を受け入れるためのコネクタ(上流コネクタ)を有するが、上流コネクタから受け入れた信号を、他の装飾制御装置610に伝達しないものである。例えば、図中の装飾制御装置610Yは、I2CI/Oエクスパンダ615及びLED(装飾装置620)を備え、装飾制御装置610Yの外部に接続される装飾装置基板625に備わるLEDに電流を流すための接続線、装飾装置基板625のLEDに電源電圧を供給する接続線、及び、グランドに接地する接続線を介して、装飾制御装置610と装飾装置基板625とが接続される。
装飾装置基板625は、I2CI/Oエクスパンダ615を備えておらず、LEDなどの発光装置のみを備えた基板である。この場合、装飾装置基板625に備えたLEDに接続される電流制限抵抗を、装飾装置基板625に設けることになるが、I2CI/Oエクスパンダ615が備えられた装飾制御装置610に設けてもよい。
なお、装飾装置基板625に設けたLEDの数に対応して、装飾制御装置610から装飾装置基板625へ渡されることになる、これらのLEDに電流を流すための接続線の数が決定される。例えば、装飾装置基板625に二つのLEDを備えた場合には、I2CI/Oエクスパンダ615のポートと対応するLEDとを接続するための2本の制御線と、Vledから供給された電力を供給する電源線1本とが、少なくとも必要となる。
そして、装飾制御装置610Yに設けられたI2CI/Oエクスパンダ615も、演出制御装置550から入力された演出制御データに含まれるアドレスと、当該I2CI/Oエクスパンダ615に設定されているアドレスとが一致する場合にのみ、演出制御データに含まれる装飾データに基づいて、I2CI/Oエクスパンダ615に接続されている装飾装置620を制御する。この場合、中央の装飾制御装置610に設けられた装飾装置620と、装飾装置基板625に設けられた装飾装置620の両方が、I2CI/Oエクスパンダ615によって制御される。
このように、装飾装置基板625を設けて、装飾制御装置610から一部の装飾装置(LED)を分離させることで、離れた箇所に配置されたLEDであっても、共通のI2CI/Oエクスパンダ615により制御することができる。
なお、装飾制御装置610は、前述したように、LEDなどの発光装置の代わりに、ソレノイドやモータなどの可動物を制御することが可能であり、具体的には、図20にて後述する。
図18は、本発明の実施の形態のI2CI/Oエクスパンダ615の構成を示すブロック図である。
I2CI/Oエクスパンダ615は、接続線SDAに接続されるトランジスタ630、接続線SDAに接続されるフィルタ631、接続線SDAに接続されるドライバ632、接続線SCLに接続されるフィルタ633、バスコントローラ634、出力設定レジスタ635、出力コントローラ636、I2CI/Oエクスパンダ615の出力側の各ポート0〜15に接続されるドライバ637、各ポート0〜15に接続されるトランジスタ638A〜638P、及びリセット信号発生回路639を備える。さらに、本発明の実施の形態では、他のI2CI/Oエクスパンダ615によって接続線SDAが占有されているか否かを判断するためのバス監視WDT(ウォッチドッグタイマ)640、及びI2CI/Oエクスパンダ615自身が接続線SDAを占有しているか否かを判断するための自己占有WDT641を備えている。
フィルタ631は、接続線SDAに接続され、接続線SDAから入力されたデータのノイズを除去し、ノイズが除去されたデータをバスコントローラ634に出力する。ドライバ632は、返答信号を接続線SDAから出力する場合に、トランジスタ630が動作可能な電圧をトランジスタ630に印加する。
ドライバ632は、接続線SDAからデータ(返答信号)を出力する場合に、トランジスタ630が動作可能な電圧をトランジスタ630に印加する。
トランジスタ630は、電力消費を抑えるために電界効果トランジスタ(FET)が用いられており、トランジスタ630のゲートはドライバ632に接続され、ドレインはプルアップ抵抗Rにより所定の電圧が印加された接続線SDAに接続され、ソースは接地されている。
トランジスタ630のゲートに印加される電圧がトランジスタ630を動作させる所定値よりも小さければ、ドレインとソースとの間に電流が流れない。一方、トランジスタ630のゲートに印加される電圧がトランジスタ630を動作させる所定値以上であれば、所定値の電圧が印加されたドレインから接地されているソースへ電流が流れることによって、接続線SDAの電圧が低下する。なお、トランジスタ630は、10ミリアンペア程度の電流をドレインからソースへ流しても破損しない仕様のものを用いている。
ドライバ632は、データ(返答信号)を接続線SDAから出力する場合に、トランジスタ630にドレインとソースとの間に電流を流すためにトランジスタ630のゲートにトランジスタ630が動作可能な値の電圧を印加する。そして、ドライバ632は、接続線SDAの電圧をHIGHからLOWへ繰り返し変化させることによって、データを接続線SDAから出力する。
フィルタ633は、接続線SCLに接続され、接続線SCLから入力されたデータのノイズを除去し、ノイズが除去されたデータをバスコントローラ634に出力する。
また、I2CI/Oエクスパンダ615には、当該I2CI/Oエクスパンダ615に備わるアドレス設定用端子A0〜A3によって固有のアドレスが設定されており、バスコントローラ634に入力されている。さらに、I2CI/Oエクスパンダ615をリセットするためのアドレスも、あらかじめ設定されている。
バスコントローラ634は、接続線SDAから入力されたデータのアドレスがI2CI/Oエクスパンダ615に設定された固有のアドレスと一致するか否かを判定し、一致している場合に当該データを演出制御データとして取り込む。
また、バスコントローラ634は、接続線SDAから入力されたデータのアドレスがI2CI/Oエクスパンダ615に設定されたリセット用のアドレスと一致するか否かを判定し、一致している場合に当該データを初期化指示データとして取り込み、当該I2CI/Oエクスパンダ615を初期化する。
また、バスコントローラ634は、接続線SCLの信号レベルのLOWからHIGHへの変化回数が8回に達し、8ビット目のデータを取り込んだ後、接続線SCLの信号レベルがHIGHからLOWへ変化すると、返答信号を接続線SDAから第1マスタIC570aに出力する。さらに、接続線SCLの信号レベルがLOWからHIGHへ変化することが確認され、再度接続線SCLの信号レベルがHIGHからLOWへ変化すると、接続線SDAを開放する。つまり、接続線SCLの信号レベルのLOWからHIGHへの変化回数が9回になるタイミングで返答信号を出力する。
出力設定レジスタ635には、当該I2CI/Oエクスパンダ615の動作モードやポート0〜15の出力状態が設定される。バスコントローラ634が接続線SDAから初期化指示データを取り込んで、当該I2CI/Oエクスパンダ615が初期化された場合には、出力設定レジスタ635は、すべてのポート0〜15に電流が流れないように初期状態に設定される。
出力コントローラ636は、出力設定レジスタ635に設定されたデータに基づいて、ポートドライバ637を介して、各ポート0〜15に接続された演出装置に電流を流すことによって、演出装置の出力状態を実際に制御する。この出力状態は、バスコントローラ634が接続線SDAから演出制御データを取り込むと、演出制御データに指定されている内容に更新される。
すなわち、第1マスタIC570aから受信した演出制御データに基づいて、出力設定レジスタ635に設定し、ストップコンディションを受信した時点で、各ポート0〜15の出力状態を更新して演出装置に反映させる。したがって、シフトレジスタのように、LAT信号を受信する必要もなく、すなわち、LAT信号を受信するための配線を必要とすることなく、演出制御を行うことができる。特に、ポート出力状態を、複数のI2CI/Oエクスパンダ615で同時に更新する必要がある場合に有効であり、異なるI2CI/Oエクスパンダ615に制御される演出装置であっても、同時に演出動作を実行するように制御できるため、より演出効果を高めることが可能となる。
ドライバ637は、ポートに電流を流す場合に、電流を流すポートに接続されるトランジスタ638A〜638Pが動作可能な電圧を当該トランジスタに印加する。
トランジスタ638A〜638Pのゲートはドライバ637に接続され、ドレインは図19及び図20に示すように演出装置を動作させるための電圧が印加された接続線に接続するポート端子に接続され、ソースは接地されている。
トランジスタ638A〜638Pのゲートに印加される電圧がトランジスタ638A〜638Pを動作させる所定値よりも小さければ、ドレインとソースとの間に電流が流れない。一方、638A〜638Pのゲートに印加される電圧がトランジスタ638を動作させる所定値以上であれば、図19に示す電源Vled、又は図20に示す電源Vmotや電源Vsolからゲートに印加されている所定の電圧が、トランジスタ638のドレインを介して接地されているソースへ電流が流れることによって、ポート端子に接続された演出装置の出力状態を制御できる。
また、装飾制御装置610のI2CI/Oエクスパンダ615は、I2CI/Oエクスパンダ615のポート端子に接続されたすべての演出装置(LEDなどの装飾装置620)を同時に制御することが可能であるので、I2CI/Oエクスパンダ615のポート端子に接続された一つの演出装置を一つのグループとして制御することができる。
そして、各装飾制御装置610に備わるI2CI/Oエクスパンダ615同士は、互いに異なる個別アドレスが割り当てられているので、演出装置が複数のグループに分割された形態となっている。すなわち、各装飾制御装置610に備わるI2CI/Oエクスパンダ615は、演出装置をグループ単位で制御可能なグループ単位制御手段として構成されているものである。
したがって、各装飾制御装置610を統括する演出制御装置550は、グループ単位制御手段を統括して制御するグループ統括制御手段として機能している。
リセット信号発生回路639には、I2CI/Oエクスパンダ615に電源を供給する接続線Vccに接続されるVcc端子、及び外部からのリセット信号を受け付けるRESET端子が接続されている。
リセット信号発生回路639は、I2CI/Oエクスパンダ615に電源が投入され、電圧が所定値まで立ち上がると、リセット信号を発生させ、発生させたリセット信号をバスコントローラ634、出力設定レジスタ635、及び出力コントローラ636に入力することによって初期化する。
なお、外部からLOWレベルのリセット信号が入力された場合には、リセット信号発生回路639はリセット信号を出力するので、演出制御装置550のCPU551から、NORゲート回路561を経由して、RESET端子からリセット信号を入力するようにしてもよい。RESET端子を使用しない場合には、図19及び図20に示すようにRESET端子はHIGHにプルアップされていてもよい。
バス監視WDT640は、他のI2CI/Oエクスパンダ615が接続線SDAを占有していることを検出するために用いられる。バス監視WDT640は、フィルタ631とバスコントローラ634との間に接続され、接続線SDAの信号レベルを取り込んで、連続してLOWレベルとなっている時間を計測する。さらに、バス監視WDT640は、リセット信号発生回路639に接続されており、接続線SDAが占有されてから所定の時間が経過すると、自身のリセット信号発生回路639を作動させて、当該I2CI/Oエクスパンダ615を初期化する。
なお、接続線SDAは、他のI2CI/Oエクスパンダ615にも接続されているので、接続線SDAが接続された全てのI2CI/Oエクスパンダ615において、接続線SDAの占有状態が検出されることになる。そして、これらのI2CI/Oエクスパンダ615の内部に備えられたリセット信号発生回路639が作動することにより、接続線SDAが接続されているすべてのI2CI/Oエクスパンダ615が初期化される。
自己占有WDT641は、自身(I2CI/Oエクスパンダ615)による接続線SDAの占有を検出するために使用される。バスコントローラ634は、ドライバ632を作動して接続線SDAをロウレベルに駆動させている間は、自己占有WDT641を作動させ、接続線SDAをロウレベルに駆動させていない間は、自己占有WDT641を停止させる。そして、自己占有WDT641が一定時間連続して作動すると、自己占有WDT641は、リセット信号発生回路639にリセット信号を発生させて当該I2CI/Oエクスパンダ615を初期化する。
これにより、バスコントローラ634自身が接続線SDAをロウレベルに駆動させている期間(当該I2CI/Oエクスパンダ615が接続線SDAを占有している期間)を、監視することが可能となる。自己占有WDT641は、マスタICから受信したデータに対する返答信号(ACK,NACK)を送信するために接続線SDAを占有するタイミングで時間の計測を開始し、所定の時間が経過すると、リセット信号発生回路639にリセット信号を発生させる。この構成により、自己占有WDT641によって接続線SDAの占有が検出された場合には、自身のI2CI/Oエクスパンダ615のみがリセットされる。
図19は、本発明の実施の形態の装飾装置620を制御する装飾制御装置610のI2CI/Oエクスパンダ615周辺の回路図である。
I2CI/Oエクスパンダ615は、入力端子としてNC端子、RESET端子、SCL端子、SDA端子、Vcc端子、A0〜A3端子、及びGND端子を備え、出力端子として、PORT0〜PORT15を備える。
RESET端子には、プルアップ抵抗Rを介してI2CI/Oエクスパンダ615に供給される電源が接続されている。このため、リセット端子に印加される電圧は常にHIGHに維持されている。
SCL端子は接続線SCLに接続され、SDA端子は接続線SDAに接続される。
Vcc端子には、I2CI/Oエクスパンダ615に供給される電源が接続される。さらに、Vcc端子には、電源ノイズを除去するコンデンサCPが接続される。
A0端子〜A3端子は、I2CI/Oエクスパンダ615に個別アドレスを設定するための端子である。なお、I2CI/Oエクスパンダ615の個別アドレスは、通常、4ビットで表現され、この端子にI2CI/Oエクスパンダ615の電源が印加されている場合にはバスコントローラ634に「1」が設定され、この端子がグランドに接続されている場合にはバスコントローラ634に「0」が設定される。
したがって、図19に示すI2CI/Oエクスパンダ615の個別アドレスは「0100」となる。GND端子は、電圧をグランドするための端子である。
PORT0端子〜PORT15端子は、電流制限抵抗R0〜R15を介してLED0〜LED15からなる装飾装置620に接続される。なお、PORT0にように、ポート1個に対して1個のLEDを接続してもよいが、PORT1〜15のように、ポート1個に対して複数個のLEDを接続してもよい。
すべてのポートにLEDを1個ずつ設ける場合は、1個のI2CI/Oエクスパンダ615によって、最大で16個のLEDを制御できることになる。また、各ポートに接続されるLEDの個数が異なる場合は、1個のポートに直列に接続されたすべてのLEDを1種類のLEDということにすれば、1個のI2CI/Oエクスパンダ615によって、最大で16種類のLEDを制御できることになる。
PORT0端子〜PORT15端子に接続されるトランジスタ638A〜638P(図18参照)のゲートに対してドライバ637から電圧が印加されると、電圧が印加されたトランジスタ638A〜638Pのドレインからソースへ電流が流れることが可能になり、PORT0端子〜PORT15端子に接続されるLED0〜LED15に電流が流れ、各LED0〜LED15は点灯する。
一方、ドライバ637がトランジスタ638A〜638Pのゲートに電圧を印加しなければ、各LED0〜LED15に電流が流れない状態になり、各LED0〜LED15は点灯しない。
なお、I2CI/Oエクスパンダ615のPORT0端子〜PORT15端子には、LEDの代わりに、モータやソレノイドを接続して、このモータやソレノイドを遊技に用いる演出装置として構成することも可能である。以下、図20を参照しながらI2CI/Oエクスパンダ615を用いてモータやソレノイドを制御する場合について説明する。
図20は、本発明の実施の形態の装飾制御装置610のI2CI/Oエクスパンダ615周辺の回路図であり、モータやソレノイドを制御する場合を示す図である。
ここで使用されるモータはステッピングモータにより構成され、ステッピングモータを駆動する各相の信号端子に、所定の電圧を順次印加することで回動する。本発明の実施の形態では、モータの各相の信号端子がPORT0端子〜PORT3端子に接続される。
モータに接続されているPORT0端子〜PORT3端子に接続されるトランジスタ638A〜638Dのいずれかのゲートに対してドライバ637から電圧が印加されると、電圧が印加されたトランジスタ638A〜638Dのドレインからソースへ電流が流れることが可能になり、PORT0端子〜PORT3端子に接続されるモータに電流が流れ、役物駆動用のモータが駆動する。
なお、各PORT0端子〜PORT3端子とモータとを接続する接続線は分岐し、分岐した一方の接続線は、モータに供給される電源にダイオードD及びツェナダイオードZDを介して接続される。
また、PORT端子15は、使用されるソレノイドに接続される。ソレノイドに接続されているPORT15端子に接続されるトランジスタ638Pのゲートに対してドライバ637から電圧が印加されると、電圧が印加されたトランジスタ638Pのドレインからソースへ電流が流れることが可能になり、PORT15端子に接続されるソレノイドに電流が流れ、ソレノイドによって駆動される図示しない演出装置が駆動する。
なお、図20では、I2CI/Oエクスパンダ615にモータ及びソレノイドの双方が接続されているが、一つのI2CI/Oエクスパンダ615に対して、モータ及びソレノイドの少なくとも一方だけを接続した構成でもよい。
例えば、ステッピングモータだけを制御するグループとしてのI2CI/Oエクスパンダ615を専用に設けたり、ソレノイドだけを制御するグループとしてのI2CI/Oエクスパンダ615を専用に設けたりするようにしてもよい。このような構成により、同一グループに属する演出装置を同じタイミングで制御することが可能となるので、高速処理が必要な演出装置だけをグループ化して効率よく制御することも可能となる。
図21は、本発明の実施の形態の装飾制御装置610、中継基板600及び簡易中継基板1600の回路構成を説明するための図であり、特に、信号線や電源線の入出力に関する接続状態を説明するための図である。
本図においては、装飾制御装置610、中継基板600及び簡易中継基板1600のうち、分岐型の装飾制御装置610(例えば、装飾制御装置610Aなど)について説明を行うこととし、最後に、連結型の装飾制御装置610、終端型の装飾制御装置610、中継基板600、簡易中継基板1600との相違点の説明を行うことにする。
なお、本図においては、前述した分岐型の装飾制御装置610Xに備えられる部品と、同一の付番を付けて説明を行う。
分岐型の装飾制御装置610は、上流コネクタ611、下流コネクタ612(612A、612B)、及びI2CI/Oエクスパンダ615を備える。
上流コネクタ611は、当該装飾制御装置610よりも上流の装飾制御装置610に接続されるコネクタである。下流コネクタ612A及び612Bは、当該装飾制御装置610よりも下流側の装飾制御装置610に接続される。
二つの下流コネクタ612A、612Bに接続線SDAを接続するために、上流コネクタ611から延びる内部接続線SDA2111は分岐2101で第1接続線SDA2121と第2接続線SDA2131とに分岐する。第1接続線SDA2121は下流コネクタ612Aに接続され、第2接続線SDA2131は下流コネクタ612Bに接続される。
同じく、上流コネクタ611から延びる内部接続線SCL2112は分岐2102で第1接続線SCL2122と第2接続線SCL2132とに分岐する。第1接続線SCL2122は下流コネクタ612Aに接続され、第2接続線SCL2132は下流コネクタ612Bに接続される。
さらに、接続線SDAをI2CI/Oエクスパンダ615に接続するために、第2接続線SDA2131は分岐2103で分岐し、分岐した第2接続線SDA2131はI2CI/Oエクスパンダ615の図19及び図20に示すSDA端子に接続される。また、接続線SCLをI2CI/Oエクスパンダ615に接続するために、第2接続線SCL2132は分岐2104で分岐し、分岐した第2接続線SCL2132はI2CI/Oエクスパンダ615の図19及び図20に示すSCL端子に接続される。以下、I2CI/Oエクスパンダ615、分岐2103からI2CI/Oエクスパンダ615に接続される接続線SDA、及び分岐2104からI2CI/Oエクスパンダ615に接続される接続線SCLを含む構成をI2CI/Oエクスパンダ部2181とする。
なお、I2CI/Oエクスパンダ615には、I2CI/Oエクスパンダ615の電源電圧となる電圧Vccが供給されている。また、図21では図示されていないが、I2CI/Oエクスパンダ615からは、装飾制御装置610に設けられたLED(装飾装置620)を駆動する各ポート0〜15の信号線(図19参照)が出力されている。
さらに、当該装飾制御装置610のI2CI/Oエクスパンダ615が上流の装飾制御装置610に接続線SDAを介して出力する信号、及び上流の装飾制御装置610から、当該装飾制御装置610のI2CI/Oエクスパンダ615に接続線SDAを介して入力される信号のノイズを除去するために、内部接続線SDA2111にはツェナダイオードZD2141が接続されている。
具体的には、内部接続線SDA2111は分岐2105で分岐し、分岐した内部接続線SDA2111はツェナダイオードZD2141のカソード側に接続され、ツェナダイオードZD2141のアノード側は接地されている。
このため、内部接続線SDA2111に印加された所定以上の電圧(例えば、パルス性のノイズ信号)は、ツェナダイオードZD2141によって逃がされる。
また、上流の装飾制御装置610から、当該装飾制御装置610のI2CI/Oエクスパンダ615へ接続線SCLを介して入力される信号のノイズを除去するために、内部接続線SCL2112にはツェナダイオードZD2142が接続されている。
具体的には、内部接続線SCL2112は分岐2106で分岐し、分岐した内部接続線SCL2112はツェナダイオードZD2142のカソード側に接続され、ツェナダイオードZD2142のアノード側は接地されている。
このため、内部接続線SCL2112に印加された所定以上の電圧(例えば、パルス性のノイズ信号)は、ツェナダイオードZD2142によって逃がされる。
また、当該装飾制御装置610のI2CI/Oエクスパンダ615が、下流コネクタ612Aに接続された装飾制御装置610に接続線SDAを介して出力する信号、及び下流コネクタ612Aに接続された装飾制御装置610から装飾制御装置610のI2CI/Oエクスパンダ615へ接続線SDAを介して入力される信号のノイズを除去するために、第1接続線SDA2121にはツェナダイオードZD2143が接続されている。
具体的には、第1接続線SDA2121は分岐2107で分岐し、分岐した第1接続線SDA2121はツェナダイオードZD2143のカソード側に接続され、ツェナダイオードZD2143のアノード側は接地されている。
このため、第1接続線SDA2121に印加された所定以上の電圧(例えば、パルス性のノイズ信号)は、ツェナダイオードZD2143によって逃がされる。
また、第1接続線SDA2121に接続されるツェナダイオードZD2143と同じく、第2接続線SDA2131にもツェナダイオードZD2145が接続される。
また、装飾制御装置610のI2CI/Oエクスパンダ615から下流コネクタ612Aに接続された装飾制御装置610へ接続線SCLを介して入力される信号のノイズを除去するために、第1接続線SCL2122にはツェナダイオードZD2144が接続されている。
具体的には、第1接続線SCL2122は分岐2108で分岐し、分岐した第1接続線SCL2122はツェナダイオードZD2144のカソード側に接続され、ツェナダイオードZD2144のアノード側は接地されている。
このため、第1接続線SCL2122に印加された所定以上の電圧(例えば、パルス性のノイズ信号)は、ツェナダイオードZD2144によって逃がされる。
また、第1接続線SCL2122に接続されるツェナダイオードZD2144と同じく、第2接続線SCL2132にもツェナダイオードZD2146が接続される。
さらに、当該装飾制御装置610のI2CI/Oエクスパンダ615に電源電圧を供給する接続線Vccに接続される上流コネクタ601のVcc端子から延びる内部接続線Vcc2171と、上流コネクタ601のGND端子から延び、接地されている内部接続線GND2172とは、平滑コンデンサC2161及びバイパスコンデンサCP2162を介して接続されている。
平滑コンデンサC2161は、電源の電圧波形を滑らかにするためのコンデンサであり、バイパスコンデンサCP2162は、電源の電圧のノイズを除去するためのコンデンサである。
このため、装飾制御装置610のI2CI/Oエクスパンダ615に供給される電源電圧は、平滑コンデンサC2161により電圧が平滑化され、バイパスコンデンサCP2162によりノイズが除去されて、I2CI/Oエクスパンダ615に供給される。
同じく、下流コネクタ612A、612BのVcc端子から延びる内部接続線Vcc2173と、GND端子から延びる内部接続線GND2174とは、平滑コンデンサC2161及びバイパスコンデンサCP2162を介して接続されている。これによって、平滑化され、ノイズが除去された電圧が下流の装飾制御装置610に接続される接続線Vccに印加される。
以上、分岐型の装飾制御装置610について説明を行ったが、次に、連結型の装飾制御装置610について説明する。
なお、下流コネクタ612Aに加え、接続線SDAに接続されるツェナダイオードZD2143、及び接続線SCLに接続されるツェナダイオードZD2144、内部接続線Vcc2173、内部接続線GND2174、平滑コンデンサC2161及びバイパスコンデンサCP2162を備える構成を第1の下流コネクタ部2182とする。
また、下流コネクタ612Bに加え、接続線SDAに接続されるツェナダイオードZD2145、及び接続線SCLに接続されるツェナダイオードZD2146、内部接続線Vcc2173、内部接続線GND2174、平滑コンデンサC2161及びバイパスコンデンサCP2162を備える構成を第2の下流コネクタ部2183とする。
装飾制御装置610が連結型の場合には、基板内に一つの下流コネクタのみを備える構成となるので、下流コネクタ612Aは存在するが下流コネクタ612Bが存在しない。
そのため、内部接続線SDA2111及び内部接続線SCL2112は、分岐2103、2104では分岐しない構成となり、第2接続線SDA2131及び第2接続線SCL2132は存在しない点が、分岐型の装飾制御装置610とは異なる構成となる。
また、連結型の装飾制御装置610は、第2の下流コネクタ部2183を構成する電子部品が存在しない点も、分岐型の装飾制御装置610と異なる構成となる。他の構成は分岐型の装飾制御装置610と同様の構成となる。
次に、終端型の装飾制御装置610について説明する。
装飾制御装置610が終端型の場合には、基板内に下流コネクタを備えない構成となるので、下流コネクタ612A、612Bがともに存在しない。
そのため、内部接続線SDA2111及び内部接続線SCL2112は、分岐2101、2102、2103、2104で分岐することなく、I2CI/Oエクスパンダ615へ接続される点が、分岐型の装飾制御装置610とは異なる構成となる。
また、終端型の装飾制御装置610は、第1の下流コネクタ部2182及び第2の下流コネクタ部2183を構成する電子部品が存在しない点も、分岐型の装飾制御装置610と異なる構成となる。他の構成は分岐型の装飾制御装置610と同様の構成となる。
次に、中継基板600について説明する。
中継基板600は、連結型の装飾制御装置610と同様に、基板内に一つの下流コネクタのみを備える構成となるので、下流コネクタ612Aは存在するが下流コネクタ612Bが存在しない。
そのため、内部接続線SDA2111及び内部接続線SCL2112は、分岐2103、2104では分岐しない構成となり、第2接続線SDA2131及び第2接続線SCL2132が存在しないので、連結型の装飾制御装置610と同様の構成となる。
ただし、中継基板600は、接続線SDA及び接続線SCLの電圧をプルアップするためのプルアップ抵抗を備えている点で、連結型の装飾制御装置610と異なる。
具体的には、図21に示すように、中継基板600では、第1マスタIC570aに接続される上流側の接続線SDA、及び装飾制御装置610に接続される下流側の接続線SDAの電圧をプルアップするためのプルアップ抵抗R2151が、第1接続線SDA2121に接続される。同じく、第1マスタIC570aに接続される上流側の接続線SCL、及び装飾制御装置610に接続される下流側の接続線SCLの電圧をプルアップするためのプルアップ抵抗R2152が、第1接続線SCL2122に接続される。
より詳しく説明すると、第1接続線SDA2121は分岐2109で分岐し、分岐した第1接続線SDA2121はプルアップ抵抗R2151に接続される。同じく第1接続線SCL2122は分岐2110で分岐し、分岐した第1接続線SCL2122はプルアップ抵抗R2152に接続される。以下、接続線SDAの電圧をプルアップするためのプルアップ抵抗R2151、及び接続線SCLの電圧をプルアップするためのプルアップ抵抗R2152をあわせてプルアップ抵抗部2180とする。
次に、簡易中継基板1600について説明する。
簡易中継基板1600は、分岐型の装飾制御装置610と同様に、基板内に複数の下流コネクタ(下流コネクタ612A、612B)を備える。ただし、簡易中継基板1600は、I2CI/Oエクスパンダ部2181に相当する回路を備えておらず、代わりに、中継基板600に備えている前述のプルアップ抵抗部2180に相当する回路が設けられている点が、分岐型の装飾制御装置610と異なる構成である。他の構成は分岐型の装飾制御装置610と同様の構成となる。
なお、前述のプルアップ抵抗部2180の構成は、本実施形態では、中継基板600と簡易中継基板1600だけに設けられており、装飾制御装置610や演出制御装置550には設けていない構成となっているが、接続線SDA及び接続線SCLのレベルが正しく生成できるのであれば、装飾制御装置610や演出制御装置550に設けられていてもよい。要するに、プルアップ抵抗R2151及び2152は、接続線SDA及び接続線SCLを駆動するトランジスタのドレインの端子に電圧Vccを供給可能な箇所に備えられていればよい。
例えば、プルアップ抵抗R2151及び2152が第1マスタIC570aに備えられていれば、中継基板600、簡易中継基板1600若しくは装飾制御装置610内にプルアップ抵抗部2180が備えられている必要はない。
図22は、本発明の実施の形態の演出制御装置550から装飾制御装置610に出力されるデータに含まれるスレーブアドレス2200の説明図である。
スレーブアドレス2200は、上位3ビットからなる固定アドレス部2201及び下位5ビットからなる可変アドレス部2202によって構成される。
固定アドレス部2201は、「110」の値があらかじめ設定され、I2CI/Oエクスパンダ615によって変更することができない。
可変アドレス部2202は、I2CI/Oエクスパンダ615によって設定可能である。可変アドレス部2202は、制御対象となるI2CI/Oエクスパンダ615のA0〜A3の端子に設定されているパターンに対応した4ビットのI2CI/Oエクスパンダアドレス2203と、当該データが読み出し要求であるのか書き込み要求であるのかを示す1ビットのR/W識別データ2204とによって構成される。
演出制御装置550から装飾制御装置610に出力される演出制御データは、書き込み要求であるので、R/W識別データ2204には、通常「0」が登録される。
図23は、本発明の実施の形態のI2CI/Oエクスパンダアドレステーブル2300の説明図である。
I2CI/Oエクスパンダアドレステーブル2300は、第1マスタIC570aによって管理されるテーブルである。I2CI/Oエクスパンダアドレステーブル2300は、スレーブアドレス2301とI2CI/Oエクスパンダアドレス2302との対応関係を示している。
スレーブアドレス2301には、演出制御装置550により送受信の対象として指定される装飾制御装置610のスレーブアドレスが格納されている。スレーブアドレスは、図20で前述したように、上位3ビットからなる固定アドレス部と、4ビットのI2CI/Oエクスパンダアドレスと、1ビットのR/W識別データとを組み合わせて構成される。
I2CI/Oエクスパンダアドレス2302には、図19や図20で前述したように、各スレーブアドレスに対応する4ビットのI2CI/Oエクスパンダアドレスが登録される。
ただし、I2CI/Oエクスパンダアドレスのうち、アドレス「1000」及びアドレス「1011」(図23の網掛けされたエントリ)は、各I2CI/Oエクスパンダ615を相互に識別するための固有のアドレスとしては使用できない。
アドレス「1000」は、すべての装飾制御装置610に対して共通の指令を出力する場合に指定されるアドレス(オールコールアドレス)の電源投入時のデフォルト値として用いられる。アドレス「1011」は、ソフトウェアによって、第1マスタIC570aに接続されているすべての装飾制御装置610を無条件にリセットする場合に用いられる共通アドレスである。
以上のように、装飾制御装置610のI2CI/Oエクスパンダ615に設定可能なアドレスは14個であるため、演出制御装置550は、14個のI2CI/Oエクスパンダ615を制御することができる。また、各装飾制御装置610には、PORT0〜PORT15が備えられているので、16個(言い換えれば16種類)のLEDを制御することが可能である。よって、演出制御装置550は、224個(言い換えれば224種類)のLEDを制御することが可能である。
図24は、本発明の実施の形態のI2CI/Oエクスパンダ615に備えられる出力設定レジスタ635に割り当てられたワークレジスタを説明するための図である。
I2CI/Oエクスパンダ615の出力設定レジスタ635には、ワークレジスタ(デバイスレジスタ)と、コントロールレジスタ(制御レジスタ)とが割り当てられている。
ワークレジスタは、I2CI/Oエクスパンダ615に対してあらかじめ定義されている設定を行うための情報や、I2CI/Oエクスパンダ615に接続されている演出装置(装飾装置620、例えば、LED)の出力態様を特定するための情報を記憶するものである。
また、コントロールレジスタは、ワークレジスタへのデータ書き込み手順を規定する情報を記憶する。なお、ワークレジスタは、複数の情報を異なる記憶領域に分散して記憶する構成となっており、記憶領域毎に異なるレジスタ番号が付与されている。
レジスタ番号「00h」及びレジスタ番号「01h」は、I2CI/Oエクスパンダ615の初期設定を行うためのモードレジスタに対応する。レジスタ番号「00h」の記憶領域にはレジスタ名「MODE1」が付与されている。また、レジスタ番号「01h」の記憶領域にはレジスタ名「MODE2」が付与されている。レジスタ番号「00h」及び「01h」の記憶領域に値が書き込まれると、書き込まれた値に基づいて、I2CI/Oエクスパンダ615の初期設定が行われる。
なお、「MODE2」のレジスタのビット3(OCH)は、I2CI/Oエクスパンダ615の出力設定レジスタ635に格納された演出制御データを演出装置に実際に反映させるタイミングを規定するパラメータである。本発明の実施の形態では、図18にて説明したように、「0」が設定されており、ストップコンディションを受信した時点で出力設定レジスタ635に格納された演出制御データを出力し、演出装置の出力状態を実際に制御するように設定されている。
レジスタ番号「02h」〜「11h」(レジスタ名「PWM0」〜「PWM15」)には、装飾装置620に含まれるLEDなどの制御対象のパラメータが設定される。レジスタ番号「02h」〜「11h」の記憶領域のいずれかに値が書き込まれると、I2CI/Oエクスパンダ615に接続される発光装置(装飾装置620)を構成する16個のLEDのうち、値が書き込まれたレジスタ番号に対応するLEDの輝度が、書き込まれた値に基づいて調整される。例えば、レジスタ番号「02h」の記憶領域に値が書き込まれた場合には、図19に示すポート0に接続されたLED0の輝度が調整される。
なお、I2CI/Oエクスパンダ615は、前述のように、モータやソレノイドといった可動物を制御することも可能である。I2CI/Oエクスパンダ615にソレノイドが接続される場合には、ソレノイドが接続されるポートに対応するレジスタ番号には、ソレノイドを通電させて作動させるか、通電せずに未作動の状態にするかを示す値が書き込まれる。また、I2CI/Oエクスパンダ615にモータが接続される場合には、モータが接続されるポートに対応するレジスタ番号には、モータの目標回転位置を示す値が書き込まれる。
レジスタ番号「12h」(レジスタ名「GRPPWM」)及びレジスタ番号「13h」(レジスタ名「GRPFREQ」)には、制御対象全体の動作パターンなどを指定するパラメータが設定される。レジスタ番号「12h」及び「13h」の記憶領域に値が書き込まれると、書き込まれた値に基づいて、LED(16個のLED)全体の点滅パターンが設定される。具体的には、レジスタ番号「12h」には、LED全体のオン・オフ比率であるデューティサイクルが設定され、レジスタ番号「13h」には、LED全体の点滅周期が設定される。
レジスタ番号「14h」(レジスタ名「LEDOUT0」)〜「17h」(レジスタ名「LEDOUT3」)には、各ポートで制御されるLEDの出力状態が設定される。各レジスタには、それぞれ4つずつLEDの出力状態を設定することが可能となっている。
レジスタ番号「14h」の記憶領域に値が書き込まれると、書き込まれた値に基づいて、LED0〜LED3の出力状態が設定される。同様に、レジスタ番号「15h」の記憶領域にはLED4〜LED7の出力状態、レジスタ番号「16h」の記憶領域にはLED8〜LED11の出力状態、レジスタ番号「17h」の記憶領域にはLED12〜LED15の出力状態が設定される。
レジスタ番号「18h」〜「1Ah」(レジスタ名「SUBADR1」〜「SUBADR3」)にはサブアドレスが設定される。レジスタ番号「18h」〜「1Ah」の記憶領域に値が書き込まれると、書き込まれた値に基づいて、第1サブアドレス〜第3サブアドレスが設定される。
レジスタ番号「1Bh」(レジスタ名「ALLCALLADR」)にはすべての装飾制御装置610に対する指令を出力するためのオールコールアドレスが設定される。オールコールアドレスは、例えば、電源投入時などにすべての装飾制御装置610で初期化処理を実行する場合などに使用される。
図25は、本発明の実施の形態のマスタICが接続線SDA及び接続線SCLを介してデータを出力するスタート条件及びストップ条件の説明図である。
接続線SCLは、データの非送信時には信号レベルがHIGHになっている。マスタICは、装飾制御装置610にデータを出力する際に、接続線SCLの信号レベルをLOWからHIGHに変化させ、装飾制御装置610が接続線SDAのデータを取り込むためのストローブ信号として作用させる。
接続線SDAは、データの非送信時には信号レベルがHIGHになっており、接続線SCLのクロック信号に合わせて接続線SDAからデータが出力される。
マスタICは、接続線SCLの信号レベルをHIGHに維持したまま、接続線SDAの信号レベルをHIGHからLOWに変化させることで、データの出力が開始することを示すスタート条件となる信号を出力する。
装飾制御装置610のI2CI/Oエクスパンダ615は、接続線SDA及び接続線SCLからスタート条件となる信号が入力されると、データの出力が開始されることを認識する。
マスタICは、接続線SCLの信号レベルをHIGHに維持したまま、接続線SDAの信号レベルをLOWからHIGHに変化させることで、データの出力が終了することを示すストップ条件となる信号を出力する。
装飾制御装置610のI2CI/Oエクスパンダ615は、ストップ条件となる信号が入力されると、データの出力が終了することを認識する。本発明の実施の形態では、前述のように、装飾制御装置610がストップ条件となる信号を受信すると、当該装飾制御装置610が制御する演出装置(装飾装置620)の制御を開始する。
図26は、本発明の実施の形態のマスタICから出力されたデータが入力された装飾制御装置610が返答信号を出力するタイミングチャートである。
装飾制御装置610は、スタート条件が成立してから接続線SCLの信号レベルの変化回数を計数し、接続線SCLのクロック信号に合わせて接続線SDAから入力されるデータを取り込む。
そして、装飾制御装置610は、スタート条件が成立してから接続線SCLの信号レベルの変化回数が9回に達する直前に、返答信号をマスタICに接続線SDAを介して出力する。換言すると、装飾制御装置610は、接続線SDAから8ビット目のデータを取り込んだ後に、接続線SCLの信号レベルがHIGHからLOWに変化する契機に、当該接続線SDAを介して返答信号を出力する。
なお、図26に示すように、データの受信に成功したことを示す返答信号(ACKの返答信号)はLOWレベルによって示され、データの受信に失敗したことを示す返答信号(NACKの返答信号、図ではACK出力なしに相当)はHIGHレベルによって示される。
また、マスタICは、スタート条件が成立してから接続線SCLの信号レベルが8回変化すると、接続線SDAを解放することによって、装飾制御装置610から返答信号の入力を待機する。そして、マスタICは、接続線SDAを解放したまま、接続線SCLの信号レベルを変化させて、装飾制御装置610からの返答信号を取り込む。
図27は、本発明の実施の形態のマスタICが演出制御データを出力する場合の接続線SDA及び接続線SCLの信号レベルのタイミングチャートである。
まず、マスタICは、データの出力を開始する場合には、接続線SCLの信号レベルをHIGHに維持したまま、接続線SDAの信号レベルをHIGHからLOWに変化させることによって、スタート条件を示す信号を出力し、データの出力を開始することを装飾制御装置610に通知する。
次に、マスタICは、合計7ビットからなる制御対象となる装飾制御装置610のスレーブアドレスを出力する。さらに、マスタICは、読み出し要求である書き込み要求であるかを示す情報を8ビット目に出力する。
そして、マスタICは、接続線SCLの信号レベルが9回目にHIGHになるときに、装飾制御装置610から返答信号が入力されるので、ACKの返答信号であれば接続線SDAの信号レベルがLOWに変化し、NACKの返答信号であれば接続線SDAの信号レベルがHIGHに変化する。
次に、マスタICは、アドレスデータの出力後、8の倍数となるビット数でデータを出力する。さらに、データの8ビット目を出力した後、ACKの返答信号が入力されるのを待ってデータの9ビット目を出力する。以降、8の倍数番目に相当するビットのデータを出力すると、ACKの返答信号が入力されるのを確認してから、(8の倍数+1)番目のビットを出力し、全データが出力されるまで繰り返す。
なお、マスタICは、データの8の倍数番目となるビットを出力した後、所定時間経過してもACKの返答信号が入力されない場合には、データの送信に失敗したものとみなして、再度スタート条件を送信する。次いで、接続線SDAを介して、再度アドレスデータを出力し、ACKの返答信号を確認しながら、もう一度、データを1ビット目から出力する。
また、マスタICは、データの最後のビットのデータを出力した後、ACKの返答信号が入力されるのを待って、ストップ条件を示す信号を出力する。
なお、図27では、スタート条件を示す信号を出力してからストップ条件を示す信号を出力するまでの間に、合計24ビット(スレーブアドレス8ビット、データ16ビット)のデータを出力しているが、送信するデータのサイズに応じて、24ビット以上であってもよいし、24ビット以下であってもよい。
図28は、本発明の実施の形態のマスタICが、スレーブの個別アドレスを指定して装飾制御装置610に演出制御データを設定する場合において、マスタICとI2CI/Oエクスパンダ615との間で送受信されるデータのフォーマットを説明する図である。
最初に出力される8ビットのデータ2801には、データ送信の対象となる装飾制御装置610のアドレス「A0〜A6」と、当該データが読み出し要求であるのか書き込み要求であるのかを示す1ビットのR/W識別データとが含まれる。アドレス「A0〜A6」のうち、「A4〜A6」は値「110」となる固定アドレス部であり、「A0〜A3」はI2CI/Oエクスパンダ615のA0〜A3の端子に設定されている個別アドレスに相当する(図19参照)。なお、データ2801は、図27における「ADDRESS」及び「R/W」に対応するデータである。
次に出力される8ビットのデータ2802には、I2CI/Oエクスパンダ615の出力設定レジスタ635(図18参照)に割り当てられているコントロールレジスタへの設定データが含まれる。データ2802は、図27において1番目に送信される「DATA」に対応するデータである。
ここで、コントロールレジスタについて説明する。コントロールレジスタは8ビットからなり、上位3ビット「AI0〜AI2」が出力設定レジスタ635のワークレジスタへの書き込み又は読み出し方法を指定する自動書込パラメータであり、下位5ビット「D0〜D4」がワークレジスタにおけるアクセス開始位置(書き込みを開始する先頭位置、又は読み出しを開始する先頭位置)を指定するレジスタアドレスである。
自動書込パラメータは、マスタICによって、レジスタアドレスが指定するアクセス開始位置の領域のみをアクセス(オートインクリメントを禁止)するのか、指定するアクセス開始位置の領域に隣接する領域も含んでアクセス(オートインクリメントを許可)するのかを指定するパラメータであり、具体的には「000」、「100」、「101」、「110」、「111」の何れかの値を設定することができる。
自動書込パラメータに「000」の値を設定すると、オートインクリメントが禁止され、レジスタアドレスが指定するアクセス開始位置の領域のみをアクセスし、開始位置以外の領域はアクセスしない。例えば、レジスタアドレスが「10100」であれば、レジスタ番号が「14h」となる記憶領域のみがアクセスされ、他の記憶領域にはアクセスされない。すなわち、特定のレジスタアドレスの記憶領域の値のみを変更する場合に使用される。複数のレジスタアドレスの記憶領域の値を連続して変更する場合には、以下に示すように、オートインクリメントを許可することによって、アドレスの指定を省略することができる。
自動書込パラメータに「100」の値を設定すると、オートインクリメントが許可され、レジスタアドレスが指定するアクセス開始位置の領域をアクセスした後は、レジスタ番号が増加する方向に領域を移動しながら順にアクセスを繰り返す。そして、レジスタ番号が最終の「1Bh」となる記憶領域をアクセスした後は、レジスタ番号が「00h」となる記憶領域をアクセスし、再度、レジスタ番号が増加する方向に領域を移動しながら順にアクセスを繰り返す。例えば、レジスタアドレスが「10100」であれば、レジスタ番号が「14h」となる記憶領域にアクセスした後は、レジスタ番号が「15h」→「16h」→・・→「1Bh」→「00h」→「01h」→・・となる領域(すなわち、すべての領域)を、繰り返しアクセスする。
自動書込パラメータに「101」の値を設定すると、自動書込パラメータに「100」の値を設定した場合と同様に、レジスタアドレスが指定するアクセス開始位置の領域をアクセスした後は、レジスタ番号が増加する方向に領域を移動しながら順にアクセスを繰り返す。ただし、一旦、レジスタ番号が「11h」となる記憶領域をアクセスした後は、レジスタ番号が「02h」となる記憶領域をアクセスし、以降、レジスタ番号が「02h」〜「11h」となる区間の記録領域(LEDの輝度調整に関する領域)を繰り返しアクセスする。例えば、レジスタアドレスが「10100」であれば、レジスタ番号が「14h」となる記憶領域をアクセスした後は、レジスタ番号が「15h」→「16h」→・・→「1Bh」→「00h」→「01h」→・・となる領域を、順にアクセスする。そして、レジスタ番号が「11h」となる記憶領域をアクセスした後は、レジスタ番号が「02h」→「03h」→・・→「11h」→「02h」→「03h」→・・となる領域を、繰り返しアクセスする。
自動書込パラメータに「110」の値を設定すると、自動書込パラメータに「100」の値を設定した場合と同様に、レジスタアドレスが指定するアクセス開始位置の領域をアクセスした後は、レジスタ番号が増加する方向に領域を移動しながら順にアクセスを繰り返す。ただし、一旦、レジスタ番号が「13h」となる記憶領域をアクセスした後は、レジスタ番号が「12h」となる記憶領域をアクセスし、以降、レジスタ番号が「12h」〜「13h」となる区間の記録領域(LEDの点滅周期に関する領域)を繰り返しアクセスする。例えば、レジスタアドレスが「10100」であれば、レジスタ番号が「14h」となる記憶領域をアクセスした後は、レジスタ番号が「15h」→「16h」→・・→「1Bh」→「00h」→「01h」→・・となる領域を、順にアクセスする。そして、レジスタ番号が「13h」となる記憶領域をアクセスした後は、レジスタ番号が「12h」→「13h」→「12h」→「13h」→・・となる領域を、繰り返しアクセスする。
自動書込パラメータに「111」の値を設定すると、自動書込パラメータに「100」の値を設定した場合と同様に、レジスタアドレスが指定するアクセス開始位置の領域をアクセスした後は、レジスタ番号が増加する方向に領域を移動しながら順にアクセスを繰り返す。ただし、一旦、レジスタ番号が「13h」となる記憶領域をアクセスした後は、レジスタ番号が「02h」となる記憶領域をアクセスし、以降、レジスタ番号が「02h」〜「13h」となる区間の記録領域(LEDの輝度及び点滅周期に関する領域)を繰り返しアクセスする。例えば、レジスタアドレスが「10100」であれば、レジスタ番号が「14h」となる記憶領域をアクセスした後は、レジスタ番号が「15h」→「16h」→・・→「1Bh」→「00h」→「01h」→・・となる領域を、順にアクセスする。そして、レジスタ番号が「13h」となる記憶領域をアクセスした後は、レジスタ番号が「02h」→「03h」→・・→「13h」→「02h」→「03h」→・・となる領域を、繰り返しアクセスする。
ここで、図28の説明に戻ると、コントロールレジスタの設定データ2802に続いて、ワークレジスタの設定データ2803が出力される。設定データ2803は、図27において2番目以降に送信される「DATA」に対応するデータである。
自動書込パラメータを「000」とした場合には、設定データ2803は、レジスタアドレスが指定する1箇所の記憶領域を更新するための8ビットのデータとなる。自動書込パラメータを「000」以外の値とした場合には、この設定データ2803は、レジスタアドレスが指定する記憶領域を先頭に、複数の領域を繰り返し更新するために必要な8の倍数となるビットのデータとなる。
図29は、本発明の実施の形態のマスタICが、スレーブの個別アドレスを指定して装飾制御装置610に演出制御データを設定する場合において、マスタICとI2CI/Oエクスパンダ615との間で送受信される演出制御データに具体的な数値を適用した図である。図29では、オートインクリメントを禁止して、ワークレジスタの特定の記憶領域を1箇所だけを更新する演出制御データを示しており、具体的には、I2CI/Oエクスパンダ615のPORT0端子〜PORT3端子に接続されるLEDの発光状態を更新する場合について説明する。
まず、最初に出力される8ビットのデータ2901には、送信先の装飾制御装置610のI2CI/Oエクスパンダ615のスレーブアドレスを示す「1101100」が割り当てられている。
次に出力される8ビットのデータ2902には、自動書込パラメータ、及びLEDの出力データを設定するために割り当てられているI2CI/Oエクスパンダ615の出力設定レジスタ635のコントロールレジスタに設定される値が含まれる。
ここでは、I2CI/Oエクスパンダ615のPORT0端子〜PORT3端子に接続されるLEDの発光状態を設定するので、レジスタアドレスにはLEDOUT0(アドレス=10100)を指定することにする。
なお、自動書込パラメータには、オートインクリメントを禁止するために「000」が指定されている。
次に、出力される8ビットのデータ2903には、送信先の装飾制御装置610によって制御される装飾装置620の発光態様を設定するデータが含まれる。具体的には、LEDOUT0レジスタに設定されるデータが割り当てられている。これにより、I2CI/Oエクスパンダ615のPORT0端子〜PORT3端子に接続されるLEDの発光状態(点灯、消灯、点滅など)が指定され、指定された状態でLEDが発光する。
このようにして、I2CI/Oエクスパンダ615のPORT0端子〜PORT3端子のLEDの発光状態が制御されるが、I2CI/Oエクスパンダ615の他のPORT端子(PORT4〜PORT15)も、コントロールレジスタデータ2902の値を指定して、出力データ2903を設定することで個別に制御可能である。PORT端子に、モータやソレノイドが接続されていても、同様に制御される。
図30は、本発明の実施の形態のマスタICの演出制御データを送信する順序を説明する図である。図30では、オートインクリメントを許可して、ワークレジスタのすべての記憶領域を更新する場合に、演出制御データに含まれる各データを送信する順序を規定している。
まず、マスタICは、制御対象となる装飾制御装置610の個別アドレスを特定可能な8ビットのデータ(図28のデータ2801と同一フォーマットのデータ)を送信する。
次に、マスタICは、制御対象のI2CI/Oエクスパンダ615の出力設定レジスタ635のコントロールレジスタに設定されるデータ(図28のデータ2802と同一フォーマットのデータ)を送信する。図30においては、オートインクリメントを許可してワークレジスタのすべての記憶領域を更新するため、自動書込パラメータには「100」が指定され、書き込み又は読み出しの開始位置を指定するレジスタアドレスには、ワークレジスタの先頭領域となる「00h」が指定される。
このため、コントロールレジスタ設定値を受信した後の制御対象となる装飾制御装置610のI2CI/Oエクスパンダ615においては、レジスタ番号「00h」の記憶領域(モードレジスタ1)が最初に更新されることになる。
次に、マスタICは、コントロールレジスタ設定値の送信後、モードレジスタ1に書き込む値(合計8ビット)を送信する。I2CI/Oエクスパンダ615は、当該書き込み値を受信するとモードレジスタ1の値を更新し、レジスタ番号をインクリメントして次の「01h」の記憶領域(モードレジスタ2)を更新するための準備をする。
さらに、マスタICは、モードレジスタ2に書き込む値(合計8ビット)を送信し、以降、レジスタ番号が「02h」〜「1Bh」となる残りの記憶領域のレジスタに対して、順に設定値を送信する。I2CI/Oエクスパンダ615は、当該書き込み値を受信する毎に対応するレジスタの値を更新し、レジスタ番号をインクリメントして次の記憶領域を更新するための準備を繰り返すことで、ワークレジスタに割り当てられた「00h」〜「1Bh」のすべてのレジスタの値が更新される。
なお、I2CI/Oエクスパンダ615は、ワークレジスタの最終となる「1Bh」の記憶領域を更新すると、レジスタ番号を「00h」に変更して、モードレジスタ1の更新を待つ状態となる。
図31は、本発明の実施の形態のマスタICがI2CI/Oエクスパンダ615を初期化する場合に、マスタICからI2CI/Oエクスパンダ615に送信される初期化指示データのフォーマットを説明する図である。
演出制御装置550のCPU551がマスタICに対して装飾制御装置610の初期化を行うように指示すると、マスタICは、配下に接続されているすべての装飾制御装置610に初期化指示データを送信する。
最初に出力される8ビットのデータ3101には、図29に示す固定アドレス「110」と、共通アドレスであるリセットアドレス「1011」(図23参照)とが含まれる。なお、このデータ3101は、図27における「ADDRESS」に対応するものであり、「R/W」のビットには、書き込みを示す「0」が設定される。
次に出力される8ビットのデータ3102には、第1所定値「10100101」が設定され、次に出力される8ビットのデータ3103には、第2所定値「01011010」が設定される。なお、データ3102は、図27において1番目に送信される「DATA」に対応し、データ3103は、図27において2番目に送信される「DATA」に対応する。
マスタICに接続されるすべてのI2CI/Oエクスパンダ615は、リセットアドレス、第1所定値、及び第2所定値から構成される初期化指示データを受信すると、自身の初期化を行う。
リセットアドレスの出力後に、さらに第1所定値及び第2所定値の両方を出力するようにした理由は、マスタICがリセットアドレス「1011」を送信していないにもかかわらず、ノイズなどの影響によってI2CI/Oエクスパンダ615が誤ってリセットアドレス「1011」を取り込むことによって、誤ったタイミングで初期化が実行されることを防止するためである。
また、リセットアドレスは、個別アドレスとは異なって、すべて(換言すれば複数)のI2CI/Oエクスパンダ615に共通なアドレスである。そのため、リセットアドレスを含んだ初期化指示データを1回送信するだけで、すべて(複数)のI2CI/Oエクスパンダ615を選択して初期化することになるので、I2CI/Oエクスパンダ615を個別に選択して初期化を指示する方法と比較すると、高速に初期化を指示することが可能となる。
なお、図31では、第1所定値と第2所定値とを異なる値としたが、同じ値であってもよい。また、第1所定値及び第2所定値のいずれかが1回送信されるようにしてもよい。
図32は、本発明の実施の形態の第1マスタIC570aの異常判定テーブル3200を説明する図である。
異常判定テーブル3200は、演出制御装置550のRAM553に格納される。異常判定テーブル3200は、演出制御装置550の第1マスタIC570aと、当該第1マスタIC570aに接続されるI2CI/Oエクスパンダ615との接続状態を監視するために設けられている。異常判定テーブル3200は、接続状態に応じて、各I2CI/Oエクスパンダ615に対応した情報が格納される。
異常判定テーブル3200は、I/Oエクスパンダアドレス3201、スレーブアドレス3202、エラーカウンタ3203、比較値3204、及びエラーフラグ3205を含む。
I/Oエクスパンダアドレス3201には、第1マスタIC570aに接続されるI2CI/Oエクスパンダ615のA0〜A3の端子に設定されているアドレス(図19参照)に対応している。
スレーブアドレス3202には、図23に示したI2CI/Oエクスパンダアドレステーブル2300に登録されているスレーブアドレスが登録される。
エラーカウンタ3203は、第1マスタIC570aからI2CI/Oエクスパンダ615に演出制御データを送信し、当該I2CI/Oエクスパンダ615からACKを2回連続して受信できなかった場合にインクリメントされる。
比較値3204には、I2CI/Oエクスパンダ615に障害が発生しているか否かを判定するために、エラーカウンタ3203の値と比較するための値が登録される。なお、比較値3204の値は、制御対象の演出装置の種類に応じて設定してもよい。
エラーフラグ3205には、当該エントリのI2CI/Oエクスパンダ615との接続状態に異常が発生したか否かを示すエラーフラグが登録される。
I2CI/Oエクスパンダ615に障害が発生しているか否かを判定する方法について具体的に説明すると、エラーカウンタ3203の値が、比較値3204に設定された所定値に達した場合、エラーフラグ3205に「ON」が設定され、当該エントリに対応するI2CI/Oエクスパンダ615に障害が発生したことが登録される。
本発明の実施の形態では、後述するように、演出制御データの出力処理(図37参照)は、VDP割込(約33.3ms周期)に同期して実行されるようにしている。
前述したように、第1マスタIC570aからI2CI/Oエクスパンダ615への2回目の演出制御データの送信に対して、I2CI/Oエクスパンダ615からのACKが受信できなければ、エラーカウンタ3003がインクリメントされる。
したがって、異常が発生している場合には、データ出力処理の実行周期が33.3msで、比較値3004が「300」であるので、33.3ms×300≒10sでI2CI/Oエクスパンダ615に関する異常が発生したことを検出する。
図33は、本発明の実施の形態の第2マスタIC570bの異常判定テーブル3300を説明する図である。
第2マスタIC570bの異常判定テーブル3300は、第1マスタIC570aの異常判定テーブル3200と同様に、演出制御装置550のRAM553に格納される。異常判定テーブル3300は、演出制御装置550の第2マスタIC570bと、当該第2マスタIC570bに接続されるI2CI/Oエクスパンダ615との接続状態を監視するために設けられている。異常判定テーブル3300は、接続状態に応じて、各I2CI/Oエクスパンダ615に対応した情報が格納される。また、異常判定テーブル3300の構成は、第1マスタIC570aの異常判定テーブル3200と同じ構成である。
本発明の実施の形態では、第1マスタIC570aと第2マスタIC570bの両方に接続される装飾制御装置610が存在しないため、制御対象の各装飾制御装置610のI/OエクスパンダアドレスがマスタICごとに設定される。したがって、図32及び図33には、同じ値のI/Oエクスパンダアドレスが設定されている。なお、I/Oエクスパンダアドレスには一つのアドレスのみ設定可能であるため、一つの装飾制御装置610を複数のマスタICが制御する場合には共通のアドレスを設定する必要がある。
本発明の実施の形態のマスタICには、デバイスの動作を構成し、シリアルデータを送受信するために使用される複数のレジスタが備えられている。図11及び図12に示したコマンドレジスタ(REG)581は、このようなレジスタの一つであり、接続された装飾制御装置610にスタートコンディションやストップコンディションを出力することなどを指示する。
演出制御装置550は、マスタICを介して装飾制御装置(スレーブ)610に演出指示を送信し、各種演出処理を実行する。図34には各スレーブを初期化する手順、図35には各スレーブに演出制御データを送信する手順の概要を示す。
図34は、本発明の実施の形態の各装飾制御装置(スレーブ)を初期化(リセット)時にCPU551とマスタIC(第1マスタIC570a又は第2マスタIC570b)との間で送受信される情報を説明する図である。
演出制御装置550のCPU551は、スレーブ初期化開始処理が開始されると、コマンドREG581のスタートコンディション(STA)及びストップコンディション(STO)の実行を指示するビットに“1”を設定する(3401)。
マスタICは、コマンドREG581に設定された情報(STO、STA)に従って、制御対象の各装飾制御装置(スレーブ)610に対し、まず先にストップコンディションを出力し、次いでスタートコンディションを出力する(3411)。ストップコンディションを出力することによってデータの送信が完了した旨を各スレーブに通知し、その後、スタートコンディションを出力することによって、各スレーブにおいてコマンドの入力を受け付ける準備を完了させる。
マスタICは、スタートコンディションを出力すると、CPU551に割込信号(INT)を入力して割込みを発生させる。割込みが発生したCPU551は、送信指示データの送信再開処理(1)を開始する(3402)。送信指示データの送信再開処理(1)では、出力用バッファ572にリセット用アドレスを設定する。リセット用アドレスは、各スレーブをリセットするためにあらかじめ定められている固定アドレスである。このとき、コマンドREG581のSTA及びSTOには“0”が設定される。
マスタICは、出力用バッファ572に設定されたリセット用アドレスに対し、所定のデータ(リセット指令)を出力する(3412)。リセット指令は、図31にて説明した第1所定値(データ3102)及び第2所定値(データ3103)に対応する。
マスタICは、リセット用アドレスを出力すると、CPU551に割込信号を入力して割込みを発生させる。割込みが発生したCPU551は、送信指示データの送信再開処理(2)を開始する(3403)。送信指示データの送信再開処理(2)では、出力用バッファ572にリセット指令の前半の値を設定する。リセット指令の前半の値は、図31にて説明した第1所定値(データ3102)に対応する。このとき、コマンドREG581のSTA及びSTOには“0”が設定される。マスタICは、出力用バッファ572に設定されたリセット指令の前半の値を出力する(3413)。
その後、マスタICは、リセット指令の前半の値を出力すると、CPU551に割込信号を入力して割込みを発生させる。割込みが発生したCPU551は、送信指示データの送信再開処理(3)を開始し(3404)、出力用バッファ572にリセット指令の後半の値を設定する。このとき、コマンドREG581のSTA及びSTOには“0”が設定される。マスタICは、出力用バッファ572に設定されたリセット指令の後半の値を出力する(3414)。リセット指令の後半の値は、図31にて説明した第2所定値(データ3103)に対応する。
さらに、マスタICは、リセット指令の後半の値を出力すると、CPU551に割込信号を入力して割込みを発生させる。割込みが発生したCPU551は、送信指示データの送信再開処理(4)を開始し(3405)、コマンドREG581のSTAに“0”、STOに“1”が設定し、マスタICにストップコンディションの出力を指示する。
マスタICは、コマンドREG581に設定された情報に従って、各スレーブにストップコンディションを出力する(3415)。
以上の処理によって、各スレーブが初期化される。なお、初期化に失敗した場合には(3406)、ステップ3402から処理を再開する。
図35は、本発明の実施の形態の各装飾制御装置(スレーブ)に演出制御データを送信する際にCPU551とマスタIC(第1マスタIC570a又は第2マスタIC570b)との間で送受信される情報を説明する図である。
演出制御装置550のCPU551は、演出制御を行う場合に、まず、コマンドREG581のスタートコンディション(STA)及びストップコンディション(STO)の実行を指示するビットに“1”を設定する(3501)。
マスタICは、コマンドREG581のSTA及びSTOに設定された値(“1”)に基づいて、各スレーブにストップコンディションを出力し、その後、スタートコンディションを出力する(3511)。
そして、マスタICは、スタートコンディションを各スレーブに出力すると、各スレーブで演出制御データを受信する準備が整うため、CPU551に割込信号を入力して割込みを発生させる。割込みが発生したCPU551は、出力用バッファ572に制御対象のスレーブのアドレス及び制御内容を示す演出制御データを設定する(3502)。このとき、コマンドREG581のSTA及びSTOには“0”を設定する。
マスタICは、出力用バッファ572に設定されたアドレス及び演出制御データを各スレーブに出力する(3512)。このとき、出力されたアドレスに対応するスレーブは、受信した演出制御データに基づいて演出処理を実行する。
そして、マスタICは、アドレス及び演出制御データを各スレーブに出力すると、CPU551に割込信号を入力して割込みを発生させる。割込みが発生したCPU551は、コマンドREG581のSTAに“1”、STOに“0”を設定する(3503)。その後、マスタICは、再度スタートコンディションを出力する、いわゆるリスタートコンディションを出力する(3513)。
続いて、CPU551及びマスタICは、別のアドレスを指定して同様の処理を行う(3504、3514、3505、3515)。CPU551によって最後のn個めのスレーブに対する演出制御データの出力が完了し(3506)、さらに、マスタICが演出制御データを対応するスレーブに出力すると(3516)、全データの出力が完了したため、ストップコンディションを出力する。具体的には、マスタICが最終のスレーブに演出制御データを出力完了したときに、割込信号を入力してCPU551に割込みを発生させ、割込みが発生したCPU551は、コマンドREG581のSTAに“0”、STOに“1”を設定し(3507)、その後、マスタICがストップコンディションを出力する(3517)。
図36は、本発明の実施の形態の演出制御装置550からマスタIC(第1マスタIC570a又は第2マスタIC570b)に演出制御データを送信する段階を説明する図である。
演出制御装置550のCPU551は、後述するスレーブ出力データ編集処理が実行されると、RAM553に出力データ準備領域を確保し、出力データ準備領域に各スレーブに対する演出制御データを格納する。
また、出力データ準備領域は、スレーブ毎にさらに領域が分割され、各スレーブに対応するアドレス及び演出内容に対応する演出制御データが格納される。具体的には、アドレスは図30に示した送信順序1のデータに対応し、演出制御データは図30に示した送信順序2から30までのデータに対応する。
さらに、CPU551は、未送信の演出制御データが上書きされないように、出力データ退避領域をさらにRAM553に確保し、スレーブ出力データ退避処理によって出力データ準備領域に記憶されたデータを出力データ退避領域に退避させる。その後、退避されたデータは所定のタイミングでマスタICの出力用バッファ572に設定される。
なお、出力データ準備領域及び出力データ退避領域はマスタICごとにRAM553に確保され、本発明の実施の形態では、第1マスタIC570a及び第2マスタIC570bに対応した領域がそれぞれ確保される。
図37は、本発明の実施の形態の演出制御装置550による処理の手順を示すフローチャートである。
図37に示す処理は、演出制御装置550のCPU551によって実行される。
演出制御装置550は、演出制御装置550に電源が投入されると、まずステップ3701〜3706の処理を実行し、ステップ3707の処理でVDP556から画像更新周期と同期する同期信号(例えば、33.3ms秒周期の同期信号)が割込信号としてCPU551に入力されるまで待機する。そして、以降、VDP556から画像更新周期と同期する同期信号が割込信号としてCPU551に入力される毎に、ステップ3705〜3721の処理を繰り返し実行する。
まず、演出制御装置550は、演出制御装置550のRAM553の初期化などを含む初期化処理を実行する(3701)。このとき、後述する第1マスタIC570aに関する初期化段階番号と、第2マスタIC570bに関する初期化段階番号とを、ともに“0”に設定しておく。
そして、演出制御装置550は、出力I/F558aとNORゲート回路561を介してリセットパルスを第1マスタIC570a及び第2マスタIC570bに入力し、第1マスタIC570a及び第2マスタIC570bをハード的に初期化する(3702)。
続いて、演出制御装置550は、第1マスタIC570aに接続されたすべての装飾制御装置610のI2CI/Oエクスパンダ615を初期化するために、第1マスタIC570aから初期化指示データを出力する第1マスタIC570a側スレーブ初期化開始処理を実行する(3703)。同様に、第2マスタIC570bに接続されたすべての装飾制御装置610のI2CI/Oエクスパンダ615を初期化するために、第2マスタIC570bから初期化指示データを出力する第2マスタIC570b側スレーブ初期化開始処理を実行する(3704)。スレーブ初期化開始処理の詳細については、図38にて説明する。
さらに、演出制御装置550は、第1マスタIC570に関する初期化段階番号と、第2マスタIC570bに関する初期化段階番号とが、ともに“0”になるまで待機する(3705)。初期化段階番号とは、第1マスタIC570a及び第2マスタIC570bの各々に関して初期化処理の進捗を示す番号であり、電源投入直後に演出制御装置550が起動した直後では“0”となっているが、初期化処理が開始されると、段階を追って“1”から“4”まで1つずつインクリメントされ、初期化処理が完了すると、再度、“0”に戻されるものである。なお、図42にて説明する初期化指示データの送信再開処理において、設定されている初期化段階番号の値に対応する処理が順次実行される。
すべてのマスタ及びスレーブの初期化が完了すると、演出制御装置550は、VDP556から画像更新周期と同期する同期信号(VDP割込)の受け入れ、及びタイマ割り込みの受け入れを許可する(3706)。
演出制御装置550は、図36にて説明したように、RAM553上に格納された演出制御データを上書きされないように退避するスレーブ出力データ退避処理を実行する(3707)。退避領域に退避された出力データは、前述したように、所定のタイミングでマスタICに設定される。
そして、演出制御装置550は、表示装置53に画像を表示するために、VDP556に画像を表示させる指令となるデータを出力する(3708)。さらに、スピーカ30から音を遊技状態に応じて出力させるために、音制御データを音LSI557に出力する。音LSI557は、入力された音制御データに基づいてスピーカ30から音を出力させる(3709)。
次に、演出制御装置550は、第1マスタIC570a及び第2マスタIC570bから装飾制御装置610に演出制御データを出力するスレーブ出力開始処理を実行する(3710)。ここで制御される装飾制御装置610は、主としてLEDなどの発光体を制御するものであり、発光制御装置又は発光制御スレーブとされる。スレーブ出力開始処理の詳細については、図39にて後述する。
演出制御装置550は、スレーブ出力開始処理が終了すると、VDP556に次に出力されるデータを編集し(3711)、さらに、音LSI557に出力される音制御データを編集する(3712)。
さらに、演出制御装置550は、発光体を制御する装飾制御装置610に送信するための演出制御データを編集するスレーブ出力データ編集処理を実行する(3713)。スレーブ出力データ編集処理では、図36で説明したように、各スレーブの演出制御データを生成し、RAM553上に確保された出力データ準備領域に格納する。
次に、演出制御装置550は、図32に示した異常判定テーブル3200を参照し、第1マスタIC570aに接続された発光制御スレーブに関するエラー判定処理を実行する(3714)。
エラー判定処理では、演出制御装置550が、異常判定テーブル3200の発光制御スレーブに対応するエントリのエラーフラグ3205がすべて「ON」となっているか否か、つまりすべての発光制御スレーブでエラーが発生しているか否かを判定する。言い換えれば、エラーフラグ3205が「OFF」となっている発光制御スレーブが少なくとも1つ以上あるか否かを判定する。このエラー判定処理によって、すべての発光制御スレーブでエラーが発生していると判定された場合には、第1マスタIC570a及び第1マスタIC570aに接続されたすべての発光制御スレーブのリセットする条件が成立したものとされる。
演出制御装置550は、ステップ3714のエラー判定処理の結果に基づいてリセット条件が成立しているか否かを判定する(3715)。前述のように、ステップ3714のエラー判定処理の時点ですべての発光制御スレーブのエラーフラグ3205が「ON」になっている場合には、リセット条件が成立したと判定される。
演出制御装置550は、リセット条件が成立したと判定された場合には(3715の結果が「Y」)、第1マスタIC570aを初期化し(3716)、第1マスタIC570aに接続されるすべてのI2CI/Oエクスパンダ615(装飾制御装置610)に対して同時に初期化指示データを出力する第1マスタIC570a側スレーブ初期化開始処理を実行する(3717)。
このように、リセット条件が成立したと判定された場合には、ステップ3717の処理で、第1マスタIC570aに接続されるすべてのI2CI/Oエクスパンダ615に対して、同時に初期化を指示する。すなわち、すべてのI2CI/Oエクスパンダ615を同時に選択して初期化することになるので、I2CI/Oエクスパンダ615を個別に選択して初期化を指示する方法と比較すると、高速に初期化を行うことが可能となり、I2CI/Oエクスパンダ615を正常な状態へ迅速に復帰させることができる。このとき、CPU551がバス563を介してリセットREG573に初期化指示情報を書き込むことにより、第1マスタIC570aをソフト的にリセットする。
なお、ステップ3715の処理でリセット条件成立と見なされた場合は、第1マスタIC570aにおいて異常が発生している可能性があるので、ステップ3716の処理で第1マスタIC570aも初期化するようにしている。
第1マスタIC570aは、CPU551からの指令によって、接続線SDAとSCLの信号レベルを制御する信号レベル制御手段として機能しているので、すべての発光制御装置にてデータ送信に関する異常が発生している場合には、第1マスタIC570a自身に異常が発生していることも考えられる。
そのため、すべての装飾制御装置610にてデータ送信に関する異常が発生している場合には、念のために、CPU551(演算処理手段)により第1マスタIC570aが初期化される。これにより、第1マスタIC570aで異常が発生している場合であっても確実に第1マスタIC570aを制御可能にすることができる。
さらに、演出制御装置550は、第2マスタIC570bについても同様に、エラー判定処理を実行し(3718)、リセット条件が成立しているか否かを判定する(3719)。そして、リセット条件が成立している場合には、第2マスタIC570bをリセットし(3720)、第2マスタIC570bに接続されたスレーブを初期化する第2マスタIC570b側スレーブ初期化開始処理を実行する(3721)。その後、VDP556から同期信号がCPU551に入力されるまで待機する。
このように、図37に示した処理では、表示装置53の画像を更新する周期と同期して、演出制御装置550の第1マスタIC570a及び第2マスタIC570bから装飾制御装置610のI2CI/Oエクスパンダ615に演出制御データを送信する。そして、I2CI/Oエクスパンダ615は、受信した演出制御データに基づいて装飾装置620を制御するため、表示装置53における演出と装飾装置620における演出とが調和し、遊技者に違和感を与えないので、興趣を高めることができる。
また、表示装置53の画像を更新する周期と同期して第1マスタIC570a及び第2マスタIC570bから送信された演出制御データが装飾制御装置610で受信されると、その都度、I2CI/Oエクスパンダ615によってワークレジスタ(図24参照)の値が更新される。そのため、毎回ワークレジスタの値が最新の状態に更新されるので、ノイズ等でワークレジスタの値が破壊されても、正常な値に復帰することが可能である。
また、表示装置53の画像を更新する周期と同期して、ステップ3714及び3718でエラー判定処理を実行するので、エラーを判定する頻度を適切に設定することができる。すなわち、エラー判定処理の実行頻度が多すぎると、演出制御装置550のCPU551の処理負荷が増大し、逆に、エラー判定処理の実行頻度が少なすぎると、異常の発生を適切なタイミングで検出できなくなる。表示装置53の画像を更新する周期と同期させてエラー判定を行うことによって、適切なタイミングでエラーを検出することが可能となり、各処理における不具合の発生に対して適切に対応することができる。
図38は、本発明の実施の形態の第1マスタIC570a側のスレーブ初期化開始処理及び第2マスタIC570b側のスレーブ初期化開始処理の手順を示すフローチャートである。
第1マスタIC570a側のスレーブ初期化開始処理は、図37のステップ3703及び3717で実行され、第2マスタIC570b側のスレーブ初期化開始処理は、同じくステップ3704又はステップ3721で実行される処理である。
第1マスタIC570a側の初期化開始処理では、まず、演出制御装置550のCPU551は、マスタ割込み及びタイム割込みを禁止する(3801)。そして、初期化対象のマスタに第1マスタIC570aを選択する(3802)。
また、第2マスタIC570b側のスレーブ初期化開始処理では、第1マスタIC570a側スレーブ初期化開始処理と同様に、CPU551は、マスタ割込み及びタイム割込みを禁止する(3811)。そして、初期化対象のマスタに第2マスタIC570bを選択する(3812)。
以降の処理では、第1マスタIC570a側スレーブ初期化開始処理及び第2マスタIC570b側スレーブ初期化開始処理について、選択されたマスタに対して共通の処理が実行される。
CPU551は、選択されたマスタの初期化段階番号に“1”を設定する(3803)。さらに、選択したマスタに関する監視タイマを設定し(3804)、タイムアウトの監視を開始する(3805)。
CPU551は、選択されたマスタのコマンドREG581に対し、STAに“1”、STOに“1”、SIに“0”、及びMODEに“0”を設定する(3806)。
STAは、前述したように、スタートコンディションの出力を指示するためのビットであり、STOは、ストップコンディションの出力を指示するためのビットである。各ビットに“1”が設定されると、マスタICによって対応する信号が出力される。ステップ3806の処理では、スタートコンディション及びストップコンディションの両方の信号が出力される。
SIは、前述のマスタ割込みの発生を報知するためのビットであり、“1”が設定されている場合にはマスタICからCPU551に割込みの発生が要求された状態となり、このビットが“0”に変更されるまで、割込みを発生させたマスタICは、処理を待機する状態となる。そして、CPU551によって、このビットに“0”を設定すると、CPU551に発生している割込みが解除され、処理を待機していたマスタICは、次に行われるべき処理を再開する。ステップ3806の処理では、“0”が設定されているため、割込みの発生が解除されて、処理を待機していたマスタICが動作を再開する。
MODEは、データを送信するモードを指定するためのビットであり、“1”が設定されている場合には「バッファモード」、“0”が設定されている場合には「バイトモード」が指定される。ステップ3806の処理では、“0”が設定されているため、バイトモードでデータがやり取りされる。
その後、CPU551は、マスタ割込み及びタイムアウト割込みを許可し(3807)、呼び出し元に復帰する。
図39は、本発明の実施の形態のスレーブ出力開始処理の手順を示すフローチャートである。
スレーブ出力開始処理は、図37に示すステップ3710で実行される処理であり、各マスタから発光制御スレーブに演出制御データを送信するために必要な処理である。
CPU551は、まず、マスタ割込み及びタイム割込みを禁止する(3901)。次に、第1マスタIC570aに対応するスタートフラグを“オン”に設定する(3902)。さらに、第1マスタIC570aの監視タイマを設定し(3903)、タイムアウトの監視処理を開始する(3904)。スタートフラグとは、スタートコンディションが出力され、演出制御データの送信が開始されたか否かを示すフラグであり、マスタIC毎に設定される。スタートフラグは、演出制御装置550のRAM553に記憶される。
さらに、CPU551は、第1マスタIC570aのコマンドREG581に対し、STAに“1”、STOに“1”、SIに“0”、及びMODEに“1”を設定する(3905)。ステップ3905の処理では、MODEに“1”が設定されるため、バッファモードでデータが送受信される。
また、第2マスタIC570bについても同様に、CPU551は、第2マスタIC570bのスタートフラグをオンに設定する(3906)。さらに、監視タイマを設定し(3907)、タイムアウトの監視処理を開始する(3908)。さらに、第2マスタIC570bのコマンドREG581に対し、STAに“1”、STOに“1”、SIに“0”、及びMODEに“1”を設定する(3909)。
CPU551は、各マスタの先頭のスレーブ(装飾制御装置610)を選択する(3910)。各マスタICには、演出制御データを送信するスレーブの順序があらかじめ設定されている。ステップ3910の処理で当該順序の先頭のスレーブを設定し、後述する演出制御データの送信再開処理において、第1マスタIC570aに接続される各スレーブに演出制御データを順次送信する。
さらに、CPU551は、リトライカウンタを0に設定する(3911)。リトライカウンタとは、各マスタに演出制御データを送信する場合において、送信失敗時にインクリメントされるカウンタである。リトライカウンタが所定の数値よりも大きくなった場合には何らかの障害が発生したものと判断することができる。
その後、CPU551は、マスタ割込み及びタイムアウト割込みを許可し(3912)、呼び出し元に復帰する。
図40は、本発明の実施の形態の第1マスタIC570a側及び第2マスタIC570b側の送信中断割込み発生時の処理の手順を示すフローチャートである。
送信中断割込みは、いわゆるマスタ割込みであり、中断時の状態に応じて処理が実行される。
CPU551は、まず、第1マスタIC570aからのマスタ割込みが発生した場合には、第1マスタIC570aに関するタイムアウトの監視を終了する(4001)。さらに、第1マスタIC570aの初期化段階番号及びスタートフラグを取得する(4002)。
同じく、CPU551は、第2マスタIC570bからのマスタ割込みが発生した場合には、第2マスタIC570bに関するタイムアウトの監視を終了し(4011)、第2マスタIC570bの初期化段階番号及びスタートフラグを取得する(4012)。
CPU551は、初期化対象のマスタICの初期化段階番号が“0”であるか否かを判定する(4003)。初期化段階番号が“0”の場合とは、初期化処理が実行中でない状態であることを示している。すなわち、初期化段階番号が“0”以外の場合には初期化処理が実行中であることを示している。
CPU551は、初期化対象のマスタICの初期化段階番号が“0”でない場合には(4003の結果が「N」)、前述のように、初期化処理中であるため、初期化指示データの送信再開処理を実行する(4004)。初期化指示データの送信再開処理の詳細については、図42にて後述する。
一方、CPU551は、初期化対象のマスタICの初期化段階番号が“0”でない場合には(4003の結果が「Y」)、初期化処理を既に終えており、演出制御データを送信している途中であるため、演出制御データの送信再開処理を実行する(4005)。演出制御データの送信再開処理の詳細については、図43にて後述する。
図41は、本発明の実施の形態の第1マスタIC570a及び第2マスタIC570bによるタイムアウト割込み発生時の処理の手順を示すフローチャートである。
本処理は、第1マスタIC570a又は第2マスタIC570bにおいて所定の時間が経過しても復帰しない場合に発生するタイマ割込みが発生した場合に各マスタICを初期化するために実行される処理である。
CPU551は、第1マスタIC570aにおいてタイムアウト割込みが発生した場合には、第1マスタIC570aをソフトリセットする(4101)。さらに、第1マスタIC570aに接続されたスレーブを初期化する第1マスタIC570a側スレーブ初期化開始処理(図38)を実行する(4102)。
CPU551は、第2マスタIC570bにおいてタイムアウト割込みが発生した場合には、第2マスタIC570bをソフトリセットする(4111)。さらに、第2マスタIC570bに接続されたスレーブを初期化する第2マスタIC570b側スレーブ初期化開始処理(図38)を実行する(4112)。
図42は、本発明の実施の形態の初期化指示データの送信再開処理の手順を示すフローチャートである。
CPU551は、まず、ステータスコードに基づいて初期化指示データの送信処理を継続するか否かを判断し(4201)、判断結果に応じて処理を分岐する(4202)。ステータスコードは、マスタICの状態を示す値であり、ステータスレジスタ(REG)582に設定されている。ステップ4201の処理では、設定されているステータスコードと現在の初期化段階番号との組合せから、図44にて後述する送信処理継続判定表4400を参照して、初期化指示データの送信処理を継続するか否かを判定する。初期化段階番号とステータスコードとの関係については、図44にて詳細を説明する。
初期化段階番号は、マスタICの初期化を行っているときに、その処理段階に応じて“1”〜“4”の何れかの値が設定されるものであり、マスタICの初期化が完了すると“0”に設定されるものである。ただし、マスタICの初期化が完了して、初期化段階番号が“0”になると、当該初期化指示データの送信再開処理が呼び出されない(図40の呼び出し元の処理にてステップS4003の分岐がある)ので、ここでは、初期化段階番号が“1”〜“4”となっていることを前提に説明を行う。
CPU551は、初期化段階番号とステータスコードとの組合せによる判定結果が「継続」でない場合には(4202の結果が「N」)、正常な状態ではない(例えば、データ送信に失敗した状態になる)ので、初期化の開始を示す値“1”を初期化段階番号に設定する(4203)。さらに、監視タイマを設定し、タイムアウトの監視を開始する(4204)。
最後に、CPU551は、ストップコンディション及びスタートコンディションを出力するように、処理対象のマスタICのコマンドREG581のSTAに“1”、STOに“1”、SIに“0”、MODEに“0”を設定し(4205)、呼び出し元の処理に復帰する。
一方、CPU551は、初期化段階番号とステータスコードとの組合せによる判定結果が「継続」となっている場合には(4202の結果が「Y」)、初期化処理が正常に実行されているため、初期化段階番号に基づいて処理を分岐する(4206)。
CPU551は、初期化段階番号が“1”の場合には、処理対象のマスタICの出力用バッファ572にリセット用アドレスを設定する(4207)。
初期化段階番号に“1”が設定されている場合は、マスタICからスタートコンディションが出力されたことを意味する。図44の送信処理継続判定表4400を参照すると、ステータスコードは、スタートコンディション又はリスタートコンディションが送信されたことを示す“08h”又は“10h”が設定されることになる。したがって、初期化段階番号に“1”が設定されており、かつ、ステータスコードに“08h”又は“10h”が設定されている場合に、ステップ4207以降の処理が実行される。
CPU551は、初期化段階番号をインクリメントし(4208)、監視タイマを設定し、タイムアウトの監視を開始する(4209)。最後に、処理を継続するために、処理対象のマスタICのコマンドREG581のSTA、STO、SI及びMODEにそれぞれ“0”を設定し(4210)、呼び出し元の処理に復帰する。
また、初期化段階番号が“2”の場合には、CPU551は、処理対象のマスタICの出力用バッファ572にリセット指令を示す値の前半の値を設定する(4211)。
初期化段階番号に“2”が設定されている場合は、マスタICの出力用バッファ572にリセット用アドレスが設定された状態であることを意味する。図44の送信処理継続判定表4400を参照すると、ステータスコードは、スレーブのアドレス(ここでは、リセット用アドレス)が送信済みであり、かつ、各スレーブから信号を正常に受信したことを示すACKが応答されたことを示す“18h”が設定されることになる。ただし、ステータスコードは、各スレーブから信号を正常に受信できなかったことを示すNACKが応答された場合には“20h”が設定される。したがって、初期化段階番号に“2”が設定されており、かつ、ステータスコードに“18h”が設定されている場合に、ステップ4211以降の処理が実行される。
CPU551は、出力用バッファ572に値が設定されると、初期化段階番号が“1”の場合と同様に、ステップ4208から4210までの処理を実行する。
CPU551は、初期化段階番号が“3”の場合には、処理対象のマスタICの出力用バッファ572にリセット指令を示す値の後半の値を設定する(4212)。
初期化段階番号に“3”が設定されている場合は、マスタICの出力用バッファ572にリセット指令の前半の値が設定された状態であることを意味する。図44の送信処理継続判定表4400を参照すると、ステータスコードは、出力用バッファ572に設定されたデータが送信済みであり、かつ、各スレーブから信号を正常に受信したことを示すACKが応答されたことを示す“28h”が設定されることになる。ただし、ステータスコードは、各スレーブから信号を正常に受信できなかったことを示すNACKが応答された場合には“30h”が設定される。したがって、初期化段階番号に“3”が設定されており、かつ、ステータスコードに“28h”が設定されている場合に、ステップ4212以降の処理が実行される。
CPU551は、出力用バッファ572に値が設定されると、初期化段階番号が“1”の場合と同様に、ステップ4208から4210までの処理を実行する。
初期化段階番号に“4”が設定されている場合は、マスタICの出力用バッファ572にリセット指令の後半の値が設定された状態であることを意味する。図44の送信処理継続判定表4400を参照すると、初期化段階番号が“3”の場合と同様に、ステータスコードに“28h”又は“30h”が設定されており、ステータスコードに“28h”の場合に、ステップ4212以降の処理が実行される。
初期化段階番号が“4”の場合には、初期化処理に必要な処理が終了したため、CPU551は、処理対象のマスタICに接続されたすべての装飾制御装置610のエラーフラグをオフに設定し(4213)、さらに、エラーカウンタを0に設定して初期化する(4214)。そして、初期化段階番号を初期化処理中でないことを示す“0”に設定する。最後に、初期化処理を完了させ、処理対象のマスタICから、当該マスタICに接続されたすべての装飾制御装置610にストップコンディションを出力するために、処理対象のマスタICのコマンドREG581のSTOに“1”、STA、SI及びMODEにそれぞれ“0”を設定し(4216)、呼び出し元の処理に復帰する。
図43は、本発明の実施の形態の演出制御データの送信再開処理の手順を示すフローチャートである。
CPU551は、まず、ステータスコードに基づいて実行する処理を判断し(4301)、処理を継続、データを再送、又はデータの送信を中止するかによって分岐する(4302)。ステップ4301の処理では、ステータスコードとスタートフラグに設定された値との組合せに基づいて、図44にて後述する送信処理継続判定表4400を参照して実行する処理を判断する。
スタートフラグは、第1マスタIC570a及び第2マスタIC570bの各々に関して、演出制御データを送信するタイミングを制御するためのフラグである。具体的には、図37のステップ3710のスレーブ出力開始処理(図39)が実行されると、スタートフラグが“オン”に設定される。また、後述するように、出力用バッファ572に演出制御データを設定すると、スタートフラグは“オフ”に設定される。ステータスコードは、前述のように、マスタICの状態を示す値であり、ステータスレジスタ(REG)582に設定されている。スタートフラグとステータスコードとの関係については、図44にて詳細を説明する。
CPU551は、スタートフラグとステータスコードとの組合せによって処理を継続すると判定された場合には(4302の結果が「継続」)、演出制御データの送信が正常に行われていることになる。このとき、スタートフラグが“オン”の場合には、前述のように、スタートコンディションが出力された後であるため、対応するステータスコードは、“08h”又は“10h”となる。一方、スタートフラグが“オフ”の場合、正常に処理が行われていれば、ステータスコードには正常にデータの送信が完了したことを示す“28h”が設定されている。
そこで、CPU551は、スタートフラグが“オン”であるか否かを判定する(4303)。スタートフラグが“オン”である場合には(4303の結果が「Y」)、RAM553上に準備されていたデータを出力用バッファ572に設定する(4304)。そして、スタートフラグを“オフ”に設定し(4305)、監視タイマを設定し、タイムアウトの監視を開始する(4306)。最後に、処理対象のマスタICのコマンドREG581のSTA、STO及びSIをそれぞれ“0”に設定し、出力用バッファ572に設定されたデータをバッファモードで送信するために、MODEを“1”に設定し(4307)、呼び出し元の処理に復帰する。
一方、CPU551は、スタートフラグが“オフ”である場合には(4303の結果が「N」)、選択されたスレーブ(装飾制御装置610)に対応するエラーフラグを“オフ”に設定し(4308)、さらに、エラーカウンタを初期化する(4309)。
その後、CPU551は、すべてのスレーブに対して送信再開処理が完了したか否かを判定する(4310)。そして、すべてのスレーブに対して処理が完了した場合には(4310の結果が「Y」)、ストップコンディションを出力し、データを送信するモードを「バッファモード」に指定するようにコマンドREG581のSTO及びMODEに“1”、STA及びSIに“0”を設定し(4311)、呼び出し元の処理に復帰する。
CPU551は、すべてのスレーブに対して処理が完了していない場合には(4310の結果が「N」)、リトライカウンタを0に設定し(4312)、次の処理対象のスレーブを選択する(4313)。そして、選択されたスレーブへの出力データを準備し(4314)、スタートフラグを“オン”に設定し(4315)、監視タイマを設定し、タイムアウトの監視を開始する(4316)。
最後に、CPU551は、スタートコンディションを出力し、データを送信するモードを「バッファモード」に指定するようにコマンドREG581のSTA及びMODEに“1”、STO及びSIに“0”を設定し(4317)、呼び出し元の処理に復帰する。
CPU551は、スタートフラグとステータスコードとの組合せによって、演出制御データを再送すると判定された場合には(4302の結果が「再送」)、リトライカウンタの値をインクリメントする(4318)。そして、リトライカウンタの値が、指定された値に到達したか否かを判定する(4319)。このときの指定された値は、図32又は図33に示した異常判定テーブル3200又は異常判定テーブル3300に設定されており、現在選択されているスレーブに対応する比較値3204に対応する。
CPU551は、リトライカウンタの値が指定値に到達していない場合には(4322の結果が「N」)、現在選択中にスレーブを再度選択し(4320)、選択スレーブに出力するデータを準備し(4314)、ステップ4315以降の処理を実行する。
一方、CPU551は、リトライカウンタの値が指定値に到達した場合には(4322の結果が「Y」)、選択されているスレーブのエラーフラグ3205に“ON”を設定し、ステップ4310以降の処理を実行する。
最後に、CPU551は、スタートフラグとステータスコードとの組合せによって、演出制御データの送信再開処理を中止すると判定された場合には(4302の結果が「中止」)、呼び出し元の処理に復帰する。演出制御データの送信再開処理が中止される場合とは、接続線SDA又は接続線SCLが何らかの理由で占有され、さらに、この占有状態を解除できないため、データの送受信を行えない状態になっている場合である。
図44は、本発明の実施の形態のデータの送信再開処理の継続を判断するための送信処理継続判定表4400の一例を示す図である。
送信処理継続判定表4400には、前述のように、データ送信再開処理の継続を判断するための情報が格納される。データ送信再開処理には、初期化指示データの送信再開処理(図42)と、演出制御データの送信再開処理(図43)とが含まれ、送信処理継続判定表4400には各場合について処理の継続判断が登録されている。
送信処理継続判定表4400には、ステータスコード4401、初期化指示データ送信再開処理の継続判断4402、演出制御データ送信再開処理の継続判断4403、及び状態4404が含まれる。
ステータスコード4401は、前述のように、実行される処理に関わらず、マスタICの状態を示す値である。
状態4404は、ステータスコード4401に対応するマスタICの状態である。例えば、ステータスコードが“08H”の場合には、スタートコンディションの送信が完了した状態を示す。また、ステータスコードが“10H”の場合には、スタートコンディションの再送信、すなわち、リスタートコンディションの送信が完了したことを示している。
また、本発明の実施の形態では、接続線SDA又は接続線SCLが何らかの理由で占有され、さらに、解除できなかった場合には、ステータスコード4401に“70H”又は“78H”が設定される。
続いて、ステータスコードに対応する初期化指示データ送信再開処理の継続判断4402及び演出制御データ送信再開処理の継続判断4403について説明する。
初期化指示データ送信再開処理では、初期化段階番号に対応する段階ごとに処理が実行されており、初期化指示データ送信再開処理の継続判断4402は、初期化段階番号ごとに定義されている。具体的には、図に示すように、初期化段階番号の値とステータスコードの値との組合せに対応して、「継続」又は「再開」が定義されている。
継続判断4402の値が「継続」の場合には、初期化指示データ送信再開処理が正常に処理されていることを示している。具体的には、初期化段階番号が1の場合にスタートコンディションの出力が成功した場合や、初期化段階番号が2の場合にアドレスの送信が成功した場合に継続判断4402の値が「継続」になる。すなわち、初期化指示データ送信再開処理で実行された処理と、ステータスレジスタ(REG)582に設定されたステータスコードとが整合している場合に継続判断4402の値が「継続」になる。
一方、継続判断4402の値が「再開」の場合には、初期化指示データ送信再開処理が正常に処理されていない場合など、初期化指示データ送信再開処理を再度開始する場合に設定される。すなわち、初期化指示データ送信再開処理で実行された処理と、ステータスレジスタ(REG)582に設定されたステータスコードとが整合しない場合であり、例えば、データの送信に失敗した場合などである。
演出制御データ送信再開処理では、スタートフラグの設定値に基づいて処理が実行されており、演出制御データ送信再開処理の継続判断4403は、スタートフラグの設定値ごとに定義されている。具体的には、図に示すように、スタートフラグの値とステータスコードの値との組合せに対応して、「継続」、「再送」又は「中止」が定義されている。
スタートフラグは、スタートコンディションが出力された後、最初にデータが送信されたタイミングでONに設定され、処理が継続されるとOFFに設定される。すなわち、初期設定が終了するとスタートフラグがOFFに設定され、その後、継続してデータが送信される。継続判断4403の値が「継続」の場合は、スタートコンディション送信後(スタートフラグがON)にステータスコードが「08H」又は「10H」に設定されていた場合、データ送信後(スタートフラグがOFF)にデータ送信の成功を示すステータスコード「28H」が設定されている場合となる。
一方、接続線SDA又は接続線SCLが何らかの理由で占有状態になっており、解除できない場合には、データを送受信することができないため、データの送受信を中止する。具体的には、ステータスコード4401が「70H」又は「78H」の場合である。
その他の場合、すなわち、データの送受信が可能な状態でステータスコードとスタートフラグとの整合していない場合には、「再送」が設定されており、演出制御データを再送する処理が実行される。
図45は、本発明の実施の形態のマスタICによるデータ送信処理の手順を示すフローチャートである。本処理は、第1マスタIC570a及び第2マスタIC570bの共通処理であり、CPU551によって、コマンドレジスタ581(図11及び図12参照)のSIのビットに“0”が設定されると、割込み処理の発生によって待機していたマスタICが、当該処理を開始する。
まず、マスタICのコントローラ574は、ストップコンディションの出力が要求されているか否か、すなわち、コマンドREG581のSTOに“1”が設定されているか否かを判定する(4501)。
コントローラ574は、ストップコンディションの出力が要求されている場合には(4501の結果が「Y」)、ストップコンディション出力処理を実行する(4502)。ストップコンディション出力処理は、接続線SCL及び接続線SDAの信号レベルに応じてストップコンディションを実行するために必要な処理を実行する。ストップコンディション出力処理の詳細については、図46にて後述する。
コントローラ574は、さらに、スタートコンディションの出力が要求されているか否か、すなわち、コマンドREG581のSTAに“1”が設定されているか否かを判定する(4503)。スタートコンディションの出力が要求されている場合には(4503の結果が「Y」)、スタートコンディション出力処理を実行する(4506)。スタートコンディション出力処理は、接続線SCL及び接続線SDAの信号レベルに応じてスタートコンディションを実行するために必要な処理を実行する。スタートコンディション出力処理の詳細については、図49にて後述する。
コントローラ574は、スタートコンディションの出力が要求されている場合には(4503の結果が「N」)、STCDの値をステータスコードに設定する(4506)。STCDは、設定されるステータスコードを代入するための変数である。ステータスコードに値を設定すると、本処理を終了する。
コントローラ574は、ストップコンディションの出力が要求されていない場合には(4501の結果が「N」)、スタートコンディションの出力が要求されているか否か、すなわち、コマンドREG581のSTAに“1”が設定されているか否かを判定する(4505)。スタートコンディションの出力が要求されている場合には(4505の結果が「Y」)、スタートコンディション出力処理を実行する(4506)。そして、スタートコンディション出力処理で設定されたSTCDの値をステータスコードに設定する(4507)。その後、コマンドREG581のSIに“1”を設定することによって送信中断割込みを発生させる。
コントローラ574は、スタートコンディションの出力が要求されていない場合には(4505の結果が「N」)、スレーブへのデータ送信処理を実行する(4508)。そして、スレーブへのデータ送信処理で設定されたSTCDの値をステータスコードに設定する(4507)。その後、コマンドREG581のSIに“1”を設定することによって送信中断割込みを発生させる。
図46は、本発明の実施の形態のストップコンディション出力処理の手順を示すフローチャートである。
ストップコンディションは、接続線SCLの信号レベルをHIGHに維持したまま、接続線SDAの信号レベルをLOWからHIGHに変更させることによって出力される。ストップコンディション出力処理では、処理開始時の各接続線の信号レベルに応じて処理を実行する。
コントローラ574は、ストップコンディション出力処理を開始すると、接続線SCL及び接続線SDAの信号レベルに応じて処理を分岐させる(4601)。
コントローラ574は、接続線SCLの信号レベル及び接続線SDAの信号レベルがともにHIGHの場合には、トランジスタ578b(図11又は図12)をオンさせて、接続線SCLの信号レベルをLOWに設定する(4602)。ステップ4602の処理が終了した後、又は、接続線SCLの信号レベルがLOW、かつ、接続線SDAの信号レベルがHIGHの場合には、トランジスタ578a(図11又は図12)をオンさせて、接続線SDAの信号レベルをLOWに設定する(4603)。
コントローラ574は、ステップ4603の処理が終了した後、又は、接続線SCLの信号レベル及び接続線SDAの信号レベルがともにLOWの場合には、接続線SCLを解放するためのSCL解放監視処理を実行する(4604)。
SCL解放監視処理は、LOWレベルとなっている接続線SCLの信号レベルをHIGHに設定することによって、データの送受信が可能な状態にする処理である。SCL解放監視処理の詳細については、図47にて後述する。なお、SCL解放監視処理が正常に終了すると、接続線SCLの信号レベルはHIGHに設定されている。また、接続線SCLの信号レベルをHIGHに設定することができず、接続線SCLを解放できなかった場合には、送信中断割込みを発生させる。
コントローラ574は、ステップ4604の処理が終了した後、又は、接続線SCLの信号レベルがHIGH、かつ、接続線SDAの信号レベルがLOWの場合には、接続線SDAを解放するためのSDA解放監視処理を実行する(4605)。
SDA解放監視処理は、接続線SDAの信号レベルをLOWからHIGHに変更する処理であり、何らかの理由で接続線SDAが占有され、信号レベルがLOWのままになっている場合には、占有された接続線SDAを解放する処理を含んでいる。SDA解放監視処理の詳細については、図48にて後述する。なお、SCL解放監視処理が正常に終了すると、接続線SDAの信号レベルはLOWからHIGHに変更されており、このとき、接続線SCLの信号レベルがHIGHに維持されているため、ストップコンディションが成立する。また、接続線SDAを解放できなかった場合には、送信中段割込みを発生させる。
図47は、本発明の実施の形態のSCL解放監視処理の手順を示すフローチャートである。
コントローラ574は、SCL解放監視処理が開始されると、トランジスタ578b(図11又は図12)をオフすることで、接続線SCLを解放する(4701)。このとき、接続線SCLに接続されている他のIC(I/Oエキスパンダ615等)の全てが接続線SCLを解放していれば、接続線SCLの信号レベルがHIGHに変更される。続いて、接続線SCLの信号レベルがHIGHに変更され、接続線SCLが解放されたか否かを判定する(4702)。
コントローラ574は、接続線SCLの信号レベルがHIGHになっている場合には(4702の結果が「Y」)、処理が成功したため、呼び出し元の処理に復帰する。一方、接続線SCLの信号レベルがHIGHになっていない場合には(4702の結果が「N」)、所定の時間が経過するまで、接続線SCLの信号レベルがHIGHになったか否かを判定する(4702)。
コントローラ574は、所定の時間が経過しても接続線SCLの信号レベルがHIGHにならない場合には(4703の結果が「Y」)、接続線SCLを解放できないことを示す「78H」をステータスコードに設定し(4704)、送信中断割込みを発生させる。
図48は、本発明の実施の形態のSDA解放監視処理の手順を示すフローチャートである。
接続線SDAの信号レベルをHIGHにすることができない場合、すなわち、接続線SDAが占有された場合には、接続線SDAを介してデータを出力することができない。そこで、ドライバ576aによってトランジスタ578aに動作可能な電圧を印加しないことによってトランジスタ578aをオンにさせずに(接続線SDAを解放した状態で)、接続線SCLの信号レベルを少なくとも9回変化させる。
このような処理を行うことによって、読み出しモード(詳細は後述)となったI2CI/Oエクスパンダ615は、接続線SCLの信号レベルの変化に合わせて接続線SDAにデータを出力するが、接続線SCLの信号レベルの変化が少なくとも9回行われる途中において、マスタICからのアクノリッジ信号を確認するタイミングが発生する。このとき、接続線SDAは解放されているのでHIGHレベルとなり、読み出しモードとなったI2CI/Oエクスパンダ615は、アクノリッジ信号を受信しなかったと判断するので、データ伝送をやめて接続線SDAを解放することになる。RCVFは、この9回の接続線SCLの信号レベルの変化が実行されたか否かを示すフラグである。
このようにして、読み出しモードとなったI2CI/Oエクスパンダ615から強制的に接続線SDAを解放させるので、接続線SDAの信号レベルはHIGHに維持されるようになる。以下、SDA解放監視処理の手順を説明する。
コントローラ574は、まず、RCVFにオフを設定する(4801)。その後、トランジスタ578a(図11又は図12)をオフすることで、接続線SDAを解放する(4802)。このとき、接続線SDAに接続されている他のIC(I/Oエキスパンダ615等)の全てが接続線SDAを解放していれば、接続線SDAの信号レベルがHIGHに変更される。
コントローラ574は、接続線SDAの信号レベルがHIGHであるか否かを判定する(4803)。接続線SDAの信号レベルがHIGHであれば(4803の結果が「Y」)、接続線SDAを解放できたため、呼び出し元の処理に復帰する。
一方、コントローラ574は、接続線SDAの信号レベルがHIGHでない場合には(4803の結果が「N」)、所定の時間が経過するまで、接続線SDAの信号レベルがHIGHになったか否かを判定する(4804)。所定の時間が経過すると(4804の結果が「Y」)、接続線SDAが占有状態であると判定して、ステップ4805以降の接続線SDAを解放する処理を実行する。
コントローラ574は、まず、接続線SCLに信号を入力した回数を示す変数LPの値に0を設定する(4805)。続いて、図47にて説明したSCL解放監視処理を実行する(4806)。さらに、SCL解放監視処理によってHIGHに変更された接続線SCLの信号レベルを、トランジスタ578aをオンさせることでLOWに設定する(4807)。ステップ4806及び4807の処理によって、接続線SCLの信号レベルはLOWからHIGH、さらにHIGHからLOWに変化する。さらに、LPに1を加算することによって(4808)、接続線SCLの信号レベルの変更回数をカウントする。
コントローラ574は、LPの値が9になったか否か、すなわち、接続線SCLの信号レベルの変更回数が9回に到達したか否かを判定する(4809)。LPの値が9に到達していない場合には(4809の結果が「N」)、ステップ4806から4808までの処理を再度実行する。
コントローラ574は、LPの値が9に到達した場合には(4809の結果が「Y」)、接続線SDAの信号レベルがHIGHであるか否かを判定する(4810)。接続線SDAの信号レベルがHIGHになっていない場合には(4810の結果が「N」)、所定の時間が経過するまで、接続線SDAの信号レベルがHIGHになったか否かを判定する(4811)。所定の時間が経過しても接続線SDAの信号レベルがHIGHに設定されない場合には(4811の結果が「Y」)、接続線SDAが解放できないことを示す「70H」をステータスコードに設定し(4812)、送信中断割込みを発生させる。
一方、コントローラ574は、接続線SDAの信号レベルがHIGHに設定されている場合には(4810の結果が「Y」)、トランジスタ578aをオンさせて接続線SDAの信号レベルをLOWに設定し(4813)、SCL解放監視処理を実行する(4814)。さらに、トランジスタ578aをオフさせて接続線SDAを解放し(4815)、RCVFをオンに設定する(4816)。
なお、接続線SCLの信号レベルを9回変化させることで接続線SDAを解放させる仕組みについては、図59にて詳細を説明する。
図49は、本発明の実施の形態のスタートコンディション出力処理の手順を示すフローチャートである。
スタートコンディションは、接続線SCLの信号レベルをHIGHに維持したまま、接続線SDAの信号レベルをHIGHからLOWに変更させることによって出力される。スタートコンディション出力処理では、処理開始時の各接続線の信号レベルに応じて処理を実行する。
コントローラ574は、スタートコンディション出力処理を開始すると、接続線SCL及び接続線SDAの信号レベルに応じて処理を分岐させる(4901)。
コントローラ574は、接続線SCLの信号レベルがHIGH、かつ、接続線SDAの信号レベルがLOWの場合には、トランジスタ578b(図11又は図12)をオンさせて、接続線SCLの信号レベルをLOWに設定する(4902)。
コントローラ574は、ステップ4902の処理が終了した後、又は、接続線SCLの信号レベル及び接続線SDAの信号レベルがともにLOWの場合には、SDA解放監視処理を実行する(4903)。続いて、RCVFの値がオンであるか否かを判定する(4904)。SDA解放監視処理の実行が正常に完了すると、接続線SDAの信号レベルはHIGHに設定されている。
コントローラ574は、RCVFの値がオンでない場合(4904の結果が「N」)、又は、接続線SCLの信号レベルがLOW、かつ、接続線SDAの信号レベルがHIGHの場合には、SCL解放監視処理を実行する(4905)。RCVFの値がオンの場合には、SCL解放監視処理が実行済みであり(図48のステップ4814)、接続線SCLの信号レベルがHIGHになっているためである。
コントローラ574は、RCVFの値がオンの場合(4904の結果が「Y」)、又は、ステップ4905のSCL解放監視処理の実行後、スタートコンディションの再出力(リスタートコンディション)が完了したことを示す「10H」をSTCDに設定する(4907)。
コントローラ574は、接続線SCLの信号レベル及び接続線SDAの信号レベルがともにHIGHの場合には、スタートコンディションの出力が完了したことを示す「08H」をSTCDに設定する(4906)。
ステップ4906又はステップ4907の処理が終了した時点では、接続線SCLの信号レベル及び接続線SDAの信号レベルがともにHIGHに設定されている。そこで、コントローラ574は、トランジスタ578a(図11又は図12)をオンさせて、接続線SDAの信号レベルをLOWに設定する(4908)。このように処理することによって、接続線SCLの信号レベルをHIGHに維持した状態で、接続線SDAの信号レベルをHIGHからLOWに変更されるため、スタートコンディションが成立する。
コントローラ574は、続いて、トランジスタ578bをオンさせて、接続線SCLの信号レベルをLOWに設定する(4909)。さらに、FBFの値をオンに設定する(4910)。FBFは、スタートコンディションが成立した直後であることを示すフラグであり、例えば、スタートコンディション成立後にデータを送信する場合に、FBFがオンであれば、最初に送信されたデータであるからスレーブのアドレスと判断する。そして、アドレス受信後にFBFをオフに設定することによって、受信したデータが演出制御データであることを各スレーブが認識することができる。
図50は、本発明の実施の形態のスレーブ側のI2CI/Oエクスパンダ615へのデータ送信処理の手順を示すフローチャートである。
コントローラ574は、まず、データの送信回数を格納する変数CTRを0に初期化する(5001)。続いて、トランジスタ578b(図11又は図12)をオンさせて、接続線SCLの信号レベルをLOWに設定し(5002)、トランジスタ578a(図11又は図12)をオフさせて、接続線SDAを解放する(5003)。このとき、接続線SDAに接続されている他のIC(I/Oエキスパンダ615等)の全てが接続線SDAを解放していれば、接続線SDAの信号レベルがHIGHに変更される。
コントローラ574は、接続線SDAの信号レベルがHIGH(第2のレベル)であるか否か、すなわち、接続線SDAが解放されているか否かを判定する(5004)。接続線SDAの信号レベルがHIGHでない場合には(5004の結果が「N」)、接続線SDAの信号レベルがHIGHになるまで待機する。即ち、接続線SDAがLOWレベル(第1のレベル)であれば、占有状態であると判定して、I/Oエクスパンダ615へのデータ送信を規制することになる。
一方、コントローラ574は、接続線SDAの信号レベルがHIGHの場合には(5004の結果が「Y」)、変数CTRの値が8か否か、すなわち、データの送信回数が8回に到達したか否かを判定する(5005)。
コントローラ574は、データの送信回数が8回に到達していない場合には(5005の結果が「N」)、接続線SDAを介してスレーブにデータを出力し、CTRに1を加算する(5006)。続いて、SCL解放監視処理を実行し(5007)、ステップ5002以降の処理を実行することによってさらにデータを出力する。
一方、コントローラ574は、データの送信回数が8回に到達すると(5005の結果が「Y」)、スレーブ側のI2CI/Oエクスパンダ615から接続線SDAを介して返答信号が出力される(5008)。
コントローラ574は、出力された返答信号を接続線SDAから取り込み(5009)、SCL解放監視処理を実行する(5010)。さらに、ステップ5009の処理で取り込まれた返答信号の内容が“ACK”であるか否かを判定する(5011)。
コントローラ574は、スレーブからの返答信号の内容が“ACK”の場合には(5011の結果が「Y」)、トランジスタ578bをオンさせて、接続線SCLの信号レベルをLOWに設定し(5012)、スレーブによって接続線SDAを解放させる(5013)。さらに、現在のデータ送信モードがバッファモードであるか否かを判定する(5014)。
コントローラ574は、現在のデータ送信モードがバッファモードの場合には(5014の結果が「Y」)、最終バイトの送信が完了したか否かを判定する(5015)。最終バイトの送信が完了しておらず、さらにデータを送信する場合には(5015の結果が「N」)、FBFの値にオフを設定し、データの送信回数を示す変数CTRに0を設定する(5016)。FBFは、前述のように、スタートコンディションが成立した直後であることを示すフラグであり、最初のデータ送信後にオフに設定することによって、スレーブのアドレスの送信が終了していることを示すフラグとして扱うことができる。その後、接続線SDAの信号レベルがHIGHになるまで待機し(5004)、次のデータを送信する。
コントローラ574は、現在のデータ送信モードがバッファモードでない場合、すなわち、バイトモードの場合(5014の結果が「N」)、若しくは、最終バイトの送信が完了した場合には(5015の結果が「Y」)、FBFがオンに設定されているか否かを判定する(5017)。FBFがオンに設定されている場合には(5017の結果が「Y」)、FBFをオフに設定し、アドレスの送信が成功したことを示すステータスコード「18H」をSTCDに設定する(5018)。一方、FBFがオンに設定されていない場合には(5017の結果が「N」)、データの送信が成功したことを示すステータスコード「28H」をSTCDに設定する(5019)。
また、コントローラ574は、スレーブからの返答信号の内容が返答信号の内容が“ACK”でない場合、すなわち、データを受信できなかったことを示す“NACK”であった場合には(5011の結果が「N」)、トランジスタ578bをオンさせて、接続線SCLの信号レベルをLOWに設定する(5012)。
さらに、コントローラ574は、FBFがオンに設定されているか否かを判定する(5021)。FBFがオンに設定されている場合には(5021の結果が「Y」)、アドレスの送信が失敗したことを示すステータスコード20HをSTCDに設定する(5022)。一方、FBFがオンに設定されていない場合には(5021の結果が「N」)、データの送信が失敗したことを示すステータスコード30HをSTCDに設定する(5023)。以上の処理が終了すると、呼び出し元の処理に復帰する。
図51から図53は、本発明の実施の形態のスレーブ側のI2CI/Oエクスパンダ615における処理の手順を示すフローチャートである。
図51は、本発明の実施の形態のスレーブ側のI2CI/Oエクスパンダ615における処理の手順を示すフローチャートである。
スレーブ側のI2CI/Oエクスパンダ615は、図18にて説明したように、バスコントローラ634によって各種制御を実行する。
バスコントローラ634は、まず、リセット信号発生回路639(図18参照、以下同様)によってリセット信号が発生すると、自身(I2CI/Oエクスパンダ615)の初期化処理を実行する(5101)。このとき、ドライバ632によってトランジスタ630がオフし、接続線SDAが解放される。また、ドライバ637によって、ポート0〜15に接続されるトランジスタ638A〜638Pの全てがオフする。また、出力設定レジスタ635が、予め定められた初期状態に設定される。次いで、接続線SCL及び接続線SDAの信号レベルを取り込む。そして、接続線SCL及び接続線SDAの信号レベルがともにHIGHである状態5103になるまで待機する(5102)。
バスコントローラ634は、接続線SCL及び接続線SDAが状態5103になると(5102の結果が「Y」)、接続線SCL及び接続線SDAのいずれか一方の信号レベルが変化するまでのまま待機する(5104)。
バスコントローラ634は、状態5103から接続線SDAの信号レベルがLOWに変化した場合には(5104の結果が「SDA▽」)、変数CNを0に設定し、状態番号を1に設定し、データを一時的に格納する準備領域をクリアする(5105)。変数CNは、データを受信した回数を示すカウンタである。また、状態番号は、マスタから送信された信号に応じて設定され、例えば、スレーブに要求された処理(書き込み処理、読み出し処理など)などに対応する。なお、接続線SCL及び接続線SDAの信号レベルがともにHIGHである状態5103から接続線SDAの信号レベルがLOWに変化した場合にはスタートコンディションがマスタICから出力されたことに相当し、状態番号1は、スタートコンディションが出力されたことを示している。
このとき、接続線SCLの信号レベルがHIGH、接続線SDAの信号レベルがLOWである状態5106になっている。バスコントローラ634は、接続線SCL又は接続線SDAの信号レベルが変化するまで待機する(5107)。
バスコントローラ634は、状態5106から接続線SCLの信号レベルがLOWに変化した場合には(5107の結果が「SCL▽」)、変数CNが8になったか否か、すなわち、8回データを受信したか否かを判定する(5108)。変数CNの値が8になっていない場合には(5108の結果が「N」)、この段階で接続線SCL及び接続線SDAの信号レベルがともにLOWである状態5109になっている。その後、接続線SCL又は接続線SDAの信号レベルが変化するまで待機する(5110)。
バスコントローラ634は、接続線SDAの信号レベルがHIGHに変化した場合には(5110の結果が「SDA△」)、接続線SCLの信号レベルがLOW、接続線SDAの信号レベルがHIGHである状態5111に移行し、接続線SCL又は接続線SDAの信号レベルが変化するまで待機する(5112)。
バスコントローラ634は、接続線SDAの信号レベルがLOWに変化した場合には(5112の結果が「SDA▽」)、状態5109に移行し、接続線SCL又は接続線SDAの信号レベルが変化するまで待機する(5110)。
一方、バスコントローラ634は、接続線SCLの信号レベルがHIGHに変化した場合には(5112の結果が「SCL△」)、状態番号が1又は2であるか否か、すなわち、スタートコンディション出力後であるか、又は要求された処理が書き込み要求であるかを判定する(5115)。
バスコントローラ634は、状態番号が1又は2である場合には(5115の結果が「Y」)、変数CNの値に1加算し、受信バッファに格納されたデータを取り込む(5116)。状態番号が1又は2でない場合(5115の結果が「N」)、又はステップ5116の処理が終了すると、接続線SCL及び接続線SDAの信号レベルがともにHIGHである状態5103となり、接続線SCL又は接続線SDAの信号レベルが変化するまで待機する(5104)。
バスコントローラ634は、接続線SCL及び接続線SDAの信号レベルがHIGHである状態5103の場合に、接続線SCLの信号レベルがLOWに変化すると(5104の結果が「SCL▽」)、変数CNが8になったか否か、すなわち、8回データを受信したか否かを判定する(5117)。変数CNの値が8になっていない場合には(5117の結果が「N」)、この段階で接続線SCLの信号レベルがLOW、接続線SDAの信号レベルがHIGHである状態5111になっており、ステップ5112以降の処理を実行する。一方、変数CNの値が8になった場合には(5117の結果が「Y」)、図52に示すステップ5201以降の処理を実行する。
また、バスコントローラ634は、接続線SCLの信号レベルがHIGH、接続線SDAの信号レベルがLOWである状態5106の場合に、接続線SDAの信号レベルがHIGHに変化すると(5107の結果が「SDA△」)、状態番号が2、すなわち、要求された処理が読み出し要求であるか否かを判定する(5118)。なお、接続線SCLの信号レベルがHIGH、接続線SDAの信号レベルがLOWである状態5106から、接続線SDAの信号レベルがHIGHに変化することは、ストップコンディションが出力されたことに相当する。
バスコントローラ634は、状態番号が2の場合には(5118の結果が「Y」)。準備領域に格納されたデータを設定レジスタに格納する(5119)。状態番号が2でない場合(5118の結果が「N」)、又はステップ5119の処理が終了すると、状態番号に0をセットする(5120)。このとき、接続線SCL及び接続線SDAの信号レベルがともにHIGHである状態5103となっているため、接続線SCL又は接続線SDAの信号レベルが変化するまで待機し(5104)、処理を継続する。
図52は、本発明の実施の形態のスレーブ側のI2CI/Oエクスパンダ615におけるアドレス認識処理などの手順を示すフローチャートである。
なお、本実施形態で用いるI2CI/Oエクスパンダ615は、読み出しモードの発生が可能なものでも不可能なものでも使用可能である。そのため、何れのタイプのI2CI/Oエクスパンダ615を設けた場合を想定して、フローチャートの説明を行うことにする。
ここで、読み出しモードについて説明する。
本実施形態では、マスタICからI2CI/Oエクスパンダ615へ所定単位バイトのデータ送信を行う毎に、I2CI/Oエクスパンダ615からマスタICへ1ビットの返答信号を受信する構成により、マスタICからI2CI/Oエクスパンダ615へ演出制御データを送信するようになっている。
ところで、遊技機によっては、I2CI/Oエクスパンダ615からマスタICへ所定単位バイトのデータ送信を行うように構成できたほうが、都合がよいことも考えられる。例えば、I2CI/Oエクスパンダ615にて、遊技に係わる各種センサの検出状態を検出し、マスタICへ伝達するような仕様の遊技機を開発するような場合である。
このような遊技機で用いられるI2CI/Oエクスパンダ615は、マスタICからの要求により、I2CI/Oエクスパンダ615の内部で「読み出しモード」を発生させ、マスタICからのSCL信号の変化に対応させて、I2CI/Oエクスパンダ615からマスタICへ所定単位バイトのデータ送信を行う毎に、マスタICからI2CI/Oエクスパンダ615からへ1ビットの返答信号を送信する構成にすることが好ましい。
具体的には、マスタICからスレーブ側のI2CI/Oエクスパンダ615に送信されるアドレスデータのうち、R/W識別データ2204のビットが「1」となる場合を、読み出しモードを発生させるための要求(以下、「読み出し要求」とする)として、予め定義しておくことにする。
バスコントローラ634は、接続線SCL及び接続線SDAの信号レベルがHIGHである状態で接続線SCLの信号レベルがLOWに変化した場合に(図51の5104の結果が「SCL▽」)、データを8回受信、すなわち、データの受信が完了すると(5117の結果が「Y」)、マスタIC側で接続線SDAが解放される(5201)。
続いて、バスコントローラ634は、状態番号が1であるか否か、すなわち、スタートコンディションが出力された直後であるか否かを判定する(5202)。状態番号が1である場合には(5202の結果が「Y」)、受信したアドレスが自身(I2CI/Oエクスパンダ615)に付与されているアドレスと一致するか否かを確認する(5203、5204)。
受信したアドレスと自身のアドレスとが一致しない場合には(5204の結果が「N」)、状態番号を0に設定し(5217)、ステップ5213以降の処理を実行する。ここでは、受信したアドレスが前述の「読み出し要求」に相当し、且つ、当該処理を行うI2CI/Oエクスパンダ615が前述の読み出しモードを発生不可能なものであるときにも、ステップ5204の判定結果を「N」とする。
一方で、受信したアドレスと自身のアドレスとが一致する場合には(5204の結果が「Y」)、要求された処理が読み出し要求か否かを判定する(5205)。要求された処理が読み出し要求の場合には(5205の結果が「Y」)、図53のステップ5301以降の処理を実行する。
一方、バスコントローラ634は、要求された処理が読み出し要求でない場合、すなわち、書き込み要求の場合には(5205の結果が「N」)、対応する状態番号である2を設定する(5206)。
バスコントローラ634は、その後、ドライバ632を駆動してトランジスタ630をオンさせることにより、接続線SDAの信号レベルをLOWに設定して信号線の占有を開始する。さらに、自己占有WDT641を作動させて、自己占有WDT641によるバスの監視を開始する(5207)。自己占有WDT641は、バスコントローラ634によってバスの占有が開始されると、タイマを起動し、所定の時間が経過すると、自身(I2CI/Oエクスパンダ615)をリセットする。このように処理することによって、接続線SDAを占有し続けた場合であっても、自己占有WDT641に設定された時間が経過すると、リセットによって占有を解除することができる。このとき、自身のみをリセットすることによって、他に対する影響を最小限に抑えることができる。
このとき、接続線SCL及び接続線SDAの信号レベルはともにLOWである状態5208となっており、次いで、バスコントローラ634は、接続線SCLの信号レベルがHIGHに変化するまで待機する(5209)。
バスコントローラ634は、接続線SCLの信号レベルがHIGHに変化すると(5209の結果が「SCL△」)、接続線SCLの信号レベルがHIGH、接続線SDAの信号レベルがLOWである状態5210となり、さらに、接続線SCLの信号レベルがLOWに変化するまで待機する(5211)。
バスコントローラ634は、接続線SCLの信号レベルがLOWに変化すると(5209の結果が「SCL▽」)、ドライバ632を駆動してトランジスタ630をオフさせることにより接続線SDAを解放し、自己占有WDT641を停止させて、自己占有WDT641によるバスの監視を終了する(5212)。そして、変数CNの値を0に設定し、受信バッファをクリアする(5213)。このとき、接続線SCLの信号レベルがLOW、接続線SDAの信号レベルがHIGHとなり、図51の状態5111となるため、図51のステップ5112以降の処理を実行する。
また、バスコントローラ634は、ステップ5202の処理において状態番号が1でない場合には(5202の結果が「N」)、受信の成否を判定する(5214、5215)。受信が成功していた場合には(5215の結果が「Y」)、受信バッファのデータを準備領域に格納し(5216)、ステップ5207以降の処理を実行する。
一方、バスコントローラ634は、データの受信に失敗した場合には(5215の結果が「N」)、状態番号を0に設定し(5217)、ステップ5213以降の処理を実行する。
図53は、本発明の実施の形態のスレーブ側のI2CI/Oエクスパンダ615におけるデータの読み出し処理の手順を示すフローチャートである。
バスコントローラ634は、マスタICから要求された処理が読み出し要求であった場合には(図52の5205の結果が「N」)、状態番号を読み出し処理に対応する3に設定する(5301)。
バスコントローラ634は、その後、ドライバ632を駆動してトランジスタ630をオンさせることにより、接続線SDAの信号レベルをLOWに設定して信号線の占有を開始する。さらに、自己占有WDT641を作動させて、自己占有WDT641によるバスの監視を開始する(5302)。このとき、接続線SCL及び接続線SDAの信号レベルはともにLOWである状態5303となっており、バスコントローラ634は、接続線SCLの信号レベルがHIGHに変化するまで待機する(5304)。
バスコントローラ634は、接続線SCLの信号レベルがHIGHに変化すると(5304の結果が「SCL△」)、状態5305となり、さらに、接続線SCLの信号レベルがLOWに変化するまで待機する(5306)。
バスコントローラ634は、接続線SCLの信号レベルがLOWに変化すると(5306の結果が「SCL▽」)、ドライバ632を駆動してトランジスタ630をオフさせることにより接続線SDAを解放し、自己占有WDT641を停止させて、自己占有WDT641によるバスの監視を終了する(5307)。
さらに、バスコントローラ634は、変数CNの値を0に設定し(5308)、接続線SDAにデータを出力する(5309)。このとき、接続線SDAにLOWレベルの信号を出力する場合には、自己占有WDT641を作動させて自己占有WDT641によるバスの監視を開始する。接続線SDAにHIGHレベルの信号を出力する場合には、自己占有WDT641を作動させない(5310)。接続線SDAの信号レベルがHIGHであれば、バスが占有されないためである。
このときバスコントローラ634は、接続線SCLの信号レベルがLOWとなっており(5311)、接続線SCLの信号レベルがHIGHに変化するまで待機する(5312)。接続線SCLの信号レベルがHIGHに変化すると(5312の結果が「Y」)、変数CNの値に1加算する(5313)。そして、接続線SCLの信号レベルがHIGHである状態5314となっており、接続線SCLの信号レベルがLOWに変化するまで待機する(5315)。接続線SCLの信号レベルがLOWに変化すると(5315の結果が「SCL▽」)、自己占有WDT641によるバスの監視を行っていたときには、自己占有WDT641を停止させて自己占有WDT641によるバスの監視を終了する(5316)。
バスコントローラ634は、変数CNの値が8に到達したか否か、すなわち、接続線SDAに8回分の全データが出力されたか否かを判定する(5317)。全データの出力が完了していない場合には(5317の結果が「N」)、接続線SDAに次のデータを出力し(5318)、ステップ5310以降の処理を実行する。
一方、バスコントローラ634は、変数CNの値が8に到達し、すべてのデータの送信が完了し(5317の結果が「Y」)、ドライバ632を駆動してトランジスタ630をオフさせることにより接続線SDAを解放する(5319)。但し、このステップ5319の処理は、バスコントローラ634が接続線SDAをLOWレベルに設定していた場合にのみ必要な処理なので、バスコントローラ634が接続線SDAをHIGHレベルに設定していた場合には、実行する必要がない。
このとき、接続線SCLの信号レベルがLOW、接続線SDAの信号レベルがHIGHとなるので(5320)、次いで、接続線SCLの信号レベルがHIGHになるまで待機する(5321)。
このとき、当該I2CI/Oエクスパンダ615から、マスタIC570a(図11参照、図12のマスタIC570bでも同様)に対して、既に8ビット単位のデータが送信されており、さらに、マスタIC側が、次のデータを受信する状態になっている場合には、マスタIC570a(570b)から当該I2CI/Oエクスパンダ615へ、ACKの応答信号が送信される。
そして、バスコントローラ634は、接続線SCLの信号レベルがHIGHになると(5321の結果が「SCL△」)、接続線SDAの信号レベル(応答信号)を取り込む(5322)。そして、取り込まれた応答信号がACK(LOWレベル)であるか否か、すなわち、マスタICが次のデータを受信する状態となっているか否かを判定する(5323)。
このとき、取り込まれた応答信号がACKである場合には(5323の結果が「Y」)、接続線SCLの信号レベルがHIGH、接続線SDAの信号レベルがLOWになっており(5324)、バスコントローラ634は、接続線SCLの信号レベルがLOWに変化するまで待機する(5325)。接続線SCLの信号レベルがLOWに変化すると(5325の結果が「SCL▽」)、変数CNの値を0に設定し(5326)、次のデータを出力するために、ステップ5318以降の処理を実行する。
一方、取り込まれた応答信号がNACKである場合には(5323の結果が「N」)、バスコントローラ634は、変数CNを0、状態番号を0に設定し、さらに、受信バッファをクリアする(5327)。このとき、接続線SCL及び接続線SDAの信号レベルはともにHIGHになっており、図51の状態5103に対応し、図51のステップ5104の処理を実行する。
次に、本発明の実施の形態において、演出制御装置550のCPU551と、第1マスタIC570a及び第2マスタIC570bとの間で、データが授受されるタイミングについて説明する。
図54は、本発明の実施の形態のVDP割込み時に演出制御装置550のCPU551からの指示によって、第1マスタIC570a及び第2マスタIC570bによる処理が並列して実行される状態を示すタイミングチャートである。
本発明の実施の形態では、表示装置53に表示された画像を更新するタイミングにおいてVDP割込みが発生すると、演出制御装置550のCPU551は、各マスタICに対して演出制御データの出力を開始する。各マスタICは、CPU551から演出制御データを受信すると、他のマスタICとは独立して、受信した演出制御データを各スレーブに送信するなどの処理を実行する。そして、すべてのスレーブに対して演出制御データの出力が完了すると、各マスタICはストップコンディションを出力し、各スレーブによって制御される演出装置(装飾装置620)の演出態様を更新する。
このように、第1マスタIC570a及び第2マスタIC570bによる処理が並行して実行され、さらに、VDP割込みと各演出装置の演出態様の更新タイミングを同期させることによって、画像表示と調和のとれた演出を行うことが可能となる。
さらに、詳細に説明すると、演出制御装置550のCPU551は、VDP割込みが発生すると、スレーブ出力開始処理(図37のステップ3710、図39)を実行し、各マスタICに対してスタートコンディションを出力する。
そして、CPU551は、演出制御装置550により制御される各装置への出力データを編集する。具体的には、表示装置53で演出を行うためのVDP出力データ編集(図37のステップ3711)、スピーカ30から音声を出力するためのスピーカ関連データ編集(図37のステップ3712)、演出装置としてのLEDを制御する装飾制御装置610へ出力する演出制御データの編集(図37のステップ3713)、及びモータなどの駆動体を制御するためのデータ編集を行う。これらの編集処理の実行中に、各マスタICによってCPU551に対するマスタ割込みが発生すると、演出制御データの送信再開処理(図43)によって、編集された演出制御データが各マスタICの出力用バッファ572に書き込まれる。そして、図45に示したマスタによるデータ送信処理によって、各スレーブに演出制御データが出力される。
最後に、送信対象のスレーブの全てに演出制御データが送信されると、演出制御データの送信再開処理によって、マスタICからスレーブにストップコンディションが出力され(図43のステップS4311)、このストップコンディションによって、各スレーブが受信した演出制御データが各演出装置の演出態様に反映される。
その後、CPU551は、次のVDP割込みが発生するまで待機する。そして、次のVDP割込みが発生すると、前述のスレーブ出力開始処理(図37のステップ3710、図39)を実行して、各マスタICに対してスタートコンディションを出力し、以降、同じ処理を繰り返す。
次に、グループ化された演出装置(装飾装置620)の構成例について説明する。
図55は、本発明の実施の形態における装飾制御装置610のI2CI/Oエクスパンダ615と、装飾装置620との接続例を示す図であり、8セット分のLEDを2つのI2CI/Oエクスパンダ615によって制御する構成を示す図である。
装飾装置620は一例としてLEDによって構成されているとし、赤(R)、緑(G)、青(B)の3色のLEDを1セットとして制御することによって、さまざまな色で発光することを可能とする。例えば、赤、緑、青のすべてのLEDを発色させると、白色に発光させることができる。
そして、本発明の実施の形態では、1つのI2CI/Oエクスパンダ615は、16個のポート(PORT0〜15)に対応するLEDを制御することが可能であるため、3色のLEDのセットを5セットまで接続することが可能である。
しかし、より興趣を高める演出を行うために、16個を超えるポートにLED(演出装置)を接続する場合が考えられる。図55では、5セット以上(8セット)のLEDを、2つのI2CI/Oエクスパンダ615にまたがって接続して制御する構成について説明する。
前述のように、I2CI/Oエクスパンダ615には16のポート(PORT0〜15)が備えられているため、3色のLEDのセットを5セットまで接続することが可能である。しかしながら、8セットのLEDを1つのグループとして演出が行われる場合には、少なくとも2つのI2CI/Oエクスパンダ615を必要とする。
そこで、図55に示す構成では、一方のI2CI/Oエクスパンダ615は、各セットの赤及び緑のLEDを制御し、他方のI2CI/Oエクスパンダ615(615b)は、各セットの青のLEDを制御するように構成している。そして、これらの2つのI2CI/Oエクスパンダ615を同じグループとして制御し、図56にて後述するように、演出制御装置550から出力されたストップコンディションを受け付けてから演出制御を同時に実行することによって、複数のI2CI/Oエクスパンダ615によって制御されるLEDによる演出を違和感なく行うことが可能となるのである。
図56は、本発明の実施の形態における装飾制御装置610がデータを受信し、演出装置を制御するタイミングを示す図であり、ストップコンディションを出力した時点で受信したデータを反映させる場合について説明する図である。
本図において、まず最初に、演出制御装置550からスタートコンディションを出力し、次に、演出制御装置550から複数のI2CI/Oエクスパンダ615に演出制御データを順次出力し、最後に、演出制御装置550からストップコンディションを出力する状態を示している。説明の都合上、装飾制御装置610のI2CI/Oエクスパンダ615は5個設けられているものとし、それぞれを第1I2CI/Oエクスパンダ〜第5I2CI/Oエクスパンダとする。
ここで、図中で「data1」となっているものは、演出制御装置550から第1I2CI/Oエクスパンダに送信される演出制御データを示し、以下、「data2」〜「data5」は、演出制御装置550から、第2I2CI/Oエクスパンダ〜第5I2CI/Oエクスパンダの各々へ送信される演出制御データを示す。
また、図中で「演出装置(1)」となっているものは、第1I2CI/OエクスパンダのI/Oポートに接続されているLED等を示し、以下、「演出装置(2)」〜「演出装置(5)」は、第2I2CI/Oエクスパンダ〜第5I2CI/OエクスパンダのI/Oポートに接続されているLED等に、それぞれが対応する。
なお、演出制御装置550から、第1I2CI/Oエクスパンダ〜第5I2CI/Oエクスパンダの各々へ演出制御データを送信する際には、I2CI/Oエクスパンダの選択を切り替えるタイミングで、演出制御装置550からI2CI/Oエクスパンダにスタートコンディション(リスタートコンディションとして機能する)を出力している。ただし、最初に演出制御装置550がスタートコンディションを出力してから、第1I2CI/Oエクスパンダ〜第5I2CI/Oエクスパンダの全てに演出制御データを送信するまでの間(図中にTで示した期間)はストップコンディションを出力せず、この期間Tの経過後にストップコンディションを出力している。
本発明の実施の形態では、接続線SDAからシリアルに演出制御データが送信されるため、各I2CI/Oエクスパンダ毎に、演出制御データが到達するタイミングに時間差が生じる。各I2CI/Oエクスパンダは、演出制御装置550から演出制御データを受け入れた時点では、バスコントローラ634(図18)に内蔵された図示しないバッファに受信した演出制御データを一次的に確保しているに過ぎない。
ここで、各I2CI/Oエクスパンダが、単独で演出制御データの受信と同時にLEDの発光態様を変更してしまうような処理を行った場合を想定する。LEDの発光態様の変化に時間差を生じるため、違和感のある演出が行われる恐れがある。
例えば、赤(R)、緑(G)、青(B)のLEDが、前述の図55のように、複数のI2CI/Oエクスパンダにまたがって接続されているような場合には、遊技者に誤解をあたえるような色彩でLEDが発光する可能性がある。
具体的には、前述した信頼度報知装置15(図2)が、発光する色によって大当りとなる期待度が異なるように設定されており、信頼度報知装置15が赤く光れば大当たりが確定する仕様のとなっているものとする。そして、信頼度報知装置15を、大当たりの確定とはならない紫色で発光させる報知動作を行う場合を想定する。
このような報知動作を行う場合には、信頼度報知装置15に備えた発光体内の赤色LEDと青色LEDとを同時に点灯して発光体を紫色で発光させるような制御を行うことになるが、前述の図55のように複数のI2CI/Oエクスパンダにまたがって接続されたLEDが発光する際の時間差により、赤色LEDだけが点灯するような瞬間があると、遊技者が大当たりするものと誤解し、遊技店と遊技者の間でトラブルになる恐れがある。
そこで、本発明の実施の形態では、演出制御装置550からストップコンディションを受信した時点で、バッファ内の演出制御データを出力設定レジスタ635に上書きし、この出力設定レジスタ635の記憶内容を出力コントローラ636によってドライバ637に反映させ、当該I2CI/Oエクスパンダに接続されているLEDの発光態様を変化させる処理を行っている。
そのため、図56に示すように、ストップコンディション出力時に、各I2CI/Oエクスパンダが受信した演出制御データを各演出装置の出力態様に同時に反映させることが可能となり、違和感のない演出を行うことが可能となる。
なお、本発明の実施の形態では、I2CI/Oエクスパンダが受信した演出制御データを各演出装置の出力態様に反映させるタイミングを、更新指令信号として例示したストップコンディションの受信時としているが、他の更新指令信号を用いても構わない。ストップコンディションのように演出制御データの最後に送信されるものに限られず、演出制御データの送信の途中で送信されるものであっても、接続線SDA及びSCLの信号変化によって表現できる更新指令信号であれば、適用可能である。
図57は、本発明の実施の形態において、I2CI/Oエクスパンダ615がバスを占有した場合にバスを解放する手順を説明する図である。
マスタICからスタートコンディションが出力されると、マスタICがスレーブ側のI2CI/Oエクスパンダ615に対してデータの出力を開始し、マスタICのSTA(スタートフラグ)がONに設定される。その後、マスタICは、接続線SCLの信号レベルを順次変化させながら、B7からB0までの8ビットのデータをI2CI/Oエクスパンダ615に順次送信する。このとき、スレーブ側のI2CI/Oエクスパンダ615では、接続線SCLの信号レベルの変化に対応して、順次データを取り込む。
そして、8ビット(1バイト)分のデータ、すなわち、1回分のデータが送信されると、マスタIC側で接続線SDAが解放される(図52のステップ5201)。接続線SDAが解放されると、信号レベルがHIGHに設定されている。そして、スレーブ側から返答信号(ACK,NACK)が送信されるまで待機する。
スレーブ側のI2CI/Oエクスパンダ615は、接続線SDAの信号レベルをLOWに変化させることによって、返答信号(ACK)を出力する。その後、マスタICが接続線SCLの信号レベルをLOWからHIGHに変化させ、次いで、HIGHからLOWに変化させるまでの期間に渡って、スレーブ側のI2CI/Oエクスパンダ615は、接続線SDAを占有する(図52のステップ5207〜5212に相当)。
図57を参照すると、マスタIC側で7ビット目のデータを送信したとき、ノイズなどが原因で接続線SCLの信号レベルが変化したとスレーブ側で認識され、スレーブ側のI2CI/Oエクスパンダ615では8ビット目のデータが送信されたと認識してしまっている。そのため、スレーブは返答信号(ACK)を出力するために信号レベルをLOWに設定して、接続線SDAを占有する。本発明の実施の形態では、同時に自己占有WDT641によってスレーブによる接続線SDAの占有の監視が開始される。
このとき、マスタICは、スレーブ側のI2CI/Oエクスパンダ615によって接続線SDAが占有され、信号レベルがLOWになっているため、HIGHに変更されるまでデータ(B0)を送信できない状態になっている。さらに、スレーブ側のI2CI/Oエクスパンダ615は、接続線SCLの信号レベルが変化するまで待機しているため、互いに信号レベルが変化するまで待機している状態になり、処理全体が停止してしまう。そこで、本発明の実施の形態では、前述のように、スレーブ側のI2CI/Oエクスパンダ615が接続線SDAを占有している時間が自己占有WDT641によって監視されているため、占有が開始されてから所定の時間が経過すると、スレーブ側のI2CI/Oエクスパンダ615自身をリセットすることによって強制的に接続線SDAが解放される。
接続線SDAが解放されると、マスタICは最後のデータを送信する。このとき、スレーブ側のI2CI/Oエクスパンダ615では、正常にデータを受信できなかった旨の返答信号(NACK)を送信する。その結果、CPU551によって再送要求がマスタICに通知され、データを再送信し、処理を再開することができる。
図58は、本発明の実施の形態において、接続線SDAが何らかの原因により占有されている状態が発生し、接続線SDAの占有を検出したI2CI/Oエクスパンダ615が自己をリセットして、バスを解放することを試みる手順を説明する図である。
図57では、接続線SDAを占有しているI2CI/Oエクスパンダ615が、自己をリセットすることにより接続線SDAを解放する場合について説明したが、図58では、バス全体を監視し、他のスレーブ(接続線SDAに接続されている他のI2CI/Oエクスパンダ615等)が接続線SDAを占有したことでバスが解放されない場合に、バスを強制的に解放させる手順について説明する。
バス監視WDT640による監視は、接続線SDAの信号レベルがLOWレベルになると開始し、接続線SDAの信号レベルがHIGHレベルになると終了する。つまり、接続線SDAの信号レベルが連続してLOWとなっている時間が一定の時間となると、バス監視WDT640からリセット信号発生回路639に、リセット信号を出力させるための指令が出力される。
図57で説明したように、スレーブ側のI2CI/Oエクスパンダ615によってバスが占有されると、マスタICとスレーブ側のI2CI/Oエクスパンダ615との間の信号の入出力が停止し、接続線SDAの信号レベルが変化しなくなる(互いに信号レベルが変化するまで待機している状態になる)。そこで、所定の時間、接続線SDAの信号レベルが変化しなくなった場合には、接続線SDAに接続されている全てのI2CI/Oエクスパンダ615が、各々の判断で自己をリセットすることによって、バスを解放する。
図58を参照すると、マスタICからデータB1が出力された後、他のスレーブによってバスが占有されている。図58の場合には、自己スレーブによるバスの占有ではないため、実際に占有されているスレーブを特定することができない。そこで、接続線SDAに接続されているスレーブ(I2CI/Oエクスパンダ615)の各々が、自己をリセットすることによって、バスを解放する。(正確には、接続線SDAに接続されているI2CI/Oエクスパンダ615のうち、自己をリセットする機能を有したものだけがリセット処理を行う。)
これにより、マスタICから残りのデータが送信され、スレーブから受信失敗の旨の返答信号(NACK)が出力され、応答されることによって、データが再送され、処理が継続される。
図59は、本発明の実施の形態においてスレーブ側のI2CI/Oエクスパンダ615によってバスが占有された場合に、マスタICからの指令によってスレーブ側のI2CI/Oエクスパンダ615がバスを解放する手順を説明する図である。
ノイズなどにより接続線SCLの信号レベルの変化回数がマスタ側とスレーブ側とで相違すると、前述のように、接続線SDAがスレーブ側のI2CI/Oエクスパンダ615によって占有され、バスが解放されなくなる。
そこで、バスが占有されたままの状態で所定の時間以上経過すると、監視タイマ回路562によって、CPU551にタイムアウト割込みが発生する(図10及び図41参照)。このとき、CPU551は、ソフトリセットを実行することによってマスタICを初期化する。そして、各スレーブ(マスタICに接続されたI2CI/Oエクスパンダ615)に対し、ストップコンディションとスタートコンディションとを出力することを試みる。
このとき、スレーブ側のI2CI/Oエクスパンダ615では、まず、図46に示したストップコンディション出力処理が実行される。このとき、接続線SCL及び接続線SDAの信号レベルはともにLOWであるため、SCL解放処理が実行される(図46の4604、図47)。占有されているのは、接続線SDAであるため、SCL解放処理は正常に実行され、接続線SCLの信号レベルはHIGHに設定される。
続いて、図46のステップ4605の処理が実行され、SDA解放監視処理(図48)が実行される。SDA解放監視処理では、ステップ4803の処理で接続線SDAの信号レベルをHIGHに変更しようとするが、スレーブのI2CI/Oエクスパンダ615によって占有されているため、HIGHにすることができない。したがって、ステップ4805以降の処理が実行される。
このとき、マスタICは、接続線SCLの信号レベルを少なくとも9回変化させる。こうすることによって、スレーブ側のI2CI/Oエクスパンダ615は、接続線SCLの信号レベルの変化が少なくとも9回行われる途中において、接続線SCLの信号レベルがHIGHからLOWへの変化を検出することになり、接続線SDAを解放する(図52のステップ5208〜5211のループから抜け出すことに相当)。
次いで、マスタICは、接続線SDAが解放されたことを確認したうえで、スレーブ側のI2CI/Oエクスパンダ615にストップコンディションを出力し、次いで、スタートコンディションを出力し、再度、データ送信を行う。
図60は、本発明の実施の形態において、マスタICからの誤った指令により、スレーブ側のI2CI/Oエクスパンダ615で読み出しモードが発生してバスが占有された場合に、マスタICからの指令によってスレーブ側のI2CI/Oエクスパンダ615がバスを解放する手順を説明する図である。
なお、本実施形態では、マスタICからスレーブ側のI2CI/Oエクスパンダ615に対して、読み出しモードを発生させる指令を送信することは意図していないが、ノイズ等の影響により、I2CI/Oエクスパンダ615が勝手に判断して、読み出しモードに遷移した場合を想定して説明を行う。
I2CI/Oエクスパンダ615が読み出しモードの場合であってもバスが占有されたままの状態で所定の時間以上経過すると、書き込み要求の場合と同様に、監視タイマ回路562によって、CPU551にタイムアウト割込みが発生する(図10及び図41参照)。このとき、CPU551は、図58で説明したように、まず、ソフトリセットを実行することによってマスタICを初期化する。そして、各スレーブ(マスタICに接続されたI2CI/Oエクスパンダ615)に対し、ストップコンディションとスタートコンディションを出力することを試みる。このとき、前述同様に、SDA解放監視処理(図48)が実行される。
SDA解放監視処理が実行され、接続線SCLの信号レベルを少なくとも9回変化させると、I2CI/Oエクスパンダ615は、接続線SCLの信号レベルの変化に合わせて接続線SDAにデータを出力するが、接続線SCLの信号レベルの変化が9回行われる途中において、マスタICからの返答信号(ACK)を確認するタイミングが発生する。このとき、マスタIC側では接続線SDAを開放したままにしているため、スレーブ側のI2CI/Oエクスパンダ615は、接続線SDAの信号レベルを取り込んだ際に、HIGHレベルとなるNACKの返答信号を受信したものと認識し、以降のデータ送信を中止すべきと判断して接続線SDAを解放する。
本発明の実施の形態によれば、演出制御装置550(グループ統括制御手段)に含まれる各マスタIC(信号レベル制御手段)が装飾制御装置610(グループ単位制御手段)にデータを送信すると、装飾制御装置610から演出制御装置550に返答信号が送信されるため、データ送信が行われたか否かを確認することが可能となり、誤作動を防止できる。
また、本発明の実施の形態によれば、演出制御装置550は装飾制御装置610へ一本のデータ線(接続線SDA)を介してデータを送信し、装飾制御装置610から演出制御装置550へも同じデータ線を介して返答信号が送信されるので、基板間の配線を少なくすることができる。
さらに、本発明の実施の形態によれば、一本のデータ線が、グループ統括制御手段からグループ単位制御手段へのデータ送信と、グループ単位制御手段からグループ統括制御手段への返答信号送信で共通利用されるため、データ線がグループ単位制御手段により占有されて使用できない状態が発生する恐れがあるが、初期化手段によってグループ単位制御手段を初期化する処理が行われ、これによりデータ線の占有状態を解除することが出来るので、通信が停止してしまうことを防止できる。
さらに、本発明の実施の形態によれば、データ線を占有しているグループ単位制御手段自身が、通信停止状態の発生を判断して自分自身を初期化することにより、他のグループ単位制御手段の処理に影響を与えることなく、データ線を解放することができる。
また、本発明の実施の形態によれば、データ線の占有状態を検出すると、データ線に接続されているグループ単位制御手段の全てが、自分自身を初期化することによって、確実にデータ線を解放することができる。
本発明の実施の形態によれば、グループ統括制御手段からデータ線を解放する指令を送信することができる。さらに、返答信号の出力開始と出力終了のタイミングが、グループ統括制御手段から指令されるので、グループ単位制御手段の処理が簡素化される。そして、返答信号の出力開始後に、出力終了の指令が届かないような不具合が発生したときには、占有解除指令手段によって不具合が解除され、通信が正常な状態に復帰できる。
さらに、本発明の実施の形態によれば、1つのマスタICに接続可能な装飾制御装置610の数に上限があったとしても、演出制御装置550に複数のマスタICを備えることによって、より多くの装飾制御装置610を利用することができる。
また、本発明の実施の形態では、第1マスタIC570a(第1の信号レベル制御手段)が遊技盤10に備えられた演出装置を制御し、第2マスタIC570b(第2の信号レベル制御手段)が前面枠3に備えられた演出装置を制御するように構成されている。このように、遊技盤10に備えられた演出装置と前面枠3に備えられた演出装置とを別のグループとすることによって、前面枠3や遊技盤10を開発する際には、装飾制御装置610の上限数を開発対象の各グループに限定して考慮すればよいので、構成毎に並行して機器の開発を行うなど開発の効率化を図ることができる。
さらに、本発明の実施の形態によれば、CPU551によってマスタICが選択され、選択されたマスタICに接続される複数の装飾制御装置610(I2CI/Oエクスパンダ615)が、まとめて初期化されるので、装飾制御装置610を1つ1つ選択して初期化するような方法と比較すると、高速な初期化処理を行うことができる。
このとき、選択されたマスタICに接続される装飾制御装置610だけを初期化して、選択されない他のマスタICに接続される装飾制御装置610を初期化しないような制御が可能となる。
そのため、遊技機に備えた全ての装飾制御装置610のうち、必要最小限の範囲に属する装飾制御装置610だけを初期化することができるので、装飾制御装置610の初期化が行われて演出装置の動作が中断する頻度を、低下させることができる。
また、本発明の実施の形態によれば、すべてのマスタICをリセットしようとする場合にはハードリセットを行う構成となっているため、各マスタICを1個ずつソフトリセットする場合と比較して、高速に初期化を行うことが可能となる。
一方、一部のマスタICをリセットしようとする場合には、データバスを経由するソフトリセットによって初期化を実行するため、すべてのマスタICの初期化信号入力端子に個別に信号入力するような複雑な回路を必要とせずに、1つのポートを備えていればよい。すなわち、起動時に毎回必ず実行されるすべてのマスタICのリセットは高速で行うことが可能となり、非常時にのみ実行される一部のみのマスタICのリセットは、簡素化された回路で実行可能となるため、特に、マスタICの数が多い構成の場合に有効となる。
また、本発明の実施の形態によれば、マスタICによる処理がそれぞれ並列して動作するため、高速な処理が可能となる。さらに、画面更新のタイミングと同期させて演出装置の演出態様が更新するように制御されるため、画面表示と調和のとれた発光の演出が可能となる。
さらに、本発明の実施の形態によれば、取り込まれたデータを演出装置の出力態様として反映させるタイミングが、タイミング信号線とデータ線の信号レベル変化(ストップコンディションの受信)によって決定されるので、従来のLAT信号のような信号が不要となる。そのため、LAT信号を送信するための配線が不要になり、配線をより簡素化することが可能となる。
また、本発明の実施の形態によれば、複数の装飾制御装置610に対して、個別の演出制御データを同一の信号線を用いて送信することが可能となり、さらに、制御対象の各演出装置の演出態様を同時に更新することが可能となる。
以上説明した本発明の実施の形態では、電源投入後、バス監視WDT640及び自己占有WDT641は、無条件に動作するように構成されている。
しかしながら、バス監視WDT640及び自己占有WDT641は、接続線SDAの信号レベルに基づいて装飾制御装置610をリセットするオプション的な機能であるので、この機能を使用するか否かは、何らかの方法によって選択できることが好ましい。
特に、電源投入の直後においては、接続線SDAの信号レベルが不安定になっているため、接続線SDAの信号レベルを監視しながら装飾制御装置610をリセットする機能が電源投入の直後から動作していると、予期せぬリセット処理が発生して誤動作の要因にもなりやすい。そのため、電源投入の直後においては、バス監視WDT640及び自己占有WDT641が無効化されていることが好ましい。
そこで、ウォッチドッグタイマによる監視を必要に応じて有効化又は無効化する本発明の実施の形態の変形例について説明する。本発明の実施の形態の変形例では、遊技機の電源投入後や初期化直後に、リセット処理が完了するまでウォッチドッグタイマによる監視が行われないように制御する。以下、図61から図64を参照しながら本発明の実施の形態の変形例の詳細を示す。
図61は、本発明の実施の形態の変形例のI2CI/Oエクスパンダ615の構成を示すブロック図である。
図61に示す本発明の実施の形態の変形例のI2CI/Oエクスパンダ615は、出力設定レジスタ635への設定値によって、バス監視WDT640及び自己占有WDT641の機能が有効化又は無効化される点で図18に示した本発明の実施の形態のI2CI/Oエクスパンダ615と相違し、その他の構成は同じである。
前述のように、I2CI/Oエクスパンダ615の出力設定レジスタ635には、ワークレジスタ(デバイスレジスタ)と、コントロールレジスタ(制御レジスタ)とが割り当てられている。
本発明の実施の形態の変形例では、出力設定レジスタ635とバス監視WDT640及び自己占有WDT641とが接続されており、出力設定レジスタ635のワークレジスタに設定された値に基づいて、ウォッチドッグタイマのON/OFFを制御する。
ウォッチドッグタイマのON/OFFを制御する場合には、まず、すべての装飾制御装置610に対して共通の指令を出力可能なオールコールアドレス(ALLCALLアドレス、第2の共通アドレス、図23参照)を宛先とする。そして、ウォッチドッグタイマのON/OFFを制御するビットに所定の値を設定することによって、すべての装飾制御装置610のウォッチドッグタイマのON/OFFを一斉に設定する。
このとき、オールコールアドレスの使用可否を切り替えることによって、ウォッチドッグタイマのON/OFFをすべての装飾制御装置610に一斉に設定することを許可するか否かを指定することができる。なお、オールコールアドレスの使用可否は、モードレジスタ1のビット0に“0”又は“1”を設定する。また、ウォッチドッグタイマのON/OFFは、モードレジスタ2のビット2に“0”又は“1”を設定する。オールコールアドレス及びウォッチドッグタイマの使用可否設定の詳細については後述する。
前述のように、モードレジスタ1及びモードレジスタ2は、I2CI/Oエクスパンダ615の初期設定を行うためのモードレジスタであり、出力設定レジスタ635のワークレジスタの一部として設けられている(図24参照)。モードレジスタ1はレジスタ番号「00h」、モードレジスタ2はレジスタ番号「01h」に対応する。モードレジスタ1及びモードレジスタ2、すなわち、レジスタ番号「00h」及び「01h」の記憶領域に値が書き込まれると、書き込まれた値に基づいて、I2CI/Oエクスパンダ615の初期設定が行われる。以下、モードレジスタ1及びモードレジスタ2の詳細を、図62にて説明する。
図62は、本発明の実施の形態の変形例のモードレジスタ1及びモードレジスタ2の一例を示す図である。図62(A)は、モードレジスタ1の構成を示し、図62(B)は、モードレジスタ2の構成を示す。モードレジスタ1及びモードレジスタ2は、それぞれ8ビットである。
モードレジスタ1の各ビットは、ビット0から順に、ALLCALL、SUB3、SUB2、SUB1、SLEEP、AI0、AI1、及びAI2が含まれる。
ALLCALLは、オールコールアドレスの使用可否を示すパラメータであり、“1”が設定されている場合には使用可能、“0”が設定されている場合には使用不可となる。なお、初期値には、“1”(使用可能)が設定され、初期化(リセット)直後にはオールコールアドレスが使用可能となっている。
SUB3、SUB2及びSUB1は、サブアドレスの設定可否を示すパラメータである。SLEEPは、省電力モードか否かが設定されるパラメータである。AI0、AI1、及びAI2は、アドレスのオートインクリメントを指定するパラメータであり、詳細については図28にて説明したとおりである。
モードレジスタ1の各ビットは、ビット0から順に、ONTNE(2ビット)、WDT、OCH、INVRT、及びDMBLNKが含まれる。なお、ビット6及びビット7は未使用となっている。また、INVRTには、常に0が設定されている。
ONTNEは、I2CI/Oエクスパンダ615に接続されたすべてのLED出力を同時に有効又は無効に設定するパラメータである。
WDTは、ウォッチドッグタイマのON/OFFを制御するパラメータであり、“1”が設定されている場合には使用可能(ON)、“0”が設定されている場合には使用不可(OFF)となっている。なお、初期値には“0”が設定されているため、初期化直後にはウォッチドッグタイマが動作しないように設定されている。そのため、マスタICが必要に応じてウォッチドッグタイマを有効化する。
OCHは、図24にて説明したように、I2CI/Oエクスパンダ615の出力設定レジスタ635に格納された演出制御データを演出装置に実際に反映させるタイミングを規定するパラメータである。具体的には、ストップコンディション又はACKを受信した時点で演出制御データを出力するように設定することができる。DMBLNKは、I2CI/Oエクスパンダ615に接続されたLEDの点滅及び明るさを調整するパラメータである。
図63は、本発明の実施の形態の変形例の初期化指示データの送信再開処理の手順を示すフローチャートである。図42に示した本発明の実施の形態の手順と同一の処理については、同じ符号を付与し、相違する処理について説明する。
本発明の実施の形態では、初期化段階番号は0から4までの値が設定されたが、本発明の実施の形態の変形例では、初期化段階番号が0から10までの値が設定される。このため、本発明の実施の形態の変形例では、図64に示すような初期化段階番号と出力バッファ設定値との組合せをあらかじめ定義しておき、初期化段階番号に基づいて出力バッファ設定値を出力用バッファ572に設定する。
具体的に説明すると、CPU551は、まず、初期化段階番号とステータスコードとの整合を判断し(6301)、初期化段階番号とステータスコードとが整合しているか否かを判定する(6302)。初期化段階番号とステータスコードとが整合していない場合には(6302の結果が「N」)、ステップ4203以降の処理を実行する。ステップ4203以降の処理については、図42にて説明した処理と同様である。
なお、初期化段階番号とステータスコードとの整合の判断は、本発明の実施の形態において図44に示した送信処理継続判定表4400と同様であるが、本発明の実施の形態の変形例では、初期化段階番号が1(0)から10となっているため、対応関係が相違する。
以下、本発明の実施の形態と本発明の実施の形態の変形例の初期化段階番号を対応させながら具体的に説明する。
本発明の実施の形態の変形例で初期化段階番号が1の場合は、初期化処理の実行開始直後であることを示しており、本発明の実施の形態と同じ判断基準で整合性を判断する。
本発明の実施の形態の変形例で初期化段階番号が2、5、8の場合は、本発明の実施の形態で初期化段階番号が2の場合に対応する。初期化段階番号が2、5、8の場合は、直前の処理でアドレスが送信されているため(図64参照)、アドレスの送信が成功したことを示す場合に整合していると判断される。
また、本発明の実施の形態の変形例で初期化段階番号が3、4、6、7、9、10の場合は、本発明の実施の形態で初期化段階番号が3、4の場合に対応する。初期化段階番号が3、4、6、7、9、10の場合は、直前の処理でデータが送信されているため(図64参照)、データの送信が成功したことを示す場合に整合していると判断される。
CPU551は、初期化段階番号とステータスコードとが整合している場合には(6302の結果が「Y」)、初期化段階番号が10であるか否かを判定する(6303)。初期化段階番号が10の場合には(6303の結果が「Y」)、初期化処理が終了したことを示しているため、ステップ4213以降の終了処理を実行する。ステップ4213以降の処理については、本発明の実施の形態において初期化段階番号が4の場合に対応し、図42にて説明した処理と同様である。なお、本発明の実施の形態の変形例における初期化段階番号が10の場合は、本発明の実施の形態の初期化段階番号が4の場合と同様に、初期化処理の最終段階を示している。
また、CPU551は、初期化段階番号が10でない場合、すなわち、初期化段階番号が1から9の場合には(6303の結果が「Y」)、初期化段階番号に対応する値を出力用バッファ572に設定する(6304)。初期化段階番号と当該初期化段階番号に対応する値は、あらかじめ定義されており、図64にて一例を示す。続いて、CPU551は、ステップ4208以降の処理を実行する。ステップ4208以降の処理については、図42にて説明した処理と同様である。
図64は、本発明の実施の形態の変形例の初期化段階番号と出力用バッファ572に設定される出力バッファ設定値との対応を示す図である。
初期化段階番号が1の場合には、出力バッファ設定値として“D6h”が出力用バッファ572に設定される。“D6h”は、リセット用アドレスを示している。なお、リセット用アドレスも、すべての装飾制御装置610に対して共通の指令を出力可能な共通アドレス(オールコールアドレスとは別個の第1の共通アドレス)である。
さらに、初期化段階番号が2の場合には“A5h”、初期化段階番号が3の場合には“5Ah”が出力用バッファ572に設定される。“A5h”はリセット指令(初期化指示データ)の前半値、“5Ah”はリセット指定(初期化指示データ)の後半値を示している。なお、初期化段階番号が1から3の場合は、前述した本発明の実施の形態の場合と同じである。
初期化段階番号が4の場合には、“D0h”が出力用バッファ572に設定される。“D0h”は、オールコールアドレスを示している。すなわち、次(初期化段階番号が5の場合)に出力用バッファ572に設定される値はすべての装飾制御装置610(I2CI/Oエクスパンダ615)に送信される。なお、初期化段階番号1から3の場合に送信された指令に基づく処理(第1の初期化手段)によって各装飾制御装置610(I2CI/Oエクスパンダ615)がリセットされている。リセット直後には、モードレジスタ1のビット0の値が1に設定されているため、I2CI/Oエクスパンダ615のオールコールアドレスは有効となっている。
初期化段階番号が5の場合には、“01h”が出力用バッファ572に設定される。“01h”は、コントロールレジスタに、オートインクリメントを禁止し、モードレジスタ2を指定することを示している。
初期化段階番号が6の場合には、初期化手段有効化指令に相当する“07h”が出力用バッファ572に設定される。“07h”は、モードレジスタ2の設定値であり、OE端子を未使用、ウォッチドッグタイマを使用、ストップコンディションで出力を反映させることを示している。具体的には、OUTNEに“11”、WDTに“1”、OCHに“0”とすることで、“00000111”(=“07h”)に設定される。このように初期化段階番号が6の場合の処理は、バスの状態が監視することでバスが占有されたことを検出し、初期化するための初期化手段(第2の初期化手段)であるウォッチドッグタイマの有効化手段として機能している。
初期化段階番号が7の場合には、出力用バッファ572にオールコールアドレスに対応する“D0h”が再び設定される。
初期化段階番号が8の場合には、“00h”が出力用バッファ572に設定される。“00h”は、コントロールレジスタに、オートインクリメントを禁止し、モードレジスタ1を指定することを示している。
初期化段階番号が9の場合には、共通アドレス無効化指令に相当する“00h”が出力用バッファ572に設定される。“00h”は、モードレジスタ1にオールコールアドレスを無効にするように設定している。初期化段階番号が9の場合に実行される処理は、オールコールアドレスを無効化する共通アドレス無効化手段として機能する。
以上のように本発明の実施の形態の変形例では、初期化段階番号が6になると、ウォッチドッグタイマによる監視が有効になるように構成されている。その後、ノイズ等によって、ウォッチドッグタイマが無効化されないように、初期化段階番号が9になると、オールコールアドレスの使用を禁止するように設定している。
さらに、オールコールアドレスの使用が禁止された後に、ウォッチドッグタイマが有効な状態が確実に継続されるように、各装飾制御装置610に対し、ウォッチドッグタイマを定期的に有効化するためのコマンド(前述の初期化手段有効化指令に相当するコマンド)を個別に出力するようにしてもよい。このようにすることによって、ノイズなどの影響で一部の装飾制御装置610のウォッチドッグタイマが無効化されても影響を最小限に抑え、遊技機を安定して稼動させることが可能となる。
また、本発明の実施の形態の変形例では、遊技機の電源投入時にリセット処理(第1の初期化手段によるリセット処理)を実行し、各装飾制御装置610(I2CI/Oエクスパンダ615)を初期化している。リセット処理の途中でデータ送信に失敗した場合には、データを再送信せずに、リセット処理から再実行するようにしてもよい。このように構成することによって、確実に初期化処理を実行することができる。
なお、演出制御装置550からの初期化手段有効化指令により有効化するか否かを設定できるのは、バス監視WDT640及び自己占有WDT641によるリセット処理(第2の初期化手段によるリセット処理)のみである。
これに対して、I2CI/Oエクスパンダ615への電源投入検出(図61のVccの電圧上昇により検出される)や、I2CI/Oエクスパンダ615への外部リセット信号検出(図61のRESET信号入力により検出される)や、I2CI/Oエクスパンダ615への初期化指示データ送信によって実行されるリセット処理(第1の初期化手段によるリセット処理)は、演出制御装置550からの指令により有効化するか否かを設定することはできない。
また、演出制御装置550からの共通アドレス無効化指令により無効化できる共通アドレスは、オールコールアドレス(第2の共通アドレス)のみである。
これに対して、リセット用アドレス(第1の共通アドレス)は常時有効であり、演出制御装置550からの指令によって無効化することはできない。
以上のように、本発明の実施の形態の変形例によれば、任意のタイミングでウォッチドッグタイマを有効化又は無効化することができる。したがって、必要に応じてウォッチドッグタイマを動作させたり、停止させたりすることが可能となるため、装飾制御装置610(I2CI/Oエクスパンダ615)の汎用性を向上させることができる。
また、本発明の実施の形態の変形例によれば、オールコールアドレスを利用して、すべての装飾制御装置610(I2CI/Oエクスパンダ615)に一斉に設定パラメータを送信しているため、ウォッチドッグタイマの有効化及び無効化を高速に切り替えることが可能となる。
なお、今回開示した実施の形態は、すべての点で例示であって制限的なものではない。また、本発明の範囲は前述した発明の説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及び内容の範囲でのすべての変更が含まれることが意図される。