JP2017507534A - Canネットワークにおけるボーレート自動選択システム及び方法 - Google Patents

Canネットワークにおけるボーレート自動選択システム及び方法 Download PDF

Info

Publication number
JP2017507534A
JP2017507534A JP2016543664A JP2016543664A JP2017507534A JP 2017507534 A JP2017507534 A JP 2017507534A JP 2016543664 A JP2016543664 A JP 2016543664A JP 2016543664 A JP2016543664 A JP 2016543664A JP 2017507534 A JP2017507534 A JP 2017507534A
Authority
JP
Japan
Prior art keywords
baud rate
bus
controller
data frame
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016543664A
Other languages
English (en)
Inventor
アンドリュース ビビン
アンドリュース ビビン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Electric IT Corp
Original Assignee
Schneider Electric IT Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Schneider Electric IT Corp filed Critical Schneider Electric IT Corp
Publication of JP2017507534A publication Critical patent/JP2017507534A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/4013Management of data rate on the bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

本発明の種々の態様及び実施例による装置を提供する。この装置は、メモリと、コントローラエリアネットワーク(CAN)バスに結合されたCANコントローラと、メモリ及びCANコントローラに結合された少なくとも1つのプロセッサとを具える。この少なくとも1つのプロセッサは、CANコントローラを第1のボーレートに設定し、第2のボーレートを決定し、この第2のボーレートの決定に応答して、第2のボーレートの少なくとも識別子を含むボーレート変更要求を、CANバスを介して送信するように構成されているようにする。【選択図】図1

Description

