本発明をパチスロ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、遊技場のホストコンピュータ等と情報の送受信を行う外部集中端子板63、ドア中継基板62等の各中継基板と接続されている。
更に主制御回路55は、演出用としてランプ24や液晶表示装置5、又は音声発生装置等の制御を実行する副制御回路56に対して、メダルの投入、スタートレバー6の操作、ストップボタン7の操作、内部当籤役、表示役、遊技状態等の各種の情報を送信する。そのために主制御回路55の主基板は、副制御回路56の副基板と通信により接続されている。
主制御回路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が直接多数のランプ24の点消灯を制御することも可能であるが、直接多数のランプ24の点消灯を制御するためには、副制御回路56のサブCPUがI/Oを介してランプ24用のドライバを直接制御しなければならず、副制御回路56の副基板に多量の電線を接続しなければならなくなる。
すると、配線の増加に伴って電線の断線や接続不良等による故障の発生率が増加したり、パチスロ1のメンテナンスが困難になったり、パチスロ1の価格が上昇するなどの不具合を生ずる。また、パチスロ1において複数種類の機種バリエーションを設ける場合、当然フロントドア9の外観や演出に用いるランプ24の配置並びに点消灯状態も機種毎に変更することが好ましい。しかし、直接副制御回路56が個々のランプ24の点消灯を制御してしまうと、大幅に異なる演出用のプログラムを機種毎に準備しなければならず、膨大な開発期間が必要になったり、製品価格が上昇するなどの不具合を生ずることとなる。
そこで、副制御回路56では点消灯状態のコマンドのみを生成して出力し、個々のランプ24の消灯状態の制御をランプ基板58側にて実行することで、開発期間を短縮し、製品価格の上昇を抑えることができる。
更に、副制御回路56とランプ基板58との間における通信手段として新たな通信規格を採用してしまうと、通信素子の開発やプロトコルの確立に多大な開発期間とコストとが必要となるが、使い慣れた汎用の通信規格を用いることで、短期間且つ安価にて確実な通信を実現することができる。特に、1つの筐体内において複数の基板間で通信を行うには、I2Cなどの簡易な通信規格が好都合である。
ところが、パチスロ1やパチンコなどの遊技機では、これらの遊技機に対して電波を照射したり放電させたりすることにより、遊技機内において誤動作を誘発させたり、予め細工を加えた遊技機において不正なプログラムを起動させるなどの、不正なゴト行為が必ず発生する。
したがって、これら遊技機を開発するに際しては、主制御回路55のみならず副制御回路56においても、これらのゴト行為に対して予め十分な対策を実施しておき、遊技場において新たな遊技機が入れ替えられた当初から、ゴト行為に対して潔癖な遊技機である旨をアピールすることで、ゴト行為の意欲を削いでおくことが重要となる。特に、遊技者と直接対峙する位置に存在するフロントドア9は、ゴト行為の対象となり易いので、十分な対策が必要とされる。
また、同様に、遊技者の衣類等に静電気が帯電しており、遊技者が遊技機に触れた瞬間に静電気が遊技機に放電した場合や、遊技者が携行する携帯電話機が発する電磁波により、主制御回路55又は副制御回路56において誤動作が発生しないことが好ましい。
しかし、I2Cなどの簡易な通信規格では、電線を用いて情報の送受信を行っているために、基板間を接続している通信ケーブルに含まれる通信線や電源線、アース線などが電磁波を拾い、ノイズとなってランプ基板58、副制御回路56、更には主制御回路55にも伝達される可能性が生ずる。ランプ基板58と副制御回路56との間の通信線にノイズが乗ると、コマンドの再送などによる情報伝達の遅延が生じることでランプ24の点消灯タイミングが遅れたり、誤動作を誘発する可能性を生ずる。
また、通信ケーブルに含まれる電源線やアース線などが強力な電磁波を拾うと、副制御回路56や主制御回路55において誤動作が誘発される可能性もある。なお、通信ケーブル自体に強力なシールド対策を実施する方策も考えられるが、通信線にシールド線を用いると多大な容量負荷が並列接続されることとなるので、通信速度を下げて使用しなければならなくなったり、屈曲性に劣る配線の取り回しが困難になるなどの不具合を生ずる。
そこで本発明では、通信ケーブルとして電線を用いる代わりに光通信用のケーブルを用いることで、所定の通信速度を維持しつつ、照射された電磁波によるノイズの発生を防止して、ランプ基板58、副制御回路56並びに主制御回路55における誤動作を防止している。
なお、上述のようにランプ基板58と副制御回路56との間における情報の伝達に光通信を用いる他、副制御回路56と液晶表示装置5との間、副制御回路56とサウンド基板110との間、副制御回路56と下皿LED基板61との間、副制御回路56と主制御回路55との間、主制御回路55とドア中継基板62との間の通信にも、光通信を用いることができる。
次に図4に示すタイミングチャートを用いて、I2Cインターフェースに用いられる信号線のうち、SDA(I2Cインターフェースにおけるデータラインを表す。)とSCL(I2Cインターフェースにおけるクロックラインを表す。)のタイミングについて説明する。なお、図4では、後段にて説明する図5に表記した各チェックポイント(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のデータを変化させることが許されている。図4に示す例では、データは8ビット固定としている。また、無信号状態のバスフリーフェーズでは、何れのデバイスもSCL(図4及び図5では、CP1と記載したライン。)及びSDA(図4及び図5では、CP2と記載したライン。)の信号線を使用していない状態(プルアップされた状態)となっている。この状態からは、何れのデバイスもI2Cインターフェースバスに対して自由にアクセス可能となっている。
例えば、マスタが8ビット(所定数量)のデータを送信開始する場合には、SCLをHiにした状態でSDAをLoに落とす。この状態がバススタートフェーズ(StartCondition)の開始状態となる。続いて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にすることで、ストップコンディションを終了する。このストップコンディションの開始からストップコンディションの終了までをバス終了フェーズ(StopCondition)と呼ぶことにする。
ここで、マスタとスレーブとの間が、電線によりワイヤードOR接続されている場合には、アクノリッジビットにおいてマスタがHiに設定したSDAラインを、スレーブが強制的にLoに落とすことで、アクノリッジ信号の応答を送信している。しかし、このSDA及びSCLの信号線を単純に光通信に置き換えると、光通信では容易にワイヤードOR接続を実現することができないので、スレーブからマスタに対してアクノリッジ信号を応答することができなくなる。すると、マスタは次のデータを送信することができず、再度同一のデータを再送したり、所定時間が経過したことにより通信エラーのルーチンを実行することになる。
本発明では、マスタとスレーブとの間の通信を光通信に変換するとともに、既存の通信に関するハードウェア並びにソフトウェアをそのまま流用可能とするために、マスタ側の通信装置において擬似アクノリッジ信号生成手段を設けている(後段にて説明する図5参照。)。光通信を行うと信号線にノイズが乗って、スレーブが誤った情報を受信するという不具合は発生しないので、スレーブ側からのアクノリッジ信号の応答を確認することなく、マスタ側の送信装置において擬似アクノリッジ信号を生成して通信を継続しても問題は発生しないことになる。
次に、本発明に係るマスタ側の送信装置の回路図を図5に示すとともに、スレーブ側の受信装置の回路図を図6に示し、以下にその説明を記載する。
図5に示すマスタ側の送信装置は、例えば副制御回路56の副基板に実装されている回路であり、I2Cインターフェースを光通信インターフェースに変換するとともに、所定数量のデータを計数するカウンタCTと擬似アクノリッジ信号生成手段3SBとを備えた送信装置の回路例である。
また、図6に示すスレーブ側の受信装置は、例えばランプ基板58に実装されている回路であり、光通信インターフェースをI2Cインターフェースに変換する受信装置の回路例である。
図5に示す通信手段COM1(送信手段)は、例えば汎用のI2Cデバイスであり、副制御回路56のサブCPUに対して接続されているデバイスである。通信手段COM1には、通常のロジック用の電源を用いることができ、I2Cインターフェース用のデータラインSDAの端子と、クロックラインSCLの端子とが設けられている。
図5に示す実施例では、送信装置側で擬似アクノリッジ信号を生成するために、I2Cインターフェースで用いられるオープンコレクタ出力のSDA及びSCLの信号線から、ロジックレベル(例えばトーテムポール出力。)のSSDA及びSSCL等の信号線を生成している。すなわち、通信手段COM1の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に対する平滑用及びノイズ低減用のコンデンサである。
他方、図6に示すスレーブ側の受信装置は、光ケーブルにより伝送されてきたSDA(光データ信号)及びSCL(光クロック信号)を受光素子PD3及びPD4で受光し、オープンコレクタ出力に変換して汎用のI2Cデバイスである通信手段COM2(受信手段)のSDA及びSCLに入力する。
次に、通信手段COM1が発するSCLのクロックの立ち下がり(/SSCL)を用いて、8ビットのデータが送信されたことを計数するカウンタCTの動作について説明する。カウンタCTは4ビットのリップルキャリィ同期カウンタであり、例えば74161等のロジック素子を用いることができる。
図4及び図5に示す実施例では、スタートコンディションの開始時、ストップコンディションの終了時、及び当該カウンタCTが出力する桁上げ信号(CarryOutput)発生時に、Hiに接続してあるカウンタCTのプリセット値入力A〜Cを有効にして、「7」の値をプリセットする準備を行っている。すなわち、送信するデータを所定数量計数する際の計数値を取得する準備を行っている。実際にカウンタCTに「7」の値をプリセットすることにより、8ビットの計数値を設定して計数可能な状態にするのは、次回/SSCLが立ち上がった時点(すなわち、スタートコンディションの終了時、又はアクノリッジビットにおけるSCLの立ち下がり時。)である。図5に示す実施例では、送信するデータの所定数量を計数する回路として汎用のカウンタCTを用いているために、計数値をプリセットする準備と設定とを別々のタイミングで行っているが、専用の回路を組むことで、計数値をプリセットする準備と設定とを同時に行うことも可能である。
以降、/SSCLが立ち上がりで順次/SSCLを8回計数してゆき、カウンタCTの内部で記憶している値が「15」となっているときに出力され続ける桁上げ信号(所謂CarryOutput。図4及び図5では、CP9と記載したライン。)を用いて、通信手段COM1のSDA(図4及び図5では、CP10と記載したライン。)を強制的にLoに落として擬似アクノリッジ信号を生成して、通信手段COM1に対してACKを認識させている。なお、図5に示す実施例では、カウンタCTの桁上げ信号を、8ビットデータの計数完了信号として用いている。
カウンタCTの桁上げ信号出力端子(CarryOutput端子)の後段に接続されている擬似アクノリッジ信号生成手段3SBは、3ステートバッファである。カウンタCTのプリセット後、カウンタCTが8回目の/SSCL信号(8ビット目のSCLの立ち下がり信号。)を入力すると、その直後に桁上げ信号としてHiの値がCP9に出力される。
カウンタCTの桁上げ信号がHiの間、擬似アクノリッジ信号生成手段3SBの出力Y(CP10)には、入力Aの値(Lo)が出力される。したがって、8ビット目のSCLの信号が立ち下がると、直ちに通信手段COM1のSDA端子がLoに落ちて、擬似的にアクノレッジ信号が生成されることになる。
このカウンタCTが出力する桁上げ信号(CarryOutput=CP9)は、アクノリッジビット終了時におけるSCL信号の立ち下がり後に同時にLoに落ちる(図4参照)。すると、擬似アクノリッジ信号生成手段3SBの出力Y(CP10)は、ハイインピーダンス状態となるので、アクノリッジビットの終了とともに、擬似アクノリッジ信号の応答出力を終了する。
なお、カウンタCTの桁上げ信号がHiになると、ゲートG5(インバータ)の出力(図4及び図5では、CP8と記載したライン。)がLoになり、ゲートG3(3入力AND)の出力(図4及び図5では、CP7と記載したライン。)がLoとなる。したがって、カウンタCTの/LOAD端子がLoに落ちるので、カウンタCTに「7」の値をプリセットする準備が整う。
アクノレッジビットの終了時において/SSCLが立ち上がると、カウンタCTの内部で記憶している値が「7」に再度プリセットされ、桁上げ信号(CarryOutput=CP9)もLoとなる。カウンタCTの桁上げ信号がLoの間は、擬似アクノリッジ信号生成手段3SBの出力Y(CP10)はハイインピーダンス状態となるので、SDAの信号線には何ら影響を与えない状態となっている。
次に、スタートコンディションにおけるカウンタCTのプリセットについて説明する。
スタートコンディションの開始時において、SCLがHiの状態でSDAを落とすと、図5に示すDF2(スタート開始検出手段、スタート検出手段)がその状態を検出する。DF2は、D−フリップフロップであり、7474等のロジック素子を用いることができる。
DF2が/SSDAの立ち上がりでスタートコンディションの開始を検出すると、出力Q(図4及び図5では、CP3と記載したライン。)がHiに設定され、出力/Q(図4及び図5では、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の立ち下がりでクリア(図4及び図5では、CP5と記載したライン。)する信号を出力するためのDF3(スタート終了検出手段、スタート検出手段)を配置している。これにより、DF2の出力/Q(CP4)を、カウンタCTのプリセット条件の一つとして用いることができる。そして、図4に示すように、DF2の出力Q(CP3)及び/Q(CP4)を、スタートコンディションの間のみで作動するように構成することができる。なお、DF2のクリア信号(CP5)は、最初のデータ(D7)送信後のSCLの立ち下がりでHiに戻る。なお、DF3はD−フリップフロップであり、7474等のロジック素子を用いることができる。
次に、データバイトの切れ目におけるカウンタCTのプリセットについて説明する。
一般に通信では、データを連続して送信することで転送レートの損失を防止している。したがって、連続して送信されるそれぞれのデータに対して擬似アクノリッジ信号を生成する場合には、データの切れ目を検出してカウンタCTをプリセットする必要がある。本発明では、アクノリッジビットの生成に使用するカウンタCTの桁上げ信号(CarryOutput=CP9)を用いて、カウンタCTに対するプリセットの準備を行っている。
具体的には、桁上げ信号(CarryOutput=CP9)をゲートG5を用いて反転(CP8)し、他のCP4、CP6の条件とともにカウンタCTに対してプリセットの準備を指示している。そして、アクノリッジビット終了時におけるSCL信号の立ち下がりで、カウンタCTに対して「7」の値をプリセットするようにしている。
次に、ストップコンディションにおけるカウンタCTのプリセットについて説明する。
図4に示すように、SCLをHiに維持した状態からSDAを立ち上げることで、ストップコンディションが生成される。図5に示す例では、DF1(ストップコンディション検出手段)がその状態を検出する。DF1は、D−フリップフロップであり、7474等のロジック素子を用いることができる。
DF1がSSDAの立ち上がりでストップコンディションの終了を検出すると、DF1の出力/Q(図4及び図5では、CP6と記載したライン。)がLoに設定される。
DF1の出力/Q(CP6=Lo)は、ゲートG3に入力されるので、ゲートG3の出力(CP7)もLoとなり、カウンタCTには「7」の値をプリセットする準備がなされる。
以上のように構成することにより、I2Cインターフェースを2本の光信号に変換して情報の伝達を行うことが可能となる。そして、基板間の通信における外来ノイズの影響を抑制することができ、電波を用いたゴト行為に対しても有利な効果を奏することとなる。