【解決手段】システムが、通信インタフェースを介してピア−ツー−ピア・ネットワークの形に接続された複数のノードを具えている。これら複数のノードのうちの少なくとも1つのノードは、トランシーバ、少なくとも2つのコネクタ、トランシーバに結合された少なくとも1つの終端抵抗モジュール、少なくとも2つのコネクタのうちの第1コネクタに結合された第1検出回路、及び少なくとも2つのコネクタのうちの第2コネクタに結合された第2検出回路を具え、少なくとも1つの終端抵抗モジュールはノード内に終端抵抗を提供する。第1及び第2検出回路は、ノードがピア−ツー−ピア・ネットワーク内の1つ以上の他のノードに結合されていることを検出し、この検出に基づいて終端抵抗を調整するように構成されている。
通信インタフェースを介してピア−ツー−ピア・ネットワークの形に接続された複数のノードを具えたシステムであって、該複数のノードのうちの少なくとも1つのノードが、
トランシーバと、
少なくとも2つのコネクタと、
前記トランシーバに結合された少なくとも1つの終端抵抗モジュールであって、終端抵抗を前記ノード内に提供する終端抵抗モジュールと、
前記少なくとも2つのコネクタのうちの第1コネクタに結合された第1検出回路と、
前記少なくとも2つのコネクタのうちの第2コネクタに結合された第2検出回路とを具え、
前記第1検出回路及び前記第2検出回路は、前記ノードが前記ピア−ツー−ピア・ネットワーク内の1つ以上の他の前記ノードに結合されていることを検出し、この検出に基づいて前記終端抵抗を自動的に調整するように構成されている、システム。
前記ノードが、前記少なくとも1つの終端抵抗モジュールに結合された終端回路をさらに具え、該終端回路は、前記検出に基づいて前記終端抵抗を追加または除去するように構成されている、請求項1に記載のシステム。
前記ノードが前記他のノードのうちの1つ以上のノードから切り離された際に、あるいは前記ノードがエンドポイントである際に、前記終端抵抗が前記ノード内にデフォルトで存在する、請求項1に記載のシステム。
前記第1検出回路は、前記第1コネクタが、当該第1コネクタに差し込まれた第1コネクタケーブルを介して前記通信バスに接続されると、第1の論理値ローの信号を発生するように構成され、
前記第2検出回路は、前記第2コネクタが、当該第2コネクタに差し込まれた第2コネクタケーブルを介して前記通信バスに接続されると、第2の論理値ローの信号を発生するように構成されている、
請求項1に記載のシステム。
ネットワーク・ノード内の終端抵抗を動的に切り換える方法であって、該ノードが利用可能な複数のコネクタのうちの少なくとも1つのコネクタを介してピア−ツー−ピア・ネットワークの形に接続されている方法において、
前記ノードが、前記複数のコネクタのうちの第1コネクタに結合された単一の接続ケーブルを介して前記ネットワークに結合されると、前記ノード内に終端抵抗を追加するステップであって、前記検出が、前記単一の接続ケーブルにより短絡された一対のコネクタピンに基づくステップと、
前記ノードが、前記複数のコネクタのうちの少なくとも第2コネクタに差し込まれた少なくとも1つの他の接続ケーブルを介して前記ネットワークに結合されていることを検出すると、前記ノード内の前記終端抵抗を除去するステップと
を含む方法。
前記第1コネクタ及び前記第2コネクタにおける前記接続ケーブル毎に、少なくとも2つのコネクタピンが短絡していることを検出するステップを含む、請求項16に記載の方法。
前記接続ケーブル毎に前記少なくとも2つのコネクタピンが短絡していることを検出すると、少なくとも2つの前記接続ケーブルに対応する少なくとも2つの論理信号を発生するステップと、
前記論理信号に基づいて、前記ノード内の前記終端抵抗を不作動状態にするステップと
を含む請求項17に記載の方法。
前記第2ノードからの前記申込要求を受信する前に、前記第1ノードにおいて、前記複数のノードのうちの前記第2ノードから心拍メッセージを受信するステップであって、該心拍メッセージは、前記第2ノードを前記ピア−ツー−ピア・ネットワーク上に接続された装置として識別するステップをさらに含む、請求項24に記載の方法。
前記第1ノードが第2申込要求を前記第2ノードに送信するステップであって、該第2申込要求は、前記第2ノードが発生することができる1つ以上の信号であって前記第1ノードが申し込むことを要求している信号を識別するステップをさらに含む、請求項26に記載の方法。
前記第1ノードが補足的な申込コマンドを前記第2ノードに送信するステップであって、該補足的な申込コマンドは、前記複数のノードのうちの前記第1ノードまたは前記複数のノードのうちの1つ以上の他のノードが発生する1つ以上の他の信号であって前記第2ノードが申し込むことができる信号を識別して、該識別した信号の申込要求を開始するように前記第2ノードに命令するステップをさらに含む、請求項26に記載の方法。
【発明を実施するための形態】
【0016】
SJベースのCANバス・ネットワークの一般的概説
本発明の一実施形態によれば、CANバス・ネットワークを、歯科医療機器/器具ネットワークに関連して用いることができる。しかし、単一のリニア・ネットワークは歯科医療機器には適さないことが多い、というのは、こうしたネットワーク内の装置は、分岐構成の形に配置されたアームまたは他の構造上に搭載されていることが多いからである。新たな歯科医療機器をリニアな歯科医療機器ネットワーク内に接続しなければならない場合、2本の別個の接続ケーブルを延ばして、新たな歯科医療機器をリニア・ネットワークの中間に接続しなければならず、このことは困難であり得ると共に膨大な費用を要し得る。適切なCANバス・ケーブル接続を行うことに伴う誤りは、製造組み立て中に、あるいは製品を修理点検する際に生じ得る。他の重要な考慮事項は終端抵抗であり、終端抵抗は、(一般に、SKベースのCANバス・ネットワークについては)最高性能のためにネットワーク・エンドポイントに配置しなければならない。終端抵抗器を各ノードに配置することは、ネットワークの分岐を可能にし、ノードがエンドポイントであるか否かを判定する必要性を軽減するが、(SJベースのCANバス・ネットワークにとっては)全体速度を制限し得る。
【0017】
図1は、各回路ボードに終端抵抗器が存在する、リニア規格J(SJ)ベースのCANバス・ネットワークの概略図である。
図1に示すように、リニアSJベース・ネットワーク100は、複数のノード(またはコントローラ)1〜nを含む。ノードの各々は、デジタル・シグナル・プロセッサ(DSP:digital signal processor)及びCANトランシーバを含むことができる。このDSPは、CANマイクロコントローラ(μC)または(フィールド・プログラマブル・ゲートアレイ、CPU、等のような)他の種類のプロセッサとすることができる。このDSPは、適切な回路、インタフェース、ロジック及び/またはコードをさらに含むことができ、トランシーバから到着するビット列を受信し、解釈用のメッセージを構成し、受信したメッセージを解釈/翻訳し、そして(例えば、受信したメッセージに応答して)送信すべきメッセージを決定するように構成されている。CANマイクロコントローラは、送信メッセージからのビット列を、他のノードへの送信用にトランシーバへ送ることもできる。本明細書中に用いる用語ノード、コントローラ、及びボードは、互換に用いることができる。
【0018】
図1に見られるように、SJベースのCANバス・ネットワーク100は、終端抵抗器を各ノードで用いる。この方法は、エンドポイントで終端抵抗器を管理する必要性をなくすにせよ、CANバス・ノードの総数、及び各ノードにおける終端抵抗の存在に基づいて、通信速度は大幅に低下し得る(それ故に、SJノードまたはSJベース・ネットワークを参照する際の称号「低速」がある)。
【0019】
これとは対照的に、SKベースのCANバス・ネットワークは、最適な性能を達成するために、リニア・ネットワークの両エンドポイントにしか終端抵抗器を必要としない(中間ノードには必要としない)。しかし、統合型歯科医療機器/器具の「ミックス・アンド・マッチ(多種多様なものを組み合わせた)」プラットフォームでは、接続されたモジュールの数、あるいはそれらの配置/構成(即ち、リニアまたは分岐)を常に知ることはできない。これに加えて、モジュールを後に追加または除去することがあり、適切な終端抵抗器が適所にあること、即ち各エンドポイントにはあるが他のノードにはないことを保証することは挑戦的である。
【0020】
SKベースのCANバス・ネットワークの概説
SKベースのCANバス・ネットワークは、一般に、好適にはエンドポイント・ノードに終端抵抗を有し、非エンドポイント・ノードには終端抵抗を有さないリニア・ネットワークとして構成されることによって、SJベースのCANバス・ネットワークよりも高い通信速度を実現することができる。本発明の一実施形態によれば、SKベースのCANバス・ネットワークが、動的なケーブル検出付きの自己終端エンドポイント(即ち、ノードまたはコントローラ)を利用して、モジュール形の「ミックス・アンド・マッチ」プラットフォーム設計を可能にすることができる。本明細書中に用いる「自己終端」または「自己終端エンドポイント」とは、それ自身がエンドポイントであるか否かを自動的に検出して、こうした判定に基づいて終端抵抗を自動的に付加(または除去)するように構成されたノード(またはコントローラ)を参照する。SKベースのCANバス・コントローラは、マイクロプロセッサ、1つ以上のトランシーバ、トランシーバ毎の終端抵抗モジュール、及びトランシーバ毎に2つまでのコネクタを含むことができる。各コネクタは検出回路に関連することが好ましく、この検出回路を用いて、当該コネクタ内にケーブルが存在するか否か、及び上記コントローラがエンドポイントである(あるいはエンドポイントでない)か否かを自動的に検出することができる(例えば、上記コネクタのうち1つしかケーブルが存在するものとして検出されない場合、当該コントローラはエンドポイントであり、上記コントローラのうちの2つが当該コネクタに接続されたケーブルを介してネットワークに結合されている場合、当該コントローラはエンドポイントではない)。上記終端抵抗モジュールは、上記コントローラがエンドポイントであるものと判定された場合に、終端抵抗を自動的に付加するように構成されている。代案として、終端抵抗をデフォルトで付加することができ(即ち、上記コントローラがエンドポイントであるものと仮定し)、あるトランシーバに関連する両コネクタが当該コネクタ内にケーブルが挿入されているものと判定された際に、上記終端抵抗モジュールを除去することができる。
【0021】
実施形態では、SJベース及びSKベースのCANバス通信を、単一コントローラ上の別個のトランシーバにより実現することができ、各トランシーバは、1つ以上のSJベース及び/またはSKベースのコネクタのそれぞれに結合されている(例えば、1つまたは2つのコネクタ当たり1つのトランシーバを用いることができる)。
【0022】
本発明の一実施形態によれば、SKベースのCANバス・コントローラが、マイクロコントローラ、トランシーバ、2つのコネクタ(例えば、A及びBとラベル付けされている)、終端抵抗モジュール、及びコネクタBに結合された単一の検出回路を含むことができる。このコントローラは、第1接続ケーブルをコネクタA内に挿入することができ、(必要であれば)第2接続(コネクタ)ケーブルがコネクタB内に挿入されるようにラベル付けすることができる。1つのケーブルしかコントローラに接続されていない例では、この接続ケーブルをコネクタAに接続し、当該コントローラはエンドポイントであるので、上記終端抵抗モジュールをデフォルトで作動させる(例えば、0本または1本のケーブルが存在する際に、終端抵抗を作動させることができる)。第2接続が存在する(即ち、コネクタBを用いる)例では、コネクタBに結合された単一の検出モジュールが、コネクタB内に接続ケーブルが存在することを検出し、これにより、両コネクタA及びBにケーブルが存在するので、当該ノードがもはやエンドポイントではないことを判定することができる。この場合、コントローラはもはやエンドポイントではないので、終端抵抗を使用停止/除去することができる。
【0023】
自動エンドポイント検出及び自己終端付きのマルチ(多重)コネクタノードを用いることによって、SKベースのCANバスを、(例えば、エンドポイントにしか終端抵抗を有さないことによって)現場技術者からの介入なしに、より高速で動作するように構成/確立することができる。この関係では、自己終端能力を有するSKベースのCANバス・ネットワーク設計は、2つの特有のボードの存在を必要としないが、その代わりに、任意の2つ(以上)のボードの存在を必要とし、以下に説明するように、これらのボードの少なくとも1つは検出回路及び自動自己終端を備えている。
【0024】
図2は、本発明の一実施形態による、分岐構成の形に接続され、自己終端抵抗を使用するSKベースのCANバス・コントローラを用いた歯科医療機器ネットワークの概略図である。
図2を参照すれば、SKベースのCANバス・ネットワーク200が複数のコントローラ(即ち、コントローラ・ボードまたはノード)202〜208を含む。例えば、コントローラ202は(歯科用椅子を制御するための)椅子ボードであり、コントローラ・ボード204は制御ヘッド・ボードであり、コントローラ・ボード206は吐き出しボードであり、コントローラ・ボード208はLEDライト・ボードである。
【0025】
図2に見られるように、コントローラ202〜208は種々のリニア構成の形に接続することができる。コントローラ202と204とが単一のケーブルを介して結合された例では、単一のSKベース・ネットワークがコントローラ202と204との間に形成される。コネクタ218a及び218bに単一接続が存在するので、これらの接続はエンドポイントであるコントローラ202及び204を生じさせる。しかし、各コントローラは2つ以上のコネクタを含むことができ、これにより複数のリニアな高速ネットワーク(例えばコントローラ204)をサポートするので、分岐構成も可能である。この関係では、ボード上のSKベースのネットワーク接続毎に、トランシーバ当たりに用いることができる最大2つのコネクタが存在することが好ましい(即ち、トランシーバ当たり1つまたは2つのコネクタが好ましいが、追加的なコネクタも可能である)。この関係では、ボード当たり1つまたは2つのコネクタといった各グループ分けがCANバス・トランシーバを必要とする。コントローラ204上に見られるように、コネクタ218bはトランシーバによってサポートされる。また、このボード上には、3つ以上のコネクタをサポートしてシステム内の分岐ケーブル配線を可能にするために、追加的なトランシーバ(214f)が接続された追加的な2つのコネクタ(例えば、218f)も存在する。これに加えて、
図2に見られるように、コントローラ204内のトランシーバ214b及び214fの各々が終端モジュール(例えば、それぞれ216b及び216f)に関連する。
【0026】
本発明の一実施形態によれば、(トランシーバ当たり1つ以上のコネクタを有する)別個のトランシーバを単一のコントローラ内に用いることによって、単一のコントローラを複数の通信ネットワーク上で用いることができ、このコントローラは、こうしたネットワークのうちの1つ以上のネットワーク上でエンドポイント(または非エンドポイント)として機能する。一例として、
図2に見られるように、コントローラ202及び204は共に、(コネクタ218aと218bとの間の接続を用いて)トランシーバ214aと214bとの間に形成されるCANバス・ネットワーク内のエンドポイントとすることができる。しかし、コントローラ204は、(例えば、コネクタ218f、218c及び218dを用いてトランシーバ214f、214c及び214dの間に形成される)独立したSKベースのリニアCANバス・ネットワークを通して、コントローラ206及び208に接続することもできる。コントローラ204がコントローラ206及び208に結合される例では、コントローラ204及び208がエンドポイントであり、(例えば216f及び216dを用いて)適切な終端抵抗を付加することができる。
【0027】
ボード上の3つ以上のコネクタをサポートするこは、追加的なボードをもっと容易に追加することを可能にする。例えば、(トランシーバ214eを有する)コントローラ・ボード210を、制御ヘッドボード204からの分岐接続として、かつトランシーバ214f、214c及び214dによって形成されるSKベースのCANバス・ネットワークの一部として追加することができる。複数のリニア・ネットワークで構成されるコントローラの分岐構成は、独立したネットワークの各々が、それぞれのデジタルケーブル検出を用いて適切な終端用のエンドポイントを決定することを可能にしつつ、接続の簡略化を可能にする。
【0028】
コントローラ・ボード202〜210は、対応するマイクロコントローラ(MC:microcontroller)(またはDSP)212a〜212e、トランシーバ・モジュール214a〜214f、終端モジュール216a〜216f、及びコネクタ218a〜218fを含む。
図2に見られるように、そして以上で説明したように、コントローラ204は2つの別個のトランシーバ214b及び214fを含み、トランシーバ毎に、対応する一対のコネクタ(218b及び218f)及び対応する終端モジュール(216b及び216f)を伴う。終端モジュール216a〜216fは、適切な回路、インタフェース、ロジック及び/またはコードを具えることができ、そして、(トランシーバに関連するコネクタのうちの1つ以上がケーブルに結合されているか否かを検出するための)検出回路、終端抵抗、及びコントローラ・ボードが(検出回路によって検出された接続の数に基づいて判定された)エンドポイントであるか否かに基づいて抵抗を作動させる(または作動を停止させる)ための終端回路(例えばリレー)を含むように構成することができる。一実施形態では、他の種類の終端回路をリレー回路の代わりに用いて、(例えば
図3Dに例示するように)終端抵抗を追加または除去することができる。
【0029】
ケーブル検出及び自己終端コントローラ
図3Aは、本発明の一実施形態による、自己終端抵抗を付加するために使用される複数のコネクタ及び対応する検出回路を有するSKベースのCANバス・コントローラのブロック図である。
図3Aを参照すれば、コントローラ・ボード301は、CANバス・マイクロコントローラ302a、CANバス・トランシーバ304a、コネクタ306a、308a、検出回路310a、312a、終端抵抗316a、及び終端リレー314aを含む。マイクロコントローラ302a及びトランシーバ304aの機能は、
図1のノード内の対応する要素の機能と同様にすることができる。
【0030】
検出回路310a、312a、リレー314a及び終端抵抗316aは、(例えば、コントローラ・ボードがエンドポイントである例において)デジタルケーブル検出及び自己終端に関連して使用される終端モジュール(例えば、
図2中の216a〜216e)の一部分として含めることができる。検出回路、リレー、及び終端抵抗のより詳細な図を
図3Bに例示する。コネクタ306a、308aはRJ50コネクタとして例示するが、種々の実施形態では、他の種類のSKベース・コネクタを用いることもできる。
【0031】
図3Bは、
図3AのSKベースのCANバス・コントローラのより詳細な回路図である。
図3Bを参照すれば、SKベースのCANバス・コントローラ302bは、
図3AのSKベースのCANバス・コントローラのより詳細な図である。
図3Bに見られるように、トランシーバ308bの種々のピンは、マイクロコントローラ(323b、
図3Bには図示せず)、電源フィルタ320b、322b、コネクタ304b、306b、及び静電放電(ESD:electro-static discharge)保護ブロック324bに接続されている。
【0032】
図3Bを参照すれば、検出回路(例えば、310b〜312b)はCANバス通信から分離され、各回路ボード上のデジタル論理回路を一意的なデジタルケーブル配線と共に使用して、接続が行われているか否かを判定する。これに加えて、検出回路は、対応するコネクタにケーブルが存在するか否かを検出するために、CANバス通信が動作状態であることを必要としない。より具体的には、検出回路310bはコネクタ304bに関連し、プルアップ抵抗器330b、ESD保護モジュール332b、及び信号フィルタリング(フィルタ処理)モジュール334bを含むことができる。プルアップ抵抗器330bは、(コネクタ340bのピン5の)CAN1_DT1_IN接続部を例えばDC3.3Vにプルし、このDC3.3Vは論理値ハイ(HIGH)の信号と考えることができる。コネクタ304bにケーブルが存在する際には、ピン5がピン6(回路の接地(GND))に短絡されて、CAN1_DT1_INが論理値ロー(LOW)になる。信号CAN1_DT1_INは、信号フィルタリング回路334bによってフィルタ処理されて、接続部328bを介してマイクロコントローラ328bに伝達される。検出回路310bから受信した論理値ローまたは論理値ハイの信号を検出することによって、マイクロコントローラは、コネクタ304bに接続されたケーブルが存在するか否かを判定することができる。次に、両コネクタ304b〜306bのケーブル検出に基づいて、終端抵抗を係合(または離脱)させることができる。検出回路310bをプルアップ抵抗器を用いて実現しているにせよ、(例えば、
図3Cに例示するような)検出回路の他の具体例を用いることもできる。これに加えて、ここではピン5とピン6との間のケーブル検出短絡を用いているにせよ、本発明はこの関係に限定されず、ケーブルを検出する目的及び/またはSKボードに結合されたSJボードを検出する目的で、他のピンを短絡させることができる。
【0033】
同様に、検出回路312bはコネクタ306bに関連し、プルアップ抵抗器331b、ESD保護モジュール333b、及び信号フィルタリング・モジュール335bを含む。プルアップ抵抗器331bは、(コネクタ306bのピン5の)CAN1_DT2_IN接続部をDC3.3Vにプルし、このDC3.3Vは論理値ハイの信号と考えることができる。コネクタ306bにケーブルが存在する際には、ピン5がピン6(回路接地)に短絡されて、CAN1_DT2_INが論理値ローの信号になる。
【0034】
ピン5とピン6(または短絡されてケーブル検出用に用いられる他のあらゆるピン)との間の短絡をトリガするために、ピン5とピン6とが短絡されるようにカスタマイズされたケーブルを用いることができる。
図3Fは、短絡された一対のピンを有するコネクタケーブルの例であり、このコネクタケーブルは、CANバス・コントローラが、ケーブル検出用に、及び自己終端抵抗を付加するために用いることができる。
図3Fに見られるように、接続ケーブル302fは10ピンのRJ50接続ケーブルであり、ここでは、コネクタ304b〜306bに接続ケーブルが存在するか否かに基づいて検出回路が論理値ロー及びハイの信号を発生する目的で、ピン5とピン6とを短絡させる(即ち、ピンの
図303dに関連して見られるように、ピン5とピン6とは検出短絡状態にある)。
【0035】
終端抵抗リレー314bは、終端抵抗ブロック316bによって終端抵抗340bが設けられるように、通常閉のモード(即ち、オフ状態)にすることができる。リレー314bは、マイクロコントローラが論理値ローの信号(CAN1_DT1_IN及びCAN1_DT2_IN)を検出回路310b及び312bから受信した際にしか作動せず(即ち、オン状態にされず)、このことは、両コネクタ304b〜306bにケーブルが存在し、コントローラ302bがエンドポイントではないことを示す。両コネクタにケーブルが存在する(検出回路310b〜312bからマイクロコントローラへ伝達される2つの論理値ローの信号を生じさせる)際には、リレー314bが(例えば、マイクロコントローラからのCAN0_Relay信号により)オン状態にされ、終端抵抗340bが除去/作動を停止される。一実施形態では、SKベースのCANバス・コントローラにおいて終端用に用いられる終端抵抗340bを99.8Ωにすることができる。実現に基づいて他の抵抗値を用いることもできる。
【0036】
一実施形態では、(コネクタ304bに関連する)検出回路310bをオプションにすることができる。コントローラは、検出回路310bに関連するコネクタ304b内に第1ケーブルが挿入されることを示すように通知されることができる。コントローラ302bがエンドポイントになるので、コネクタ304bを介して接続された単一ケーブルは、終端抵抗316bを自動的に付加される(リレー314bが不作動状態である際に、316bがデフォルトで付加される)。コネクタ306b内に第2ケーブルが挿入されている例では、対応する検出回路312bが挿入されたケーブルを検出し、リレー314bを作動させて終端抵抗316bを除去することができる(この場合、コントローラ302bはエンドポイントではなくなる)。以上で説明したように、終端抵抗リレーはデフォルトでオフ(閉)状態であり、コントローラ302b内では終端抵抗340bが作動状態である。デフォルトで終端を通常閉/接続状態にすることによって、電源を失った、及び/または機能停止したコントローラ・ボード上に終端抵抗が存在する。コントローラがエンドポイントである例では、終端抵抗が作動状態であるので、CANバス通信が通常通りに機能し続ける。コントローラがエンドポイントでない例でも、コントローラが、ネットワーク内のボードの量、ケーブル長、及びシステム内の他の故障のようなパラメータに応じた種々の能力(0%から100%まで)で動作することを可能にすることができる。
【0037】
本発明の一実施形態によれば、EMI(electromagnetic interference:電磁波妨害)性能を改善するために、CANバスのSKベースのケーブル検出をCANバス通信から分離することができる。
図3Bを参照すれば、トランシーバ308bのバス側(通信側)が論理回路(マイクロコントローラ)側から分離された接地を有する。分離された接地(GND_CAN1で参照する)は、通信バス(CANバス)の側のみに電気接続されている。マイクロコントローラ及び残りの回路は、GND_CAN1から分離された接地(GNDで示す)上で機能する。このことは、回路検出を通信バスの接地から分離することを可能にし、マイクロコントローラがバス状態にかかわらず検出を実行することを可能にする。接続が存在するか否かをマイクロコントローラが検出するために、バスが動作状態である必要がないことが有用であり得る。接続が存在し、バス上に通信が存在しない例でも、マイクロコントローラは、エラーが存在することをユーザ/技術者に通知するための診断機能を有効にすることができる。上記リレー、トランシーバ、及び回路ボードにあり得る他の構成要素(例えば光カプラ)を用いて、上述した2つの接地の分離を行うことができる。
【0038】
(例えば、検出回路310b〜312bによる)SKベースのケーブル検出を用いることによって、CANバス・ネットワーク内のネットワーク・エンドポイントを、(接続ケーブルの挿入/除去時に)自動的に認識することができ、これに応じて終端抵抗を動的に設定して、通信線路に沿った反射を参照にしつつ、高速通信かつ複数ノード用のシステムを最大にすることができる。SKベースの自己終端エンドポイント(例えば、コントローラ302b)は、分離された回路に頼って、プロセッサの/ボードの電源(回路接地)からの分離を維持しつつ、CANバス通信に終端を入れることができる。この関係では、(以上で説明したように)2つの電源システムを使用し、1つは通信用であり、1つはボード機能用である。
【0039】
図3Cは検出回路の追加的な具体例を示し、この検出回路はSKベースのコントローラにおいて用いることができる。
図3B〜3Cを参照すれば、検出回路310b及び312bは、コネクタ304b及び306bに接続されたケーブルが存在しない際には、プルアップ抵抗器330b及び331bを用いてハイの論理信号を発生し、(以上で説明したように)接続ピンの短絡によりケーブルが検出された際には、能動的なローの論理信号を発生する。
図3Cは他の種類の検出回路を例示し、この検出回路は、検出回路310b及び312bの代案の実現として用いることができる。
【0040】
より具体的には、コネクタ304bまたは306bのコネクタピンのうちの2つ(例えば、ピンX及びY)の間の短絡が能動的なハイの論理信号を生じさせる場合に、検出回路302cを用いることができる。従って、上記マイクロコントローラは、能動的なハイの論理信号を1つしか検出しない際には終端抵抗をコントローラ302b上に保持することができ、あるいは、検出回路310b及び312bから2つのハイの論理信号が伝達される際には、終端抵抗を除去することができる。本明細書中に用いる「VCC」とは、論理値ハイの電圧(代表的にはDC3.3VまたはDC5V)の指標である。
【0041】
コネクタのピンXとYとの間の短絡を検出した際に(即ち、ケーブルがコネクタ内に挿入され、ピンXとYとの間の短絡をトリガした際に)、回路304Cを用いて能動的なアナログ信号を発生することができる。能動的なアナログ信号の発生を例示するために、3つのテストポイント(TP:test point)を
図3中にTP1、TP2、及びTP3のように例示する。抵抗器R1及びR2は、ピンXとピンYとの間に短絡が存在する際に、TP1及びTP2の所に抵抗分圧回路網を生成する。この条件中にTP1及びTP2に生じる電圧は;(VCC×R2)/(R2+R1)である。R1=R2であれば、生じる電圧はVCCの1/2である。この場合、マイクロコントローラへの入力は(デジタル入力ではなく)アナログ入力であり、この入力はある範囲内(例えば、接地とVCCとの間)で電圧を区別することができる。
【0042】
具体例で説明するために、VCC=DC5VかつR1=R2の各々が10kΩであるものと仮定する。TP1及びTP3における電圧は(通常はR1のプルアップの性質により)およそDC5Vに等しい。ピンXとピンYとの間に短絡が存在する際には、R2が回路内に導入されて、TP1とTP2との間に抵抗分圧器を生成する。この状況における電圧は、およそDC2.5VをTP1、TP2、及びTP3に生じさせる。マイクロコントローラのアナログ入力は、TP3において検出された時点に基づいて次の状態/論理値を有するようにすることができる:
【0043】
TP3における電圧が>DC4.5V、従って、ピンXとYとは短絡されていない(コネクタにCANバス・ケーブルが存在しない);
【0044】
TP3における電圧が<DC4.5Vであるが>DC3.5V、従ってエラーを示すことができる;
【0045】
TP3における電圧がDC1.5V〜DC3.5V、従ってピンXとYとが短絡されている(XANバス・ケーブルが接続されていることを示す);及び、
【0046】
TP3における電圧が<DC1.5V、従って、エラーを示すことができる。
【0047】
図3Dに、終端抵抗制御ブロックの具体例を例示し、この終端抵抗制御ブロックはSKベースのコントローラにおいて用いることができる。
図3Bは終端抵抗リレー回路314bを用いているにせよ、他の種類の終端抵抗追加/除去制御回路を用いることもできる。例えば、
図3Dは他の2種類の終端抵抗制御回路を例示する。より具体的には、終端抵抗制御回路302dは、(例えば、トランジスタ306dによる)トランジスタ制御回路を用いて終端抵抗を制御する。終端抵抗制御回路304dは、(例えば、半導体リレー308dによる)半導体リレー制御回路を用いて終端抵抗を制御する。
【0048】
動的なマルチモード動作
図3Eは、本発明の一実施形態による、マルチ(多重)モードの自己終端抵抗を有するSKベースのCANバス・コントローラのブロック図である。
図3Eを参照すれば、コントローラ302eは、DSP(またはマイクロコントローラ)304e、トランシーバ306e、コネクタ308e、及びマルチモードの終端抵抗モジュール309eを含むことができる。コントローラ302eは単一のコネクタ308eを有するように例示しているにせよ、一部の実施形態では、2つ以上のコネクタをコントローラ302e用に用いることができる。
【0049】
マルチモードの終端抵抗モジュール309eは、リレー310e、1つ以上の検出回路317e、及び終端抵抗312eを含むことができる。検出回路を用いる例では、1つの検出回路を低速検出(例えば、接続されたSJコントローラの検出)用に用いることができ、他の検出回路を高速検出(例えば、接続されたSKコントローラの検出)用に用いることができる。本発明の一実施形態によれば、マルチモードの終端抵抗モジュール309e内の検出回路317eを、コントローラ302eがSJベースのCANバス・コントローラまたはSKベースのCANバス・コントローラに接続されていることを認識/判定するように構成することができる。この関係では、コネクタ308eがSJベースのCANバス・コントローラに接続されている場合、マルチモードの終端抵抗モジュール309eは、SJベースのCANバス・コントローラへの接続を検出することができ、そしてSJベースの終端抵抗316eを作動させ、これによりコントローラ302eをSJベースのCANバス・ノードとして動的に再構成することができる。同様に、コネクタ308eがSKベースのCANバス・コントローラに接続されている場合、マルチモードの終端抵抗モジュール309eは、SKベースのバス・コントローラへの接続を検出することができ、そして、SKベースの終端抵抗314eを作動させ、これによりコントローラ302eをSKベースのCANバス・ノードとして動的に再構成することができる。
【0050】
検出回路317eは、低速ケーブル検出(例えば、SJコントローラの検出)及び高速ケーブル検出(例えば、SKコントローラの検出)のような1種類以上の検出を実行するように構成することができる。ケーブル検出中には、検出回路317eは、コネクタ308eにケーブルが接続されているか否かを検出することができる。例えば、検出回路317cは、コネクタピンのうちの2つの間の短絡を検出して、コネクタ308eにケーブルが接続されていることを検出することができる。SJベースの検出中には、検出回路317eは、ケーブル検出の短絡用に用いるピンとは異なるピン間の短絡を検出することができる。
【0051】
図4Fは、ハイブリッド・コネクタケーブルの例の図であり、このハイブリッド・コネクタケーブルは、SKベースのCANバス・コントローラとSJベースのCANバス・コントローラとを接続するために用いることができる。
図4Fに見られるように、コネクタケーブルは、一方の面上はRJ50(10ピン)コネクタとすることができ、他方の面上はRJ12(6ピン)コネクタとすることができる。6ピン接続を用いてSJベースのCANバス・コントローラに接続することができ、10ピン・コネクタを用いてSKベースのCANバス・コントローラに接続することができる。
図4Fは、10ピン・コネクタにおける異なる2対の短絡されたピンも示す。第1の短絡された一対のピンは、ピン5と6との間の接続を含み、この接続を用いてケーブルを検出する。第2の短絡された一対のピンは、ピン4と7との間の接続を含み、この接続を用いてSJベースのCANバス・コントローラを検出する。コネクタケーブル400fは10ピンのRJ50−6ピンのRJ12コネクタケーブルとして例示しているが、異なるピン数及びピン構成を有する他の種類のコネクタも同様に用いることができる。例えば、第1の種類のコネクタをケーブルの一方の端上に用いてSJボードに接続し、第2の種類のコネクタをケーブルの他方の端上に用いてSKコントローラに接続する。
【0052】
再び
図3Eを参照すれば、検出回路317eは、ピン5と6との検出短絡に基づいて、コネクタ308eにおいてケーブルが検出されたことを検出することができる。SJベースの検出(例えば、ピン4及び7の検出)が存在しない場合、ノードがSKベースのCANバス・エンドポイントであるのでSKベースの終端抵抗314eを作動させる。ピン5−6間並びにピン4−7間に短絡を検出した場合、ノード302eはSJベースのCANバス・エンドポイントであるので、SJベースの終端抵抗のみを作動させる。ハイブリッド・ケーブル400f(
図4F)を用いて、SKベースのコネクタ(例えば、308e)を、(例えば、SJベースのRJ12コネクタを有する)SJベースのコントローラ・ボードに接続することができる。
図4Fに見られるように、ケーブル400fの左面は10ピン・コネクタを用い、ケーブル400fの右面は6ピン・コネクタを用いている。10ピン・コネクタ用の具体的なピン接続短絡、及びケーブル400fの左面にある10ピンをケーブル400fの右面にある6ピンに接続する方法は、ピンの
図402fに例示する。
【0053】
本発明の一実施形態によれば、コントローラ302eはSKベースの終端抵抗をデフォルトとすることができる(例えば、抵抗314eがデフォルトで存在/作動する)。この場合、検出回路317eを用いてSJベースのコントローラを検出することができ、SJベースのコントローラの検出時に、高速用(SKベース)の終端抵抗314eを除去して、低速用(SJベース)び終端抵抗316eを追加することができる。
【0054】
この関係では、上述したマルチモードの終端抵抗モジュール309eの機能は、(例えば、SKベースのCANバス・コントローラを用いる)新型製品と(例えば、SJベースのCANバス・コントローラを用いる)旧型製品との間の互換性を提供し、このことは、顧客が1つまたは少数のモジュールだけを既存の歯科医療機器ネットワークに対してアップグレードまたは追加する際に、顧客が全モジュールを置き換える必要がないことを意味する。また、このことは、歯科医療機器の製造業者が、SKベースのCANバス・コントローラを含めるために、費用をかけて全モジュールを更新する必要がないことも意味する。
【0055】
マルチSKベースのネットワークシステム
図3Gは、本発明の一実施形態による、自己終端抵抗を付加するために用いられる複数のコネクタ及び対応する検出回路を有するSKベースのCANバス・コントローラの他の例のブロック図である。
図3Gを参照すれば、SKベースのCANバス・コントローラ302gは、2組のコネクタ(308g/310g及び322g/324g)に結合されたマイクロコントローラ304gを含むことができる。第1組のコネクタ(308g/310g)は、トランシーバ306g、リレー回路312g、終端抵抗318g、及び検出回路316g〜318gに結合されている。。第2組のコネクタ(322g/324g)は、トランシーバ320g、リレー回路326g、終端抵抗328g、及び検出回路330g〜332gに結合されている。これらの検出回路、リレー回路、及び終端抵抗は、同様のモジュールについては、本明細書において上述した機能と同様である。コネクタ308g、310g、322g、及び324gはRJ50コネクタとして例示しているにせよ、他の種類のコネクタも同様に用いることができる(例えば、通信ブリッジを有するハイブリッド低速/高速CANバス・コントローラを、
図4Bを参照して例示する)。
【0056】
本発明の一実施形態によれば、マルチコネクタ/マルチトランシーバ302gは、複数のSKベースのCANバス・ネットワークを有するSKベースのCANバス・システムにおいて用いることができる。複数のネットワークの利用は、本明細書中で説明した有能な検出及び自己終端エンドポイントの機能を維持しつつ、各回路ボード上のより多数の接続点を可能にする。複数のネットワークの存在(例えば、1つのSKベースのCANバス・ネットワークをコネクタ308g/310gに結合することができ、他のネットワークを、コネクタ322g/324gに結合することができる)は、より単純な配線及びよりフレキシブルな集積を可能にする。複数のネットワークの存在は、回路ボードが1つ、2つ、または任意数の接続部を含むことを可能にして、歯科医療機器をケーブルによって分岐構成の形に物理的に接続することを可能にする。この方法の追加的な利益は、1つのネットワークが機能不全な場合に、残りのネットワークが機能し続けることができることにある。また、(マルチコネクタのコントローラ・ボード302gのような)ボードによって3つ以上の接続部でリンクされた複数のネットワークは、(各個別のネットワーク上のノードの数は制限され得るにせよ)複数のノードを接続する複数のネットワークを可能にする。
【0057】
図4Aは、本発明の一実施形態による、分岐構成の形に接続されたSJベースのハイブリッドCANバス・コントローラ、SKベースのハイブリッドCANバス・コントローラ、及びハイブリッドCANバス・コントローラを用いたハイブリッド歯科医療機器の図である。
図4Aを参照すれば、ハイブリッド歯科医療機器ネットワーク400aは、SKベースのCANバス・コントローラ(例えば、414a〜416a)、SJベースのCANバス・コントローラ(例えば、402a〜406a)、及びハイブリッドCANバス・コントローラ(例えば、408a〜412a)を含む分岐ネットワークである。SJベースのCANバス・コントローラはRJ12コネクタを使用し、SKベースのCANバス・コントローラは、(他のSKベースのコントローラへの接続用の)1つ以上のRJ50コネクタ、及び/または(SJベースのCANバス・コントローラへの接続用の)1つ以上のRJ12コネクタを使用する。例えば、ハイブリッドCANバス・コントローラ410aは、4つのSKベースのコネクタ及び2つのSJベースのコネクタを含む。SKベースのコネクタは、他のSKベースのCANバス・コントローラへの(例えば、302fのようなコネクタケーブルを用いた)接続用に用いることができる。一実施形態では、単一コネクタのSKベースのCANバス・コントローラ(例えば414a)を、400fのようなハイブリッド接続ケーブルを用いてSJベースのCANバス・コントローラ(例えば406a)に接続することができる(
図4Aは412aに接続された414aを例示するが、その代わりに、414aを406aに接続することができ、可能な接続を点線で例示する)。ハイブリッド・コントローラ(例えば410a)がSKベースのコネクタ(例えばRJ50)及びSJベースのコネクタ(例えばRJ12)を共に有する例では(各組のコネクタは別個のトランシーバを有する)、こうしたコントローラを(RJ12−RJ12接続ケーブルを用いて)他のSJベースのコントローラに結合することができ、あるいは、(例えば、ケーブル検出を可能にするための短絡されたピンを有する302fの接続ケーブルを用いて)他のSKベースのコントローラに接続することができる。
【0058】
通信ブリッジ
図4Bは、本発明の一実施形態による、SKベースのネットワークとSJベースのネットワークとの間の通信を実行するための終端抵抗及び通信ブリッジを有するハイブリッドCANバス・コントローラの例のブロック図である。
図4Bを参照すれば、ハイブリッドCANバス・コントローラ02bは、マイクロコントローラ404b、トランシーバ408bに結合されたSKベースのコネクタ410b(例えばRJ50)、及び終端抵抗414bを含む。CANバス・コントローラは、トランシーバ408bに結合されたSJベースのコネクタ(例えばRJ12)、及び終端抵抗424bも含む。
【0059】
図4Bに見られるように、単一のSKベースのコネクタ(例えば410b)を用いる例では、終端抵抗414bが常に作動しているのでリレーを必要としない(単一のSKベースのコネクタを使用するので、トランシーバ408bを用いるSKベースのCANバス・コントローラ402bはエンドポイントとして用いられる)。これに加えて、トランシーバ416bに関連するSJベースのCANバス・コネクタ(418b,...,420b)の各々は抵抗424bによって終端させることができ、このこともリレーの使用を必要としない。この関係では、2つ以上のSKベースのコネクタを所定のコントローラ内のSKベースのCANバス用に用いる例では、リレーモジュール及び対応する検出回路を随意的に用いることができる。
【0060】
本発明の一実施形態によれば、マイクロコントローラ404bは、ブリッジ406bを用いたブリッジ接続機能を提供することができる。ブリッジ406bは、適切な回路、インタフェース、ロジック及び/またはコードを具えることができ、そして(例えば、SJベースのコネクタのうちの1つ以上及びトランシーバ416b経由で受信した)SJベースの通信のデータ転送を、(例えば、トランシーバ408b及びコネクタ410b経由で)SKベースのバス上に広く伝えるするように実行し、その逆も実行するように構成することができる。ブリッジ406bによって提供されるブリッジ接続機能は、SJベースの装置(例えば、SJベースのコネクタ418b〜420bに結合された装置)とSKベースの装置(例えば、SKベースのコネクタ410bに結合された装置)との相互運用性を可能にする。
【0061】
ブリッジ406bに関連する1つ以上のブリッジ接続機能は、(SJベースのコネクタ418b〜420bを介してコントローラ402bに結合されたSJベースのCANバス・ネットワークに関連する)SJベースのドライバ(駆動回路)430b、及び(SKベースのコネクタ410bを介してコントローラ402bに結合されたSKベースのCANバス・ネットワークに関連する)SKベースのドライバ432bによって提供することができる。本発明の一実施形態によれば、ブリッジ406b、SJベースのドライバ430b、及びSKベースのドライバ432bは、上記マイクロコントローラ上に、ファームウェアまたは他の種類のソフトウェアとして、本明細書に記載するCANバス・ネットワークのうちの1つ以上において使用される通信プロトコルの一部分として実現することができる。例えば、ブリッジ406bは、(トランシーバ416bによって受信した)SJベースのCANバス・メッセージ及び関連するプロトコル・ロジックを、トランシーバ408bを介した通信用の等価なSKベースの通信信号に翻訳し、その逆の翻訳も行う役割を担うことができる。SKベースのドライバ432b及びSJベースのドライバ430bは、すべてのブリッジ接続信号(例えば、トランシーバ416から受信してブリッジ406bによって翻訳した信号)、並びにコントローラ402bの1つ以上の構成要素上で実行中の内部ソフトウェアをサポートするために必要な他の信号を受信することができる。
【0062】
ブリッジ406bによって実行されるブリッジ接続機能は、例えば通信プロトコル翻訳を含むことができる。ブリッジ406bによって実行される翻訳プロセスは、1つ以上のSJベースのCANバス・メッセージを(トランシーバ416b経由で)受信すること、これらのメッセージを解釈して意図した動作を生成すること、及びこの動作を、トランシーバ408b経由で伝達することができる対応するSKベースのCANバス・メッセージに翻訳することを含むことができる。同様な翻訳プロセスは、少なくとも1つのSKベースのCANバス・メッセージをトランシーバ408から受信し、対応するメッセージをブリッジ406bによって生成してトランシーバ416b経由で伝達する際に生じる。以下はメッセージ翻訳の例であり、ブリッジ406bによって実行することができる。この例では、SJベースのタッチパッドで歯科用ライトの状態をオン状態からオフ状態へ変更するためのメッセージを、ブリッジによって受信し翻訳して、このメッセージを実行するSKベースの歯科用ライトへ送信する。
【0064】
マルチコネクタCANバス・コントローラの例
図4Cは、本発明の一実施形態による、SJベースのCANバス・ネットワークとSKベースのCANバス・ネットワークとの間で通信を実行するための自己終端抵抗及び通信ブリッジを有するハイブリッドCANバス・コントローラの他の例のブロック図である。
図4Cを参照すれば、ハイブリッドCANバス・コントローラ402cは、コントローラ402cが複数のSKベースのコネクタ(例えば、RJ50コネクタ401c〜412c)を含むことを除いた多くの点で、ハイブリッドCANバス・コントローラ(
図4B)と同様である。より具体的には、ハイブリッドCANバス・コントローラ402cは、マイクロコントローラ404c、トランシーバ408cに結合されたSKベースのコネクタ410c〜412c(例えばRJ50)、リレー418c、終端抵抗420c、及び検出回路414c、416cを含む。CANバス・コントローラ402cは、トランシーバ422c及び終端抵抗430cに結合された1つ以上のSJベースのコネクタ(例えばRJ12)424c〜426cも含む。終端抵抗430cを用いて、1つ以上のSJベースのコネクタ424c〜426cに関連するトランシーバ422cを終端させる(
図4Cでは、コネクタ426はオプションであることを示すために破線で図示している)。マイクロコントローラ404cはブリッジ406cを含むこともでき、ブリッジ406cはブリッジ406b(
図4B)と同様の機能を有することができる。
【0065】
図4Dは、本発明の一実施形態による、別個のマイクロコントローラに結合された終端抵抗及び複数のSKベース及びSJベースのコネクタを有するハイブリッドCANバス・コントローラの例のブロック図である。
図4Dを参照すれば、SKベースのCANバス・コントローラ402dは、マイクロコントローラ406d、トランシーバ406dに結合された第1組のSKベースのコネクタ408d〜410d(例えばRJ50)、リレー416d、終端抵抗418d、及び検出回路412d〜414dを含む。コントローラ402dは、トランシーバ420dに結合された第2組のSKベースのコネクタ422d〜424d(例えばRJ50)、リレー430d、終端抵抗432d、及び検出回路426d〜428dも含む。
【0066】
本発明の一実施形態によれば、コントローラ402dは追加的なトランシーバ440dを具えることもでき、このトランシーバは、RJ12コネクタ444d〜448dのような1つ以上のSJベースのCANバス・コネクタに関連する。これに加えて、マイクロコントローラ404dは(例えば406cと同様な)ブリッジを含むことができ、このブリッジは、少なくとも1つのSJベースのCANバス(例えば、SJベースのコネクタ444d〜448dのいずれかとの間の通信)と少なくとも1つのSKベースのCANバス(例えば、SKベースのコネクタ408d〜410d及び420d〜424dとの間の通信)との間の通信を「翻訳」するために用いることができる。
【0067】
さらに他の実施形態では、コントローラ402dが第2のマイクロコントローラ450dを含むことができ、第2のマイクロコントローラ450dは、SJベースのトランシーバ440dに結合することができ、そして、SJベースのコネクタ444d〜448dのうちの少なくとも1つを介してコントローラ402dに結合された1つ以上の他のCANバス装置との間のSJベースのCANバス通信を処理するために用いることができる。第2の(専用)マイクロコントローラ450dを用いてSJベースの通信を処理する例では、ブリッジをマイクロコントローラ404dまたは450d内に配置することができる。マイクロコントローラ404dと450dとは、これら2者の間で情報を共有するために、通信リンク403d(有線及び/または無線接続)を介して接続されている。この関係では、404d及び450d内に通信ブリッジが存在して、マイクロコントローラ404dと450dとの間の通信を処理することができる。図示していないが、第2のマイクロコントローラを代わりに他のSKベースのトランシーバに結合して、1つ以上のSKベースのコネクタを介してコントローラ402dに結合された1つ以上の他のCANバス装置との間のSKベースのCANバス通信を処理する方法を想像することは容易である。
【0068】
図4Eは、ハイブリッド・コネクタケーブルを用いてSJベースのCANバス・コントローラに結合されたSKベースのCANバス・コントローラのブロック図である。
図4Fは、
図4Eに関連して用いることができるハイブリッド・コネクタケーブルの例の図である。
図4Eを参照すれば、SKベースのCANバス・コントローラ402eは、マイクロコントローラ406e、トランシーバ408e、及びSKベースのコネクタ410eを含むことができる。SJベースのCANバス・コントローラ404eは、マイクロコントローラ412e、トランシーバ414e、及びSJベースのCANバス・コネクタ416eを含むことができる。終端抵抗409e及び415eは、それぞれトランシーバ408e及び414eに関連することができる。本明細書において上述したように、これらのコントローラは、検出回路のような追加的なモジュールを含むこともできる。SKベースのコントローラ402eは、マルチモード終端抵抗モジュール309cを用いて、
図3Eのコントローラ302eと同じにすることができる。この関係では、ハイブリッド・コネクタケーブル400f(
図4F)を用いて、このSKベースのコントローラをSJベースのコントローラ404eに接続して、(例えば、本明細書において以上で説明したように、ピン5/6間及びピン4/7間の接続短絡を用いて)SJベースの終端抵抗を自動的に提供することができる。
【0069】
ハイブリッド・ケーブル接続を用いた処理の流れの例
図5は、本発明の一実施形態による、ハイブリッドCANバス・コントローラ用のエンドポイント検出及び自動的な自己終端の方法の流れ図の例である。
図3A及び5を参照すれば、方法の例は、何らかのSJベースの検出が(例えば、ケーブル400fを介してSKベースの(HS:high speed(高速))コネクタに結合された少なくとも1つのSJベースのコントローラの)コネクタ306a及び308aに存在するか否かを判定するステップ501で開始することができる。310a及び/または312aによる(例えば、306a〜308aに接続された1つ以上のケーブルにおけるピン4と7との間の短絡を検出することによる)SJベースの検出が存在する場合、ステップ502において、306a〜308aにおけるケーブル接続に関連するSJベースの(LS:low speed(低速))検出の数を判定する。
【0070】
2つのLS検出を検出した場合、ステップ506において、(例えば、コネクタケーブルのピン5と6との間の短絡を検出することによって)306a〜308aにおけるケーブルの数を判定する。0本または1本のケーブルを検出した場合、(ステップ507において)エラーを報告して、ステップ508においてLS(低速用)終端を作動させて処理を再開する。
【0071】
一実施形態では、コントローラ301(
図3A)が、309e(
図3E)のようなマルチモード終端抵抗モジュールを含むことができる。ステップ506において2本のケーブルを検出した場合(即ち、上記コントローラが、HSコネクタ306a〜308aを介し、かつ400fのようなハイブリッド・ケーブルを用いて2つのLSコントローラに結合されている場合)、ステップ508に処理を進めて、LS終端抵抗(例えば、
図3Eの316e)をオン状態にし(即ち、リレー310eをオン状態にすることによって終端抵抗を追加し)、HS終端リレーもオン状態にする(HS終端抵抗314eを除去する)。単一のリレー(例えば310e)を用いて、追加/除去機能を同時に実行することができる(例えば、HS終端抵抗を除去することにより、LS終端抵抗が自動的に追加される)。ステップ509においてLS通信を開始することができる。ステップ510において、CANバス通信が存在するか否かを判定する。存在する場合、ステップ512でプロセスを終了し、存在しない場合、ステップ511においてエラーを報告し、(LS終端を除去した後に)ステップ517においてHS通信処理の試行を開始することができる。
【0072】
ステップ502において1つのLS接続を検出した場合、ステップ503においてケーブル検出の数を判定することができる。0本のケーブルを検出した場合、ステップ504においてエラーを報告して、ステップ508におけるLS終端で処理を再開する。2本のケーブルを検出した場合、ステップ505においてエラーを報告して、ステップ508におけるLS終端で処理を再開する。ステップ503において1本のケーブルを検出した場合、ステップ508におけるLS終端で処理を再開する。
【0073】
ステップ501においてLS接続を検出しない場合、ステップ513において、(例えば、SKベースのコネクタのピン5と6との間の短絡を検出することによって)検出したケーブルの数を判定する。ステップ513において1本のケーブルを検出した場合、ステップ517に処理を進めて、(HS終端抵抗を付加して)HS通信を開始することができる。ステップ519において、CANバス通信が行われているか否かを判定する。通信が存在しない場合、ステップ520においてエラーを報告して、ステップ518に処理を進めることができる。CANバス通信を検出した場合、ステップ521において診断を実行することができる。診断が合格の場合、ステップ523で処理を終了する。診断が不合格の場合、ステップ522においてエラーを報告して、ステップ523で処理を終了する。
【0074】
ステップ513において2本のケーブルを検出した場合、ステップ518において、HS終端リレー(例えば416dまたは430d)をオン状態にする(これにより、HS終端抵抗を除去する)。ステップ524においてHS通信を開始することができる。ステップ525において、CANバス通信が存在するか否かを判定する。CANバス通信が存在しない場合、ステップ526においてエラーを報告し、HS終端リレーをオフ状態にしてステップ517に処理を進める。CANバス通信が存在する場合、ステップ527において診断を実行する。診断が合格の場合、ステップ529で処理を終了する。診断が不合格の場合、ステップ528においてエラーを報告して、ステップ529で処理を終了する。
【0075】
ステップ513においてケーブルを検出しない場合、(ステップ514において)何らかの通信が存在するか否かを判定する。何らかの通信を検出した場合、ステップ516においてエラーを報告して、ステップ529で処理を終了する。ステップ514において通信を検出しない場合、HSデータ指示器(例えばLED:light emitting diode:発光ダイオード)をオフ状態にすることができる。
【0076】
通信プロトコル
通信プロトコルが取り組む挑戦の一般的概説
一実施形態では、(例えば、
図2または
図4に例示するような)CANバス装置ネットワークは、非決定性の装置トポロジを生じさせるミックス・アンド・マッチ製品戦略に基づくことができる。通信ネットワーク上に何らかの装置が存在する保証はないので、マスター−スレーブ型通信プロトコルは、CANバス装置ネットワークでは実現可能でない。ネットワーク上の装置毎にデータ要求が異なり得るし、CANバス・ネットワーク内で通信されるデータの種類は、設置された装置の集合(即ち、歯科用椅子、歯科用ライト、医療用装置、ユーザインタフェース、等)に依存する。従って、CANバス通信プロトコルは、非決定性の(そして場合によっては動的な)一組のネットワーク化された装置間の任意データの交換をサポートする。
【0077】
一実施形態では、CANバス通信ネットワーク内の装置間で交換されるデータが、送信されるデータの種類に基づいて、次の3つのカテゴリ:即ちユニキャスト、マルチキャスト、及びブロードキャストのうちの1つに該当する。ユニキャスト(1対1の)通信は、例えば、ソフトウェア更新動作中に必要になる。一部のネットワークでは、同じネットワークに接続された特定装置の2つ以上の例が存在し得る。ロバスト(頑健、堅固)な再プログラミング動作を保証するために、上記通信プロトコルは、自律的なプログラミング/ソフトウェア更新機能をサポートすることができ、ここでは接続された装置の各々が別個に更新される。マルチキャスト(1対多の)通信は、同じデータ更新を複数の装置に受信させることによってバス帯域幅を低減するために用いることができる。この場合、データは1回だけ送信し、意図された各受信者は通信メッセージで識別される。最後に、ブロードキャスト(1対全員の)通信は、装置が、受信者を明示的に知らずに(あるいは識別せずに)ネットワーク上にデータを「無差別に」送信する際に用いることができる。この種の通信は、例えば自動発見中に用いることができる。
【0078】
一実施形態では、2つ以上のユーザインタフェースを用意して、CANバス装置ネットワーク内の1つ以上の装置の機能を制御することができる。例えば、歯科用ライトの状態は、ライト自体の上で直接、助手用ユーザインタフェース上のボタンを押すことによって、歯科医のユーザインタフェース上のボタンを押すことによって変化させることができ、あるいは、歯科用椅子が事前にプログラムされた「治療」位置に到達した際に歯科用ライトの状態を自動的に変化させることができる。この関係では、複数の装置が更新データ値を同時に生成する際に、特に処理及び伝送の遅延を考慮すると、データの「競合」状態が存在し得る。従って、上記通信プロトコルは、「同時の」データ更新を衝突防止する機能を含む。
【0079】
一部の旧式的なCANバス・ネットワークの例では、使用する通信プロトコルが、追加される新たな装置毎に修正を必要とすることがある。これに加えて、旧式的なCANバス・ネットワークにおける通信プロトコルは、この旧式的なプロトコルがデータの通信よりもむしろ駆動機能に重点をおく際に、固定的な意味/解釈を有するCANメッセージを用いることができる。しかし、この方法は望ましくないことがある、というのは、装置のアプリケーション・ロジック(機能)とCANバス通信ドライバ(データ交換)との間にソフトウェア内の明確な責任の分離が存在しないからであり、このことは、テストして修正することが困難な密結合のソフトウェア本体を生じさせる。一実施形態では、CANバス通信プロトコルがデータの通信に重点をおくことができ、このことは、機能を実現する手段を、それぞれの装置のアプリケーション・ソフトウェアに委ねる。これに加えて、本明細書に開示するCANバス通信プロトコルは、交換されるメッセージの伝送レイテンシ(待ち時間)を最小にして、他の装置がネットワークに接続された際にもネットワークから切り離された際にも各装置に通知することを可能にする標準化されたプラグ・アンド・プレイ能力をサポートし、ネットワーク化された装置毎に一意的に識別する手段を提供する。この関係では、上記通信プロトコルは、リソースに制約される「ベアメタル(地金)」型装置(例えば、オペレーティングシステムを有さない装置)からコンシューマ(民生)用または特化したオペレーティングシステム(即ち、Windows(登録商標)、Linux(登録商標)、Mac OS(登録商標)、Android(登録商標)、FreeRTOS(登録商標)、VxWorks(登録商標)、等)を実行する装置までに及ぶCANバス・ネットワークに関連して用いることができる。
【0080】
CANバス通信ネットワーク内で送信されるデータ及び実現される機能は、時間と共に変化し得る。例えば、単一のCANバス・ネットワークは、異なる年代の物を有し異なる通信プロトコルをサポートする装置を含むことができる。一実施形態では、本明細書に開示するCANバス通信プロトコルが、時間と共に(意図的にも偶発的にも)変化しないメカニズムを用いて1つ1つのデータのすべてを明確に識別する。これに加えて、本明細書に開示する通信プロトコルは、接続された装置のデータ変更またはデータ/信号要求、及びデータ変更毎の理由付けを伝達する標準化された方法を提供する。
【0081】
CANバス・ネットワークシステム内の装置機能を適切に検証することは挑戦的であり得る。一実施形態では、本明細書に開示するCANバス通信プロトコルは、1つの装置が他の装置によって送信されるあり得るすべてのデータ項目を理解することを可能にする。この能力は、送信されるデータ項目の有効性を検証することには役立たないが、この能力を用いて、装置が送信するべきデータ項目のリストを、この装置が送信することができるデータ項目のリストと比較することによって、検証プロセス全体を簡略化することができる。これら2つのリストを比較する際に見出される不一致は、所定装置用のソフトウェアの設計またはその実現における問題を迅速に強調することができる。例えば、歯科用椅子は電気マイクロモータを設定または制御するデータを決して生成するはずがない。この椅子のソフトウェアがこうしたデータを送信する技術的能力を有さないことを明確に知ることによって、検証プロセスを簡略化することができる。
【0082】
一実施形態では、本明細書に開示するCANバス通信プロトコルを用いて、「データ」帯域幅を同時に最大にすることができ、かつ、任意数の装置が(同一または異なるデータ値を有する)同じデータ項目を「同時に」送信することを可能にすることができる。ネットワーク上の装置が十分な量のデータを受信して、これらの装置が、複数の発生源から生じた多数の(同一な可能性のある)データの塊を適正に再構成しなければならない。
【0083】
一実施形態では、本明細書に開示するCANバス通信プロトコルが、仮定したプライオリティ(優先度)を有する識別子付きのCANバス・メッセージを用いて、複数の装置による同時のメッセージ送信の衝突を防止することができる(例えば、識別子の値が低いほど、プライオリティはより高い)。本明細書中で説明したように(例えば
図4A)、CANバス・ネットワークは分岐トポロジを有することができ、ここではSJベース及びSKベースのコントローラを共に用いて(あるいは、低速及びSKベースのコネクタを有するハイブリッド・コントローラを用いて)1つ以上のCANバス・ネットワークを形成する。各ネットワークの装置トポロジは、システム内の装置の物理的位置によって大きく影響され、このことは、主に特定のプライオリティが混合した低速メッセージから成る1つのネットワーク、及び異なるプライオリティが混合した高速メッセージを有する他のネットワークを生じさせることができる。異なる装置トポロジに起因して、1つのネットワーク上でのデータ項目の重要性は、他のネットワーク上では必ずしも同じ重要性に移行されない。例えば、足踏み制御の作動割合はCANネットワーク上の電気マイクロモータの回転速度を直接制御することができ、位置の最小の変化に迅速に対応するための高プライオリティのメッセージを必要とする。しかし、歯科用椅子を含むネットワークは、椅子の移動をロックするために、精密な位置ではなく足踏み制御が作動している時を知るための低プライオリティのメッセージしか必要としない。この関係では、本明細書に開示するCANバス通信プロトコルは、単一のデータ項目を、同じ装置システム・アーキテクチャ内の異なるCANネットワーク上で、異なるプライオリティ・レベルで送信する能力を提供する。
【0084】
解決策:プラグ・アンド・プレイ;メッセージ・フォーマット
本発明の一実施形態によれば、本明細書に開示するCANバス通信プロトコルは、設定の要求なしに、かつマスター・コントローラを用いることなしに、装置の自己構成能力を実現する。装置は、ネットワークをシャットダウン(電源遮断)することなしに、任意の時点で追加または除去することができる。
【0085】
より具体的には、CANバス・ネットワーク上のすべての装置/コントローラが、識別子の「心拍」メッセージを周期的に(例えば500ミリ秒毎に1回)広く伝える。この「心拍」メッセージは2つの目的を果たす:この心拍メッセージは、装置の存在をネットワーク上の他の装置に通知し、この心拍メッセージは、例えばネットワーク・アドレス(即ち、ニックネーム)及び一意的な装置ID(identification:識別情報)で符号化することができる。一意的な装置IDは、例えば、装置の製造業者ID、装置の型のID、及び装置の通し番号の組合せとすることができる。一意的な装置IDは、製造工程中に装置に恒久的に割り当てることができる。ニックネームは、例えば各装置が任意に選択した5ビットの値とすることができ、そして、その装置がCANバス・ネットワーク上に存在を維持している間に、「心拍」メッセージの規則的な送信により、その装置に関連付けることができる。5ビットのニックネーム値を用いることは、単一のCANバス・ネットワーク上に32個までの装置が同時に存在することをサポートする。異なるビットサイズをニックネーム用に選定することによって、より多数またはより少数の装置を単一のCANバス・ネットワーク上に収容することができる。
【0086】
一実施形態では、ニックネーム値を複数のネットワーク間で共有することができる。2つの装置がたまたま同じニックネームを用いることがあれば、最小の(最低の大きさの)一意的な装置IDを有する装置がそのニックネームを保持することができ、他の装置は今のところ未使用の新たなニックネーム値を選択することができる。これに加えて、ネットワーク上の他の装置は、所定の装置がネットワークから切り離された時点(例えば、所定装置用の「心拍」メッセージをもはや受信しない時点)を検出することができる
【0087】
一実施形態では、一旦、装置のニックネームがネットワーク上で受け入れられると(即ち、ニックネームがかち合う他の装置が存在しないと)、この装置は、当該装置に送信されるべきすべてのデータ項目を識別する一連の申込要求メッセージ(SRM:subscription request message)を広く伝えることができる。例えば、SRMは、当該装置へ送信するための1つ以上の信号を、当該信号が発生、変更、または更新された際にいつでも識別することができる。それ以来、要求された(申し込まれた)1つ1つのデータを生成するあらゆる装置が、こうしたデータ項目を、当該データ項目を申し込んだ装置のすべてに(CANバス上の1つ以上の1つ以上のメッセージを用いて)送信する。
【0088】
図6A〜6Bに、CANバス・コントローラ・ネットワークの通信フレームワーク(枠組み)内で用いることができるメッセージ・フォーマットの例のブロック図を示す。
図6A〜6Bを参照すれば、本明細書に開示するCANバス通信プロトコルはデータ項目を送信するために用いることができ、各データ項目は、ヘッダ・メッセージ(602a)及び0個以上の追加的なマルチ(複数)セグメントのデータ・メッセージ(602b)を用いて送信される。送信されるデータ項目がヘッダ・メッセージ602aの未使用のデータビット内に納まる例では、マルチセグメントのデータメッセージは必要ない。
【0089】
図6Aは、ヘッダ・メッセージ602aのCANメッセージID部分及びCANメッセージ・ペイロード(実体)部分の組成の例、並びに伝達されるメッセージが「心拍」メッセージである際にメッセージ・ペイロードとして用いることができる代案の定義を、より詳細に例示する。
図6Bは、マルチセグメント・データ・メッセージ602bのメッセージID部分及びメッセージ・ペイロード部分の組成をより詳細に例示する。
【0090】
前に説明したように、ネットワーク上の各装置はニックネーム(ネットワーク・アドレス)に関連する。CANメッセージを送信する装置は、その5ビットのニックネーム値を送信者の識別子(ID)としてCANメッセージ識別子(メッセージID)内に埋め込む。すべてのメッセージ内に送信者のIDが存在することは、特に複数の送信者が同じデータ項目についてのメッセージを同時に送信している際に、単一のデータ項目を送信するために必要な複数の個別メッセージを受信者が適正に再構成することを可能にする。また、送信側装置は、意図した各メッセージ受信者のニックネーム値を、ヘッダ・メッセージデータのペイロード部分中の意図した受信者フィールド内に符号化し、受信者フィールド内の各ビットは、可能な(例えば32個の)ニックネーム値のうちの1つにに直接対応させることができる。ユニキャスト(1対1)通信は、ヘッダ・メッセージの受信者フィールド内に1つの受信者しか識別されない際に実現される。マルチキャスト(1対多)通信は、受信者フィールド内に2つ以上の受信者が識別される際に実現される。最後に、ブロードキャスト(1対全員)通信は、「管理」メッセージ(例えば「心拍」メッセージ)を送信する際に暗示され、あるいは、受信者フィールド内の(有効なニックネームに対応しないビットも含めた)全ビットが1にセットされた際に明示的に実現される。
【0091】
同期された精密なタイムベース
本発明の一実施形態によれば、本明細書に開示するCANバス通信プロトコルは、衝突を防止した「同時の」データ更新を、当該更新の精密な時刻に各データ項目をトリガすることによって実行することができる。「現在時刻」の共通の定義を、リアルタイム・クロック(RTC:Real-Time Clock)能力を有する装置からCANバス上に周期的に(例えば、200ミリ秒毎に)広く伝える。複数の装置がRTC能力を有する場合、最小の(最低の大きさの)一意的な装置IDを有する装置がRTCを広く伝え続けることができ、他のすべての装置は、このようにRTCを広く地耐えることを停止することができる。RTC能力を有する装置がない場合、最小の一意的な装置IDを有する装置が所定の初期「現在時刻」を選択し、他のすべての装置はそれに同期する。
【0092】
CANバス装置間の通信の例
図6C〜6Mは、SJベース及び/またはSKベースのの通信フレームワーク内の種々の通信を例示する。
図6Cは、通信ブリッジ機能を有する装置の通信フレームワークの例を示す。
図6Cに見られるように、各装置(A〜N)はCANバス・コントローラとすることができ、1つ以上のソフトウェア・ユニット(例えば、CANバス・コントローラのマイクロコントローラ(またはDSP)上で実行されるソフトウェア)を含むことができる。各コントローラ上の発送フレームワークは、適切な回路、インタフェース、ロジック及び/またはコードを具えることができ、そしてソフトウェア・ユニット間で動作及びデータフローを連係させるために用いることができる。上記通信ブリッジは、適切な回路、インタフェース、ロジック及び/またはコードを具えることができ、そして、複数の発送フレームワークを物理的な通信インタフェースにより互いにリンクするように構成することができる。本発明の一実施形態によれば、
図6Cの装置ネットワーク内で用いられる通信プロトコルは、新たに接続された装置の(例えば、心拍メッセージによる)自動的な発見、及び一意的なネットワーク識別子を作成する能力を可能にすることができる。
【0093】
図6Dは、CANバス・ネットワークにおけるCANバス通信プロトコルを用いた一般的な通信のやり取りを例示する。
図6Dを参照すれば、心拍メッセージが開始されてすべての装置によって周期的に伝えられた後に、申込要求メッセージ(SRM)も各装置によって送信される。SRMは、要求した装置へ送信するための1つ以上の信号を、その信号が発生され、変更され、更新される都度、識別することができる。SRM用のメッセージIDは、心拍メッセージ用に用いられるものと同じにすることができるが、メッセージ・ペイロード中には異なる動作IDを用いることができる。SRMを受信すると、受信側装置は識別された受信者フィールドを検査し、受信側装置に対応するビットがセットされていれば、受信側装置は要求された動作を実行する(即ち、受信側装置が発生することができる情報を、要求した装置に申し出る)。
【0094】
一旦、適切なネットワークを確立すると(即ち、すべての装置が心拍メッセージ及び適切なネットワーク・アドレスを交換すると)、各装置はSRMをネットワーク上のあらゆる新たな装置に送信する(例えば、
図6D中に識別される信号の申込)。特定の装置は、関心のある信号をネットワーク上のあらゆる新たな装置が発生することができるか否かを知らず、従って、この装置はSRMをネットワーク上のすべての新たな装置に送信する。例として、装置Aは歯科用ライトの回路ボードとすることができる。最初は、他のすべての装置(B〜N)はネットワークにとって新たなものであり、従って、歯科用ライトはSRMを他のすべての装置に送信する。後に、例えば超音波除石器のような新たな装置が追加された場合、一旦、除石器が適切なネットワーク・アドレスを有すると、歯科用ライトは超音波除石器のみにSRMを送信する。
【0095】
これに加えて、SRMは、要求した装置にとって関心のある特定のメッセージを識別する。例えば、歯科用ライトからのSRMは、照明設定を変更するコマンド(命令語)、電源のオン/オフ状態を切り換えるコマンド、通常モードから治療安全モードへ変化するコマンド、等のような歯科用ライトにとって関心のある信号を生成するあらゆる装置に申し込むことを要求する。制御ヘッド回路ボードは、タッチスクリーン・インタフェースからの入力を受信して、歯科用ライトにとって関心のある信号を発生し、従って、制御ヘッド回路ボードは、歯科用ライトを、当該制御ヘッド回路ボードが発生する特定信号を申し込む装置のリストに追加し、この特定信号は歯科用ライトにとって関心のある信号である。制御ヘッド回路ボードが発生するが歯科用ヘッドは必要としない他の信号が存在する(これらの信号は、申し込まれる信号である、制御ヘッドから歯科用ライトへの信号のリストに追加されない)。
【0096】
一実施形態では、装置A〜Nの各々が、SRMの記録、即ち、要求した各装置の記録、及び当該要求した装置が申し込んだ信号の種類を記憶する(この信号は受信側装置が発生する)。上記の例では、制御ヘッド回路ボードは、当該制御ヘッド回路ボードが発生することができる各信号を申し込みたいすべての装置の記録を維持する。従って、制御ヘッド回路ボードは、歯科用ライトの照度設定を変更するための信号を当該制御ヘッド回路ボードが発生する時点の記録を維持し、この信号は歯科用ライトへ送信される。
【0097】
図6Eは、心拍メッセージの周期的な通信を例示する。各装置は、心拍メッセージを周期的に、例えば500ミリ秒毎に送信する。心拍メッセージは、各装置がネットワーク上の他の装置の各々を一意的に識別することを可能にする。ある装置の心拍がもはや検出されないと、この装置は「オフライン」状態になり、もはやネットワーク上に存在しないものと仮定する。(上述したように)各装置は一意的な装置IDを有し、このIDは当該装置を製造する際に恒久的に割り当てられる。(上述したように)各装置は一意的なネットワークIDも有し、このネットワークIDは、発見段階中に自己割り当てされ、当該装置が取り付けられた通信ネットワークに関してのみ一意的である。2つ以上の装置が同じ一意的なネットワークIDを選択するような場合、最小の(最低の大きさの)一意的な装置IDを有する装置が、この選定した一意的なネットワークIDを保持し、かち合う装置は、ネットワーク上にまだ観測されていない新たな一意的ネットワークIDを選定しなければならない。
【0098】
図6FはSRMの交換を例示する。
図6Fに見られるように、申込要求メッセージ(SRM)を開始する2つの方法が存在する。各装置は、当該装置が申し込むデフォルトの信号の集合を有するように工場で設定される。これに加えて、同じCANバス・ネットワーク上の他の装置は、1つ以上の補足申込コマンド(SSC:supplemental subscription command)を、申し込み中の装置に送信して、当該装置のデフォルト集合以外の追加的なSRMを発行するように当該装置に指示する。これらの補足的なデフォルト外のSRMは、例えば、先進の、あるいは「ロック解除された」機能を当該申し込み中の装置内で制御する信号を申し込むために用いることができる。一旦、ある装置が安定した心拍メッセージ(例えば、同じ一意的なネットワークIDを有する5つの心拍メッセージ)を生成すると、申込メッセージを送信することによって、この装置との通信を直接開始することができる。SRMは、装置が受信したい信号を識別する。
【0099】
SSCは、所定の装置(装置A)が、他の装置(例えば装置N)内の機能にとって必要な1つ以上の信号を識別する例で用いられる。(装置Nによって有用な)識別される信号は、装置Aまたは他の装置から発生することができる。装置AはSSCを装置Nに送信して、装置Nにとって重要であるか装置Nが用いることができる信号を申し込むように、装置Nに命令することができる。装置Nはそれに応答して、このSSCによって識別される信号を求めるSRMを送信する。各装置は、マッピング(例えば、記憶している記録)を、他のすべての装置のそれぞれのSKベースのドライバ(あるいは当該装置の指定した記憶領域)内、及びそれぞれに対応する申込中に維持することができる。ある装置が信号を内部的に発行する都度、SKベースのドライバはこのマッピングをチェックして、他の装置がこの信号を申し込んでいれば、この装置を見極める。申込が見出された場合、この内部的に発行された信号を申し込んだ装置の各々に転送する。
【0100】
一実施形態では、ソフトウェア開発者が、コンパイル時に、装置が他の装置から受信したい信号(例えば、信号申込のデフォルト集合)を決定する。
【0101】
図6Gに、データフローの例を示す。信号を内部的に発行する各装置は、この信号を申し込んだ他のすべての装置へ、この信号を転送(プッシュ)することもできる。送信側装置は、既に内部的に発行した信号を求める申込を受信すると即座に、最後に発行した信号を新たな申込者(申し込んだ装置)にプッシュし、従って、申込者はデータの最新バージョンを有する。プル要求は、発行者の指定された信号用のプッシュ・メカニズムを手動で起動する。
【0102】
図6Hに、本発明の一実施形態による、再プログラミングのやり取りの例を示す。より具体的には、新たなソフトウェアを装置Aから装置Nにプッシュして、装置Nの1つ以上のソフトウェア・モジュールを再プログラミングすることができる。
【0103】
図6Iに、再プログラミング・セッションを開始するためのメッセージ交換の例を示す。
図6Jに、再プログラミングの準備の例を示す。
図6Kに、装置Nの再プログラミング用の新たなソフトウェアをダウンロードする例を示す。
図6Lに、ソフトウェア・ダウンロード検証のためのメッセージ交換の例を示す。
図6Mに、新たなソフトウェアを実行するためのメッセージ交換の例を示す。
【0104】
方法の例
図7は、本発明の一実施形態による、ケーブル検出及びネットワーク・ノードを自己終端させる方法の例の流れ図である。
図3A及び7を参照すれば、方法の例700は、ネットワーク・ノード内の終端抵抗を動的に切り換える方法を含むことができ、このノードは、利用可能な複数のコネクタのうちの少なくとも1つを介してピア−ツー−ピア・ネットワークの形に接続されている。ステップ702では、検出回路(例えば310a)が、このノード(例えば301)が、複数のコネクタのうちの第1コネクタ(例えば306a)に差し込まれた単一の接続ケーブル(例えば302f)を介してネットワークに結合されている。この検出は、例えば、この単一の接続ケーブル(302f)の短絡された一対のコネクタピン(例えば、ピンの
図303d内に見られるピン5と6)に基づくことができる。ノードが接続ケーブルを介してネットワークに結合されていることを検出する他の方法は、電気機械的スイッチ、コネクタ内に実装された赤外線またはRFID(Radio Frequency Identification:無線IDタグ)機能、磁気、(例えば、遮断されたビームにより可能にされる検出による)光学的検出、等を用いることを含む。ステップ704において、終端抵抗をノード内に追加する(あるいは既に存在すれば保持する)。ステップ706において、ノード(301)が、上記複数のコネクタのうちの少なくとも第2コネクタ(例えば308a)に差し込まれた少なくとも1本の他のケーブルを介してネットワークに結合されていることを検出すると、ノード内の終端抵抗(例えば316a)を除去する(あるいは、既に存在しなければ追加しない)。
【0105】
図8aは、本発明の一実施形態による、異なる通信プロトコルに関連するノード間で通信する方法の例の流れ図である。
図4B及び8を参照すれば、方法の例800は、第1ネットワークと第2ネットワークとの間で情報を交換する動作を含むことができる。ステップ802において、第1通信プロトコルに準拠した第1のメッセージまたはメッセージ集合を、第1トランシーバを介して受信する。例えば、コントローラ402bは、第1メッセージを、SJベースのコネクタ418b及びトランシーバ416bを介して受信することができる。ステップ804において、ブリッジ406bが第1メッセージに関連する意図した動作を特定することができる。ステップ806において、ブリッジ406bが、意図した動作を実行することに関連する第2メッセージを生成する(あるいは、マイクロコントローラ404b、またはコントローラ402bの他の構成要素に生成させる)ことができ、この第2メッセージは第2通信プロトコルに準拠する(例えば、第2メッセージは、SKベースのコネクタ410bに接続されたバスのようなSKベースのCANバスに準拠する)。ステップ808において、生成された第2メッセージを、第2トランシーバ(例えば408b)を介して、第2ネットワーク上の1つ以上の装置(例えば、SKベースのコネクタ410bを介してコントローラ402bに結合された1つ以上の装置)に送信する。
【0106】
コンピュータ環境の例
図9に、説明した実施形態、技法、及び技術を実現することができる適切な環境を一般化した例を示す。コンピュータ環境900は、技術の利用または機能の範囲についての限定を意図するものではない、というのは、これらの技術は汎用または特定目的のコンピュータ環境において様々な形で実現することができるからである。例えば、開示する技術は、ハンドヘルド装置、マルチプロセッサ・システム、プログラマブルなコンシューマ(民生)用電子機器、ネットワークPC(Personal Computer:パーソナル・コンピュータ)、ミニコンピュータ、メインフレーム(大型)コンピュータ、等を含む他のコンピュータシステム構成で実現することができる。開示する技術は、分散型のコンピュータ環境において実施することもでき、こうしたコンピュータ環境では、タスクは、通信ネットワークを通してリンクされたリモート(遠隔)処理装置によって実行される。分散型のコンピュータ環境では、(ブロックベースの命令ブロック用の実行可能な命令を含む)プログラム・モジュールを、ローカル及びリモートなメモリ記憶装置内に配置することができる。
【0107】
図9を参照すれば、コンピュータ環境900は、少なくとも1つの処理装置910及びメモリ920を含む。
図9では、こうした最も基本的な構成930を破線内に含める。ブロックベースの処理装置910は、コンピュータで実行可能な命令を実行し、実在のプロセッサまたは仮想的なプロセッサとすることができる。マルチ処理システムでは、複数の処理装置がコンピュータで実行可能な命令を実行して処理能力を増加させ、このため、複数のプロセッサを同時に動作させることができる。メモリ920は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM(Random Access Memory:ランダムアクセスメモリ))、不揮発性メモリ(例えば、ROM(Read Only Memory:読出し専用メモリ)、EEPROM(Electrically Erasable Programmable ROM:電気的消去可能プログラマブルROM)、フラッシュメモリ、等)、あるいはこれら2者の組合せとすることができる。メモリ920は、ソフトウェア980、画像、音声及び映像を記憶し、これらは、例えば本明細書に記載する技術を実現する。コンピュータ環境は追加的な特徴を有することができる。例えば、コンピュータ環境900は、記憶装置940、1つ以上の入力装置950、1つ以上の出力装置960、及び1つ以上の通信接続部970を含む。バス、コントローラ、またはネットワークのような相互接続メカニズム(図示せず)が、コンピュータ環境900内の構成要素を相互接続する。一般に、オペレーティングシステム・ソフトウェア(図示せず)は、コンピュータ環境900内で実行される他のソフトウェア用の動作環境を提供し、コンピュータ環境900の構成要素の動作を連係させる。
【0108】
記憶装置940は、リムーバブル(着脱可能)または非リムーバブルとすることができ、磁気ディスク、磁気テープ、CD−ROM(Compact Disk ROM:コンパクトディスクROM)、CD−RW(CD-Rewrite:書き変え可能CD)、DVD(Digital Versatile Disk:デジタル多用途ディスク)、あるいは、情報を記憶することができ、かつコンピュータ環境900内でアクセスすることができる他のあらゆる媒体を含む。記憶装置940は、ソフトウェア980用の命令、プラグイン・データ、及びメッセージを記憶し、これらを用いて本明細書に記載する技術を実現することができる。
【0109】
入力装置950は、キーボード、キーパッド、マウス、タッチスクリーン・ディスプレイ、ペン、またはトラックボールのようなタッチ入力装置、音声入力装置、スキャン装置、あるいはコンピュータ環境900への入力を行う他の装置とすることができる。音声については、入力装置950は、音声入力をアナログまたはデジタル形式で受け入れるサウンドカードまたは同様の装置、あるいは音声サンプルをコンピュータ環境900に提供するCD−ROMリーダとすることができる。出力装置960は、ディスプレイ、プリンタ、スピーカ、CD−ライター(CD書込み装置)、あるいはコンピュータ環境900からの出力を提供する他の装置とすることができる。
【0110】
通信接続970は、通信媒体(例えば接続ネットワーク)越しの他のコンピュータ実体への通信を可能にする。この通信媒体は、コンピュータで実行可能な命令、圧縮したグラフィック情報、映像、または他のデータを変調信号の形で搬送する。通信接続970は、有線接続(例えば、CANバス・ネットワーク、メガビットまたはギガビットのイーサネット(登録商標)、インフィニバンド(登録商標)、電気接続または光ファイバ接続によるファイバチャネル)に限定されず、無線技術(例えば、ブルートゥース(登録商標)、WiFi(IEEE802.11a/b/n)、WiMax、セルラ、衛星、レーザ、赤外線を介したRF(Radio Frequency:無線周波数)接続)、及び開示したエージェント、ブリッジ、及びエージェント・データ消費者用のネットワークを提供する他の適切な通信接続も含む。仮想的なホスト環境では、通信接続は仮想ホストが提供する仮想的なネットワーク接続とすることができる。
【0111】
コンピュータ可読媒体は、コンピュータ環境900内でアクセスすることができるあらゆる利用可能な媒体とすることができる。限定ではない一例として、コンピュータ環境900では、コンピュータ可読媒体はメモリ920及び/または記憶装置940を含む。「コンピュータ可読な記憶媒体」とは、メモリ920及び記憶装置940のようなデータ記憶用の媒体を含み、変調データ信号のような伝送媒体を含まないことは、容易に理解されるはずである。
【0112】
開示する技術の追加的な例
ここでは、開示する主題の追加的な例を、上述した例により説明する。
【0113】
一実施形態では、システムが、通信インタフェースを介してピア−ツー−ピア・ネットワークの形に接続された複数のノードを含む。少なくとも1つのノードは、当該少なくとも1つのノード内の終端抵抗を、当該ノードがネットワークのエンドポイントであるか非エンドポイントであるかに基づいて変更する能力を有する。こうした能力を有する少なくとも1つのノードは、トランシーバ、少なくとも2つのコネクタ、及びこのトランシーバに結合された少なくとも1つの終端抵抗モジュールを含む。この少なくとも1つの終端抵抗モジュールは、ノード内の終端抵抗を提供する。このノードは、上記少なくとも2つのコネクタのうちの第1コネクタに結合された第1検出回路、及び上記少なくとも2つのコネクタのうちの第2コネクタに結合された第2検出回路も含む。これらの検出回路は、ノードがピア−ツー−ピア・ネットワーク内の1つ以上の他のノードに結合されていることを検出し、この検出に基づいて終端抵抗を自動的に調整するように構成されている。
【0114】
上記通信バスは、コントローラ・エリア・ネットワーク(CAN)バスとすることができる。上記少なくとも2つのコネクタはRJ50コネクタであり、上記トランシーバはCANトランシーバである。上記ノードは、上記少なくとも1つの終端抵抗モジュールに結合された終端回路をさらに含む。この終端回路は、上記検出に基づいて終端抵抗を追加または除去するように構成されている。上記検出回路は、上記少なくとも2つのコネクタが他のノードのうちの少なくとも2つに結合されていることを検出することによって、上記ノードが非エンドポイントであるものと判定する。上記ノードが非エンドポイントであることを検出すると、当該ノード内の終端抵抗を変更することができる(例えば、この終端抵抗を除去することができ、この終端抵抗にインピーダンスを追加することができ、この終端抵抗を不作動状態にしておくことができ、等である)。上記検出回路は、上記少なくとも2つのコネクタのうちの1つだけが少なくとも1つの他のノードに結合されていることを検出することによって、上記ノードがエンドポイントであるものと判定するように構成されている。ノードがエンドポイントであるものと判定すると、このノード内に終端抵抗を追加するか、存在したままにするか、さもなければ変更する。この終端抵抗は高速用終端抵抗であり、実質的に約99.8Ωに等しい。ノードが他のノードのうちの1つ以上から切り離されている際に、あるいはノードがエンドポイントである際には、この終端抵抗がノード内にデフォルトで存在する(例えば、終端抵抗が追加されるか、既に存在すれば作動している)。
【0115】
上記第1検出回路は、上記第1コネクタが切り離されると、第1の論理値ハイの信号を発生するように構成されている。上記第2検出回路は、上記第2コネクタが切り離されると、第2の論理値ハイの信号を発生するように構成されている。上記第1検出回路は、上記第1コネクタが、当該第1コネクタに差し込まれた第1コネクタケーブルを介して通信バスに接続されると、第1の論理値ローの信号を発生するように構成されている。上記第2検出回路は、上記第2コネクタが、当該第2コネクタに差し込まれた第2コネクタケーブルを介して通信バスに接続されると、第2の論理値ローの信号を発生するように構成されている。上記第1検出回路は、上記第1コネクタケーブル内の少なくとも2つのコネクタピン間の短絡接続を検出すると、第1の論理値ローの信号を発生するように構成されている。上記第2検出回路は、上記第1コネクタケーブル内の少なくとも2つのコネクタピン間の短絡接続を検出すると、第2の論理値ローの信号を発生するように構成されている。上記通信バスは高速CANバスであり、上記ノードは高速CANノードであり、上記第1検出回路は、さらに、第1接続ケーブル内の短絡された第1対のピンに基づいて、上記ノードが第1接続ケーブルを介して少なくとも第2のノードに結合されていることを検出するように構成されている。上記第1検出回路は、さらに、第1接続ケーブル内の短絡された第2対のピンに基づいて、上記少なくとも第2のノードが低速のCANノードであることを検出するように構成され、この第2対は上記第1対と異なる。上記第1検出回路は、さらに、上記少なくとも第2のノードが低速CANバス・ノードであることを検出したことに基づいて、上記終端抵抗を高速用終端抵抗から低速用終端抵抗へ調整するように構成されている。上記高速用終端抵抗はおよそ99.8Ωであり、上記低速用終端抵抗はおよそ330Ωである。
【0116】
一実施形態では、ネットワーク・ノード内の終端抵抗を動的に切り換える方法を開示し、このノードは、利用可能な複数のコネクタのうちの少なくとも1つを介してピア−ツー−ピア・ネットワークの形に接続されている。この方法は、ノードが、上記複数のコネクタのうちの第1コネクタに結合された単一の接続ケーブルを介してネットワークに結合されていることを検出すると、終端抵抗をノード内に追加するステップを含む。この検出は、上記単一の接続ケーブルにより短絡された一対のコネクタピンに基づく。ノードが、上記複数のコネクタのうちの少なくとも第2コネクタに差し込まれた少なくとも1本の他の接続ケーブルを介してネットワークに結合されていることを検出すると、このノード内の終端抵抗を除去する。この方法は、上記第1及び第2コネクタにおける接続ケーブル毎に、少なくとも2つのコネクタピンを検出するステップをさらに含む。接続ケーブル毎に、少なくとも2つのコネクタピンが短絡されていることを検出すると、これら少なくとも2本の接続ケーブルに対応する少なくとも2つの論理信号を発生し、これらの論理信号に基づいて、上記ノード内の終端抵抗を不作動状態にする(あるいは除去し、さもなければ変更する)。
【0117】
一実施形態では、コンピュータ装置(例えば歯科医療機器)が、処理装置、第1通信プロトコルに関連する第1ネットワーク内で動作するように構成された少なくとも第1トランシーバ、及び第2通信プロトコルに関連する第2ネットワーク内で動作するように構成された少なくとも第2トランシーバを含む。第1及び第2トランシーバは処理装置に結合されている。このコンピュータ装置は、第1トランシーバに関連するSKベースの(例えば高速用の)終端抵抗モジュール、及び第2トランシーバに関連するSJベースの(例えば低速用の)終端抵抗モジュールをさらに含む。上記処理装置は、上記第1ネットワークと上記第2ネットワークとの間で情報を交換する動作を実行するように構成されている。この動作は、第1トランシーバを介して、第1通信プロトコルに準拠した第1メッセージを受信することを含む。第1メッセージに関連する意図した動作を特定する。この意図した動作を実行することに関連した第2メッセージを生成し、この第2メッセージは第2通信プロトコルに準拠する。この第2メッセージは、第2トランシーバを介して第2ネットワーク上の1つ以上の装置へ送信される。
【0118】
上記動作は、短絡された第1対のコネクタピンを検出することをさらに含み、短絡された第1対のコネクタピンは、第2トランシーバに関連するコネクタにある。短絡された第1対のピンを検出すると、低速用終端抵抗モジュールを作動させて、第2トランシーバに関連するコネクタに低速用終端抵抗を提供する(例えば、終端抵抗が予め接続されていなければ終端抵抗を追加することができ、終端抵抗が予め接続されていれば、この終端抵抗を存在したままにすることができ、さもなければ変更することができる)。第1トランシーバは第1ネットワークに接続されていないのに対し第2トランシーバは第2ネットワークに接続されていることを検出すると、第1トランシーバに関連する終端抵抗を変更する(例えば、除去することができる、この終端抵抗にインピーダンスを追加することができる、この終端抵抗を不作動状態にしておくことができる、等である)。これらの動作は、短絡された第2対のコネクタピンを検出することをさらに含むことができる。これらの短絡された第2対のピンは、第1トランシーバに関連するコネクタに存在することができる。上記第2対のピン及び上記第1対のピンが短絡されていることを検出すると、高速用終端抵抗モジュールを不作動状態にする(例えば、終端抵抗を変更、除去することができる、終端抵抗にインピーダンスを追加することができる、終端抵抗を不作動状態にしておくことができる、等である)。上記第1ネットワークは高速CANネットワーク(例えば、SKベースのネットワーク)であり、上記第2ネットワークは低速ネットワーク(例えば、SJベースのネットワーク)である。
【0119】
一実施形態では、複数のノードのピア−ツー−ピア・ネットワーク内で情報を通信する方法が、これら複数のノードのうちの第1ノードで、これら複数のノードのうちの第2ノードからの申込要求を受信するステップを含むことができる。この申込要求は、1つ以上の信号が発生、変更、または更新される都度、これらの信号を第1ノードが第2ノードへ送信することを指定することができる。マッピングデータは、この申込要求に基づいて第1ノードが生成する。このマッピングデータは、上記複数のノードのうちの1つ以上の信号申込を識別することができる。このマッピングデータは第1ノードのメモリに記憶される。このマッピングデータは、上記複数のノードのうちの少なくとも第3ノードからの少なくとも他の申込要求の受信時に更新される。この申込要求を受信する前に、上記複数のノードのうちの第2ノードからの心拍メッセージを第1ノードで受信し、この心拍メッセージは、第2ノードを、上記ピア−ツー−ピア・ネットワーク上に接続された装置として識別する。第2の申込要求を、第1ノードが第2ノードへ送信し、この第2の申込要求は、第2ノードが発生することができ、第1ノードが申し込むことを要求している1つ以上の信号を識別する。補足的な申込コマンドを、第1ノードが第2ノードへ送信する。この補足的な申込コマンドは、第2ノードが利用することができ、第1ノードまたは上記複数のノードのうちの他のノードが発生することができる1つ以上の識別される信号を求める申込要求を開始するように第2ノードに命令する。
【0120】
開示する主題の原理を応用することができる多数の可能な実施形態を考慮すれば、例示した実施形態は好適な例に過ぎず、特許請求の範囲をこれらの好適な例に限定するものとして捉えるべきではないことが認められるべきである。むしろ、特許請求する主題の範囲は、以下の特許請求の範囲によって規定される。従って、これらの請求項の範囲内に入るすべてのものを本発明として特許請求する。
【0121】
開示した技術を実現するためのコンピュータで実行可能なあらゆる命令、並びに開示した実施形態の実現中に作成されて使用されるあらゆるデータは、1つ以上のコンピュータ可読の記憶媒体上に記憶することができる。上記のコンピュータで実行可能な命令は、例えば、専用ソフトウェア・アプリケーション、またはウェブ・ブラウザによりアクセスまたはダウンロードされるソフトウェア・アプリケーション、あるいは(リモート・コンピュータ・アプリケーションのような)他のアプリケーションの一部とすることができる。こうしたソフトウェアは、例えば、単一のローカル・コンピュータ(例えば、あらゆる適切な市販のコンピュータ)上で、あるいは、1つ以上のネットワーク・コンピュータを用いたネットワーク環境内で(例えば、インターネット、ワイドエリア・ネットワーク、ローカルエリア・ネットワーク、(クラウド・コンピューティング・ネットワークのような)クライアント−サーバー・ネットワーク)、または他のこうしたネットワーク経由で)実行することができる。
【0122】
明瞭にするために、ソフトウェアベースの実現のうち選択した特定の態様のみを説明した。現在技術において周知である他の細部は省略した。例えば、開示した技術はどの特定のコンピュータ言語またはプログラムにも限定されないことは明らかである。例えば、開示した技術は、C++、Java(登録商標)、Perl(登録商標)、JavaScript(登録商標)、Adobe Flash(登録商標)、または他のあらゆる適切なプログラミング言語によって実現することができる。同様に、開示した技術は、どの特定のコンピュータまたはハードウェアの種類にも限定されない。適切なコンピュータ及びハードウェアの特定の細部は周知であり、本開示では詳細に記載する必要はない。
【0123】
さらに、(例えば、開示した方法のいずれかをコンピュータに実行させるためのコンピュータで実行可能な命令を含む)上記ソフトウェアベースの実施形態のいずれも、適切な通信手段を通してアップロード、ダウンロード、または遠隔的にアクセスすることができる。こうした適切な通信手段は、例えば、インターネット、ワールドワイド・ウェブ、イントラネット、ソフトウェア・アプリケーション、(光ファイバケーブルを含む)ケーブル、磁気通信、(RF、マイクロ波、及び赤外線通信を含む)電磁波通信、電子通信、または他のこうした通信手段を含む。
【0124】
開示した方法、装置、及びシステムは、いかなる形でも限定的なものとして解釈するべきでない。その代わりに、本発明は、開示した種々の実施形態のすべての新規で自明でない特徴及び態様に、単独でも、種々の相互の組合せ及び副次的組合せでも、指向している。開示した方法、装置、及びシステムは、いずれの特定の態様または特徴、あるいはその組合せにも限定されす、開示した実施形態は、1つ以上の特定の特徴のいずれが存在することも、1つ以上の特定の課題のいずれを解決することも要求しない。
【0125】
いずれの例からの技術も、いずれの1つ以上の他の例において説明した技術と組み合わせることができる。開示した技術の原理を応用することができる多数の可能な実施形態を考慮すれば、例示した実施形態は開示した技術の例であり、開示した技術の範囲に対する限定として捉えるべきでないことは、認められるべきである。むしろ、開示した技術の範囲は、以下の特許請求の範囲及び精神によってカバーされるものを含む。