(57)【要約】【課題】フレーミングエラーが区切り信号に起因するものであるか否かを誤判定するのを抑制する通信システムを提供する。【解決手段】ノードは、ＵＡＲＴと、区切り検出部と、ＣＰＵと、を有している。ＵＡＲＴは、受信したデータに対してフレーミングエラーを検出する。区切り検出部は、ドミナントの継続時間が判定時間以上である場合に、検出したドミナントを区切り信号と判断して検出信号をＣＰＵに出力する。判定時間の長さは、ブロックの長さよりも長くされている。ＣＰＵは、エラー信号が出力された場合に、出力されたエラー信号が区切り信号に起因するものであるか否かを検出信号に基づき判定する。【選択図】図１０
2018026725.tif 000002
【特許請求の範囲】
【請求項１】
バス（１０）と、
前記バスを介して接続されており、フレームを用いて互いに通信を行う複数のノード（２０，３０）と、を備え、
前記フレームは、所定時間継続するドミナントを含んでおり前記フレームの最初に送信される区切り信号と、所定長さのブロック毎に区切られており前記区切り信号の後に送信されるデータと、を含み、
前記ノードは、
前記データを受信し、且つ、受信した前記データに対し、ドミナントをなすスタートビットを検出するとともに、検出した前記スタートビットを含む前記ブロックの終端にストップビットが含まれるか否かを判定し、前記ブロックが前記ストップビットを含まないと判定した場合にフレーミングエラーの発生を示すエラー信号（Ｅ）を出力する通信部（４６）と、
前記バスに送信されたドミナントを検出するとともに、検出したドミナントの継続時間が判定時間以上である場合に、検出したドミナントが前記区切り信号であると判断して検出信号（Ｓ１）を出力する区切り検出部（４８）と、
前記エラー信号が出力された場合に、出力された前記エラー信号が前記区切り信号に起因するものであるか否かを判定するエラー判定部（５０，５２、Ｓ４４〜Ｓ４８、Ｓ５４）と、
を有し、
前記判定時間の長さは、前記区切り信号の長さ以下とされるとともに、前記ブロックの長さよりも長くされており、
前記エラー判定部は、前記検出信号に基づき、前記エラー信号が前記区切り信号に起因するものであるか否かを判定する通信システム。
【請求項２】
前記エラー判定部は、前記エラー信号が出力されると、前記エラー信号が出力されてから検出時間が経過するまでの間に前記検出信号が出力された場合にのみ、前記エラー信号が前記区切り信号に起因するものであると判定する請求項１に記載の通信システム。
【請求項３】
前記区切り検出部は、検出したドミナントの継続時間が前記判定時間よりも短い場合に、検出したドミナントが前記区切り信号ではないと判断して未検出信号（Ｓ２）を前記エラー判定部に出力し、
前記エラー判定部は、前記エラー信号が出力されると、前記エラー信号の後に前記未検出信号及び前記検出信号のうちのどちらが出力されるかを判断し、前記未検出信号が出力された判断すると前記エラー信号が前記区切り信号に起因するものではないと判定し、前記検出信号が出力されたと判断すると前記エラー信号が前記区切り信号に起因するものであると判定する請求項１又は請求項２に記載の通信システム。
【請求項４】
前記ノードは、前記通信部が前記データを受信するか否かを決定することにより前記通信部の動作を制御する制御部をさらに有し、
前記エラー判定部は、前記制御部とは異なる回路を用いて構成されている請求項１〜３のいずれか１項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスと、フレームを用いて互いに通信を行う複数のノードと、を備える通信システムに関する。
【背景技術】
【０００２】
従来、特許文献１に記載のように、ＬＩＮバスを介して互いに接続されたマスタノード及びスレーブノードが知られている。マスタノード及びスレーブノードは、フレームを用いて通信を行う。フレームは、複数のブロックを含んでいる。各ブロックは、基本的に、ドミナントをなす１ビットのスタートビット、８ビットのデータ、及び、レセッシブをなす１ビットのストップビットを含んでいる。これにより、各ブロックは、全体の長さが１０ビットとされている。ただし、フレームの最初に送信されるSynch Break Fieldは、他のブロックと異なり、１３ビット以上のドミナント（区切り信号）を含んでいる。
【０００３】
スレーブノードは、ＵＡＲＴとＣＰＵとを有している。ＵＡＲＴは、ＬＩＮバスに送信されたデータを受信するとともに、受信したデータに対してフレーミングエラーを検出し、通信エラー信号をＣＰＵに出力する。ＵＡＲＴは、受信したブロックが正常なスタートビット及びストップビットを含んでいない場合に、フレーミングエラーを検出したと判断する。よってＵＡＲＴは、Synch Break Fieldを受信した場合に、フレミングエラーを検出したと判断し、通信エラー信号を出力する。
【０００４】
ＣＰＵは、通信エラー信号が出力された場合、通信エラーがSynch Break Fieldに起因するものであるか否かを受信データの内容に基づきブロック毎に判定する。ＣＰＵは、ブロックの内容が全てドミナントである場合、フレーミングエラーがSynch Break Fieldに起因するものであると判定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２７７９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ノイズにより、ストップビットがドミナントとなることがある。このとき、スタートビットとストップビットとの間のデータの内容の全てがドミナントとされたブロックでは、内容が全てドミナントになる。この場合にＣＰＵは、フレーミングエラーがSynch Break Fieldに起因するものであると誤判定してしまう。
【０００７】
また、ブロックの途中からSynch Break Fieldが送信されることがある。この場合、Synch Break Fieldが生じたブロックでは、ストップビットがSynch Break Fieldにより上書きされてストップビットがドミナントとなるため、ＵＡＲＴは通信エラー信号を出力する。しかしながら、Synch Break Fieldの含まれる各ブロックの内容は、全てがドミナントとならない虞がある。この場合、ＣＰＵは、通信エラーがSynch Break Fieldに起因するものではないと誤判定してしまう。
【０００８】
本発明はこのような課題に鑑みてなされたものであり、フレーミングエラーが区切り信号に起因するものか否かについて誤判定するのを抑制する通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記目的を達成するために以下の技術的手段を採用する。なお、括弧内の符号は、ひとつの態様として下記の実施形態における具体的手段との対応関係を示すものであって、技術的範囲を限定するものではない。
【００１０】
本発明のひとつは、
バス（１０）と、
バスを介して接続されており、フレームを用いて互いに通信を行う複数のノード（２０，３０）と、を備え、
フレームは、所定時間継続するドミナントを含んでおりフレームの最初に送信される区切り信号と、所定長さのブロック毎に区切られており区切り信号の後に送信されるデータと、を含み、
ノードは、
データを受信し、且つ、受信したデータに対し、ドミナントをなすスタートビットを検出するとともに、検出したスタートビットを含むブロックの終端にストップビットが含まれるか否かを判定し、ブロックがストップビットを含まないと判定した場合にフレーミングエラーの発生を示すエラー信号（Ｅ）を出力する通信部（４６）と、
バスに送信されたドミナントを検出するとともに、検出したドミナントの継続時間が判定時間以上である場合に、検出したドミナントが区切り信号であると判断して検出信号（Ｓ１）を出力する区切り検出部（４８）と、
エラー信号が出力された場合に、出力されたエラー信号が区切り信号に起因するものであるか否かを判定するエラー判定部（５０，５２、Ｓ４４〜４８、Ｓ５４）と、
を有し、
判定時間の長さは、区切り信号の長さ以下とされるとともに、ブロックの長さよりも長くされており、
エラー判定部は、検出信号に基づき、エラー信号が区切り信号に起因するものであるか否かを判定する。
【００１１】
上記構成において判定時間の長さは、ブロックの長さよりも長くされている。これによれば、特定のブロックにおいてノイズによりストップビットがドミナントとなった場合であっても、ドミナントの継続時間が判定時間よりも短ければ、区切り検出部は、検出したドミナントを区切り信号と判断しない。この場合、検出信号が出力されないため、エラー判定部は、エラー信号が区切り信号に起因するものではないと判定できる。よって、エラー信号が区切り信号に起因するものであるとエラー判定部が誤判定するのを抑制できる。
【００１２】
また、上記構成において区切り検出部は、ブロックによらず、ドミナントの継続時間の長さに基づき区切り信号を検出している。これによれば、ブロックの途中から区切り信号が送信された場合であっても、区切り検出部は区切り信号を検出する。この場合、検出信号が出力され、エラー判定部は、エラー信号が区切り信号に起因するものであると判定できる。よって、エラー信号が区切り信号に起因するものではないとエラー判定部が誤判定するのを抑制できる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係る通信システムの概略構成を示すブロック図である。
【図２】フレームの構造を示すタイミングチャートである。
【図３】ヘッダ及びレスポンスの構造を示すタイミングチャートである。
【図４】ブレークフィールドの構造を示すタイミングチャートである。
【図５】データフィールドの構造を示すタイミングチャートである。
【図６】ノードの概略構成を示すブロック図である。
【図７】エラー検出処理の処理手順を示すフローチャートである。
【図８】区切り検出処理の処理手順を示すフローチャートである。
【図９】エラー判定処理の処理手順を示すフローチャートである。
【図１０】レスポンスが送信されない場合における通信システムの動作を示すタイミングチャートである。
【図１１】第２実施形態に係る通信システムにおいて、ノードの概略構成を示すブロック図である。
【図１２】第３実施形態に係る通信システムにおいて、ノードの概略構成を示すブロック図である。
【図１３】区切り検出処理の処理手順を示すフローチャートである。
【図１４】エラー判定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
図面を参照して説明する。なお、複数の実施形態において、共通乃至関連する要素には同一の符号を付与するものとする。
【００１５】
（第１実施形態）
先ず、図１〜図５に基づき、通信システム１００の概略構成について説明する。
【００１６】
図１に示すように、通信システム１００は、単一のバス１０と、バス１０介して互いに接続された複数のノードと、を備えている。通信システム１００は、ノードとして、マスタノード２０とスレーブノード３０とを備えている。図１に示す例では、１つのマスタノード２０に対して２つのスレーブノード３０が接続されている。
【００１７】
通信システム１００では、複数のノード同士が所定のプロトコルに従って通信を行う。本実施形態において、通信システム１００は、車載通信ネットワークのＬＩＮである。マスタノード２０としては、例えば、ボデーＥＣＵを採用することができる。スレーブノード３０としては、例えば、ドアＥＣＵ及びミラーＥＣＵを採用することができる。
【００１８】
バス１０に送信される信号は、ドミナント、又は、レセッシブの２つの論理レベルの状態をとる。ドミナントは、グランド電位に近く、論理レベルが０の状態である。レセッシブは、バッテリ端子の電位に近く、論理レベルが１の状態である。
【００１９】
ノード同士は、図２及び図３に示すフレームを用いて調歩同期式通信を行う。調歩同期式通信は、非同期通信と称することもできる。図２及び図３に示すように、フレームは、複数のブロックを含むヘッダ及びレスポンスを有している。
【００２０】
マスタノード２０は、スレーブタスクに加えてマスタタスクを有している。マスタタスクは、マスタノード２０のみが有している役割である。マスタノード２０は、マスタタスクとして、フレームのスケジュール管理を行い、ヘッダを送信する。
【００２１】
図３に示すように、ヘッダは、ブレークフィールド、同期フィールド、及び、識別子フィールドを含んでいる。図４に示すように、ブレークフィールドは、区切り信号とブレークデリミタとを含んでいる。
【００２２】
区切り信号は、フレームの最初に送信されるものであって、スレーブノードにフレームの開始を通知するものである。区切り信号は、１３ビット以上の長さの継続するドミナントにより構成される。言い換えると、区切り信号は、１３ビット以上であり、且つ、内容が全てドミナントとされている。区切り信号は、シンクブレークと称することもできる。ブレークデリミタは、区切り信号の後に送信される。ブレークデリミタは、１ビット以上のレセッシブにより構成される。
【００２３】
同期フィールドは、ブレークフィールドの後に送信される。同期フィールドは、ノード同士の間のクロック誤差を調整するためのものである。同期フィールドは、シンクフィールドと称することもできる。
【００２４】
識別子フィールドは、レスポンスを送信するノードをマスタノードが指定するためのものである。よって、識別子フィールドは、レスポンスを送信するための送信権を含んでいる。送信権は、ＩＤと称することもできる。識別子フィールドは、アイデントフィールドと称することもできる。
【００２５】
識別子フィールドにより指定されたノードは、スレーブタスクとして、レスポンスを送信する。図３に示すように、レスポンスは、複数のデータフィールド、及び、チェックサムを含んでいる。データフィールドは、識別子フィールドに応答するためのデータである。チェックサムは、レスポンスが正確に送信されたか否かを確認するためのものである。チェックサムは、エラーチェックフィールドと称することもできる。
【００２６】
図５に示すように、フレームにおいてブレークフィールド以外の各ブロックは、スタートビットとストップビットとを含んでいる。スタートビットは、ブロックの最初に送信されるものであって、１ビットのドミナントにより構成される。ストップビットは、ブロックの最後に送信されるものであって、１ビットのレセッシブにより構成される。スタートビット及びストップビットの間のデータは、８ビットとされている。以上により、ブレークフィールド以外の各ブロックは、１０ビットとされている。
【００２７】
図６に示すように、各ノードは、トランシーバ４０と、マイコン４２と、クロック４４と、を有している。トランシーバ４０は、バス１０の電圧を変圧してマイコン４２に出力するとともに、マイコン４２の出力電圧を変圧してバス１０に出力するものである。トランシーバ４０は、ＩＣを用いて形成されている。
【００２８】
マイコン４２は、トランシーバ４０を介してバス１０と接続されている。以下、マイコン４２がトランシーバ４０を介してバス１０から受信するデータを受信データＲｘと示す。また、マイコン４２がトランシーバ４０を介してバス１０へ送信するデータを送信データＴｘと示す。マイコン４２は、ＵＡＲＴ４６と区切り検出部４８とＣＰＵ５０とを有している。
【００２９】
ＵＡＲＴ４６は、調歩同期式通信を行うものである。ＵＡＲＴ４６は、トランシーバ４０から受信データＲｘを受信するとともに、トランシーバ４０へ送信データＴｘを送信する。ＵＡＲＴ４６は、特許請求の範囲に記載の通信部に相当する。
【００３０】
ＵＡＲＴ４６は、受信データＲｘに対してフレーミングエラーを検出するエラー検出処理を実施する。フレーミングエラーは、受信データＲｘのブロックが正常なスタートビット及びストップビットを含んでいないことを示すものである。
【００３１】
ＵＡＲＴ４６は、フレーミングエラーを検出した場合にエラー信号ＥをＣＰＵ５０に出力する。なお、区切り信号は、区切り信号以外のブロックの長さである１０ビットよりも長い１３ビット以上がドミナントにより構成されている。このため、区切り信号がバス１０に送信された場合に、ＵＡＲＴ４６は、フレーミングエラーを検出したと判断し、エラー信号ＥをＣＰＵ５０に出力することになる。エラー検出処理の具体的な処理手順については、下記で詳細に説明する。
【００３２】
区切り検出部４８は、トランシーバ４０を介してバス１０と接続され、受信データＲｘが入力される。区切り検出部４８は、受信データＲｘ対して区切り信号を検出する区切り検出処理を実施する。区切り検出部４８は、区切り信号を検出した場合に、検出信号Ｓ１をＣＰＵ５０に出力する。区切り検出処理の具体的な処理手順については、下記で詳細に説明する。
【００３３】
ＣＰＵ５０は、ソフトウェアを動作させて、ＵＡＲＴ４６及び区切り検出部４８の動作を制御するものである。ＣＰＵ５０は、ＵＡＲＴ４６に対して受信データＲｘの受信を許可するか否かを決定する。詳述すると、ＣＰＵ５０は、区切り検出部４８から検出信号Ｓ１が入力された場合、バス１０に区切り信号が送信されたと判断して、ＵＡＲＴ４６に対して受信データＲｘの受信を許可する。一方、フレームが終了した場合に、ＣＰＵ５０はＵＡＲＴ４６に対して受信データＲｘの受信を停止させる。ＣＰＵ５０においてＵＡＲＴ４６の受信可否を制御する機能を司る部分は、特許請求の範囲に記載の制御部に相当する。
【００３４】
また、ＣＰＵ５０は、ＵＡＲＴ４６の検出したフレーミングエラーが区切り信号に起因するものか否かを判定するエラー判定処理を実施する。エラー判定処理の具体的な処理手順については、下記で詳細に説明する。
【００３５】
クロック４４は、発振回路によりクロック信号を生成し、生成したクロック信号をマイコン４２に出力する。このクロック信号に基づき、マイコン４２がソフトウェアを動作させる。なお、マイコン４２は、図示しないタイマをさらに有している。タイマは、クロック信号に基づきカウント値を変化させる。クロック４４としては、例えば、水晶発振子や、セラミック発振子を採用できる。
【００３６】
次に、図７に基づき、ＵＡＲＴ４６によるエラー検出処理の処理手順について説明する。
【００３７】
ＵＡＲＴ４６は、ＣＰＵ５０によって受信データＲｘの受信が許可されると、エラー検出処理を開始する。ＣＰＵ５０によって受信データＲｘの受信が許可されている間において、ＵＡＲＴ４６は、エラー検出処理を繰り返し行う。
【００３８】
エラー検出処理においてＵＡＲＴ４６は、先ず、スタートビットを検出する（Ｓ１０）。Ｓ１０においてＵＡＲＴ４６は、受信データＲｘにおいてドミナントを検出した場合にスタートビットを検出したと判定する。なお、Ｓ１０においてＵＡＲＴ４６は、レセッシブからドミナントへの立ち下がりエッジの検出により、スタートビットを検出してもよい。
【００３９】
ＵＡＲＴ４６は、Ｓ１０においてスタートビットを検出したと判定すると、データの受信を開始する（Ｓ１２）。Ｓ１２においてＵＡＲＴ４６が受信するデータは、スタートビットの後に送信される８ビットのデータである。
【００４０】
次に、ＵＡＲＴ４６は、Ｓ１０で検出したスタートビットから１０番目のビットがレセッシブか否かを判定する（Ｓ１４）。これにより、ＵＡＲＴ４６は、検出したスタートビットを含むブロックの終端にストップビットが含まれるか否かを判定する。
【００４１】
ＵＡＲＴ４６は、Ｓ１４においてスタートビットから１０番目のビットがレセッシブであると判定すると、受信データＲｘにフレーミングエラーが発生していないと判断して、エラー検出処理を終了する。ＵＡＲＴ４６は、エラー検出処理を終了すると、再びエラー検出処理を開始する。
【００４２】
ＵＡＲＴ４６は、Ｓ１４においてスタートビットから１０番目のビットがドミナントであると判定すると、受信データＲｘにフレーミングエラーが発生したと判断して、エラー信号ＥをＣＰＵ５０に出力する（Ｓ１６）。ＵＡＲＴ４６は、Ｓ１６の処理を行った後、エラー検出処理を終了するとともにエラー検出処理を再開する。
【００４３】
ＵＡＲＴ４６は、Ｓ１０においてスタートビットを検出しないと判定すると、Ｓ１２〜Ｓ１６の処理を行うことなく、エラー検出処理を終了するとともにエラー検出処理を再開する。よって、ＵＡＲＴ４６は、スタートビットを検出しない場合、Ｓ１０の判定を繰り返し行う。
【００４４】
次に、図８に基づき、区切り検出部４８による区切り検出処理の処理手順について説明する。
【００４５】
区切り検出部４８は、例えば、マイコン４２に電源が投入されると区切り検出処理を開始する。マイコン４２に電源電圧が入力されている間において、区切り検出部４８は区切り検出処理を繰り返し行う。
【００４６】
区切り検出処理において区切り検出部４８は、先ず、受信データＲｘにおいてドミナントを検出するか否かを判定する（Ｓ２０）。なお、Ｓ２０において区切り検出部４８は、レセッシブからドミナントへの立ち下がりエッジを検出したか否かを判定してもよい。
【００４７】
区切り検出部４８は、Ｓ２０においてドミナントを検出したと判定すると、タイマにカウントを開始させる（Ｓ２２）。次に、区切り検出部４８は、Ｓ２０で検出したドミナントが継続しているか否かを判定する（Ｓ２４）。すなわち、区切り検出部４８は、バス１０のレベルがドミナントからレセッシブに変わっているか否かを判定する。
【００４８】
区切り検出部４８は、Ｓ２４でドミナントが継続していると判定すると、Ｓ２２でのタイマ開始から判定時間が経過したか否かをタイマのカウント値に基づき判定する（Ｓ２６）。判定時間は、所定時間継続するドミナントが区切り信号を構成するものであるか否かを区切り検出部４８が判定するためのものである。すなわち、判定時間は、検出されたドミナントの継続時間に対する閾値である。
【００４９】
判定時間の長さは、区切り信号の長さ以下とされている。本実施形態において、判定時間の長さは、区切り信号の長さよりも短くされている。また、判定時間の長さは、ブロックの長さよりも長くされている。ブロックの長さが１０ビットとされた本実施形態では、判定時間の長さが１１ビット以上とされている。例えば、判定時間の長さは、１１ビットである。
【００５０】
区切り検出部４８は、Ｓ２６においてタイマ開始から判定時間が経過していないと判定すると、再びＳ２４及びＳ２６の処理を行う。以上によれば、区切り検出部４８は、タイマ開始からドミナントが継続している場合、判定時間が経過するまでＳ２４及びＳ２６の処理を繰り返し行う。
【００５１】
区切り検出部４８は、Ｓ２４においてレセッシブを検出したと判定すると、Ｓ２０で検出したドミナントが区切り信号を構成するものではないと判断し、区切り検出処理を終了する。すなわち、区切り検出部４８は、Ｓ２０で検出したドミナントの継続時間が判定時間より短いと判定すると、Ｓ２０で検出したドミナントが区切り信号を構成するものではないと判断し、検出信号Ｓ１をＣＰＵ５０に出力しない。区切り検出部４８は、区切り検出処理を終了した後、区切り検出処理を再開する。
【００５２】
区切り検出部４８は、Ｓ２６においてタイマ開始から判定時間が経過したと判定すると、区切り信号を検出したと判断し、検出信号Ｓ１をＣＰＵ５０に出力する（Ｓ２８）。言い換えると、区切り検出部４８は、Ｓ２０で検出したドミナントの継続時間が判定時間以上であると判定すると、区切り信号を検出したと判断し、検出信号Ｓ１をＣＰＵ５０に出力する。すなわち、区切り検出部４８は、Ｓ２０で検出したドミナントの継続時間が判定時間以上であると判定すると、所定時間継続するドミナントが区切り信号であると判断する。
【００５３】
区切り検出部４８は、Ｓ２０においてドミナントを検出しないと判定すると、Ｓ２２〜Ｓ２８の処理を行うことなく、区切り検出処理を終了するとともに区切り検出処理を再開する。よって、区切り検出部４８は、受信データＲｘにおいてドミナントを検出しない場合、Ｓ２０の判定を繰り返し行う。
【００５４】
次に、図９に基づき、ＣＰＵ５０によるエラー判定処理の処理手順について説明する。
【００５５】
ＣＰＵ５０は、例えば、マイコン４２に電源が投入されるとエラー判定処理を開始する。マイコン４２に電源電圧が入力されている間では、ＣＰＵ５０がエラー判定処理を繰り返し行う。
【００５６】
エラー判定処理においてＣＰＵ５０は、先ず、ＵＡＲＴ４６からエラー信号Ｅが出力されたか否かを判定する（Ｓ４０）。ＣＰＵ５０は、Ｓ４０においてエラー信号Ｅが出力されていないと判定すると、エラー判定処理を終了する。ＣＰＵ５０は、エラー判定処理を終了すると、再びエラー判定処理を開始する。以上によれば、エラー信号Ｅが出力されない場合、ＣＰＵ５０はＳ４０の処理を繰り返し行う。
【００５７】
ＣＰＵ５０は、Ｓ４０においてエラー信号Ｅが入力されたと判定すると、ＵＡＲＴ４６に対して受信を停止させる（Ｓ４２）。そのため、ＵＡＲＴ４６は、フレーミングエラーを検出した場合に、受信データＲｘの受信を停止して、エラー検出処理を終了する。
【００５８】
次に、ＣＰＵ５０は、タイマにカウントを開始させる（Ｓ４４）。そして、ＣＰＵ５０は、Ｓ４４でのタイマ開始から検出時間が経過したか否かをタイマのカウント値に基づき判定する（Ｓ４６）。
【００５９】
検出時間は、ＵＡＲＴ４６の検出したフレームミングエラーが区切り信号に起因するものであるか否かをＣＰＵ５０が判定するためのものである。例えば、検出時間の長さは、判定時間からブロックの長さである１０ビットを減じた値とされている。よって、判定時間の長さが１１ビットとされた構成では、検出時間の長さを１ビットとする。
【００６０】
ＣＰＵ５０は、Ｓ４６においてタイマ開始から検出時間が経過していないと判定すると、再びＳ４６の処理を行う。これによれば、ＣＰＵ５０は、タイマ開始から検出時間が経過するまでＳ４６の処理を繰り返し行う。
【００６１】
ＣＰＵ５０は、Ｓ４６においてタイマ開始から検出時間が経過したと判定すると、タイマ開始から検出時間が経過するまでの時間内に、区切り検出部４８から検出信号Ｓ１が出力されたか否かを判定する（Ｓ４８）。これにより、ＣＰＵ５０は、ＵＡＲＴ４６の検出したフレームミングエラーが区切り信号に起因するものであるか否かを判定する。ＣＰＵ５０においてＳ４４〜Ｓ４８の処理を司る部分は、特許請求の範囲に記載のエラー判定部に相当する。
【００６２】
ＣＰＵ５０は、Ｓ４８において検出信号Ｓ１が出力されていないと判定すると、Ｓ４０で出力されたエラー信号Ｅが区切り信号に起因するものではないと判断する。よって、ＣＰＵ５０は、Ｓ４２で停止させたＵＡＲＴ４６の受信停止を維持する（Ｓ５０）。すなわち、ＣＰＵ５０は、Ｓ５０においてＵＡＲＴ４６の受信を許可しない。ＣＰＵ５０は、Ｓ５０の処理を行った後、エラー判定処理を終了して再開する。
【００６３】
ＣＰＵ５０は、Ｓ４８において検出信号Ｓ１が出力されたと判定すると、Ｓ４０で出力されたエラー信号Ｅが区切り信号に起因するものであると判断する。よって、ＣＰＵ５０は、Ｓ４２で停止させたＵＡＲＴ４６の受信を許可する（Ｓ５２）。ＣＰＵ５０は、Ｓ５２の処理を行った後、エラー判定処理を終了して再開する。
【００６４】
次に、図１０に基づき、レスポンスが送信されない場合における通信システム１００の動作について説明する。
【００６５】
時刻ｔ１において、マスタノード２０はヘッダの送信を開始する。すなわち、時刻ｔ１において、マスタノード２０は区切り信号の送信を開始する。なお、時刻ｔ１より前において通信システム１００では、ノード間で通信が行われておらず、バス１０がアイドル状態とされている。そのため、ＣＰＵ５０は、時刻ｔ１においてＵＡＲＴ４６の受信を停止している。バス１０は、区切り信号が送信されたことにより、時刻ｔ１においてレセッシブからドミナントになっている。
【００６６】
区切り検出部４８は、時刻ｔ１において、Ｓ２０でドミナントを検出したと判定し、Ｓ２２でタイマにカウントを開始させる。そして、区切り検出部４８は、時刻ｔ１から判定時間が経過するまで、Ｓ２４でドミナントを検出したか否かを判定するとともにＳ２６で判定時間が経過したか否かを判定する。
【００６７】
そして、時刻ｔ１から所定時間経過後の時刻ｔ２において、区切り検出部４８がＳ２２でタイマにカウントを開始させてから判定時間が経過する。これにより、区切り検出部４８は、時刻ｔ１から時刻ｔ２まで継続しているドミナントが区切り信号を構成するものであると判断し、時刻ｔ２においてＳ２８で検出信号Ｓ１をＣＰＵ５０へ出力する。
【００６８】
時刻ｔ２においてＣＰＵ５０は、検出信号Ｓ１が出力されたことにより、ＵＡＲＴ４６の受信を許可する。これにより、ＵＡＲＴ４６は、時刻ｔ２から受信データＲｘの受信を開始するとともに、エラー検出処理を開始する。そして、時刻ｔ２から所定時間経過後の時刻ｔ３において、区切り信号が終了する。
【００６９】
マスタノード２０は、時刻ｔ３の経過後に、同期フィールドと識別子フィールドとをバス１０に送信する。そして、マスタノード２０は、時刻ｔ３から所定時間経過後の時刻ｔ４において、ヘッダの送信を終了する。
【００７０】
図１０に示す例においては、ヘッダの後にスレーブノード３０からレスポンスが送信されない。これは、例えば、レスポンスを送信するスレーブノード３０がバス１０に接続されていない場合に起こり得る。レスポンスを送信するスレーブノード３０とは、識別子フィールドによりマスタノード２０が指定したスレーブノード３０である。
【００７１】
この例において、時刻ｔ４から所定時間経過後の時刻ｔ５までは、バス１０のレベルがレセッシブを維持する。そして、マスタノード２０は、時刻ｔ５において、次のフレームの区切り信号をバス１０に送信する。これにより、バス１０のレベルは、レセッシブからドミナントとなる。
【００７２】
時刻ｔ５においてＵＡＲＴ４６は、ドミナントを検出することによって、Ｓ１０でスタートビットを検出したと判定する。また、区切り検出部４８は、時刻ｔ５において、Ｓ２０でドミナントを検出したと判定し、Ｓ２２でタイマにカウントを開始させる。そして、時刻ｔ５から判定時間が経過するまでは、区切り検出部４８が、Ｓ２４でドミナントが検出したか否かを判定しつつ、Ｓ２６で判定時間が経過したか否かを判定する。
【００７３】
時刻ｔ５から所定時間経過後の時刻ｔ６において、時刻ｔ５から１０ビットが経過する。時刻ｔ６においてバス１０では、区切り信号を構成するドミナントが継続している。そのため、時刻ｔ６においてＵＡＲＴ４６は、Ｓ１４でスタートビットから１０番目のビットがレセッシブではないと判定し、Ｓ１６でエラー信号ＥをＣＰＵ５０に出力する。
【００７４】
これによりＣＰＵ５０は、Ｓ４０でエラー信号Ｅが出力されたと判定し、Ｓ４２でＵＡＲＴ４６の受信を停止する。そして、ＣＰＵ５０は、時刻ｔ６においてＳ４４でタイマにカウントを開始させる。
【００７５】
時刻ｔ６から所定時間経過後の時刻ｔ７において、区切り検出部４８がタイマにカウントを開始させてから検出時間が経過する。そして、バス１０では、時刻ｔ５から時刻ｔ７までドミナントが継続している。これにより、区切り検出部４８は、時刻ｔ５から時刻ｔ７まで継続するドミナントが区切り信号を構成するものであると判断し、時刻ｔ７においてＳ２８で検出信号Ｓ１をＣＰＵ５０へ出力する。
【００７６】
時刻ｔ７においてＣＰＵ５０は、時刻ｔ６でのタイマ開始から検出時間が経過するまでの時間内に検出信号Ｓ１が入力されたと判定し、ＵＡＲＴ４６が時刻ｔ６で検出したフレーミングエラーが区切り信号に起因するものであると判断する。これにより、時刻ｔ７においてＣＰＵ５０は、停止していたＵＡＲＴ４６の受信をＳ５２で許可する。
【００７７】
時刻ｔ７の経過後、マスタノード２０は、ヘッダの送信を終了し、同期フィールド及び識別子フィールドをバス１０に送信する。そして、ＵＡＲＴ４６は、区切り信号の後に送信された受信データＲｘを受信する。
【００７８】
本実施形態の構成とは異なる構成であって、エラー信号Ｅの出力の有無のみに基づきＣＰＵ５０がＵＡＲＴ４６の受信可否を判断する場合には、時刻ｔ５で出力されたエラー信号Ｅが区切り信号に起因するものであると判断できない。そのため、この構成においてＣＰＵ５０は、時刻ｔ５から送信が開始されたフレームに対し、時刻ｔ６でＵＡＲＴ４６の受信を停止させて、時刻ｔ６以降においても受信停止を維持する。すなわち、ＣＰＵ５０は、時刻ｔ６で停止させたＵＡＲＴ４６の受信を、時刻ｔ６以降で許可に変えることができない。この場合、ＵＡＲＴ４６は、時刻ｔ６以降に送信されるデータを受信しない。
【００７９】
これに対して本実施形態では、ＣＰＵ５０がエラー信号Ｅに加えて検出信号Ｓ１に基づきＵＡＲＴ４６の受信可否を判断する。これによれば、ＵＡＲＴ４６は、時刻ｔ７で受信が許可され、時刻ｔ７以降に送信されたデータを受信する。
【００８０】
次に、上記した通信システム１００の効果について説明する。
【００８１】
本実施形態において判定時間の長さは、ブロックの長さよりも長くされている。これによれば、特定のブロックにおいてノイズによりストップビットがドミナントとなった場合であっても、ドミナントの継続時間が判定時間よりも短ければ、区切り検出部４８は、検出したドミナントを区切り信号と判断しない。この場合、検出信号Ｓ１が出力されないため、ＣＰＵ５０は、エラー信号Ｅが区切り信号に起因するものではないと判定し、ＵＡＲＴ４６の受信を停止する。よって、エラー信号Ｅが区切り信号に起因するものであるとＣＰＵ５０が誤判定するのを抑制できる。以上によれば、バス１０にノイズが生じた場合であっても、フレーミングエラー及び区切り信号について誤った判定に基づきＵＡＲＴ４６の受信可否が決定されるのを抑制できる。
【００８２】
ところで、スレーブノード３０によるレスポンスの送信が遅れることがある。これに対しマスタノード２０は所定時間経過毎にヘッダを送信するため、レスポンスを構成するブロックの途中で区切り信号がバス１０に送信される虞がある。
【００８３】
本実施形態では、区切り検出部４８が、ブロックによらず、ドミナントの継続時間の長さに基づき区切り信号を検出している。これによれば、ブロックの途中から区切り信号が送信された場合であっても、区切り検出部４８は区切り信号を検出する。この場合検出信号Ｓ１が出力され、ＣＰＵ５０は、エラー信号Ｅが区切り信号に起因するものであると判定できる。よって、エラー信号Ｅが区切り信号に起因するものではないとＣＰＵ５０が誤判定するのを抑制できる。以上によれば、ブロックの途中から区切り信号が送信された場合であっても、フレーミングエラー及び区切り信号について誤った判定に基づきＵＡＲＴ４６の受信可否が決定されるのを抑制できる。
【００８４】
（第２実施形態）
本実施形態において、第１実施形態に示した通信システム１００と共通する部分の説明については、第１実施形態の説明を参照する。
【００８５】
図１１に示すように、マイコン４２は、判定部５２をさらに有している。判定部５２は、ＵＡＲＴ４６の検出したフレーミングエラーが区切り信号に起因するものか否かを判定するものである。すなわち、本実施形態では、エラー判定処理の一部を判定部５２が行う。言い換えると、エラー判定処理は、ＣＰＵ５０に加えて判定部５２により行われる。判定部５２は、ＣＰＵ５０とは異なる回路により構成され、ＣＰＵ５０に較べて簡素な回路構成とされている。
【００８６】
判定部５２には、ＵＡＲＴ４６からエラー信号Ｅが入力されるとともに、区切り検出部４８から検出信号Ｓ１が入力される。エラー判定処理において判定部５２は、Ｓ４０でエラー信号Ｅが入力されたか否かを判定する。そして、判定部５２は、Ｓ４０でエラー信号Ｅが入力されたと判定すると、エラー信号Ｅが入力されたことを示す信号をＣＰＵ５０に出力する。これにより、ＣＰＵ５０は、Ｓ４２でＵＡＲＴ４６の受信を停止する。
【００８７】
判定部５２は、ＣＰＵ５０に上記した信号を出力するとともに、Ｓ４４でタイマにカウントを開始させ、Ｓ４６でタイマのカウント開始から検出時間が経過したか否かを判定する。そして、判定部５２は、Ｓ４６でタイマのカウント開始から検出時間が経過したと判定すると、Ｓ４８で時間内に検出信号Ｓ１が出力されたか否かを判定する。これにより、判定部５２は、ＵＡＲＴ４６の検出したフレームミングエラーが区切り信号に起因するものであるか否かを判定する。判定部５２におけるＳ４４〜Ｓ４８の処理を行う機能は、特許請求の範囲に記載のエラー判定部に相当する。
【００８８】
判定部５２は、Ｓ４８で検出信号Ｓ１が入力されていないと判定すると、ＵＡＲＴ４６の検出したフレーミングエラーが区切り信号に起因するものではないことを示す信号をＣＰＵ５０に出力する。これにより、ＣＰＵ５０は、Ｓ５０でＵＡＲＴ４６の受信停止を維持する。
【００８９】
また、判定部５２は、Ｓ４８で検出信号Ｓ１が入力された判定すると、ＵＡＲＴ４６の検出したフレーミングエラーが区切り信号に起因するものであることを示す信号をＣＰＵ５０に出力する。これにより、ＣＰＵ５０は、Ｓ５２でＵＡＲＴ４６の受信を許可する。
【００９０】
本実施形態では、フレーミングエラーが区切り信号に起因するものであるか否かを、ＣＰＵ５０ではなく、判定部５２が判定する。これによれば、ＣＰＵ５０の処理負荷を低減することができる。よって、ＣＰＵ５０がエラー判定処理以外の処理を優先して行う場合であっても、エラー判定処理が遅延するのを抑制できる。これによれば、フレーミングエラーが区切り信号に起因するものであるか否かの判定精度が低下するのを抑制できる。
【００９１】
（第３実施形態）
本実施形態において、第２実施形態に示した通信システム１００と共通する部分の説明については、第２実施形態の説明を参照する。
【００９２】
図１２に示すように、区切り検出部４８は、検出したドミナントの継続時間が判定時間よりも短い場合に、未検出信号Ｓ２を判定部５２に出力する。未検出信号Ｓ２は、バス１０に送信されたドミナントが区切り信号を構成するものではないことを示すものである。
【００９３】
図１３に示すように、区切り検出部４８は、レセッシブを検出したとＳ２４で判定すると、未検出信号Ｓ２を出力する（Ｓ３０）。言い換えると、区切り検出部４８は、Ｓ２０で検出したドミナントがレセッシブになったとＳ２４で判定すると、未検出信号Ｓ２を出力する。すなわち、区切り検出部４８は、Ｓ２０で検出したドミナントの継続時間が判定時間よりも短いと判定すると、未検出信号Ｓ２を出力する。区切り検出部４８は、Ｓ３０の処理を行った後、区切り検出処理を終了して再開する。
【００９４】
図１４に示すように、判定部５２は、Ｓ４０でエラー信号Ｅが出力されたと判定すると、エラー信号Ｅが出力されたことを示す信号をＣＰＵ５０に出力し、区切り検出部４８から検出信号Ｓ１及び未検出信号Ｓ２のどちらが入力されたかを判定する（Ｓ５４）。すなわち、判定部５２は、区切り検出部４８から入力される信号の内容について判定する。判定部５２は、Ｓ５４の処理によって、ＵＡＲＴ４６の検出したフレーミングエラーが区切り信号に起因するものであるか否かを判断する。判定部５２におけるＳ５４の処理を行う機能は、特許請求の範囲に記載のエラー判定部に相当する。
【００９５】
判定部５２は、検出信号Ｓ１ではなく未検出信号Ｓ２が入力されたとＳ５４で判定すると、未検出信号Ｓ２が入力されたことを示す信号をＣＰＵ５０に出力する。これによりＣＰＵ５０は、Ｓ５０でＵＡＲＴ４６の受信停止を維持する。
【００９６】
一方、判定部５２は、未検出信号Ｓ２ではなく検出信号Ｓ１が入力されたとＳ５４で判定すると、検出信号Ｓ１が入力されたことを示す信号をＣＰＵ５０に出力する。これによりＣＰＵ５０は、Ｓ５２でＵＡＲＴ４６の受信を許可する。
【００９７】
本実施形態において判定部５２は、エラー信号Ｅが出力された場合に、区切り検出部４８から出力される信号の内容に基づきフレーミングエラーが区切り信号に起因するものであるか否かを判定する。これによれば、判定部５２は、タイマを用いることなく、フレーミングエラーが区切り信号に起因するものであるか否かを判定できる。これによれば、エラー判定処理を行うためにタイマを設ける必要がなく、ノードの構成を簡素化することができる。
【００９８】
なお、本実施形態では、判定部５２がエラー判定処理の一部を行う例を示したが、これに限定するものではない。第１実施形態と同様に、ＣＰＵ５０のみがエラー判定処理を行う例を採用することもできる。
【００９９】
（その他の実施形態）
以上、本発明の好ましい実施形態について説明したが、本発明は上記実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【０１００】
上記実施形態では、通信システム１００が１つのマスタノード２０と、２つのスレーブノード３０と、を備える例を示したが、これに限定されるものではない。通信システム１００は、バス１０を介して互いに通信する複数のノードを備える構成であればよい。
【符号の説明】
【０１０１】
１０…バス、２０…マスタノード、３０…スレーブノード、４０…トランシーバ、４２…マイコン、４４…クロック、４６…ＵＡＲＴ、４８…区切り検出部、５０…ＣＰＵ、５２…判別部、１００…通信システム
【図１】
2018026725.tif 000003
【図２】
2018026725.tif 000004
【図３】
2018026725.tif 000005
【図４】
2018026725.tif 000006
【図５】
2018026725.tif 000007
【図６】
2018026725.tif 000008
【図７】
2018026725.tif 000009
【図８】
2018026725.tif 000010
【図９】
2018026725.tif 000011
【図１０】
2018026725.tif 000012
【図１１】
2018026725.tif 000013
【図１２】
2018026725.tif 000014
【図１３】
2018026725.tif 000015
【図１４】
2018026725.tif 000016