以下、実施例に基づいて本発明を詳細に説明する。図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は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5の表面には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その略中央には、中央開口HOが設けられている。そして、中央開口HOには、大型の液晶カラーディスプレイ(LCD)で構成された表示装置DSが配置されている。
表示装置DSは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この表示装置DSは、中央部に特別図柄表示部Da〜Dcと右上部に普通図柄表示部19とを有している。そして、特別図柄表示部Da〜Dcでは、大当り状態の招来を期待させるリーチ演出が実行されることがあり、特別図柄表示部Da〜Dc及びその周りでは、適宜な予告演出などが実行される。
遊技球が落下移動する遊技領域には、図柄始動口15、大入賞口16、普通入賞口17、及び、ゲート18が配設されている。これらの入賞口15〜18は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
図柄始動口15は、左右一対の開閉爪15aを備えた電動式チューリップで開閉されるように構成され、普通図柄表示部17の変動後の停止図柄が当り図柄を表示した場合には、所定時間だけ、若しくは、所定個数の遊技球を検出するまで、開閉爪15aが開放されるようになっている。
なお、普通図柄表示部19は、普通図柄を表示するものであり、ゲート18を通過した遊技球が検出されると、普通図柄が所定時間だけ変動し、遊技球のゲート18の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止する。
大入賞口16は、前後方向に進退する開閉板16aを有して構成されている。大入賞口16の動作は、特に限定されないが、典型的な大当り状態では、大入賞口16の開閉板16aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板16aが閉じる。このような動作は、最大で例えば15回まで継続され、遊技者に有利な状態に制御される。なお、特別図柄表示部Da〜Dcの変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、特別遊技の終了後のゲームが高確率状態(確変状態)となるという特典が付与される。
図3は、上記した各動作を実現するパチンコ機GMの全体回路構成を示すブロック図である。図示の通り、このパチンコ機GMは、AC24Vを受けて各種の直流電圧や、電源異常信号ABN1、ABN2やシステムリセット信号(電源リセット信号)SYSなどを出力する電源基板20と、遊技制御動作を中心統括的に担う主制御基板21と、主制御基板21から受けた制御コマンドCMDに基づいてランプ演出及び音声演出を実行する演出制御基板22と、演出制御基板22から受けた制御コマンドCMD’に基づいて表示装置DSを駆動する画像制御基板23と、主制御基板21から受けた制御コマンドCMD”に基づいて払出モータMを制御して遊技球を払い出す払出制御基板24と、遊技者の操作に応答して遊技球を発射させる発射制御基板25と、を中心に構成されている。
但し、この実施例では、主制御基板21が出力する制御コマンドCMDは、コマンド中継基板26と演出インタフェイス基板27を経由して、演出制御基板22に伝送される。また、演出制御基板22が出力する制御コマンドCMD’は、演出インタフェイス基板27と画像インタフェイス基板28を経由して、画像制御基板23に伝送され、主制御基板21が出力する制御コマンドCMD”は、主基板中継基板32を経由して、払出制御基板24に伝送される。制御コマンドCMD,CMD’,CMD”は、何れも16ビット長であるが、主制御基板21や払出制御基板24が関係する制御コマンドは、8ビット長毎に2回に分けてパラレル送信されている。一方、演出制御基板22から画像制御基板23に伝送される制御コマンドCMD’は、16ビット長をまとめてパラレル伝送されている。そのため、可動予告演出を含む予告演出を、多様化して多数の制御コマンドを連続的に送受信するような場合でも、迅速にその処理を終えることができ、他の制御動作に支障を与えない。
ところで、本実施例では、演出インタフェイス基板27と演出制御基板22とは、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されて二枚の回路基板が積層されている。同様に、画像インタフェイス基板28と画像制御基板23についても、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されて二枚の回路基板が積層されている。そのため、各電子回路の回路構成を複雑高度化しても基板全体の収納空間を最小化できると共に、接続ラインを最短化することで耐ノイズ性を高めることができる。
これら主制御基板21、演出制御基板22、画像制御基板23、及び払出制御基板24には、ワンチップマイコンを備えるコンピュータ回路がそれぞれ搭載されている。そこで、これらの制御基板21〜24とインタフェイス基板27〜28に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部21、演出制御部22’、画像制御部23’、及び払出制御部24と言うことがある。すなわち、この実施例では、演出制御基板22と演出インタフェイス基板27とで演出制御部22’を構成し、画像制御基板23と画像インタフェイス基板28とで画像制御部23’を構成している。なお、演出制御部22’、画像制御部23’、及び払出制御部24の全部又は一部がサブ制御部である。
また、このパチンコ機GMは、図3の破線で囲む枠側部材GM1と、遊技盤5の背面に固定された盤側部材GM2とに大別されている。枠側部材GM1には、ガラス扉6や前面板7が枢着された前枠3と、その外側の木製外枠1とが含まれており、機種の変更に拘わらず、長期間にわたって遊技ホールに固定的に設置される。一方、盤側部材GM2は、機種変更に対応して交換され、新たな盤側部材GM2が、元の盤側部材の代わりに枠側部材GM1に取り付けられる。なお、枠側部材GM1を除く全てが、盤側部材GM2である。
図3の破線枠に示す通り、枠側部材GM1には、電源基板20と、払出制御基板24と、発射制御基板25と、枠中継基板35と、ランプ駆動基板36とが含まれており、これらの回路基板が、前枠3の適所に各々固定されている。
ランプ駆動基板36には、複数のLEDが接続されており、これらのLED群を駆動する駆動データSDATAは、クロック同期方式のシリアル信号として、クロック信号CKや、動作許可信号ENABLEや、点灯クリア信号CLRと共に、演出制御基板22→演出インタフェイス基板27→枠中継基板34→枠中継基板35を経由して、ランプ駆動基板36に搭載された複数のドライバDRijに伝送されている。
実施例のドライバDRij(ドライバIC)は、各々、LEDや電飾ランプなどのLED群を最高24個まで駆動可能なLEDドライバ(例えばLV5236V)であり、本実施例では、ランプ駆動基板36のLEDドライバDRijで駆動されるLEDを、便宜上、第0チャンネル(CH0)のLED群と称している。
なお、実施例のドライバDRijは、適宜なモータドライバと協働することで、ステッピングモータなどのモータ群を駆動することもでき、例えば、4相の駆動パルスΦ1〜Φ4で駆動されるステッピングモータであれば、1個のドライバDRijで6個のモータを駆動できることになる。
何れにしても、本実施例のドライバDRijは、シリアル信号SDATAを受けるシリアル入力端子SDATAと、クロック信号CKを受けるクロック端子SCLKと、動作許可信号ENABLEを受けるイネーブル端子SDENと、点灯クリア信号CLRを受けるリセット端子RSTとを有して構成されている(図5参照)。
ところで、遊技盤5の背面には、主制御基板21、演出制御基板22、画像制御基板23が、表示装置DSやその他の回路基板と共に固定されている。そして、枠側部材GM1と盤側部材GM2とは、一箇所に集中配置された接続コネクタC1〜C4によって電気的に接続されている。
電源基板20は、接続コネクタC2を通して、主基板中継基板32に接続され、接続コネクタC3を通して、電源中継基板33に接続されている。電源基板20には、交流電源の投入と遮断とを監視する電源監視部MNTが設けられている。電源監視部MNTは、交流電源が投入されたことを検知すると、所定時間だけシステムリセット信号SYSをLレベルに維持した後に、これをHレベルに遷移させる。
また、電源監視部MNTは、交流電源の遮断を検知すると、電源異常信号ABN1,ABN2を、直ちにLレベルに遷移させる。なお、電源異常信号ABN1,ABN2は、電源投入後に速やかにHレベルとなる。
ところで、本実施例のシステムリセット信号は、交流電源に基づく直流電源によって生成されている。そのため、交流電源の投入(通常は電源スイッチのON)を検知してHレベルに増加した後は、直流電源電圧が異常レベルまで低下しない限り、Hレベルを維持する。したがって、直流電源電圧が維持された状態で、交流電源が瞬停状態となっても、システムリセット信号SYSがCPUをリセットすることはない。なお、電源異常信号ABN1,ABN2は、交流電源の瞬停状態でも出力される。
主基板中継基板32は、電源基板20から出力される電源異常信号ABN1、バックアップ電源BAK、及びDC5V,DC12V,DC32Vを、そのまま主制御部21に出力している。一方、電源中継基板33は、電源基板20から受けたシステムリセット信号SYSや、交流及び直流の電源電圧を、そのまま演出インタフェイス基板27に出力している。演出インタフェイス基板27は、受けたシステムリセット信号SYSを、そのまま演出制御部22’と画像制御部23’に出力している。
一方、払出制御基板24は、中継基板を介することなく、電源基板20に直結されており、主制御部21が受けると同様の電源異常信号ABN2や、バックアップ電源BAKを、その他の電源電圧と共に直接的に受けている。
電源基板20が出力するシステムリセット信号SYSは、電源基板20に交流電源24Vが投入されたことを示す電源リセット信号であり、この電源リセット信号によって演出制御部22’と画像制御部23’のワンチップマイコンは、その他のIC素子と共に電源リセットされるようになっている。なお、点灯クリア信号CLRは、ドライバDRijの内蔵レジスタなどを初期状態にリセットするべく、必要時に演出制御部22’から出力されるリセット信号であり、システムリセット信号SYSとは直接関係しない。
また、このシステムリセット信号SYSは、主制御部21と払出制御部24には、供給されておらず、各々の回路基板21,24のリセット回路RSTにおいて電源リセット信号(CPUリセット信号)が生成されている。そのため、例えば、接続コネクタC2がガタついたり、或いは、配線ケーブルにノイズが重畳しても、主制御部21や払出制御部24のCPUが異常リセットされるおそれはない。なお、演出制御部22’と画像制御部23’は、主制御部21からの制御コマンドに基づいて、従属的に演出動作を実行することから、回路構成の複雑化を回避するために、電源基板20から出力されるシステムリセット信号SYSを利用している。
ところで、主制御部21や払出制御部24に設けられたリセット回路RSTは、各々ウォッチドッグタイマを内蔵しており、各制御部21,24のCPUから、定時的なクリアパルスを受けない限り、各CPUは強制的にリセットされる。
また、この実施例では、RAMクリア信号CRAMは、主制御部21で生成されて主制御部21と払出制御部24のワンチップマイコンに伝送されている。ここで、RAMクリア信号CRAMは、各制御部21,24のワンチップマイコンの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSWのON/OFF状態に対応した値を有している。
主制御部21及び払出制御部24は、電源基板20から電源異常信号ABN1,ABN2を受けることによって、停電や営業終了に先立って、必要な終了処理を開始するようになっている。また、バックアップ電源BAKは、営業終了や停電により交流電源24Vが遮断された後も、主制御部21と払出制御部24のワンチップマイコンの内蔵RAMのデータを保持するDC5Vの直流電源である。したがって、主制御部21と払出制御部24は、電源遮断前の遊技動作を電源投入後に再開できることになる(電源バックアップ機能)。このパチンコ機では少なくとも数日は、各ワンチップマイコンのRAMの記憶内容が保持されるよう設計されている。
図3に示す通り、主制御部21は、主基板中継基板32を経由して、払出制御部24に制御コマンドCMD”を送信する一方、払出制御部24からは、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号CONや、動作開始信号BGNを受信している。ステイタス信号CONには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。動作開始信号BGNは、電源投入後、払出制御部24の初期動作が完了したことを主制御部21に通知する信号である。
また、主制御部21は、直接的に、或いは、遊技盤中継基板31を経由して、遊技盤5の各遊技部品に接続されている。そして、遊技盤上の各入賞口16〜18に内蔵された検出スイッチのスイッチ信号を受ける一方、電動式チューリップなどのソレノイド類を駆動している。ソレノイド類や検出スイッチは、主制御部21から配電された電源電圧VB(12V)で動作するよう構成されている。また、図柄始動口15への入賞状態などを示す各スイッチ信号は、電源電圧VB(12V)と電源電圧Vcc(5V)とで動作するインタフェイスICで、TTLレベル又はCMOSレベルのスイッチ信号に変換された上で、主制御部21に伝送される。
先に説明した通り、演出制御基板22と演出インタフェイス基板27とはコネクタ連結によって一体化されており、演出制御部22’は、電源中継基板33を経由して、電源基板20から各レベルの直流電圧(5V,12V,32V)と、システムリセット信号SYSを受けている(図3及び図4参照)。また、演出制御部22’は、コマンド中継基板26を経由して、主制御部21から制御コマンドCMDとストローブ信号STBとを受けている(図3及び図4参照)。
そして、演出制御部22’は、演出インタフェイス基板27を経由して、ランプ駆動基板29やランプ駆動基板30に搭載されたドライバDRijに対して、ランプ駆動データSDATA(シリアル信号)を、動作許可信号ENABLE、クロック信号CK、及び点灯クリア信号CLRと共に供給している。特に限定されるものではないが、ランプ駆動基板29,30に搭載されているドライバDRijは、ランプ駆動基板36に搭載されたドライバDRijと同一構成であり、ランプ駆動基板29,30には、各々、5個のドライバDRijが配置されている。
このような構成の場合、各ドライバDRijは、各々、シリアル信号(ランプ駆動データSDATA)を、クロック信号CKに同期して受信することで、最高24個のランプを駆動可能となる。そこで、以下の説明では、ランプ駆動基板29に接続された合計24×5個のランプを、第1チャンネルCH1のランプ群と称し、ランプ駆動基板30に接続された合計24×5個のランプを、第2チャンネルCH2のランプ群と称する。
このように、本実施例では、多数(3×24×5個)のランプが、チャンネルCH0〜チャンネルCH2のランプ群に三分されて、各々、ランプ駆動基板36、ランプ駆動基板29、ランプ駆動基板30に接続されている(図5参照)。そして、各チャンネルCH0〜CH2の3種類のシリアル信号SDATA0〜SDATA2は、各々、クロック信号CK0〜CK2に同期して伝送される。
この構成に対応して、動作許可信号ENABLE0〜ENABLE2は、各チャンネルCH0〜CH2に属する一群のドライバDRijをアクティブにするための選択信号として機能している。また、点灯クリア信号CLRは、演出制御動作の開始時など、必要時に全ドライバDRijを、一斉に初期状態にリセットするために使用される。
そして、特定のチャンネルCHiに属するドライバDRijは、演出制御部22’のワンチップマイコン40が出力する一連のシリアル信号SDATAiのうち、該当部分だけをクロック信号CKiに同期して受信し、動作許可信号ENABLEiに同期して担当するランプ群を駆動している。
図5は、ランプ駆動基板36,29,30の回路構成を確認的に図示したものである。図示の通り、ランプ駆動基板36には、5個のドライバDR00,DR01・・・DR04が搭載されて、第0チャンネルのLED群(合計5×24個のLED)を点灯駆動している。同様に、ランプ駆動基板29には、5個のドライバDR10,DR11・・・DR14が搭載され、また、ランプ駆動基板30には、5個のドライバDR18,DR19・・・DR1Cが搭載されて、各々、第1チャンネルと第2チャンネルのLED群(合計5×24個のLED)を点灯駆動している。
各ドライバDRijには、5ビットの付番端子が設けられており、この付番端子に固定的なデジタルデータが供給される回路構成を採ることで、各々スレーブアドレスSLV(ポートアドレス)が一連に付番されている。すなわち、図示例の場合には、各ドライバ(DR00,DR01・・・DR04、DR10,DR11・・・DR14、DR18,DR19・・・DR1C)のスレーブアドレスSLVは、16進数表示で、00H,01H・・・04H、10H,11H・・・14H、18H,19H・・・1CHとなっている。
このように、本実施例では、各ランプ制御基板36,29,30のドライバDRijに、一連のスレーブアドレスSLVを付番することで、各ドライバDRijに対する輝度データなどの設定処理を迅速化している。但し、一連のスレーブアドレスSLVは、必ずしも+1の関係で一連させる必要はなく、+Nや−Nの関係であっても良いのは勿論である。
何れにしても、各ドライバDRijには、24個のLEDを駆動する点灯駆動信号のアナログレベルを各々規定可能な24個の階調レジスタGR0〜GR23が内蔵されている。なお、このドライバDRijには、階調レジスタGRn以外にも多数の設定レジスタが用意されているが、本実施例では、説明の都合上、階調レジスタGRnだけを活用することにする。
階調レジスタGRnは、各々、8ビット長の輝度データを記憶可能であり、LEDの輝度レベルを00H〜FFHまで256段階で設定することができる。つまり、実施例で使用するドライバDRijによれば、各LEDの輝度レベルを256階調(PWM=Duty比=0〜255/256=0〜99.6%)に制御である。もっとも、本実施例では、人間の視認感度を考慮して輝度レベルを16階調に抑制することとし、4ビット長16階調の輝度データ(00H〜0FH)を16倍して、00H〜F0Hの輝度データとしている。なお、輝度データ00Hは、消灯(Duty比=0%)を意味し、F0Hは、最大輝度による点灯を意味する。
そして、24個の階調レジスタGR0〜GR23に対する設定値(輝度データLUi)は、ドライバDRijを特定するスレーブアドレスSLV(ポートアドレス)を特定した上で、階調レジスタGRiを特定するレジスタ番号REiと共に伝送される。ここで、輝度データLUiとレジスタ番号REiとは、本来的には一対一に対応するが、本実施例のように、輝度データLUiを設定すべき階調レジスタGRiのレジスタ番号REiが、昇順に連続する場合には、先頭の最小レジスタ番号RE0を特定した後は、これに続く一連のレジスタ番号の特定を省略することができる。
したがって、本実施例の駆動データSDATAは、スレーブアドレスSLVと、先頭レジスタ番号RE0と、24個の輝度データLU0〜LU24とで一組となり、この一群一組のシリアルデータSDATAによって、所定のドライバDRijに対する設定データが規定される。なお、この点は、図6に関して再度説明する。
以上、ドライバDRijについて説明したが、先に説明した通り、同じドライバDRijを使用してステッピングモータを駆動することもでき、例えば、図3の破線に示すように、ランプ駆動基板30を経由して、演出モータ群M1〜Mnを駆動するのも好適である。この場合、モータ駆動データは、ランプ駆動データと同様のスレーブアドレスSLVやレジスタ番号REiが付加されたシリアル信号であり、演出内容を豊富化するべく演出モータ個数を増やしても、配線ケーブルが増加することがなく、機器構成が簡素化される。
図3及び図4に示す通り、演出制御部22’は、画像制御部23’に対して、制御コマンドCMD’及びストローブ信号STB’と、電源基板20から受けたシステムリセット信号SYSと、2種類の直流電圧(12V,5V)とを出力している。
そして、画像制御部23’では、制御コマンドCMD’に基づいて表示装置DSを駆動して各種の画像演出を実行している。表示装置DSは、LEDバックライトによって発光しており、画像インタフェイス基板28から5対のLVDS(低電圧差動伝送Low voltage differential signaling)信号と、バックライト電源電圧(12V)とを受けて駆動されている(図4参照)。
続いて、上記した演出制御部22’の構成について更に詳細に説明する。図4に示す通り、演出インタフェイス基板27は、電源中継基板33を経由して、電源基板20から3種類の直流電圧(5V,12V,32V)を受けている。ここで、直流電圧5Vは、デジタル論理回路の電源電圧として、演出インタフェイス基板27、ランプ駆動基板29、ランプ駆動基板30、画像インタフェイス基板28、及び画像制御基板23に配電されて各デジタル回路を動作させている。
但し、演出制御基板22には、直流電圧5Vが配電されておらず、12VからDC/DCコンバータで降圧された直流電圧3.3Vと、3.3VからDC/DCコンバータで更に降圧された直流電圧1.8Vだけが、演出インタフェイス基板27から演出制御基板22に配電されている。
このように、本実施例の演出制御基板22は、全ての回路が、電源電圧3.3V又はそれ以下の電源電圧で駆動されるので、電源電圧を5Vで動作する場合と比較して大幅に低電力化することができ、仮に、演出制御基板22の直上に演出インタフェイス基板27を配置して積層しても放熱上の問題が生じない。
但し、電源基板20から受けた直流電圧12Vは、そのままデジタルアンプ46の電源電圧として使用されると共に、ランプ駆動基板30とランプ駆動基板29に配電されて各ランプ群の電源電圧となる。また、直流電圧32Vは、演出インタフェイス基板のDC/DCコンバータにおいて直流電圧13Vに降圧されて、必要に応じて、演出モータM1〜Mnの駆動電源として使用される。
図4に示すように、演出制御部22’は、音声演出・ランプ演出・演出可動体による予告演出・データ転送などの処理を実行するワンチップマイコン40と、ワンチップマイコン40の制御プログラムなどを記憶するフラッシュメモリ(flash memory)41と、ワンチップマイコン40からの指示に基づいて音声信号を再生して出力する音声合成回路42と、再生される音声信号の元データである圧縮音声データを記憶する音声用メモリ43とを備えて構成されている。
ワンチップマイコン40、フラッシュメモリ41、及び音声用メモリ43は、電源電圧3.3Vで動作しており、また、音声合成回路42は、電源電圧3.3V及び電源電圧1.8Vで動作しており大幅な省電力化が実現されている。ここで、1.8Vは、音声合成回路のコンピュータ・コア部の電源電圧であり、3.3Vは、I/O部の電源電圧である。
ワンチップマイコン40には、複数のパラレル入出力ポートPIO(Pi+Po+Po’)と、複数のシリアル出力ポートSIとが内蔵されている。ここで、シリアル出力ポートSIは、より詳細には、3チャンネルのシリアルポートSI(S0〜S2)を含んで構成されており(図6参照)、ランプ駆動基板36、29、30に搭載された各5個のドライバDRijに、各々、ランプ駆動データSDATA0〜SDATA2を、クロック信号CK0〜CK2に同期して出力している。
先に説明した通り、ランプ駆動データSDATA0〜SDATA2は、主として、各LEDの発光輝度をPWM制御(pulse width modulation)によって輝度調整するため輝度データであり、輝度データに先行して、ドライバDRijを特定するスレーブアドレスSLVと、階調レジスタGRiの先頭アドレスを特定するレジスタ番号RE0とが付加されている。
また、ランプ駆動基板36、29、30は、パラレル入出力ポートPIOのパラレル出力ポートPo’にも接続されており、各ランプ駆動基板36、29、30に搭載されたドライバDRijは、パラレル出力ポートPo’が出力する点灯クリア信号CLRに基づいて一斉にリセット状態となり、その後、3ビット長の動作許可信号ENABLE0〜ENABLE2の何れかに基づいて動作を開始している。
一方、パラレル入出力ポートPIOの入力ポートPiには、主制御部21からの制御コマンドCMD及びストローブ信号STBが入力され、コマンド出力ポートPoからは、制御コマンドCMD’及びストローブ信号STB’が出力されるよう構成されている。
具体的には、入力ポートPiには、主制御基板21から出力された制御コマンドCMDとストローブ信号(割込み信号)STBとが、演出インタフェイス基板27のバッファ44において、電源電圧3.3Vに対応する論理レベルに変換されて8ビット単位で供給される。割込み信号STBは、ワンチップマイコンの割込み端子に供給され、受信割込み処理によって、演出制御部22’は、制御コマンドCMDを取得するよう構成されている。
演出制御部22’が取得する制御コマンドCMDには、(1)異常報知その他の報知用制御コマンドなどの他に、(2)図柄始動口への入賞に起因する各種演出動作の概要特定する制御コマンド(変動パターンコマンド)や、図柄種別を指定する制御コマンド(図柄指定コマンド)が含まれている。ここで、変動パターンコマンドで特定される演出動作の概要には、演出開始から演出終了までの演出総時間と、大当たり抽選における当否結果とが含まれている。
また、図柄指定コマンドには、大当たり抽選の結果に応じて、大当たりの場合には、大当たり種別に関する情報(15R確変、2R確変、15R通常、2R通常など)を特定する情報が含まれ、ハズレの場合には、ハズレを特定する情報が含まれている。変動パターンコマンドで特定される演出動作の概要には、演出開始から演出終了までの演出総時間と、大当り抽選における当否結果とが含まれている。なお、これらに加えて、リーチ演出や予告演出の有無などを含めて変動パターンコマンドで特定しても良いが、この場合でも、演出内容の具体的な内容は特定されていない。
そのため、演出制御部22’では、変動パターンコマンドを取得すると、これに続いて演出抽選を行い、取得した変動パターンコマンドで特定される演出概要を更に具体化している。例えば、リーチ演出や予告演出について、その具体的な内容が決定される。そして、決定された具体的な遊技内容にしたがい、LED群などの点滅によるランプ演出や、スピーカによる音声演出の準備動作を行うと共に、画像制御部23’に対して、ランプやスピーカによる演出動作に同期した画像演出に関する制御コマンドCMD’を出力する。
このような演出動作に同期した画像演出を実現するため、演出制御部22’は、コマンド出力ポートPoを通して、画像制御部23’に対するストローブ信号(割込み信号)STB’と共に、16ビット長の制御コマンドCMD’を演出インタフェイス基板27に向けて出力している。なお、演出制御部22’は、図柄指定コマンドや、表示装置DSに関連する報知用制御コマンドや、その他の制御コマンドを受信した場合は、その制御コマンドを、16ビット長に纏めた状態で、割込み信号STB’と共に演出インタフェイス基板27に向けて出力している。
上記した演出制御基板22の構成に対応して、演出インタフェイス基板27には出力バッファ45が設けられており、16ビット長の制御コマンドCMD’と1ビット長の割込み信号STB’を画像インタフェイス基板28に出力している。そして、これらのデータCMD’,STB’は、画像インタフェイス基板28を経由して、画像制御基板23に伝送される。
また、演出インタフェイス基板27には、音声合成回路42から出力される音声信号を受けるデジタルアンプ46が配置されている。先に説明した通り、音声合成回路42は、3.3Vと1.8Vの電源電圧で動作しており、また、デジタルアンプ46は、電源電圧12VでD級増幅動作しており、消費電力を抑制しつつ大音量の音声演出を可能にしている。
そして、デジタルアンプ46の出力によって、遊技機上部の左右スピーカと、遊技機下部のスピーカとを駆動している。そのため、音声合成回路42は、3チャネルの音声信号を生成する必要があり、これをパラレル伝送すると、音声合成回路42とデジタルアンプ46との配線が複雑化する。
そこで、本実施例では、音質の劣化を防止すると共に、配線の複雑化を回避するため、音声合成回路42とデジタルアンプ46との間は、4本の信号線で接続されており、具体的には、転送クロック信号SCLKと、チャネル制御信号LRCLKと、2ビット長のシリアル信号SD1,SD2との合計4ビットの信号線に抑制されている。なお、何れの信号も、通常のシングルエンド(single-ended)信号であって、その振幅レベルは理論値3.3Vである。
ここで、シリアル信号SD1は、遊技機上部に配置された左右スピーカのステレオ信号R,Lを特定するPCMデータについてのシリアル信号であり、シリアル信号SD2は、遊技機下部に配置された重低音スピーカのモノラル信号を特定するPCMデータについてのシリアル信号である。そして、音声合成回路42は、チャネル制御信号LRCLKをLレベルに維持した状態で、左チャネルの音声信号Lを伝送し、チャネル制御信号LRCLKをHレベルに維持した状態で、右チャネルの音声信号Rを伝送する(図4(b)参照)。なお、重低音スピーカは本実施例では1個であるので、モノラル音声信号が伝送されているが、ステレオ音声信号として伝送できるのは勿論である。
何れにしても本実施例では、4種類の音声信号を4本のケーブルで伝送可能であるので、最小のケーブル本数によってノイズによる音声劣化のない信号伝達が可能となる。すなわち、シリアル伝送であるのでパラレル伝送より圧倒的にケーブル本数が少な。なお、アナログ伝送を採る場合には、ケーブル本数は同数であるが、3.3V振幅のアナログ信号に、少なからずノイズが重畳して、音質が大幅に劣化する。一方、振幅レベルを上げると、電源配線が複雑化する上に消費電力が増加する。
このようなシリアル信号SD1,SD2は、クロック信号SCLKの立上りエッジに同期して、デジタルアンプ46に取得される。そして、デジタルアンプ46内部で、所定ビット長毎にパラレル変換され、DA変換後にD級増幅されて各スピーカに供給されている。
また、演出インタフェイス基板27には、ワンチップマイコン40のパラレル出力ポートPo’や、シリアルポートSIや出力される各種の信号を伝送する出力バッファ回路47,48,49が設けられている。ここで、出力バッファ47は、第0チャンネルのLED群に関連しており、ワンチップマイコン40が出力する動作許可信号ENABLE0、及び、点灯クリア信号CLRを、通常のシングルエンド信号として、枠中継基板34に出力している。なお、このシングルエンド信号の振幅は、理論値で3.3Vである。
一方、ワンチップマイコン40から伝送されたランプ駆動データSDATA0及びクロック信号CK0については、各々、差動ラインドライバDri(Differential Line Driver DS90C031Bなど)を通して、差動(differential)信号として、枠中継基板34に出力される。
このように、本実施例では、高速にレベル変化する伝送信号SDATAi,CKiについては、差動ラインドライバDriによって、その電圧振幅が数100mV(例えば±350mV)に抑制されているので、各伝送線から漏洩する伝送信号SDATAi,CKiの高調波成分のエネルギーが効果的に抑制されることになり、仮に、各伝送線がアンテナとして機能しても、電波法上の問題を起こすおそれが解消される。また、伝送信号SDATAi,CKiは、差動信号として伝送されることで、コモンモードノイズの影響が排除されるので、枠側部材GM1までの伝送距離が長い場合でも、外乱に基づくシリアル信号のビット化けが防止される。
枠中継基板34に出力された4種類の信号(ENABLE0,CLR,SDATA0,CK0)は、その信号形式を維持した状態で、枠中継基板34、及び、枠中継基板35を経由して、ランプ駆動基板36に伝送され、シングルエンド信号はそのままドライバDRijに供給され、差動信号については、差動ラインレシーバRec(Differential Line Receiver DS90C402 など)においてシングルエンド信号に変換されてドライバDRijに供給される(図5参照)。
また、出力バッファ48は、ワンチップマイコン40が出力するランプ駆動データSDATA1、クロック信号CK1、動作許可信号ENABLE1、及び、点灯クリア信号CLRを、直接、又は差動ラインドライバDriを経由して、ランプ駆動基板29に伝送し、ランプ駆動基板29では、受信した差動信号については、差動ラインレシーバRecでシングルエンド信号に変換した上でドライバDRijに供給している。
同様に、出力バッファ49は、ランプ駆動データSDATA2、クロック信号CK2、動作許可信号ENABLE2、及び、点灯クリア信号CLRを、直接、又は差動ラインドライバDriを経由して、ランプ駆動基板30に伝送し、ランプ駆動基板30では、受信した差動信号については、差動ラインレシーバRecでシングルエンド信号に変換した上でドライバDRijに供給している(図5参照)。
そして、ランプ駆動基板36とランプ駆動基板29とランプ駆動基板30のドライバDRijは、各々、第0チャンネルと第1チャンネルと第2チャンネルのLED群を駆動している。なお、ランプ駆動基板29やランプ駆動基板30へのランプ駆動データSDATAやクロック信号CKについては、必ずしも、差動信号での伝送に限定されず、例えば、伝送距離が短いような場合には、シングルエンド信号での伝送でも良い。
次に、図6(a)は、演出制御基板22’と、ランプ駆動基板29,30,36に搭載されたドライバDRijとの接続関係を、ワンチップマイコン40に内蔵されたシリアルポートSIの内部構成と共に図示したものである。
図示の通り、この実施例では、ランプ駆動データSDATAiと、クロック信号CKiは、演出制御基板22’のシリアルポートSIにおいて生成され、各々、差動ラインドライバDriと、差動ラインレシーバRecとの間は、LVDS(Low voltage differential signaling)信号として伝送される。
先に説明した通り、ランプ駆動基板29,30,36まで伝送されたLVDS信号は、差動ラインレシーバRecによって、TTLレベル又はCMOSレベルの電圧レベルに変換されてドライバDRijに供給される。なお、高速で変化することのない動作許可信号ENABLEiと点灯クリア信号CLRについては、パラレル出力ポートPo’の出力が、そのまま伝送される。
図5や図6(a)に示す通り、ランプ駆動データSDATAiとクロック信号CKiは、各チャンネルCHiのランプ駆動基板に搭載された全ドライバDRijの信号入力端子SDATAとクロック端子SCLKに共通的に供給される。同様に、動作許可信号ENABLEiと点灯クリア信号CLRは、各チャンネルCHiのランプ駆動基板に搭載された全てのドライバDRijのイネーブル端子SDENとリセット端子RSTに共通的に供給される。
そして、点灯クリア信号CLRがLレベルになると、全てのチャンネルCH0〜CH2の全ドライバDRijが一斉にリセット状態となり、動作許可信号ENABLEiがアクティブレベルになると、そのチャンネルCHiの全ドライバDRijが動作可能状態となり、ランプ駆動データSDATAiの読込動作が可能となる。
続いて、ワンチップマイコン40に内蔵されたシリアルポートSIについて説明する(図6(a)参照)。シリアルポートS0〜シリアルポートS2は全ての同一構成であり、CPUコアから1バイトデータを受ける送信データレジスタDRと、送信データレジスタDRから1バイトデータの転送を受けて、ランプ駆動データSDATAiとしてシリアル出力する送信シフトレジスタSRと、シリアルポートの内部動作状態を管理する多数の制御レジスタRGと、カウンタ回路CTの出力パルスΦを受けて制御レジスタRGが指定する分周比のクロック信号CKiを出力するボーレートジェネレータBGと、を有して構成されている。
ここで、制御レジスタRGには、エンプティビットEMPを含んだREAD可能な制御レジスタが含まれており、送信データレジスタDRが、新規データを受け入れ可能か否かを示している。すなわち、送信シフトレジスタSRの1バイトデータの送信が完了すると、エンプティビットEMPがHレベル(empty レベル)に遷移して、送信データレジスタDRに、新規データを書込むことができることが示される。したがって、CPUコア(以下、CPUと称す)は、エンプティビットEMPがHレベルであることを確認した上で、新規データを送信データレジスタDRに書込むことになる。
また、制御レジスタRGには、送信許可ビットTXEを含んだWRITE可能な制御レジスタが含まれており、CPUが送信許可ビットTXEをON(H)レベルに設定すると、シリアルポートの送信動作が許可され、OFFレベルに設定すると送信動作が禁止される。そこで、本実施例では、CPUは、送信処理の開始時に送信許可ビットTXEをON状態にセットし、送信処理の終了時に送信許可ビットTXEをOFFレベルにリセットしている。
図6(b)は、シリアルポートS0〜S2について、送信開始時の動作を示すタイムチャートである。図示の通り、シリアルポートS0〜S2が送信禁止状態(TXE=L)である場合や、送信データレジスタDRのデータがシリアル出力された後は、クロック信号CKが固定状態のHレベルである。また、送信データレジスタDRは空であり、エンプティビットEMPもHレベル(empty レベル)である。
そして、CPUが送信許可ビットTXEをON状態(送信許可状態)にセットした後、送信データレジスタDRに1バイト目の送信データを書込むと、エンプティビットEMPがLレベルに遷移すると共に、その後、所定時間(τ)経過後に、1バイト目の送信データが送信シフトレジスタSRに転送されて、シリアル送信動作が開始される。
また、送信データが送信シフトレジスタSRに転送されたことで、1ビット目のシリアル送信開始に対応して、その後は、エンプティビットEMPがHレベル(empty レベル)に遷移する。したがって、CPUは、HレベルのエンプティビットEMPを確認した上で、2バイト目の送信データを、送信データレジスタDRに書込むことになる。
すると、送信データレジスタDRへのデータ書込み動作に対応して、エンプティビットEMPがLレベル(fullレベル)に遷移する。そして、その後、1バイト目の送信データが全て送信されると、送信データレジスタDRから送信シフトレジスタSRに2バイト目のデータが転送され、2バイト目のデータ送信が開始されて、エンプティビットEMPがHレベルに遷移する。
このエンプティビットEMPは、送信データレジスタDRへの3バイト目のデータ書込み動作に対応して、Lレベルに変化するが、図示のように、新規データの書き込みがない場合にはHレベルを維持する。また、全てのデータが送信された後は、クロック信号CKがHレベルを維持して変化しない。
特に限定されないが、この実施例では、ドライバDRijの内部動作に対応して、1バイトデータのMSB(Most Significant Bit)からLSB(Least Significant Bit )に向けて、クロック信号CKに同期して送信動作が実行されるよう設定されている(MSBファースト)。具体的には、該当する制御レジスタRGに適宜な設定値が設定されている。また、クロック信号CKの立下りエッジに同期して、送信動作が進行することも図示の通りである。
なお、本実施例では、CPUは、シリアルポートS0→シリアルポートS1→シリアルポートS2の順に、送信データレジスタDRiに1バイト目のデータ書込んだ後、各エンプティビットEMPiのHレベルを判定した上で、同じ順番に、各送信データレジスタDRiに2バイト目のデータを書込んでいる。
しかし、シリアルポートS0→シリアルポートS1→シリアルポートS2の順番で一連に実行されるデータ書込み処理において、1バイトデータの書込み時間差は事実上ゼロであるので、チャンネルCH0〜CH2のドライバDRijへのデータ送信処理は、ほぼ同時に開始されることになる。したがって、チャンネルCH0〜CH2のドライバDRijへのデータ送信処理の終了も、送信データ量が同じである限り、ほぼ同一タイミングとなり、迅速にシリアル送信処理を終えることができる。
図7は、各ドライバDRijの動作とCPUの動作を説明するタイムチャートである。まず、ワンチップマイコン40が出力するランプ駆動データSDATA0〜SDATA2に基づいて、各ドライバDRijの階調レジスタGR0〜GR23に対する輝度データの設定処理について説明する。
階調レジスタGR0〜GR23に輝度データを設定するためには、これに先行して、各ドライバDRijを特定するスレーブアドレスSLVの送信処理と、階調レジスタGR0〜GR23のレジスタ番号N(例えば、N=15H〜1CH)の送信処理とを実行する必要がある。但し、先に説明した通り、レジスタ番号N(=15H〜1CH)が連続する場合には、最初のレジスタ番号N(=15H)を送信した後は、レジスタ番号15H以降の階調レジスタGRnに設定すべき輝度データDnを1バイト毎に出力したので足りる。
また、スレーブアドレスは、ドライバDRijを特定する5ビット長のポートアドレスであるが、適宜に3ビットを付加した8ビット長とされる。そして、この8ビット長のスレーブアドレスは、MSBからLSBに向けて送信される。図5の回路構成から明らかなように、8ビット長のスレーブアドレスは、5個のドライバDRij(例えば、DR00〜DR04)に、共通的に送信されるが、送信されたスレーブアドレスに対応する特定のドライバDRijだけが、その後の送信データを受信することになる。
具体的には、全てのドライバDRij(例えば、DR00〜DR04)において、24個目(=8×3)のクロック信号CKiの立上りエッジで、1バイト目のデータ(スレーブアドレス)が取得され、自らのスレーブアドレスに一致するドライバDRijだけが、その後の受信処理を継続する。
先に説明した通り、本実施例のドライバDRijに対しては、その後、階調レジスタGRnのレジスタ番号Nを送信し、これに続いて、その階調レジスタGRnへの設定データDnを送信するようになっている。そして、その後は、指定されたスレーブアドレスに対応するドライバDRijにおいて、レジスタ番号Nが自動的にインクリメントされ、その後に受信した設定データDn+1、Dn+2・・・・が、各々、階調レジスタGRn+1,GRn+2・・・・に設定される。
先に説明した通り、本実施例では、階調レジスタGRiだけを活用しているので、ワンチップマイコン40から各チャンネル(0〜2)のドライバDRijに送信されるシリアルデータの個数は、スレーブアドレス(1バイト)と、階調レジスタGR0のレジスタ番号(15Hの1バイト)と、24個の階調レジスタGR0〜GR23に設定すべき輝度データ(24バイト)とで、総計26バイトとなる。
図6(b)に関して説明した通り、ワンチップマイコン40のシリアルポートS0〜S2では、23バイト目の輝度データを出力した後は、制御レジスタRGのエンプティビットEMPをHレベルに維持する。また、送信データレジスタDRに書込み済みの24バイト目の輝度データは、エンプティビットEMP=Hレベルが維持された状態で、送信シフトレジスタSRから1ビット毎にMSBからLSBに向けて出力される。そして、ワンチップマイコン40のシリアルポートS0〜S2が、24バイト目の輝度データのLSBを出力した後は、クロック信号CKがHレベルを維持する。
そのため、ワンチップマイコン40のCPUは、24バイト目の輝度データが、該当するドライバDRijに取得されたと思われるタイミングで、動作許可信号ENABLE0〜2をLレベルに戻すとともに、制御レジスタRGの送信許可ビットTXEを送信禁止レベルに戻している(図7参照)。すると、動作許可信号ENABLE0〜2=Lに対応して、その後、各ドライバDRijでは、階調レジスタGR0〜GR23に新規設定された、又は設定されている輝度データに基づいてLEDを駆動することになる。
なお、この実施例では、ドライバ1個分のシリアルデータを送信する毎に、送信許可ビットTXEを禁止レベルに戻しているが、何ら限定されず、全てのドライバに対する送信処理が終えた後に、禁止レベルに戻しても良い。また、特に、禁止レベルに戻す必要もない。
図8は、演出制御部22’の動作内容を説明するフローチャートであり、ワンチップマイコン40のCPUによって実行される。演出制御部22’の動作は、CPUリセット後に無限ループ状に実行されるメイン処理(図8(a))と、1mS毎に起動されるタイマ割込み処理(図8(b))と、主制御部が送信する制御コマンドを受信する受信割込み処理(不図示)と、を含んで実現される。
そこで、まず、タイマ割込み処理から説明する。なお、図8(b)は、演出モータM1〜Mnを設けた場合の処理を破線で記載している。演出モータM1〜Mnを設けた実施態様では、所定タイミング毎に、ステッピングモータを1ステップ歩進させるべく、必要時に駆動データを更新する(ST20)。そして、この駆動データを各演出モータM1〜Mnに出力し、また、画像制御部23’に送信すべき制御コマンドCMD’が存在する場合には、これを画像制御部23’に向けて出力する(ST22)。最後に、割込みカウンタをインクリメントして割込み処理を終える(ST23)。
続いて、メイン処理について説明すると、CPUは、割込みカウンタを繰り返しチェックして、割込みカウンタの値が16になるのを待機する(ST10)。上記したように、割込みカウンタは、1mS毎に更新されているので(ST23)、ステップST10では、前回のステップST11の処理から、16mS経過するまでの経過時間を待機することになる。すなわち、この実施例では、ステップST11〜ST17の処理が16mS毎に繰り返される。
そこで、16mSの待機時間が経過した場合には、割込みカウンタをゼロクリアした上で(ST11)、主制御部21から送信された制御コマンドCMDを解析して、制御コマンドCMDに対応した動作を実行するべく、必要な開始処理を実行する。例えば、変動パターンコマンドCMDを受けた場合には、その制御コマンドCMDに基づいてランプ演出や音声演出などの開始処理を実行する。
次に、チャンスボタン11などのスイッチ信号を判定し(ST13)、新規に実行を開始する演出について、その演出シナリオを構築するか、実行中の演出についての演出シナリオを更新する(ST14)。そして、演出シナリオに対応して、音声再生動作を進行させる(ST15)。
続いて、各ランプ駆動基板36,29,30に接続されているLEDについて、その輝度を規定した輝度データを更新して、出力バッファテーブルTBLに格納する(ST16)。この実施例では、3個のランプ駆動基板36,29,30に、合計で3×5×24個のLEDが配置されており、各LEDは、16階調の4ビット長の輝度データに基づいて点灯制御がされている。したがって、出力バッファテーブルTBLは、3×5×24/2バイト長である。
次に、ステップST16の処理で更新された出力バッファテーブルTBLの輝度データを、シリアルポートS0〜S2を経由して、各ランプ駆動基板36,29,30に伝送する(ST17)。但し、CPUは、伝送処理そのものを担当するのではなく、CPUは、シリアルポートS0〜S2の送信データレジスタDRに、適宜なタイミングで必要データを書込むだけであり、CPUの制御負担は極めて軽微である。また、図7に示す通り、3つのランプ駆動基板36,29,30に一斉にシリアルデータが送信されるので、ステップST17の処理時間は、送信データ量に拘わらず長くない。
図7に示す通り、3つのランプ駆動基板36,29,30に搭載された3つのドライバDRに輝度データを設定するに要するクロック信号CKは、8×(2+24)個であり、しかも、伝送開始タイミングと伝送終了タイミングは、全3個のドライバDRにおいてほぼ同じである。
そのため、3つのランプ駆動基板36,29,30に搭載された3個のドライバDRの点灯状態を更新するに要する時間は、ほぼ、8×(2+24)×Tとなり、8×26×5×T程度の処理時間で、全15個のドライバの点灯状態を更新することができる。なお、この全15個のドライバに対する処理時間は、5個のドライバの点灯状態を更新するに要する時間とほぼ同じである。
ここで、Tはクロック信号のパルス周期であり、この実施例では、ボーレートジェネレータBGへの設定値に基づいて、周波数4〜5MHz程度のクロック信号に対応して、T=0.25〜0.2μSとなっている。したがって、全体の処理時間は、0.2mS程度であり、他の処理のための処理時間を消費することがない。
また、このような高速処理を実行しても、クロック信号CKiと、ランプ駆動データSDATAiについては、低レベルの差動信号(LVDS信号)として伝送されるので、伝送信号の高調波によって電波法上の問題が生じることがない。また、差動信号として伝送されることで、コモンモードノイズの影響が排除されるので、外乱に基づくシリアル信号のビット化けが防止されることも先に説明した通りである。
図9は、LED出力処理(ST17)を、より詳細に説明するフローチャートである。LED出力処理では、まず、15個全てのドライバDRijに対して、初期化データを送信して、階調レジスタに書込んだ輝度データ(PWM値)に対応してLEDが点灯されるよう設定する。
なお、このステップST17の処理についても、図7に示す手順と同じであり、以下に示すステップST31〜ST45の処理手順が採用される。すなわち、チャンネルCH0〜CH2の所定ドライバ(3個)に対して、スレーブアドレスの送信→レジスタ番号の送信→初期化データの送信処理を一括して実行し、この処理を5回繰り返すことで、15個のドライバDRijについての初期化処理を完了させる。したがって、全処理時間は、8×3×5×T[=データビット長8×データ個数3×繰り返し処理回数5×クロック周期T]程度である。
このような初期化処理を16mS毎に繰り返す必要は必ずしもないが、本実施例では、点滅状態を更新する毎に全てのドライバDRijの初期化データを送信するので、万一、初期化データの一部がビット化けしても、設定データのビット化けによる異常動作は、16mS後に自動的に解消される。
以上のようにして初期化処理が終わると(ST30)、輝度データの設定処理(ST31〜ST45)に移行する。なお、この開始タイミングでは、図6(b)に示す通り、各制御レジスタRGの送信許可ビットTXEは、OFF(L)レベルであり、エンプティビットEMPは、Hレベル(empty レベル)であり、クロック信号CKはHレベルを維持している。また、動作許可信号ENABLE0〜ENABL2はLレベルである。
以上を踏まえて説明を続けると、輝度データの設定処理では、最初に、チャンネルCH0〜CH2の各5個のドライバDRijについて、各々、開始スレーブアドレスを特定する(ST31)。図5に示すように、この実施例では、各ランプ駆動基板に搭載された5個のドライバDRijには、インクリメント関係にある一連のスレーブアドレスが付番されており、その先頭アドレスは、00H,10H,18Hである。
次に、パラレル出力ポートPo’から、各々、ON(H)レベルの動作許可信号ENABLE0〜ENABL2を出力する(ST32)。この結果、全チャンネルCH0〜CH2の全てのドライバDRijは、シリアルデータの受信動作が可能となる。
そこで、続いて、シリアルポートS0〜S2について、各制御レジスタRGの送信許可ビットTXEを各々ONレベルに設定して、シリアルポートS0〜S2の送信処理を許可状態に設定する(ST33)。また、ステップST31の処理で初期設定されたか、或いは、その後、ステップST44の処理で更新された3種類のスレーブアドレスを、各々、シリアルポートS0〜S2の送信データレジスタDRに書込む(ST33)。
図7に示す通り、このステップST33の処理によって、各シリアルポートS0〜S2の制御レジスタRGのエンプティビットEMPは、Lレベルに遷移し、所定時間(τ)後に、エンプティビットEMPがHレベルに戻ると共に、スレーブアドレスの送信動作が開始される。
そこで、エンプティビットEMPがHレベルに戻った場合には(ST34)、各ドライバDRijの階調レジスタGR0〜GR23について、そのレジスタ番号の先頭アドレスを、シリアルポートS0〜S2の送信データレジスタDRに書込む(ST35)。この実施例では、階調レジスタGR0〜GR4のレジスタ番号は、N=15H〜1CHであるので、ステップST35の処理では、シリアルポートS0〜S2の送信データレジスタDRに、各々、15Hが書込まれる。また、ステップST35の処理によって、エンプティビットEMPは、HレベルからLレベル(fullレベル)に遷移する。
その後、最初のスレーブアドレスの送信が完了すると、エンプティビットEMPがHレベル(empty レベル)に戻るので(ST36)、その後は、24個の輝度データの送信処理に移行する。
具体的には、まず、変数nをゼロに初期設定する(ST37)。ここで、変数nは、階調レジスタGR0〜GR23を特定し、変数n=1〜24が、階調レジスタGR0〜GR23に対応している。
そこで、次に、変数nをインクリメントした後(ST38)、各チャンネルCH0〜CH2の階調レジスタGRn−1に対する輝度データ(PWM値)を、出力バッファテーブルTBLから読み出して、シリアルポートS0〜S2の送信データレジスタDRに各々書込む(ST39)。なお、ステップST36の判定で、エンプティビットEMPがHレベルに遷移した後、エンプティビットEMPがLレベルに戻って、レジスタ番号の送信動作が繰り返されており、この送信動作が終わると、エンプティビットEMPがHレベルに遷移する。
そこで、次に、エンプティビットEMPがHレベルに遷移するのを待機し(ST40)、Hレベルに遷移すれば、変数nが24に達しない限り、ステップST38の処理に移行する(ST41)。そのため、このステップST38〜ST41の処理によって、階調レジスタGR0〜GR23への輝度データが、シリアルポートS0〜S2の送信データレジスタDRに順番に書込まれることになる。
なお、変数nが24に達したタイミングは、シリアルポートS0〜S2の送信データレジスタDRに24バイト目の輝度データが書込まれたに過ぎず、これがドライバDRijに取得されるのは、更に、8個程度のクロック信号CKが出力された後である。
そこで、クロック信号CKの8個分程度の時間を消費した後(ST42)、動作許可信号ENABLEを禁止レベルに戻すと共に、制御レジスタRGの送信許可ビットTXEを禁止レベルに戻す(ST43)。その結果、輝度データが更新されたドライバDRijが駆動するLEDの点灯状態が更新される。
以上の処理によって各チャンネル0〜2の3個のドライバDRijについての輝度データの設定処理と点灯更新が終わるので、次に、スレーブアドレスを更新して(ST44)、次の3個のドライバDRijに対する設定処理を繰り返す(ST45)。
以上の通り、本実施例では、ステップST32〜ST43の処理によって、3個のドライバDRijの各24個の階調レジスタに対する設定処理が一括して完了し、これを5回繰り返すことで、全ての処理が完了することができる。
そして、3個のドライバに対する設定処理は、ほぼ同時に開始され、ほぼ同時に終了する。そのため、処理総時間は、クロック信号のパルス周期Tと、ドライバDRijの総個数TOTAL=NUM×3とに対応して、8×26×NUM×T程度であり、24×NUM×3個のLEDについて、極めて迅速に輝度データの設定処理を終えることができる。
以上、第1の実施例について詳細に説明したが、適宜な変更も可能である。例えば、上記の実施例では、説明の便宜上、3チャンネルのランプ駆動基板36,29,30におけるドライバDRijやLEDの個数が同一であるとしたが、実際には、適宜に相違するのは当然である。このような場合、必要なドライバDRijに対する設定処理(図9のST32〜ST45)が終われば、そのチャンネルについては、その後の設定処理(ST32〜ST45)がスキップされる。
同様に、駆動するLEDの個数が24個未満のドライバDRijに関しては、図9のステップST41の処理を変更することで、不要な設定処理(ST38〜ST41)がスキップされる。
また、上記の実施例では、説明の都合上、16mS毎に全てのドライバに対する設定処理を実行したが、これを適宜に分割するのも好適である。図8(c)は、このような動作を例示したものであり、図8(a)のステップST17のLED出力処理に代えて、割込みカウンタの値CNTに応じたLED出力処理(ST24)を実行している。
具体的には、CT=10の場合には、全てのドライバに初期化データを送信し、CT=11の場合には、1段目のドライバ3個に設定データを送信している。以下同様に、割込みカウンタの値CNTに対応するドライバ3個に設定データを送信するので、設定データを増加させても問題が生じない。
設定データとしては、Duty比(PWM)を規定する輝度データに加えて、フェードインやフェードアウトの動作態様を規定するデータを送信することが考えられる。一方、輝度データに代えて、ON/OFF状態を規定するスイッチデータを送信し、これにフェードインやフェードアウトの動作態様を規定するデータを追加して送信することも考えられる。
なお、実施例では、3チャンネルCH0〜CH2のランプ駆動基板について説明したが、ランプ駆動基板の個数に対応して、使用するシリアルポートの個数を増加すれば良い。
また、同じドライバDRijを使用してステッピングモータを駆動するもの好適であり、この場合には、モータ駆動基板を別に設けて、例えば、1mS毎にシリアル駆動データ(スイッチデータ)を送信する態様が考えられる(図8(b)のST21参照)。一方、ランプ駆動基板に、ステッピングモータを接続しても良いが、この場合には、ステッピングモータを駆動するドライバDRijについては、短い周期でシリアル駆動データの送信処理を繰り返すのが好ましい。
また、図6に示す実施例では、1バイトのシリアルデータが送信される毎に、CPUが、送信データレジスタDRに次の1バイトのパラレルデータを書込む構成を採っているが、何ら限定されない。すなわち、所定単位長(複数バイト)のパラレルデータを一時保存可能なFIFO(First In First Out)バッファを確保し、1バイトのシリアルデータが送信さる毎に、次のデータが送信データレジスタDRに自動的に補給される構成を採ることもでき、この場合には、CPUは、FIFOバッファに、例えば1バイト分の空き(空き領域)が生じたタイミングで、次の1バイトデータをFIFOバッファに補充したので足りる。
また、上記の各実施例では、専ら、CPUが、制御レジスタを繰り返しreadして、制御レジスタのempty ビットEMPをチェックする構成を採ったが、送信データレジスタDRが空(empty )になったタイミングや、FIFOバッファに空き(空き領域)が生じたタイミングで、CPUに割込みをかける構成を採るのも好適である。この場合、CPUは割込み要求に対応して、送信データレジスタDRに1バイトデータを書込むか、FIFOバッファに所定単位長のデータを書込めば良い。
更にまた、実施例のドライバには、処理時間を最小化するため、スレーブアドレス→レジスタアドレス→1バイトの駆動データ→1バイトの駆動データ→1バイトの駆動データ→・・・→1バイトの駆動データ・・・の手順を採ったが何ら限定されない。すなわち、送信するデータ個数を2バイト追加し、最初に、開始コマンド(スタートコマンド)を送信し、最後に、終了コマンド(ピリオドコマンド)を送信する構成を採っても良い。但し、この場合もスタートビットや、ストップビットは使用せず、各コマンドは、1単位長(1バイト長)である。
また、例えば、24個のランプを駆動可能なドライバに対して、駆動対象のランプを個々的に特定した状態で、各ランプの点灯状態を規定する駆動データを送信しても良い。この場合には、例えば、スタートコマンド→当該ドライバを規定するスレーブアドレス→ランプを特定するサブアドレス→そのランプに対する駆動データ→ランプを特定するサブアドレス→そのランプに対する駆動データ→・・・・→ピリオドコマンドの手順でシリアルデータが送信される。この場合、送信されるデータの合計バイト数は、一つのドライバに対して24×2+3バイトである。
また、図6〜図9の実施例では、点灯状態を更新するタイミングが、動作許可信号ENABLE0〜ENABLE2によって規定されているが、この点は、何ら限定されない。すなわち、一連のシリアルデータの最後に、終了コマンド(ピリオドコマンド)を送信する構成を採れば、ピリオドコマンド受信したことを認識したドライバDRijの内部処理に基づいて点灯状態を更新することができる。
この場合、各ドライバDRijに、例えば、0〜127の範囲で循環する内部カウンタを設けておき、ピリオドコマンド受信した後、内部カウンタが所定値(例えば127)に達したタイミングで点灯状態を更新するのが好適である。なお、このような構成を採った場合には、点灯状態が更新された後は(つまり、内部カウンタが所定値に達した後は)、同様のシリアルデータの伝送処理を開始することもでき、この意味でも、動作許可信号ENABLE0〜ENABLE2やその他の制御信号が不要となる。
また、図6〜図9の実施例では、3チャンネルのシリアルポート(S0〜S2)に、各5個のドライバDRi0〜DRi04が接続されているが(合計15個)、特に限定されず、ドライバDRijの個数を更に増加させても良い。なお、以下の説明では、ドライバとバッファとを明示的に区別するため、便宜上、LEDドライバDRijと称す。
1つのシリアルポートSIに多数のLEDドライバDRijを接続する場合には、シリアルポートSIやバッファの出力電流の最大容量を考慮して、LEDドライバDRijの入力部を、バイポーラ型の電流駆動方式ではなく、ユニポーラ型の電圧駆動方式とするのが好適である。図10(a)と図10(b)には、好ましいユニポーラ型の入力回路が2つ示されており、このような入力回路を有するLEDドライバDRijが好適に使用される。
また、必ずしも、複数チャンネルのシリアルポート(S0〜S2)を使用する必要はなく、単一のシリアルポートに、多数のLEDドライバDRijを接続しても良い。但し、この場合には、LEDドライバの個数分だけシリアルデータ送信処理(図9のST32〜ST43参照)を繰り返す必要があるので、クロック信号CKを限界まで高速化するのが好適である。
また、動作許可信号ENABLEiの使用を省略することもでき、この場合には、配線を簡素化できる利点がある。但し、動作許可信号ENABLEiを省略することに対応して、スタートコマンド(開始コマンド)と、ピリオドコマンド(終了コマンド)とが付加される。
すなわち、24個のランプの輝度データを更新する場合には、[スタートコマンド]→[当該LEDドライバを規定するスレーブアドレス]→[1番目のランプに対応するレジスタを特定するサブアドレス]→[そのレジスタに対する階調データ]→[2番目のランプに対応するレジスタを特定するサブアドレス]→[そのレジスタに対する階調データ]→・・・・→[24番目のランプに対応するレジスタを特定するサブアドレス]→[そのランプに対する階調データ]→[ピリオドコマンド]の手順で、一つのドライバに対して24×2+3バイトのシリアルデータが送信される。なお、輝度データが更新されるランプ個数がN(<24)の場合には、N×2+3バイトのシリアルデータが送信される。
図11は、動作許可信号ENABLEを使用しない実施例において、輝度データを更新する処理(シリアルデータ送信処理)を示すフローチャートである。特に限定されるものではないが、この送信処理でも、図9の場合と同様に、最初に、全てのLEDドライバについて初期設定処理が実行される(ST50)。具体的には、例えば、各LEDドライバの階調レジスタ(各24個)に書込んだPWM値に対応して、24個のLEDが点灯されるようLEDドライバ毎に初期設定される。
次に、シリアルポートS0の送信データレジスタDRに、1バイト長のスタートコマンド(例えばFFH)を書込む(ST51)。そして、制御レジスタRGのエンプティビットEMPを判定することで、スタートコマンドのシリアル送信が開始されるのを待つ(ST52)。そして、制御レジスタRGのエンプティビットEMPがEMP=1となると、当該LEDドライバのスレーブアドレスを、送信データレジスタDRに書込む(ST53)。なお、スレーブアドレスは、そのLEDドライバに付番されたポート番号に他ならない。
次に、エンプティビットEMPがEMP=1となるのを待ち(ST54)、スレーブアドレス(ポート番号)のシリアル送信が開始されると、変数nをゼロに初期設定する(ST55)。変数nは、階調レジスタGR0〜GR23を特定し、変数nの値(1〜24)が、階調レジスタGR0〜GR23に対応している。
次に、変数nをインクリメントした後(ST56)、サブアドレスをシリアルポートS0の送信データレジスタDRに書込む(ST57)。ここで、サブアドレスとは、階調レジスタGR0〜GR23を特定するレジスタ番号であり、簡易的には、変数nに対応した値となる。次に、エンプティビットEMPがEMP=1となるのを待ち(ST58)、EMP=1となれば、先のサブアドレス(レジスタ番号)で特定される階調レジスタに送信すべき輝度データを送信データレジスタDRに書込む(ST59)。なお、輝度データ(PWM値)は、適宜に構成された出力バッファテーブルTBL(図8参照)から読み出される。
以下、同様であり、輝度データのシリアル送信が開始されると(ST60)、それが24番目の輝度データでない限り(ST61がNo)、次のサブアドレス(レジスタ番号)をシリアルポートS0の送信データレジスタDRに書込み(ST56〜ST57)、同様のシリアルデータ送信処理を繰り返す。
一方、24番目の輝度データのシリアル送信が開始された場合には(ST61がYes)、続いて、当該LEDドライバへのシリアル送信が終了したことを示すピリオドコマンドを送信データレジスタDRに書込む(ST62)。そして、ピリオドコマンドのシリアル送信が開始されたら(ST63)、この送信時間を確保した上で(ST64)、スレーブアドレス(ポート番号)を更新して、同様のシリアルデータ送信処理(ST51〜ST65)を繰り返す。なお、この実施例では、シリアルデータ送信処理(ST51〜ST65)が、LEDドライバの個数に対応して、合計16回繰り返されるが、高速のクロック信号CKを使用することで、送信処理(輝度データの更新処理)を迅速に終えることができる。
ちなみに、合計N個のLEDドライバDRijを使用し、各LEDドライバDRijがM個のLEDを駆動する場合であって、全ての輝度データを更新する場合、全データ数は、(M×2+3)×Nであり、N=16、M=24の場合には816バイト=6528ビットとかなりの値となる。しかし、例えば、10Mz程度のクロック信号を使用すると、0.653mS程度の処理時間で全処理を終えることができ、他の制御処理の処理時間が不足するということはない。
しかも、クロック信号CKを高速化しても、本実施例では、CKラインやSDATAラインに直結される素子の入力部がユニポーラ型であって、しかも、このような素子の個数が限定されているので、波形ナマリによる誤動作のおそれがない。なお、ここでは、説明の都合上、各LEDドライバDRijが24個のLEDを駆動する場合であって、全ての輝度データを毎回更新するとしたが、一回の更新処理で更新される階調レジスタを1/Xに間引くことで、毎回の更新処理時間を、ほぼ1/Xに短縮できる。この場合、毎回の更新処理時間は、クロック信号CKの周期τに対応して、(M×2/X+3)×N×τとなる。
また、FIFOバッファを設けたシリアルポートを使用する場合には、図11に示すシリアルデータ送信処理を簡素化することもできる。図12(b)に示す通り、FIFOバッファは、CPUコアからアクセス可能に構成され、最初にFIFOバッファに格納されたデータから順番に、1バイト毎に、送信データレジスタDRに自動転送され(First In First Out)、送信シフトレジスタSRを経由して、シリアルデータSDATAとして出力される。
この場合の処理は、例えば、図12(a)に示す通りであり、FIFOバッファを使用すること、及び、その使用バイト長をシリアルポートS0の制御レジスタRGに設定した上でステップST50〜ST66の処理が実行される。
具体的には、LEDドライバに初期化データを出力した後(ST50)、一群のデータをFIFOバッファに書込み(ST53)、FIFOバッファに空き領域が生じるのを待つ(ST54)。先に説明した通り、FIFOバッファに書込まれた複数バイト長のデータは、1バイト毎に送信データレジスタDRに自動転送され、送信シフトレジスタSRを経由して、シリアルデータSDATAとして出力される。そして、1バイトのシリアルデータの出力が完了すると、その旨が制御レジスタRGの該当フラグに示されるので、変数nを適宜に更新した上で(ST55〜ST56)、次の1バイトデータをFIFOバッファに補充すればよい(ST57)。
その後の処理も同様であり、FIFOバッファに1バイト長の空き領域が生じる毎に(ST58)、次の1バイトデータをFIFOバッファに補充する処理(ST59)を繰り返す。そして、全てのデータのシリアル送信が終われば、ピリオドコマンドをFIFOバッファに書込めば良い(ST62)。
なお、図12の実施例では、FIFOバッファの記憶容量より、送信すべき一群のデータ量(M×2+3)が多い場合を例示しているが、M×2+3バイトの記憶容量を有するFIFOバッファを確保すれば、ステップST53〜ST63の処理をまとめることができ、CPUの処理負担が極限的に軽減される。例えば、M=24とすると51バイト長のFIFOバッファが必要となるが、例えば、24個の階調レジスタを4等分して、時間的に区分された4回のLED出力処理によって階調データを更新する構成を採れば、FIFOバッファの記憶容量は15バイト長で足りて極めて合理的である。
また、スタートコマンドとピリオドコマンドを使用しない構成であれば、M個の諧調レジスタを更新するのに要するシリアルデータがM+2バイトであるので、M=24の場合でも、諧調レジスタを2分してLED出力処理を2区分するだけで、14バイト長のFIFOバッファの記憶容量で足りることになる。
更にまた、1個のドライバでN個の演出モータを駆動する場合には、N個の演出モータに供給する諧調レジスタへのPWM設定値(=駆動データ:LEDの輝度を規定する輝度データに対応)が、全体としてNバイトとなる。
そのため、スタートコマンドとピリオドコマンドを使用しない構成であれば、N個の演出モータの動作状態を更新するのにN+2バイト長のデータ送信で足り、16バイト長のFIFOバッファを使用すれば、FIFOバッファへの一回の書込み処理で、14個の演出モータへの設定値を書き換えることができる。例えば、1mSの割込み間隔で演出モータを歩進させる場合、CPUは、各割込み処理において、FIFOバッファに16バイトの駆動データを一気に書込めば足りるので、CPUの処理負担が極限的に軽減化される。
<クロック埋め込み方式の複合差動信号DIFによる伝送>
ところで、ここまでの説明では、クロック信号CKiと、シリアル信号(ランプ駆動データ)SDATAiについて、別々の伝送ラインを設けていた。しかし、回路構成を簡略化する意味から、これを一体化させるのも好適である。
図13は、クロック信号CKと、シリアル信号SDATAとを結合回路50で一体化させた後に差動ラインドライバDriに供給し、差動ラインレシーバRecの出力を分離回路56で、元の2つの信号CK,SDATAに戻す回路構成を示している。
結合回路50は、NRZ(Non-Return-to-Zero)信号であるシリアル信号SDATA(図13(a))を、図13(b)に示すRZ(Return-to-Zero)信号に変換すると共に、論理反転した幅狭のクロック信号CK(=PL1)に重合させる回路である。
結合回路50の回路構成は、図13(h)に示す通りであり、クロック信号CKの立下りエッジで動作するワンショットマルチバイブレータ51と、クロック信号CKの立上りエッジで動作するワンショットマルチバイブレータ52と、3個のNOTゲートによる遅延回路53と、ANDゲート54と、ORゲート55とを有して構成されている。
ここで、ワンショットマルチバイブレータ51は、パルス幅τ(例えばduty比50%)のクロック信号CKの立下りエッジに同期して動作することで、論理反転されたパルス幅=τ/2(例えばduty比25%)程度のクロック信号PL1を生成している。一方、ワンショットマルチバイブレータ52は、クロック信号CKの立上りエッジに同期して動作することで、パルス幅=τ×4/5(例えばduty比40%)程度に変形されたクロック信号PL2を生成している(図13(g)参照)。
そして、クロック信号PL2は、3個のNOTゲートによる遅延回路53を通過して時間遅延すると共に、論理反転されて反転クロック信号PL2”として、ANDゲート54に供給される(図13(g))。このANDゲート54には、NRZ信号であるシリアル信号SDATAも供給されているので、ANDゲート54の出力は、RZ信号となり、これがクロック信号PL1とOR演算されることで、図13(d)に示す複合差動信号DIFとなる。
なお、ANDゲート54の出力は、反転クロック信号PL2”によってL期間がやや延長されるため、図13(b)に示すRZ信号とは正確には一致しないが、クロック信号PL1と重合されることで、実質的に、図13(b)と同一のRZ波形となる。また、結合回路50は、必ずしも必須ではなく、例えば、図13(b)に示すRZ信号や、図13(c)に示すクロック信号をシリアルポートSIから出力するのも好適である。また、図13(d)に示す複合差動信号DIFをシリアルポートから出力する構成を採っても良い。
このような複合差動信号DIF(クロック信号PL1+RZ信号)は、差動ラインドライバDriに供給され、低レベルの複合差動信号DIFとして、差動ラインレシーバRecまで伝送され、その後、分離回路56において、元の信号CK,SDATAに戻される。なお、シリアル信号SDATAを伝送しないタイミングでは、複合差動信号DIFはLレベルに維持されるよう構成されている。
分離回路56は、図13(i)に示の通りであり、複合差動信号DIFの立上りエッジで動作するワンショットマルチバイブレータ57と、ワンショットマルチバイブレータ57の出力信号の立下りエッジに同期して、そのタイミングの複合差動信号DIFのレベルを記憶するDラッチ58とを有して構成されている。
分離回路56の動作内容は、図13(d)〜図13(f)に示す通りであり、クロック信号CKと、シリアル信号SDATAとが、クロック信号CKの半周期分だけ位相遅れした状態で復元される。そして、復元されたクロック信号CKと、シリアル信号SDATAは、ドライバDRijに供給されることで、所定のランプを、シリアル信号SDATAで指定された輝度で点灯させることになる。
<クロック埋め込み方式を採らない場合>
以上、LVDS信号として、RZ信号にクロック信号PL1を重合させたクロック埋め込み式の複合差動信号DIFについて説明したが、特に限定されるものではない。例えば、一連のシリアル信号SDATAに先行してスタートビットSTを付記することで、クロック信号の伝送を省略することもできる。
また、LVDS信号による伝送は、LEDランプやモータを駆動する駆動データSDATAiに限定されず、例えば、制御コマンドCMD,CMD’,CMD”についてもLVDS信号によって伝送するのも好適である。
図14は、このような回路構成を例示したものであり、上流側の制御部から下流側の制御部に対して、16ビット長の制御コマンドCMDを、LVDS伝送する場合を示している。なお、スタートビットSTの論理値は、適宜に設定されるが、例えば、非伝送時のシリアル信号SDATAがHレベルに維持される場合には、スタートビットSTの論理値がLとなる(図14(a))。また、スタートビットは、例えば、シリアルポートにおいて自動的に付加される。
この場合のLVDS信号(シリアル伝送信号SGN)は、定常レベル(H)からLレベルに立下るスタートビットSTが、16ビット長の制御コマンドCMDに先行するビットパターンとなる(図14(a))。なお、この場合、上流側の制御部から下流側の制御部には、例えば、制御コマンドCMDを取得すべき旨を指示するストローブ信号STBが伝送される(図14(b)参照)。
この上流側制御部の構成に対応して、下流側の制御部には、シリアル伝送信号SGNの16ビット区間だけ再生クロックRCKを生成する再生クロック生成部80と、シリアル伝送信号SGNと再生クロックRCKを受けて制御コマンドCMDを再生する信号再生部81と、が設けられている。信号再生部81は、16ビット長の制御コマンドCMDを、シリアルデータとして受けるシフトレジスタRGと、16ビット長の制御コマンドCMDを、パラレルデータとして保存する出力バッファBUFとを有して構成されている。
図14(d)に示す通り、再生クロック生成部80は、所定の時間区間だけ基準クロックCKを受ける16×N進カウンタ82と、スタートビットSTの立下りエッジに対応してセットパルスを生成するワンショットマルチバイブレータ83と、ワンショットマルチバイブレータ83からのセットパルス、及び、16×N進カウンタ82からのリセットパルスを受けるRSフリップフロップ84と、を備えて構成されている。
そして、ワンショットマルチバイブレータ83には、シリアル伝送信号SGNの反転信号と、RSフリップフロップ84のQバー出力と、を受けるANDゲート85の出力信号が供給される。また、16×N進カウンタ82の計数端子には、基準クロックCKと、RSフリップフロップ84のQ出力と、を受けるANDゲート86の出力信号が供給される。なお、この実施例では、例えば、N=2であるので、以下、16×N進カウンタ82を32進カウンタ82と表現する。
このような回路構成の再生クロック生成部80において、RSフリップフロップ84は、初期状態でリセット状態であり、そのQ出力がLレベル、Qバー出力がHレベルである。そのため、ANDゲート85は開状態で待機し、ANDゲート86は閉状態で動作開始を待機することになる。
このような待機状態において、シリアル伝送信号SGNが伝送されると、スタートビットSTが反転してワンショットマルチバイブレータ83に供給されることになり、所定時間だけHレベルを維持するセットパルスが生成される。この時、RSフリップフロップ84のリセット端子はLレベルであるので、RSフリップフロップ84はセット状態となり、Q出力がHレベルに遷移する一方、Qバー出力がLレベルに遷移する。
その結果、HレベルのQ出力を受けるANDゲート86が閉状態から開状態に変化する。また、LレベルのQバー出力が多少の時間遅延の後にANDゲート85に供給されるので、その後は、ANDゲート85は閉状態となる。このRSフリップフロップ84の動作状態は、セットパルスが消滅した後も維持されるので、スタートビットST以降のシリアル伝送信号SGNが、ワンショットマルチバイブレータ83に影響を与えることがない。そのため、ANDゲート86の開状態と、ANDゲート85の閉状態は、その後も維持されることになる。
このような動作状態において、32進カウンタ82は、計数動作を繰り返すが、そのN分周出力は、再生クロックRCKとして信号再生部81に供給される。図14(b)と図14(c)は、基準クロックCKと、再生クロックRCKとの関係を図示したものであり、N=2であるこの実施例では、基準クロックCKの2分周出力が再生クロックRCKとなることを示している。
ところで、32進カウンタ82は、32個目の基準クロックCKを受けるとキャリー信号CYを出力する。このキャリー信号CYは、RSフリップフロップ84のリセット端子に供給されるので、RSフリップフロップ84は、このタイミングでリセット状態となり、その結果、ANDゲート86が開状態に遷移する一方、ANDゲート85は開状態に遷移する。
RSフリップフロップ84のリセット状態は、キャリー信号CYの消滅後も維持されるので、ANDゲート86の開状態と、ANDゲート85の開状態が、その後も維持されることになり、その後のシリアル伝送信号SGNのスタートビットSTを待つ待機状態を維持する。なお、キャリー信号CYは時間遅延を経て、論理反転されて32進カウンタ82のクリア端子に供給されるので、カウンタ値は初期状態に戻ることになり、再生クロック生成部80が次のシリアル伝送信号SGNのスタートビットSTを受けた後は、上記と同じ動作を実行することになる。
以上の通り、この実施例では、シリアル伝送信号SGNの16ビット区間だけ、再生クロック生成部80が再生クロックRCKを出力することで、シリアル伝送信号SGNから制御コマンドCMDが抽出される。抽出された制御コマンドCMDは、シリアル信号からパラレル信号に変換されて信号再生部81の出力バッファBUFに格納される。したがって、ストローブ信号STBによって制御コマンドが伝送されたことを通知された下流側制御部では、信号再生部81の出力バッファBUFから制御コマンドを取得すれば良いことになる。
以上説明した図14(d)の回路構成によれば、クロック信号を埋め込むことなく、簡易にLVDS伝送することができる。しかも、制御コマンドCMD,CMD’,CMD”などが、低レベルの差動信号(LVDS信号)として伝送されるので、伝送信号の高調波によって電波法上の問題が生じることがない。また、制御コマンドが差動信号として伝送されコモンモードノイズの影響が排除されるので、制御コマンドのビット化けが効果的に防止される。
<シリアルポートに代えてシリアル伝送素子を使用する場合>
ところで、これまでの説明では、シリアルポートSIを使用してシリアル信号を生成していたが、必ずしも、このような構成に限定されず、シリアルポートSIを使用しない構成も簡易性において極めて好適である。
図15は、シリアルポートSIの動作を、専用のシリアル伝送素子(IC)70に代用させる構成例を示している。図示の通り、このシリアル伝送素子70は、動作クロックを生成する発振回路OSCと、16ビット長の入力/出力バッファ60(60T/60R)と、シリアライザ/デシリアライザ61(61T/61R)と、クロック抽出回路62と、差動ラインドライバDriと、差動ラインレシーバRecなどを内蔵して構成されている。また、動作制御端子DIRと、動作可否状態を制御するリセット端子RSTNと、素子選択用のチップセレクト端子CSとを備えている。
動作制御端子DIRは、シリアル伝送素子70を、送信モード(DIR=L)で動作させるか、受信モード(DIR=H)で動作させるかを規定する制御端子である。そして、送信モードのシリアル伝送素子70の入力バッファ60Tには、例えば、演出制御部22’のワンチップマイコン40のパラレルポートP0’から、16ビット長のパラレルデータが供給される。一方、受信モードのシリアル伝送素子70は、例えば、LEDドライバに接続されて、出力バッファ60Rが16個のLEDを点灯制御している。
図示の通り、図15の回路構成では、シリアル伝送素子70R・・・70Rは、その動作制御端子DIRがHレベルに固定されているので、シリアル信号の受信動作を繰り返し、受信した16ビットデータをLEDドライバに出力することになる。特に限定されないが、この実施例の場合、伝送されるシリアル信号は、16個のLEDをON/OFFレベルを規定する16ビット長の単純な点灯データである。
一方、図15のシリアル伝送素子70Tの動作制御端子DIRは、必要時に、演出制御部22’のワンチップマイコン40によって、所定時間だけLレベルを維持するよう構成されている。なお、16ビット長のシリアル伝送処理が完了するまで、動作制御端子DIRがLレベルとされる。そして、動作制御端子DIRがLレベルに遷移するタイミングで、リセット端子RSTNが同期してHレベルになることで、シリアル伝送素子70のシリアライザ61Tの送信動作が開始されるよう構成されている。
そして、送信動作を開始したシリアライザ61Tは、発振回路OSCの動作クロックに同期して、入力バッファ60Tの16ビットデータを1ビットずつ受けて、差動ラインドライバDriに、LVDS信号を供給する。
特に限定されるのではないが、このLVDS信号は、クロック埋め込み式のシリアル信号であり、図13に示したRZ信号に、クロック信号(発振回路OSCが出力する動作クロック)を重合させた複合差動信号DIFである。そして、クロック抽出回路62は、図13の分離回路56と同様に動作して、複合差動信号DIFに埋め込まれたクロック信号を抽出している。
デシリアライザ61Rは、抽出回路62が抽出したクロック信号に同期して機能して、複合差動信号DIFから16ビット長のシリアル信号(RZ信号)を抽出して、これを出力バッファ60Rに16ビットパラレルデータとして出力している。先に説明した通り、この実施例の場合、伝送されるシリアル信号は、16個のLEDをON/OFFレベルを規定する16ビット長の点灯データであり、出力バッファ60Rのパラレルデータは、LEDドライバに供給されて、16個のLEDを点灯制御している。
以上の説明を踏まえて、演出制御部22’のワンチップマイコン40が、所定時間毎に、N個のシリアル伝送素子70R・・・70Rを経由してN×16個のLEDランプの点灯制御動作を繰り返す定時動作(点灯更新処理)について説明する。
ワンチップマイコン40は、N個のシリアル伝送素子70Rの先頭のアドレス値(チップ番号)をアドレスデコーダ63に出力することで、チップセレクト信号CS0をアクティブにした後、ワンチップマイコン40のパラレルポートPo’に点灯データをセットし、所定時間だけ、送信指令信号CTLをLレベルに維持する。
すると、送信指令信号CTLがLレベルになったことで、シリアル伝送素子70Tは、上記した送信処理を自動的に開始して、複合差動信号DIFを差動ラインドライバDriから出力する。この動作に対応して、チップセレクトされているシリアル伝送素子70Rの差動ラインレシーバRecは、複合差動信号DIFを受信し、受信された複合差動信号DIFは、デシリアライザ61Rにおいて点灯データに復元されて、復元された点灯データをLEDドライバに出力する。
次に、ワンチップマイコン40は、2番目のアドレス値をアドレスデコーダ63に出力し、対応する点灯データをパラレルポートPo’セットし、所定時間だけ、送信指令信号CTLをLレベルに維持する。以下、同様であり、N個のシリアル伝送素子70Rに対して、同じ送信動作を繰り返すことで、N×16個のランプ点灯状態を更新する定時処理を終えることができる。
以上の動作から確認される通り、図15の実施例では、ワンチップマイコン40の制御負担が大幅に軽減される利点がある。しかも、シリアル伝送素子70Rへの信号線は、3本であり(DIF+CSi)であり、機器構成を大幅に簡素化することができる。更に、LVDS信号を使用するので、コモンモードノイズに強い上に、電波法上のトラブルも防止される。
<別のシリアル伝送素子を使用する場合>
ところで、図15に示すシリアル伝送素子は、16ビット長のパラレルデータを入出力しているが、2バイト長のパラレルデータを1バイト単位で処理するシリアル伝送素子71を使用するのも好適である。
図16(a)は、この場合の回路例であり、このシリアル伝送素子71は、動作クロックを生成する発振回路OSCと、8ビット長の入力/出力バッファ65(65T/65R)と、16ビットデータを扱うシリアライザ/デシリアライザ66(66T/66R)と、クロック抽出回路67と、差動ラインドライバDriと、差動ラインレシーバRecなどを内蔵して構成されている。また、動作制御端子TXEN,RXENと、入出力データが16ビットデータの上位バイトか下位バイトかを規定する上下イネーブル端子LEN_U,LEN_Lとを備えている。
ここで、動作制御端子TXENがLレベルである図16(a)左側のシリアル伝送素子71は送信動作を実行し、動作制御端子RXENがLレベルである図16(a)右側のシリアル伝送素子71は受信動作を実行することになる。
なお、シリアライザ/デシリアライザ66(66T/66R)や、クロック抽出回路67は、図15のシリアル伝送素子70の場合と同様に機能し、例えば、2バイト長の制御コマンドが、図13に示すクロック埋め込み式のシリアル信号として伝送される。また、ここでは、上流側の制御基板から下流側の制御基板に制御コマンドCMDを伝送するので、制御コマンドCMDを送信したことを示すストローブ信号STBも、下流側の制御基板に伝送される。
上流側の制御部が制御コマンドを送信する場合には、上流側のコンピュータ素子は、2バイトの制御コマンドの1バイト目を出力した後に、上下イネーブル端子LEN_U,LEN_Lの何れか一方側をアクティブにする。すると、シリアル伝送素子70では、1バイト目の制御コマンドが、入力バッファ65Tに取得されると共に、1バイト目の制御コマンドのシリアライザ66Tへの転送動作が開始される。
そこで、上流側のコンピュータ素子は、1バイト目の転送動作が完了するまで待機した後、制御コマンドの2バイト目を出力し、上下イネーブル端子LEN_U,LEN_Lの他方側をアクティブにする。すると、シリアル伝送素子70では、2バイト目の制御コマンドが、入力バッファ65Tに取得されると共に、2バイト目の制御コマンドのシリアライザ66Tへの転送動作が開始される。また、2バイト長の制御コマンドについてシリアル伝送が開始され、差動ラインドライバDriから時間順次にLVDS信号が出力される。
出力されたLVDS信号は、シリアル伝送素子71の差動ラインレシーバRecで受信され、クロック抽出回路67やデシリアライザ66Rが機能することで、2バイト長の制御コマンドがパラレルデータに変換されて、出力バッファ65Rに保存される。
一方、ストローブ信号STBを受けた下流側の制御基板のコンピュータ素子は、出力バッファ65Rから制御コマンドを1バイト毎に取得する。この場合、下流側のコンピュータ素子は、上位イネーブル端子LEN_Uをアクティブにして、上位1バイトを取得し、下位イネーブル端子LEN_Lをアクティブにして、下位1バイトを取得することになる。
なお、上記の説明では、クロック埋め込み方式を採ることにしているが、LVDS信号は、特に、クロック埋め込み式のシリアル信号である必要はなく、例えば、クロック抽出回路67を、図14(d)に示す再生クロック生成部80や信号再生部81と同様の回路構成にすれば、制御コマンドCMDにスタートビットを付加した単純なシリアル信号を使用することができる。
また、図16(a)では、制御コマンドの伝送について説明したが、枠側部材GM1としてのチャンスボタン11やその他のスイッチ信号をまとめて、シリアル伝送素子71を使用して伝送するのも好適である。
図16(b)は、チャンスボタン11その他のスイッチ信号を受ける送信モードのシリアル伝送素子71Tと、演出制御部22’に配置される受信モードのシリアル伝送素子71Rとを示している。特に限定されるものではないが、スイッチ信号は、最高16ビットとし、これが、8ビット毎に演出制御部22’のワンチップマイコン40に取得されることにする。
図16(b)の回路構成では、シリアル伝送素子71Tに近接して、発振回路OSCと、8進カウンタ90と、3−8デコーダ91とが設けられている。ここで、発振回路OSCの発振周期Tは、スイッチ信号のサンプリング周期に対応して、例えば、1mS〜10mS程度に設定される。
この場合には、3−8デコーダ91からは、各々、8×T毎に、各デコード出力OT0、OT1、・・・OT7が出力され、デコード出力OT0は、上位イネーブル端子LEN_Uに供給され、デコード出力OT1は、下位イネーブル端子LEN_Lに供給されている。また、デコード出力OT7は、送信開始を示す通知信号RDYとして、演出制御部22’に伝送される。
この回路構成では、発振回路OSCの発振周期Tに対応して、8×T毎(1mS〜10mS程度)に、上位イネーブル端子LEN_Uと下位イネーブル端子LEN_Lとが、この順番にアクティブになる。そのため、2バイト長のスイッチ信号が、上位バイト→下位バイトの順番に、シリアル伝送素子71Tの入力バッファ65Tに取得され、シリアライザ66T及び差動ラインドライバDriを経由して、クロック埋め込み式その他の形式のLVDS信号として、演出制御部22’に向けて送信される。一方、LVDS信号を受けるシリアル伝送素子71Rでは、差動ラインレシーバRec及びデシリアライザ66Rを経由して、受信したLVDS信号を2バイト長のスイッチ信号に復元する。
そして、下位イネーブル端子LEN_Lがアクティブレベルになってから、6×T後には、デコード出力OT7(通知信号RDY)がアクティブレベルとなるので、これを受けた演出制御部22’では、2バイト長のスイッチ信号を、1バイト毎に取得することになる。
なお、図16(b)の回路構成では、端末機器側から演出制御部に対して、通知信号RDYの伝送が必要になる。しかし、シリアル伝送素子71に、デシリアライザ66Rの動作完了を示すフラグレジスタ93を内蔵させれば、演出制御部22’のワンチップマイコンがフラグレジスタ93を参照することで、LVDS信号の受信完了を知ることができ、通知信号RDYの伝送を不要にすることができる。
以上、図15〜図16では、シリアル伝送素子71を使用して差動伝送を実現する回路構成を説明したが、(1)ノイズ上のトラブルが懸念されない場合、(2)伝送距離が近い場合、(3)簡易性を重視したい場合などは、差動信号に代えてシングルエンド信号を伝送しても良い。この場合には、制御コマンドやスイッチ信号が1本の信号線で伝送できる大きなメリットがある。
以上、各種の実施例を説明したが、点灯信号や制御コマンドCMDを伝送する回路構成や回路動作手法が、スイッチ信号を伝送する場合にも活用できるのは言うまでもない。また、ここでは、もっぱら弾球遊技機を例にして各種の実施例を説明したが、本発明の適用は、弾球遊技機に限定されないのは勿論である。