(58)【調査した分野】(Int.Cl.,DB名)
スレーブデバイスと、アドレスを指定することにより前記スレーブデバイスとデータを送受信するマスタデバイスとが、前記マスタデバイスから送信されるクロックを伝達するクロック信号線と、データを双方向に送信するシリアルデータ信号線とで接続される通信システムであって、
前記シリアルデータ信号線の一部を構成し、前記マスタデバイスから前記スレーブデバイスに対して所定のデータを送信する第1の信号線と、
前記シリアルデータ信号線の一部を構成し、前記スレーブデバイスから前記マスタデバイスに対して前記所定のデータを送信する第2の信号線と、
前記第1の信号線と前記第2の信号線とのいずれか一方が前記シリアルデータ信号線として有効となるように選択する信号線選択部と、
前記信号線選択部における前記選択動作を制御するための信号方向切替信号を出力する端子を備える信号制御部と、
を備え、
前記信号線選択部は、第1の信号線選択部及び第2の信号線選択部により構成され、
前記第1の信号線選択部は、前記第1の信号線上に設けられた第1オア回路及び第1スリーステートバッファ回路と、前記第2の信号線上に設けられた第1バッファとを有し、
前記第2の信号線選択部は、前記第2の信号線上に設けられた第2オア回路及び第2スリーステートバッファ回路と、前記第1の信号線上に設けられた第2バッファと、前記信号制御部の前記端子と前記第2オア回路との間に設けられたインバータ回路と、を有することを特徴とする通信システム。
前記信号制御部は、前記シリアルデータ信号線において前記マスタデバイスと前記スレーブデバイスとの間で送受信されるデータの種別に応じて、前記第1の信号線と前記第2の信号線とのいずれか一方が前記シリアルデータ信号線として有効となるように選択するよう前記信号線選択部における前記選択動作を制御する
ことを特徴とする請求項1に記載の通信システム。
前記信号制御部は、前記マスタデバイスから前記スレーブデバイスに前記所定のデータを送信する際には、前記第1の信号線が前記シリアルデータ信号線として有効となるように選択し、前記マスタデバイスが前記スレーブデバイスからの前記所定のデータを受信する受信ビット時の際のみ、前記第2の信号線が前記シリアルデータ信号線として有効となるように選択するよう前記信号線選択部における前記選択動作を制御することを特徴とする請求項1に記載の通信システム。
【背景技術】
【0002】
従来、複数の素子間を通信により接続するための汎用のシリアル接続方式として、いわゆるI2C(Inter-Integrated Circuit)と呼ばれるシリアル通信規格が知られている。
【0003】
このI2Cは、抵抗でプルアップされた双方向の2本のオープンコレクタ信号線(シリアルデータSDAおよびシリアルクロックSCL)により通信する同期式のシリアル通信規格であり、これらSDAおよびSCLを用いて指定したデバイスへの書き込み、および、読み出しを行うものである。これらSDAおよびSCLはいずれもバス信号であり、I2Cではこのバスにより複数の素子間を接続するようになっている。
【0004】
そしてI2Cでは、これらSDAとSCLのバス信号を利用してデータの読み取りおよび書き込みの要求を行うマスタと、マスタの要求に応じてデータを受け取りまたは送出するスレーブとを設け、さらにバスには複数のスレーブが接続可能となっている。また、マスタは個別に決められたスレーブのアドレスを指定してスレーブを選択した後に当該スレーブと通信を行うようになっている。
【0005】
一方、従来、医療用分野及び工業用分野において撮像素子を備えた内視鏡が広く用いられている。また、内視鏡に着脱自在に接続され、内視鏡に係る各種信号処理をプロセッサと称する信号処理装置により担い、内視鏡システムを構成する技術も知られるところにある。
【0006】
また、近年、撮像素子としてCMOSセンサを採用する内視鏡も提案されている。この種のCMOSセンサは、そのセンサチップ内に撮像部と共にA/D変換部を備え、センサとしての出力信号はデジタル信号となっている。
【0007】
そして、この種のCMOSセンサを採用する内視鏡を有する内視鏡システムにおいて、CMOSセンサと信号処理部であるプロセッサとの間における通信制御を、上述したI2Cにより行う技術が知られている(特許第5356632号公報)。
【0008】
ところで、上述したI2Cにより通信制御を行うCMOSセンサを内視鏡先端に採用した内視鏡システムの場合、CMOSセンサをスレーブの一つとし、マスタはプロセッサに実装される構成が考えられる。
【0009】
このような内視鏡システムの場合、内視鏡先端部に配設されたCMOSセンサとプロセッサとは、数mの長さのケーブルで接続されることとなるが、これは、スレーブの一つであるところのCMOSセンサと、マスタであるプロセッサとが数mものケーブルで接続されることを意味する。
【0010】
一方、この種の内視鏡システムは、いわゆる電気メス等のノイズ源の近傍で用いられることも多く、前記マスタ(プロセッサ)とスレーブ(CMOSセンサ)とを結ぶケーブルはこの種のノイズに曝されることとなる。
【0011】
ここで、上述した電気メス等の周辺機器は比較的強力なノイズ源となり得えることから、前記マスタ(プロセッサ)とスレーブ(CMOSセンサ)とを結ぶケーブルに当該ノイズが印可された場合、このケーブルがたとえ十分なノイズ耐性を備えていたとしても、I2Cバスに接続されたスレーブ(CMOSセンサ)側では、当該外来ノイズをシリアルクロックSCLの立上りエッジと誤認する虞がある。
【0012】
そして、I2Cシステムが前記外来ノイズをシリアルクロックSCLの立上りエッジと誤認した場合、スレーブ(CMOSセンサ)とマスタ(プロセッサ)との通信シーケンス上でbitズレが発生し、シリアルデータSDAの信号出力の方向がかみ合わず、いわゆる出力信号の衝突(以下、単に衝突)と呼ばれる現象を引き起こすこととなる。
【0013】
ところで、I2Cでは、マルチ・マスタ・バスで衝突検知とバス・アービトレーションでバス調停(バスの所有権の調停)することを前提とするので、I2Cバス上において衝突が生じた場合、それは複数のマスタが同時にアクセスしていると解釈し、また、これら他マスタ同士の衝突は保障されているので問題はない。
【0014】
しかしながら、I2Cシステムにおいて、マスタ−スレーブ間においてのbitズレによる衝突は想定外の挙動である。
【0015】
そして上述した内視鏡システムにおいて、スレーブであるCMOSセンサが外来ノイズをシリアルクロックSCLの立上りエッジと誤認したような場合、マスタであるプロセッサは、他マスタとの同時アクセスと誤解し、シリアルクロックSCLおよびシリアルデータSDAを停止し、すなわちバスをフリー状態にしてしまう虞がある。
【0016】
さらに、マスタによる上記シリアルクロックSCLおよびシリアルデータSDAの停止タイミングが、スレーブ側のLドライブ(例えば、Ackによる)と重なった場合、シリアルデータSDAは“L”に引張られたまま停止することになるので、バスはビジー状態と同等となる。
【0017】
その結果、マスタであるプロセッサは、CMOSセンサ以外のスレーブにアクセスすることが不可能になってしまうという不都合が生じる。すなわち、マスタからは、バスがビジー状態のように見え続けるので、マスタは待機したままで復帰しないこととなり、いわゆるシステムフリーズ状態となる。
【0018】
上述のごとき内視鏡システムにおいてシステムフリーズ状態になると、例えば、ユーザへのプロセッサ再起動の手間(電源スイッチオフからオン動作等)、検査中の記録データ(観察動画キャプチャ等の一時保管データ等)がすべて無効になるという不都合を生じる。
【0019】
ところで、上述のごとき双方向のオープンコレクタ信号線によるI2Cバスは、ワイヤードORを構成するが、このワイヤードORを構成することが上述した問題を引き起こしやすい要因となっている。すなわち、ワイヤードORでは、バスに接続されたデバイスのどれか一つがLドライブ状態となると、バスは物理的にその論理に強制的に従うことになる。
【0020】
I2Cは、bitシーケンスルール上、Lドライブが可能なデバイスが単一であるというルールを規定することで双方向を実現するものである。すなわち、I2Cでは、このルールを遵守することにより双方向通信を可能とするものである。
【0021】
しかしながら、上述したごとき内視鏡先端部に配設されたスレーブであるところのCMOSセンサと、マスタであるプロセッサとの間を数mものケーブルで接続する構成をなす内視鏡システムにおいては、当該ケーブルに混入する外来ノイズの影響により、上述したようにそのルールが破綻しやすい状況下にあるため、バス上の出力信号の衝突を起こしやすいという問題がある。
【0022】
本発明は上述した点に鑑みてなされたもので、撮像素子としてCMOSセンサを搭載する内視鏡を有する内視鏡システムにおける通信システムにおいて、外来ノイズによるシステムフリーズの発生を回避することができる通信システムを提供することを目的とする。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照して本発明の実施形態を説明する。
図1は、本発明の第1の実施形態の内視鏡システムにおいてI2Cシステムの構成を示す図である。
【0026】
図1に示すように本発明の第1の実施形態である内視鏡システム1は、撮像素子としてCMOSセンサを採用した内視鏡2と、前記内視鏡2に着脱自在に接続され、内視鏡2に係る各種信号処理を行うプロセッサ3と、により主要部が構成される。
【0027】
前記内視鏡2は、被検体に挿入される挿入部の先端に設けられ、被検体の光学像を撮像して所定のデジタル撮像信号を出力するCMOSセンサ11と、前記CMOSセンサ11に接続され前記デジタル撮像信号のほかCMOSセンサ11に対する制御信号等を伝送するケーブル20と、当該ケーブル20の他端に配設され前記プロセッサ3に接続するためのコネクタ部21と、を備える。
【0028】
CMOSセンサ11は、プロセッサ3において生成された所定のクロックおよび垂直同期信号VD・水平同期信号HDにより、被検体の光学像を撮像して所定のアナログ撮像信号を生成する撮像部12(PD12)と、当該撮像部12に対して所定の信号処理を施すと共にデジタル撮像信号に変換して出力するA/D変換部を備える図示しないAFE回路と、当該AFE回路からのデジタル撮像信号をパラレル/シリアル変換して後段に出力する図示しないP/S回路と、を有して構成される。
【0029】
上述したように本実施形態における内視鏡は撮像素子としてCMOSセンサ11を採用するが、本第実施形態の内視鏡システムにおいては、内視鏡先端に配設された当該CMOSセンサ11と信号処理部であるプロセッサ3との間における通信制御に、上述したI2Cを適用することを特徴とする。
【0030】
また、本実施形態においては、I2C制御においてCMOSセンサ11をスレーブの1つとし、一方マスタはプロセッサ3に実装し、これらマスタ−スレーブ間を2本のシリアルバス信号線(シリアルデータSDAおよびシリアルクロックSCL)により接続することを特徴とする。
【0031】
そして本実施形態の如き内視鏡システムの場合、内視鏡先端部に配設されたスレーブの1つであるところのCMOSセンサとマスタであるプロセッサ3とは、前記シリアルデータSDAおよび前記シリアルクロックSCLの一部を内設する数mの長さのケーブル20とで接続されることとなる。
【0032】
一方、上述したように、本実施形態の内視鏡システムは、電気メス等の強力なノイズ源の近傍で用いられることも多いことから前記マスタ−スレーブ間を結ぶケーブルについては強力なノイズに曝されることとなる。
【0033】
すなわち、上述したように、マスタ(プロセッサ)とスレーブ(CMOSセンサ)とを結ぶ前記ケーブル20に電気メス等の強力なノイズが印可された場合、このケーブル20がたとえ十分なノイズ耐性を備えていたとしても、特にI2Cバスに接続されたスレーブ(CMOSセンサ)側では、当該外来ノイズによりシリアルクロックSCLが乱される虞がある。
【0034】
本願は係る事情に鑑みてなされたものであり、当該外来ノイズによりシリアルクロックSCLが乱されたとしても、システムフリーズを避けることができることを特徴とする。
【0035】
図1に戻って、プロセッサ3には、2本のシリアルバス信号線(シリアルデータSDAおよびシリアルクロックSCL)が接続された、マスタとしてのI2Cマスタ30が配設される。
【0036】
一方、内視鏡2の先端に配設されたCMOSセンサ11には、同じく2本のシリアルバス信号線(シリアルデータSDAおよびシリアルクロックSCL)が接続された、スレーブとしてのI2Cスレーブ10が配設される。なお、このI2Cスレーブ10は、撮像部12(PD12)を制御するI2Cコントーラとして機能する。
【0037】
前記I2Cスレーブ10から延出された前記2本のシリアルバス信号線(シリアルデータSDAおよびシリアルクロックSCL)は、内視鏡2内においてケーブル20内に挿通され、前記コネクタ部21を経由してプロセッサ3内に延設される。
【0038】
前記コネクタ部21は、シリアルクロックSCL用端子21aおよびシリアルデータSDA用端子21bを備え、それぞれ対向するプロセッサ3に設けられたシリアルクロックSCL用端子3aまたはシリアルデータSDA用端子3bに接続されるようになっている。
【0039】
<シリアルデータSDAのバス信号方向切替機構>
以下、本第1の実施形態におけるシリアルデータSDAのバス信号の方向切替機構について説明する。
【0040】
本第1の実施形態においては、前記プロセッサ3における前記シリアルクロックSCL用端子3aおよびシリアルデータSDA用端子3b以降の前記I2Cマスタ30との間において、シリアルデータSDAのバス信号方向、すなわち第1の方向「マスタ側→スレーブ側」と第2の方向「スレーブ側→マスタ側」とのバス信号の方向を切り替える機構を配設する。
【0041】
このシリアルデータSDAのバス信号方向切替機構は、いわゆるFPGA(field-programmable gate array)32により構成され、I2Cマスタ30からI2Cスレーブ10に対して所定のデータを送信する第1の信号線41と、I2Cスレーブ10からI2Cマスタ30に対して所定のデータを送信する第2の信号線42と、第1の信号線41と第2の信号線42とのいずれか一方がシリアルデータSDAのバス信号線として有効となるように選択する第1の信号線選択部51および第2の信号線選択部52と、前記第1の信号線選択部51および第2の信号線選択部52における前記選択動作を制御する信号制御部31と、を具備する。
【0042】
ここで、前記第1の信号線41は、当該バス信号方向切替機構において前記第1の方向「マスタ側→スレーブ側」が選択された際に用いられる信号線であり、前記第2の信号線42は同前記第2の方向「スレーブ側→マスタ側」が選択された際に用いられる信号線であって、これら第1の信号線41および第2の信号線42の具体的な経路については後に詳述する。
【0043】
なお、プロセッサ3内には、当該I2Cシステムにおける他のスレーブとして機能するI2Cスレーブ61およびI2Cスレーブ62が設けられている。
【0044】
前記信号制御部31は、前記シリアルクロックSCLのバスからマスタ側シリアルクロックSCL(MASTER_SCL)を入力する端子31a、前記シリアルデータSDAのバス(後述する第1の信号線41)からマスタ側シリアルデータSDA(MASTER_SDA)を入力する端子31b、前記シリアルデータSDAのバス(後述する第2の信号線42)からスレーブ側シリアルデータSDA(SLAVE_SDA)を入力する端子31c、シリアルデータSDAのバス信号方向切替信号(DIRECTION)を出力する端子31d、前記CMOSセンサ11におけるI2Cスレーブ10のスレーブアドレス(ASSIGN_ADDR)を入力する端子31eをそれぞれ備えている。
【0045】
第1の信号線選択部51は、シリアルデータSDAにおける第1の信号線41上に設けられた第1オア回路54および第1スリーステートバッファ回路55と、シリアルデータSDAにおける第2の信号線42上に設けられた第1バッファ56とを有する。
【0046】
より具体的に前記第1の信号線選択部51における第1オア回路54の入力端子には、第2バッファ53(後述する)の出力端子“O”が接続されるとともに前記信号制御部31における端子31dが接続され、前記第1の信号線41におけるマスタ側シリアルデータSDA信号と、前記信号制御部31における端子31dから出力される前記バス信号方向切替信号DIRECTIONと、を入力する。
【0047】
前記第1の信号線選択部51における第1スリーステートバッファ回路55は、その入力端子“I”には第1オア回路54の出力信号が入力され、また制御入力端子“T”には、前記信号制御部31における端子31dから出力される前記バス信号方向切替信号DIRECTIONが入力され、当該バス信号方向切替信号DIRECTIONに従って出力端子“I/O”からの出力信号が制御されるようになっている。
【0048】
前記第1の信号線選択部51における第1バッファ56の入力端には、第2の信号線42上における前記シリアルクロックSCL用端子3aから入力するスレーブ側シリアルデータSDAが入力され、また、前記第1スリーステートバッファ回路55の出力端子“I/O”が接続される。なお、第1バッファ56の出力端子“O”は、第2オア回路57(後述する)の入力端子に接続されるようになっている。
【0049】
一方、第2の信号線選択部52は、シリアルデータSDAにおける第2の信号線42上に設けられた第2オア回路57および第2スリーステートバッファ回路58と、シリアルデータSDAにおける第1の信号線41上に設けられた第2バッファ53と、信号制御部31における前記端子31dと前記第2オア回路57間に設けられたインバータ回路59と、を有する。
【0050】
より具体的に前記第2の信号線選択部52における第2オア回路57の入力端子には、前記第1バッファ56の出力端子“O”が接続されるとともに前記信号制御部31における端子31dが接続され、前記第2の信号線42におけるスレーブ側シリアルデータSDA信号であって前記第1バッファ56の出力信号と、前記信号制御部31における端子31dから出力され前記インバータ回路59により反転された前記バス信号方向切替信号DIRECTIONと、を入力する。
【0051】
前記第2の信号線選択部52における第2スリーステートバッファ回路58は、その入力端子“I”には第2オア回路57の出力信号が入力され、また制御入力端子“T”には、前記信号制御部31における端子31dから出力され前記インバータ回路59により反転された前記バス信号方向切替信号DIRECTIONが入力され、当該反転されたバス信号方向切替信号DIRECTIONに従って出力端子“I/O”からの出力信号が制御されるようになっている。
【0052】
前記第2の信号線選択部52における第2バッファ53の入力端には、第1の信号線41上における前記I2Cマスタ30側から入力するマスタ側シリアルデータSDAが入力され、また、前記第2スリーステートバッファ回路58の出力端子“I/O”が接続される。なお、第2バッファ53の出力端子“O”は、第1オア回路54の入力端子に接続され、マスタ側シリアルデータSDAとして入力されるようになっている。
【0053】
前記第2の信号線選択部52における前記インバータ回路59は、前記信号制御部31における端子31dから出力された前記バス信号方向切替信号DIRECTIONを入力し、反転出力を第2オア回路57に入力するようになっている。
【0054】
<シリアルデータSDAのバス信号方向切替機構の仕組>
上述したシリアルデータSDAのバス信号の方向切替機構の仕組みについて説明する。
【0055】
図2は、第1の信号線選択部51および第2の信号線選択部52における、第1スリーステートバッファ回路55および第2スリーステートバッファ回路58における論理回路の真理値表である。
【0056】
上述したように、第1の信号線選択部51における第1スリーステートバッファ回路55における制御入力端子“T”には、バス信号方向切替信号DIRECTIONが入力され、一方、第2の信号線選択部52における第2スリーステートバッファ回路58における制御入力端子“T”には、インバータ回路59により反転されたバス信号方向切替信号DIRECTIONが入力されるようになっている。
【0057】
また、本第1の実施形態においては、信号制御部31の端子31dから第1の方向選択時(マスタ→スレーブ)には、“L”信号が、一方、第2の方向選択時(スレーブ→マスタ)には、“H”信号が出力されるようになっている。
【0058】
ここで、
図2における真理値表に示すように、第1スリーステートバッファ回路55または第2スリーステートバッファ回路58の制御入力端子“T”に“H”信号が入力すると、入力信号の状態に拘わらず出力端子“I/O”はハイインピーダンス“Z”となる。このとき、第2バッファ53または第1バッファ56の出力端子“O”は、入力した信号をそのまま出力することとなる。
【0059】
具体的に、例えば今、信号制御部31がバス信号方向切替機構として、前記第1の信号線41を用いる前記第1の方向「マスタ側→スレーブ側」を選択したとする。
【0060】
このとき、信号制御部31は、そのDIRECTION端子31dから前記バス信号方向切替信号DIRECTIONとして第1の方向を選択する“L”信号を出力する。
【0061】
そして当該バス信号方向切替信号DIRECTIONは、一方で前記第1スリーステートバッファ回路55の制御入力端子“T”に“L”信号として入力されるとともに、他方でインバータ回路59に入力し、当該インバータ回路59により反転され、これにより第2スリーステートバッファ回路58の制御入力端子“T”には“H”信号が入力される。
【0062】
すると、上述したように、第2スリーステートバッファ回路58における出力端子“I/O”は ハイインピーダンス“Z”となり、マスタ側シリアルデータSDAにおけるI2Cマスタ30からの信号は、第2バッファ53側に流れることとなる。そして、第2バッファ53における出力端子“O”には、I2Cマスタ30側から入力されたマスタ側シリアルデータSDAがそのまま現れることとなる。
【0063】
一方、第1スリーステートバッファ回路55の制御入力端子“T”には、上述したように、信号制御部31の端子31dから出力された“L”状態のバス信号方向切替信号DIRECTIONが入力される。
【0064】
このとき第1スリーステートバッファ回路55における出力端子“I/O”には、入力端子“I”に入力した信号、今の場合、第2バッファ53を経由したI2Cマスタ30側から入力されたマスタ側シリアルデータSDAがそのまま出力さることとなる。
【0065】
ここで、本実施形態においては、I2Cマスタ30→第2バッファ53→第1オア回路54→第1スリーステートバッファ回路55→シリアルデータSDA用端子3bへの経路を第1の信号線41とする。
【0066】
すなわち、バス信号方向切替機構として、前記第1の方向「マスタ側→スレーブ側」への切替を所望した際は、上述した仕組みにより前記第1の信号線41を選択することができる。
【0067】
他方、例えば今、信号制御部31がバス信号方向切替機構として、前記第2の信号線42を用いる前記第2の方向「スレーブ側→マスタ側」を選択したとする。
【0068】
このとき、信号制御部31は、そのDIRECTION端子31dから前記バス信号方向切替信号DIRECTIONとして第1の方向を選択する“H”信号を出力する。
【0069】
そして当該バス信号方向切替信号DIRECTIONは、一方で第1スリーステートバッファ回路55の制御入力端子“T”に“H”信号として入力されるとともに、他方でインバータ回路59に入力され当該インバータ回路59により反転され、これにより第2スリーステートバッファ回路58の制御入力端子“T”には“L”信号が入力される。
【0070】
すると、上記とは逆に、第1スリーステートバッファ回路55における出力端子“I/O”が ハイインピーダンス“Z”となり、スレーブ側シリアルデータSDAにおけるI2Cスレーブ10からの信号が、第1バッファ56側に流れることとなる。そして、第1バッファ56における出力端子“O”には、I2Cスレーブ10側から入力されたスレーブ側シリアルデータSDAがそのまま現れることとなる。
【0071】
一方で、第2スリーステートバッファ回路58の制御入力端子“T”には、上述したようにインバータ回路59を経由した“L”状態のバス信号方向切替信号DIRECTIONが入力される。
【0072】
このとき第2スリーステートバッファ回路58における出力端子“I/O”には、入力端子“I”に入力した信号、今の場合、第1バッファ56を経由したI2Cスレーブ10側から入力されたスレーブ側シリアルデータSDAがそのまま出力さることとなる。
【0073】
ここで、本実施形態においては、I2Cスレーブ10→シリアルデータSDA用端子3b→第1バッファ56→第2オア回路57→第2スリーステートバッファ回路58→I2Cマスタ30への経路を第2の信号線42とする。
【0074】
すなわち、バス信号方向切替機構として、前記第2の方向「スレーブ側→マスタ側」への切替を所望した際は、上述した仕組みにより前記第2の信号線42を選択することができる。
【0075】
<第1の実施形態の作用>
次に、本第1の実施形態の作用について説明する。
【0076】
<シリアルクロックSCLのバス信号方向の固定>
本第1の実施形態は、上述したように、プロセッサ3に配設したマスタ側(I2Cマスタ30)と、内視鏡2に配設したスレーブ側(CMOSセンサ11におけるI2Cスレーブ10)との通信制御にI2Cシステムを採用するが、本第1の実施形態においては、まず、シリアルクロックSCLを常時、「マスタ側→スレーブ側」に固定することを特徴とする。
【0077】
<シリアルデータSDAのバス信号方向の切替作用>
本第1の実施形態においては、上述したバス信号方向切替機構により、原則としてシリアルデータSDAにおけるバス信号の方向を前記第1の方向「マスタ側→スレーブ側」に設定し、I2Cマスタ30側が、CMOSセンサ11におけるI2Cスレーブ10からのデータを受信する受信bit時(例えば、AckまたはReadData)の際にのみ、シリアルデータSDAにおけるバス信号の方向を前記第2の方向「スレーブ側→マスタ側」に設定することを特徴とする。
【0078】
図3は、第1の実施形態の内視鏡システムにおいて、通常時の各シリアルバス信号の状態を示したタイミングチャートである。
【0079】
図3は、I2Cマスタ30からのマスタシリアルクロックSCL(MASTER_SCL)に従って、マスタシリアルデータSDA(MASTER_SDA)によりI2Cマスタ30からCMOSセンサ11におけるI2Cスレーブ10に対して所定のデータが送信されている様子を示している。
【0080】
上述したように、本実施形態においてはシリアルデータSDAにおけるバス信号の方向を前記第1の方向「マスタ側→スレーブ側」に設定することから、信号制御部31は、バス信号方向切替機構として、前記第1の信号線41を用いる前記第1の方向「マスタ側→スレーブ側」を選択する。
【0081】
すなわち、信号制御部31は、そのDIRECTION端子31dから前記バス信号方向切替信号DIRECTIONとして第1の方向を選択する“L”信号を出力する。
【0082】
これにより、第2スリーステートバッファ回路58の制御入力端子“T”には前記インバータ回路59により反転された“H”信号が入力され、一方、第1スリーステートバッファ回路55の制御入力端子“T”には、“L”信号が入力される。
【0083】
このとき、上述したように、第2スリーステートバッファ回路58における出力端子“I/O”は ハイインピーダンス“Z”となり、マスタ側シリアルデータSDAにおけるI2Cマスタ30からの信号は、第2バッファ53側に流れ、第2バッファ53、第1スリーステートバッファ回路55を経由してシリアルデータSDA用端子3bには、I2Cマスタ30側から入力されたマスタ側シリアルデータSDAがそのまま出力さることとなる。
【0084】
図3において、MASTER_SDAにおいてI2Cマスタ30から8bit分のデータが送信されている際は、上述したように第1の信号線41を用いた第1の方向「マスタ側→スレーブ側」が選択されている。
【0085】
一方、この8bit分のデータが送信され終わった次bitである、I2Cマスタ30がCMOSセンサ11のI2Cスレーブ10側からのデータを受信する受信bit時、この場合は、Ackの際には、信号制御部31は、バス信号方向切替機構として、前記第2の信号線42を用いる前記第2の方向「スレーブ側→マスタ側」を選択する。
【0086】
すなわち、信号制御部31は、そのDIRECTION端子31dから前記バス信号方向切替信号DIRECTIONとして第2の方向を選択する“H”信号を出力する。
【0087】
これにより、第2スリーステートバッファ回路58の制御入力端子“T”には前記インバータ回路59により反転された“L”信号が入力され、一方、第1スリーステートバッファ回路55の制御入力端子“T”には、“H”信号が入力される。
【0088】
このとき、上述したように、第1スリーステートバッファ回路55における出力端子“I/O”は ハイインピーダンス“Z”となり、スレーブ側シリアルデータSDAにおけるI2Cスレーブ10からの信号は、第1バッファ56側に流れ、第1バッファ56、第2スリーステートバッファ回路58を経由してI2Cマスタ30に対しては、I2Cスレーブ10側から入力されたスレーブ側シリアルデータSDAがそのまま出力さることとなる。
【0089】
図3において、MASTER_SDAにおいてI2Cマスタ30がSLAVE_SDAからのAck信号を受信している際は、上述したように第2の信号線42を用いた第2の方向「スレーブ側→マスタ側」が選択されている。
【0090】
次に、上述した本実施形態におけるバス信号方向切替機構を備えないと仮定した際にシリアルクロックSCLバス上に異常信号が印可された際の各シリアルバス信号が如何なる状態になるか説明する。
【0091】
図4は、第1の実施形態の内視鏡システムにおいて、シリアルデータSDAのバス信号方向切替機構を備えないと仮定した場合にシリアルクロックSCLバス上に異常信号が印可された際の各シリアルバス信号の状態を示したタイミングチャートである。
【0092】
本実施形態の如き内視鏡システムは、いわゆる電気メス等のノイズ源の近傍で用いられることも多く、CMOSセンサ11におけるI2Cスレーブ10とプロセッサ3におけるI2Cマスタ30とを接続するシリアルデータSDAおよびシリアルクロックSCLの一部を内設するケーブル20はこの種のノイズに曝されることとなる。
【0093】
そして、上述したように、電気メス等の周辺機器は比較的強力なノイズ源となり得えることから、ケーブル20がたとえ十分なノイズ耐性を備えていたとしても、シリアルクロックSCLにおける特にI2Cスレーブ10(CMOSセンサ)側では、当該外来ノイズをシリアルクロックSCLの立上りエッジと誤認する虞がある。
【0094】
図4は、スレーブ側シリアルクロックSCL(SLAVE_SCL)において、I2Cシステムが前記外来ノイズをシリアルクロックSCLの立上りエッジと誤認した場合の様子を示している。
【0095】
図4に示すように、前記外来ノイズによりI2Cスレーブ10側ではシリアルクロックSCLが1個多く見え、bitずれが生じることとなる。一方、I2Cマスタ30側では、1b(Read)と0b(Ack)とが衝突しているように見える。
【0096】
ところで、I2Cでは、マルチ・マスタ・バスで衝突検知とバス・アービトレーションでバス調停(バスの所有権の調停)することを前提とするので、I2Cバス上において衝突が生じた場合、それは複数のマスタが同時にアクセスしていると解釈し、また、これら他マスタ同士の衝突は保障されているので問題はない。
【0097】
しかしながら、I2Cシステムにおいて、
図4に示す如く、マスタ−スレーブ間においてのbitズレによる衝突は想定外の挙動である。
【0098】
よって本実施形態の如きシリアルデータSDAのバス信号方向切替機構を備えないと仮定すると、外来ノイズをシリアルクロックSCLの立上りエッジと誤認したような場合、マスタであるプロセッサは、他マスタとの同時アクセスと誤解し、シリアルクロックSCLおよびシリアルデータSDAを停止し、すなわちバスをフリー状態にしてしまう。
【0099】
そして、I2Cマスタ30による上記シリアルクロックSCLおよびシリアルデータSDAの停止タイミングが、スレーブ側のLドライブ(例えば、上述したAckによる)と重なった場合、シリアルデータSDAは“L”に引張られたまま停止することになるので、バスはビジー状態となり復帰することができない。
【0100】
すなわち、I2Cマスタ30からは、バスがビジー状態のように見え続けるので、I2Cマスタ30は待機したままで復帰しないこととなり、いわゆるシステムフリーズ状態となる。その結果、I2Cマスタ30は、I2Cスレーブ10(CMOSセンサ11)以外のスレーブにアクセスすることが不可能になってしまうという不都合が生じる。
【0101】
図5は、上述の如き構成されたバス信号方向切替機構を備える本第1の実施形態において、シリアルクロックSCLバス上に異常信号が印可された際の各シリアルバス信号の状態について説明する。
【0102】
上述したように、本第1の実施形態においてはバス信号方向切替機構により原則としてシリアルデータSDAにおけるバス信号の方向を前記第1の方向「マスタ側→スレーブ側」に設定する。すなわち、信号制御部31からのバス信号方向切替信号DIRECTIONは“L”状態に設定される。
【0103】
そして、I2Cマスタ30側が、CMOSセンサ11におけるI2Cスレーブ10からのデータを受信する受信bit時(例えば、AckまたはReadData)の際にのみ、シリアルデータSDAにおけるバス信号の方向を前記第2の方向「スレーブ側→マスタ側」に設定する。
【0104】
これにより、
図4に示すようなタイミングでSLAVE_SCLに外来ノイズが混入され、シリアルクロックSCLが1個多く見え擬似クロックが生じたとしても、この擬似クロックが生じるタイミングにおいてバス信号方向切替信号DIRECTIONは未だ“L”状態であるため、この直後にI2Cスレーブ10からI2Cマスタ30に対してAck信号が送信されたとしても、バス信号方向切替信号DIRECTIONが“L”状態である限りI2Cマスタ30はこのAck信号を受信することはない。
【0105】
この後、シリアルデータSDAにおいてI2Cスレーブ10からI2Cマスタ30に対してReadDataが送信されたとしても(このとき、信号制御部31は、第2の方向「スレーブ側→マスタ側」を選択するとしてバス信号方向切替信号DIRECTIONを“H”状態にしている)、I2Cマスタ30はAck信号を受信しない状態でReadDataを受けることからNoAckであるとして処理する。
【0106】
すなわち、I2Cマスタ30は、NoAckであってReadDataを受信したとしてStop bitを発行して双方bitシーケンスはリセットされ、再度Read処理を行う。
【0107】
そして、
図5に示すように、受け取ったReadDataが0bであれば、I2Cマスタ30はこれをAckと解釈することになり、1bitずれたDataを読み出すこととなるが、2,3度読みで確認する等、誤ったDataのReadは、I2Cマスタ30のソフトシーケンスを工夫することで上述した
図4に示すような不具合は回避することができる。
【0108】
以上説明したように本実施形態によると、撮像素子としてCMOSセンサを搭載する内視鏡を有する内視鏡システムにおける通信システムにおいて、外来ノイズによるシステムフリーズの発生を回避することができる。
【0109】
なお、上述した実施形態においては、FPGA32により構成される、シリアルデータSDAのバス信号方向切替機構をプロセッサ3内に設けたが、当該バス信号方向切替機構の配設位置はこれに限らない。すなわち、当該バス信号方向切替機構をI2Cマスタ30とI2Cスレーブ10の間、例えば内視鏡2側におけるコネクタ部21または操作部等に配設しても同等の効果を奏することができる。
【0110】
また、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能であり、上述した実施形態等を部分的に組み合わせる等して構成される実施形態も本発明に属する。
【0111】
本出願は、2014年12月25日に日本国に出願された特願2014−263188号公報を優先権主張の基礎として出願するものであり、上記の開示内容は、本願明細書、請求の範囲、図面に引用されたものとする。