本発明をパチスロ1に適用した場合の実施の形態について、以下図面を参照しながら説明する。なお、本発明をパチンコ、その他の遊技機に適用することも可能である。
図1は、パチスロ1の外観斜視図であり、図2は、キャビネット2の前面に開閉可能に軸支されているフロントドア9を開いて、パチスロ1の内部を観察した斜視図である。
パチスロ1は、リール3や回路基板等を収容するキャビネット2と、キャビネット2に対して開閉可能に取り付けられるフロントドア9とを備える。キャビネット2の内部には、3つのリール3が横並びに設けられている。各リール3は、円筒状のフレームの周面に、複数の図柄(例えば21個)が回転方向に沿って連続的に配された帯状のシートを貼り付けて構成されている。
フロントドア9の中央には、液晶表示装置5が設けられている。液晶表示装置5は、図柄表示領域を含む表示画面を備え、正面から見て3つのリール3に重畳する手前側に位置するように設けられている。図柄表示領域は、3つのリール3のそれぞれに対応して設けられており、その背後に設けられたリール3を透過することが可能な構成を備えている。
つまり、図柄表示領域は、表示窓4としての機能を果たすものであり、その背後に設けられたリール3の回転及びその停止の動作が遊技者側から視認可能となる。また、本実施の形態では、図柄表示領域を含めた表示画面の全体を使って、映像の表示が行われ、演出が実行される。
図柄表示領域(以下、表示窓4)は、その背後に設けられたリール3の回転が停止されたとき、リール3の表面に配された複数種類の図柄のうち、その枠内における上段、中段及び下段の各領域にそれぞれ1個の図柄(合計で3個)を表示する。また、各表示窓4が有する上段、中段及び下段からなる3つの領域のうち予め定められた何れかをそれぞれ組合せてなる擬似的なラインを、入賞か否かの判定を行う対象となるライン(入賞判定ライン8)として定義する。
本実施の形態では、各表示窓4の上段を組合せてなるトップライン、各表示窓4の中段を組合せてなるセンターライン、各表示窓4の下段を組合せてなるボトムライン、左表示窓の上段、中表示窓の中段及び右表示窓の下段を組合せてなるクロスダウンライン、左表示窓の下段、中表示窓の中段及び右表示窓の上段を組合せてなるクロスアップラインの5つを入賞判定ライン8として設けている。
フロントドア9には、遊技者による操作の対象となる各種装置が設けられている。台座部右側に配されているメダル投入口15は、遊技者によって外部から投下されるメダルを受け入れるために設けられる。メダル投入口15に受け入れられたメダルは、所定枚数(例えば3枚)を上限として1回の遊技に投入されることとなり、所定枚数を超えた分はパチスロ1内部に預けることが可能となる(いわゆるクレジット機能)。
台座部左側に配されているベットボタン13は、パチスロ1内部に預けられているメダルから1回の遊技に投入する枚数を決定するために設けられる。精算ボタン14は、パチスロ1内部に預けられているメダルを外部に引き出すために設けられる。
台座部左側に配されているスタートレバー6は、全てのリール3の回転を開始するために設けられる。ストップボタン7は、3つのリール3のそれぞれに対応づけられ、対応するリール3の回転を停止するために設けられる。
リール3の左側に配されている7セグ表示器12は、7セグメントLEDからなり、今回の遊技に投入されたメダルの枚数(以下、投入枚数)、特典として遊技者に対して払い出すメダルの枚数(以下、払出枚数)、パチスロ1内部に預けられているメダルの枚数(以下、クレジット枚数)等の情報を遊技者に対してデジタル表示する。
液晶表示装置5の側方及び上方には、多数のランプ24(LED等)が配されており、演出内容に応じて、点灯状態の移動、点灯状態の回転、ストロボ状の発光、その他の点消灯のパターンにて発光する。液晶表示装置5の下方左右に配されている一対のスピーカ21は、演出内容に応じた効果音や楽曲等の音を出力する。メダル払出口16は、後述のメダル払出装置の駆動により排出されるメダルを外部に導く。メダル払出口16から排出されたメダルは、メダル受皿17に貯められる。
液晶表示装置5の下方かつ台座部の上方には、図柄組合せ及びメダルの配当枚数等を表示する配当パネル23が配設されている。また、台座部の下方には、機械名称やキャラクタの図柄を表示する腰部パネル25が設けられている。なお、腰部パネル25下方のメダル受皿17の奥にも、演出等の音響効果を高める一対のスピーカ21が設けられている。
図2は、本実施の形態におけるパチスロ1の内部構造を示す図であり、フロントドア9が開放され、フロントドア9の裏面側の構造及びキャビネット2内部の構造が現れた状態が示されている。
キャビネット2内部の上方には、主制御回路55を構成する基板(以下、主基板)が設けられている。主制御回路55は、内部当籤役の決定、リール3の回転及び停止、入賞の有無の判定といった、パチスロ1における遊技の主な流れを制御する回路である。
キャビネット2内部の中央には、3つのリール3が設けられている。各リール3のそれぞれには、所定の減速比をもったギアを介してステッピングモータが接続されている。
キャビネット2内部の下方には、多量のメダルを収容可能で、それらを1枚ずつ排出可能な構造を有するメダル払出装置43が設けられている。メダル払出装置43の左側には、パチスロ1が有する各装置に対して必要な電力を供給するための電源装置54が設けられている。
フロントドア9の裏側の上部には、副制御回路56を構成する基板(以下、副基板)が設けられている。副制御回路56は、ランプ24の点消灯、音声の発生、映像の表示等による演出の実行を制御する回路である。副制御回路56の具体的な構成は後述する。
フロントドア9の裏側の中央、表示窓4の下方には、セレクタ51が設けられている。セレクタ51は、材質や形状等が適正であるメダルか否かを選別する装置であり、メダル投入口15に受け入れられた適正なメダルをメダル払出装置43へ案内する。尚、セレクタ51内においてメダルが通過する経路上には、後述のメダルセンサ50(図3参照。)が設けられており、適正なメダルが通過したことを検出する。
パチスロ1の構造についての説明は以上である。次に、図3を参照して、本実施の形態におけるパチスロ1の、フロントドアブロック(フロントドア9の裏側)及びキャビネットブロック(キャビネット2の内部)に備える回路の構成について説明する。本実施の形態におけるパチスロ1は、主制御回路55、副制御回路56及びこれらと電気的に接続する中継基板、周辺装置を備える。
主制御回路55は、回路基板上に設置されたマイクロコンピュータを主たる構成要素としている。マイクロコンピュータは、CPU(以下、メインCPU)、ROM(以下、メインROM)、RAM(以下、メインRAM)、I/O、通信回路等により構成される。
メインROMには、メインCPUにより実行される制御プログラム、内部抽籤テーブル等のデータテーブル、副制御回路56に対して各種制御指令(コマンド)を送信するためのデータ等が記憶されている。メインRAMには、制御プログラムの実行により決定された内部当籤役等の各種データを格納する格納領域が設けられる。
主制御回路55のメインCPUには、クロックパルス発生回路、分周器、乱数発生器及びサンプリング回路等が接続されており、メインCPUは、発生されたクロックパルスに基づいて、制御プログラムを実行する。乱数発生器は、予め定められた範囲の乱数(例えば、0〜65535)を発生し、サンプリング回路は、発生された乱数の中から1つの値を抽出して、遊技に関する抽籤処理を行う。
主制御回路55の主基板は、電力を供給する電源装置54、リール3の回転及び停止制御を行うリールモータ駆動回路39、メダルの払い出し制御を行うメダル払出装置43、ドア中継基板62等の各中継基板と通信により接続されている。また、主制御回路55の主基板は、遊技場のホストコンピュータ等と情報の送受信を行う外部集中端子板63と情報の送受信が可能なように接続されている。
更に主制御回路55は、演出を目的として、ランプ24や液晶表示装置5、又は音声発生装置等の制御を実行する副制御回路56に対して、メダルの投入、スタートレバー6の操作、ストップボタン7の操作、内部当籤役、表示役、遊技状態等の各種の情報を送信する。そのために主制御回路55の主基板は、副制御回路56の副基板と通信により接続されている。
例えばここで、主制御回路55が直接、ドア中継基板62に接続されている各入力手段の状態を読み取るとともに、リールモータ駆動回路39、メダル払出装置43等の周辺装置を制御し、貯留枚数表示器、役物回数表示器、払出枚数表示器、当たり表示器、その他の出力手段に対して表示情報を出力して遊技を進行することも可能である。しかし、メインCPUが直接各入力手段の状態を読み取って、各周辺装置の制御や、各出力手段の表示制御を行うためには、主制御回路55のメインCPUがI/Oを介して情報の読み書きを行わなければならず、主制御回路55の主基板に多量の電線を接続しなければならなくなる。
すると、配線の増加に伴って電線の断線や接続不良等による故障の発生率が増加したり、パチスロ1のメンテナンスが困難になったり、パチスロ1の価格が上昇するなどの不具合を生ずる。
また、主制御回路55と各周辺装置、又は副制御回路56との間における通信手段として新たな通信規格を採用してしまうと、通信素子の開発やプロトコルの確立に多大な開発期間とコストとが必要となるが、使い慣れた汎用の通信規格を用いることで、短期間且つ安価にて確実な通信を実現することができる。特に、1つの筐体内において複数の基板間で通信を行うには、RS232に準拠した規格やI2Cなどの、有線による簡易な通信規格が好都合である。
ところが、パチスロ1やパチンコなどの遊技機では、これらの遊技機に対して電波を照射したり放電させたりすることにより、遊技機内において誤動作を誘発させたり、予め細工を加えた遊技機において不正なプログラムを起動させるなどの、不正なゴト行為が必ず発生する。
したがって、これら遊技機を開発するに際しては、主制御回路55のみならず副制御回路56においても、これらのゴト行為に対して予め十分な対策を実施しておき、遊技場において新たな遊技機が入れ替えられた当初から、ゴト行為に対して潔癖な遊技機である旨をアピールすることで、ゴト行為の意欲を削いでおくことが重要となる。特に、遊技者と直接対峙する位置に存在するフロントドア9は、ゴト行為の対象となり易いので、十分な対策が必要とされる。
また、同様に、遊技者の衣類等に静電気が帯電しており、遊技者が遊技機に触れた瞬間に静電気が遊技機に放電した場合や、遊技者が携行する携帯電話機が発する電磁波により、主制御回路55又は副制御回路56において誤動作が発生しないことが好ましい。
しかし、RS232やI2Cなどの簡易な通信規格では、電線を用いて情報の送受信を行っているために、基板間を接続している通信ケーブルに含まれる通信線や電源線、アース線などが電磁波を拾い、ノイズとなって主制御回路55や副制御回路56に伝達され、主制御回路55や副制御回路56において誤動作が誘発される可能性もある。
また、主制御回路55や副制御回路56に接続されている通信線にノイズが乗ると、コマンドの再送などによる情報伝達の遅延が生じることで、各入力手段の操作情報の伝達が遅れたり、表示手段の表示タイミングが遅れたり、周辺装置に対する制御指令が遅れるなどの不具合を生ずる。
なお、通信ケーブル自体に強力なシールド対策を実施する方策も考えられるが、通信線にシールド線を用いると多大な容量負荷が並列接続されることとなるので、通信速度を下げて使用しなければならなくなったり、屈曲性に劣る配線の取り回しが困難になるなどの不具合を生ずる。
そこで本発明では、通信ケーブルとして電線を用いる代わりに光通信用のケーブルを用いることで、所定の通信速度を維持しつつ、照射された電磁波によるノイズの発生を防止して、主制御回路55及び副制御回路56における誤動作を防止している。
図3に示すように、主制御回路55に接続されているドア中継基板62には、パチスロ1の操作部に配されている各種スイッチ等の配線が接続されている。ドア中継基板62に接続されているメダルセンサ50は、メダル投入口15に受け入れられたメダルが前述のセレクタ51内を通過したことを検出する。
ドア中継基板62に接続されているベットスイッチ13Sは、ベットボタン13が遊技者により操作されたことを検出する。また、スタートスイッチ6Sは、スタートレバー6が遊技者により操作されたことを検出する。
また、ストップスイッチ46は、3つのストップボタン7のそれぞれが遊技者により押されたことを検出する。これらのスイッチ等の入力情報は、ドア中継基板62から主制御回路55の主基板に対して伝達される。主制御回路55は、これらの入力情報に基づいて遊技を進行させ、リールモータ駆動回路39、メダル払出装置43等の周辺装置の動作を制御する。
リールモータ駆動回路39は、各リール3毎に配されたステッピングモータの駆動を制御する。各リール3にはリール位置検出回路が接続されており、このリール位置検出回路は、発光部と受光部とを有する光センサにより、リール3が一回転したことを示すリールインデックスを検出する。
各リール3を回転させるステッピングモータの駆動力は、所定の減速比をもったギアを介してリール3に伝達される。ステッピングモータに対して1回のパルスが出力されるごとに、リール3は一定の角度で回転する。
主制御回路55のメインCPUは、リールインデックスを検出してからステッピングモータに対してパルスを出力した回数をカウントすることによって、リール3の回転角度(主に、リール3が図柄何個分だけ回転したか)を管理し、リール3の表面に配された各図柄の位置を管理するようにしている。
メダル払出装置43には、メダル検出部が配されており、払い出しを行うメダルの数量を検出して、メダル払出装置43から外部に排出されたメダルが払出枚数に達したか否かをチェックすることができる。
次に、フロントドア9の裏側に配されている副制御回路56の副基板と、それに接続されている周辺装置及び各種中継基板について説明する。
副制御回路56は、主制御回路55と一方向の通信により接続されており、主制御回路55から送信されるコマンドに基づいて演出内容の決定や実行等の処理を行う。副制御回路56は、基本的に、CPU(以下、サブCPU)、ROM(以下、サブROM)、RAM(以下、サブRAM)、レンダリングプロセッサ、描画用RAM、ドライバ、DSP(デジタルシグナルプロセッサ)、オーディオRAM及びA/D変換器及びアンプを含んで構成されている。
副制御回路56のサブCPUは、主制御回路55から送信されたコマンドに応じて、サブROMに記憶されている制御プログラムに従い、映像、音、光の出力の制御を行う。サブRAMは、決定された演出内容や演出データを登録する格納領域や、主制御回路55から送信される内部当籤役等の各種データを格納する格納領域が設けられている。サブROMは、基本的に、プログラム記憶領域とデータ記憶領域によって構成される。
プログラム記憶領域には、サブCPUが実行する制御プログラムが記憶されている。例えば、制御プログラムには、主制御回路55との通信を制御するための主基板通信タスクや、演出用乱数値を抽出し、演出内容(演出データ)の決定及び登録を行うための演出登録タスク、決定した演出内容に基づいて液晶表示装置5による映像の表示を制御する描画制御タスク、ランプ24による光の出力を制御するランプ制御タスク、スピーカ21による音の出力を制御する音声制御タスク等が含まれる。
副制御回路56には、その動作が制御される周辺装置として、液晶表示装置5、スピーカ21及びサウンド基板110、ランプ基板58、下皿LED基板61等が接続されている。
副制御回路56のサブCPU、レンダリングプロセッサ、描画用RAM(フレームバッファを含む)及びドライバは、演出内容により指定されたアニメーションデータに従って映像を作成し、作成した映像を液晶表示装置5に伝達して表示する。
また、副制御回路56のサブCPU、DSP、オーディオRAM、A/D変換器及びアンプは、演出内容により指定されたサウンドデータに従ってBGM等の音を上部スピーカ21により出力する。また、サブCPUは、演出内容により指定された音声情報のコマンドをサウンド基板110に送信する。当該音声情報のコマンドを受信したサウンド基板110は、コマンドを解析して、DSP、オーディオRAM、A/D変換器及びアンプ等により音声信号を生成して、下部スピーカ21及び背面スピーカ21から音声を出力する。
また、副制御回路56のサブCPUは、演出内容により指定されたランプデータに従ってランプ24の点灯及び消灯を行う。
ランプ基板58は、副制御回路56から受信した指令に基づいて、主に図1に示すパチスロ1の前面上部の液晶表示装置5の側方に配されている多数のランプ24の点消灯のパターンを切り替えることができる。副制御回路56は、ランプ24の点消灯に関する演出内容に応じたコマンドをランプ基板58に送信する。ランプ基板58が当該コマンドを受信すると、ランプ基板58では多数配置されているランプ24の点灯及び消灯を個々に制御して、点灯状態の移動、点灯状態の回転、ストロボ状の発光、その他の点消灯のパターンにてそれぞれのランプ24を発光させる。
なお、上述のように副制御回路56とランプ基板58との間における情報の伝達に光通信を用いる他、副制御回路56と液晶表示装置5との間、副制御回路56とサウンド基板110との間、副制御回路56と下皿LED基板61との間、副制御回路56と主制御回路55との間、主制御回路55とドア中継基板62との間等の通信にも、光通信を用いることができる。
次に、各入力手段から主制御回路55に対して入力情報を伝達する信号経路と、主制御回路55から表示部等の各出力手段に対して出力情報を伝達する信号経路と、主制御回路55がリールモータ駆動回路39やメダル払出装置43を制御する際に送受信する制御信号の信号経路とについて、図4を用いて説明する。
図4は、主制御回路55(通信では、以下に説明するようにマスタ基板64側に該当する。)と3枚のスレーブ基板65との間の情報伝達経路を、光通信を用いてリング式に接続した実施例を示す図である。図4では、主制御回路55と各入力手段、各出力手段、及び各周辺装置との間における情報伝達経路について示してあるが、副制御回路56とランプ基板58、サウンド基板110及び下皿LED基板61との間における情報伝達経路についても同様なリング式の接続を行うことができる。
主制御回路55におけるメインCPU31のバスには、各入力手段、各出力手段、及び各周辺装置との間で各種情報の入出力を行うマスタ通信装置67が接続されている。ここで、主制御回路55及びマスタ通信装置67が配置されている基板を、通信におけるマスタ基板64と呼ぶことにする。
マスタ通信装置67が出力したコマンド及びステータスを含む光信号は、第1のスレーブ基板65に配されている第1のスレーブ通信装置68が入力する。図4に示す第1のスレーブ通信装置68は、例えばドア中継基板62(図2及び図3参照。)である。第1のスレーブ通信装置68は、必要に応じて受信したコマンド及びステータスに対応した処理を行うとともに、処理後のステータス及びコマンドを含む光信号を第2のスレーブ基板65に出力する。
第1のスレーブ通信装置68が出力したコマンド及びステータスを含む光信号は、第2のスレーブ基板65に配されている第2のスレーブ通信装置68が入力する。第2のスレーブ通信装置68は、必要に応じて受信したコマンド及びステータスに対応した処理を行うとともに、処理後のステータス及びコマンドを含む光信号を第3のスレーブ基板65に出力する。
例えば、第2のスレーブ基板65をキャビネット2側に配置し、第2のスレーブ基板65に配したスレーブ通信装置68のI/Oを、リールモータ駆動回路39に接続しておくことができる。こうすることで、リールモータに対する駆動信号を主制御回路55からリールモータ駆動回路39に伝達することや、リールインデックスの検出信号をリールモータ駆動回路39から主制御回路55に伝達することができる。なお、スレーブ通信装置68をリールモータ駆動回路39と同一の基板内に配置してもよい。
第2のスレーブ通信装置68が出力したコマンド及びステータスを含む光信号は、第3のスレーブ基板65の第3のスレーブ通信装置68が入力する。第3のスレーブ通信装置68は、必要に応じて受信したコマンド及びステータスに対応した処理を行うとともに、処理後のステータス及びコマンドを含む光信号をマスタ基板64のマスタ通信装置67に出力する。
第3のスレーブ基板65は、メダル払出装置43の近傍のキャビネット2側に配置することができる。第3のスレーブ基板65内に配したスレーブ通信装置68のI/Oは、メダル排出装置43に接続しておく。このように構成することで、主制御回路55がメダル排出装置43に対して所定枚数のメダルの払い出しを指示することができる。また、メダル排出装置43は、主制御回路55から取得した情報に基づいて、所定枚数のメダルの払い出しが完了したことを表す情報を主制御回路55に送信することができる。
このように、コマンド及びステータスを含む光信号は、1乃至複数のスレーブ基板65を順次経由した後に、主制御回路55のマスタ通信装置67が入力する。また、当該パチスロ1を用いて実射試験又は出荷検査を行う際に、光信号の情報伝達経路内に治具通信装置69を備えた治具基板66を挿入することも可能である。
なお、各スレーブ基板65及び治具基板66を、それぞれ同一の回路で構成することも可能であるし、固有の回路で構成することも可能である。各スレーブ基板65及び治具基板66には、識別のための固有のアドレスを設定することが可能となっており、当該基板がスレーブ基板65として用いられていることを表す用途情報、及び当該基板が治具基板66として用いられていることを表す用途情報を設定することが可能となっている。マスタ通信装置67は、スレーブ基板65固有のアドレスとコマンド及びステータスとを関連づけて送信することも可能であるし、予めスレーブ基板65毎にコマンド及びステータスのデータ配列を定めておくことも可能である。
マスタ通信装置67がコマンド及びステータスを含む光信号を発信してから、1乃至複数のスレーブ基板65を経由して再度マスタ通信装置67に戻るまでの時間は、例えば500μsec以下となるように構成する。これにより、主制御回路55にて実行されるリアルタイム処理に対応することが可能である。
なお、図4に示す実施例では、3枚のスレーブ基板65と1枚の治具基板66とを一つのループ内に接続した例を示しているが、一回の通信時間を短縮するために、スレーブ基板65の枚数を2枚程度に制限するとともに、マスタ基板64側に複数のマスタ通信装置67、又は複数の光通信ポートを配置して、複数の情報伝達経路のループを形成することもできる。
また、情報伝達経路のループ内に治具基板66を挿入した場合には、治具基板66の存在をマスタ通信装置67が検出することができる。治具基板66を検出した場合には、マスタ通信装置67がコマンド及びステータスを含む光信号を発信してから、1乃至複数のスレーブ基板65及び1乃至複数の治具基板66を経由して再度マスタ通信装置67に戻るまでのタイムアウト時間を長く設定することも可能である。
なお、図4に示すように、マスタ基板64から出力され、各基板間を転送されている光信号をモニタする場合や、コマンドに対応したステータスを書き換えることにより実射試験又は出荷検査を行う場合には、情報伝達経路に治具基板66を挿入することができる。情報伝達経路に治具基板66を挿入することによって、他のスレーブ基板65を実装させた状態のまま、光信号のモニタや実射試験又は出荷検査を実行することができる。
第1のスレーブ基板65のI/Oには、パチスロ1のフロントドア9に配されているメダルセンサ50、ベットスイッチ13S、ストップスイッチ46、スタートスイッチ6Sその他の入力手段が接続されており、各入力手段の情報を読み取って対応したステータスの応答情報を生成し、マスタ通信装置67から発信されてきたコマンドとともにステータスの応答情報を付けて返信する。当該応答情報は、他のスレーブ基板65又は治具基板66を経由して、マスタ通信装置67に伝達される。
また、第1のスレーブ基板65のI/Oには、パチスロ1のフロントドア9に配されている貯留枚数表示器、役物回数表示器、払出枚数表示器、当たり表示器等の出力手段の表示部駆動回路41が接続されており、主制御回路55のマスタ通信装置67から受信したコマンド及びステータスに基づいて、対応したI/Oの状態を設定して、これらの出力手段の点灯表示を行うことができる。
また、スレーブ基板65が、マスタ通信装置67からコマンド及びステータスを受信すると、当該コマンドを受信した旨の情報を当該スレーブ基板65固有のアドレスに関連する情報と関連づけて返信する。これにより、マスタ通信装置67においてスレーブ基板65が当該コマンドを受信した旨を確認することができる。
また、スレーブ基板65には、I/Oの他に他の周辺装置との間で情報の伝達が可能なシリアルポート(RS232等)を備えたシリアル出力手段COMが配されている。このシリアル出力手段COMのシリアルポートを送信専用のポートとすることで、このシリアル出力手段COMに副制御回路56を接続することができる。
遊技機に対して行われるゴト行為の影響を減少させるために、副制御回路56から主制御回路55に対しては情報の伝達を行うことができないように構成しているので、従来は主制御回路55から副制御回路56に送信されるコマンド及びステータスに対しては、フレームエラーやタイムアウトエラー、符号検査等のチェックとその対処を行うことができなかった。しかし、副制御回路56の近傍にスレーブ基板65を配置して、スレーブ通信装置68に形成されている送信専用のシリアルポートから主制御回路55から送信されてきたコマンド及びステータスを受信することで、スレーブ基板65においてフレームエラーや符号検査等のチェックを実施することができる。また、情報伝達経路をリング状に形成することで、マスタ通信装置67側でタイムアウトエラーの検出と、コマンド及びステータスの再送とを行うことが可能となる。したがって、信頼性の高い通信を行うことができる。
このように、本発明を主制御回路55と副制御回路56との間の通信に適用することで、より信頼性の高い通信を行うことが可能となる。したがって、主制御回路55をキャビネット2側に配置し、副制御回路56をフロントドア9に配置するといったように、主制御回路55と副制御回路56との間の距離を長くすることも可能となる。
主制御回路55は、遊技者が遊技中にパチスロやパチンコの遊技機に対して電波を照射したり放電させたりする不正なゴト行為に対処するために、フロントドア9から離れた位置に配置することが好ましい。他方、副制御回路56は、フロントドア9に配されている多数のランプ24や液晶表示装置5、スピーカ21等を制御するので、フロントドア9に配置することが配線の都合上からも好ましい。
従来は、主制御回路55と副制御回路56との間を、一方向の情報伝達のみを許容する通信手段を用いて通信接続していたので、フレームエラー、タイムアウトエラー、符号検査時のエラー等に対処することができず、当該通信の情報伝達経路で拾ったノイズにより誤動作する可能性が高かった。また、従来は、通信の情報伝達経路を電線で構成していたので、不正なゴト行為により照射された電波や放電を情報伝達経路の電線が受信して、主制御回路55又は副制御回路56の動作に影響を与えるという不具合を生じていた。しかし、本発明によれば、主制御回路55と副制御回路56との間の情報伝達経路に光通信を用いることで、不正なゴト行為により照射された電波や放電に対する影響を大幅に減少させることができるとともに、主制御回路55からスレーブ基板65に送信されるコマンド及びステータスに対してはフレームエラーやタイムアウトエラー、符号検査等のチェックを行うことができるので、より信頼性の高い通信を行うことが可能となる。
スレーブ基板65と同様に、治具基板66のI/Oには、パチスロ1のフロントドア9に配されているメダルセンサ50、ベットスイッチ13S、ストップスイッチ46、スタートスイッチ6S、その他の各入力手段に対応した治具スイッチ71が接続されている。これにより、各入力手段の情報を読み取って対応したステータスの応答情報を生成し、スレーブ基板65から発信されてきた応答情報を書き換えてマスタ通信装置67に返信することができる。ゆえに、直接メダルセンサ50、ベットスイッチ13S、ストップスイッチ46、スタートスイッチ6S、その他の入力手段を作動させることなく、簡単なスイッチ等で各入力手段の動作をエミュレートすることができる。
また、同様に、治具基板66のI/Oには、パチスロ1のフロントドア9に配されている貯留枚数表示器、役物回数表示器、払出枚数表示器、当たり表示器等の出力手段の表示部駆動回路41等に対応した治具ランプ70が接続されている。これにより、主制御回路55のマスタ通信装置67から受信したコマンド及びステータスに基づいて、対応したI/Oの状態を設定して、治具ランプ70の点消灯を行うことができる。
また、治具基板66がマスタ通信装置67から治具基板66専用のコマンド及びステータスを受信すると、当該コマンドを受信した旨の情報を、当該治具基板66固有のアドレス情報と関連づけて返信することで、マスタ通信装置67において治具基板66が当該コマンドを受信した旨を確認することができる。
また、治具基板66には、I/Oの他に、双方向通信可能なシリアルポート(RS232等)を備えたシリアル出力手段COMが配されている。このシリアル出力手段COMに、実射試験用又は出荷検査用のコンピュータを接続することで、より高度な遊技機の操作や出荷検査を行うことが可能となっている。
マスタ基板64から出力される光信号には、リセットコマンド、接続確認コマンド、設定コマンド、アップデートコマンド、シリアル出力手段の制御コマンド、その他の各種コマンドが定義されている。
リセットコマンドは、光通信の経路に接続されているスレーブ基板65又は治具基板66側における光通信に関するプログラムを初期状態に戻したり、スレーブ基板65又は治具基板66に設けられているシリアル出力手段COMやI/O、通信に関するプログラムを初期状態に戻すコマンドである。
接続確認コマンドは、光通信の経路に接続されているスレーブ基板65又は治具基板66の総数及びアドレスをチェックするコマンドである。
設定コマンドは、光通信の経路に接続されているスレーブ基板65又は治具基板66のシリアル出力手段COMにおけるボーレート等のプロトコルの設定、I/Oの入出力状態等を設定するコマンドである。
アップデートコマンドは、それぞれのスレーブ基板65又は治具基板66のI/Oに出力するライトステータスコマンド、及び、それぞれのスレーブ基板65又は治具基板66のI/Oに入力されている状態を取得するリードステータスコマンドを含むコマンドである。
シリアル出力手段の制御コマンドは、スレーブ基板65又は治具基板66に配されているシリアル出力手段COMのシリアルポートからステータスを出力させるコマンドである。例えば、スレーブ基板65に配されているシリアル出力手段COMのシリアルポートと副制御回路56とを通信接続しておき、シリアル出力手段COMから副制御回路56に対して、ステータスとして主制御回路55から送信されてきた副制御回路56用のコマンドを送信する。副制御回路56用のコマンドには、スタートコマンド、リール停止コマンド、表示役コマンド、払出終了コマンド、メダル投入コマンド、ボーナス終了時コマンド、ボーナス開始コマンドその他のコマンドが含まれる。これらの各種コマンドを受信した副制御回路56は、各コマンドに応じて映像、音、光を用いた演出を実行する。
次に、図5を用いてマスタ通信装置67及びスレーブ通信装置68の構成について説明する。図5は、マスタ通信装置67及びスレーブ通信装置68のブロック図である。なお、図5では説明を容易にするために、1枚のマスタ基板64に対して1枚のスレーブ基板65のみを接続している状態について説明している。
図5に示すように、マスタ基板64に配されているマスタ通信装置67には、上位のメインCPU31からコマンド及びステータスを含む発信情報を取得するとともに、スレーブ通信装置68又は治具基板66から受信したコマンド及びステータスを含む応答情報を出力するバスI/Fが配されている。
また、バスI/Fには、コマンド及びステータスを含む発信情報を取得して、当該コマンド又はステータスの符号検査情報を付加するCRCチェッカ79(第1の符号検査情報付加手段)と、コマンド若しくはステータス並びに符号検査情報を含む発信情報を電気発信信号に変換して出力する発信信号変換手段72と、応答信号復元手段76とが接続されている。またマスタ通信装置67には、発信信号変換手段72が出力した電気発信信号を光発信信号に変換して出力する光信号出力手段PD1(第1の光信号出力手段)が配されている。
他方、スレーブ基板65には、マスタ通信装置67側から出力された光発信信号を入力して電気発信信号に変換して出力する光信号入力手段PD3(第2の光信号入力手段)と、電気発信信号を発信情報に変換して出力する発信信号復元手段74と、発信情報に含まれる符号検査情報を用いてコマンド又はステータスの符号検査を行うCRCチェッカ79(第2の符号検査手段)と、発信情報に含まれるコマンド及びステータスに対応した処理(I/Oの設定、シリアルポートの設定等。)を行うとともに、コマンド及び処理後のステータス(当該スレーブ基板65のアドレス、フレームエラー有無、CRCエラーの有無、I/Oの状態、シリアルポートの状態等。)を含む応答情報を生成する応答情報生成手段75とを備えている。
また、CRCチェッカ79(第2の符号検査情報付加手段)は、応答情報に含まれるコマンド又はステータスの符号検査情報を生成して、電気応答信号に付加して応答信号変換手段73に出力することが可能となっている。また、スレーブ基板65には、コマンド若しくはステータス並びに符号検査情報を含む応答情報を電気応答信号に変換して出力する応答信号変換手段73と、前記電気応答信号を光応答信号に変換して出力する光信号出力手段PD1(第2の光信号出力手段)とを備えている。
CRCチェッカ79は、例えば発信情報に含まれるコマンド又はステータスを用いて符号検査情報を生成して、発信情報に含まれる符号検査情報との比較を行う。双方の符号検査情報が一致している場合には、コマンド又はステータスを正常に取得したと判断する。他方、双方の符号検査情報が不一致である場合には、コマンド又はステータス及び符号検査情報に基づいてコマンド又はステータスの復元を試みる。
コマンド又はステータスの復元が成功した場合には、復元後のコマンド又はステータスを電気発信信号として応答情報生成手段75に出力し、当該復元後の発信情報に基づいて、コマンド及びステータスに対応した処理を実行し、応答情報を生成する。
他方、コマンド又はステータスの復元をすることができなかった場合には、CRCエラーである旨の情報を応答情報生成手段75に出力する。すると応答情報生成手段75は、コマンド及びステータスに対応した処理を実行せずに、CRCエラーが発生したことを表すステータスを含む電気応答信号を生成して、コマンドとともに応答信号変換手段73に出力する。当該電気応答信号は、光応答信号に変換されて、マスタ通信装置67に出力される。
なお、上記の符号検査として、CRC(Cyclic Redundancy Check)による巡回冗長検査を用いることができるが、SHA、MD5その他の符号検査を用いることも可能である。
スレーブ通信装置68から出力された光応答信号は、マスタ通信装置67の光信号入力手段PD3(第1の光信号入力手段)が入力して、電気応答信号に変換して出力する。光信号入力手段PD3が出力した電気応答信号は、応答信号復元手段76が取得する。
応答信号復元手段76は、取得した電気応答信号をコマンド若しくはステータス、並びに符号検査情報の応答情報に変換してバスI/F等に出力する。タイムアウトチェッカ78は、発信信号変換手段72が電気発信信号を出力してから応答信号復元手段76が電気応答信号を取得するまでの所要時間を計測し、当該所要時間が閾時間を超えた場合にはタイムアウトエラーを生成する。この場合には、発信信号変換手段72に対して、コマンド若しくはステータス並びに符号検査情報を含む電気発信信号の再出力を指示する。このようにして、所定の時間内に電気発信信号に対応した電気応答信号が戻ってこない場合には、マスタ通信装置67が自動でコマンド若しくはステータス並びに符号検査情報を含む電気発信信号を再出力するので、バスI/Fを介して上位に接続されているメインCPU31の監視に頼ることなく、より信頼性の高い通信を実現することが可能となる。
また、マスタ通信装置67のCRCチェッカ79(第1の符号検査情報付加手段)は、例えば応答情報に含まれるコマンド又はステータスを用いて符号検査情報を生成して、応答情報に含まれる符号検査情報との比較を行う。双方の符号検査情報が一致している場合には、コマンド又はステータスを正常に取得したと判断する。他方、双方の符号検査情報が不一致である場合には、コマンド又はステータス及び符号検査情報に基づいてコマンド又はステータスの復元を試みる。
コマンド又はステータスの復元が成功した場合には、復元後のコマンド又はステータスを電気応答信号として応答信号復元手段76に出力し、当該復元後の電気応答信号に基づいて、コマンド及びステータスに対応した応答情報を生成して、バスI/Fを介して上位のメインCPU31に出力する。
他方、コマンド又はステータスの復元をすることができなかった場合には、CRCエラーである旨の情報を応答信号復元手段76に出力する。すると応答信号復元手段76は、コマンド及びステータスを上位のメインCPU31に伝達する処理を実行せずに、CRCエラーが発生したことを表すステータスを生成する。そして、発信信号変換手段72に対して、コマンド若しくはステータス並びに符号検査情報を含む電気発信信号の再出力を指示する。
なお、マスタ通信装置67のCRCチェッカ79は、電気応答信号にCRCエラーが発生した場合に電気発信信号の再出力を指示するのみならず、応答信号復元手段76が取得したスレーブ通信装置68又は治具基板66のステータスに、スレーブ通信装置68又は治具基板66側にてCRCエラーが発生したことを表す情報が含まれていると判断した場合にも、発信信号変換手段72に対して電気発信信号の再出力を指示するようにしてもよい。
このように、マスタ通信装置67、スレーブ通信装置68又は治具基板66においてCRCエラーを検出した場合には、マスタ通信装置67が自動でコマンド若しくはステータス並びに符号検査情報を含む電気発信信号を再出力するので、バスI/Fを介して上位に接続されているメインCPU31の監視に頼ることなく、より信頼性の高い通信を実現することが可能となる。なお、タイムアウトエラー及びCRCエラーが発生した旨の情報や、電気発信信号を再出力している旨の情報を、バスI/Fを介して上位のメインCPU31に出力するようにしてもよい。なお、マスタ通信装置67、スレーブ通信装置68及び治具通信装置69として、CPUやROM、RAM、通信ポート、I/Oを備えたASIC等を用いることができる。
次に、図5に示した電気発信信号、光発信信号、光応答信号、及び電気応答信号を送信するにあたり、調歩同期式の通信を用いる際のデータ形式について説明する。
図6は、図5に示した電気発信信号、光発発信信号、電気応答信号及び光応答信号の一部を構成する1バイトのデータ形式を示す図である。なお、図6における横軸は、時間tである。
例えば、マスタ基板64に電源が投入されて初期設定等が終了して通信可能な状態になると、発信信号変換手段72は、電気発信信号をHiにしてアイドル状態に設定しておく。例えば、このとき光信号出力手段PD1の発光素子は、消灯させた状態となっている。
発信情報の送信を開始する場合には、発信信号変換手段72は、データを送信する前にスタートビットとしてLoの値を所定の時間の間出力する。すると、光信号出力手段PD1は、発光素子を所定の時間の間点灯させる。
スレーブ通信装置68の光信号入力手段PD3がスタートビットとしての光発信信号を入力すると、電気発信信号をHiからLoに落とす。発信信号復元手段74は、電気発信信号がHiからLoに落ちたことを認識すると、次に送られてくるであろうD7〜D0のデータをバッファに格納する準備を行う。
続いて発信信号変換手段72は、予め定められている所定のボーレートに対応した時間間隔をおいて、順次D7〜D0の8ビットのデータと、パリティチェック用のパリティビット生成して出力する。パリティビットの出力が終了すると、1、1.5又は2ビットからなるストップビットを出力して、電気発信信号をHiの状態に固定する。
マスタ通信装置67の光信号入力手段PD1は、発信信号変換手段72が出力したデータをそのまま光発信信号に変換して出力する。他方、スレーブ通信装置68の光信号入力手段PD3は、光信号出力手段PD1が出力した光発信信号を入力して、入力した光発信信号を電気発信信号に変換して、CRCチェッカ79、応答情報生成手段75等に出力する。
スレーブ通信装置68の発信信号復元手段74は、光信号入力手段PD3から取得したD7〜D0及びパリティビットの電気発信信号を、予め定められている所定のボーレートに対応した時間間隔でサンプリングし、順次バッファに記憶させてゆく。発信信号復元手段74がストップビットを取得すると、D7〜D0のデータからパリティチェック用の値を計算して、マスタ通信装置67から送信されてきたパリティビットの値と比較を行う。双方のパリティビットの値が一致している場合には、1バイトのデータを正常に取得したと判断する。
なお、発信信号復元手段74が所定の期間内にストップビットを取得できなかった場合には、フレーミングエラーが発生したと判断する。また、パリティビットの値が不一致である場合には、パリティエラーが発生したと判断する。フレーミングエラー、又はパリティエラーが発生した場合には、スレーブ通信装置68の応答情報生成手段75が、当該スレーブ基板に割り当てられている通信エラーのビットに、通信エラーのステータスを書き加えた応答情報を生成する。
なお、マスタ通信装置67の発信信号変換手段72と同様に、スレーブ通信装置68の応答信号変換手段73が応答情報の送信を開始する場合には、スタートビット、1バイトのデータビット、パリティビット、及びストップビットを出力する。その電気応答信号はスレーブ通信装置68の光信号出力手段PD1が入力して光応答信号に変換し、マスタ通信装置67の光信号入力手段PD3に出力する。マスタ通信装置67の光信号入力手段PD3は、入力した光応答信号を電気応答信号に変換して応答信号復元手段76に出力する。
マスタ通信装置67の応答信号復元手段76がスタートビットを取得すると、順次送られてくるD7〜D0のデータ及びパリティビットをバッファに格納し、ストップビットを取得すると、D7〜D0のデータを用いてパリティチェックを行う。マスタ通信装置67の応答信号復元手段76がストップビットを取得できなかった場合には、フレーミングエラーが発生したと判断する。また、パリティビットの値が不一致である場合には、パリティエラーが発生したと判断する。このフレーミングエラー又はパリティエラーが発生した場合には、マスタ通信装置67の発信信号変換手段72が、前回発信した電気発信信号を再度出力して、光発信信号を再送する。
次に、電気発信信号、光発信信号、光応答信号、及び電気応答信号を送信するにあたり、同期式の通信を用いる場合におけるマスタ通信装置67S及びスレーブ通信装置68Sの構成例について、図7を用いて説明する。
図7は、マスタ通信装置67S及びスレーブ通信装置68Sのブロック図である。なお、図7では説明を容易にするために、1枚のマスタ基板64Sに対して1枚のスレーブ基板65Sのみを接続している状態について説明しているが、複数のスレーブ通信装置68S及び治具基板66Sをデージーチェーン式に接続することも可能である。なお、図5に示したマスタ通信装置67及びスレーブ通信装置68の構成と同一の構成部分については同一の符号を付して、その説明は省略する。
図7に示すように、マスタ通信装置67S及びスレーブ通信装置68Sには、例えばI2Cデバイスに準拠した発信信号変換手段72及び応答信号変換手段73が配されている。この発信信号変換手段72及び応答信号変換手段73には、I2Cインターフェース用のデータラインSDAの端子と、同期信号を出力するクロックラインSCLの端子とが設けられている。データラインSDA及びクロックラインSCLの信号のタイミングについては、後段にて図8を用いて説明する。なお、本発明に係る光通信用の通信装置は、I2Cインターフェース用に限定するものではないが、実施の形態の一例としてI2Cインターフェースに適用した場合について説明する。
通常のI2Cインターフェースでは、スレーブが例えば1バイトのデータを受信する毎に、ワイヤードOR接続されているSDAの信号ラインをLoに落とすことで、マスタはアクノリッジ信号の応答を認識している。マスタがSDAラインをモニタしてアクノリッジ信号の応答を認識すると、所定量のデータの送信終了を確認したものと判断して、連続して次の1バイトのデータの送信を開始する。
ここで、マスタとスレーブとの間が、電線によりワイヤードOR接続されている場合には、マスタが1バイトのデータを送信した後にSDAラインを監視してアクノリッジ信号を認識することが可能である。しかし、このSDA及びSCLの信号線を単純に光通信に置き換えると、光通信では容易にワイヤードOR接続を実現することができないので、スレーブからマスタに対してアクノリッジ信号を応答することができなくなる。すると、マスタは次のデータを送信することができず、再度同一のデータを再送したり、所定時間が経過したことにより通信エラーのルーチンを実行することになる。
本発明では、マスタとスレーブとの間の通信を光通信に変換するとともに、既存の通信に関するハードウェア並びにソフトウェアをそのまま流用可能とするために、マスタ側の通信装置において擬似アクノリッジ応答手段77を設けている(擬似アクノリッジ応答手段77の詳細は、後段にて図9を用いて説明する。)。光通信を行うと信号線にノイズが乗って、スレーブが誤った情報を受信するという不具合は少ないので、スレーブ側からのアクノリッジ信号の応答を確認することなく、マスタ側の送信装置において擬似アクノリッジ信号を生成して通信を継続しても問題はほとんど発生しないことになる。本発明では、マスタ通信装置67Sとスレーブ通信装置68Sとの間の情報伝達経路をループ接続しているので、タイムアウトエラーやCRCエラーのチェックと、その対処とを行っているので、通信エラーに関する問題は発生しないことになる。
マスタ通信装置67Sの擬似アクノリッジ応答手段77から出力されるSDA及びSCLの電気発信信号は、マスタ通信装置67Sの光信号出力手段PD1(第1の光信号出力手段)及び光信号出力手段PD2(第1の光信号出力手段)が、SDA及びSCLの光発信信号に変換して出力する。
他方、スレーブ通信装置68Sには、マスタ通信装置67S側から出力されたSDA及びSCLの光発信信号を入力して、それぞれSDA及びSCLの電気発信信号に変換して出力する光信号入力手段PD3(第2の光信号入力手段)及び光信号入力手段PD4(第2の光信号入力手段)を備えている。更にスレーブ通信装置68Sは、SDA及びSCLの電気発信信号を発信情報に変換して出力する発信信号復元手段74を備えている。
また、同様に、スレーブ通信装置68Sは、応答信号変換手段73に対して擬似アクノリッジ信号を出力する擬似アクノリッジ応答手段77を備えている。なお、マスタ通信装置67Sに配されている擬似アクノリッジ応答手段77とスレーブ通信装置68Sに配されている擬似アクノリッジ応答手段77とは、同一の回路を用いることができる。
スレーブ通信装置68Sの擬似アクノリッジ応答手段77から出力されるSDA及びSCLの電気発信信号は、スレーブ通信装置68Sの光信号出力手段PD1(第1の光信号出力手段)及び光信号出力手段PD2(第1の光信号出力手段)が、SDA及びSCLの光発信信号に変換して出力する。
マスタ通信装置67Sは、スレーブ通信装置68S側から出力されたSDA及びSCLの光応答信号を入力して、それぞれSDA及びSCLの電気応答信号に変換して出力する光信号入力手段PD3(第2の光信号入力手段)及び光信号入力手段PD4(第2の光信号入力手段)を備えている。更にマスタ通信装置67Sは、SDA及びSCLの電気応答信号を応答情報に変換して出力する応答信号復元手段76を備えている。なお、タイムアウトエラー及びCRCエラーに対しては、図5にて説明した検出及び対処と同様の処理を実行することができる。
次に、図8に示すタイミングチャートを用いて、I2Cインターフェースに用いられる信号線のうち、SDA(I2Cインターフェースにおけるデータラインを表す。)とSCL(I2Cインターフェースにおけるクロックラインを表す。)のタイミングについて説明する。なお、図8では、後段にて説明する図9に表記した各チェックポイント(CP1〜CP10)における論理の変化を、SDA及びSCLと併せて表記してある。
本発明に係る光通信用の通信装置は、I2Cインターフェース用に限定するものではないが、実施の形態の一例としてI2Cインターフェースに適用した場合について説明する。
I2Cインターフェースは、オンボード内等の近距離間において、半二重でマルチノード指定のシリアル通信を行うことが可能な通信規格である。I2Cインターフェースの用途としては、マイクロコントローラ、PLLシンセサイザー、シリアルROM、カラーデコーダ、サウンドデコーダ、オーディオプロセッサ、ビデオプロセッサ、画像処理装置、及びオンスクリーンディスプレイ等の各周辺機器間における各種の情報の送受信用に用いることができる。
電線を用いたI2Cインターフェースは、SDA及びSCLの2本のバスラインのみで構成され、マスタがデータ又はアドレスを送信する時には、それぞれSDA及びSCLにデータ及びクロック信号を出力する。I2Cインターフェースバスに接続されている各デバイスは、それぞれ固有のアドレスを持ち、その固有のアドレスに基づいてソフトウェアによる各デバイスの制御が可能である。また、デバイス間にはマスタとスレーブという簡単な関係が常に成立しており、マスタ・トランスミッタ及びマスタ・レシーバとして機能することが可能となっている。
I2Cインターフェースにおける通信速度は、8ビットのシリアルデータを、標準で100Kbit/s、ファースト・モードで400Kbit/s、ハイスピードモードでは3.4MKbit/sの速度で伝送する規格が定められており、バスの静電容量が400pF以下であれば、一つのバス上に複数のデバイスを接続することができる。
I2Cインターフェースでは、バス構成を用いているために、システム内における複数種類のデバイスの追加や削除が容易である。また、I2Cデバイスやプログラムモジュールが数多く提供されているために、通信に関するハードウェア並びにソフトウェア開発に必要な開発時間を大幅に短縮することが可能である。更に、I2Cインターフェースでは故障診断ツールやデバッグツールが数多く提供されており、これらの汎用のツールを用いることで故障診断やデバッグを容易に行うことができるので、不良個所の究明が大変容易であるなど、数多くの利点を備えている。この特徴により、一つの基本構成で複数種類の遊技機のバリエーションを容易に提供することが可能となる。
電線を用いたI2Cインターフェースでは、SDA及びSCLの信号線はオープンコレクタ出力で、それぞれプルアップされている。これにより、マスタとスレーブとの間ではワイヤードOR接続が実現されている。したがって、マスタ及びスレーブの各I2Cデバイスにおいて、SDA及びSCLの信号線の論理をそれぞれモニタしておくことによって、マスタ及びスレーブの双方から互いに信号の送受信を行うとともに、ウエイトの設定などを行うことが可能となっている。
I2Cインターフェースでは、SCLの立ち上がりでSDAのデータをサンプルし、SCLがLoにある状態でのみSDAのデータを変化させることが許されている。図8に示す例では、データは8ビット固定としている。また、無信号状態のバスフリーフェーズでは、何れのデバイスもSCL(図8及び図9では、CP1と記載したライン。)及びSDA(図8及び図9では、CP2と記載したライン。)の信号線を使用していない状態(プルアップされた状態)となっている。この状態からは、何れのデバイスもI2Cインターフェースバスに対して自由にアクセス可能となっている。
例えば、マスタが8ビット(所定数量)のデータを送信開始する場合には、SCLをHiにした状態でSDAをLoに落とす。この状態がバススタートフェーズ(Start Condition)の開始状態となる。続いてSDAをLoに落とすことで、スタートコンディションを終了し、所定数量のデータを送信する準備を行う。
データを送信する場合には、先ずMSBのD7のデータ又はアドレスをセットした後に、SCLをHiに立ち上げる。このタイミングでスレーブはD7のデータをサンプリングして取得することになる。続いてマスタはSCLをLoに落とし、順次D6、D5…D0のデータ又はアドレスを出力してゆく。
I2Cインターフェースでは、スレーブが8ビットのデータを受信し終えてSCLをLoに落とすと、マスタはSDAラインをHi(ハイインピーダンス状態)にしてアクノリッジビット(ACK応答フェーズとも呼ばれる。)に入り、マスタはアクノリッジ信号の応答を待つことになる。I2Cインターフェースでは、このアクノリッジビットにおいてSCLがHiに立ち上がる時点で、SDAラインがLoとなっているように予めスレーブ側で落としておくことで、アクノリッジ信号(ACK)をマスタに応答する仕様となっている。マスタはSDAラインをモニタしており、SCLラインがHiに立ち上がったタイミングでSDAがLoに落とされている場合に、アクノリッジ信号の応答を受信することになる。
マスタがSDAラインをモニタしてアクノリッジ信号の応答を受信すると、所定量のデータの送信終了を確認したものと判断して、アクノリッジビットにおけるSCLの立ち下がり(アクノリッジビットの終了時と呼ぶ。)に続いて、連続して次の8ビットのデータの送信を開始する。
マスタが一連のデータ送信を終了する場合には、アクノリッジビットの終了後にSDAをLoに落とした後、一時的にSCL及びSDAが共にLoとなる状態を作り出す。その後、SCLを先にHiにしてストップコンディションが開始され、その後SDAをHiにすることで、ストップコンディションを終了する。このストップコンディションの開始からストップコンディションの終了までをバス終了フェーズ(Stop Condition)と呼ぶことにする。
ここで、マスタとスレーブとの間が、電線によりワイヤードOR接続されている場合には、アクノリッジビットにおいてマスタがHiに設定したSDAラインを、スレーブが強制的にLoに落とすことで、アクノリッジ信号の応答を送信している。しかし、このSDA及びSCLの信号線を単純に光通信に置き換えると、光通信では容易にワイヤードOR接続を実現することができないので、スレーブからマスタに対してアクノリッジ信号を応答することができなくなる。すると、マスタは次のデータを送信することができず、再度同一のデータを再送したり、所定時間が経過したことにより通信エラーのルーチンを実行することになる。
本発明では、マスタとスレーブとの間の通信を光通信に変換するとともに、既存の通信に関するハードウェア並びにソフトウェアをそのまま流用可能とするために、マスタ通信装置67S及びスレーブ通信装置68Sにおいて擬似アクノリッジ応答手段77を設けている(後段にて説明する図9参照。)。光通信を行う場合には、信号線にノイズが乗ってスレーブが誤った情報を受信するという不具合はほとんど発生しない。したがって、スレーブ側からのアクノリッジ信号の応答を確認することなく、マスタ通信装置67Sにおいて擬似アクノリッジ信号を生成して通信を継続しても、ほとんど問題は発生しないことになる。
次に、本発明に係るマスタ通信装置67S及びスレーブ通信装置68Sの擬似アクノリッジ応答手段77の回路図を図9に示すとともに、スレーブ側の受信装置の回路図を図10に示し、以下にその説明を記載する。
図9に示す回路図は、I2Cインターフェースに準拠したデバイスである発信信号変換手段72及び応答信号変換手段73、I2Cインターフェースを光通信インターフェースに変換する光信号出力手段PD1及び光信号出力手段PD2、所定数量のデータを計数するカウンタCT、及び擬似アクノリッジ信号生成手段3SBとを備えた送信側の回路例である。
図10に示す回路図は、例えばマスタ通信装置67S、スレーブ通信装置68S、又は治具基板66に実装されている受信側の回路図であり、光通信インターフェースをI2Cインターフェースに変換する受信装置の回路例である。
図9に示す発信信号変換手段72及び応答信号変換手段73は、例えばI2Cデバイスであり、他の周辺装置と通信を行うにもかかわらず、通常のロジック用の電源により動作する。また、発信信号変換手段72及び応答信号変換手段73には、I2Cインターフェース用のデータラインSDAの端子と、クロックラインSCLの端子とが設けられている。
図9に示す実施例では、通信装置側で擬似アクノリッジ信号を生成するために、I2Cインターフェースで用いられるオープンコレクタ出力のSDA及びSCLの信号線から、ロジックレベル(例えばトーテムポール出力。)のSSDA及びSSCL等の信号線を生成している。すなわち、発信信号変換手段72及び応答信号変換手段73のSDA及びSCLの信号線に対して一旦ドライバDR1を介した後に、波形成形用のシュミットトリガタイプのゲートG1に入力している。SDA及びSCLの信号がゲートG1を通過することにより、/SSDA及び/SSCLのロジックレベルの信号が生成される。なお、/SSDAはSSDAの逆論理であることを表している。
更に、/SSDA及び/SSCLの信号がゲートG2を通過することにより、SSDA及びSSCLのロジックレベルの信号が生成される。
ドライバDR1から出力されたSDA及びSCLの信号は、更にドライバDR2を介して、光通信用の光信号出力手段PD1及びPD2(例えば、LED等の発光素子で構成される。)のカソードに伝達される。そして、負論理で点灯する変換後のSDA(光データ信号)及びSCL(光クロック信号)を、光ケーブルを介して出力する。なお、ドライバDR2のアノードは、電流制限抵抗R1を介して+Vcの電源に接続されている。電流制限抵抗R1の近傍においてGND(0V電位)と接続されているコンデンサC1は、間欠電流が流れる電流制限抵抗R1に対する平滑用及びノイズ低減用のコンデンサである。
他方、図10に示すスレーブ側の受信装置は、光ケーブルにより伝送されてきたSDA(光データ信号)及びSCL(光クロック信号)を光信号入力手段PD3及びPD4で入力し、オープンコレクタ出力に変換して汎用のI2Cデバイスである発信信号復元手段74及び応答信号復元手段76のSDA及びSCLに入力する。
次に、発信信号変換手段72及び応答信号変換手段73が発するSCLのクロックの立ち下がり(/SSCL)を用いて、8ビットのデータが送信されたことを計数するカウンタCTの動作について説明する。カウンタCTは4ビットのリップルキャリィ同期カウンタであり、例えば74161等のロジック素子を用いることができる。
図8及び図9に示す実施例では、スタートコンディションの開始時、ストップコンディションの終了時、及び当該カウンタCTが出力する桁上げ信号(Carry Output)発生時に、Hiに接続してあるカウンタCTのプリセット値入力A〜Cを有効にして、「7」の値をプリセットする準備を行っている。すなわち、送信するデータを所定数量計数する際の計数値を取得する準備を行っている。実際にカウンタCTに「7」の値をプリセットすることにより、8ビットの計数値を設定して計数可能な状態にするのは、次回/SSCLが立ち上がった時点(すなわち、スタートコンディションの終了時、又はアクノリッジビットにおけるSCLの立ち下がり時。)である。図9に示す実施例では、送信するデータの所定数量を計数する回路として汎用のカウンタCTを用いているために、計数値をプリセットする準備と設定とを別々のタイミングで行っているが、専用の回路を組むことで、計数値をプリセットする準備と設定とを同時に行うことも可能である。
以降、/SSCLが立ち上がりで順次/SSCLを8回計数してゆき、カウンタCTの内部で記憶している値が「15」となっているときに出力され続ける桁上げ信号(所謂Carry Output。図8及び図9では、CP9と記載したライン。)を用いて、発信信号変換手段72及び応答信号変換手段73のSDA(図8及び図9では、CP10と記載したライン。)を強制的にLoに落として擬似アクノリッジ信号を生成して、発信信号変換手段72及び応答信号変換手段73に対してACKを認識させている。なお、図9に示す実施例では、カウンタCTの桁上げ信号を、8ビットデータの計数完了信号として用いている。
カウンタCTの桁上げ信号出力端子(Carry Output端子)の後段に接続されている擬似アクノリッジ信号生成手段3SBは、3ステートバッファである。カウンタCTのプリセット後、カウンタCTが8回目の/SSCL信号(8ビット目のSCLの立ち下がり信号。)を入力すると、その直後に桁上げ信号としてHiの値がCP9に出力される。
カウンタCTの桁上げ信号がHiの間、擬似アクノリッジ信号生成手段3SBの出力Y(CP10)には、入力Aの値(Lo)が出力される。したがって、8ビット目のSCLの信号が立ち下がると、直ちに発信信号変換手段72及び応答信号変換手段73のSDA端子がLoに落ちて、擬似的にアクノリッジ信号が生成されることになる。
このカウンタCTが出力する桁上げ信号(Carry Output=CP9)は、アクノリッジビット終了時におけるSCL信号の立ち下がり後に同時にLoに落ちる(図8参照)。すると、擬似アクノリッジ信号生成手段3SBの出力Y(CP10)は、ハイインピーダンス状態となるので、アクノリッジビットの終了とともに、擬似アクノリッジ信号の応答出力を終了する。
なお、カウンタCTの桁上げ信号がHiになると、ゲートG5(インバータ)の出力(図8及び図9では、CP8と記載したライン。)がLoになり、ゲートG3(3入力AND)の出力(図8及び図9では、CP7と記載したライン。)がLoとなる。したがって、カウンタCTの/LOAD端子がLoに落ちるので、カウンタCTに「7」の値をプリセットする準備が整う。
アクノリッジビットの終了時において/SSCLが立ち上がると、カウンタCTの内部で記憶している値が「7」に再度プリセットされ、桁上げ信号(Carry Output=CP9)もLoとなる。カウンタCTの桁上げ信号がLoの間は、擬似アクノリッジ信号生成手段3SBの出力Y(CP10)はハイインピーダンス状態となるので、SDAの信号線には何ら影響を与えない状態となっている。
次に、スタートコンディションにおけるカウンタCTのプリセットについて説明する。
スタートコンディションの開始時において、SCLがHiの状態でSDAを落とすと、図9に示すDF2(スタート開始検出手段、スタート検出手段)がその状態を検出する。DF2は、D−フリップフロップであり、7474等のロジック素子を用いることができる。
DF2が/SSDAの立ち上がりでスタートコンディションの開始を検出すると、出力Q(図8及び図9では、CP3と記載したライン。)がHiに設定され、出力/Q(図8及び図9では、CP4と記載したライン。)がLoに設定される。
DF2の出力/Q(CP4=Lo)は、ゲートG3に入力されるので、ゲートG3の出力(CP7)はLoとなり、カウンタCTには「7」の値をプリセットする準備がなされる。
I2Cインターフェースでは、バススタートフェーズにおいてはSCLをHiに設定しているが、データのサンプリングはSCLの立ち上がりで読むために、データの送信とは別に一旦SCLをLoに落とす必要ある。本発明では、バススタートフェーズ後の第1回目のSCLの立ち下がりを記憶するとともに、この第1回目のSCLの立ち下がりで初めてカウンタCTに対して「7」の値をプリセットするようにしている。
具体的には、スタートコンディションの開始を検出したDF2を、スタートコンディションの終了時となるSCLの立ち下がりでクリア(図8及び図9では、CP5と記載したライン。)する信号を出力するためのDF3(スタート終了検出手段、スタート検出手段)を配置している。これにより、DF2の出力/Q(CP4)を、カウンタCTのプリセット条件の一つとして用いることができる。そして、図8に示すように、DF2の出力Q(CP3)及び/Q(CP4)を、スタートコンディションの間のみで作動するように構成することができる。なお、DF2のクリア信号(CP5)は、最初のデータ(D7)送信後のSCLの立ち下がりでHiに戻る。なお、DF3はD−フリップフロップであり、7474等のロジック素子を用いることができる。
次に、データバイトの切れ目におけるカウンタCTのプリセットについて説明する。
一般に通信では、データを連続して送信することで転送レートの損失を防止している。したがって、連続して送信されるそれぞれのデータに対して擬似アクノリッジ信号を生成する場合には、データの切れ目を検出してカウンタCTをプリセットする必要がある。本発明では、アクノリッジビットの生成に使用するカウンタCTの桁上げ信号(Carry Output=CP9)を用いて、カウンタCTに対するプリセットの準備を行っている。
具体的には、桁上げ信号(Carry Output=CP9)をゲートG5を用いて反転(CP8)し、他のCP4、CP6の条件とともにカウンタCTに対してプリセットの準備を指示している。そして、アクノリッジビット終了時におけるSCL信号の立ち下がりで、カウンタCTに対して「7」の値をプリセットするようにしている。
次に、ストップコンディションにおけるカウンタCTのプリセットについて説明する。
図8に示すように、SCLをHiに維持した状態からSDAを立ち上げることで、ストップコンディションが生成される。図9に示す例では、DF1(ストップコンディション検出手段)がその状態を検出する。DF1は、D−フリップフロップであり、7474等のロジック素子を用いることができる。
DF1がSSDAの立ち上がりでストップコンディションの終了を検出すると、DF1の出力/Q(図8及び図9では、CP6と記載したライン。)がLoに設定される。
DF1の出力/Q(CP6=Lo)は、ゲートG3に入力されるので、ゲートG3の出力(CP7)もLoとなり、カウンタCTには「7」の値をプリセットする準備がなされる。
以上のように構成することにより、I2Cインターフェースを2本の光信号に変換して情報の伝達を行うことが可能となる。そして、基板間の通信における外来ノイズの影響を抑制することができ、電波を用いたゴト行為に対しても有利な効果を奏することとなる。