特許第5963783号(P5963783)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロチップ テクノロジー インコーポレイテッドの特許一覧

特許5963783CANバスモジュールおよび自動速度検出を有するマイクロコントローラ
<>
  • 特許5963783-CANバスモジュールおよび自動速度検出を有するマイクロコントローラ 図000002
  • 特許5963783-CANバスモジュールおよび自動速度検出を有するマイクロコントローラ 図000003
  • 特許5963783-CANバスモジュールおよび自動速度検出を有するマイクロコントローラ 図000004
  • 特許5963783-CANバスモジュールおよび自動速度検出を有するマイクロコントローラ 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5963783
(24)【登録日】2016年7月8日
(45)【発行日】2016年8月3日
(54)【発明の名称】CANバスモジュールおよび自動速度検出を有するマイクロコントローラ
(51)【国際特許分類】
   H04L 7/027 20060101AFI20160721BHJP
【FI】
   H04L7/027
【請求項の数】15
【全頁数】12
(21)【出願番号】特願2013-557739(P2013-557739)
(86)(22)【出願日】2012年2月22日
(65)【公表番号】特表2014-511068(P2014-511068A)
(43)【公表日】2014年5月1日
(86)【国際出願番号】US2012026010
(87)【国際公開番号】WO2012121881
(87)【国際公開日】20120913
【審査請求日】2015年2月20日
(31)【優先権主張番号】13/041,535
(32)【優先日】2011年3月7日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】397050741
【氏名又は名称】マイクロチップ テクノロジー インコーポレイテッド
【氏名又は名称原語表記】MICROCHIP TECHNOLOGY INCORPORATED
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】マック, ジョエル
【審査官】 白井 亮
(56)【参考文献】
【文献】 特開2009−077126(JP,A)
【文献】 米国特許第05371766(US,A)
【文献】 国際公開第2003/058468(WO,A1)
【文献】 特開平03−057349(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/027
(57)【特許請求の範囲】
【請求項1】
マイクロコントローラの中のコントローラエリアネットワークモジュールを初期化するための方法であって、
該方法は、
−コントローラエリアネットワーク信号の連続的な立ち下がりエッジまたは連続的な立ち上がりエッジの間の時間を測定することを含み、
−該測定された時間をソートすることにより、第1のソートされたリストを提供することと、
−該ソートされたリストのうちの隣接する測定された時間の間の差値を決定することと、
−該差値をソートすることにより、第2のソートされたリストを提供することと、
−該第2のソートされたリストから第1の差値を選択し、該第1の差値から第1のビットレート周波数を決定することと、
−該選択されたビットレート周波数を使用して、該コントローラエリアネットワークモジュールを初期化することと、
−コントローラエリアネットワーク信号フレームを受信することと、
−エラーが生じたか否かを決定することと、
−エラーが生じた場合、有効コントローラエリアネットワーク周波数が見つけられるまで、次の周波数を選択し、該コントローラエリアネットワークモジュールを初期化することを繰り返すことと
によって特徴付けられる、方法。
【請求項2】
外部コントローラエリアネットワークラインを前記マイクロコントローラの捕捉モジュールの入力と連結することにより、前記時間を測定することをさらに含む、請求項1に記載の方法。
【請求項3】
コントローラエリアネットワーク信号を前記マイクロコントローラの捕捉モジュールの入力に内部的にフィードすることにより、前記時間を測定することをさらに含む、請求項1に記載の方法。
【請求項4】
前記差値をソートするステップの後に、
無効周波数をもたらす差値を破棄するステップをさらに含む、請求項1に記載の方法。
【請求項5】
タイマおよび捕捉ユニットは、前記時間を測定するために使用される、請求項1に記載の方法。
【請求項6】
コントローラエリアネットワーク信号の連続的な立ち下がりエッジまたは連続的な立ち上がりエッジの間の所定の数、特に10の時間が、測定される、請求項3に記載の方法。
【請求項7】
有効周波数が見つけられない場合、前記方法が繰り返される、請求項1に記載の方法。
【請求項8】
前記差値から周波数を決定するステップは、ルックアップテーブルを使用して行われる、請求項1に記載の方法。
【請求項9】
前記差値から周波数を決定するステップは、丸めまたは切り捨てを使用して周波数を計算する、請求項1に記載の方法。
【請求項10】
前記マイクロコントローラは、前記方法を行うようにプログラムされる、請求項1に記載の方法。
【請求項11】
前記マイクロコントローラは、前記方法を行う状態機械を備える、請求項1に記載の方法。
【請求項12】
マイクロコントローラであって、
該マイクロコントローラは、
中央処理ユニットと、
コントローラエリアネットワークモジュールと、
タイマと、
該タイマと連結された捕捉モジュールと
を備え、
該マイクロコントローラは、請求項1〜11のいずれか一項に記載の方法を行うことによって、コントローラエリアネットワーク周波数を自動的に検出するように構成されている、マイクロコントローラ。
【請求項13】
前記捕捉モジュールは、エッジ検出器を備え、該エッジ検出器は、前記タイマを捕捉レジスタと連結するドライバを制御する、請求項12に記載のマイクロコントローラ。
【請求項14】
制御可能ドライバを備え、該制御可能ドライバは、コントローラエリアネットワークバスモジュールの入力と前記捕捉モジュールの入力との間に連結されている、請求項12に記載のマイクロコントローラ。
【請求項15】
前記状態機械を制御するための特殊機能レジスタを備える、請求項12に記載のマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
(技術分野)
本発明は、コントローラエリアネットワーク(CAN)モジュールを有するマイクロコントローラに関する。
【背景技術】
【0002】
(背景)
コントローラエリアネットワーク(CAN)は、高レベルのセキュリティによって、分散型リアルタイム制御を効率的にサポートするシリアル通信プロトコルである。CANの用途は、高速デジタル通信ネットワークから低コスト多重配線まで及ぶ。CANは、リアルタイム用途のための高信頼性シリアルデータ通信バスである。CANは、1秒あたり最大1メガビットのデータレートで動作し、優れたエラー検出および閉じ込め性能を有し、元来は、自動車内において使用するために開発された。CANの背後にある動機は、自動車用電子機器、エンジン制御ユニット、センサ、横滑り防止システム等の相互運用性を改善する一方、配線用ハーネス重量および複雑性を低減させることによって、自動車をより信頼性があり、安全、かつ燃料効率的にするというものであった。CANの出現以来、産業オートメーションおよび自動車/トラック用途において、CANプロトコルが、広く普及している。騒音環境におけるCANバスのロバスト性ならびに故障状態の検出およびそこからの回復能力は、CANを産業制御機器、医療機器、試験機器、モバイルおよびポータブル機械、器具等と併用するために好適なものにしている。
【0003】
CANは、例えば、2本のワイヤを備える1つの論理バスを有する非同期シリアルバスシステムである。等しいバスノードを有する開放型の線形バス構造を有する。CANバスは、2つ以上のノードから成る。バス上のノードの数は、他のノードの通信を妨害せずに、動的に変更され得る。
【0004】
CAN論理バスは、「ワイヤードOR」機構に対応し、「劣性」ビット(大部分は、必ずしもではないが、論理レベル「1」に相当する)が、「優性」ビット(大部分は、論理レベル「0」)によって上書きされる。いずれのバスノードも、優性ビットを送信していない限り、バスラインは、劣性状態にあるが、任意のバスノードからの優性ビットは、優性バス状態を生成する。したがって、CANバスラインのために、2つの可能性として考えられるビット状態(優性および劣性)を伝送可能である、媒体が選択される。使用される一般的物理的媒体は、ツイストワイヤ対である。バスワイヤは、したがって、「CANH」および「CANL」と呼ばれ、直接、CANコントローラノードに、またはコネクタを介して、そこに接続され得る。
【0005】
CANバスプロトコルでは、バスノードは、アドレスされず、むしろ、アドレス情報は、伝送されるメッセージ内に含有される。これは、メッセージコンテンツ、例えば、エンジン速度、オイル温度等を識別する、識別子(各メッセージの一部)を介して行われる。識別子は、加えて、メッセージの優先順位を示す。識別子のバイナリ値が低いほど、メッセージの優先順位が高くなる(より優性なビット)。
【0006】
CANコントローラでは、アーキテクチャは、単純UARTに類似するが、完全フレームが、文字の代わりに、送信される。すなわち、(典型的には)単一伝送バッファおよび二重バッファによる受信バッファが存在する。CPUは、フレームを伝送バッファ内に置き、フレームが送信されると、中断する。CPUは、フレームを受信バッファ内で受信し、中断し、バッファを空にする(後続フレームが受信される前に)。CPUは、伝送および受信を管理し、フレームの記憶を処理しなければならない。
【0007】
初期化の間、伝送デバイスおよび受信デバイスは、概して、所定のCAN周波数を使用するように、その個別のCANモジュールをプログラムする。しかしながら、多くの用途では、この周波数は、既知ではない場合がある。また、各CANビットの長さは、ある公称長の約20%変動し得る。さらに、作動中システムでは、システムが同期され得る、「既知の初期化伝送」は、存在しない。言い換えると、デバイスが既に確立されたCANバスシステムに連結される場合、転送されるメッセージのコンテンツは、未知である。したがって、従来のシステムでは、試行錯誤法を使用してCANバスの正確な動作周波数を決定し得るが、これは、非常に長いセットアップ時間をもたらす可能性がある、または完全に故障さえし得る。他のシリアルバスシステムでは、初期化段階は、「5555」または「AAAA」等の同期文字配列を使用して行われ得る。しかしながら、そのような初期化ルーチンは、特に、CANバスが、既に動作中である場合、利用可能ではないときがある。
【0008】
故に、CANシステム内で使用される動作周波数の迅速決定を可能にする、CANモジュールを有するマイクロコントローラのための改良された自動速度検出システムおよび方法の必要性が存在する。
【発明の概要】
【課題を解決するための手段】
【0009】
ある実施形態によると、マイクロコントローラ内でコントローラエリアネットワーク(CAN)モジュールを初期化するための方法は、CAN信号の複数の立ち下がりエッジまたは立ち上がりエッジの間の期間を測定するステップと、期間をソートするステップと、ソートされた期間のうちの隣接する期間の間の差値を決定するステップと、差値をソートするステップと、ソートされた差値から第1の差値を選択し、第1の差値から第1の周波数を決定するステップと、選択された周波数を使用して、CANモジュールを初期化するステップと、CAN信号フレームを受信するステップと、エラーが生じたか否かを決定するステップと、エラーが生じた場合、有効CAN周波数が見つけられるまで、次の周波数を選択し、CANモジュールを初期化するステップを繰り返すステップとを含んでもよい。
【0010】
さらなる実施形態によると、本方法はまた、外部CANラインをマイクロコントローラの捕捉モジュールの入力と連結し、期間を測定するステップを含んでもよい。さらなる実施形態によると、本方法はさらに、CAN信号をマイクロコントローラの捕捉モジュールの入力に内部からフィードし、期間を測定するステップを含んでもよい。さらなる実施形態によると、本方法はさらに、差値をソートするステップの後に、無効周波数をもたらす差値を破棄するステップを含んでもよい。さらなる実施形態によると、タイマおよび捕捉ユニットを使用して、期間を測定することができる。さらなる実施形態によると、CAN信号の立ち下がりエッジの間の10の期間が、測定されてもよい。さらなる実施形態によると、本方法は、有効周波数が見つけられない場合、繰り返されてもよい。さらなる実施形態によると、差値から周波数を決定するステップは、ルックアップテーブルを使用して行われてもよい。さらなる実施形態によると、差値から周波数を決定するステップは、丸めまたは切り捨てを使用して、周波数を計算してもよい。さらなる実施形態によると、マイクロコントローラは、本方法を行うようにプログラムされてもよい。さらなる実施形態によると、マイクロコントローラは、本方法を行う、状態機械を備えてもよい。
【0011】
別の実施形態によると、マイクロコントローラは、中央処理ユニット(CPU)と、コントローラエリアネットワーク(CAN)モジュールと、タイマと、タイマと連結された捕捉モジュールとを備えてもよく、マイクロコントローラは、CAN信号の複数の立ち下がりまたは立ち上がりエッジ間の期間を測定するステップと、期間をソートするステップと、ソートされた期間の隣接する期間間の差を決定するステップと、第1の差を選択し、第1の差から第1の周波数を決定するステップと、選択された周波数を使用して、CANモジュールを初期化するステップと、CAN信号フレームを受信するステップと、エラーが生じたか否かを決定するステップと、エラーが生じた場合、次の周波数を選択し、有効CAN周波数が見つけられるまで、CANモジュールを初期化するステップを繰り返すステップとによって、CAN周波数を自動的に検出するように構成される。
【0012】
マイクロコントローラのさらなる実施形態によると、マイクロコントローラはさらに、無効周波数をもたらす差値を破棄するように構成されてもよい。マイクロコントローラのさらなる実施形態によると、捕捉モジュールは、タイマを捕捉レジスタと連結する、ドライバを制御する、エッジ検出器を備えてもよい。マイクロコントローラのさらなる実施形態によると、マイクロコントローラは、CANバスモジュールの入力と捕捉モジュールの入力との間に連結される、制御可能ドライバを備えてもよい。マイクロコントローラのさらなる実施形態によると、マイクロコントローラは、ルックアップテーブルを使用することによって、差値から周波数を決定するように構成されてもよい。マイクロコントローラのさらなる実施形態によると、マイクロコントローラは、丸めまたは切り捨てを使用して、差値から周波数を決定するように構成されてもよい。マイクロコントローラのさらなる実施形態によると、マイクロコントローラは、CAN周波数を決定するように、ソフトウェアによって、プログラムされてもよい。マイクロコントローラのさらなる実施形態によると、マイクロコントローラは、CAN周波数を決定するために、状態機械を備えてもよい。マイクロコントローラのさらなる実施形態によると、マイクロコントローラは、状態機械を制御するために、特殊機能レジスタを備えてもよい。
本願明細書は、例えば、以下の項目も提供する。
(項目1)
マイクロコントローラの中のコントローラエリアネットワーク(CAN)モジュールを初期化するための方法であって、
該方法は、
−CAN信号の複数の立ち下がりエッジまたは立ち上がりエッジの間の期間を測定することと、
−該期間をソートすることと、
−該ソートされた期間のうちの隣接する期間の間の差値を決定することと、
−該差値をソートすることと、
−該ソートされた差値から第1の差値を選択し、該第1の差値から第1の周波数を決定することと、
−該選択された周波数を使用して、該CANモジュールを初期化することと、
−CAN信号フレームを受信することと、
−エラーが生じたか否かを決定することと、
−エラーが生じた場合、有効CAN周波数が見つけられるまで、次の周波数を選択し、該CANモジュールを初期化することを繰り返すことと
を含む、方法。
(項目2)
外部CANラインを前記マイクロコントローラの捕捉モジュールの入力と連結することをさらに含み、それにより、前記期間を測定する、項目1に記載の方法。
(項目3)
CAN信号を前記マイクロコントローラの捕捉モジュールの入力に内部的にフィードすることをさらに含み、それにより、前記期間を測定する、項目1に記載の方法。
(項目4)
前記差値をソートするステップの後に、
無効周波数をもたらす差値を破棄するステップをさらに含む、項目1に記載の方法。
(項目5)
タイマおよび捕捉ユニットを使用して、前記期間を測定する、項目1に記載の方法。
(項目6)
CAN信号の立ち下がりエッジの間の10の期間が測定される、項目3に記載の方法。
(項目7)
有効周波数が見つけられない場合、前記方法が繰り返される、項目1に記載の方法。
(項目8)
前記差値から周波数を決定するステップは、ルックアップテーブルを使用して行われる、項目1に記載の方法。
(項目9)
前記差値から周波数を決定するステップは、丸めまたは切り捨てを使用して周波数を計算する、項目1に記載の方法。
(項目10)
前記マイクロコントローラは、前記方法を行うようにプログラムされる、項目1に記載の方法。
(項目11)
前記マイクロコントローラは、前記方法を行う状態機械を備える、項目1に記載の方法。
(項目12)
マイクロコントローラであって、
該マイクロコントローラは、
中央処理ユニット(CPU)と、
コントローラエリアネットワーク(CAN)モジュールと、
タイマと、
該タイマと連結された捕捉モジュールと、
を備え、
該マイクロコントローラは、
−CAN信号の複数の立ち下がりエッジまたは立ち上がりエッジの間の期間を測定することと、
−該期間をソートすることと、
−該ソートされた期間についての隣接する期間の間の差を決定することと、
−第1の差を選択し、該第1の差から第1の周波数を決定することと、
−該選択された周波数を使用して、該CANモジュールを初期化することと、
−CAN信号フレームを受信することと、
−エラーが生じたか否かを決定することと、
−エラーが生じた場合、有効CAN周波数が見つけられるまで、次の周波数を選択し、該CANモジュールを初期化することを繰り返すことと
によって、CAN周波数を自動的に検出するように構成される、マイクロコントローラ。
(項目13)
前記マイクロコントローラは、無効周波数をもたらす差値を破棄するようにさら構成される、項目12に記載のマイクロコントローラ。
(項目14)
前記捕捉モジュールは、エッジ検出器を備え、該エッジ検出器は、前記タイマを捕捉レジスタと連結するドライバを制御する、項目12に記載のマイクロコントローラ。
(項目15)
制御可能ドライバを備え、該制御可能ドライバは、前記CANバスモジュールの入力と前記捕捉モジュールの入力との間に連結される、項目12に記載のマイクロコントローラ。
(項目16)
前記マイクロコントローラは、ルックアップテーブルを使用することによって、前記差値から周波数を決定するように構成される、項目12に記載のマイクロコントローラ。
(項目17)
前記マイクロコントローラは、丸めまたは切り捨てを使用して、前記差値から周波数を決定するように構成される、項目12に記載のマイクロコントローラ。
(項目18)
前記マイクロコントローラは、前記CAN周波数を決定するように、ソフトウェアによってプログラムされる、項目12に記載のマイクロコントローラ。
(項目19)
前記CAN周波数を決定するための状態機械を備える、項目12に記載のマイクロコントローラ。
(項目20)
前記状態機械を制御するための特殊機能レジスタを備える、項目19に記載のマイクロコントローラ。
【図面の簡単な説明】
【0013】
図1図1は、統合されたCANモジュールを有するマイクロコントローラの実施形態のブロック図である。
図2図2は、例示的CAN信号のタイミング図を示す。
図3図3は、ある実施形態による、CAN動作周波数を決定するための原理を示す。
図4図4は、ある実施形態による、流れ図を示す。
【発明を実施するための形態】
【0014】
図1を参照すると、マイクロコントローラ100は、点線によって示される。マイクロコントローラ100は、中央処理ユニット(CPU)110と、CPU110と連結されたCANバスモジュールまたは周辺デバイスとを備える。外部ピン130および135は、それを通して、CANバスモジュール120が、その別個の伝送および受信ラインCANTX、CANRXを外部CANバス180のツイスト対CANHおよびCANLラインに接続することができるように提供される。これは、通常、別個の内部信号CANRXおよびCANTXを個別のCANバス信号CANHおよびCANLに変換する外部インターフェースドライバ105を介して行われる。しかしながら、他の実施形態は、CANバスへの直接接続を可能にする、そのようなインターフェースデバイスを内部に提供してもよい。
【0015】
さらに、マイクロコントローラは、捕捉/比較/パルス幅変調(CCP)モジュール140と、タイマモジュール170と、クロックシステム160とを備え、全て、CPU110と連結される。CCPユニット140は、外部信号を評価するために、別の外部ピン150と連結される。この目的を達成するために、ある実施形態によると、CCPモジュール140内側の制御可能ドライバ146は、外部ピン150に接続されてもよい。しかしながら、図1に示される例示的デバイスはまた、点線によって示されるように、内部信号を評価/処理可能であってもよい。例えば、一実施形態では、内部CAN信号CANRXは、制御可能ドライバ185を通して、CCPモジュール140にフィードされることができる。本実施形態は、特に、内部CANバスインターフェース105が、内部CANRX信号の評価を可能にするために存在するとき、検討され得る。しかしながら、当業者によって理解されるであろうように、他の実施形態は、直接、CANバスラインを評価可能であってもよい。そのような場合、内部または外部に配列される、差動ドライバ/コンバータユニットを使用して、CANバス上の信号を単一デジタル信号に変換し、それらをCCPモジュール140にフィードしてもよい。
【0016】
CCPモジュール140は、内部または外部入力信号を選択するように実装され得るドライバ146および185および任意の他の制御可能ドライバの出力を受信する、プリスケーラ142を備えてもよい。プリスケーラ142の出力は、プログラム的に、着信信号の立ち上がりまたは立ち下がりエッジのいずれかを検出することができるエッジ検出器148と連結される。このエッジ検出器の出力信号は、タイマモジュール170のタイマレジスタ175をCCPモジュール140の捕捉レジスタ144と連結する、さらなるドライバ145を制御する。エッジ検出器160は、クロックシステム160から、クロック信号を受信してもよい。
【0017】
自動速度検出機能を提供するために、CCPモジュールの入力、またはCCPモジュールが複数の入力を備える場合、その入力のうちの1つは、ピン130において利用可能なようなCANRXラインと連結される。図1に示されるように、これは、外部ピン150をCANRXピン130と接続するか、または制御可能ドライバ185を介して、内部連結を選択することのいずれかによって行われることができる。この設定は、自動速度検出段階の間にのみ必要である。いったん速度が決定されると、CCP入力は、他の信号を処理するために使用されることができる。
【0018】
図2は、外部CANバス180上の例示的信号を示す。CCPモジュール140は、CAN信号200の立ち下がりエッジを分析するようにプログラムされる。しかしながら、他の実施形態では、異なる信号特性は、周期を決定するために分析されてもよい。図2によると、立ち下がりエッジが生じるたびに、CCPモジュール140は、タイマモジュールから、タイマ値を捕捉する。捕捉された例示的タイマ値が、示される。値は、単に、この方法の原理の理解を促進するために、小数点以下3桁で四捨五入される。図2に示される実施例では、10の立ち下がりエッジが、調査される。しかしながら、より多いまたはより少ないエッジを処理することができる。捕捉されるエッジが多いほど、自動速度検出は、より精密となるであろう。タイマは、100nsの分解能で初期化されてもよい。この目的を達成するために、タイマは、10MHzまたは任意の他の好適なクロック周波数でクロックされてもよい。タイマ値は、例えば、図1に示されるように、16ビット値であることができる。したがって、クロックソースに応じて、異なる分解能を取得することができる。タイマ分解能が良好であるほど、測定は、より正確となる。最速可能タイマソースの使用は、タイマの分解能を増加させるので、好ましい方法である。例えば、40MHzクロックを使用して、タイマ分解能を25nsまで改善することができる。これらのタイマ値は、次いで、アレイ内に記憶されることができる。
【0019】
図3は、捕捉されたタイマ値が、どのようにさらに処理されるかを示す。第1のステップでは、10の捕捉されたタイマ値を有するアレイが、最左列に示されるように、最小値から最高値にソートされる。次いで、各2つの隣接するタイマ値の間の差が、第2列に示されるように計算される。次に、異なる差値が、再び、第3列に示されるように、ソートされる。別のステップでは、無効差は、破棄され得る。例えば、明らかに1μsまたは任意の所定の最大周期を下回るか、あるいは所定の最大周波数を上回る値は、図3における第3列に示されるように、破棄され得る。図3における第4列に示されるように、残りの値に対して、残りの周期値に対して結果として生じる周波数が決定される。第1の値は、次いで、CANモジュールの周波数を設定するために使用される。この目的を達成するために、ある実施形態によると、ウィンドウを使用して、周波数をCANシステム内で合理的である最も近い数に丸めてもよい。例えば、263kbpsではなく、250kbpsまたは275kbpsとなる。いったんこの周波数、例えば、図3に示されるように、500kbpsが決定されると、CANモジュール120は、この周波数を使用して、初期化され、正常バストラフィックが中断されないように、「リッスン専用」モードに設定される。次いで、システムは、待機し、受信されたメッセージが有効であるか否か、またはエラーメッセージが、CANモジュールによって生成されるか否かを決定する。エラーメッセージの場合、自動速度検出方法は、図3に示されるように、次の利用可能な周波数、例えば、450kbpsを選択する。これらのステップは、正確な周波数が設定されるまで、繰り返される。したがって、本方法は、図3に示される最後の列において決定されるような異なる周波数を使用して、CANモジュール120を初期化するステップを繰り返す。これらの決定された値のいずれもが正確な設定を生成しない場合、本方法は、再び、開始し、CAN信号の別の10のエッジを評価する。
【0020】
図3における第4列に示されるように、タイマ差値は、直接、実際の周波数値を含有するテーブルにアクセスするために使用されてもよい。そのような方法は、容易に、切り捨てまたは丸めを行い、有用周波数値を取得することを可能にするであろう。
【0021】
図4は、前述の説明された方法の例示的流れ図を示す。ステップ400において、CAN信号は、立ち下がりエッジまたは立ち上がりエッジを検出し、関連付けられたタイマ値t(1)からt(n)までを記憶することによって、CCPモジュールを使用して評価される。これらの値は、次いで、ステップ410において、値ts(1)−ts(n)にソートされる。ステップ420において、Δ値d(1)−d(n−1)は、x=1..n−1に対して、d(x)=ts(x+1)−ts(x)を計算することによって決定される。Δ値は、再び、ステップ430において、ds(1)..ds(n−1)にソートされる。次いで、随意に、ステップ440において、有効周波数を形成しない値ds()は、破棄される。残りの値は、ステップ450において、周波数値f(x)=1/ds(x)を決定するために使用される。ステップ460において、第1の値f(1)は、CANモジュール120を初期化するために使用される。次いで、ステップ470において、フレームが受信される。正確なタイミングは、ステップ480において、CANモジュールが任意のエラーメッセージを生成したか否かをチェックすることによって決定される。そうでない場合、ルーチンは、終了する。エラーが生成された場合、ルーチンは、ステップ490において、例えば、ルックアップテーブルを使用することによって、次の値f(i)を取得することによって進行する。ステップ500において、利用可能な値がないかが決定される。その場合、ルーチンは、ステップ500にジャンプし、そうでなければ、ルーチンは、ステップ460にジャンプする。
【0022】
ある実施形態によると、前述の説明されるシーケンスは、ソフトウェアによって行われることができる。しかしながら、別の実施形態によると、状態機械190を使用して、前述のような具体的シーケンスを制御してもよい。図1は、状態機械190を示す。この状態機械は、特に、図1に示されるように、例えば、制御可能ドライバ185を通して、CANバスモジュール120への入力信号を内部で選択可能なマイクロコントローラ100内で有利であろう。状態機械は、特殊機能レジスタ195内でビットを設定するステップを通して始動され得る。いったん始動されると、状態機械190は、ドライバ185を介して、CCPモジュール140に内部CANバス信号を連結し、前述のように、CANモジュール120の初期化を行い、CAN信号をCCPモジュール140から切断する。ユーザは、次いで、他の信号の評価のために、このモジュールを使用してもよい。
【0023】
本発明は、したがって、目的を遂行し、前述の目標および利点ならびに本明細書に固有のその他を達成するために好適に適応される。本発明は、本発明の特定の好ましい実施形態を参照することによって、描写、説明、および定義されたが、そのような参照は、本発明の限定を含意するものではなく、そのような限定が、暗示されるものでもない。本発明は、当業者に想起されるであろうように、形態および機能に相当な修正、変更、および均等物が可能である。本発明の描写および説明される好ましい実施形態は、例示にすぎず、本発明の範囲の包括ではない。その結果、本発明は、あらゆる観点において、均等物に対する完全認識を与える、添付の請求項の精神および範囲によってのみ限定されることが意図される。
図1
図2
図3
図4