本発明の技術分野は、一般的にマイクロプロセッサを用いた装置(デバイス)間の通信、特にバス(母線)を介して結合された装置に対する転送ボーレートを自動的に選択するシステム及び方法に関するものである。
コントローラエリアネットワーク(CAN)通信は、マイクロプロセッサを用いた装置間の通信の一方法である。装置は代表的に、CANバスに通信可能に結合されたCANコントローラを有している。他の装置との通信は一般に固定のボーレートで行われている。
ボーレートを低くすることにより、最小のエラーで長距離の通信を可能にするが、通信速度が犠牲となる。ボーレートを高くすると、CANバスチャネル品質が悪くなっている場合にデータエラーを生じる傾向がある。これらのデータエラーには、CANバスを経る全体的なスループット(処理能力)を少なくするフレーミングエラーが含まれるおそれがある。
本発明の幾つかの実施例によれば、装置が提供される。この装置は、メモリと、CANバスに結合されたコントローラエリアネットワーク(CAN)コントローラと、前記メモリ及びCANコントローラに結合された少なくとも1つのプロセッサとを有している。CANコントローラを第1のボーレートに設定するように構成されている前記の少なくとも1つのプロセッサは、第2のボーレートを決定するとともに、この第2のボーレートの決定に応答して、少なくともこの第2のボーレートの識別子を含むボーレート変更要求を、CANバスを介して送信するようにする。
本発明の一例では、前記少なくとも1つのプロセッサは更に、タイムアウト(時間切れ)が経過したことを決定し、このタイムアウトが経過したことの決定に応答して、前記CANバスを介してボーレート確認要求を送信し、前記CANコントローラを第2のボーレートに設定するように構成した。
本発明の一例では、前記少なくとも1つのプロセッサは更に、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していないことを決定し、前記第2のボーレートよりも小さい下位のボーレートを決定し、この下位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するように構成した。
本発明の一例では、前記少なくとも1つのプロセッサは更に、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していることを決定し、前記第2のボーレートよりも大きい上位のボーレートを決定し、この上位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するように構成した。
本発明の一例では、前記少なくとも1つのプロセッサは更に、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、このデータフレームの受信に応答して、前記CANバスに結合されたCAN装置が前記第2のボーレートを支持していないことを決定し、前記CANコントローラを前記第1のボーレートで動作させるように構成した。
本発明の一例では、前記少なくとも1つのプロセッサは更に、第1のタイムアウトが生じたことを決定し、この第1のタイムアウトに基づいてクライアントモードに切換えるように構成した。
本発明の一例では、前記少なくとも1つのプロセッサは更に、前記CANバスを高周波で信号伝達させるバイトのパターンを含む少なくとも1つのデータフレームを、前記CANバスを介して送信するように構成した。
本発明の一例では、前記少なくとも1つのプロセッサは更に、前記CANバスに結合された装置から、新たなボーレートの少なくとも1つの識別子を含むボーレート変更要求を受信し、この新たなボーレートが前記CANバスにより支持されたか否かを決定し、この新たなボーレートが前記CANバスにより支持されなかった場合に、前記CANバスを介して承認否定を送信するように構成した。
本発明の一例によれば、コンピュータを用いてボーレートを選択するコンピュータ実装方法を提供する。このコンピュータは、メモリと、コントローラエリアネットワーク(CAN)バスに結合されたCANコントローラと、前記CANコントローラ及び前記メモリに結合された少なくとも1つのプロセッサとを有する。この方法は、前記CANコントローラを第1のボーレートに設定するステップと、第2のボーレートを決定するステップと、この第2のボーレートの決定に応答して、前記第2のボーレートの少なくとも識別子を有するボーレート変更要求を、前記CANバスを経て送信するステップとを具えている。
前記方法は更に、タイムアウトが経過したことを決定するステップと、このタイムアウトが経過したことの決定に応答して、ボーレート確認要求を、前記CANバスを経て送信するステップと、前記CANコントローラを前記第2のボーレートに設定するステップとを含むようにしうる。
前記方法は更に、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信するステップと、このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していないことを決定するステップと、前記第2のボーレートよりも小さい下位のボーレートを決定するステップと、この下位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するステップとを含むようにしうる。
前記方法は更に、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信するステップと、このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していることを決定するステップと、前記第2のボーレートよりも大きい上位のボーレートを決定するステップと、この上位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するステップとを含むようにしうる。
前記方法は更に、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信するステップと、このデータフレームの受信に応答して、前記CANバスに結合されたCAN装置が前記第2のボーレートを支持していないことを決定するステップと、前記CANコントローラを前記第1のボーレートで動作させるステップとを含むようにしうる。
本発明の一例では、前記方法は更に、第1のタイムアウトが生じたことを決定するステップと、この第1のタイムアウトに基づいてクライアントモードに切換えるステップと
を具えているようにしうる。この例では、前記方法は更に、前記CANバスを高周波で信号伝達させるバイトのパターンを含む少なくとも1つのデータフレームを、前記CANバスを介して送信するステップを含むようにしうる。
前記方法は更に、新たなボーレートの少なくとも1つの識別子を含むボーレート変更要求を、前記CANバスを介して受信するステップと、この新たなボーレートが前記CANコントローラにより支持されたか否かを決定するステップと、この新たなボーレートが前記CANコントローラにより支持されなかった場合に、前記CANバスを介して承認否定を送信するステップとを含むようにしうる。
本発明の他の例によれば、コントローラエリアネットワーク(CAN)バスに結合された装置に対するボーレートを選択するための指令の列が記憶された非一過性のコンピュータ可読媒体を提供する。前記指令により、少なくとも1つのプロセッサが、CANコントローラを第1のボーレートに設定し、第2のボーレートを決定し、この第2のボーレートの決定に応答して、前記第2のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するようにした。
一例では、前記指令の列には、前記少なくとも1つのプロセッサが、タイムアウトが経過したことを決定し、このタイムアウトが経過したことの決定に応答して、前記CANバスを介してボーレート確認要求を送信し、前記CANコントローラを第2のボーレートに設定するようにする指令が含まれているようにする。
一例では、前記指令の列には、前記少なくとも1つのプロセッサが、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していないことを決定し、前記第2のボーレートよりも小さい下位のボーレートを決定し、この下位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するようにする指令が含まれているようにする。
一例では、前記指令の列には、前記少なくとも1つのプロセッサが、前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していることを決定し、前記第2のボーレートよりも大きい上位のボーレートを決定し、この上位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するようにする指令が含まれているようにする。
更に、他の態様(アスペクト)、例及びこれらの代表的な態様及び例の利点は以下に詳細に説明する。更に、前述した情報及び後述する詳細な説明は、種々の態様及び例の説明上の実例にすぎず、特許請求の範囲に開示した態様及び例の特徴を理解するための要旨及び構成を提供することを目的とするものである。ここに開示する如何なる例も、ここに開示する目的、目標及び必要性の少なくとも1つと適合する如何なる方法によっても如何なる他の例とも組合せることができ、“例”、“幾つかの例”、“変更例”、“種々の例”、“一例”、“少なくとも1つの例”、“この及び他の例”、等は必ずしも互いに排他的なものではなく、例と関連して説明する特定の特性、構造又は特徴を少なくとも1つの例に含めることができることを表すことを意図するものである。ここでこのような用語が現れることは必ずしも全てが同じ例を参照するものではない。
図1は、ボーレート自動選択システムの一例を示すブロック線図である。 図2は、本発明の例に開示する処理及び機能を実行するコンピュータシステムの一例を示すブロック線図である。 図3は、幾つかの態様及び実施例による装置制御処理の一例を示す流れ図である。 図4は、幾つかの態様及び実施例による自動ボーレート処理の一例を示す流れ図である。 図5は、幾つかの態様及び実施例によるデータ転送処理の一例を示す流れ図である。 図6は、幾つかの態様及び実施例による接続検査処理の一例を示す流れ図である。 図7は、幾つかの態様及び実施例によるバスマネージャサービス処理の一例を示す流れ図である。 図8は、幾つかの態様及び実施例によるバスクライアントサービス処理の一例を示す流れ図である。
本発明の少なくとも1つの例の種々の態様を以下に添付図面を参照して説明する。この添付図面は、実際の寸法を描写するものではない。これらの図面は、種々の態様及び例の説明及び更なる理解を提供するために導入されるものであり、本明細書の一部に含まれ且つその一部を構成するものであるが、如何なる特定例の制限を規定することを意図するものではない。これらの図面は、本明細書の図面以外の部分と相俟って、説明し特許請求の範囲に記載した態様及び例の原理及び動作を説明するのに供するものである。これらの図面においては、種々の図面に示すそれぞれ同一の又はほぼ同一の構成要素は同じ符号で示している。図面を明瞭にするため、全ての図において全ての構成要素にラベル表示していない場合がある。
本発明で開示する方法及び装置の例はその適用に当って、以下の記載で説明する又は添付図面に示す構成の細目及び構成要素の配置に限定されるものではない。これらの方法及び装置は、他の例で実施しうるとともに、種々の状態で実行又は処置しうるものである。ここでは特定の実施例は説明の目的で与えるものであり、本発明はこれらの実施例に限定されるものではない。特に、何れか1つの例又はそれよりも多い例と関連して説明した工程、構成要素、素子及び特性は、他の例の何れにおいても同様な役割のものから排除されるべきものであることを意味するものではない。
又、ここで用いる熟語及び用語は説明のためのものであり、これらに限定されるべきものではない。本明細書におけるシステム及び方法の実施例、構成要素、素子又は工程に対する単数形での言及は、複数のものも含むことができる。本明細書における実施例、構成要素、素子又は工程に対する複数形での言及は、単数のものも含むことができる。単数形又は複数形での言及は、目下開示されるシステム若しくは方法、又はこれらの構成要素、工程若しくは素子を限定するものではない。本明細書において、「含む」、「備える」、「有する」、「包含する」、「必要とする」及び当該用語の変形は、これらの後に列挙される項目及び当該項目の均等物を含むとともに付加的な項目を含むことを意図する。「又は」を使用して説明される任意の用語が、説明されたものの1つ、複数及びすべてを指すことができるように、「又は」に対する言及を包括的に解釈することができる。
前述したように、装置は代表的に固定の通信レートでCANバスを介して通信する。通信距離はボーレートを低速にすることにより最大化しうるが、ボーレートを低速にすることにより装置間の応答時間を遅らせるおそれがある。これとは逆に、ボーレートを高速(例えば、1Mbps)にすることにより、CANバスの品質が悪くなっている(例えば、信号反射がある)場合にフレーミングエラーを生じるおそれがある。本発明で開示する幾つかの態様及び実施例には、CANバスに結合された装置のボーレートを自動的に調整するシステム及び方法が含まれるものである。
[ボーレート自動選択システム]
ここに開示する種々の例は、1つ以上のコンピュータシステムに関するボーレート自動選択システムを実施するものである。図1は、ボーレート自動選択システム100の一例を示す。図示するように、ボーレート自動選択システム100は装置104、装置106、装置108及び装置110を含んでいる。図示するように、これらの装置104、106、108及び110はCANコントローラ114、116、118及び120をそれぞれ含んでおり、これらCANコントローラはCANバス122を介して通信するための“バスマネージャ”又は“バスクライアント”として構成されている。少なくとも1つの実施例では、所定の時間で、CANバス122に結合された1つのみの装置がバスマネージャとして動作する。この実施例では、装置は、バスマネージャが存在しないことをある装置が決定した場合に、バスクライアントとして動作している状態からバスマネージャに動的に切換えるようにすることができる。従って、装置104、106、108及び110の何れの1つもバスマネージャ又はバスクライアントとして動作することができる。
一実施例では、装置104、106、108及び110の各々を、以下で図2につき更に説明するコンピュータシステム200のようなコンピュータシステムを用いて実施する。他の実施例では、装置104、106、108及び110は計算資源を含むが、主としてコンピュータシステム以外の装置として機能するものである。これらの実施例では、例えば、装置104、106、108及び110を無停電電源装置、電力装置(例えば、変圧器、スマートバッテリ及び電力配分ユニット)、センサ、アクチュエータ等とすることができる。
CANバス122には、如何なる通信ネットワークをも含め、マイクロプロセッサを用いる装置がこの通信ネットワークを介して情報を送受信するようにしうる。このCANバス122は例えば、同じ装置の2つの構成要素間の物理的なデータバスとすることができる。他の例では、CANバス122を、ISO 11898-1:2003に応じて2つ以上の装置間のCAN信号伝達(シグナリング)を容易にするように構成された如何なる物理層(例えば、シリアル、イーサネット(登録商標)等)にもすることができる。
図1に示すように、装置104は、ソフトウェア処理を介してバスマネージャモードに構成されたCANコントローラ114を含んでいる。このモードでは、装置104は、図3〜8で説明する処理のようなコンピュータ実行処理を介するCANコントローラ114のインタフェース接続及び制御を行い得る。一実施例では、装置104自体を、CANバス122の他の装置がバスマネージャとして動作していないことの決定に基づいてバスマネージャとして構成することができる。
装置が一旦バスマネージャとして動作し始めると、この装置はバスマネジメント(バス管理)機能を周期的に実行しうる。一実施例では、装置104がキープアライブメッセージを、CANバス122を介して周期的に送出し、このCANバス122に結合された他の装置(例えば、装置106、108及び110)に、バスマネージャが存在することを指示するようにすることができる。他の実施例では、バスマネージャがCANバス122の通信品質を連続的に監視し、これに応じてボーレートを調整する。
種々の実施例では、装置(例えば、装置104、106、108及び110)の起動中に、この装置が“聞き取りのみ(listen only )”のモードに入り、何れの役割(例えば、バスマネージャ又はバスクライアント)をこの装置が担う必要があるかを決定する。一実施例では、予め決定した期間(例えば、1秒)後にCANバス122を介して何の通信をも受信しない場合には、装置はバスマネージャとして動作するようにする。他の実施例では、バスマネージャがCANバス122に既に存在する場合には、装置がバスクライアントとして動作するようにする。これらの実施例では、ボーレートが装置により識別されるまで聞き取りのみのモードが継続される。この聞き取りのみのモードは、装置によりCANバス122上に導入されるフレーミングエラーの可能性を低減させることができる。少なくとも1つの実施例では、装置自体を最初に可能な最低のボーレート(例えば、62.5Kb)に構成する。他の実施例では、装置自体を最初に可能な最大のボーレートに構成する。これらの全ての実施例では、装置によりフレーミングエラーの検出に基づいてボーレートの不整合(ミスマッチ)を決定しうる。不整合が決定された場合、装置は次のボーレートに増大又は減少させることができる。有効なデータフレームが一旦受信され、従って、有効なボーレートが設定されると、装置は、バスマネージャからボーレート変更指令(BUAD_RATE_SWITCH)が受信されるまで、この有効なボーレートで動作し続けることができる。
一実施例では、バスクライアントとして構成された装置が、最大パルス又は周波数を形成する全てのデータフレームフィールド内の予め規定したバイトパターンを含むテストデータフレームを、CANバス122上で送信するようにする。この装置によれば、例えば、0xAAのテストパターンを有するデータフレームを、CANバス122を介して転送することができる。一実施例では、バスマネージャがテストパターンを有するデータフレームを受信し、CANバス通信品質を決定するようにする。バスマネージャは例えば、エラー(0xAA以外のバイト)を有するテストフレームを受信するおそれがある。これらのエラーはCANバス122の劣化の結果によるおそれがある。この場合、バスマネージャは、更なるフレーミングエラーを回避するためにボーレートの変更を開始することができる。
[コンピュータシステム]
図1に関して上述したように、ここで開示する態様及び機能は、1つ以上のコンピュータシステムで達成される専門のハードウェア又はソフトウェアとして実行しうる。現在使用されているコンピュータシステムとしては多くの例のものがある。これらの例には、多くの中で、ネットワークアプライアンス、パーソナルコンピュータ、ワークステーション、メインフレーム、ネットワーク化されたクライアント、サーバ、メディアサーバ、アプリケーションサーバ、データベースサーバ及びウェブサーバが含まれる。コンピュータシステムの他の例には、携帯電話、携帯情報端末(パーソナルデジタルアシスタンス)、タブレットコンピュータ及びラップトップコンピュータのようなモバイル計算装置と、ロードバランサ(負荷分散装置)、ルータ及びスイッチのようなネットワーク装置とを含めることができる。更に、複数の態様を単一のコンピュータシステムに設けるか、又は1つ以上の通信ネットワークに接続された複数のコンピュータシステム間で分散させることができる。
例えば、1つ以上のクライアントコンピュータにサービスを提供するか、又は全体のタスクを分散システムの一部として実行するように構成された1つ以上のコンピュータシステム間で種々の態様及び機能を分散させることができる。更に、種々の機能を実行する1つ以上のサーバシステム間で分散される構成要素を含むクライアントサーバ又は多層システムに関して態様を実行しうる。従って、本発明の例は、特定の如何なるシステム又はシステムの群に関して実行することに限定されるものでもない。更に、態様及び機能は、ソフトウェアとハードウェアとファームウェアとの何れか又はこれらの任意の組合せで実行しうる。従って、態様、処理及び機能は、種々のハードウェア及びソフトウェア構成を用いる方法、工程、システム、システム素子及び構成要素内で実行でき、本発明の例は特定の如何なる分散アーキテクチュア、ネットワーク又は通信プロトコルにも限定されるものではない。
図2を参照するに、この図2には、種々の態様及び機能を実現する分散型コンピュータシステム200の機能系統図を示してある。図示するように、この分散型コンピュータシステム200は情報を交換する1つよりも多いコンピュータシステムを有している。特に、この分散型コンピュータシステム200はコンピュータシステム202、204及び206を有している。図示するように、コンピュータシステム202、204及び206は、通信ネットワーク208により相互接続されているとともに、この通信ネットワーク208を介してデータを交換しうる。このネットワーク208には、コンピュータシステムがデータを交換しうるようにする如何なる通信ネットワークをも含めることができる。ネットワーク208を用いてデータを交換するために、コンピュータシステム202、204及び206とネットワーク208とは、数ある中で、RS‐485、RS422、ファイバーチャネル、トークンリング、イーサネット(登録商標)、無線イーサネット、ブルートゥース(登録商標)、IP、IPV6、TCP/IP、UDP、DTN、HTTP、FTP、SNMP、SMS、MMS、SS7、JSON、SOAP、CORBA、REST及びウェブサービスを含む種々の方法、プロトコル及び標準規格を用いることができる。データ転送を安全にするために、コンピュータシステム202、204及び206は、例えば、TLS、SSL又はVPNを含む種々の安全対策を用いてネットワーク208を介してデータを送信することができる。分散型コンピュータシステム200は、ネットワーク化した3つのコンピュータシステムを示しているが、分散型コンピュータシステム200はこれに限定されず、何らかの媒体及び通信プロトコルを用いてネットワーク化した如何なる個数のコンピュータシステム及び計算装置をも有することができる。
図2は、コンピュータシステム202、204及び206を有する分散型コンピュータシステム200の特定例を示している。この図2に示すように、コンピュータシステム202はプロセッサ210と、メモリ212と、バス214と、インタフェース216と、データ記憶装置218とを具えている。ここに開示する態様、機能及び処理の少なくとも幾つかを実行するために、プロセッサ210は、一連の指令を実行して操作データをもたらすようにする。このプロセッサ210は、プロセッサ、マルチプロセッサ、コントローラ又はマイクロコントローラの如何なる種類のものにもすることができる。幾つかの代表的なプロセッサは、Stellaris ARM Cortex-M3 、Intel Xeon、Itanium 、Core、Celeron 、Pentium 、AMD Opteron 、Sun UltraSPARC、IBM Power5+ 及びIBMのメインフレーム用チップを含む。プロセッサ210はバス214により、1つ以上のメモリ装置を含む他のシステムの構成要素に接続されている。
メモリ212は、コンピュータシステム202の動作中にプログラム及びデータを記憶する。従って、このメモリ212は、ダイナミックランダムアクセスメモリ(DRAM)又はスタティックメモリ(SRAM)のような比較的高性能で、揮発性であるランダムアクセスメモリとすることができる。しかし、このメモリ212には、ディスクドライブ又はその他の不揮発性記憶装置のような、データを記憶するための如何なる装置をも含めることができる。ここで開示する機能を実行するために、種々の例によりメモリ212を特定化した、ある場合には特異的とした構造に組織化することができる。これらのデータ構造は、特定のデータに対する値及びデータの種類を記憶するための大きさ及び組織化されたものにすることができる。
コンピュータシステム202の構成要素は、バス214のような相互接続素子により結合されている。バス214には1つ以上の物理的バス、例えば、同じ機構内に一体化された構成要素間のバスを含めることができるが、IDE、SCSI、PCI及びInfiniBandのような専門の又は標準のコンピューティングバス技術を含むシステム素子間の如何なる通信結合体をも含めることができる。従って、バス214は、コンピュータシステム202の構成要素間で交換すべきデータ及び指示のような情報の通信を可能にする。
コンピュータシステム202は、入力装置、出力装置及び入力/出力組合せ装置のような1つ以上のインタフェース装置216をも有している。インタフェース装置は入力を受信するか又は出力を生じることができる。特に、出力装置は外部プレゼンテーション用の情報を提供しうる。入力装置は外部情報源から情報を受けることができる。インタフェース装置の例には、キーボード、マウス装置、トラックボール、マイクロホン、タッチスクリーン、印刷装置、ディスプレイスクリーン、スピーカ、ネットワークインタフェースカード、等が含まれる。インタフェース装置は、コンピュータシステム202が情報を交換するとともにユーザ及びその他のシステムのような外部実体(エンティティ)と通信するようにする。
データ記憶装置218は、プロセッサ210により実行されるプログラム又はその他のオブジェクトを規定する指令を記憶するコンピュータ読取及び書込可能な不揮発性(非一過性)データ記憶媒体を含む。このデータ記憶装置218には、記憶媒体に記録されておりプログラムの実行中にプロセッサ210により処理される情報を含めることもできる。より具体的には、特に記憶スペースを節約するか又はデータ交換性能を高めるように構成した1つ以上のデータ構造内に情報を記憶させることができる。指令は符号化信号として永続的に記憶させることができ、これら指令によりプロセッサ210がここに開示する如何なる機能をも実行するようにすることができる。記憶媒体は例えば、数ある中で光ディスク、磁気ディスク又はフラッシュメモリとすることができる。動作に際しては、プロセッサ210又は他のある種のコントローラによりデータを不揮発性記憶媒体からメモリ212のような他のメモリ内に読込み、これにより、データ記憶装置218内に設けられた記憶媒体が達成するよりも速く、プロセッサ210により情報にアクセスするようにする。メモリはデータ記憶装置218内に又はメモリ212内に配置しうるが、プロセッサ210はメモリ内のデータを処理し、次いで処理が終了した後にデータ記憶装置218と関連する記憶媒体にこのデータをコピーする。種々の構成要素により記憶媒体と他のメモリ素子との間のデータの移動を管理することができるが、本発明の例は特定のデータ管理用の構成要素に限定されるものではない。更に、本発明の例は特定のメモリシステム又はデータ記憶システムに限定されるものではない。
コンピュータシステム202は、種々の態様及び機能を実行しうる一種類のコンピュータシステムとして例示しているが、態様及び機能は図2に示すようなコンピュータシステム202で実行されるものに限定されるものではない。種々の態様及び機能は、図2に示すものとは異なるアーキテクチュア又は構成要素を有する1つ以上のコンピュータで実行するようにしうる。例えば、コンピュータシステム202は、ここに開示する特定の動作を実行するように適合させた特定用途向け集積回路(ASIC)のような、特別にプログラミングした特定の目的のハードウェアを有するようにしうる。しかしながら、モトローラ(Motorola)社のPowerPC (登録商標)プロセッサ及び幾つかの専門の計算装置により専用のハードウェア及びオペレーティングシステムを起動するようにしたMAC OS システム(System)Xを起動するグリッド状の幾つかの汎用の計算装置を用いる他の例により上述したのと同じ機能を実行しうる。
コンピュータシステム202は、このコンピュータシステム202内に設けられたハードウェア素子の少なくとも一部を管理するオペレーティングシステムを含むコンピュータシステムとすることができる。幾つかの例では、プロセッサ210のようなプロセッサ又はコントローラがオペレーティングシステムを実行するようにする。実行され得る特定のオペレーティングシステムの例には、マイクリウム社(Micrium, Inc. )から入手しうるMicroC/OS-IIや、マイクロソフト社(Microsoft Corporation )から入手しうるウインドウズ(登録商標)NT、ウインドウズ2000(ウインドウズME)、ウインドウズXP、ウインドウズビスタ又はウインドウズ7オペレーティングシステムのようなウインドウズベースのオペレーティングシステムや、アップルコンピュータ社(Apple Computer)から入手しうるMAC OS システムXオペレーティングシステムや、レッドハット社(Red Hat Inc.)から入手しうる多くのリナックス(Linux )(登録商標)ベースのオペレーティングシステム提供の1つ、例えば、エンタープライス(Enterprise)リナックスオペレーティングシステムや、サンマイクロシステムズ社(Sun Microsystems)から入手しうるソラリス(Solaris )オペレーティングシステムや、種々の情報源から入手しうるユニックス(UNIX;登録商標)オペレーティングシステムが含まれる。他の多くのオペレーティングシステムも用いることができ、本発明の例は如何なる特定のオペレーティングシステムにも限定されるものではない。
プロセッサ210とオペレーティングシステムとが相俟って、アプリケーションプログラムが高水準言語(プログラミング言語)で書かれているコンピュータプラットホームを規定する。これらのコンポーネントアプリケーションは、通信プロトコル、例えば、TCP/IPを用いるインターネット(登録商標)のような通信ネットワークを介して通信する実行可能な、中間バイトコード、又は解釈コードとすることができる。同様にして、態様は、.NET、SmallTalk 、Java(登録商標)、C++、Ada 又はC#(Cシャープ)のようなオブジェクト指向プログラム言語を用いて実行しうる。他のオブジェクト指向プログラム言語も用いることができる。或いはまた、関数型、スクリプト又は論理プログラミング言語を用いることができる。
更に、種々の態様及び機能は、非プログラミング環境で、例えば、ブラウザのプログラムの窓内で見た際にグラフィカルユーザインタフェースの態様をレンダリングするか又は他の機能を実行するHTML、XML又はその他のフォーマットで作成された文書で実行しうる。更に、種々の例を、プログラミングされた要素又はプログラミングされていない要素、或いはこれらの組合せとして実行しうる。例えば、HTMLを用いてウエブページを実行できるとともに、このウエブページ内から呼び出されるデータオブジェクトをC++で書き表すことができる。従って、本発明の例は、特定のプログラミング言語に限定されるものではなく、適切な如何なるプログラミング言語をも用いることができる。従って、ここに開示する機能要素には、種々の要素、例えば、ここに開示する機能を実行するように構成された専用ハードウェア、実行可能コード、データ構造又はオブジェクトを含めることができる。
幾つかの例では、ここに開示する構成要素によれば、これらの構成要素により実行される機能に影響を及ぼすパラメータを読み出すことができる。これらのパラメータは、(RAMのような)揮発性メモリ又は(磁気ハードドライブのような)不揮発性メモリを含む適切な如何なる形態のメモリ内にも物理的に記憶させることができる。更に、これらのパラメータは、(ユーザモードアプリケーションにより規定されたファイル又はデータベースのような)正当なデータ構造内に又は(オペレーティングシステムにより規定されたアプリケーションレジストリのような)共有データ構造内に論理的に記憶させることができる。更に、本発明の幾つかの例により、外部実体がパラメータを変更し、これにより構成要素の動作を設定するようにするシステム及びユーザの双方のインタフェースを提供するようにする。
[自動ボーレート選択処理]
図3は、装置制御処理300の一例を示す。この処理300は工程302で開始する。
工程304では、装置(例えば、図1の装置104、106、108及び110)が起動され、初期化される。一実施例では、初期化に、CANコントローラが利用できるようにすることを決定することを含める。工程306では、装置を、図1のCANバス122のようなCANバスに通信可能に結合させる。一実施例では、CAN分離リレーを閉じることにより装置をCANバスに通信可能に結合させる。図1につき上述したように、装置を初期的に“聞き取りのみ”のモードで動作させて、CANバスにおいてフレーミングエラーが導入されるのを回避するようにしうる。
工程308では、以下で図4につき説明する自動ボーレート処理400のような自動ボーレート処理を実行する。一実施例では、有効なボーレートが成立されるまで自動ボーレート処理により装置のボーレートを増大するように調整しうる。工程310では、装置が有効なボーレートを決定し損なうと(No)、処理が工程308に戻るようにしうる。装置が有効なボーレートを決定すると(Yes )、処理は工程312に進む。
工程312では、装置がバスマネージャとして動作するべきか又はバスクライエントとして動作するべきかをこの装置により決定する。装置がバスマネージャとして動作している場合には、処理は工程322に進む。装置がバスマネージャとして動作していない場合には、処理は工程314に進む。
工程314では、装置がパブリッシュデバイス要求(PUBLISH_DEVICE)を、CANバスを介して送信する。工程316では、装置により、予め決定した期間が経過する前にキープライブデータフレームが受信されたか(Yes )否か(No)を決定する。一実施例では、ランダムな期間(例えば、2500ms〜5000ms)を待つように装置を構成しうる。この実施例では、ランダムな期間を待つ各装置は、2つの装置がバスマネージャとして動作する状態に同時に切換わらないことを確実にできる。キープアライブデータフレームがバスマネージャから受信される前にランダムな期間が経過した場合には、処理は工程318に進む。ランダムな期間の経過前にキープアライブデータフレームがバスマネージャから受信された場合には、処理は工程320に進む。工程318では、装置がIsBusManager(イズバスマネージャ)の状態フラグを1に設定でき、次いで処理を工程312に戻す。工程320では、装置が、図8のバスクライアントサービス処理800のようなバスクライアントサービスを実行し、次いで工程312に戻ることができる。
少なくとも1つの実施例では、IsBusManagerの状態フラグが1に設定されたことにより処理が工程312に戻るようにする。例えば、工程316において装置がキープアライブデータフレームをバスマネージャから受信する前にランダムな期間が経過するようにしうる。この例では、工程316において処理がIsBusManagerの状態フラグを1に設定する。このIsBusManagerの状態フラグが1に設定されると、装置はバスマネージャとして動作する。
工程322では、ウオッチドッグタイマにおいて、バスマネージャサービスが予め決定された期間よりも多くの間待機状態にあったか否かが調査される。一実施例では、バスマネージャサービスが例外に遭遇するか、又はさもなければ適切に実行し損なう場合には、ウオッチドッグタイマが、バスマネージャサービスはもはや有効でないことを決定し、適切な対応を講じるようにする。ウオッチドッグタイマが終了されると、処理は工程324に進む。ウオッチドッグタイマが終了されないと、処理は工程326に進む。
工程324では、処理によりIsBusManagerの状態フラグを0に設定し、この処理が工程312に戻る。IsBusManagerの状態フラグが0に設定されると、装置はバスクライアントとして動作する。
工程326では、ウオッチドッグタイマがリセットされ、処理が工程328に進む。工程328では、処理により図7のバスマネージャサービス処理700のようなバスマネージャサービス処理を実行し、次いで処理が工程312に戻る。
[自動ボーレート処理]
図3につき上述したように、自動ボーレート処理を実行するように装置を構成することができる。自動ボーレート処理400の一例を図4に示す。この処理400は工程402で開始される。
装置は工程404で“聞き取りのみ”のモードに入る。一実施例では、装置はCANコントローラのトランシーバ出力ドライバを無効にすることにより聞き取りのみのモードに入る。この聞き取りのみのモードでは、装置がCANバスを介してデータを受信するが、データを送信しない(例えば、フレーミングエラーの導入を回避する)。
工程406では、装置が可能な最低のボーレート(例えば、62.5Kbps)を選択する。又、工程406では、装置がIsBusManagerの状態フラグを1に設定する。工程408では、装置が、図1のCANバス122のようなCANバスにおいて他の装置(例えば、図1の装置104、106、108及び110)から送信されたデータをリッスン(listen)する。工程410では、データが受信されると、他の装置(例えば、バスマネージャ)がバス上に存在し、処理が工程412に進む。データが受信されないと、CANバス上に他の装置が存在しないか、又はバスマネージャとして動作する装置が存在せず、処理は工程434に進む。
工程412では、装置がIsBusManagerの状態フラグを0に設定する。工程414では、フレーミングエラーが検出されると、ボーレートが不整合となっているおそれがある。フレーミングエラーが検出されると、処理は工程416に進む。フレーミングエラーが検出されないと、処理は工程430に進む。工程430では、装置が、後に更に説明する図6の接続検査処理600のような接続検査処理を実行しうる。接続検査処理が成功である場合には、処理が工程432に進み、成功コードのリターン処理を終了させる。接続検査処理が失敗すると、処理が工程432に進み、失敗コードのリターン処理を終了させる。成功コード及び失敗コードは、図3の処理300の工程310におけるような処理により利用して、有効なボーレートが装置に対して決定されたか否かを決定するようにしうる。
工程416では、装置によりCANコントローラをリセットしうる。工程418では、装置により、予め決定した回数の再試行(リトライ)が実行されたか否かを決定しうる。例えば、装置は、異なるボーレートに変更する前にボーレートが複数回(例えば、3回)有効であることを検査することができる。上述した再試行の回数を超えた場合、処理は工程420に進む。上述した再試行の回数を超えない場合には、処理は工程430に進む。
工程420では、装置により、全てのボーレートが試みられたか否かを決定する。全てのボーレートが試みられた場合には、処理は工程424に進む。全てのボーレートが試みられなかった場合には、処理は工程422に進む。
工程422では、次のボーレートが選択され、処理が工程408に戻る。工程424において、CANバスを介して有効ボーレートを成立させるための再試行の回数(例えば、3回)が予め決定した再試行総数を超える場合には、処理は工程426において終了され、失敗コードを戻す。この失敗コードは図3の処理300の工程310におけるような処理により利用して、有効ボーレートが装置に対して設定されなかったことを決定することができる。再試行の回数が予め決定した再試行総数を超えなかった場合には、処理は工程406に戻る。
工程410に戻るに、CANバスを介してデータが受信されない場合には、処理が工程434に進む。この工程434では、タイマが終了したか(時間が経過したか)否か又はForceNegotiation(フォースネゴシェーション)の状態フラグが1に設定されたか否かを決定する。一実施例では、タイマが終了した後までデータが受信されない場合には、装置は、他の装置がCANバスに通信可能に結合されていないことを決定しうる。この実施例では、処理が工程436に進む。タイマが終了せず且つForceNegotiationの状態フラグが1に設定されていない場合には、処理が工程408に戻る。
工程436では、IsBusManagerの状態フラグ又はForceNegotiationの状態フラグが1に設定されているか否かを調査する。どちらかの状態フラグが1に設定されている場合には、処理が工程442に進む。何れの状態フラグも1に設定されていない場合には、処理は工程438に進む。
工程438では、再試行総数が予め決定した値(例えば、3)を超えると、処理は工程440に進む。再試行総数が予め決定した値を超えない場合には、処理は工程408に進む。工程440では、ForceNegotiationのフラグが1に設定され、処理が工程408に戻る。
工程442では、ForceNegotiationの状態フラグを消去(例えば、0に設定)し、再試行カウンタを消去し、タイマをリセットする。工程444では、処理が、以下で説明する図5のデータ転送処理500のようなデータ転送処理を実行する。一実施例では、このデータ転送処理によりキープアライブデータフレームを送信し、このキープアライブデータフレームがCANバス上の他の装置により承認(アクノリッジメント)されたか否かを決定する。このデータ転送処理が終了した後、装置は聞き取りのみのモードに戻るように切換り、工程408に戻る。
[データ転送処理]
図4につき上述したように、装置はデータ転送処理を実行してキープアライブデータフレームを転送する。図5はデータ転送処理500の一例を示す。この処理500は工程502で開始される。
工程504では、装置がそのCANコントローラの送信機を有効にする。工程506では、装置がCANバスを介してキープアライブデータフレームを送信する。工程508では、装置により、図1のCANバス122のようなCANバスに通信可能に結合された1つ以上の装置(例えば、装置104、106、108及び110)から承認を受けたか否かを決定する。承認を受けていない場合には、処理は工程510に進む。承認を受けた場合には、処理は工程514に進む。
工程510では、装置がフレーム待ちタイマを調査する。フレーム待ちタイマが予め決定した期間(例えば、100ms)を超えない場合には、処理は工程508に戻る。フレーム待ちタイマが予め決定した期間を過ぎると、処理は工程512で終了し、失敗コードを戻す。
工程514では、IsBusManagerの状態フラグを1に設定する。工程516では、装置によりCANコントローラの送信機を無効にする(例えば、聞き取りのみのモードにする)。工程518では、処理が終了し、成功コードを戻す。
[接続検査処理]
図4につき上述したように、装置は、テストデータフレーム(例えば、全てのデータフレームフィールドにおけるテストデータパターン0xAA)を送信又は受信することにより、成立されたボーレートを検査する接続検査処理を実行しうる。図6は、接続検査処理600の一例を示す。この処理600は工程602で開始される。この工程602においては、処理により、装置がバスマネージャとして又はバスクライアントとして動作しているか否かを決定する。装置がバスマネージャ(例えば、IsBusManager=1)として動作している場合には、処理は工程604に進む。装置がバスクライアント(例えば、IsBusManager=0)として動作している場合には、処理は工程616に進む。
工程604では、CANバスを介して受信されるデータフレームをリッスンする。工程606では、データフレームが工程604において受信される前に、予め決定した期間が経過したか否かを決定するために受信タイムアウトを調査する。この受信タイムアウトが経過した場合には、処理が工程608に進む。この受信タイムアウトが経過していない場合には、処理が工程610に進む。
工程608では、処理により、上述した図4の自動ボーレート処理400のような自動ボーレート処理を実行する。工程614において、処理が終了する。
工程610において、装置がデータフレームを受信しなかった場合、処理は工程604に戻り、受信タイムアウトが過ぎるまでデータフレームをリッスンし続ける。装置がデータフレームを受信した場合、処理は工程612に進む。装置がデータフレームを受信しなかった場合、処理は工程604に戻る。
工程612では、工程610で受信したデータフレームが検査される。一実施例では、この検査にテストデータパターン(例えば、0xAA)に対する調査を含めることができる。この実施例では、データフレームが(フレーミングエラーの為に)テストパターンを有さない場合には、装置により、CANバスの劣化が生じたことを決定しうる。工程614において処理が終了する。
工程602に戻って説明するに、装置により、バスクライアントモードで動作している(すなわち、IsBusManager=0である)ことを決定すると、処理が工程616に進む。この工程616では、装置が、テストデータパターンを含む多数のデータフレームを送信しうる。例えば、0xAAのデータパターンを有するデータフレームを装置によりCANバスを介して送信しうる。工程618では、装置により、データフレームの全てが、CANバスに通信可能に結合された他の装置(例えば、バスマネージャ)により承認されたか否かを確かめる。全てのデータフレームが承認された場合には、処理が工程614で終了される。全てよりも少ないデータフレームが承認された場合には、処理が工程620に進む。
工程620では、全ての承認を受ける前に、予め決定した期間が経過したか否かを決定するために待ちのタイムアウトを調査する。待ちのタイムアウトが経過していない場合には、処理は工程622に進む。待ちのタイムアウトが経過した場合には、処理は工程608に進む。
工程622では、処理は工程616で送られたデータフレームの承認を待ち続ける。データフレームの承認を待つのに続いて処理が工程618に戻る。
工程608において、処理は、上述した図4の自動ボーレート処理400のような自動ボーレート処理を実行する。工程614において処理が終了する。
[バスマネージャサービス処理]
図3につき前述したように、装置は、この装置が現在バスマネージャとして動作している場合に、バスマネージャサービスを実行しうる。図7はバスマネージャサービス700の一例を示している。この処理700は工程702で開始する。
工程702では、装置により、図1のCANバス122のようなCANバスが予め決定した期間(例えば、125ms)の間待機状態にあったか否かを調査する。CANバスが予め決定した期間の間待機状態にあった場合には、処理が工程704に進む。CANバスが予め決定した期間の間待機状態になかった場合には、処理が工程708に進む。
工程704では、装置がCANバスを介してキープアライブデータフレームを送信する。工程706において、処理が終了する。
工程708では、処理によりCANバス調査を実行しうる。装置により、最後のCANバス調査が最近に(例えば、1秒前よりも後に)実行されたことを決定した場合には、処理が工程706で終了される。装置により、最後のCANバス調査が最近に実行されなかったことを決定した場合には、処理が工程710に進む。
工程710では、装置により、CANバスがアクセス可能であるか否かを決定するとともに、CANバスの品質を決定する。一実施例では、装置によりCANバスの状態を決定しうる。例えば、装置のCANコントローラはBUS_PASSIVE (聞き取りのみ)のモード又はBUS_OFF (使用不可能)モードにおけるものとすることができる。装置によりCANバスが有効(アクティブ)でないことを決定すると、処理は工程712に進みその後工程716に進み、CANコントローラをリセットし且つより低いボーレートを選択する。少なくとも1つの実施例では、装置により工程710においてCANバスの品質を決定することもできる。この実施例では、装置が受信/送信エラーの件数に対してこの装置のCANコントローラに質問することができる。エラーの件数が予め決定した数(例えば、96)を超える場合には、処理が工程712に進む。エラーの件数が予め決定した数を超えない場合には(例えば、CANバス品質が良好である場合には)、処理は工程714に進む。
工程712では、装置がそのCANコントローラをリセットし、(エラーの件数に含まれる)全てのカウンタを消去する。工程716では、より低いボーレートを選択でき、処理が工程720に進む。
工程714では、装置の現在のボーレートが、支持された最大のボーレートである場合には、処理は工程706で終了する。装置の現在のボーレートが、支持された最大のボーレートでない場合には、処理は工程718に進む。工程718においては、装置が次の最大のボーレートを選択し、処理が工程720に進む。
工程720においては、装置が、工程716又は工程718で選択された新たなボーレートの識別子を含むボーレート変更要求(BAUD_RATE_SWITCH )を、CANバスを介して送信する。
工程722では、装置がCANバスに結合された装置(例えば、図1の装置104、106、108及び110)からの承認否定(例えば、CANCEL_SWITCH 、PUBLISH_DEVICE)をリッスンする。工程724では、承認否定を受信しない場合に、装置は工程726に進む。承認否定を受信した場合には、装置はボーレートを変更する試みを放棄しうる。一実施例では、装置は、ある装置が新たなボーレートを支持し得ない場合に、キャンセルスイッチ応答を受信するようにする。他の実施例では、装置は、新たな装置がCANバスに加えられているか、又はある装置がCANバスに対するボーレートを成立させようとしているか、或いはこれらの双方が行なわれており、従って、新たな装置がオンライン状態になるまで新たなボーレートへの変更を遅延させる必要があるようにすることを表すパブリッシュデバイス要求(PUBLISH_DEVICE)を受信する。承認否定応答を受信した場合には、装置はボーレートを変更する試みを放棄し、処理は工程706において終了する。
工程726では、装置は、ボーレート変更要求(BAUD_RATE_SWITCH )に応答するための予め決定した期間(例えば、5秒)を待つ。予め決定した期間が経過していない場合には、処理は工程722に戻り、応答をリッスンし続ける。予め決定した期間が経過した場合には、処理は工程728に進む。この工程728では、装置がボーレート変更確認要求(BAUD_RATE_SWITCH_CONFIRM)を送信する。一実施例では、ボーレート変更確認要求を受信する装置がこれら装置のCANコントローラのボーレートを新たなボーレートに設定する。工程730では、装置がそのCANコントローラを、工程716又は工程718で識別された新たなボーレートにリセット及び初期化する。工程732では、装置により、上述した図6の接続検査処理のような接続検査処理を実行し、処理は工程706で終了する。
[バスクライアントサービス処理]
図3につき上述したように、装置が現在バスクライアントとして動作している場合に、この装置はバスクライアントサービス処理を実行しうる。図8はバスクライアントサービス処理800の一例を示している。この処理800は工程802で開始する。
工程802では、図1のCANバス122のようなCANバスを介してバスマネージャからの要求(例えば、BAUD_RATE_SWITCH 、BAUD_RATE_SWITCH_CONFIRM、等)をリッスンする。
工程804において、ボーレート変更確認要求が受信された場合に、処理は工程806に進む。ボーレート変更確認要求が受信されない場合には、処理は工程818に進む。
工程806では、装置がSwitchFlagの状態フラグを調査する。このSwitchFlagの状態フラグが1である場合には、処理が工程810に進む。このSwitchFlagの状態フラグが(例えば、新たなボーレートに対する不適合の為に)0である場合には、処理が工程812に進む。
工程810では、装置は、以下で更に説明するように工程818において前に受信したボーレート変更要求で識別された新たなボーレートを設定する。工程816において、処理は終了する。
工程812では、装置によりそのCANコントローラをリセットする。工程814では、処理により、上述した図4の自動ボーレート処理400のような自動ボーレート処理を実行する。工程816においてこの処理が終了する。
工程804に戻るに、受信した要求がボーレート変更確認要求でない場合には、処理は工程818に進む。この工程818において、受信した要求がボーレート変更要求である場合には、処理は工程820に進む。受信した要求がボーレート変更でない場合には、処理は工程824に進む。
工程820では、ボーレート変更要求で識別された新たなボーレートが装置のCANコントローラにより支持された場合には、処理が工程820に進み、SwitchFlagの状態フラグを1に設定する。新たなボーレートが装置のCANコントローラにより支持されない場合には、処理によりSwitchFlagの状態フラグを0に設定する。工程816でこの処理が終了する。
工程824では、装置が送信/受信エラーの件数に対してこの装置のCANコントローラに質問する。エラーの件数が予め決定した数(例えば、96)より少ない場合には、処理は工程816で終了する。エラーの件数が予め決定した数を超える場合には、処理は工程826に進む。この工程826では、装置により、そのCANコントローラがBUS_OFF 又はERROR_PASSIVE モードにあるかを調査する。このCANコントローラがBUS_OFF 又はERROR_PASSIVE モードにある場合には、装置は正しい処置(例えば、そのCANコントローラをBUS_ACTIVEに設定する処置)をとり、処理は工程828に進む。このCANコントローラがBUS_OFF 又はERROR_PASSIVE モードにない場合には、処理は工程832に進む。工程828では、装置はそのCANコントローラをリセットする。工程830では、処理は、上述した図4の自動ボーレート処理400のような自動ボーレート処理を実行する。
工程832では、装置により、バスの品質が低いことを表しているデータフレームを、CANバスを介して送信する。一実施例では、バスマネージャとして動作している装置(例えば、図1の装置104、106、108及び110)がデータフレームを受信し、これに応じてボーレートを調整する。工程816で処理が終了する。
処理300〜800の各々は、特定の実施例での1つの特定の工程列を示している。これらの処理に含まれる工程は、特にここに開示したように構成した1つ以上のコンピュータシステム又は装置(連続可能な電源、センサ、等)により或いはこれらを用いることにより実行しうる。幾つかの工程は任意的なものであり、これら自体を1つ以上の実施例に従って省略することができる。更に、ここに開示した実施例の範囲を逸脱することなく、工程の順序を変えるか又は他の工程を加えることができる。更に、上述したように、少なくとも1つの実施例において、工程を、特別に構成した特定の機構、すなわちここに開示した例及び実施例に応じて構成した自動ボーレート選択システムで実行する。
ここに開示した実施例は、種々の通信技術及びプロトコルと関連させて用いることができる。例えば、ある実施例は、特に、MODBUS、コモンインダストリアルプロトコル(共通産業プロトコル)及びBACnetを用いて通信する。
従って、少なくとも1つの例の幾つかの態様を説明したが、種々の変形、変更及び改善が当業者にとって容易に達成されること明らかである。例えば、ここに開示した例を他の状況で用いることもできる。このような変形、変更及び改善は本発明の一部となるものであり、ここに開示した例の範囲内となるものである。従って、前述した説明及び図面は例示にすぎないものである。

