以下、実施例に基づいて本発明を詳細に説明する。図1は、本実施例のパチンコ機GMを示す斜視図である。このパチンコ機GMは、島構造体に着脱可能に装着される矩形枠状の木製外枠1と、外枠1に固着されたヒンジ2を介して開閉可能に枢着される前枠3とで構成されている。この前枠3には、遊技盤5が、裏側からではなく、表側から着脱自在に装着され、その前側には、ガラス扉6と前面板7とが夫々開閉自在に枢着されている。
ガラス扉6の外周には、LEDランプなどによる電飾ランプが、略C字状に配置されている。一方、ガラス扉6の上部左右位置と下側には、全3個のスピーカが配置されている。上部に配置された2個のスピーカは、各々、左右チャンネルR,Lの音声を出力し、下側のスピーカは低音を出力するよう構成されている。
前面板7には、発射用の遊技球を貯留する上皿8が装着され、前枠3の下部には、上皿8から溢れ出し又は抜き取った遊技球を貯留する下皿9と、発射ハンドル10とが設けられている。発射ハンドル10は発射モータと連動しており、発射ハンドル10の回動角度に応じて動作する打撃槌によって遊技球が発射される。
上皿8の外周面には、チャンスボタン11が設けられている。このチャンスボタン11は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル10から右手を離すことなくチャンスボタン11を操作できる。このチャンスボタン11は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
また、チャンスボタン11の下方には、ロータリースイッチ型の音量スイッチVLSWが配置されており、遊技者が音量スイッチVLSWを操作することで、無音レベル(=0)から最高レベル(=7)まで、スピーカ音量を8段階に調整できるようになっている。なお、スピーカの音量は、係員だけが操作可能な設定スイッチ(不図示)によって初期設定されており、遊技者が音量スイッチVLSWを操作しない限り、初期設定音量が維持される。また、異常事態が発生したことを報知する異常報知音は、係員による初期設定音量や、遊技者の設定音量に拘らず最高音量で放音される。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5の表面には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その略中央には、中央開口HOが設けられている。そして、中央開口HOの下方には、不図示の可動演出体が隠蔽状態で収納されており、可動予告演出時には、その可動演出体が上昇して露出状態となることで、所定の信頼度の予告演出を実現している。ここで、予告演出とは、遊技者に有利な大当り状態が招来することを不確定に報知する演出であり、予告演出の信頼度とは、大当り状態が招来する確率を意味している。
一方、遊技盤5の最上部には、7セグメントLEDを4個整列して構成された遊技実績表示部RCDが設けられている。遊技実績は、ガイドレール13から遊技領域に打ち込まれた遊技球の投入個数Insertと、遊技者に払出された遊技球の賞球個数Paidとの賞球比率(Paid/Insert)を表している。
特に限定されないが、左側2個のセグメントLEDは、例えば、過去60000個の投入個数Insertに対する賞球比率を表示している。一方、右側2個のセグメントLEDは、例えば、直近1000個の投入個数Insertに対する賞球比率を表示している。なお、表示される賞球比率は、何れも、順次増加する投入個数Insertに対する移動平均値であり、遊技実績表示部RCDに、所定の記号や文字が表示されることで、直近又は過去の統計的な遊技実績が特定される。
図示の通り、中央開口HOには、大型の液晶カラーディスプレイ(LCD)で構成されたメイン表示装置DS1が配置され、メイン表示装置DS1の右側には、小型の液晶カラーディスプレイで構成された可動式のサブ表示装置DS2が配置されている。メイン表示装置DS1は、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この表示装置DS1は、中央部に演出図柄表示部Da~Dcを有している。そして、演出図柄表示部Da~Dcでは、大当り状態の招来を期待させるリーチ演出が実行されることがあり、演出図柄表示部Da~Dc及びその周りでは、適宜な予告演出などが実行される。
また、遊技球が落下移動する遊技領域には、第1図柄始動口15a、第2図柄始動口15b、第1大入賞口16a、第2大入賞口16b、普通入賞口17、及び、ゲート18が配設されている。これらの入賞口15~18は、それぞれ内部に検出スイッチを有しており、遊技球の通過や入賞を検出できるようになっている。ここで、第1図柄始動口15aや第2図柄始動口15bに遊技球が入賞すると、大当り抽選用の乱数値が取得され、この乱数値に基づいて、大当り抽選処理が実行される。また、遊技球がゲート18を通過すると、普通抽選用の乱数値が取得され、この乱数値に基づいて普通抽選処理が実行される。
第1図柄始動口15aや第2図柄始動口15bの下方左右には、二つの特別図柄表示部Sa_DP,Sb_DPが設けられている。特別図柄表示部Sa_DP,Sb_DPは、各始動口15a,15bの入賞に対応して、演出図柄表示部Da~Dcと共に変動動作を開始し、演出表示部Da~Dcの変動停止時に、大当り抽選の抽選結果を同期的に報知して停止する。この特別図柄表示部Sa_DP,Sb_DPは、各々、LEDランプによるドットマトリクスで構成されており(以下、LEDドットマトリクスと称す)、各LEDランプは、ダイナミック(Dynamic )点灯方式で駆動されている。
メイン表示装置DS1の斜め上方には、ダイナミック点灯方式で駆動されるLEDドットマトリクスで構成された普通図柄表示部H_DPが設けられている。普通図柄表示部H_DPは、遊技球がゲート18を通過すると変動動作を開始し、所定時間後に普通抽選処理の結果に基づいた停止図柄を表示して停止する。
第1図柄始動口15aの上部には、導入口INから進入した遊技球がシーソー状又はルーレット状に移動した後に、第1図柄始動口15に入賞可能に構成された演出ステージ14が配置されている。この演出ステージ14の一部は、演出モータMTによって必要時に回転するよう構成されている。
第2図柄始動口15bは、左右一対の開閉爪を備えた電動式チューリップで開閉されるように構成され、普通図柄表示部19の変動後の停止図柄が当り図柄を表示した場合には、所定時間だけ、若しくは、所定個数の遊技球を検出するまで、開閉爪が開放されるようになっている。
第1大入賞口16aは、前後方向に進退するスライド盤を有して構成され、第2大入賞口16bは、下端が軸支されて前方に開放する開閉板を有して構成されている。第1大入賞口16aや第2大入賞口16bの動作は、特に限定されないが、この実施例では、第1大入賞口16aは、第1図柄始動口15aに対応し、第2大入賞口16bは、第1図柄始動口15bに対応するよう構成されている。
すなわち、第1図柄始動口15aに遊技球が入賞すると、演出図柄表示部Da~Dcや特別図柄表示部Sa_DPの変動動作が開始され、その後、所定の大当り図柄が演出図柄表示部Da~Dcに整列すると、第1大当りたる特別遊技が開始され、第1大入賞口16aのスライド盤が、前方に開放されて遊技球の入賞が容易化される。
一方、第2図柄始動口15bへの遊技球の入賞によって開始された変動動作の結果、所定の大当り図柄が演出図柄表示部Da~Dcに整列すると、第2大当りたる特別遊技が開始され、第2大入賞口16bの開閉板が開放されて遊技球の入賞が容易化される。特別遊技(大当り状態)の遊技価値は、整列する大当り図柄などに対応して種々相違するが、何れの遊技価値が付与されるかは、遊技球の入賞タイミングに応じた抽選結果に基づいて予め決定される。
典型的な大当り状態では、大入賞口16の開閉板が開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板が閉じる。このような動作は、最大で例えば15回まで継続され、遊技者に有利な状態に制御される。なお、演出図柄表示部Da~Dcの変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、特別遊技の終了後のゲームが高確率状態(確変状態)となるという特典が付与される。
続いて、上記した各動作を実現するパチンコ機GMの全体回路構成を説明する。図3に示す通り、このパチンコ機GMは、AC24Vを受けて各種の直流電圧や、電源異常信号ABN1、ABN2を出力する電源基板20と、遊技制御動作を中心統括的に担う主制御基板21と、音声演出用の回路素子SNDを搭載した演出インタフェイス基板22と、主制御基板21から受けた制御コマンドCMDに基づいてランプ演出、モータ演出、音声演出、及び画像演出を統一的に実行する演出制御基板23と、演出制御基板23と表示装置DS1,DS2の間に位置する液晶インタフェイス基板24と、主制御基板21から受けた賞球コマンドSYOに基づいて払出モータMを制御して必要個数の遊技球を払い出す払出制御基板25と、遊技者の操作に応答して遊技球を発射させる発射制御基板26と、を中心に構成されている。
ここで、演出インタフェイス基板22には、ランプ駆動基板30やモータランプ駆動基板31が接続されると共に、枠中継基板35,36を経由して、ランプ駆動基板37にも接続されている。各駆動基板30,31,37は、演出制御基板23の複合チップ50から受ける駆動データに基づいてランプ演出やモータ演出を実行している。本実施例の場合、演出インタフェイス基板22と、演出制御基板23と、液晶インタフェイス基板24とは、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されている。そして、そのため、各電子回路の回路構成を複雑高度化しても基板全体の収納空間を最小化できると共に、接続ラインを最短化することで耐ノイズ性を高めることができる。
図示の通り、主制御基板21が出力する賞球コマンドSYOは、主基板中継基板33を経由して、払出制御基板25に伝送される。一方、主制御基板21が出力する制御コマンドCMDは、演出インタフェイス基板22を経由して、ストローブ信号STBと共に、演出制御基板23に伝送される。制御コマンドCMDは、その一単位が16bit長であり、8bit長毎に2回に分けてパラレル送信される。一方、賞球コマンドSYOは、非同期式のシリアル信号であり、スタートビットと、ストップビットとに囲まれた8ビット(全10ビット)を一単位として、調歩同期式でシリアル伝送される。なお、ストップビットの前に、パリティビットを付加した全11ビットを一単位として、シリアル伝送しても良い。
主制御基板21と払出制御基板25には、ワンチップマイコンMCを含むコンピュータ回路が搭載されている。また、演出制御基板23には、VDP回路(Video Display Processor )52や内蔵CPU回路51などのコンピュータ回路が内蔵された複合チップ50が搭載されている。そこで、これらの制御基板21、25、23と、演出インタフェイス基板22や液晶インタフェイス基板24に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部21、演出制御部23、及び払出制御部25と言うことがある。なお、主制御部21に対して、演出制御部23と、払出制御部25がサブ制御部となる。
ところで、このパチンコ機GMは、図3の破線で囲む枠側部材GM1と、遊技盤5の背面に固定された盤側部材GM2とに大別されている。枠側部材GM1には、ガラス扉6や前面板7が枢着された前枠3と、その外側の木製外枠1とが含まれており、機種の変更に拘わらず、長期間にわたって遊技ホールに固定的に設置される。一方、盤側部材GM2は、機種変更に対応して交換され、新たな盤側部材GM2が、元の盤側部材の代わりに枠側部材GM1に取り付けられる。なお、枠側部材1を除く全てが、盤側部材GM2である。
図3の破線枠に示す通り、枠側部材GM1には、電源基板20と、払出制御基板25と、発射制御基板26と、枠中継基板36と、主制御基板21から受けた所定の遊技情報をホールコンピュータHCに出力する情報端子基板38とが含まれており、これらの回路基板が、前枠3の適所に各々固定されている。一方、遊技盤5の背面には、主制御基板21、演出制御基板23が、表示装置DS1,DS2やその他の回路基板と共に固定されている。そして、枠側部材GM1と盤側部材GM2とは、一箇所に集中配置された接続コネクタC1~C4によって電気的に接続されている。
電源基板20は、接続コネクタC2を通して、主基板中継基板33に接続され、接続コネクタC3を通して、電源中継基板34に接続されている。そして、電源基板20には、交流電源の投入と遮断とを監視する電源監視部MNTが設けられている。電源監視部MNTは、交流電源の遮断を検知すると、電源異常信号ABN1,ABN2を、直ちにLレベルに遷移させる。なお、電源異常信号ABN1,ABN2は、電源投入後に速やかにHレベルとなる。
主基板中継基板33は、電源基板20から出力される電源異常信号ABN1、バックアップ電源BAK、及びDC5V,DC12V,DC32Vを、そのまま主制御部21に出力している。また、電源中継基板34は、電源基板20から受けた交流及び直流の電源電圧を、そのまま演出インタフェイス基板22に出力している。
図示の通り、演出インタフェイス基板22には、音声プロセッサ27や音声ROM28やデジタルアンプ29を含んだ音声回路SNDが搭載され、演出制御基板23には、VDP回路52やCPU回路51などのコンピュータ回路が内蔵された複合チップ50が搭載されている。複合チップ50(VDP回路52+CPU回路51)は、CPU回路51の制御プログラムなどを記憶するPROM53や、作業領域として機能するDRAM54や、圧縮状態の画像データを記憶するCGROM55などと協働して、画像演出用の画像データを生成して表示装置DS1,DS2を駆動している。
また、演出インタフェイス基板22には、電源投入時に、電源電圧の上昇を検知してリセット信号SYS(CPUリセット信号)を生成するリセット回路RST3が搭載されている。このCPUリセット信号SYSは、演出インタフェイス基板22の音声回路SNDや、演出制御基板23の複合チップ50に伝送されることで、各電子素子を同期的に電源リセットしている。なお、CPU回路51のプログラム処理が無限ループ状態となると、CPU回路51に内蔵されたウォッチドッグタイマ58が起動して、音声回路SNDと複合チップ50が同期して異常リセットされる。
次に、枠側部材GM1たる払出制御基板25は、中継基板を介することなく、電源基板20に直結されて、主制御部21が受けると同様の電源異常信号ABN2や、バックアップ電源BAKを、その他の電源電圧と共に受けている。また、主制御部21と払出制御部25には、各々、リセット回路RST1,RST2が搭載されており、電源投入時に電源リセット信号が生成され、各コンピュータ回路が電源リセットされるよう構成されている。
このように、本実施例では、主制御部21と、払出制御部25と、演出インタフェイス基板22に、各々、リセット回路RST1~RST3を配置しており、CPUリセット信号SYSが回路基板間で伝送されることがない。すなわち、CPUリセット信号SYSを伝送する配線ケーブルが存在しないので、配線ケーブルに重畳するノイズによって、コンピュータ回路が異常リセットされるおそれが解消される。
但し、主制御部21や払出制御部25に設けられたリセット回路RST1,RST2は、各々ウォッチドッグタイマを内蔵しており、各制御部21,25のCPUから、定時的なクリアパルスを受けない場合には、各CPUは強制的にリセットされる。
主制御部21及び払出制御部25は、電源基板20から電源異常信号ABN1,ABN2を受けることによって、停電や営業終了に先立って、必要な終了処理を開始するようになっている。バックアップ電源BAKは、営業終了や停電により交流電源24Vが遮断された後も、主制御部21と払出制御部25のワンチップマイコンの内蔵RAMのデータを保持するDC5Vの直流電源である。したがって、主制御部21と払出制御部25は、電源遮断前の遊技動作を電源投入後に再開できることになる(電源バックアップ機能)。このパチンコ機では少なくとも数日は、各ワンチップマイコンのRAMの記憶内容が保持されるよう設計されている。
図示の通り、主制御部21には、遊技実績表示部RCDが接続されており、ワンチップマイコンMCによって直接的に点灯駆動されている。また、主制御部21には、電源バックアップ機能に基づいて保存されたRAMの記憶内容を初期化する初期化スイッチSWと、大当り抽選などの当選確率を複数段階の何れかに設定する設定スイッチSETとが配置されており、何れも電源投入時に係員によって操作される。
初期化スイッチSWがON操作されると、そのことを示すRAMクリア信号CLRが出力されることで、主制御部21と払出制御部25のワンチップマイコンの内蔵RAMの全領域が初期設定される。また、設定スイッチSETの操作回数などに基づいて、大当り抽選などの当選確率が決定される。
図3に示す通り、主制御部21は、払出制御部25から、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号CONや、動作開始信号BGNを受信している。ステイタス信号CONには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。動作開始信号BGNは、電源投入後、払出制御部25の初期動作が完了したことを主制御部21に通知する信号である。
また、主制御部21は、遊技盤中継基板32を経由して、遊技盤5の各遊技部品や、特別図柄表示部Sa_DP,Sb_DPや、普通図柄表示部H_DPに接続されている。そして、遊技盤上の各入賞口16~18に内蔵された検出スイッチや、適所に配置された防犯センサや、投入個数Insertを算出するため、遊技球の通過を監視する監視スイッチなどのスイッチ信号を受けている。
また、主制御部21は、特別図柄表示部S_DPや、普通図柄表示部H_DPを点灯駆動すると共に、必要時には、演出ステージ14を回転駆動し、また、電動式チューリップなどのソレノイド類を駆動している。ソレノイド類は、主制御部21から配電された電源電圧VB(12V)で動作するよう構成されている。また、図柄始動口15への入賞状態などを示す各スイッチ信号は、電源電圧VB(12V)と電源電圧Vcc(5V)とで動作するインタフェイスICで、TTLレベル又はCMOSレベルのスイッチ信号に変換された上で、主制御部21に伝送される。
ところで、主制御部21や払出制御部25に搭載されたワンチップマイコンMCは、処理単位が基本的に1バイト長であるZ80相当のCPUと、調歩式のシリアル送受信動作を実行する第1シリアルポートUART(Universal Asynchronous Receiver / Transmitter )と、同期式のシリアル送受信動作を実現する第2シリアルポートSPI(Serial Peripheral Interface )と、パラレルポートPOと、を内蔵して構成されている。そして、遊技球の払出個数を特定する賞球コマンドSYOは、主制御部21の第1シリアルポートUART(出力ポート)から、払出制御部25の第1シリアルポート(入力ポート)にシリアル伝送される。
図2(b)は、賞球コマンドSYOを主制御部21から払出制御部25に送信するシリアル送信経路を図示したものである。図示の通り、主制御部21のシリアルポートUARTの出力端子TXは、フォトカプラPH1のフォトダイオードD1と電流制限抵抗R2を経由して電源ラインVccに接続されている。
また、フォトカプラPH1のフォトトランジスタTR1は、フォトカプラPH2のフォトダイオードD2を経由してグランドに接続される一方、電流制限抵抗R3を経由して伝送ラインLINEに接続されている。また、フォトカプラPH2のフォトトランジスタTR2のコレクタ端子は、主制御部21のシリアルポートUARTの入力端子RXに接続されている。
この構成に対応して、払出制御部25のシリアルポートの入力端子RXは、フォトカプラPH3のフォトトランジスタTR3を経由してグランドに接続される一方、電流制限抵抗R4を経由して電源ラインVccに接続されている。また、主制御部との伝送ラインLINEは、フォトカプラPH3のフォトダイオードD3を経由して電源ラインに接続されている。
賞球コマンドSYOのシリアル送信経路は、上記の通りに構成されており、主制御部21のワンチップマイコンMCのCPUが、シリアルポートUARTを制御して、伝送ラインLINEにシリアル出力した賞球コマンドSYOのH/Lレベルに基づき、例えば、賞球コマンドSYOがHレベルであれば、伝送ラインLINEには、払出制御部25の電源Vcc→フォトカプラPH3のダイオードD3→抵抗R3→フォトカプラPH1のトランジスタTR1→フォトカプラPH2のダイオードD2の経路で、所定レベルの発光電流が流れることになる。
一方、賞球コマンドSYOがLレベルであれば、上記の電流経路に発光電流が流れない。上記の電流経路には、フォトカプラPH2のダイオードD2が含まれているので、ダイオードD2の発光通電に対応して、トランジスタTR2がON動作することになる。したがって、シリアルポートUARTの入力端子RXに供給されるシリアル受信データに基づいて、CPUは、シリアル送信データ(賞球コマンドSYOの1ビット)との整合判定をすることができる。
そして、例えば、連続して整合判定に失敗する場合には、伝送ラインLINEの断線などの異常と判定することができるので、適宜な異常報知動作を実行することになる。このように、この実施例の構成によれば、簡易な構成でありながら、伝送ラインLINEの異常を自動的に検出することができる。
また、主制御部21のシリアルポートUARTのシリアル受信データに基づいて、CPUがパリティチェックをすることで、伝送ミスを検出することもできる。なお、主制御部21のシリアルポートUARTのシリアル受信データは、払出制御部25のシリアルポートUARTの入力端子RXに供給されるシリアル受信データと同一論理レベルであり、払出制御部26のCPUは、パリティチェックに基づいて、伝送ミスを検出して、その賞球コマンドSYOを廃棄することになる。
したがって、同じ賞球コマンドSYOを再送信することも可能となる。但し、不正遊技の恐れがあるので、伝送ミスの頻度が高い場合には異常報知をするべきである。
以上、第1シリアルポートUARTについて説明したので、続いて、第2シリアルポートSPIについて説明する。第2シリアルポートSPIは、先ず、そのシリアル入力処理として、
(1)払出制御基板25から主制御基板21にパラレル伝送されたパラレル信号について、その一部をCPUにシリアル伝送すること、
(2)各種の防犯センサからのスイッチ信号をCPUにシリアル伝送すること、
(3)遊技球の投入個数Insertをリアルタイムに算出するべく、遊技球の監視スイッチからのスイッチ信号をCPUにシリアル伝送すること、
(4)普通入賞口17やゲート18からのスイッチ信号をCPUにシリアル伝送すること、が含まれている。
ここで、CPUにシリアル伝送される払出制御基板25からのパラレル信号には、動作開始信号BGNと、賞球計数信号と、ガラス扉6や外枠1に関する扉枠開放信号と、球詰り検出信号、補給切れ検出信号、計数エラー信号などのステイタス信号CONと、が含まれており、CPUは、これらの情報をリアルタイムに取得して必要な対応処理を実行している。
CPUが実行する対応処理には、(a) 各種のエラー情報に基づいてエラー報知を開始すること、(b) 賞球計数信号に基づいて、必要時には、賞球比率を計算することが含まれている。
次に、第2シリアルポートSPIが実行するシリアル出力処理には、
(1)LEDランプ駆動データを、遊技実績表示部RCDの駆動回路にシリアル送信すること、
(2)LEDランプ駆動データを、特別図柄表示部Sa_DP,Sb_DPの駆動回路にシリアル送信すること、
(3)LEDランプ駆動データを、普通図柄表示部H_DPの駆動回路にシリアル送信すること、
(4)演出ステージ14の一部を回転させるべくモータ駆動データを、演出モータMTのドライバICにシリアル送信すること、
(5)制御コマンドCMDを演出制御部23に対してパラレル出力するべく、SP(serial to parallel)変換回路CV3に、制御コマンドCMDの1バイトデータをシリアル送信すること、
(6)SP変換回路CV3に、ソレノイド信号や、ストローブ信号STBをシリアル送信すること、
(7)情報端子基板38に、必要な遊技情報INFをシリアル送信すること、が含まれている。
ここで、ストローブ信号STBは、制御コマンドCMDの1バイトデータを、複合チップ50に取得させるための割込み信号である。また、遊技情報INFには、(a)前回の賞球信号の送信後、賞球数が10個に達したことを示す賞球信号、(b)ガラス扉6などが開放されたことを示すドア開放信号DOR、(c)図柄始動口15a,15bへの入賞に伴う一連の変動動作の終了タイミングを示す終了信号、(d)図柄始動口15a,15bへの入賞を示す入賞信号、(e)大当り遊技中であることを示す大当り信号、(f)不正遊技の可能性を示す異常信号、(g)その他、遊技者の利益に関する利益信号、が含まれている。
(a)賞球信号、(c)終了信号、及び(d)入賞信号は、何れも時間幅100ms程度に成形されて出力される。その他、何れの遊技情報INFも、そのON継続時間が100mSを下回ることがないよう構成されており、ホールコンピュータHCに配置されたリレー回路RLYをON動作させるに十分な時間を有している。特に、(f)異常信号については、防犯上の重要性に鑑み、ON継続時間が30秒を下回らないよう構成されている。
<シリアルポートSPIのAポートとBポート>
図4(a)は、主制御部21のシリアルポートSPIが実行するシリアル送受信動作に関し、これに関連する回路構成を図示したものである。図4(b)~図4(f)は、シリアルポートSPIから出力される動作中信号ENiと、パラレルポートPOから出力されるラッチ信号LTjとの関係を示すタイムチャートである。また、図5は、シリアルポートSPIの内部構成を示す回路図である。
図5に示す通り、シリアルポートSPIは、送受信動作を実行するNチャンネルのAポートChA1~ChAnと、送信動作に特化された1チャンネルのBポートChBとに区分されている。なお、図6~図8は、図5を縦方向に3分したものであり、AポートのChA1(図6)と、AポートのChAn(図7)と、BポートのChB(図8)とを拡大して示している。
本実施例において、BポートChBは、シリアル送信動作に特化されており、図4(a)に示すクロックラインCKbに出力される伝送クロックCKBに同期して、送信データTXBを送信ラインTXbに出力している(シリアル送信動作)。なお、シリアル送信動作中であることは、イネーブル信号ラインの動作中信号ENがアクティブレベルであることで特定される。
図8と、図6を対比すると明らかなように、BポートChBには、受信バッファRVBUF1~RVBUF16や、各種の選択回路CTLr、CTLt、CTLcが存在しないものの、その他の構成は、AポートのChA1~ChAnとほぼ同じである。したがって、以下に説明するAポートの説明は、原則として、そのままBポートにも妥当する。
<AポートのChA1~ChAnについて>
AポートのChA1~ChAnは、図4(a)に示すクロックラインCKaに出力される伝送クロックCKAに同期して、送信ラインTXaに送信データTXAを出力するシリアル送信動作を実行する。また、AポートのChA1~ChAnは、シリアルポートSPIに接続された中継機器(図9上部の回路)が受信ラインRXaに向け出力する外部データを、伝送クロックCKAに同期して受信データRXAとして取得可能に構成されている。ここで、中継機器は、主制御基板21に搭載される場合と、主制御基板21以外に搭載される場合があるが、何れの場合も、シフトレジスタを内蔵して構成され、クロックラインCKaを経由して、シリアルポートSPIから受ける伝送クロックCKAに基づいて、受信ラインRXaに外部データをシリアル出力する。
本実施例の場合、Aポートのシリアル受信動作は、有意データか、或いは、無意のダミーデータを出力するシリアル送信動作に並行して実行されるので、実際には、シリアル送受信動作となる。また、シリアル送信動作時には、受信ラインRXaのデータが、伝送クロックCKAに同期して自動的に受信されるので、シリアル送信動作は、実際には、シリアル送受信動作となる。
この意味において、AポートのChA1~ChAnに送信専用動作や受信専用動作はないことになり、全て、シリアル送受信動作として実行される。なお、受信データを無視することが事実上の送信専用動作となり、ダミーデータをシリアル送信することが事実上の受信専用動作となる。
図4(a)に示す通り、NチャンネルのAポートChA1~ChAnは、各一本のクロックラインCKaと、送信ラインTXaと、受信ラインRXaとを共用している一方、動作中信号EN1~ENnを出力するN本のイネーブル信号ラインEN1~ENnが設けられている。
そして、NチャンネルのAポートChA1~ChAnのうち、何れのAポートChAiが共用ラインを使用しているかは、その時にアクティブレベルである動作中信号EN1~ENnによって特定される。すなわち、動作中信号EN1~ENnは、図19(b)に示す連続送信時を除いて、原則として択一的にアクティブレベルになるよう内部制御され、シリアル送受信動作が終了すれば非アクティブレベルに戻る。
図5は、シリアルポートSPIのAポートChA1~ChAnと、シリアルポートSPIのBポートChBについて、その要部を概略的に図示してものである。図示の通り、SPI_Aポートは、ChA1~ChAnの動作状態を示すステイタスレジスタSTS(STS1~STSn)と、ChA1~ChAnの動作内容を指示する動作指示レジスタENB(ENB1~ENBn)と、受信データRXAを、何れかのChA1~ChAnに伝送する受信データ選択回路CTLrと、ChA1~ChAn何れかからの送信データTXAを、選択出力する送信データ選択回路CTLtと、ChA1~ChAn何れかからの伝送クロックCKAを、選択出力するクロック選択回路CTLcと、を各一個有して構成されている。
<動作指示レジスタENBと、ステイタスレジスタSTS>
動作指示レジスタENBとステイタスレジスタSTSは、何れも、CPUから直接アクセス可能に構成されている。また、動作指示レジスタENBとステイタスレジスタSTSは、ChA1~ChAnごとに区分されており(ENB1~ENBn,STS1~STSn)、CPUが、動作指示レジスタENB1~ENBnに適宜な設定値を書込むことで、各ChA1~ChAnについて、伝送クロックCKAのボーレイトや、動作モードが任意に設定され、また、動作開始などを指示できるようになっている。
本実施例において、動作モードとは、(1)非動作状態の伝送クロックCKAのレベル(Hか/Lか)と、(2)伝送クロックCKAのどのエッジ(立上りか/立下りか)で取得したデータを、その次のエッジで送信するのかを規定するもので、合計2×2の4種類の動作モードが設けられている。
先に説明した通り、本実施例では、簡易性の観点から、シリアルポートSPIを必ず送受信モードで動作させており、したがって、実施例のシリアルポートSPIには、受信動作を伴わない送信専用の動作モードや、送信動作を伴わない受信専用の動作モードは存在せず、動作モードとしては、上記した4種類だけとなる。
次に、ステイタスレジスタSTS1~STSnには、AポートChA1~ChAnについて、受信データの有無(受信完了か否か)や、順次シリアル送信されるべき送信データの蓄積状態や、その後、シリアル送信を開始したことなどが特定される。具体的には、CPUによるバッファレジスタBFAiのWriteアクセス毎に、ステイタスレジスタSTSiの蓄積情報が増加し、シリアル送信が開始されると蓄積情報がゼロとなる。したがって、CPUは、必要なステイタスレジスタSTS1~STSnをReadアクセスすることで、AポートChA1~ChAnについて、送信処理が開始されたか否か、受信処理が完了したか否かなどの動作状態を把握することができる。
<クロック選択回路CTLcと、送信データ選択回路CTLtと、受信データ選択回路CTLr>
クロック選択回路CTLcと、送信データ選択回路CTLtと、受信データ選択回路CTLrは、SPI_AポートChA1~ChAnにおいて、クロックラインCKaと、送信ラインTXaと、受信ラインRXaとを共用するための信号選択回路である。
図6に関し、具体的に確認すると、AポートのChA1~ChAnの何れが機能しているかに応じて、クロック選択回路CTLcと送信データ選択回路CTLtと、が選択動作を実行し、例えば、ChAiが機能している場合には、ChAiの伝送クロックSCKiがクロックラインCKaに出力され、ChAiの送信データが送信ラインTXaに出力される。同様に、AポートChA1~ChAnの何れが機能しているかに応じて、受信データ選択回路CTLrが選択動作を実行して、例えば、ChAiが機能している場合には、受信ラインRXaの受信データがAポートChAiに伝送される。
<バッファレジスタBFAiと、送信バッファTRBUFiと、受信バッファRVBUFi>
次に、AポートChA1~ChAnにおける、その他の回路構成について説明を続ける。図5や図6~図7に示す通り、SPI_Aポートには、8bitCPUによるRead/Writeアクセス可能なn個のバッファレジスタBFA1~BFAn(各1バイト長)と、n組の送信バッファTRBUF1~TRBUF16(各16バイト長)と、n組の受信バッファRVBUF1~RVBUF16(各16バイト長)と、8ビット長のシフトレジスタ16個で構成されたn個の送受信回路CIR1~CIRnと、n個の転記制御回路TRN1~TRNnと、n個の動作制御回路ACT1~ACTnと、を有して構成されている。
このように、図5の実施例では、n組の送信バッファTRBUF1~TRBUF16と、n組の受信バッファRVBUF1~RVBUF16とを別々に設けたが、双方向バッファを使用すれば、n組の送受信バッファを設けるだけで足り、この回路構成の方が好適である。但し、以下、説明の便宜上、双方向バッファ(送受信バッファ)を使用することなく、送信バッファTRBUFiと、受信バッファRVBUFiとを別々に設けて、回路制御の簡略化を図る構成について説明する。
また、図5の実施例では、n組の送信バッファTRBUF1~TRBUF16と、n組の受信バッファRVBUF1~RVBUF16とに対応して、送信バッファTRBUFi及び受信バッファRVBUFiに接続されたn個の送受信回路CIR1~CIRnを、設けているが、何ら限定されない。すなわち、回路構成がやや煩雑化するが、一の送受信回路CIRを、n組の送信バッファTRBUF1~TRBUF16と、n組の受信バッファRVBUF1~RVBUF16とに接続する回路構成を採っても良い。
但し、以下の説明では、ChA1~ChAn毎に、通信速度(ボーレイト)が設定可能であり、且つ、ビットシフトの順番としてLSBファーストかMSBファーストかをChA1~ChAn毎に設定できる構成として、n組の送信バッファTRBUF1~TRBUF16と、n組の受信バッファRVBUF1~RVBUF16とに対応して、n個の送受信回路CIR1~CIRnを設ける図5の構成について説明する。
先ず、AポートChA1~ChAnに各々設けられた各1バイト長のバッファレジスタBFA1~BFAnは、各々、一意のレジスタアドレスを有して、8bitCPUから直接的にRead/Writeアクセス可能に構成されている。
一方、AポートChA1~ChAnに各々設けられた送信バッファTRBUF1~TRBUF16と、受信バッファRVBUF1~RVBUF16は、各々、16バイト長であり、転記制御回路TRN1~TRNnの機能に基づき、バッファレジスタBFA1~BFAnとデータ授受可能に構成されている。
転記制御回路TRNi(TRN1~TRNn)は、Writeアクセス時に機能する第1回路TRNiwと、Readアクセス時に機能する第2回路TRNirに区分され、各々の詳細については後述するが、CPUが、AポートChAiのバッファレジスタBFAiに、1バイトデータを書込むWriteアクセス毎に、第1回路TRNiwが機能して、書き込まれた1バイトデータが自動的にAポートChA1の送信バッファTRBUF1~TRBUF16の何れかに転送されるようになっている。
また、CPUが、AポートChAiのバッファレジスタBFAiを、Readアクセスする毎に、第2回路TRNirが機能して、AポートChA1の受信バッファRVBUF1~RVBUF16の何れかの1バイトデータが、バッファレジスタBFAiを経由して、CPUに読み出されるようになっている。
<送受信回路CIR1~CIRn>
次に、送受信回路CIR1~CIRnは、各々、16個の8ビットシフトレジスタで構成され、16バイト長のデータをシリアル送受信可能に構成されている。先ず、16個のシフトレジスタのQ端子(合計8×16個)は、各々、受信バッファRVBUF1~RVBUF16(全体で16バイト長)に接続されており、受信バッファRVBUFiが受ける読出し信号RCKの立下りエッジに同期して、シフトレジスタの16バイト長が受信バッファRVBUFiに取得されるよう構成されている。
また、16個のシフトレジスタのPD端子(合計8×16個)は、各々、送信バッファTRBUF1~TRBUF16(全体で16バイト長)に接続されている。そして、各シフトレジスタのSET端子(合計8×16個)に受ける動作開始指示STARTが、アクティブレベルに変化したタイミングで、送信バッファTRBUF1~TRBUF16の全16バイト長のデータが、各シフトレジスタに取得され、シフトレジスタのQ端子に出力されるよう構成されている(Data Preload)。
16個のシフトレジスタにPreload されたデータは、その後、シフトレジスタのSCK端子に、伝送クロックSCKiを受ける毎に、下流側のシフトレジスタにシフト移動され、最大で16バイト長のシリアル送信動作が実現される。先に説明した通り、AポートChA1~ChAnは、各一本のクロックラインCKaと、送信ラインTXaと、受信ラインRXaとを共用しているので、クロックラインCKaに出力される伝送クロックSCKiに同期して、送信ラインTXaには、最下流のシフトレジスタのQ端子のデータTXAiが順次出力されることになる。
ところで、本実施例のシリアルポートSPIでは、上記したシリアル送信動作に関連して、最上流のシフトレジスタのD端子のデータが取得され、Q端子に出力される。したがって、シフトレジスタを内蔵する中継機器と、シリアルポートSPIとの間を、クロックラインCKaと受信ラインRXaで接続した場合には(図9参照)、伝送クロックSCKiに同期して、中継機器のシフトレジスタから出力された外部データRXAiが、シリアルポートSPIのシフトレジスタに取得されることになる。
図5の構成から明らかなように、伝送クロックSCKiを16×8個出力すると、送信ラインTXaに16バイトの送信データTXAiが出力される一方、受信ラインRXaを経由して、シフトレジスタには、16バイトの受信データRXAiが取得されることになる。なお、伝送クロックSCKiの個数は、バッファレジスタBFAiの処理単位である1バイト(=8)の整数倍であれば任意であり、8×a個の伝送クロックSCKiに対応して、aバイトの送信データTXAiがシリアル送信され、これに対応して、aバイトの外部データRXAiがシリアル受信される。
<動作制御回路ACT1~ACTn>
動作制御回路ACT1~ACTnは、システムクロックOSCと、動作指示レジスタENBa1~ENBanへの設定値とに基づいて機能して、所定のボーレイトの伝送クロックSCKiを出力する回路である。具体的には、動作指示レジスタENBaiに動作開始の指示が書込まれると、動作開始指示STARTiがアクティブレベルに変化し、伝送クロックSCKiの出力を開始する。
そして、バッファレジスタBFAiへのWriteアクセス回数Nに対応して、8×N個の伝送クロックSCKiの出力を終えると、動作開始指示STARTiが非アクティブレベルに戻り、伝送クロックSCKiのレベルが非動作状態のレベルに戻る。なお、非動作状態のレベルは、動作指示レジスタENB1~ENBnへの設定値に対応して、HレベルかLレベルに予め決定されている。
また、動作開始指示STARTiは、送受信回路CIRiを構成する16×8個のシフトレジスタのSET端子にも供給されている。そのため、動作開始指示STARTiがアクティブレベルに変化する前端エッジで、前記したData Preload動作が実行され、送信バッファTRBUF1~TRBUF16の16バイトデータが、送受信回路CIRiを構成する16×8個のシフトレジスタに転送される。
先に説明した通り、動作開始指示STARTiがアクティブレベルに変化すると、動作中信号ENiがアクティブレベル(L)に変化すると共に、所定のボーレイトの伝送クロックSCKiの出力が、やや遅れて開始されるので、送受信回路CIRiに転送された16バイト長の送信データは、最高では、16×8個の伝送クロックSCKiに同期してシリアル送信されることになる。
なお、動作開始指示STARTiがアクティブレベルを維持する期間、すなわち、伝送クロックSCKiの個数は、必ずしも、16×8個に限定されず、CPUがバッファレジスタBFAiに書込んだ、1バイトデータ(送信データ)のWriteアクセス回数Nに基づく。すなわち、N回の1バイトWriteアクセスの後、CPUが動作指示レジスタに対して、動作開始の設定値を書込んだ場合には、Writeアクセスの回数Nに対応して、N×8個の伝送クロックSCKiが出力されることで、Nバイトの送信データがシリアル送信されることになる。
以上の説明から確認される通り、本実施例のシリアルポートSPIでは、8の倍数とならないビット長の送信データをシリアル送信したい場合には、ダミーデータを含んで必要最小バイト長の送信データを、バッファレジスタBFAiにWriteアクセスする必要がある。そして、この書込み(Writeアクセス)動作に対応して、シリアル送信されるデータビット長は、必ず、8の倍数であって、伝送クロックSCKiの個数もこれと同数となる。
一方、送信バッファTRBUF1~TRBUF16は、全体で16バイト長であるので、CPUによるWriteアクセスの最大回数は、上限16回に制限される。そのため、SPI_AポートChA1~ChAnにおける一単位のシリアル送信動作は、最大、16×8ビットに制限されることになり、これ以上の送信データをシリアル送信する場合には、次の一単位のシリアル送信動作に委ねることになる。
<転記制御回路TRN1~TRNnの第1回路TRNw>
n個の転記制御回路TRNi(TRN1~TRNn)は、n個のバッファレジスタBFAi(BFA1~BFAn)に対応して設けられ、Writeアクセス時に機能する第1回路TRNiwと、Readアクセス時に機能する第2回路TRNirに区分されている。
Writeアクセス時に機能する第1回路TRNiwは、ポートChAnに関し、図7(c)に記載されている通り、NORゲートG1と、UPカウンタCNT1と、アドレスデコーダDEC1とを中心に構成されている。なお、n個の第1回路TRNiw(i=1~n)は、基本的に、全て同一構成であるので、図7(c)では、TRNwと表記している。
図7(c)に示す通り、第1回路TRNwを構成するNORゲートG1は、バッファレジスタBFAiへのWriteアクセス時にLレベルになるWRバー信号及びCSバー信号と、書込み禁止状態ではHレベルとなるINHバー信号と、を受けて動作し、書込み許可状態において、CPUがバッファレジスタBFAiをWriteアクセスした場合に、Hレベルの書込み信号WCKを出力するよう構成されている。
UPカウンタCNT1は、17進のアップカウンタであり、CLR信号に基づき最小値ゼロを出力する一方、その後の計数クロックたるNORゲートG1の出力に基づいて1~16の範囲でカウンタ値がインクリメント循環するよう構成されている。また、アドレスデコーダDEC1は、UPカウンタCNTのカウンタ出力値に対応して、負論理のチップセレクト信号NO1~NO16を出力するよう構成されている。ここで、チップセレクト信号NO1~NO16は、16個の送信バッファTRBUFiについて、その何れへのアクセスを許可するかの選択信号である。
<転記制御回路TRN1~TRNnの第2回路TRNr>
次に、Readアクセス時に機能する第2回路TRNirは、図7(c)に記載されている通り、NORゲートG2と、NOTゲートG3と、DOWNカウンタCNT2と、アドレスデコーダDEC2とを中心に構成されている。なお、n個の第2回路TRNir(i=1~n)も、基本的に、全て同一構成であるので、図7(c)では、TRNrと表記している。
図7(c)に示す通り、第2回路TRNwを構成するNORゲートG2は、バッファレジスタBFAiへのReadアクセス時にLレベルになるRDバー信号及びCSバー信号と、読出し禁止状態ではHレベルとなるINHバー信号と、を受けて動作し、読出し許可状態において、CPUがバッファレジスタBFAiをReadアクセスした場合に、NOTゲートG3を経由して、Lレベルの読出し信号RCKバーを出力するよう構成されている。
また、ORゲートGが出力する読出し信号RCKは、計数クロックとして、DOWNカウンタCNT2に供給されている。DOWNカウンタCNT2は、17進のダウンカウンタであり、CLR信号に基づき最小値ゼロを出力する一方、その後の計数クロックたるNORゲートG2の出力に基づいて16~1の範囲でカウンタ値がデクリメント循環するよう構成されている。
アドレスデコーダDEC2は、DOWNカウンタCNT2のカウンタ出力値に対応して、負論理のチップセレクト信号NO1~NO16を出力するよう構成されている。チップセレクト信号NO1~NO16は、16個存在する受信バッファRVBUFiについて、その何れへのアクセスを許可するかの選択信号である。
<CPUのWriteアクセス>
図7(a)は、CPUのWriteアクセス時の動作を説明するタイムチャートであり、システムクロックCLKバーと、アドレスバスと、IOREQバー信号と、CSバー信号と、RDバー信号と、WRバー信号と、データバスと、書込み信号WCKとの関係を示している。なお、INHバー信号がLレベルであって、書込み禁止状態ではないタイミングでの書込み動作を示している。また、UPカウンタCNT1は、カウンタ値ゼロのクリア状態で待機している。
このような状態で、CPUが所定のバッファレジスタBFAiをWritアクセスすると、WRバー信号の立下りエッジに同期して、データバスのデータ(書込みデータ)が、バッファレジスタBFAiに書き込まれる。ここで、書込み信号WCKは、WRバー信号の反転レベルとなるので、WRバー信号の立下りエッジに対応して、書込み信号WCKが立上ることになる。
本実施例では、この書込み信号WCKは、全ての送信バッファTRBUF1~TRBUF16に共通的に供給されており、バッファレジスタBFAiが取得したデータは、書込み信号WCKの立下りエッジで、チップセレクト状態の所定の送信バッファTRBUFiに転記されることになる。
図7(c)に示す通り、書込み信号WCKは、ORゲートG1を経由して、UPカウンタCNT1にも供給されているので、書込み信号WCKの立上りエッジのタイミングで、UPカウンタCNT1がUpカウントされることになり、例えば、第1回目のWritアクセスであれば、No1のチップセレクト信号がアクティブレベルとなる。
そのため、書込み信号WCKの立上りエッジで生じるNo1のチップセレクト信号で選択された送信バッファTRBUF1(先頭バッファ)に、バッファレジスタBFAiのデータが、書込み信号WCKの立下りエッジに同期して転記されることなる。
その後の動作も同じであり、第2回目のWritアクセス時の書込みデータが、バッファレジスタBFAiを経由して、送信バッファTRBUF2(二段目のバッファ)に転記され、以下同様の動作が続き、最後に、第N回目のWritアクセス時の書込みデータが、バッファレジスタBFAiを経由して、送信バッファTRBUFn(N段目のバッファ)に転記されることになる。
このようにして転記されたNバイトの書込みデータ(最大16バイトの送信データ)は、送受信回路CIRiを構成するシフトレジスタのPD端子に供給されており、動作開始指示STARTiがアクティブレベルに変化する前端エッジで、送受信回路CIRiを構成する16×8個のシフトレジスタに転送される(Data Preload動作)。そして、このData Preload動作に少し遅れて、Writアクセス回数Nに対応するNバイトのシリアル送信動作が開始されることは前記した通りである。
なお、シリアル送信動作が開始されると、CLR信号が供給されることで、UPカウンタCNT1のカウンタ値はゼロに戻る。この点は、DOWNカウンタCNT2についても同様であり、CLR信号が供給されることで、DOWNカウンタCNT2のカウンタ値もゼロに初期設定される。
<CPUのReadアクセス>
上記したNバイトのシリアル送信時には、自動的にシリアル受信動作も実行されており、送受信回路CIRiを構成するシフトレジスタには、N×8ビットの受信データが取得されている。そして、この受信データは、受信バッファRVBUF16(末尾バッファ)から、受信バッファRVBUF17-N(末尾からN-1番目のバッファ)にも供給されている。
以上を踏まえて、Readアクセス時の動作を説明する。図7(b)は、CPUのReadアクセス時の動作を説明するタイムチャートであり、システムクロックCLKバーと、アドレスバスと、IOREQバー信号と、CSバー信号と、RDバー信号と、WRバー信号と、データバスと、読出し信号RCKと、読出し信号RCKバーとの関係を示している。なお、INHバー信号がLレベルであって、読出し禁止状態ではないタイミングでの読出し動作を示している。また、DOWNカウンタCNTは、カウンタ値ゼロのクリア状態で待機している。
このような状態で、CPUが所定のバッファレジスタBFAiをReadアクセスすると、RDバー信号の立下りエッジに同期して、NOTゲートG3を経由した読出し信号RCKバーが立下がる。この読出し信号RCKバーは、不図示の遅延回路を経由して、全ての受信バッファRVBUF1~RVBUF16に共通的に供給されており、チップセレクト状態の所定の受信バッファRVBUFiのデータは、遅延回路を経由した読出し信号RCKバーの立下りエッジに同期して、バッファレジスタBFAiに転記されることになる。
図7(c)に示す通り、NORゲートG2の出力である読出し信号RCKは、計数クロックとして、DOWNカウンタCNTに供給されている。そのため、読出し信号RCKの立上りエッジで、DOWNCNTがDownカウントされ、例えば、第1回目のReadアクセスであれば、No16のチップセレクト信号がアクティブレベルとなる。
そのため、第1回目のReadアクセスでは、読出し信号RCKの立上りエッジで生じるNo16のチップセレクト信号で選択された受信バッファRVBUF16の受信データ(最後に取得した1バイト)が、遅延回路を経由した読出し信号RCKバーの立下りエッジに同期して、バッファレジスタBFAiに転記されることなる。
そして、バッファレジスタBFAiに転記された受信データは、RDバー信号の立上りエッジに先行して、データバスを経由して、CPUによって取得される(図7(b))。その後の動作も同じであり、第2回目のReadアクセス時には、No15のチップセレクト信号で選択される受信バッファRVBUF15の受信データが、遅延回路を経由した読出し信号RCKバーの立下りエッジに同期して、バッファレジスタBFAiに転記され、RDバー信号の立上りエッジに先行して、データバスを経由してCPUによって取得される(図7(b)参照)。
以下、同様の動作が続き、最後に、第N回目のReadアクセス時には、受信バッファRVBUF17-Nの受信データ(最初に取得した1バイト)が、バッファレジスタBFAiを経由して、CPUに取得されることなる。以上、最後に受信したデータから最初に受信したデータに向けて、逆方向にReadアクセスする構成を説明したが、何ら限定されず、最初に受信したデータから順方向にReadアクセスする構成を採っても良い。
何れにしても、Nバイトのシリアル送信動作に続いて、CPUがバッファレジスタBFAiをN回Readアクセスすると、受信データを取得することができる。なお、上記のようなシリアル送受信動作において、受信データが不要の場合(事実上のシリアル送信専用動作)には、バッファレジスタBFAiをReadアクセスしないのは勿論である。
以上のシリアル送受信動作におけるCPUの動作を確認すると以下の通りである。
<シリアル送受信動作>
(1)CPUは、必要回数(N≦16)だけバッファレジスタBFAiをWriteアクセスして、ChAiの送信バッファTRBUF1~TRBUFnに、Nバイトの送信データを設定する。(2)次に、動作指示レジスタENBaiに、SPI_AポートChAiのシリアル伝送の開始を指示する。
(3)すると、シリアル伝送が開始されるので、その後は、ステイタスレジスタSTSaiを参照して、シリアル送信の動作完了を待つ。(4)そして、シリアル送信の動作完了が確認されれば、バッファレジスタBFAiをN回Readアクセスして受信データを取得することになる。
<シリアル送信動作(事実上のシリアル送信専用動作)>
シリアル受信動作が不要な場合には、上記した(4)の処理が不要となることは先に説明した通りである。
<シリアル受信動作(事実上のシリアル受信専用動作)>
シリアル送信動作が不要である事実上のシリアル受信専用動作の場合でも、本実施例では、上記した(1)の処理は必須である。したがって、取得すべき受信データのバイト長Nに対応して、バッファレジスタBFAiをN回Writeアクセスして、ChAiの送信バッファTRBUF1~TRBUFnにNバイトのダミーデータを設定することになる。そして、その後は、上記した(2)~(4)の処理を実行して、要するに、シリアル送受信動作を実行することなる。
以上の通り、本実施例の転記制御回路TRN1~TRNnは、上記した第1回路TRNwと第2回路TRNrに区分されているので、CPUのバッファレジスタBFAiへの自由なRead/Writeアクセスに基づいて、必要バイト長の送信データを設定することができ、また、受信データを任意に取得することができる。
そのため、事実上のシリアル送信専用動作の場合には、SPIによるシリアル送信動作中に、次サイクルの送信データを、バッファレジスタBFAiを経由して送信バッファTRBUF1~TRBUFnに設定することで、16バイトを上限とする一単位のシリアル送信動作を、ほぼ間断なく連続的に繰り返すことができる。今サイクルと次サイクルの間に、次サイクルの送信データの設定を終えたCPUは、今サイクルのシリアル送信完了の確認と、次サイクルの送信開始指示を実行するだけで良い。
一方、シリアル送受信動作の場合には、上記した通り、CPUによる送信データのバッファレジスタBFAiへの書込み → CPUによるシリアル送信の開始指示 → 送信完了後のCPUによる受信データの取得 → CPUによる次サイクルの送信データのバッファレジスタBFAiへの書込み → CPUによるシリアル送信の開始指示 →・・・の手順を採ることになる。
ところで、実施例では、INHバー信号を設けるので、必要に応じて、読出し禁止状態や書込み禁止状態を設定することができる。例えば、シリアル送信動作中は、第2回路TRNrのINHバー信号をHレベルに維持することで、シリアル送信動作中の(バッファレジスタBFAiへの)Readアクセスを無視することができる。なお、シリアル送信動作中、バッファレジスタBFAiから無理やりReadしたデータは、受信バッファRVBUFiの受信データではない。
また、本実施例では、送信バッファTRBUFiと受信バッファRVBUFiとを別々に設けているので、シリアル送信完了後のバッファレジスタBFAiへのReadアクセス(受信データの取得)と、バッファレジスタBFAiへのWriteアクセス(次サイクルの送信データの書込み)を混在させても特段の問題は生じないが、単一の送受バッファを使用する場合には、第1回路TRNwや第2回路TRNrのINHバー信号が有効に活用される。
もっとも、シリアル送信動作中のバッファレジスタBFAiへのReadアクセスや、ReadアクセスとWriteアクセスの混在のような処理は、技術常識的には考えられないので、INHバー信号を使用しない構成を採るのも好適である。すなわち、NORゲートG1やNORゲートG2にINHバー信号を供給しない構成を採ることで、バッファレジスタBFAiを経由する受信バッファRVBUFiからの自由なReadアクセスと、バッファレジスタBFAiを経由する送信バッファTRBUFiへの自由なWriteアクセスを許可するのも好適である。
<BポートのChBについて>
以上、Aポートについて説明したが、BポートChBにも、ポートChA1~ChAnと同様に、1バイト長のバッファレジスタBFBと、16バイト長の送信バッファTRBUF1~TRBUF16が設けられている(図8参照)。そして、バッファレジスタBFBへのWriteアクセスに基づいて、転記制御回路TRNBが機能して、書込みデータが送信バッファTRBUF1~TRBUF16に転記される。
また、BポートChBにも、動作指示レジスタENBbと、ステイタスレジスタSTSbが設けられている。そして、BポートChBのシリアル送信動作は、動作指示レジスタENBbに、所定の設定処理が実行されたことに基づいて開始される。ステイタスレジスタSTSbには、BポートChBについて、順次シリアル送信されるべき送信データの蓄積状態や、その後、シリアル送信を開始したことなどが特定される。なお、Bポートは1チャンネルであり、その動作は、シリアル送信動作に特化されているので、Aポートにおける受信バッファや、選択回路や、転記制御回路TRNBの第2回路に対応する回路は存在しない。
<ワンチップマイコンMCの制御対象となる回路>
以上、図6~図8に基づいて、SPIについて説明したので、図4(a)に戻って、主制御部21のワンチップマイコンMCの制御対象となる回路について説明する。先に説明した通り、AポートChA1~ChAnは、各一本のクロックラインCKaと、送信ラインTXaと、受信ラインRXaとを共用しているので、AポートChA1~ChA4に関し、クロックラインCKaと、送信ラインTXaと、受信ラインRXaとを通断可能に4個のバスバッファBF1~BF4が配置されている。
各バスバッファBF1~BF4は、3状態バッファであって、AポートChA1~ChA4から出力される動作中信号EN1~EN4に基づいて、信号伝送状態となるよう構成されている。なお、バスバッファBF1~BF4は、必ずしも、必須ではなく、これを省略することができるが、不要な伝送クロックCKAの巡回がノイズ源となることを回避するため、本実施例では、バスバッファBF1~BF4を配置して、必要な経路に、必要なクロックラインCKaだけが伝送されるよう構成している。
以下、AポートChA1~ChAnに関連して説明すると、図4(a)に示す通り、SPI_AポートのChA1は、防犯センサなどのデータを受けてシリアル信号を出力するPS変換回路PS1・・・PS1に接続されている。そして、PS変換回路PS1・・・PS1のLOADバー端子には、ワンチップマイコンMCのパラレルポートPOから、定期的に、取得信号LOADが供給されるよう構成されている。
次に、SPI_AポートのChA2は、ダイナミック点灯されるLEDランプのコモンデータ(Common Data )をシリアル信号として受けて、これをパラレル変換するシリアル受信回路(SP変換回路CV2・・・CV2)に接続され、SPI_AポートのChA3は、各種のシリアルデータを受けてパラレル変換するシリアル受信回路(SP変換回路CV3・・・CV3)に接続されている。
図示の通り、SP変換回路CV2・・・CV2の出力(コモンデータ)は、LEDランプに通電電流を供給するソースドライバDV,DVに供給されている。ソースドライバDV,DVのCLK端子には、ワンチップマイコンMCのパラレルポートPOからラッチ信号LT2が供給されるので(図4(c)参照)、ソースドライバDVは、ラッチ信号LT2に同期して、SP変換回路CV2からコモンデータを受けて、LEDランプのダイナミック点灯を実現することになる。
図示例の場合、SP変換回路CV2とソースドライバDVが二組配置されているが、最上流位置に配置されたSP変換回路CV2及びソースドライバDVは、普通図柄表示部H_DSと、遊技実績表示部RCDを構成するLEDランプ群(2×4×8個)に、コモンデータ(COM0~COM7)を供給している(図13(a)(b)参照)。
一方、二段目に配置されたSP変換回路CV2及びソースドライバDVは、特別図柄表示部S_DSを構成するLEDランプ群(4×16個)に、コモンデータ(COM0~COM7)を供給している(図13(c)参照)。
次に、SP変換回路CV3・・・CV3のRCK端子には、ワンチップマイコンMCのパラレルポートPOからラッチ信号LT3が供給されるよう構成されている(図4(d)参照)。そして、SP変換回路CV3は、このラッチ信号LT3に基づいて、シリアル送信されたシリアルデータをパラレルデータとして出力する。なお、このパラレルデータには、モータ駆動データと、制御コマンドCMDの1バイトデータと、ソレノイド信号と、ストローブ信号STBとが含まれている。
一方、SPI_AポートのChA4は、主制御部21から情報端子基板38へのシリアル伝送路を構成しており、情報端子基板38に搭載されたシリアル受信回路(ドライバ付きSP変換回路CVD)に遊技情報INFを伝送している(図17参照)。なお、図17に示す通り、ドライバ付きSP変換回路CVDは、フォトカプラPHを経由して、ホールコンピュータHCのリレーRLYを駆動している。
一方、SPIのBポートは、ダイナミック点灯されるLEDランプのセグメントデータ(Segment Data)をシリアル信号として受けてパラレル変換するドライバ付きSP変換回路CVD・・・CVDに接続されている。このセグメントデータは、SP変換回路CV2から出力されるコモンデータ(Common Data )に対応するもので、SP変換回路CVDと、SP変換回路CV2及びソースドライバDVとが協働して、LEDランプのダイナミック点灯動作を実現している。
ここで、ダイナミック点灯されるLEDランプには、特別図柄表示部(ドットマトリクス)Sa_DP,Sb_DPや、遊技実績表示部(7セグメントLED)RCDや、普通図柄表示部H_DP(ドットマトリクス)を構成するLEDランプを含んでいる。図4に示す通り、最上流のSP変換回路CVDは、遊技実績表示部RCDと、普通図柄表示部H_DPを構成するLEDランプに2バイト長のセグメントデータ(SG0 ~SG15)を出力し(図13(a)(b)参照)、二段目のSP変換回路CVDは、特別図柄表示部Sa_DP,Sb_DPを構成するLEDランプに2バイト長のセグメントデータ(SG0 ~SG15)を出力している(図13(c)参照)。
なお、コモンデータ(Common Data )は、LEDランプのチラツキを防止するため、例えば、4mS毎に更新されて出力されるのに対して、セグメントデータ(Segment Data)は、各表示部S_DP,RCD,H_DPの用途に応じて、十分に長い制御周期(例えば128mS)で更新される。但し、ノイズ重畳による誤表示を防止するため、セグメントデータについても、出力周期は4mSであり、更新されていない同一データが繰り返し出力される。
以上の通り、主制御部には、SPI_Aポートから伝送クロックCKA,CKBを受ける各種のSP変換回路CV2,CV3、CVDが搭載されるが、全ての回路は、電源リセット回路が出力する電源リセット信号RESETによって電源リセットされる。この点は、情報端子基板38に搭載されたSP変換回路CVDについても同様である。
<SPI_AポートのChA1と中継機器PS1の接続関係>
図9は、SPIのChA1が、シフトレジスタを内蔵する中継機器からセンサ信号やスイッチ信号をシリアル受信する回路構成を図示したものである。ここで、中継機器は、主制御基板21に搭載される場合と、主制御基板21以外に搭載される場合があるが、以下に説明する実際例では、全ての中継機器は、主制御基板21に搭載されており、中継機器は、具体的には、例えば4個のPS変換回路PS1を意味する。
4個のPS変換回路PS1は、例えば、(1)払出制御基板25から主制御基板21に伝送されたパラレル信号と、(2)各種の防犯センサのセンサ信号と、(3)遊技球の監視スイッチのスイッチ信号と、(4)普通入賞口17やゲート18からのスイッチ信号とを含んだ全28ビットのパラレル信号を受けている。なお、最大4×8ビットのパラレル信号を取得可能であるが、28ビットだけ活用している。
図9の上部に示す通り、各PS変換回路PS1は、8ビット長のシフトレジスタを構成する8個のD型フリップフロップで構成されている。D型フリップフロップには、スイッチ信号などを受けるPD端子と、ワンチップマイコンMCのパラレルポートPOからLOADパルスを受けるLD端子と、ワンチップマイコンMCのSPI(ChA1)から伝送クロックを受けるCK端子とが設けられている。
ワンチップマイコンのCPUの制御動作は、図4(b)に示す通りであり、(動作b1)CPUは、先ず、パラレルポートPOから、LOADパルスを出力する。このLOADパルスは、全てのD型フリップフロップのLD端子に供給されるので、PD端子に受けているスイッチ信号その他がQ端子に出力される。
(動作b2)次に、28ビットを超える最小のバイト単位である4バイトのダミーデータを、バッファレジスタBFA1に書込む。先に説明した通り、CPUが4回のWriteアクセスを実行すると、転記制御回路TRN1wの動作に基づき、送信バッファTRBUF1~TRBUF4に4バイト長のダミーデータが転記される。
(動作b3)そこで、次に、CPUは、動作指示レジスタENBa1に、動作開始指示を書込むことになる。なお、動作b3の書込み処理に先行する動作b1と動作b2の処理は、その処理手順は、この逆でもよい。何れにしても、動作b3の書込み動作に対応して、全ての選択回路CTLr、CTLt、CTLcが機能して、受信データラインRXaと、送信データラインTXaと、クロックラインCKaが、SPIのChA1に接続状態となる。
また、動作b3の書込み動作に対応して、開始指令START1が立上り、その立上りエッジに同期して、送信バッファTRBUF1~TRBUF4の4バイト長のダミーデータが、送受信回路CIR1のシフトレジスタ(先頭の32ビット)に転送される。また、開始指令START1の立上りエッジに同期して、動作中信号EN1がアクティブレベルに変化し、これより適宜に遅れて、動作制御回路ACT1から伝送クロックSCK1の出力が開始される。
したがって、その後は、CPUによる4回のWriteアクセスに対応して、4×8個の伝送クロックSCK1が出力され、4バイトのダミーデータTXAがシリアル出力されることになる。但し、回路接続上、このダミーデータTXAは、何処にも伝送されることはない。
そして、4×8個の伝送クロックに対応して、4個のPS変換回路PS1~PS1からは、32ビットのデータが受信データラインRXaに出力され、この32ビットは、送受信回路CIR1を構成する末尾側の32ビットのシフトレジスタに伝送される。
(動作b4)そこで、CPUは、ChA1に関するステイタスレジスタSTSa1を繰り返し参照して、シリアル送信処理の完了を待つ。なお、シリアル送信処理の完了は、4個のPS変換回路PS1から、送受信回路CIR1のシフトレジスタへの32ビット長のデータ転送に他ならない。なお、本実施例の場合、シフトレジスタが取得した32ビットの受信データは、その後CPUが取得すべきセンサ信号などの28ビットと、取得不要な4ビットとで構成されている。
(動作b5)シリアル送信処理(シリアル受信処理)の完了を確認したCPUは、バッファレジスタBFA1を4回Readアクセスして、シフトレジスタが取得した32ビットの受信データを適宜な作業領域に取得する。
(動作b6)そして、必要な28ビットデータに基づいて、適宜な処理を実行する。例えば、払出制御基板25から受けたステイタス信号CONや、各種の防犯センサのセンサ信号に基づいて、異常判定処理や異常報知処理を開始する。
また、主制御部に接続される監視スイッチのスイッチ信号に基づいて遊技球の投入個数(アウト個数Insert)を計数すると共に、各入賞口のスイッチ信号に基づいて遊技球の賞球個数(セーフ個数Paid)を計数し、所定タイミングで、通常遊技状態におけるベース値たる賞球比率(=セーフ数Paid/アウト数Insert)を計算して遊技実績を更新する。
その他、普通入賞口17に遊技球が通過したことを把握した場合には、払出制御基板25に適宜な賞球コマンドSYOをシリアル送信する。賞球コマンドSYOのシリアル送信には、(1)第1シリアルポートUARTが使用されること、(2)その伝送方式に特徴があることは、図2(b)に関して説明した通りである。また、ゲート18を遊技球が通過したことを把握した場合には、普通抽選用の乱数値を取得して普通抽選処理を実行する。
<SPI_AポートのChA2と中継機器CV2の接続関係>
続いて、AポートのChA2と、中継機器CV2との接続関係と、LEDランプのコモンデータ(Common Data )の送信動作について説明する。図10(a)は、図10(b)に示す内部構成を有する中継機器(カスケード接続された2個のSP変換回路CV2)と、AポートのChA2とが、バスバッファBF2を介して接続されることを示している。
先に説明した通り、バスバッファBF2は、AポートのChA2からLレベルの動作中信号EN2を受ける場合に限り、アクティブになるので、SP変換回路CV2は、ChA2がシリアル送受信動作を実行している場合に限り、伝送クロックCKAや送信データTXAを受けることになる。
図10(b)に示す通り、SP変換回路CV2は、R端子を有する8個のD型フリップフロップで構成された第1FF回路を有しており、SCLRバー信号がLレベルになると、8個のD型フリップフロップのQ端子(Q出力)がクリア状態(Lレベル)となるよう構成されている。
また、8個のD型フリップフロップは、各々のSCK端子に受ける伝送クロックCKAが変化すると、その立上りエッジで、D端子のデータを読込み、Q端子に出力するよう構成されている。図示の通り、最上流のD型フリップフロップのD端子には、ChA2が出力するシリアルデータTXAが供給される。したがって、第1FF回路(8個のD型フリップフロップ)は、伝送クロックCKAの立上りエッジでシフト動作を実行して、シリアルデータTXAを読込むことになる。
また、SP変換回路CV2は、8個のD型フリップフロップで構成された第2FF回路を有して構成され、この第2FF回路は、RCK信号(ラッチクロック)の立上りエッジで、第1FF回路の8ビット出力を取込むよう構成されている。第2FF回路が取得した8ビットデータは、論理反転状態でD型フリップフロップのQバー端子に出力され、Gバー信号がLレベルであることを条件に機能する反転ゲート回路を経由することで、SP変換回路CV2の8ビット出力(QA~QH)となる。
図10(a)に示す通り、このSP変換回路CV2では、Gバー信号がLレベルに固定され、また、RCK信号(ラッチクロック)は、シフトクロックSCKの論理反転状態となるよう回路接続されている。また、最上流の第1F/F回路のD端子には、ChA2のシリアル送信データTXAが供給され、第1FF回路の全てのSCK端子には、ChA2の伝送クロックCKAが供給されるよう接続されている。
そのため、SPI_ChA2のシリアル送受信動作に対応して、シリアル送信データTXAが、伝送クロックCKAの立上りエッジで第1FF回路に読込まれ、読込まれたデータが、伝送クロックCKAの立下りエッジで、第2FF回路に取得されることになる。そして、Gバー信号が固定的にLレベルであることから、第2FF回路に取得されたデータは、そのまま出力されることになる。
先に説明した通り、出力されるデータは、LEDランプのコモンデータであり、このコモンデータは、ラッチ付きのソースドライバDVに供給されている(図4(a)参照)。なお、特に限定されないが、この実施例では、コモンデータを16ビット長としている。
図12は、SP変換回路CV2と、ラッチ付きのソースドライバDVとの接続関係を示している。ソースドライバDVは、SP変換回路CV2の8ビット出力QA~QHを、D端子に受ける8個のD型フリップフロップで構成された第3FF回路と、第3FF回路の8ビットQ出力に基づいてON動作して、発光ダイオードに発光駆動電流を供給する8個のLEDドライバとを有して構成されている。
第3FF回路を構成する8個のD型フリップフロップには、各々、R端子とQ端子とが設けられており、R端子がLレベルであると、Q端子は、HiZ状態になるよう構成されている。一方、R端子がHレベルであれば、CK端子に受けるラッチパルスLT2の立上りエッジで、各D端子のデータが読込まれ、Q端子に出力されるよう構成されている。
図示の通り、R端子には、電源リセット信号RESETが供給されている。そのため、第3FF回路を構成する8個のD型フリップフロップは、電源リセット信号RESETがLレベルとなる電源投入時だけ非動作状態(Q端子がHiZ状態)となり、その後は、ラッチパルスLT2に同期してD端子のデータを読込み、Q端子に出力するD型フリップフロップとして機能する。
図示の通り、8個のLEDドライバは、第3FF回路の8ビット出力を受けるP型のMOSトランジスタで構成されている。各MOSトランジスタは、P型であるので、第3FF回路を構成するD型フリップフロップの出力がLレベルである場合にON動作して、矢印で示す経路の発光駆動電流が流れることになる。
本実施例の場合、SP変換回路CV2から出力される8ビットデータ(QA~QH)は、普通図柄表示部H_DSと遊技実績表示部RCDを構成する8×8個のLEDランプについて、ダイナミック点灯動作を実現するコモンデータ(COM0~COM7)であり、COM0~COM3の何れか一つ、また、COM4~COM7の何れか一つが択一的にLレベルとなり、他は、Hレベルとなる。図示例では、D1入力(COM0)と、D5入力(COM4)がLレベルであり、ソースドライバDVのY1端子とY5端子に接続されたLEDランプが、発光可能な動作タイミングとなる。その後は、COM1とCOM5、COM2とCOM6、COM3とCOM7が順番に選択的にLレベルに変化する。
なお、D型フリップフロップのCK端子に受けるラッチパルスLT2の立上りエッジで、Q端子に読込まれたデータは、次の立上りエッジまで維持される。そのため、ON状態やOFF状態のMOSトランジスタの動作状態は、ラッチパルスLT2の次回の立上りエッジまで維持されることになり、この動作が、ラッチ付きのソースドライバDVにおけるラッチ機能を実現している。
この意味において、ラッチパルスLT2の出力周期τは、コモンデータ(COM0~COM7)の切換え周期となり、出力周期τ毎にActiveラインが切換ることでダイナミック点灯される各LEDの点灯周期は、τ×8ということになる。後述するように、この実施例では、ラッチパルスLT2の出力周期τを4mSにしている。
図12に示す通り、ラッチ付きソースドライバDVの出力端子Y1~Y4は、普通図柄表示部H_DSを構成する4×8個のLEDランプのアノード端子に、電流制限抵抗を介して接続されている。また、ソースドライバDVの出力端子Y5~Y8は、遊技実績表示部RCDを構成する4×8個のLEDランプのアノード端子に、電流制限抵抗を介して接続されている。
一方、普通図柄表示部H_DSと遊技実績表示部RCDを構成する8×8個のLEDランプのカソード端子には、ドライバ付きSP変換回路CVDが出力するセグメントデータ(SG0 ~SG15)が供給されている。したがって、例えば、コモンデータのうち、ソースドライバDVのY1端子から出力されるCOM0がLレベルの動作タイミングでは、普通図柄表示部H_DSを構成する8個のLEDランプが、ドライバ付きSP変換回路CVDが出力するセグメントデータ(SG0 ~SG7 )のH/Lレベルに基づいて、消灯状態又は点灯状態に駆動されることなる。
一方、例えば、コモンデータのうち、ソースドライバDVのY8端子から出力されるCOM7が、Lレベルの動作タイミングでは、遊技実績表示部RCDを構成する8個のLEDランプが、ドライバ付きSP変換回路CVDが出力するセグメントデータ(SG8 ~SG15)のH/Lレベルに基づいて、消灯状態又は点灯状態に駆動されることなる。
図13(a)と図13(b)は、遊技実績表示部RCDと普通図柄表示部H_DSの内部構成を図示したものである。図13(a)に示す遊技実績表示部RCDは、4桁の記号又は数値で、遊技実績を表示しており、7セグメントLEDの各セグメントは、ソースドライバDVに供給されるコモンデータ(COM0~COM3)と、ドライバ付きSP変換回路CVDが出力するセグメントデータ(SG8 ~SG15)に基づいて、点灯/消灯している。
また、図13(b)に示す普通図柄表示部H_DSを構成する各LEDランプは、ソースドライバDVに供給されるコモンデータ(COM4~COM7)と、ドライバ付きSP変換回路CVDが出力するセグメントデータ(SG0 ~SG7 )に基づいて、点灯/消灯している。
次に、図13(c)は、特別図柄表示部S_DSの内部構成を図示したものである。図4(a)に示す通り、AポートのChA2には、2個のSP変換回路CV2が接続され、パラレルポートPOは、2個のソースドライバDVにラッチパルスLT2を供給しているところ、特別図柄表示部S_DSは、2個目のSP変換回路CV2と、2個目のソースドライバを経由して、コモンデータ(COM0~COM15 )を受けている。
一方、セグメントデータ(SEG0~SEG15 )は、AポートのChA4からドライバ付きSP変換回路CVDにシリアル伝送されて、パラレル変換されて出力されているが、この詳細については、SPIのBポートに関して後述する。
以上の回路構成を踏まえてSPIのChA2の説明を続けると、ワンチップマイコンのCPUの制御動作は、図4(c)に示す通りである。(動作c1)先ず、CPUは、16ビット長のコモンデータ(COM0~COM15 )に関し、これを1バイト毎にバッファレジスタBFA2に書込む。すると転記制御回路TRN2wの動作に基づき、ChA2の送信バッファTRBUF1~TRBUF2に2バイト長のコモンデータ(COM0~COM15 )が転記される。なお、コモンデータのデータビット長が8の倍数でない場合には、ダミーデータを付加したコモンデータを、バッファレジスタBFA2に書込む必要がある。
(動作c2)次に、CPUは、動作指示レジスタENBa2に、動作開始指示を書込むことになる。すると、全ての選択回路CTLr、CTLt、CTLcが機能して、受信データラインRXaと、送信データラインTXaと、クロックラインCKaが、SPIのChA2に接続状態となる。
また、動作c2の書込み動作に対応して、開始指令START2が立上り、その立上りエッジに同期して、ChA2の送信バッファTRBUF1~TRBUF2の2バイト長のコモンデータ(COM0~COM15 )が、ChA2の送受信回路CIR2のシフトレジスタ(先頭の16ビット)に転送される。また、開始指令START2の立上りエッジに同期して、動作中信号EN2がアクティブレベルに変化し、このタイミングから適宜に遅れて、動作制御回路ACT2から伝送クロックSCK2の出力が開始される。
したがって、その後は、CPUによる2回のWriteアクセスに対応して、2×8個の伝送クロックSCK2が出力され、2バイト長のコモンデータ(COM0~COM15 )が送信データTXAとしてシリアル出力されることになる。
(動作c3)そこで、CPUは、ChA2に関するステイタスレジスタSTSa2を繰り返し参照して、シリアル送信処理の完了を待つ。(動作c4)次に、シリアル送信処理の完了を確認したCPUは、パラレルポートPOからラッチパルスLT2を出力する。
図4(a)や図12に示す通り、ラッチパルスLT2は、ソースドライバDVのCLK端子に供給されており、SP変換回路CV2の8ビット出力(QA~QHのコモンデータCOM0~COM15 )が、ソースドライバDVの第3FF回路に読込まれる。図4(a)に示す通り、SPI_ChA2には、2個のSP変換回路CV2,CV2が配置され、各SP変換回路CV2に対応して2個のソースドライバDV,DVが配置されている。
したがって、SPI_ChA2からシリアル送信された16ビット長のコモンデータ(COM0~COM15 )は、ラッチパルスLT2の立上りエッジで、第3FF回路に取得され、LEDドライバに供給されることになる。先に説明した通り、ラッチパルスLT2の立上りエッジ後は、第3FF回路のQ出力が維持されるので、次回のラッチパルスLT2を受けるまで、LEDドライバは、ON動作又はOFF動作を継続することになる。
<SPI_AポートのChA3と中継機器CV3の接続関係>
続いて、図11(a)に基づいて、AポートのChA3と、中継機器CV3との接続関係について説明する。本実施例の場合、中継機器CV3は、図10(b)に示す内部構成を有するSP変換回路CV3であり、カスケード接続された複数のSP変換回路CV3・・・が、バスバッファBF3を介して、SPI_ChA3に接続されている。
先に説明した通り、バスバッファBF3は、AポートのChA3からLレベルの動作中信号EN3を受ける場合に限り、アクティブになるので、SP変換回路CV3は、ChA3がシリアル送受信動作を実行している場合に限り、伝送クロックCKAや送信データTXAを受けることになる。
図11(a)に示す通り、伝送クロックCKAは、全てのSP変換回路CV3のSCK端子に共通的に供給され、送信データTXAは、最上流のSP変換回路のSI端子に供給されている。また、全てのSP変換回路CV3のRCK端子には、適宜なタイミングで、パラレルポートPOが出力するラッチクロックLT3が共通的に供給される。
なお、電源投入時、SP変換回路CV3のSCLRバー端子に、電源リセット信号RESETが供給されることで、SP変換回路CV3の第1FF回路のQ出力はLレベルとなる。
特に限定されないが、SPI_ChA3から最上流のSP変換回路CV3のSI端子に送信される送信データTXAには、(1)制御コマンドCMDの1バイトデータ、(2)制御コマンドCMDを取得させるためのストローブ信号STB、(3)ソレノイドを駆動させるためのソレノイド駆動データ、及び、(4)演出ステージ14の一部を回転させるためのモータ駆動データ、が含まれている。
そして、この構成に関連して、SP変換回路CV3には、モータドライバやソレノイド駆動回路が接続されている。また、制御コマンドやストローブ信号は、適宜な中継回路を通して、演出制御基板23の複合チップ50に伝送される。
以上の回路構成を踏まえてSPIのChA3の説明を続ける。ワンチップマイコンのCPUの制御動作は、図4(d)に示す通りであり、制御動作内容は、SPIのChA2の場合と実質的に同じである。
(動作d1)先ず、CPUは、送信データTXAにダミーデータを付加した複数ビット長について、これを1バイト毎にバッファレジスタBFA3に書込むことで、ChA3の送信バッファTRBUF1~TRBUFxに送信データTXAを設定する。
(動作d2)次に、CPUは、動作指示レジスタENBa3に、動作開始指示を書込むことで、全ての選択回路CTLr、CTLt、CTLcを機能させ、受信データラインRXaと、送信データラインTXaと、クロックラインCKaを、SPIのChA3に接続させる。
また、動作d3の書込み動作に対応して、開始指令START3が立上り、その立上りエッジに同期して、ChA3の送信バッファTRBUF1~TRBUFxの送信データが、ChA3の送受信回路CIR3に転送され、また、動作中信号EN3がアクティブレベルに変化する。そして、このタイミングから適宜に遅れて、動作制御回路ACT3から伝送クロックSCK3の出力が開始される。
したがって、その後は、CPUによるx回のWriteアクセスに対応して、x×8個の伝送クロックSCK3が出力され、xバイト長が送信データTXAとしてシリアル出力されることになる。
(動作d3)そこで、CPUは、ChA3に関するステイタスレジスタSTSa3を繰り返し参照して、シリアル送信処理の完了を待つ。(動作d4)次に、シリアル送信処理の完了を確認したCPUは、パラレルポートPOからラッチパルスLT3を出力する。
図11に示す通り、ラッチパルスLT3は、全てのSP変換回路CV3のRCK端子に供給されており、ラッチパルスLT3の立上りエッジに同期して、SP変換回路CV3の第1FF回路に読込み済みの送信データ(xバイト長が送信データ)が、SP変換回路CV3の第2FF回路に転送され、転送データが、そのまま出力されることになる。
先に説明した通り、ラッチパルスLT3の立上りエッジの後、第2FF回路は、その出力を維持するので、次回のラッチパルスLT3が立上るまで、SP変換回路CV3が出力する(1)制御コマンドCMD、(2)ストローブ信号STB、(3)ソレノイド駆動データ、及び、(4)モータ駆動データは、各8ビットの論理レベルを維持することになる。
後述するように、ラッチパルスLT3の送信周期τは、4mSであるが、制御コマンドCMDとストローブ信号STBについては、所定時間(例えば、ラッチパルスの送信回数10回程度の期間)は、全ビットの論理レベルを変更することなく、繰り返し再送信することにしている。
このように、特に、(1)制御コマンドCMDや(2)ストローブ信号STBについては、所定時間、そのレベルを維持する必要がある。そこで、シリアル送信される送信データ毎に、更新周期を変えるのも好適である。図11(b)は、このような構成を例示したものであり、SP変換回路CV3・・・CV3毎に、データ更新周期を規定するべく、各々に固有のラッチパルスCS1~CSnを供給している。
例えば、制御コマンドCMDについて、新規の制御コマンドCMDをシリアル伝送した場合に限り、ラッチパルスCS1を供給する。図11(b)の構成によれば、一旦、SP変換回路CV3の第2FF回路に設定された制御コマンドCMDは、別の次の制御コマンドCMDがシリアル伝送されるまで、変化しないので好適である。なお、図11(b)には、n個のラッチパルスCS1~CSnが記載されているが、実際には、CS2~CSnの全部又は一部は、共通化される。
<SPI_AポートのChA4と中継機器CV4の接続関係>
続いて、AポートのChA4と、中継機器CVDとの接続関係について説明する。本実施例の場合、中継機器CVDは、情報端子基板38に配置されたドライバ付きSP変換回路CVDである。図17は、情報端子基板38の回路構成を図示したものであり、主制御部のSPI_AポートのChA4からN(=12)ビット長の遊技情報INFを受けて、ホールコンピュータHCに転送している。
図17に示す通り、SP変換回路CVDの出力端子は、N(=12)個のフォトカプラPHのフォトダイオードに接続されており、パラレル変換された遊技情報INFのレベルに応じて、フォトダイオードが点灯駆動されるよう構成されている。
そして、フォトカプラPHを経由したNビットの遊技情報INFは、N個のリレー回路RLYを経由してホールコンピュータHCに伝送される。リレー回路RLYは、特に限定されないが、図17に示す実施例では、ON動作に要する時間が3mS程度、OFF復帰に要する時間が1mS程度になっている。したがって、高周波ノイズなど、3mSより十分に短時間(例えば1mS以下)のON電流では、リレー回路RLYがON動作するおそれがない。
上記のリレー回路RLYを駆動する遊技情報INFには、(a)前回の賞球信号の送信後、賞球数が10個に達したことを示す賞球信号、(b)ガラス扉6などが開放されたことを示すドア開放信号DOR、(c)図柄始動口15a,15bへの入賞に伴う一連の変動動作の終了タイミングを示す終了信号、(d)図柄始動口15a,15bへの入賞を示す入賞信号、(e)大当り遊技中であることを示す大当り信号、(f)不正遊技の可能性を示す異常信号(セキュリティ情報)、(g)その他、遊技者の利益に関する利益信号、が含まれている。
ここで、(a)賞球信号、(c)終了信号、及び(d)入賞信号は、何れも時間幅100ms程度に成形されて出力される。その他、何れの遊技情報INFも、そのON継続時間が100mSを下回ることがないよう構成されており、リレー回路RLYをON動作させるに十分な時間を有している。特に、(f)異常信号については、防犯上の重要性に鑑み、ON継続時間が30秒を下回らないよう構成されている。
以上の回路構成を踏まえてSPIのChA4の説明を続ける。ワンチップマイコンのCPUの制御動作は、図4(e)に示す通りである。
(動作e1)先ず、CPUは、送信データTXAにダミーデータを付加した複数ビット長について、これを1バイト毎にバッファレジスタBFA3に書込むことで、ChA3の送信バッファTRBUF1~TRBUFxに送信データTXAを設定する。先に説明した通り、実施例の場合、遊技情報INFは12ビット長であるので、送信データTXAは、ダミーデータ4ビットを加えた16ビットである。
(動作e2)次に、CPUは、動作指示レジスタENBa4に、動作開始指示を書込むことで、全ての選択回路CTLr、CTLt、CTLcを機能させ、受信データラインRXaと、送信データラインTXaと、クロックラインCKaを、SPIのChA4に接続させる。
また、動作e2の書込み動作に対応して、開始指令START4が立上り、その立上りエッジに同期して、ChA4の送信バッファTRBUF1~TRBUF2の送信データが、ChA4の送受信回路CIR4に転送され、また、動作中信号EN4がアクティブレベル(L)に変化する。そして、このタイミングから適宜に遅れて、動作制御回路ACT4から伝送クロックSCK3の出力が開始される。
したがって、その後は、CPUによる2回のWriteアクセスに対応して、16個の伝送クロックSCK4が出力され、2バイト長が送信データTXAとしてシリアル出力されることになる。その後、16ビット長のシリアル送信動作が終わると、動作中信号EN4が非アクティブレベル(H)に戻る。
後述するように、実施例のSP変換回路CVDは、動作中信号EN4が、非アクティブレベル(H)に立上ることに対応して、シリアル伝送された送信データを取得するよう構成されている。したがって、CPUは、上記した動作e2の後は、ラッチ信号の出力などの制御処理を実行する必要がない。なお、図4(e)に記載の通り、SP変換回路CVDが取得した送信データは、その後も、その値が維持される。
<SPI_Bポートと中継機器CVDの接続関係>
次に、図4(a)に基づいて、SPI_Bポートと、中継機器たるドライバ付きSP変換回路CVDとの接続関係を説明する。先に説明し、図5に記載の通り、SPI_Bポートには、1チャンネルのシリアル送信ポートに特化されている。したがって、動作中信号ENを受けるバスバッファの配置は不要である。
図4(a)に示す通り、SPI_Bポートには、複数のSP変換回路CVD・・・CVDがカスケード接続されており、各SP変換回路CVDは、クロックラインCKbと、送信データラインTXbを介して、SPI_Bポートに接続されている。また、全てのSP変換回路CVDは、SPI_Bポートが出力する動作中信号ENを受けており、このレベルに基づいて適宜なデータ取得動作を実現している。
図示の通り、最上流のSP変換回路CVDは、ダイナミック点灯される普通図柄表示部H_DSと遊技実績表示部RCDについて、セグメントデータをシリアル受信するよう構成されている。また、次段のSP変換回路CVDは、ダイナミック点灯される特別図柄表示部S_DSについて、そのセグメントデータをシリアル受信するよう構成され、その他のSP変換回路CVDは、スタティック(Static)点灯されるLEDランプのランプ駆動データや、モータ駆動データなどをシリアル受信するよう構成されている。
CPUの制御動作は、AポートChA4の場合と同じである。すなわち、(動作f1)先ず、CPUは、必要時には、送信データTXBにダミーデータを付加した複数バイト(=x)長について、これを1バイト毎にバッファレジスタBFBに書込むことで、ポートBの送信バッファTRBUF1~TRBUFxに送信データTXBを設定する。
(動作f2)次に、CPUは、動作指示レジスタENBbに、動作開始指示を書込む。すると、開始指令STARTが立上り、その立上りエッジに同期して、ポートBの送信バッファTRBUF1~TRBUFxの送信データが、ポートBの送受信回路CIRに転送され、また、動作中信号ENがアクティブレベル(L)に変化する。
そして、このタイミングから適宜に遅れて、動作制御回路ACTから伝送クロックCKBの出力が開始され、CPUによるx回のWriteアクセスに対応して、8×x個の伝送クロックCKBが出力され、xバイト長が送信データTXBとしてシリアル出力される。そして、その後、8×xビット長のシリアル送信動作が終わると、動作中信号ENが非アクティブレベル(H)に戻るタイミングで、複数のSP変換回路CVD・・・CVDが送信データを取得して、出力データを更新する。
更新されたデータは、その後も維持されること、及び、CPUは、上記した動作f2の後は、ラッチ信号の出力などの制御処理を実行する必要がないことは、上記したSPI_AポートのChA4の場合と同じである。
<ドライバ付きSP変換回路CVD>
続いて、SPI_Bポートや、SPI_AポートのChA4からシリアル送信データTXB,TXAを受けるドライバ付きSP変換回路CVDについて説明する。図14は、SP変換回路CVDが、SPI_Bポートから、シリアル送信データTXBとして、ダイナミック点灯用のLEDセグメントデータを受ける場合を図示したものである。
また、図15は、SP変換回路CVDが、SPI_AポートのChA4から、シリアル送信データTXAとして、遊技情報INFを受ける場合や、SPI_Bポートから、シリアル送信データTXBとして、スタティック点灯用のLED駆動データを受ける場合を図示したものである。なお、ドライバDRを構成するNChMOSトランジスタのドレイン端子と、電源ラインVBとの間には、クランプダイオードDPが配置されており、モータなどを駆動する場合には、MOSトランジスタのOFF遷移時に発生する逆方向起電力を適宜にクランプしている(図16(a)参照)。
図14の上部に示す通り、ドライバ付きSP変換回路CVDは、8個のD型フリップフロップDFFで構成された上流側のシフトレジスタAと、シフトレジスタAの取得データを受ける上流側8個の選択取得回路Aと、8個のD型フリップフロップDFFで構成された下流側のシフトレジスタBと、シフトレジスタBの取得データを受ける下流側8個の選択取得回路Bと、選択取得回路A及び選択取得回路Bから受けるデータに基づいてON/OFF動作する16個のドライバDRとを中心に構成されている。
SP変換回路CVDは、DIN端子と、SCK端子と、CSバー端子とを有しており、各々、SPI_Bポートから、シリアル送信データTXBと、伝送クロックCKBと、動作中信号ENと、を受けている。また、RESETバー端子には、電源リセット信号が供給される。
電源リセット信号と、シリアル送信データTXBと、伝送クロックCKBと、動作中信号ENは、各々、過電圧(サージ電圧)を吸収し、ノイズを除去する入力回路Fiを経由して、内部回路に伝送されている。
図示の通り、ANDゲートG11は、電源リセット信号と、NOTゲートG10が出力する動作中信号ENの反転信号と、を受けてクリア信号CLRを出力している。また、クロック数検出回路DETは、クリア信号CLRを受けてクリアされた後、伝送クロックCKBの個数をカウントし、8個目又はその整数倍の伝送クロックCKBを受けるとHレベルに変化するゲート開閉信号GTを出力している。なお、ゲート開閉信号GTは、8の整数倍以外の伝送クロックCKBを受けるとLレベルに戻る。
上流側Aと下流側Bのシフトレジスタを構成するD型フリップフロップDFFは、各々、CD端子を有しており、このCD端子にLレベルのデータを受けると、Q端子がクリアされるよう構成されている。一方、CD端子がHレベルである場合には、SK端子に受ける伝送クロックCKBの立上りエッジに同期して、D端子のデータを取得してQ端子に出力する。
下流側Bのシフトレジスタに続いて、最下流位置に配置されたD型フリップフロップOUTFFは、そのSK端子に、NOTゲートG12を経由した伝送クロックCKBの反転信号を受けており、伝送クロックCKBの立下りエッジに同期して、シリアル送信データTXBを出力している。出力されたシリアル伝送データは、カスケード接続された下流側のSP変換回路CVDのDIN端子に伝送される。
全ての選択取得回路A/Bは、各々、選択回路SELと、D型フリップフロップで構成された取得回路DFFとで構成されており、取得回路DFFのQ端子は、選択回路SELのA0端子に接続されている。また、選択回路SELのA1端子は、シフトレジスタを構成する上段のD型フリップフロップDFFのQ端子の出力を受けている。一方、選択回路SELのS端子は、ゲート開閉信号GTを受けており、選択回路SELのZ端子の出力は、取得回路DFFのD端子に供給されている。
また、取得回路DFFのSK端子は、動作中信号ENを受けており、動作中信号ENの立上りエッジで、D端子の信号を取得してQ端子に出力するよう構成されている。そして、取得回路DFFのQ端子の信号は、ドライバDRのゲート端子に供給されることで、ドライバのON/OFF動作を制御している。先に説明した通り、動作中信号ENは、一連のシリアル送信動作の開始時にLレベル(アクティブレベル)となり、送信動作終了後にHレベルに戻る。
したがって、取得回路DFFは、一連のシリアル送信動作の終了時に、その時のD端子のデータを、新規の更新データとして、Q端子に出力してドライバDRに伝送することになる。言い換えると、取得回路DFFは、一連のシリアル送信動作中は、取得回路DFFのD端子への入力データに拘らず、Q出力が変化しないラッチ機能を発揮する。
図16(a)は、クロック数検出回路DETと、選択回路SELと、取得回路DFFとの関係を図示したものである。クロック数検出回路DETは、伝送クロックCKBの立上りエッジで更新される8進カウンタCTと、8進カウンタCTの3ビットの出力を受けるNORゲートG13とで、構成されている。
そして、8進カウンタCTは、クリア信号CLRを受けてクリアされた後、伝送クロックCKBの個数を1~7とカウントし、8個目の伝送クロックCKBを受けるとゼロに戻る。8進カウンタCTの動作は、その後も同じであり、8×N番目の伝送クロックを受けるゼロに戻る。
NORゲートG13は、8進カウンタCTの3ビットの出力を受けて動作するので、クリア信号CLRを受けてHレベルのゲート開閉信号Gを出力し、その後、1番目から7番目までの伝送クロックCKBを受けるタイミングでは、ゲート開閉信号GをLレベルに維持することになる(図16(b)参照)。
そして、8番目の伝送クロックCKBを受けると、8進カウンタCTの3ビット出力が0000となるので、NORゲートG13は、Hレベルのゲート開閉信号Gを出力する。その後の動作も同じであり、その後、9番目から15番目までの伝送クロックCKBを受けるタイミングでは、ゲート開閉信号GをLレベルに維持し、16番目の伝送クロックCKBを受けて、Hレベルのゲート開閉信号Gを出力することになる。
以上の通り、クロック数検出回路DETは、伝送クロックCKBの個数が8の倍数に一致するタイミングで、Hレベルのゲート開閉信号Gを出力し、それ以外は、Lレベルを維持することになる。このゲート開閉信号Gは、シリアル伝送される一連の更新データTXBを、取得回路DFFに伝送するか否か、つまり、更新データを取得するか否かを規定する制御信号として機能する。すなわち、以下に説明するように、本実施例では、ゲート開閉信号GTを使用することで、伝送クロックCKBの個数が8の倍数に一致するタイミングの更新データだけを取得し、その他の更新データを無視している。
以上の動作を実現する選択回路SELについて説明を続ける。図示の通り、選択回路SELは、S端子にゲート開閉信号GTを受けると共に、A1端子に、シフトレジスタを構成するD型フリップフロップDFFのQ出力を受けている。また、A0端子には、取得回路DFFのQ出力を受けている。
そして、選択回路SELは、ゲート開閉信号GTがLレベルの場合にA0端子の信号を通過させるANDゲートG14と、ゲート開閉信号GTがHレベルの場合にA1端子の信号を通過させるANDゲートG15と、ANDゲートG14,G15の出力を受けてZ信号を出力するORゲートG16とを有して構成されている。
選択回路SELは、上記の通りに構成されているので、ORゲートG16が出力するZ信号は、ゲート開閉信号GT=Lの場合にはZ信号=A0となり、一方、ゲート開閉信号GT=Hの場合にはZ信号=A1となる選択動作を実現する。先に説明した通り、クロック数検出回路DETの8進カウンタCTは、伝送クロックCKBの立上りエッジで更新されるので、伝送クロックCKBの1個目から7個目までの間はZ信号=A0であり、8個目の伝送クロックCKBの立上りエッジから9個目の伝送クロックCKBの立上りエッジまでの間だけ、Z信号=A1となる(図16(b)参照)。
ここで、A0端子の信号は、前回のシリアル伝送によって取得した取得済データであり、Z信号=A0を維持する伝送クロックCKBの1個目から7個目までの間は、取得回路DFFのD端子には、取得済みのデータが再入力されることになる。
一方、8個目の伝送クロックCKBを受けると、Z信号=A1となる。A1端子の信号は、シフトレジスタを構成する上段側のD型フリップフロップDFFのQ出力であって、要するに、今回のシリアル伝送における取得データ(更新データ)に他ならない。そのため、この8個目の伝送クロックCKBを受けたタイミングでは、取得回路DFFのD端子には、更新データが入力されることになる。
例えば、図16(c)に示すように、SPI_Bポートからのシリアル伝送データTXBのデータ長が1バイトの場合には、8個目の伝送クロックCKBの後に、動作中信号ENがHレベルに立上る。そして、動作中信号ENは、全ての取得回路DFFのSK端子に供給されているので、動作中信号ENの立上りタイミングで、取得回路DFFのD端子に供給されているデータが、取得回路DFFのQ端子に取得されることになる。
先に説明した通り、8個目の伝送クロックCKBの立上りエッジで、ゲート開閉信号GTは、Hレベルに変化し、全ての選択回路SELにおいて、Z=A1の関係が成立する。ここで、A1は、新規にシリアル伝送された更新データであり、Z信号は、各取得回路DFFのD端子に供給されているので、各取得回路DFFは、動作中信号ENの立上りタイミングに同期して更新データを取得することになる。
本実施例が上記の構成を採るのは、シリアル伝送ライン(具体的には、クロックラインCKb/CKa)に重畳する可能性のあるノイズを考慮したためである。例えば、8個の伝送クロックCKBを伝送したにも拘らず、ノイズによる伝送クロックが途中で混在したために、SP変換回路CVDが9個の伝送クロックCKBを受けた場合を想定する。
このような場合、動作中信号ENは、SP変換回路CVDが9個目の伝送クロックCKBを受けた後に立上ることになる。しかし、9個目の伝送クロックCKBを受けたタイミングでは、ゲート開閉信号GTはLレベルであり(図16(b)参照)、Z=A0の関係が成立するので、動作中信号ENの立上りタイミングに同期して取得するデータは、既に取得済みの旧データであって、新規データに更新されることはない。
以上の関係は、例えば、8個の伝送クロックCKBを伝送したにも拘らず、ノイズの影響で伝送クロックが消失して、SP変換回路CVDが7個の伝送クロックCKBしか受けなかった場合にも成立する。すなわち、7個目の伝送クロックCKBを受けたタイミングでは、ゲート開閉信号GTはLレベルであり(図16(b)参照)、Z=A0の関係が成立するので、動作中信号ENの立上りタイミングに同期して取得するデータは、既に取得済みの旧データであって、新規データに更新されることはない。
以上の通り、本実施例では、伝送クロックCKBが8の倍数に達したタイミングで、シリアル送信データTXBを取得するよう制限することで、耐ノイズ性を高めている。なお、実施例のSP変換回路CVDは、このような構成を採るので、8の倍数とならない個数の送信データを送信することはできない。但し、SPI_AポートもSPI_Bポートも、バイト単位のシリアル送信をするよう構成されているので、上記の点は、事実上、何の弊害にもならない。
以上、SP変換回路CVDの内部構成と、各部の動作を説明したが、図14の回路動作について、図16(b)に基づいて念のため説明する。先ず、電源投入後、電源リセット期間を経過すると、電源リセット信号RESETはHレベルを維持し、SPI_Bポートも非動作中は、動作中信号ENがHレベルを維持する。そのため、ANDゲートG11が出力するクリア信号CLRが、Lレベルを維持することになり、シフトレジスタAと、シフトレジスタBの各8ビット出力(DA0~GA7と、DB0~GB7)は、全てLレベルとなる。
そして、クリア信号CLRがLレベルであることで、8進カウンタCTの出力は、ゼロとなり、ゲート開閉信号GTは、Hレベルとなる。その後、SPI_Bポートがシリアル送信処理を開始すると、動作中信号ENがLレベルに変化し、伝送クロックCKBの伝送が開始される。
特に限定されないが、本実施例では、伝送クロックCKBの立上りエッジで、シリアル送信データTXBが送出されると共に、8進カウンタCTが更新されるよう構成されている。そして、送出されたシリアル送信データTXBは、伝送クロックCKBの立下りエッジで、シフトレジスタAとシフトレジスタBに取得される。
取得された送信データTXBは、シフトレジスタA及びシフトレジスタBのQ端子から、選択取得回路A及び選択取得回路BのA1端子に供給されるが、1個目から7個目までの伝送クロックCKBの伝送時は、ゲート開閉信号GTがLレベルであるので、選択回路SELを通過することができず、選択取得回路A及び選択取得回路Bの取得回路DFF(D型フリップフロップ)に伝送されることはない。
そして、その後、8個目の伝送クロックCKBの伝送に対応してゲート開閉信号GTがHレベルとなるので、1バイト伝送時であれば、その後、動作中信号ENが立上るタイミングで、その時のシフトレジスタAの取得値(1バイト)が、選択取得回路AのD型フリップフロップ(取得回路DFF)に取得されることになる(図16(c)参照)。
一方、2バイト伝送時であれば、その後も、動作中信号ENはLレベルであり、ゲート開閉信号GTも、9個目から15個目までの伝送クロックCKBの伝送時にLレベルを維持する。
そして、その後、16個目の伝送クロックCKBの伝送に対応してゲート開閉信号GTがHレベルとなり、その後、動作中信号ENが立上るので、その時のシフトレジスタA/Bの取得値(2バイト)が、選択取得回路A/BのD型フリップフロップ(取得回路DFF)に取得されることになる(図16(b)参照)。
<主制御部21の制御動作>
以上、特に、第2シリアルポートSPIについて詳細に説明したので、続いて、主制御部21の制御動作について説明する。図18は、主制御部21の動作を説明するフローチャートであり、CPUリセット後に実行されるメインルーチン(図18(a))と、所定時間τm(=4mS)毎に起動されるタイマ割込みルーチン(図18(b))と、を示している。
電源リセット信号RESET(図9)に基づき、ワンチップマイコンMCのCPUがリセットされると、CPUが割込み禁止状態に設定された後(ST1)、ワンチップマイコンMCの内部レジスタが初期設定される(ST2)。
次に、初期化スイッチSWが操作されたことを示すRAMクリア信号CLRを取得して一時記憶し、また、設定スイッチSETが操作された場合には、大当り抽選などの当選確率を決定する。次に、ワンチップマイコンMCに内蔵されたウォッチドッグタイマWDTをクリアしつつ(ST4)、動作開始信号BGNがHレベルになるのを待機する(ST5)。
動作開始信号BGNは、払出制御部25において、払出動作の準備が完了したことを示す信号であり、主制御部21と払出制御部25の制御動作を整合させるための信号である。そして、初期化スイッチSWがON操作されたことで、RAMクリア信号CLRがONレベルの場合(ST6)や、電源監視処理で記憶されたバックアップフラグBFLが破壊されている場合(ST7)や、内蔵RAMのチェックサム値が電断前の値と一致しない場合(ST7~ST9)には、内蔵RAMの記憶内容が維持されていないと判定して、内蔵RAMをゼロクリアする(ST10)。
また、内蔵RAMがゼロクリアされたことを示す制御コマンドであるRAMクリアコマンドCMDを演出制御部23に送信する(ST11)。一方、内蔵RAMの記憶内容が正しく維持されていると判定される場合には(ST9がY判定)、バックアップフラグBFLをクリアし(ST12)、ワンチップマイコンMCの内蔵CTC回路を初期設定した上で、タイマ割込み動作を開始するべく、CPUを割込み許可状態に設定する(ST13~ST14)。
以上の処理によって、主制御部21では遊技制御動作が開始可能となるのでして、遊技球の発射を許可するべくONレベルの発射許可信号を出力して(ST15)、無限ループ処理を開始する。
続いて、4mS毎に起動されるタイマ割込み処理について説明する。先ず、電源基板20から伝送される電断信号ABN1のレベルに基づいて(図3参照)、交流電源が遮断されていないかを判定し、交流電源が遮断されたと判定される場合には、必要なバックアップ処理を実行して、バックアップフラグBFLを所定値にセットした上で、直流電源が遮断状態となることを待つ(ST20)。なお、バックアップ処理には、チェックサム値を算出して記憶する処理が含まれている。
一方、電断異常が判定されない場合には、抽選処理用の乱数値を更新し(ST21)、各種の遊技動作用のタイマ値を減算して更新する(ST22)。また、入賞口15~18に内蔵された検出スイッチのスイッチ信号や、払出制御部25から伝送される通信異常信号や、払出制御部25から伝送される払出に関する異常信号を含む各種のスイッチ信号を取得する(ST23)。この取得処理の全部又は一部では、図4や図5に示す第2シリアルポートSPIのAポートが機能する。
先に説明した通り、第2シリアルポートSPIのAポートが機能する動作には、(1)払出制御基板25から主制御基板21にパラレル伝送されたパラレル信号の一部をCPUにシリアル伝送すること、(2)各種の防犯センサからのスイッチ信号をCPUにシリアル伝送すること、(3)遊技球の投入個数Insertをリアルタイムに算出するべく、遊技球の監視スイッチからのスイッチ信号をCPUにシリアル伝送すること、(4)普通入賞口17やゲート18からのスイッチ信号をCPUにシリアル伝送すること、が含まれている。
ステップST23の処理を、より具体的に確認すると、先ず、パラレルポートPOから取得パルスLOADが出力される(図4(b)の動作b1参照)。次に、図6や図9に示すSPI_AポートのChA1が機能して、取得パルスLOADによって主制御部21に取得済みのパラレルデータが、シリアル受信データRXAとして、SPI_AのChA1の受信バッファRVBUF1~RVBUF16に取得され、ChA1のバッファレジスタBFA1を経由してCPUに取得される。
なお、CPUが取得するデータは、バッファレジスタBFA1に対するReadアクセス回数N(=4)に対応して、32ビット長であるが(図4(b)の動作b5参照)、本実施例で実際に活用されるのは、フィルタ処理を経た28ビットであることは先に説明した通りである。
また、本実施例のSPI_Aポートには、シリアル受信専用の動作が存在しないので、Nバイト長のシリアル受信のために、Nバイト長のダミーデータがシリアル送信されることも先に説明した通りである(図4(b)の動作b2参照)。
次に、ステップST23の処理で取得したスイッチ信号に基づいて、遊技実績の更新処理や、異常判定処理を実行し、異常判定値には、異常報知用の異常フラグをセットすると共に、その他の必要な対応処理を実行する(ST24)。
次に、遊技球の入賞時には、賞球数を特定した賞球コマンドSYOiが、コマンドバッファBUFFに作成される(ST25)。そして、コマンドバッファBUFFから読み出された賞球コマンドSYOiは、第1シリアルポートUARTを経由して、払出制御部25に向けてシリアル伝送される(ST26)。この伝送経路に特徴があり、伝送異常が判定可能であることは、図2(b)に関して説明した通りである。
ステップST26の処理が終われば、普通図柄表示部H_DPが変動する当り中か否かに応じて、適宜な普通図柄処理(ST28)と普通電動役物処理(ST30)を実行し、図柄始動口15a,15bに関する特別図柄処理を実行する(ST31)。そして、大当り中であれば、大入賞口16を開閉させ特別電動役物処理を実行する(ST33)。そして、最後に、第2シリアルポートSPIのAポートやBポートを使用して、必要なデータを各部にシリアル送信する(ST34)。
なお、必要なデータをシリアル送信するべく、データの種別毎にバッファ領域が確保されており、各バッファ領域のデータが、上記の処理(ST28、ST30、ST31、ST33など)に基づき、適宜なタイミングで更新される。
ステップST34において実行されるシリアル送信処理には、(1)LEDランプ駆動データを、遊技実績表示部RCDの駆動回路にシリアル送信すること、(2)LEDランプ駆動データを、特別図柄表示部Sa_DP,Sb_DPの駆動回路にシリアル送信すること、(3)LEDランプ駆動データを、普通図柄表示部H_DPの駆動回路にシリアル送信すること、(4)演出ステージ14の一部を回転させるべくモータ駆動データを、演出モータMTのドライバICにシリアル送信すること、(5)制御コマンドCMDを演出制御部23に対してパラレル出力するべく、SP(serial to parallel)変換回路CV3に、制御コマンドCMDの1バイトデータをシリアル送信すること、(6)SP変換回路CV3に、ソレノイド信号や、ストローブ信号STBをシリアル送信すること、(7)情報端子基板38のSP変換回路CVDに、必要な遊技情報INFをシリアル送信すること、が含まれている。
ここで、LEDランプ駆動データには、ダイナミック点灯動作におけるコモンデータとセグメントデータが含まれている。そして、コモンデータは、モータ駆動データやストローブ信号STBなどと同様に、ワンチップマイコンMCのROMに記憶されており、その読み出し位置が所定時間(例えば4mS)毎に更新されるようになっている。
一方、セグメントデータ、制御コマンドCMD、ソレノイド信号、及び、遊技情報INFについては、各データを一時保存するバッファ領域が確保されており、必要なタイミングで各データが更新されるようになっている。そして、所定時間毎に、各バッファ領域のデータが読み出され、データ更新の有無に拘わらずシリアル送信される。
上記の処理を具体的に確認すると、図4(c)に示す通り、先ず、SPI_AポートのChA2が機能して、遊技実績表示部RCD、普通図柄表示部H_DP、及び、特別図柄表示部Sa_DP,Sb_DPを構成するLEDランプ群に対して、ダイナミック点灯用のコモンデータを供給するべく、一連の送信データTXA(Common Data )が、SP変換回路CV2,CV2にシリアル送信される。また、その後、パラレルポートPOからソースドライバDV,DVに、ラッチパルスLT2が出力される(図4(c)の動作c4参照)。
また、図4(d)に示す通り、SPI_AポートのChA3が機能して、演出モータMTへのモータ駆動データや、制御コマンドCMDや、ソレノイド信号や、ストローブ信号STBがSP変換回路CV2にシリアル伝送され、その後、パラレルポートPOからラッチパルスLT3が出力される(図4(d)の動作d4参照)。なお、ラッチパルスLT3は、必ずしも、4mS毎に送信される必要はないことは先に説明した通りである。
次に、図4(e)に示す通り、SPI_AポートのChA4が機能して、情報端子基板38のSP変換回路CVDに、必要な遊技情報INFがシリアル送信される。なお、遊技情報INFは、必ずしも、4mS毎に更新される訳ではないが、同一情報であっても、4mS毎に繰り返しシリアル送信するので、万一、誤情報の送信があっても、その弊害を解消している。
また、図4(f)に示す通り、SPI_Bポートが機能して、遊技実績表示部RCD、普通図柄表示部H_DP、及び、特別図柄表示部Sa_DP,Sb_DPを構成するLEDランプ群について、ダイナミック点灯用のセグメントデータを供給するべく、一連の送信データTXB(Segment Data)が、SP変換回路CVDにシリアル送信される。また、スタティック点灯されるLEDランプ群や、モータについて、各々の駆動データがSP変換回路CVDにシリアル送信される。
ここで、上記したステップST34の各動作は、一気に実行されるが、その動作は図19(a)に示す通りである。先ず、CPUは、ChAiからシリアル送信すべき送信データを、ChAiのバッファレジスタBFAiに1バイト毎に書き込む(i=2~4に対応してST40~ST42)。先に説明した通り、送信データはバイト単位でなくてはならないので、必要時には、ダミーデータを付加することになる。
何れにしても、CPUがバッファレジスタBFAiに書き込んだ送信データは、ChAiの転記制御回路TRNiwが機能して、ChAiの送信バッファTRBUF1~TRBUFnに順番に転送される。なお、送信データの蓄積に対応して、SPI_AポートのステイタスレジスタSTSaiに設定されるデータ蓄積数がバイト単位で増加する。
上記の点は、SPI_Bポートについても同様であり、CPUは、ChBのバッファレジスタBFBに1バイト単位で書き込む毎に、そのデータは、転記制御回路TRNbの機能に基づき、ChBの送信バッファTRBUF1~TRBUFnに順番に転送される(ST43)。なお、ステイタスレジスタSTSbに設定されるデータ蓄積数がバイト単位で増加する。
そこで、次に、CPUは、SPI_Aポートの動作指示レジスタENBaの動作指示レジスタENBaに動作開始指示を書き込むことで、ChA2~ChA4におけるシリアル送信動作を開始させる(ST44)。すると、ChA2~ChA4の送信バッファTRBUF1~TRBUFnの送信データが、SPI_Aポートの送受信回路CIR2~CIR4に転送され、伝送クロックCKAに同期したシリアル送信動作が開始される。そして、シリアル送信動作の開始に対応して、SPI_AポートのステイタスレジスタSTSaiに設定されたデータ蓄積数はゼロとなる。
SPI_Bポートについても同様であり、CPUは、SPI_Bポートの動作指示レジスタENBbに動作開始指示を書き込むことで、SPI_Bポートにおけるシリアル送信動作を開始させる(ST45)。
そして、その後は、ChA2~ChA3の送信動作終了まで、ステイタスレジスタSTSaiを確認しつつ待機し(ST46~ST47)、シリアル送信完了時に、パラレルポートPOを制御してラッチパルスLT2,LT3を出力する(ST48)。なお、SPI_ChA4とSPI_Bポートについては、SP変換回路CVDを配置しているので、ラッチパルスの出力は不要である。
ところで、先に説明した通り、本実施例のSPI_Aポート(ChA1~ChAn)は、各一本のクロックラインCKaと、送信ラインTXaと、受信ラインRXaとを共用している。そこで、本実施例のように、複数チャンネル(ChA2~ChAn)のシリアル送受信動作の開始が、事実上同時に指示された場合には、予め規定されたチャンネル番号の昇順にシリアル送信動作が連続されるよう構成されている。
具体的には、図19(b)に示す通りであり、先ず、ChA2のシリアル送信動作が実行され、これが終わると、ChA3のシリアル送信動作が実行され、これが終わると、ChA4のシリアル送信動作が実行されることになる。
なお、本実施例において、AポートやBポートにおける、送信バッファTRBUF1~TRBUF16の構成や、送受信回路CIRiの構成から確認されるように、一回サイクルのシリアル伝送動作におけるデータビット長は、最高16バイトに制限される。そこで、16バイトを超えるバイト長のデータを送信したい場合には、次サイクルのシリアル送信のために、AポートやBポートのバッファレジスタBFAi/BFBへの書込み動作を適宜なタイミングで実行する必要がある。
16バイトを超える送信データを送信したい場合の具体的な手順として、CPUは、先ず、初回サイクルの送信データをバッファレジスタBFAiに1バイト毎に設定する。次に、動作指示レジスタENBaiへの書込み処理によって送信動作を開始させた後、例えば、ステイタスレジスタSTSaiを参照してデータ蓄積数がゼロになったことを確認した上で、次サイクル用の送信データをバッファレジスタBFAiに設定する。そして、ステイタスレジスタSTSaiを参照して、初回サイクルの送信動作の完了を確認すれば、動作指示レジスタENBaiへの書込み処理によって次サイクルの送信動作を開始させることになる。
また、実施例のSPI_Aポートにおいて、シリアル送信動作は、シリアル送受信動作として実行されるので、SPI_Aポート(ChA2~ChA4)を使用したシリアル送信時に、受信バッファRVBUF1~RVBUF16に外部データを取得することも可能となる。
例えば、クロックラインCKaと、受信ラインRXaとを、シフトレジスタを内蔵した外部機器に接続して、SPI_Aポート(ChA2~ChA4)のシリアル送信時に並行して、シリアルデータRXAを受信するのも好適である。例えば、図9に示すChA1のシリアル受信動作を、ChA2~ChA4何れかのシリアル送信時に並行させることが考えられる。
図19(b)に示す送信データTXAと受信データRXAの関係から確認される通り、シリアル送信が終われば、CPUは、ステイタスレジスタSTSaiに基づいて、そのことを確認した後、シリアル受信データRXAを、バッファレジスタBFAiを経由して1バイト毎に取得することができる。もっとも、シリアル送信される送信データのビット長と、シリアル受信すべき受信データのビット長は、一般に、一致しないので、CPUは取得した受信データについて適宜なフィルタ処理が必要となる。
以上、実施例について詳細に説明したが、具体的な記載内容は特に本発明を限定せず、適宜に変更可能であり、具体的な回路構成は、何ら本発明を限定するものではない。例えば、実施例では、パラレルポートPOから、ラッチパルスLT2,LT3を出力したが、動作中信号EN2,EN3の立上りエッジに基づいて動作するワンショットマルチバイブレータを配置することで、パラレルポートPOの動作を解消することもできる。
また、実施例では、駆動電流を送出するソースドライバDVを使用したが、これに代えて、駆動電流を受け入れるシンクドライバを使用しても良い。また、主制御基板21のSPIポートを活用する実施例を説明したが、払出制御基板25から主制御基板21への情報伝達に、払出制御基板25のワンチップマイコン(SPIポート)を活用するのも好適である。
また、実施例では、SPI_AポートChA1を使用したシリアル受信動作に先行してパラレルポートPOが機能して、パルス状の取得信号LOADを、PS変換回路PS1に出力したが、何ら限定されない。
例えば、パルス状の取得信号LOADを、定時的に繰り返し出力する発振器を設けて、外部データを自動的に取得させれば、パラレルポートPOの制御処理が不要となる。また、ラッチ機能を持たないPS変換回路PS1、例えば、入力される外部データを無条件に取得するバッファを内蔵するPS変換回路PS1、を使用しても良く、この場合も、パラレルポートPOによる取得信号LOADの出力処理が不要となる。
なお、これらパラレルポートPOの制御処理を排除した場合には、PS変換回路PS1が外部データを取得するタイミングと、PS変換回路PS1がシリアル伝送処理を開始するタイミングと、が重複する可能性があり、取得途中の過渡的な外部データがシリアル伝送される可能性もある。
しかし、適宜に短い実行周期で(例えば4mS)、外部データを繰り返しシリアル受信し、複数回の受信データが同一レベルであることを条件に、その受信データを制御動作に使用するようにすれば、事実上、何の問題も生じない。
また、上記の説明では、主制御部21と払出制御部25のワンチップマイコンが同一構成であるように説明したが、何ら限定されず、主制御部21と払出制御部25の何れか一方、又は、双方に、実施例で説明したSPIポートに類する構成が存在すれば足りる。
なお、図4に示す実施例では、SP変換回路CV2と、ドライバ付きSP変換回路CVDと、ソースドライバDVを、各2個使用してダイナミック点灯動作を実行したが、簡素化の観点からは、特別図柄表示部S_DSの構成を簡略化するのも好適である。また、図4に示す実施例では、コモンデータとセグメントデータを異なるSPIポートを経由してシリアル伝送したが、コモンデータとセグメントデータを、共通のSPIポートから出力するのも好適である。
図20と図21は、上記の要請に応える実施例であり、特定のSPIポート(例えば、SPI_AポートChAiやSPI_Bポート)に、SP変換回路を内蔵したドライバDV’(図21参照)と、ドライバ付きSP変換回路CV2とを各1個、カスケード接続する回路例を示している。
この構成の場合、ドライバ付きSP変換回路CV2は、動作中信号ENiの立上りエッジに同期して、普通図柄表示部H_DSと、特別図柄表示部S_DSと、遊技実績表示部RCDのセグメントデータを出力する。
また、ドライバDV’は、1バイト構成のコモンポートとして機能して、動作中信号ENiの立上りエッジに同期して、普通図柄表示部H_DSと特別図柄表示部S_DSのコモン信号COM0~COM3と、遊技実績表示部RCDのコモン信号COM4~COM7を出力してダイナミック点灯動作を実現している。
なお、この構成の場合も、CPUは、一の割り込み周期(4ms)毎に、(1) コモンデータ0+コモンデータ4、(2) コモンデータ1+コモンデータ5、(3) コモンデータ2+コモンデータ6、(4) コモンデータ3+コモンデータ7を循環的にアクティブレベルに制御している。
また、図18~図19の実施例では、ステップST34の処理において、SPI_AポートChA2~SPI_AポートChA4を連続的に動作させたが、何ら限定されない。
例えば、遊技実績表示部RCDの更新動作や点灯動作に関する制御プログラムを、メモリ容量が法的に規制されるROM領域以外に配置する場合には、遊技実績表示部RCDのコモンデータやセグメントデータを、専用のSPIポートからシリアル伝送し、遊技実績表示部RCDを、他の表示部とは別のタイミングで点灯制御することになる。
専用のSPIポートは、例えば、SPI_Bポートであって、例えば、図21に示すSP変換回路を内蔵したドライバDV’と、ドライバ付きSP変換回路CV2とを各1個カスケード接続して、遊技実績表示部RCDだけをダイナミック点灯することになる。なお、遊技実績表示部RCDをスタティック点灯する場合には、ドライバ付きSP変換回路CV2だけで足りる。
何れにしても、遊技実績表示部RCDに関する制御プログラムを、本来のROM領域以外に配置することで、法的に規制されたROM領域を有効に活用することができ、本来の遊技制御を豊富化することができる。
なお、実施例では、専ら、弾球遊技機について説明したが、本発明は、回胴遊技機に対しても同様に好適に適用可能である。