(57)【要約】【課題】内蔵のＣＡＮコントローラに、ＣＡＮ送信出力端子をＬレベルに固定する故障が発生した場合、このＣＡＮコントローラをＣＡＮバスから切り離すことのできるＣＡＮコントローラを含むマイクロコントローラを提供する。【解決手段】ＣＡＮコントローラ２の送信出力部２１から出力されるＬレベルモニタ信号のＬレベルの期間を故障検知部３のカウンタ３１でカウントし、ＣＡＮプロトコルの規定を越えてＬレベルが継続すると、カウンタ３１の出力が反転する。これを受けて、切り離し信号生成回路３４から出力される切り離し信号がＨレベルからＬレベルに変化し、切り離し用ＮＭＯＳ２１２を非導通とする。このとき、出力用ＰＭＯＳ２１１も非道通であるため送信出力端子６はハイインピーダンスとなる。【選択図】  図１
2005038026.tif 000002
【特許請求の範囲】
【請求項１】
ＣＡＮプロトコルによる送信信号を出力するためのＣＡＮ送信出力端子を備えるＣＡＮコントローラと、
前記ＣＡＮコントローラを制御するＣＰＵと、
前記ＣＡＮプロトコルに規定される期間より長い期間に亘って前記ＣＡＮ送信出力端子からＬレベルが送出される故障を検知し、故障検知信号を出力する故障検知手段と、
前記故障検知信号に基づき前記ＣＡＮ送信出力端子をハイインピーダンスにするＣＡＮ送信出力端子切り離し手段とを有することを特徴とするＣＡＮコントローラを含むマイクロコントローラ。
【請求項２】
前記故障検知手段は、前記故障を検知したときに、前記ＣＰＵに対して、割り込み信号をさらに出力することを特徴とする請求項１に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項３】
前記故障検知手段は、前記ＣＡＮ送信出力端子のＬレベルの継続期間を計測するカウンタを有し、前記Ｌレベルの継続期間が前記ＣＡＮプロトコルに規定される期間を超えると前記カウンタの出力が変化することを特徴とする請求項１または２に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項４】
前記故障検知手段の前記カウンタのクロック入力が、ＣＡＮコントローラの送信クロックまたは最小ボーレートの送信クロックであることを特徴とする請求項３に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項５】
前記故障検知手段が、前記カウンタの出力が変化したときに前記故障検知信号を出力することを特徴とする請求項３または４に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項６】
前記故障検知手段が、前記カウンタの出力が変化したときに前記割り込み信号を出力することを特徴とする請求項３または４に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項７】
前記ＣＡＮコントローラの使用／不使用に合わせて前記故障検知手段の使用／不使用を選択する選択手段を有することを特徴とする請求項１乃至６のいずれか１項に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項８】
前記選択手段が、動作可／不可の情報が書き込まれたレジスタであることを特徴とする請求項７に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項９】
前記故障検知手段が、前記レジスタの情報を読み出して、前記カウンタのカウント動作の動作／停止を制御することを特徴とする請求項３乃至６のいずれか１項に記載のＣＡＮコントローラを含むマイクロコントローラ。
【請求項１０】
前記ＣＡＮ送信出力端子切り離し手段が、ゲート端子に前記故障検知信号が入力されるＮチャネルＭＯＳＦＥＴであり、前記ＣＡＮ送信出力端子と前記ＣＡＮ送信出力端子をＬレベルに駆動する素子との間に挿入されて、前記故障が検出されたときに前記ＣＡＮ送信出力端子と前記ＣＡＮ送信出力端子をＬレベルに駆動する前記素子との間を非導通とすることを特徴とする請求項１に記載のＣＡＮコントローラを含むマイクロコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）プロトコルの通信を制御するＣＡＮコントローラを含むマイクロコントローラに関する。
【０００２】
【従来の技術】
ＣＡＮは、ＩＳＯ１１５１９およびＩＳＯ１１８９８として国際規格化された通信プロトコルであり、車載機器間のデータ通信等に広く使われている。
【０００３】
ＣＡＮ通信プロトコルでは、ＣＡＮバスと称される二線式の伝送路が用いられ、この二線間の差動電圧を論理値の０／１に置き換えて送受信信号とするシリアル通信方式が採用されている。
【０００４】
このＣＡＮを使用する各機器にはＣＡＮコントローラが搭載されており、図４に示すように、ＣＡＮコントローラ１００の送信出力端子および受信入力端子がＣＡＮトランシーバ１５０を介してＣＡＮバスに接続される。
【０００５】
また、図５に、従来のＣＡＮコントローラの送信部の回路の例を示す。出力用ＰチャネルＭＯＳＦＥＴ（以下、「ＰＭＯＳ」と称す。）１１１と出力用ＮチャネルＭＯＳＦＥＴ（以下、「ＮＭＯＳ」と称す。）１１２からなる送信出力部１１０は、送信制御部１２０の制御を受けて送信出力端子へ送信データを出力する。
【０００６】
このようなＣＡＮコントローラは、単体で提供されるだけでなく、モジュール化されてマイクロコントローラに搭載され、いわゆるＣＡＮ内蔵マイクロコントローラとしても提供される。
【０００７】
ＣＡＮプロトコルにおいては、通信データのフォーマットが規定されているが、その他に、通信エラーの検知およびエラー処理についても規定されている。
【０００８】
エラーとしては、ビットエラー、アクノリッジエラー、ＣＲＣエラー、スタッフエラー、フォーマットエラーの５種類が規定されており、ＣＡＮコントローラは検知されたエラーに応じてエラー回復のための処理を行う。例えば、送信時に通信エラーを規定回数以上検知した場合には、一旦その送信を終了し、その送信メッセージが正常に送信されるまで再送信を繰り返す。
【０００９】
そのため、ＣＡＮコントローラには、このようなＣＡＮプロトコルにより規定される通信エラーを検知するための機能およびエラー処理を行うための機能が搭載されている（例えば、特許文献１を参照。）。
【００１０】
【特許文献１】
特開２００１−３３９４１２号公報（第３−５頁、図５）
【００１１】
【発明が解決しようとする課題】
上述したように、送信エラーが検知された場合、ＣＡＮコントローラは、送信を複数回繰り返し、正常状態への復帰を図る。しかしながら、ＣＡＮコントローラの送信出力部に故障があり、送信出力端子の出力レベルが常に同じ値に固定されているような場合、上述の方法ではエラーが復帰しない。なかでも、送信出力端子がＬレベル（論理０）に固定されている場合、ＣＡＮ通信にとっては、致命的なエラーとなる。
【００１２】
これは、ＣＡＮプロトコルでは、論理０はドミナント（優勢）レベルと規定されており、ドミナントレベルを出力するＣＡＮコントローラがＣＡＮバスを占有することになっていることによる。そのため、上記のような送信出力端子がＬレベルに固定される故障が発生すると、そのＣＡＮコントローラがＣＡＮバスを占有し、その他の機器は通信が一切できなくなるという問題が生じる。
【００１３】
そこで、本発明の目的は、内蔵のＣＡＮコントローラに、ＣＡＮ送信出力端子をＬレベルに固定する故障が発生した場合、このＣＡＮコントローラをＣＡＮバスから切り離し、ＣＡＮバスに接続されている他の機器間では相互の通信が可能となるＣＡＮコントローラを含むマイクロコントローラを提供することにある。
【００１４】
【課題を解決するための手段】
本発明の一態様によれば、ＣＡＮプロトコルによる送信信号を出力するためのＣＡＮ送信出力端子を備えるＣＡＮコントローラと、前記ＣＡＮコントローラを制御するＣＰＵと、前記ＣＡＮプロトコルに規定される期間より長い期間に亘って前記ＣＡＮ送信出力端子からＬレベルが送出される故障を検知し、故障検知信号を出力する故障検知手段と、前記故障検知信号に基づき前記ＣＡＮ送信出力端子をハイインピーダンスにするＣＡＮ送信出力端子切り離し手段とを有することを特徴とするＣＡＮコントローラを含むマイクロコントローラが提供される。
【００１５】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００１６】
図１は、本発明の実施の形態に係るＣＡＮコントローラを含むマイクロコントローラの構成を示すブロック図である。
【００１７】
ＣＡＮ内蔵マイクロコントローラ１は、ＣＰＵ５を有し、ＣＡＮプロトコルによるＣＡＮ通信を制御するＣＡＮコントローラ２を内蔵している。ＣＡＮコントローラ２は、送信信号を出力する送信出力部２１と送信出力部２１を制御する送信制御部２２を有しており、送信出力部２１は、ＣＡＮプロトコルによる送信信号を送信信号出力端子６へ出力する。
【００１８】
なお、ＣＰＵ５は、ＣＡＮコントローラ２を制御しており、ＣＡＮコントローラ２の使用／不使用の切り替えを行うこともできる。
【００１９】
さらに、ＣＡＮ内蔵マイクロコントローラ１は、故障検知部３とレジスタ４を有している。
【００２０】
故障検知部３は、送信信号出力端子６へ出力されるＬレベルをモニタし、ＣＡＮプロトコルの規定を超える期間Ｌレベルが出力される故障を検知する。故障を検知すると、故障検知部３は、送信信号出力端子６をハイインピーダンスとするための切り離し信号と、ＣＰＵへの割り込み信号を出力する。なお、故障検知部３の詳細な回路構成については後述する。
【００２１】
また、レジスタ４には、ＣＡＮコントローラ２の使用／不使用の切り替えに合わせて故障検知部３の使用／不使用を選択するイネーブル（Ｅｎａｂｌｅ）信号が書き込まれている。このレジスタ４から出力されるイネーブル信号は、故障検知部３を制御し、イネーブル信号がＨのときは故障検知部３を動作させ、イネーブル信号がＬのときは故障検知部３が動作しないようにする。
【００２２】
ここで、送信出力部２１の回路構成について説明する。
【００２３】
送信出力部２１は、電源端子ＶＣＣと送信出力端子６との間に接続された出力用ＰＭＯＳ２１１と、接地端子と送信出力端子６との間に直列に接続された出力用ＮＭＯＳ２１２と切り離し用ＮＭＯＳ２１３からなる。このうち、出力用ＮＭＯＳ２１２の一端が接地端子に接続されている。また、出力用ＮＭＯＳ２１２の他端からは、Ｌレベルモニタ信号が出力されている。
【００２４】
出力用ＰＭＯＳ２１１および出力用ＮＭＯＳ２１２のゲート入力は送信制御部２２により制御され、切り離し用ＮＭＯＳ２１３のゲート入力は、後述する故障検知部３から出力される切り離し信号により制御される。
【００２５】
送信出力端子６に正常な送信信号が出力されているときには、切り離し用ＮＭＯＳ２１３は常に導通するよう制御されるため、出力用ＮＭＯＳ２１２が導通したときには、送信出力端子６にＬレベルが出力される。また、出力用ＰＭＯＳ２１１が導通したときには、送信出力端子６にＨレベルが出力される。
【００２６】
次に、故障検知部３の回路構成について説明する。
【００２７】
故障検知部３は、送信出力部２１の出力のＬレベルの期間を計測するカウンタ３１と、カウンタ３１が使用するクロックを切り替えるクロック切り替え回路３２と、カウンタ３１のカウント動作を制御するカウンタ制御回路３３と、カウンタ３１の出力が入力されて切り離し信号を生成する切り離し信号生成回路３４および割り込み信号を生成する割り込み信号生成回路３５からなる。
【００２８】
カウンタ３１は、送信出力部２１から出力されるＬレベルの期間を計測し、Ｌレベルの期間がＣＡＮプロトコルで規定する最長の期間を超えると出力を変化させる。ＣＡＮプロトコルでは、５種類の通信フレームが規定されているが、このうちＬレベル期間が最長となるのは、図２（ａ）に示すエラーフレームにおけるエラーフラグの幅および図２（ｂ）に示すオーバーロードフレームのオーバーロードフラグの幅である６ｂｉｔである。
【００２９】
したがって、カウンタ３１は、７をカウントすると出力を変化させるカウンタとする。
【００３０】
クロック切り替え回路３２は、カウンタ３１が用いるクロックを切り替える回路である。クロック切り替え回路３２へは、ＣＡＮコントローラ２が使用する送信クロック、およびクロックジェネレータ（図示せず）で生成されるボーレートの異なる送信クロックのうち最小のボーレートの送信に用いられる最小ボーレート送信クロックの２種類のクロックが入力される。
【００３１】
クロック切り替え回路３２からは、通常、送信クロックが出力される。しかし、何らかの理由で送信クロックが停止したときには、クロック切り替え回路３２は、送信クロックが停止したことを検知して、出力を切り替えて最小ボーレート送信クロックを出力する。
【００３２】
もしくは、クロック切り替え回路３２の内部にレジスタ（図示せず）を設け、レジスタの設定により、送信クロックを使用するか、最小ボーレート送信クロックを使用するかを指定するようにしてもよい。この場合、通信先の他ノードとのボーレートが異なるときは、予め、最小ボーレート送信クロックを選択するようレジスタを設定しておく。
【００３３】
カウンタ制御回路３３は、レジスタ４からのイネーブル信号と送信出力部２１からのＬレベルモニタ信号を入力として、カウンタ３１のカウント動作を制御する。
【００３４】
イネーブル信号がＨレベルのときは、カウンタ３１が動作することを許可するが、イネーブル信号がＬレベルのときは、カウンタ３１の動作を禁止する。
【００３５】
イネーブル信号がＨレベルで、Ｌレベルモニタ信号がＨレベルのときは、カウンタ３１はリセット状態でカウンタ値は０に設定される。その後、Ｌレベルモニタ信号がＬレベルに変化すると、カウンタ３１はカウントを開始するが、カウント７に達する前に、Ｌレベルモニタ信号がＨレベルに戻ると、カウンタ３１はリセットされてカウンタ値は０に戻る。しかし、Ｌレベルモニタ信号のＬレベルの状態が継続してカウンタ３１のカウント値が７に達すると、カウンタ３１の出力がＨになる。
【００３６】
切り離し信号生成回路３４は、送信出力部２１の切り離し用ＮＭＯＳ２１３のゲート制御する切り離し信号を生成する回路で、通常Ｈレベルを出力しているが、カウンタ３１の出力がＨになると、出力をＬレベルに変化させる。
【００３７】
割り込み信号生成回路３５は、ＣＰＵ５への割り込み信号を生成する回路で、カウンタ３１の出力がＨに変化したときに、割り込み信号を発生させる。この割り込み信号が入力されると、ＣＰＵ５は、故障によるＣＡＮ通信への障害発生を回避するための処理を実行する。
【００３８】
図３は、送信出力部２１の出力がＬレベルに固定される故障を故障検知部３が検知したときの本発明の実施の形態に係るＣＡＮコントローラを含むマイクロコントローラの動作を示す波形図である。
【００３９】
ＣＡＮコントローラ２を使用するときにレジスタ４に書き込まれるイネーブル信号はＨであり、これにより故障検知部３は使用可能となり、カウンタ３１が動作許可される。
【００４０】
このとき、送信出力部２１からのＬレベルモニタ信号がＨレベルの間は、カウンタ３１はリセット状態であり、カウンタ出力はＬレベルである。また、このとき、切り離し信号生成回路３４から出力される切り離し信号はＨレベルである。
【００４１】
その後、送信出力部２１からのＬレベルモニタ信号がＨレベルからＬレベルへ変化すると、カウンタ３１はカウント動作を開始し、送信クロックまたは最小ボーレート送信クロックの数をカウントする。
【００４２】
そして、故障のため送信出力部２１の出力用ＮＭＯＳ２１２が導通状態のままとなり、Ｌレベルモニタ信号のＬレベル期間がＣＡＮプロトコルの規定を超えてカウンタ３１のカウントが７に達すると、カウンタ３１の出力がＬからＨに変化する。
【００４３】
カウンタ３１の出力がＨに変化すると、切り離し信号生成回路３４は、切り離し信号をＨレベルからＬレベルへ変化させる。また、割り込み信号生成回路３５が割り込み信号を発生させる。
【００４４】
切り離し信号がＨレベルからＬレベルに変化することにより、送信出力部２１の切り離し用ＮＭＯＳ２１３が非導通となる。これにより、送信出力端子６と接地端子の間が非導通となる。また、送信出力部２１がＬレベルを出力する状態のときは、出力用ＰＭＯＳ２１１が非導通となっているため、送信出力端子６はハイインピーダンス状態となる。
【００４５】
このような本実施の形態によれば、ＣＡＮ内蔵マイクロコントローラ１に内蔵されるＣＡＮコントローラ２に、ＣＡＮ通信用の送信出力端子６をＬレベルに固定する故障が発生した場合、この送信出力端子６をハイインピーダンスにして、ＣＡＮコントローラ２をＣＡＮバスから切り離すことができる。
【００４６】
なお、本発明は、上述の実施の形態に何ら限定されるものではなく、故障検知部および送信出力部の回路構成は、種々変形して実施することができる
【００４７】
【発明の効果】
ＣＡＮ内蔵マイクロコントローラに内蔵されるＣＡＮコントローラに、ＣＡＮ送信出力端子をＬレベルに固定する故障が発生した場合、このＣＡＮコントローラをＣＡＮバスから切り離すことができる。
【００４８】
これにより、故障したＣＡＮコントローラがドミナントとなる状態が解消され、ＣＡＮバスに接続されている他の機器間では相互に通信を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るＣＡＮコントローラを含むマイクロコントローラの構成を示すブロック図。
【図２】通信フレームのＣＡＮプロトコルを説明するための図。
【図３】本発明の実施の形態に係るＣＡＮコントローラを含むマイクロコントローラの動作波形図。
【図４】ＣＡＮコントローラとＣＡＮバスの接続を説明するための図。
【図５】従来のＣＡＮコントローラの送信出力部の構成を示す回路図。
【符号の説明】
１  ＣＡＮ内蔵マイクロコントローラ
２、１００  ＣＡＮコントローラ
２１、１１０  送信出力部
２２、１２０  送信制御部
２１１、１１１  出力用ＰＭＯＳ
２１２、１１２  出力用ＮＭＯＳ
２１３  切り離し用ＮＭＯＳ
３  故障検知部
３１  カウンタ
３２  ロック切り替え回路
３３  カウンタ制御回路
３４  信号生成回路
３５  信号生成回路
４  レジスタ
５  ＣＰＵ
６  送信出力端子
１５０  ＣＡＮトランシーバ
ＲＸ  受信入力端子
ＴＸ  送信出力端子
ＶＣＣ  電源端子
【図１】
2005038026.tif 000003
【図２】
2005038026.tif 000004
【図３】
2005038026.tif 000005
【図４】
2005038026.tif 000006
【図５】
2005038026.tif 000007