Claims (20)

  1. メモリと、
    コントローラエリアネットワーク(CAN)バスに結合されたCANコントローラと、
    前記メモリ及び前記CANコントローラに結合された少なくとも1つのプロセッサと
    を具える装置であって、前記少なくとも1つのプロセッサは、
    前記CANコントローラを第1のボーレートに設定し、
    第2のボーレートを決定し、
    この第2のボーレートの決定に応答して、前記第2のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信する
    ように構成されている装置。
  2. 請求項1に記載の装置において、前記少なくとも1つのプロセッサは更に、
    タイムアウトが経過したことを決定し、
    このタイムアウトが経過したことの決定に応答して、前記CANバスを介してボーレート確認要求を送信し、
    前記CANコントローラを第2のボーレートに設定する
    ように構成されている装置。
  3. 請求項2に記載の装置において、前記少なくとも1つのプロセッサは更に、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、
    このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していないことを決定し、
    前記第2のボーレートよりも小さい下位のボーレートを決定し、
    この下位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信する
    ように構成されている装置。
  4. 請求項2に記載の装置において、前記少なくとも1つのプロセッサは更に、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、
    このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していることを決定し、
    前記第2のボーレートよりも大きい上位のボーレートを決定し、
    この上位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信する
    ように構成されている装置。
  5. 請求項2に記載の装置において、前記少なくとも1つのプロセッサは更に、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、
    このデータフレームの受信に応答して、前記CANバスに結合されたCAN装置が前記第2のボーレートを支持していないことを決定し、
    前記CANコントローラを前記第1のボーレートで動作させる
    ように構成されている装置。
  6. 請求項1に記載の装置において、前記少なくとも1つのプロセッサは更に、
    第1のタイムアウトが生じたことを決定し、
    この第1のタイムアウトに基づいてクライアントモードに切換える
    ように構成されている装置。
  7. 請求項6に記載の装置において、前記少なくとも1つのプロセッサは更に、前記CANバスを高周波で信号伝達させるバイトのパターンを含む少なくとも1つのデータフレームを、前記CANバスを介して送信するように構成されている装置。
  8. 請求項6に記載の装置において、前記少なくとも1つのプロセッサは更に、
    前記CANバスに結合された装置から、新たなボーレートの少なくとも1つの識別子を含むボーレート変更要求を受信し、
    この新たなボーレートが前記CANバスにより支持されたか否かを決定し、
    この新たなボーレートが前記CANバスにより支持されなかった場合に、前記CANバスを介して承認否定を送信する
    ように構成されている装置。
  9. メモリと、コントローラエリアネットワーク(CAN)バスに結合されたCANコントローラと、前記CANコントローラ及び前記メモリに結合された少なくとも1つのプロセッサとを有するコンピュータを用いてボーレートを選択するコンピュータ実装方法であって、この方法が、
    前記CANコントローラを第1のボーレートに設定するステップと、
    第2のボーレートを決定するステップと、
    この第2のボーレートの決定に応答して、前記第2のボーレートの少なくとも識別子を有するボーレート変更要求を、前記CANバスを経て送信するステップと
    を含むコンピュータ実装方法。
  10. 請求項9に記載のコンピュータ実装方法が更に、
    タイムアウトが経過したことを決定するステップと、
    このタイムアウトが経過したことの決定に応答して、ボーレート確認要求を、前記CANバスを経て送信するステップと、
    前記CANコントローラを前記第2のボーレートに設定するステップと
    を含むコンピュータ実装方法。
  11. 請求項10に記載のコンピュータ実装方法が更に、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信するステップと、
    このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していないことを決定するステップと、
    前記第2のボーレートよりも小さい下位のボーレートを決定するステップと、
    この下位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するステップと
    を含むコンピュータ実装方法。
  12. 請求項10に記載のコンピュータ実装方法が更に、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信するステップと、
    このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していることを決定するステップと、
    前記第2のボーレートよりも大きい上位のボーレートを決定するステップと、
    この上位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信するステップと
    を含むコンピュータ実装方法。
  13. 請求項10に記載のコンピュータ実装方法が更に、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信するステップと、
    このデータフレームの受信に応答して、前記CANバスに結合されたCAN装置が前記第2のボーレートを支持していないことを決定するステップと、
    前記CANコントローラを前記第1のボーレートで動作させるステップと
    を含むコンピュータ実装方法。
  14. 請求項9に記載のコンピュータ実装方法が更に、
    第1のタイムアウトが生じたことを決定するステップと、
    この第1のタイムアウトに基づいてクライアントモードに切換えるステップと
    を含むコンピュータ実装方法。
  15. 請求項14に記載のコンピュータ実装方法が更に、前記CANバスを高周波で信号伝達させるバイトのパターンを含む少なくとも1つのデータフレームを、前記CANバスを介して送信するステップを含むコンピュータ実装方法。
  16. 請求項14に記載のコンピュータ実装方法が更に、
    新たなボーレートの少なくとも1つの識別子を含むボーレート変更要求を、前記CANバスを介して受信するステップと、
    この新たなボーレートが前記CANコントローラにより支持されたか否かを決定するステップと、
    この新たなボーレートが前記CANコントローラにより支持されなかった場合に、前記CANバスを介して承認否定を送信するステップと
    を含むコンピュータ実装方法。
  17. コントローラエリアネットワーク(CAN)バスに結合された装置に対するボーレートを選択するための指令の列が記憶された非一過性のコンピュータ可読媒体であって、前記指令により、少なくとも1つのプロセッサが、
    CANコントローラを第1のボーレートに設定し、
    第2のボーレートを決定し、
    この第2のボーレートの決定に応答して、前記第2のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信する
    ようにした非一過性のコンピュータ可読媒体。
  18. 請求項17に記載の非一過性のコンピュータ可読媒体において、前記指令の列には、前記少なくとも1つのプロセッサが、
    タイムアウトが経過したことを決定し、
    このタイムアウトが経過したことの決定に応答して、前記CANバスを介してボーレート確認要求を送信し、
    前記CANコントローラを第2のボーレートに設定する
    ようにする指令が含まれている非一過性のコンピュータ可読媒体。
  19. 請求項18に記載の非一過性のコンピュータ可読媒体において、前記指令の列には、前記少なくとも1つのプロセッサが、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、
    このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していないことを決定し、
    前記第2のボーレートよりも小さい下位のボーレートを決定し、
    この下位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信する
    ようにする指令が含まれている非一過性のコンピュータ可読媒体。
  20. 請求項18に記載の非一過性のコンピュータ可読媒体において、前記指令の列には、前記少なくとも1つのプロセッサが、
    前記CANバスに結合された少なくとも1つの装置からデータフレームを受信し、
    このデータフレームの受信に応答して、前記CANバスが前記CANコントローラのエラー件数に基づいて前記第2のボーレートを支持していることを決定し、
    前記第2のボーレートよりも大きい上位のボーレートを決定し、
    この上位のボーレートの少なくとも識別子を含むボーレート変更要求を、前記CANバスを介して送信する
    ようにする指令が含まれている非一過性のコンピュータ可読媒体。
