(57)【要約】      （修正有）【課題】ノードデバイスに対して許可されていないメッセージをノードデバイスが送信していると判定する場合、それに応答して、メッセージが第１のＣＡＮバス上に送信されることを防止する。【解決手段】第１のバスインターフェースは、第１のコントローラエリアネットワーク（ＣＡＮ）バスと通信するように結合される。第２のバスインターフェースは、ノードデバイスと通信するように結合され、ノードデバイスは、第２のＣＡＮバスと通信するように構成されている。論理回路は、第１のバスインターフェースと第２のバスインターフェースとの間に結合され、第２のバスインターフェースを介してノードデバイスによる通信を監視するように動作する。【選択図】図１０
2020092417.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
第１のコントローラエリアネットワーク（ｃｏｎｔｒｏｌｌｅｒ  ａｒｅ  ｎｅｔｗｏｒｋ、ＣＡＮ）バスと通信するように結合された第１のバスインターフェースと、
ノードデバイスと通信するように結合された第２のバスインターフェースであって、前記ノードデバイスが、第２のＣＡＮバスと通信するように構成されている、第２のバスインターフェースと、
前記第１のバスインターフェースと前記第２のバスインターフェースとの間に結合された論理回路であって、前記論理回路が、
前記第２のバスインターフェースを介して前記ノードデバイスによる通信を監視するように、
前記ノードデバイスが、前記ノードデバイスに対して許可されていないメッセージを送信していると判定するように、かつ
それに応答して、前記メッセージが前記第１のＣＡＮバス上に送信されることを防止するように、動作可能である、論理回路と、を備える、装置。
【請求項２】
前記メッセージが前記ノードデバイスに対して許可されていないと判定することが、前記メッセージが前記ノードデバイスに対して許可された最大アービトレーション優先度を超えると判定することを含む、請求項１に記載の装置。
【請求項３】
前記メッセージが前記ノードデバイスに対して許可されていないと判定することが、前記メッセージが前記ノードデバイスに対して許可されていないメッセージ識別子フィールドを有すると判定することを含む、請求項１に記載の装置。
【請求項４】
前記論理回路が、
前記ノードデバイスを有効化又は無効化するコマンド、
前記ノードデバイスの動作を記述する統計の要約、及び
前記ノードデバイスに自己試験を実行させるコマンドのうちの少なくとも１つを含む制御メッセージを通信する、請求項１に記載の装置。
【請求項５】
前記論理回路が、前記第１のＣＡＮバスを介して前記制御メッセージを通信する、請求項４に記載の装置。
【請求項６】
前記論理が、前記第１のＣＡＮバス及び前記第２のＣＡＮバスとは独立した通信チャネルを介して前記制御メッセージを通信する、請求項４に記載の装置。
【請求項７】
前記第１のＣＡＮバス及び前記第２のＣＡＮバスが、共通のＣＡＮ規格を利用する、請求項１に記載の装置。
【請求項８】
前記第１のＣＡＮバス及び前記第２のＣＡＮバスが、異なるＣＡＮ規格を利用する、請求項１に記載の装置。
【請求項９】
前記第１のＣＡＮバスがＣＡＮＣｒｙｐｔバスであり、前記第２のＣＡＮバスが暗号化されず、前記論理回路が、更に、
前記メッセージが前記ノードデバイスに対して許可されていると判定するように、
それに応答して、前記ＣＡＮＣｒｙｐｔバス上で複数のメッセージ形式で前記メッセージを暗号化して送信するように、かつ
前記ノードデバイスが前記暗号化中に送信することと、アービトレーションを介して前記第２のＣＡＮバスへの前記ノードデバイスのアクセスを拒否することによって送信することとを防止するように、動作可能である、請求項８に記載の装置。
【請求項１０】
前記論理回路が、更に、
前記メッセージが前記ノードデバイスに対して許可されているが、前記ノードデバイスが前記バス上の別のメッセージへのアービトレーションに負けたと判定するように、かつ
前記アービトレーションに負けたことに続いて、前記ノードデバイスが優性ビットを送信することを防止するように、動作可能である、請求項１に記載の装置。
【請求項１１】
前記論理回路が、各ビットのビット期間の第１の時間量の間に前記ノードデバイスから前記メッセージの各ビットを読み出し、前記論理回路は、前記メッセージが前記第１の時間量の間に前記ノードデバイスに対して許可されていないと判定する、請求項１に記載の装置。
【請求項１２】
方法であって、
第１のコントローラエリアネットワーク（ＣＡＮ）バスインターフェースを介して第１のＣＡＮバスと通信するように装置を電気的に結合することと、
前記第１のＣＡＮバスインターフェースから電気的に分離可能な前記装置の第２のＣＡＮバスインターフェースを介して前記装置にノードデバイスを電気的に結合することと、
前記ノードデバイスが前記ノードデバイスに対して許可されていない前記第２のＣＡＮバスインターフェースを介してメッセージを送信していることを前記装置を介して判定することと、
それに応答して、前記メッセージが前記第１のＣＡＮバス上に送信されることを防止することと、を含む、方法。
【請求項１３】
前記メッセージが前記ノードデバイスに対して許可されていないと判定することが、前記メッセージが前記ノードデバイスに対して許可された最大アービトレーション優先度を超えると判定することを含む、請求項１２に記載の方法。
【請求項１４】
前記メッセージが前記ノードデバイスに対して許可されていないと判定することが、前記メッセージが前記ノードデバイスに対して許可されていないメッセージ識別子フィールドを有すると判定することを含む、請求項１２に記載の方法。
【請求項１５】
前記ノードデバイスを制御するコマンドを前記装置において受信することと、それに応答して前記ノードデバイスを制御することとを更に含む、請求項１２に記載の方法。
【請求項１６】
前記コマンドが、前記第１のＣＡＮバスを介して受信される、請求項１５に記載の方法。
【請求項１７】
前記コマンドが、前記第１のＣＡＮバス及び前記第２のＣＡＮバスから独立した通信チャネルを介して受信される、請求項１５に記載の方法。
【請求項１８】
前記メッセージが前記ノードデバイスに対して許可されているが、前記ノードデバイスが前記第１のＣＡＮバス上の別のメッセージへのアービトレーションに負けたことを判定することと、
前記アービトレーションに負けたことに続いて、前記ノードデバイスが第１のＣＡＮバス上で優性ビットを送信するのを防止することと、を更に含む、請求項１２に記載の方法。
【請求項１９】
システムであって、
コントローラエリアネットワーク（ＣＡＮ）バスと、
前記ＣＡＮバスに結合された２つ以上の装置と、
前記２つ以上の各装置のそれぞれに結合された２つの又はＣＡＮノードデバイスであって、前記装置のそれぞれが、
前記各ＣＡＮノードデバイスの通信を監視するように、
前記各ＣＡＮノードデバイスが、前記各ＣＡＮノードデバイスに対して許可されていないメッセージを送信している場合、前記メッセージが前記ＣＡＮバス上に送信されることを防止し、さもなければ、前記メッセージの前記ＣＡＮバス上への送信を容易にするように、動作可能である、２つの又はＣＡＮノードデバイスと、を備える、システム。
【請求項２０】
前記ＣＡＮバスに結合され、前記ＣＡＮバスを介して前記２つ以上の装置と共に制御メッセージを送信又は受信するように構成されたモニタデバイスを更に備える、請求項１９に記載のシステム。
【請求項２１】
前記ＣＡＮバスとは別個の通信チャネルに結合され、前記通信チャネルを介して前記２つ以上の装置と共に制御メッセージを送信又は受信するように構成されたモニタデバイスを更に備える、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ノードデバイスが、許可できないメッセージをコントローラエリアネットワークバス上に送信することを防止する装置に関する。一実施形態では、方法、システム及び装置は、第１のコントローラエリアネットワーク（ｃｏｎｔｒｏｌｌｅｒ  ａｒｅａ  ｎｅｔｗｏｒｋ、ＣＡＮ）バスと通信するように結合された第１のバスインターフェースを利用することができる。第２のバスインターフェースは、ノードデバイスと通信するように結合されており、ノードデバイスは、第２のＣＡＮバスと通信するように構成されている。論理回路は、第１のバスインターフェースと第２のバスインターフェースとの間に結合されており、第２のバスインターフェースを介してノードデバイスによる通信を監視するように動作可能である。論理回路は、ノードデバイスに対して許可されていないメッセージをノードデバイスが送信していると判定する場合、それに応答して、メッセージが第１のＣＡＮバス上に送信されることを防止する。
【図面の簡単な説明】
【０００２】
【図１】一実施形態例に従うコントローラエリアネットワークのブロック図である。
【図２】実施形態例に従う装置のブロック図である。
【図３】実施形態例に従う装置のブロック図である。
【図４】一実施形態例に従う装置によって使用されるビットタイミングを示す信号図である。
【図５】実施形態例に従う装置のブロック図である。
【図６】実施形態例に従う装置のブロック図である。
【図７】一実施形態例に従う装置によって使用されるメッセージのブロック図である。
【図８】一実施形態例に従うビットチェック手順を例示する図である。
【図９】一実施形態例に従う装置の機械的特徴を示す上面図である。
【図１０】一実施形態例に従う方法のフローチャートである。
【発明を実施するための形態】
【０００３】
本開示は、コントローラエリアネットワーク（ＣＡＮ）バスを使用するものなどの埋め込み型デバイスネットワークに関する。ＣＡＮバスは、自動車及び産業制御ネットワークなどのアプリケーションのための低コストシステムデバイス制御及び通信を提供する。ＣＡＮバスは、バス衝突を管理するために、共通の送信バス及びメッセージ優先順位付けを使用する。ＣＡＮバス上に送信される各ビットは、劣性又は優性のいずれかである。各ノードは、バスに書き込むのと同時にバスを読み出す。ノードは劣性ビットを送信するが、優性ビットを検出する場合、ノードは、アービトレーションに負け、その後、バス上でリッスンし、再送信を試みる次のメッセージフレームを待つべきである。
【０００４】
ＣＡＮバスに取り付けられたノードは、ヘッダ内のビットの特定の配置でメッセージを送信するように構成される。より大きな先頭の優性ビットを有するノードは、アービトレーションに勝つ傾向があり、送信遅延がより少ない。システム設計者は、一般に、どのメッセージが最も高い優先度を有するべきかを決定し、それに応じてそれらのメッセージをフォーマットする。システムは、各ノードに依存して、システム設計者が指定したメッセージのみを送信するのみならず、アービトレーションルールに従ってアービトレーションに負けると送信を停止する。
【０００５】
ＣＡＮバスは、バス上のノードに作用するエンドデバイス上に提供されるものとは別に、固有の管理又はセキュリティ特徴を有さない。侵入検出は、バス上の「スニファー」デバイスによって提供されてもよいが、これらのデバイスは、どのノードが不正を行っているかを伝えることができない。更に、そこで、これらのデバイスは、一旦検出されると侵入を防止するための限られた手段を有する。ＣＡＮバスは、高レベルのセキュリティ及び信頼性を必要とするアプリケーションに採用されているため、悪意のあるノード又は誤動作しているノードの影響を追跡及び否定する手法が望まれる。
【０００６】
本開示には、ＣＡＮネットワーク上に分岐又はドロップを作成するＣＡＮデバイスが記載される。スマートＴコネクタ（Ｓｍａｒｔ  Ｔ−Ｃｏｎｎｅｃｔｏｒ、ＳＴＣ）と称されるこのデバイスは、ＣＡＮバスからの各ドロップが管理可能、監視可能及び実施可能となるような管理及びセキュリティ特徴を有する。ＳＴＣは、各ドロップを管理可能にさせ、各ドロップについての統計を有効化、無効化及び閲覧することができる。ＳＴＣは、最小優先度の実施、メッセージタイプ、及びペイロードの実施、並びにアービトレーションに負けるポートを禁止することによるサービスの妨害（ｄｅｎｉａｌ−ｏｆ−ｓｅｒｖｉｃｅ、ＤｏＳ）の防止などのセキュリティ方針を監視し、かつ実施することができる。ＳＴＣはまた、レガシーＣＡＮデバイス（例えば、ＣＡＮ２．０）であっても、ＣＡＮ  ＦＤ又はＣＡＮＣｒｙｐｔなどの強化されたバックボーンを使用することもできる。いくつかのＳＴＣを単一の物理的集信機に組み合わせることができ、ノードデバイスを結合することができる複数のドロップ及び／又は二次ＣＡＮバスインターフェースを提供することに留意されたい。
【０００７】
図１では、図は、一実施形態例に従うＣＡＮバスを示す。バス１００は、ノード１０２〜１０４間の差動信号方式を容易にする一対の信号線１００ａ−ｂを含む。信号線１００ａ−ｂは、抵抗器１０６（〜１３０ＫΩ）を介して終端される。図示しないが、バス１００はまた、接地線を含み、任意の＋Ｖｃｃ線を有してもよい。ノード１０２は、ＣＡＮコントローラ機能１０２ｂを実行するマイクロコントローラ１０２ａ（又はデジタル信号プロセッサ）と共に示される。ＣＡＮコントローラ１０２ｂは、ＣＡＮ送受信機１０２ｃを介してバス１００上のビットを送受信する。他のノード１０３、１０４は、同様に構成されてもよい。図示しないが、ノード１０２〜１０４は、バス１００を介して他のノードにメッセージデータを提供するセンサを含んでもよい。ノード１０２〜１０４は、ビット同期され、所定のコンテンツベースのアービトレーションプロトコルに従ってメッセージを送信する。ノード１０２〜１０４は、０秒又は１秒の長期の実行を避けるためにビットスタッフィングを使用する。
【０００８】
ノード１０４は、バス１００に直接的に結合されないが、ＳＴＣ１０６を介して結合される。以下により詳細に示されるように、ＳＴＣ１０６は、任意のＣＡＮ互換性ノードデバイスがＳＴＣ１０６に結合され得るように、バス１００の代理として機能する。同様に、ＳＴＣ１０６は、ノード１０４の代理としてバス上に現れ、２つ以上のそのようなノードの代理であるように構成されてもよい。ノード１０４が正常に動作しているとき、ＳＴＣ１０６は、パススルーとして動作するが、ノード１０４上で統計を収集し得る。モニタ１０８として本明細書で示されるコントローラデバイスは、これらの統計をこの及び他のＳＴＣ１０６から収集することができる。統計は、送信されたメッセージの数及び／又は頻度、（バッファサイズに依存する）メッセージ履歴、ノードのバスインターフェースの電気的性能などを含み得る。モニタデバイス１０８は、バス１００を介して帯域内の、又はいくつかの他の通信チャネルを介して帯域外のＳＴＣ１０６と通信してもよい。
【０００９】
ＳＴＣ１０６は、ノード１０４の許可できる挙動を知るようにプログラムされてもよい。例えば、ＳＴＣ１０６は、ノードのメッセージについての優先度を定義するメッセージヘッダを少なくとも知ることができる。ノード１０４が、この許可できる範囲外であるメッセージをバス上で送信しようと試みる場合、ＳＴＣ１０６は、他のノードをアービトレートすることを可能にする任意の更なる優性ビットを送信しないことによって、少なくともそのメッセージの送信を抑制することができる。ＳＴＣ１０６は、ノード１０４を正常に送信することを可能にし得るが、境界外の挙動のパターンが発生した場合、ＳＴＣ１０６は、ノード１０４の更なる送信を防止し、アラートをモニタデバイス１０８に送信してもよい。
【００１０】
ＳＴＣ１０６は、ノード１０４又はそれが制御しているノードのプロファイルを用いて予めプログラムされてもよい。これは、初期システム設計の一部であってもよく、許可できるメッセージの種類、データ収集デフォルト、不適切な挙動を取るアクションなどの詳細を含んでもよい。他の実施形態では、ＳＴＣ１０６は、ノードの挙動の通常の境界を決定するために機械学習を使用してもよい。これは、新たに設置されたノードが適切に挙動し、かつ故障又は危殆化が、ある時間の経過後に生じる可能性があると仮定して、受動モードで最初に実行することを含み得る。このことは、依然として、いくつかのシステム知識、例えば、滅多に遭遇することがないがノードによって許可できるであろう特定のエラー又は優先度の高いメッセージなどで、ＳＴＣが事前構成されることを必要とし得る。
【００１１】
図２では、図は、一実施形態例に従うバス２０６に結合された複数のＳＴＣ装置２００、２０１を示す。各ＳＴＣ２００、２０１は、それぞれのノードデバイス２０４、２０５へのポートと見なすことができ、別個のポート毎の状態を維持することができる。ＳＴＣ２００、２０１は、図１に示されるようにコントローラ／モニタデバイスを報告し、かつそれらによって制御されてもよい。ＳＴＣ２００、２０１は、デバイス２０４、２０５の代わりに最小優先度を実施することができ、デバイス２０４、２０５からの全ての通信、及び／又はデバイス２０４、２０５からの選択された破損パケットを遮断することができる。
【００１２】
各ＳＴＣ２００、２０１は、侵入検出システム（ｉｎｔｒｕｓｉｏｎ  ｄｅｔｅｃｔｉｏｎ  ｓｙｓｔｅｍ、ＩＤＳ）及び侵入防止システム（ｉｎｔｒｕｓｉｏｎ  ｐｒｅｖｅｎｔｉｏｎ  ｓｙｓｔｅｍ、ＩＰＳ）の一方又は両方を含んでもよい。ＳＴＣ２００で見られるように、ＩＤＳ／ＩＰＳ２００ａは、ノード２０４とＣＡＮバス２０６との間に位置する送受信機インターフェース回路２００ｂに結合される。送受信機インターフェース回路２００ｂは、概念的な電気的インターフェースであり、完全な回路を表していなくてもよく、例えば、他の構成要素が、バス２０６とインターフェースするために追加されてもよい。送受信機インターフェース回路２００ｂは、ＣＡＮバス２０６と通信するように構成された第１のＣＡＮバスインターフェース２００ｅと、ＣＡＮバス仕様を使用してノードデバイス２０４と通信するように構成された第２のＣＡＮバスインターフェース２００ｆとを有する。第２のＣＡＮバスインターフェース２００ｆは、第１のＣＡＮバスインターフェース２００ｅから電気的に分離可能である。
【００１３】
ＩＤＳ／ＩＰＳ２００ａは、送受信機インターフェース回路２００ｂに結合された有効化線２００ｃをアクティブ化することによって、ノード２０４から及びノード２０４に送信された全てのビットを再書き込みすることができる。送受信機インターフェース回路２００ｂは、「０」を「１」に浮動させ、「１」を「０」に優性化することができる。バス線２００ｄを介してデバイス２０４の出力を監視することによって、ＩＤＳ／ＩＰＳ２００ａは、ノードデバイス２０４がオン／オフであるかどうかを感知して、トラップを送信することができる。線２００ｄはまた、デバイスの配線内の中断を検出するために使用することができる。
【００１４】
この実施例では、ＩＤＳ／ＩＰＳ２００ａの制御は、バス２０６を介して帯域内に提供される。これは、例えば、バス２０６を介してＳＴＣ２００にクエリメッセージを送信することによって、達成することができ、ＳＴＣ２００は、応答メッセージを用いてバス２０６を介して応答する。あるいは、ＳＴＣ２００は、状態メッセージを非同期的に送出することができる。いずれの場合でも、ノードデバイス２０４は、それらのメッセージを受信してもよく、又はそれらのメッセージから切り離されてもよい。とりわけ、ＳＴＣ２００によって通信される制御メッセージは、ノードデバイス２０４を有効化又は無効化するためのコマンドと、ノードデバイス２０４の動作を記述する統計の概要と、ノードデバイス２０４に自己試験を実行させるコマンドとの任意の組み合わせを含んでもよい。ＩＤＳ／ＩＰＳ制御／状態メッセージは、回路２００ｂを介してバス２０６上で送信／受信することができ、あるいは線２０８によって示されるように、ＩＤＳ／ＩＰＳブロック２００ａからバスに直接送信することができる。
【００１５】
ＳＴＣ２００、２０１は、複数のノードデバイス２０４、２０５のためのドロップ毎の管理インターフェースを可能にする。ＳＴＣ２００、２０１は、最小／最大優先度を実施することができ、メッセージタイプ及びペイロードを実施することができ、ＤｏＳ攻撃を防止することができる。帯域内通信を利用することによって、ＳＴＣ２００、２０１は、ＳＴＣによって使用される追加のコマンドを、ＣＡＮネットワーク上で使用されるメッセージに組み込むことによって、既存のＣＡＮネットワークに容易に適合させることができる。ＳＴＣ２００、２０１は、自律的に動作することができ、違反が検出された場合にノード２０４、２０５からのメッセージを自動的に遮断することができる。他の場合には、ＳＴＣ２００、２０１は、ノードを遮断することなく、エラー状態又はメッセージ違反（例えば、ＤｏＳ状態を引き起こす可能性がない破損したメッセージ）を報告してもよい。そのような場合、システムメインコントローラなどの別のデバイスは、状態又は違反に対処する手法を決定し、応答をＳＴＣ２００、２０１に戻して通信することができる。
【００１６】
いくつかの構成では、ＳＴＣは、ＣＡＮ  ＦＤ又はＣＡＮＣｒｙｐｔで保護されたバックボーンなどの、強化されたインターコネクタバックボーンを使用することができる。図３では、図は、一実施形態例に従うバス３０２上のＳＴＣ３００を示す。バス３０２は、ＣＡＮ  ＦＤ、ＣＡＮＣｒｙｐｔ、又はＣＡＮプロトコルの他のそのような後のバージョン若しくは適合物を利用してもよい。ＳＴＣ３００は、図２に記載されたものと同様のＩＤＳ／ＩＰＳ３００ａを含む。ノードデバイス３０４は、例えば、ＣＡＮ２．０などを使用して、ＳＴＣ３００のレガシーＣＡＮバスインターフェース３００ｂに結合される。バス変換モジュール３００ｃは、バックボーンバス３０２に結合された第２のバスインターフェース３００ｄを含む。バス変換モジュール３００ｃは、異なるバス３０２、３００ｂのプロトコル間でデータを翻訳する。この翻訳は、暗号化／復号化、及び送信の速度の変更を含み得る。代替の実施形態では、バスインターフェース３００ｂは、バス３０４よりも速くてもよいこと、及び／又はバスインターフェース３００ｂは、暗号化をバス３０４が行わない間に使用してもよいことに留意されたい。
【００１７】
暗号化バスと非暗号化バスとの間で変換するとき、ＳＴＣ３００は、デバイス３０４のバッファリング及び／又は遅延を利用してもよい。一般的に、ＣＡＮＣｒｙｐｔは、第１のプリアンブルパケット、続いて固定されたパケットの２つのパケットを使用する。ノードデバイス３０４が非暗号化プロトコルを介して通信している場合、デバイスは、パケットをＩＤＳ／ＩＰＳ３００ａ及び／又は変換モジュール３００ｃに送信し、その後、アービトレーションに勝つことによってノードデバイス３０４をビジーに保つ。これにより、データを暗号化し、２つのパケットを形成し、２つのパケットをバス３０２上で送信するのに十分な時間を変換モジュール３００ｃに与える。ノードデバイス３０４が暗号化プロトコルを介して通信しており、バス３０２がそうしない場合、ＳＴＣ３００は、データを暗号化し、２つのパケットを形成し、２つのパケットをノードデバイス３０４に送信してもよい。このプロセスの間にノード３０４のために受信されたあらゆるメッセージは、ＳＴＣ３００のシステムパラメータ及びバッファサイズに応じてバッファ又はドロップされてもよい。
【００１８】
インターフェース３００ｂは、バス３０２が暗号化されている間に暗号化されなくてもよいことに留意されたい。そのような場合、ＳＴＣ３００とノード３０４間のセキュリティは、インターフェース３００ｂのバス線の物理的近接及び機械的／電気的保護、例えば、硬質導管、余分な遮蔽など）によって実施されてもよい。更に、変換モジュール３００ｃ及び／又はＩＤＳ／ＩＰＳ３００ａはまた、もしあれば、ノード３０４のために直接標的化されたメッセージを除いて、バス３０２上で送信された任意の暗号化又は復号化されたデータがノード３０４に到達することも防止することができる。バス３０２からノード３０４への有意な数のメッセージが標的化され、バス３０２がインターフェース３００ｂよりも著しく高速度である場合、翻訳モジュール３００ｃ及び／又はＩＤＳ／ＩＰＳ３００ａは、ノード３０４に標的化されたメッセージを一時的に待ち行列に入れるのに十分なバッファを備えてもよく、一方で、それらのメッセージは、より遅いインターフェース３００ｂ上で転送される。
【００１９】
図４では、図が、一実施形態例に従う、ＳＴＣによって使用されるものとしてＣＡＮサンプリングを例示する。方形波４００は、ＣＡＮネットワーク上の全てのノードによって使用されるシステムクロックを表す。値ｔＱは、バス上の最小時間単位であり、システムクロック４００の１つの期間に等しい時間量を表す。処理回路によって使用される実際の内部クロックは、システムクロック４００の周波数の倍数である周波数で実行されてもよい。時間４０２は、ビットがバス上で送信される期間を表す。システム設計者は、ＰＲＯＰ（伝播）、ＰＨＡＳＥ（位相）１、及びＰＨＡＳＥ２の異なる値をプログラムすることができ、したがって、それは、公称ビット時間４０２に影響を及ぼす。例えば、ＰＲＯＰ区分は、１つ〜８つの時間ｔＱの間に設定されてもよい。
【００２０】
矢印４０４は、実際のビット値を読み取るためにノードによって取られたサンプルを表す。より多くのサンプルを取ってもよく、例えば、２つのサンプルがサンプル４０４の前に取られる。バス上のノード間に様々な伝搬遅延が存在し、それゆえ、サンプリングは、ビット時間４０２の後半に取られ、サンプル４０４によって読み取られる値が、送信されている全てのビットの合計に対応することを確実にする。２つ以上のサンプルが取られる場合、サンプル値の大部分、例えば、３つのサンプルのうちの２つの大部分の値が、サンプリングされた値として使用される。
【００２１】
ｔＱの実際の値は、特定のＣＡＮ実装に応じて、約１００〜１５０ナノ秒とすることができる。特定のデバイス送受信機は、約３０〜１３０ナノ秒の差動立ち上がり時間を有してもよい。高速デジタルアイソレータは、別の〜１０ナノ秒の遅延を追加することができる。これにより、ＳＹＮＣの間に約１０〜９０ナノ秒のＳＴＣは、ノードデバイスが何を送信しているかの結果を計算し、送信を可能にするか否かを決定することができる。ＰＲＯＰ及びＰＨＡＳＥ１区分が特に長い場合、これは、ノードによって送信された値を検出するための追加の時間を可能にし得る。したがって、図２に示されるような構成では、ＳＴＣは、ＳＹＮＣの間のノード送信のビット毎の検出を行うことができ、それに応じて送受信機を浮動させるか又は優性化することができる。
【００２２】
他の実施形態では、ＳＴＣは、ノードデバイスが何を送信するかを検出せずに、アービトレーション優先度を実施するようにバス送受信機を浮動させてもよい。これにより、バスへの送信時のタイミングマージンの緩和が可能になる。ＳＴＣによって全メッセージをバッファリングすることができ、次いで、ＳＴＣ論理は、例えば、ノードによって送信されることが試みられたアービトレーションフィールドの実際の値に基づいて、ノードデバイスが許可できるメッセージを送信しているかどうかを決定することができる。その場合、ＳＴＣは、次の機会にメッセージをバス上に送信することができる。
【００２３】
図５には、ブロック図が、一実施形態例に従う、データ及び制御バス５０６、５０７上の複数のＳＴＣ５００、５０１を示す。各ＳＴＣ５００、５０１は、それぞれのノードデバイス５０４、５０５へのポートとして機能し、別個のポート毎の状態を維持する。ＳＴＣ５００、５０１は、制御バス５０７に結合された単一のコントローラ／モニタデバイス５０８を報告し、かつそれによって制御されてもよい。制御バス５０７は、データバス５０６とは別個かつ独立しており、同じ又は異なるプロトコル及び電気特性を使用してもよい。例えば、制御バス６０７は、本明細書で言及されるＣＡＮプロトコルのいずれかを使用してもよく、又はイーサネット（登録商標）、Ｉ２Ｃ、無線ネットワーキングなどの非ＣＡＮプロトコルを使用してもよい。ＳＴＣ５００、５０１は、前述のように、データバス５０６上のデバイス５０４、５０５の代わりに最小優先度を実施することができる。
【００２４】
各ＳＴＣ５００、５０１は、ＩＤＳ及びＩＰＳの一方又は両方を含む。ＳＴＣ５００で見られるように、ＩＤＳ／ＩＰＳ５００ａは、ノード５０４とＣＡＮバス５０６との間に位置する送受信機インターフェース回路５００ｂに結合される。バス線５００ｄを介してデバイス５０４の出力を監視することにより、ＩＤＳ／ＩＰＳ５００ａは、ノードデバイス５０４がオン／オフであるかどうかを感知し、トラップを送信し、有効化線５００ｃを介してデバイス５０４の配線内の中断を検出することができる。
【００２５】
この実施例では、ＩＤＳ／ＩＰＳ５００ａの制御は、制御バス５０７を介して帯域外に提供される。これは、例えば、バス５０７を介してＳＴＣ５００にクエリメッセージを送信することによって達成することができ、ＳＴＣ５００は、応答メッセージを用いてバス５０７を介して応答する。あるいは、ＳＴＣ５００は、状態メッセージを非同期的に送出することができ、任意の制御コマンドを許可してもよく、又は許可しなくてもよい。いずれの場合でも、ノードデバイス５０４は、それらのメッセージから切り離されてもよい。他の構成では、制御バス５０７は、データバス５０６上の他のデバイスに送出されないノードデバイス５０４にのみメッセージを標的化するために使用されてもよい。例えば、モニタ５０８は、データバス５０６上のトラフィックを増加させることなく、制御バス５０７を介して選択されたポート上で自己テストを開始することができる。これらの自己試験要求に応答してノードデバイス５０４、５０５によって生成されたあらゆるメッセージもまた、データバス５０６から切り離すことができる。
【００２６】
図６には、ブロック図が、別の実施形態例に従う、データ及び制御バス６０６、６０７上の複数のＳＴＣ６００、６０１を示す。各ＳＴＣ６００、６０１は、それぞれのノードデバイス６０４、６０５へのポートとして機能し、別個のポート毎の状態を維持する。ＳＴＣ６００、６０１は、制御バス６０７に結合された単一のコントローラ／モニタデバイス６０８を報告し、かつそれによって制御されてもよい。制御バス６０７は、データバス６０６とは別個かつ独立しており、同じ又は異なるプロトコル及び電気特性を使用してもよい。更に、デバイス６０４、６０５は、データバス６０６とは異なる種類のバス６００ｂを使用する。ＳＴＣ６００、６０１は、前述のように、データバス６０６上のデバイス６０４、６０５の代わりに最小優先度を実施することができる。
【００２７】
各ＳＴＣ６００、６０１は、ＩＤＳ及びＩＰＳの一方又は両方を含む。ＳＴＣ６００で見られるように、ＩＤＳ／ＩＰＳ６００ａは、ノード６０４とＣＡＮバス６０６との間に位置するバスコンバータ６００ｃに結合される。バス６０６、６００ｂは、ＣＡＮ２．０、ＣＡＮＣｒｙｐｔ及びＣＡＮ  ＦＤから選択された異なる形式を使用してもよい。図３に示した実施例で説明したように、コンバータ６００ｃは、暗号化メッセージと非暗号化メッセージとの間で翻訳してもよく、バス６００ｂ、６０６の種類間の伝送の速度を変更してもよい。
【００２８】
この実施例では、ＩＤＳ／ＩＰＳ６００ａの制御は、図５に示した実施形態で説明したように、制御バス６０７を介して帯域外に提供される。制御バス６０７は、バス６００ｂ、６０６のいずれかと同じ種類のバスとすることができ、又はそれらのうちの１つと同じであってもよい。制御バス６０７は、代替的に、イーサネット（登録商標）、Ｉ２Ｃなどの非ＣＡＮプロトコルを使用してもよい。制御バス６０７のデータは、バス６００ｂ、６０６の一方又は両方から切り離され得る。
【００２９】
上述のように、ＳＴＣは、ノードデバイスが、ノードデバイスに対して許可されるメッセージを送信しているか否かを判定し、許可されていない場合には送信を許可しない。図７には、実施形態例に従うＳＴＣが、メッセージが許可されているか否かを判定することができるいくつかの手法を例示する、メッセージ形式例が示される。図７に示される形式は、ＣＡＮ２．０に記載されているベースフレーム形式として知られているものに対応するが、この図に関して記載される概念は、例えば、拡張されたフレーム形式などの他のＣＡＮ形式に適用することができる。例示されたメッセージは、メッセージＩＤフィールド７００、データ長フィールド７０１、データフィールド７０２、巡回冗長検査（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ、ＣＲＣ）フィールド７０３及びフレーム終了（ｅｎｄ  ｏｆ  ｆｒａｍｅ、ＥＯＦ）フィールド７０４を含む。他のフィールドを図７に見ることができるが、フレームの開始及び区切りビットなどは、記載されていない。
【００３０】
ＩＤフィールド７００は、メッセージの識別も、優先度のアービトレートも行う。例えば、特定の送信者及び特定の種類のメッセージペイロードが、固有の識別子を有してもよい。更に、ＩＤフィールド７００内のビットの順序は優先度を決定する。典型的なＣＡＮの慣例では、ゼロは、バスを優性状態にする、例えば、ＣＡＮＨ及びＣＡＮＬをそれぞれ＋５Ｖ及び０Ｖに切り替える、ノードのうちの１つによって送信される優性ビットであると見なされる。送信している各ノードは、それらのメッセージ内の各ゼロについて、バス上の優性状態をアサートする。それらのメッセージのそれぞれについて、ノードはバスを浮動させ（本明細書の他の箇所では劣性ビットの送信としても呼ばれる）、優性状態がアサートされているかどうかを見る。そうである場合、より高い優先度を有するノードは、アービトレーションに勝っており、アービトレーションに負けたノードは、バスが浮動を許可されるリッスンモードに入る。ノードは、現在のメッセージが完了したときに、後でメッセージウィンドウ内で再送信することを試みる。
【００３１】
これを念頭に置いて、ＩＤフィールド７００内の最も先頭のゼロを有するメッセージは、最も高い優先度を有し、それらのメッセージは送信の最小の遅延に直面する。したがって、ＳＴＣは、ノードに対して許可される最高最大優先度について知ることができ、この優先度よりも高いメッセージＩＤ７００を送信しようとするいかなる試みも、ＳＴＣがそのメッセージをブロックすることをもたらし得る。しかしながら、ＳＴＣはまた、ノードデバイスによって送信され得る許可できるメッセージＩＤ７００のフルセットを知ることもできる。したがって、ＳＴＣはまた、メッセージＩＤがノードによって許可される最大値よりも低い優先度を有する場合であっても、この範囲内ではないＩＤフィールド７００を有するメッセージをブロックしてもよい。
【００３２】
ＳＴＣはまた、許可されたメッセージ形式の他の態様の知識をＩＤフィールド７００のそれ以外に有してもよい。例えば、ノードデバイスは、データフィールド７０２のバイトサイズを定義するデータ長フィールド７０１の最大値よりも下回る（データフィールド７０２内に含まれる）メッセージペイロードサイズに限定されてもよい。したがって、ノードがこの最大許可値よりも大きいデータ長フィールド７０２の値を送信する場合、これはまた、ノードが異常に挙動しているというインジケータとすることができる。同様に、ＥＯＦフィールド７０３は、６つの劣性ビットであるべきであり、このフィールド７０３における優性ビットの送信は、ノードが異常に挙動しているというインジケータとすることができる。ビットスタッフィングなどの他のＣＡＮの慣例もまた、ＳＴＣによって実施されてもよい。
【００３３】
ノードデバイスが許可されたメッセージを送信しようと試みて、ＩＤフィールド７００に基づいてアービトレーションに負けるときに正しく挙動したと仮定すると、ＳＴＣは依然として、メッセージ送信の残りの間のノードの活動を監視してもよく、ノードが、それが想定されなかった任意の優性ビットをアサートしようとするインスタンスを記録してもよい。あるいは、ＳＴＣは、ノードを監視しなくてもよいが、メッセージの残りの間の適切な間隔の間にバスインターフェースを単に浮動させてもよい。いずれの場合でも、ＳＴＣは、ノードデバイスが、アービトレーションに負けることに続いて優性ビットを送信することを防止する。
【００３４】
図８では、図は、一実施形態例に従う、ＳＴＣロジック８０２が許可できるメッセージビットをどのように判定できるかの一例を例示する。ノードデバイス８００は、ＳＴＣ８０２とノード８０２間のバスインターフェースを介してビット８０６のシーケンスを送信している。この実施例の目的のために、ビット８０６は、１１ビットのメッセージＩＤフィールドであるが、ＳＴＣ８０２によって監視されるメッセージフレームのどの部分にも適用可能であり得る。ＳＴＣ８０２は、ＣＡＮバス８０４に結合された別のバスインターフェースを有する。２つのバスインターフェースは、ＣＡＮバスと同じ又は異なる種類のものであってもよい。ビット８０６のそれぞれについて、ＳＴＣは、決定ブロック８０８によって示されるような決定を行う。各ビットが許可されると、それは、バス８０４に転送される。決定ブロック８０８ａの戻り値によって示されるように、優性ビット８０６ａは、このノードデバイス８００について許可されない。この判定８０８ａは、既にバス８０４上に送信された前の３つのビットを考慮することができる。判定８０８ａが否定であることにより、ＳＴＣ８０２は、優性ビットがこれ以上送信されないようにバスを浮動させ、このことは、ノードデバイス８００からのメッセージの更なる送信を停止させる。ＳＴＣ８０２は、任意の送信決定のためにビットを使用しない一方で、ロギング目的のためにビット８０６ａに続くビットを記録してもよい。
【００３５】
この実施例では、ビット８０６ａが許可されなかったとの決定は、ノード８００がバス８０４上に送信することを許可されたものよりも高い優先度をそれが有するためであり得る。例えば、許可された最も高い優先度メッセージＩＤが｛１，０，０，１，０，０，０，０，０，０，０｝である場合、例示されたビットシーケンス８０６は、その優先度に違反するであろう。また、ビット内の符号化されたメッセージＩＤは、最大優先度に違反しないが、ノードによって許可されたメッセージＩＤのセット内にはないこともあり得る。例えば、ノード８００が、先頭のゼロを有する高優先度メッセージを送信することができる場合、ビットシーケンス８０６は、その高優先度メッセージよりも低い優先度を有するが、シーケンス８０６は、依然として、ノード８００によって送信されることが許可されたメッセージＩＤセット内にはなくてもよい。
【００３６】
決定ブロック８０８は、いくつかの手法で実装されてもよい。例えば、許可できるメッセージＩＤを判定するために、有限状態マシンが、ビットのシーケンスについてバイナリ出力（はい又はいいえ）を提供するソフトウェア又はハードウェアで構築されることができる。状態マシンは、許可できないシーケンスに遭遇するまで、各ビットについて「はい」を出力し、次いで、「いいえ」が出力される。別の実施例では、ノード８００の許可されたメッセージＩＤを列挙することができ、各ビットシーケンスは、これらのメッセージＩＤの全部又は一部に対して比較することができる。この実施例は、５つの１１ビットＩＤについて表１に示され、ビットは左から右に送信される。
【００３７】
【表１】
2020092417.tif 000003
【００３８】
一実施例では、各行をメモリに保持することができ、送信されたＩＤのｎビットは、各行内のＩＤの先頭のｎビットと論理的に比較することができる。この実施例の第１のビットについて、これは、ノードデバイスによって送信された先頭のビットがゼロである場合にのみ否定の結果となる。次に送信されたビットについて、第１の２つの送信されたビットの２つのタプルは、表内の第１の２つのビット列から形成された２つのタプルと比較される。この場合、第１のビットが１であることが既に仮定される（そうでなければ比較は続かない）ので、これは常に真に戻ることになり、そのため、第１の２つの送信されたビットの唯一の可能性は、｛１，０｝及び｛１，１｝であり、そのどちらもリスト内にある。第１の３つの送信されたビットで形成された３つのタプルについても同様である。しかしながら、｛１，０，０，０｝及び｛１，１，１，１｝などの第１の４ビットの、多くの禁止された組み合わせが存在する。全部のＩＤの代わりにｎ個のタプルを見ると、各メッセージＩＤをマスキング及び比較するのではなく、いくらかの最適化を考慮に入れてもよいが、実装がより複雑である。同様に、場合によっては、単一のビットに基づいて判定を下すことができる。例えば、表１では、第１、第５及び第８の列に対して１つの許可されたビット値のみが存在する。接頭マッチングを行うためのより効率的な手法が存在し得ることが理解されるであろう。例えば、三元検索木又は他の別の接頭マッチングデータ構造が使用されてもよい。別の選択肢は、送信の有効な範囲を表す区間グラフを使用することである。
【００３９】
本明細書に記載されるようなＳＴＣは、既存のＣＡＮ規格と電気的及びプロトコル互換性があり、それゆえ、既存のＣＡＮハードウェア及びバスと共に使用することができる。この互換性は、図９の上面図に示されるように、機械的互換性へと拡張することができる。２つのＳＴＣ９００、９０１が、ＣＡＮバス９０２及び２つのノードデバイス９０４、９０５に結合されて示されている。ＳＴＣ９００、９０１は、ノードデバイス９０４、９０５をバス９０２に直接結合する標準的なＴコネクタと機械的に交換可能なハウジング及びコネクタを含む。これにより、ＳＴＣ９００、９０１の機能を含むようにレガシーシステムの容易な機械的及び電気的な改造を可能にすることができる。
【００４０】
図１０では、フローチャートが、一実施形態例に従う方法を示す。この方法は、第１のＣＡＮバスインターフェースを介してＣＡＮバスと通信するように装置を電気的に結合すること１０００を含む。ノードデバイスは、第１のＣＡＮバスインターフェースから電気的に分離可能な装置の第２のＣＡＮバスインターフェースを介して装置に電気的に結合される１００１。ブロック１００２では、ノードデバイスに対して許可されていない第２のＣＡＮバスインターフェースを介してノードデバイスがメッセージを送信しているかどうかを装置を介して判定する。そうである場合、メッセージは、第１のＣＡＮバス上に送信されることを防止され１００３、そうでなければ、送信されることが許可される１００４。
【００４１】
上記した様々な実施形態は、特定の結果を提供するように相互作用する回路、ファームウェア及び／又はソフトウェアモジュールを使用して実装されてもよい。当業者は、当該技術分野において一般的に知られている知識を使用して、モジュールレベルで又は全体としてのいずれかで、このように記載した機能を容易に実装することができる。例えば、本明細書に例示されるフローチャート及び制御図は、プロセッサによる実行のためのコンピュータ可読命令／コードを作成するために使用されてもよい。このような命令は、非一時的なコンピュータ可読媒体上に記憶され、当該技術分野において既知のように実行するためにプロセッサに転送されてもよい。上記に示した構造及び手順は、本明細書で上述した機能を提供するために使用することができる実施形態の代表的な実施例に過ぎない。
【００４２】
別途指示されない限り、本明細書及び特許請求の範囲で使用される特徴サイズ、量及び物理的特性を表す全ての数は、全ての場合において、「約」という用語によって修飾されるものとして理解されたい。したがって、反対に指示されない限り、前述の明細書及び添付の特許請求の範囲に記載される数値パラメータは、本明細書に開示される教示を利用して当業者が得ようとする所望の特性に応じて変動し得る近似値である。終点による数値範囲の使用は、その範囲内の全ての数（例えば、１〜５は、１、１．５、２、２．７５、３、３．８０、４及び５を含む）、及びその範囲内の任意の範囲を含む。
【図１】
2020092417.tif 000004
【図２】
2020092417.tif 000005
【図３】
2020092417.tif 000006
【図４】
2020092417.tif 000007
【図５】
2020092417.tif 000008
【図６】
2020092417.tif 000009
【図７】
2020092417.tif 000010
【図８】
2020092417.tif 000011
【図９】
2020092417.tif 000012
【図１０】
2020092417.tif 000013