JP2016543664A 2013-12-30 2013-12-30 Canネットワークにおけるボーレート自動選択システム及び方法 Pending JP2017507534A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/078323 WO2015102579A1 (en) 2013-12-30 2013-12-30 System and method for automatically selecting baud rate in a can network

Publications (1)

Publication Number Publication Date
JP2017507534A true JP2017507534A (ja) 2017-03-16

Family

ID=53493787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016543664A Pending JP2017507534A (ja) 2013-12-30 2013-12-30 Canネットワークにおけるボーレート自動選択システム及び方法

Country Status (8)

Country Link
US (1) US10541833B2 (ja)
EP (1) EP3090333A4 (ja)
JP (1) JP2017507534A (ja)
CN (1) CN105960629B (ja)
AU (1) AU2013409496A1 (ja)
BR (1) BR112016015469A2 (ja)
SG (1) SG11201605357QA (ja)
WO (1) WO2015102579A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102423251B1 (ko) * 2015-08-21 2022-07-21 현대모비스 주식회사 신경망 학습을 이용한 네트워크 송신 시점 최적화 시스템
DE102016004095B4 (de) * 2016-04-05 2024-02-08 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Automatisches Eingrenzen eines physikalischen Netzwerkfehlers zur Laufzeit
CN106603358B (zh) * 2016-11-24 2019-04-16 南京国电南自电网自动化有限公司 一种基于mlvds接口的快速总线系统和实现方法
US10425361B2 (en) * 2017-03-16 2019-09-24 Trane International Inc. Dynamic allocation of termination resistors in a communication network
CN106788907A (zh) * 2017-03-24 2017-05-31 湖南浩奇通讯技术有限公司 主从站通信波特率自动匹配
CA3073683C (en) * 2017-08-24 2023-03-07 Siemens Industry, Inc. System and method for qualitative analysis of baseband building automation networks
CN109510689B (zh) * 2018-12-25 2022-03-22 迈普通信技术股份有限公司 串口通信方法、装置及系统
CN111565138B (zh) * 2019-02-13 2023-03-14 厦门雅迅网络股份有限公司 基于双系统的can总线波特率自适应方法、存储介质
CN111030904B (zh) * 2019-11-22 2021-12-14 天津津航计算技术研究所 一种多级通讯下多路can总线消息实时处理方法
CN111224837B (zh) * 2019-11-25 2020-11-13 上海星融汽车科技有限公司 自动识别车辆ecu的can通信波特率的方法及其系统
US20220416312A1 (en) * 2019-12-02 2022-12-29 Briggs & Stratton, Llc Cell module assemblies battery pack
CN111277455B (zh) * 2020-01-15 2023-05-12 深圳市元征科技股份有限公司 Can网络波特率识别方法、装置、设备和存储介质
CN115023903B (zh) * 2020-01-30 2023-12-05 东芝开利株式会社 通信系统
CN112511334B (zh) * 2020-10-13 2024-05-07 博流智能科技(南京)有限公司 提高通信速率的方法及系统
CN113141323A (zh) * 2021-03-22 2021-07-20 北京星网锐捷网络技术有限公司 基于串口的设备间通信方法及装置
CN113992530B (zh) * 2021-10-20 2023-06-23 潍柴动力股份有限公司 波特率识别方法、装置、电子设备和存储介质
CN114172760A (zh) * 2021-11-15 2022-03-11 广州极飞科技股份有限公司 通信控制方法、装置、无人车、存储介质及电子设备
CN114500149B (zh) * 2022-01-05 2023-12-15 东风柳州汽车有限公司 波特率自适应调整方法、装置、设备及存储介质
CN114615104B (zh) * 2022-03-14 2023-11-28 鹍骐科技(北京)股份有限公司 一种基于国产化fpga实现的智能串口通讯方法及系统
CN114866367B (zh) * 2022-04-13 2023-12-05 深圳市三旺通信股份有限公司 Can设备通信方法、装置、can光猫设备与介质
CN114584276B (zh) * 2022-05-05 2022-08-23 合肥芯荣微电子有限公司 一种UART波特率自适应方法和系统以及SoC芯片
CN115643289B (zh) * 2022-10-17 2023-08-25 北京天融信网络安全技术有限公司 数据传输方法、装置、设备及介质
CN115643129B (zh) * 2022-10-26 2024-04-09 中国船舶重工集团公司第七一九研究所 船舶柴油发电机组监控星型can总线的波特率调控结构和方法
CN117640016B (zh) * 2024-01-26 2024-05-17 北京智芯微电子科技有限公司 波特率协商方法、装置、计算机设备、芯片及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003507966A (ja) * 1999-08-20 2003-02-25 ピルツ ゲーエムベーハー アンド コー. フィールドバスシステムにおけるデータ送信速度の調整方法
JP2005145262A (ja) * 2003-11-17 2005-06-09 Denso Corp 車載用lanシステム
JP2008211644A (ja) * 2007-02-27 2008-09-11 Auto Network Gijutsu Kenkyusho:Kk 車載通信装置及び車載通信システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708239B1 (en) * 2000-12-08 2004-03-16 The Boeing Company Network device interface for digitally interfacing data channels to a controller via a network
KR100754633B1 (ko) * 2000-12-27 2007-09-05 삼성전자주식회사 이동통신 시스템에서 패킷 데이터 서비스를 위한 송수신장치 및 방법
EP1515479A4 (en) * 2002-05-31 2005-06-29 Matsushita Electric Ind Co Ltd DATA TRANSFER METHOD AND DEVICE
FR2859853B1 (fr) * 2003-09-17 2005-12-16 Atmel Nantes Sa Procede de detection automatique du debit d'un reseau, notamment de type bus can, et de configuration au debit detecte, dispositif correspondant
US20070124627A1 (en) * 2004-03-26 2007-05-31 Toshiaki Katano Communication processing device, home electric device, and home network system
US7594226B2 (en) * 2004-08-16 2009-09-22 National Instruments Corporation Implementation of packet-based communications in a reconfigurable hardware element
US7505837B2 (en) * 2004-12-30 2009-03-17 Spx Corporation Method and apparatus for linking to a vehicle diagnostic system
US7900096B2 (en) * 2009-01-15 2011-03-01 International Business Machines Corporation Freeing a serial bus hang condition by utilizing distributed hang timers
US8650341B2 (en) * 2009-04-23 2014-02-11 Microchip Technology Incorporated Method for CAN concatenating CAN data payloads
EP2735925B1 (de) * 2012-11-23 2016-08-17 Siemens Aktiengesellschaft Automatisierungseinrichtung

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003507966A (ja) * 1999-08-20 2003-02-25 ピルツ ゲーエムベーハー アンド コー. フィールドバスシステムにおけるデータ送信速度の調整方法
JP2005145262A (ja) * 2003-11-17 2005-06-09 Denso Corp 車載用lanシステム
JP2008211644A (ja) * 2007-02-27 2008-09-11 Auto Network Gijutsu Kenkyusho:Kk 車載通信装置及び車載通信システム

Also Published As

Publication number Publication date
SG11201605357QA (en) 2016-07-28
US20160330044A1 (en) 2016-11-10
CN105960629A (zh) 2016-09-21
CN105960629B (zh) 2020-11-24
WO2015102579A1 (en) 2015-07-09
EP3090333A4 (en) 2017-07-12
EP3090333A1 (en) 2016-11-09
US10541833B2 (en) 2020-01-21
BR112016015469A2 (pt) 2017-08-08
AU2013409496A1 (en) 2016-07-14

Similar Documents

Publication Publication Date Title
JP2017507534A (ja) Canネットワークにおけるボーレート自動選択システム及び方法
JP5872731B2 (ja) クラスタの複数のノードのそれぞれに対してリンクの障害の検出を伝えるためのコンピュータ実装方法、非一時的なコンピュータ可読媒体およびコンピュータシステム
US7797565B1 (en) System and method for maintaining communication protocol connections during failover
US10601930B2 (en) Lease-based heartbeat protocol method and apparatus
DK2700212T3 (en) System and method for automatically assigning addresses to devices in a multidrop network
US8483095B2 (en) Configurable network socket retransmission timeout parameters
US20200351366A1 (en) Inter-process communication fault detection and recovery system
US6898638B2 (en) Method and apparatus for grouping data for transfer according to recipient buffer size
CN109218369A (zh) 远程过程调用请求控制方法及装置
JP4001889B2 (ja) ネットワークにおけるバッファ・データのプリエンプティブな再送
US7484055B1 (en) Fast handling of state change notifications in storage area networks
JP2005301436A (ja) クラスタシステムおよびクラスタシステムにおける障害回復方法
EP2283612B1 (en) Synchronizing device error information among nodes
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
CN109039747B (zh) Dpdk服务的双机热备控制方法及装置
CN111162952A (zh) 一种设备容错方法及装置
US11748176B2 (en) Event message management in hyper-converged infrastructure environment
US10055315B2 (en) Failure monitoring in distributed computing systems
EP3167372A1 (en) Methods for faciltating high availability storage services and devices thereof
US10114712B2 (en) Failure detection via implicit leases in distributed computing systems
KR20080033678A (ko) 로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180410

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180911