JP5717240B2 - 通信システム及び通信装置 - Google Patents

通信システム及び通信装置 Download PDF

Info

Publication number
JP5717240B2
JP5717240B2 JP2010178681A JP2010178681A JP5717240B2 JP 5717240 B2 JP5717240 B2 JP 5717240B2 JP 2010178681 A JP2010178681 A JP 2010178681A JP 2010178681 A JP2010178681 A JP 2010178681A JP 5717240 B2 JP5717240 B2 JP 5717240B2
Authority
JP
Japan
Prior art keywords
message
communication
ecu
transmission
slot
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.)
Active
Application number
JP2010178681A
Other languages
English (en)
Other versions
JP2012039446A (ja
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.)
Nagoya University NUC
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Tokai National Higher Education and Research System NUC
Original Assignee
Nagoya University NUC
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Tokai National Higher Education and Research System NUC
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 Nagoya University NUC, Sumitomo Wiring Systems Ltd, AutoNetworks Technologies Ltd, Sumitomo Electric Industries Ltd, Tokai National Higher Education and Research System NUC filed Critical Nagoya University NUC
Priority to JP2010178681A priority Critical patent/JP5717240B2/ja
Priority to DE112011102688T priority patent/DE112011102688T5/de
Priority to PCT/JP2011/068168 priority patent/WO2012020761A1/ja
Priority to US13/813,749 priority patent/US9209942B2/en
Priority to CN201180039441.7A priority patent/CN103155492B/zh
Publication of JP2012039446A publication Critical patent/JP2012039446A/ja
Application granted granted Critical
Publication of JP5717240B2 publication Critical patent/JP5717240B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • 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/407Bus networks with decentralised control
    • 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/407Bus networks with decentralised control
    • H04L12/417Bus networks with decentralised control with deterministic access, e.g. token passing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Description

本発明は、車輌に搭載されたECU(Electronic Control Unit)などの複数の通信装置が、共通の通信線(バス)を介してデータの送受信を行う通信システム及び通信装置に関する。
従来、車輌には複数の電子機器が搭載されて種々の処理を行っている。これらの電子機器の動作を制御するために車輌には複数のECUが搭載されている。また、複数のECUを協調して動作させるために、各ECUをネットワークを介して相互に接続し、データの送受信を行って複数のECUが情報を共有することが行われており、この場合に通信規約としてCAN(Controller Area Network)(非特許文献1、非特許文献2参照)が広く採用されている。
CANの規約では、作動信号を伝送するツイストペアケーブルからなるバスに複数のECUが接続され、各ECUは作動信号によって表されるデジタルデータを送受信する。また、CANはシリアル通信のプロトコルであり、CANバスに接続されている複数のECUのうちの一のECUのみがデータを送信することができ、他のECUは一のECUがデータの送信を終了するまで待機するように制御される。また、複数のECUが同時的にデータの送信を行った場合には、データに付されたIDを基に調停が行われ、優先度の高いデータの送信を行うように制御される。
ISO 11898−1:2003 Road vehicles--Controller area network(CAN)--Part1:Data link layer and physical signaling ISO 11519−1:1994 Road vehicles--Low-speed serial data communication--Part1:General and definitions
近年では、車輌にて行われる電子制御の高機能化に伴って、車輌に搭載されるECUが高機能化されると共に、搭載数が増加しており、ECU間で送受信されるデータ量及び送受信の発生頻度が増大している。このため従来のCANのプロトコルに従う通信システムの通信速度(1Mbps程度)では、送受信できるデータ量が十分とはいえず、現状の車載の通信システムは通信容量の限界に達しつつある。
これに対して、通信速度の高速化を実現する通信プロトコルとしてFlexRayなどのプロトコルが提案されている。このような別のプロトコルを採用することで通信速度の高速化が実現できるが、既存の通信システム全体をCANプロトコルから別のプロトコルへ変更することは、装置の開発コスト及びシステムの信頼性等の面で負担が大きい。
そこで、従来のCANによる通信システムに対して、高速通信が要求される箇所から徐々にCANと互換性のある高速な上位プロトコルへ変更していくことができる仕組みを作ることが求められ、これにより上記の開発コスト及び信頼性等に係る問題をできるだけ取り除くことが可能となる。
従来のCANプロトコルにおいて通信速度の向上を制限していた要因には、複数のECUが同時的にデータを送信した場合に行われる調停処理(アービトレーション)に必要な処理時間が挙げられる。例えばアービトレーションを行うためには、各通信装置は、バスに対して自らの送信データに係る信号を出力した後、他の通信装置が出力する信号との衝突によるバス上の信号の変化の有無を検出するが、他の通信装置が出力する信号の伝搬遅延などを考慮して、ある程度の待機時間後に信号検出を行う必要ある。このときの待機時間が通信速度向上の妨げとなる。
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、CANのプロトコルをベースに、アービトレーションの処理時間などの速度向上に係る制限要因を解消して、バスに接続された複数の通信装置が行うデータの送受信を高速化することができる通信システム及び通信装置を提供することにある。
本発明に係る通信システムは、3つ以上の通信装置が共通の通信線で接続され、一の通信装置が送信したメッセージを他の複数の通信装置が受信する通信システムにおいて、各通信装置に対して一又は複数の送信権利が予め割り当てられ、該送信権利毎に定められた順序で前記3つ以上の通信装置が巡回的にメッセージの送信を行うようにしてあり、前記通信装置は、各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の通信装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、他の通信装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、起動後の所定サイクルに亘ってメッセージの送信を行わず、前記所定サイクルの間に他の通信装置からメッセージを受信した場合には該メッセージに同期して以降のメッセージ送信を行い、前記所定サイクルの間に他の通信装置からメッセージを受信しない場合にはメッセージ送信を行って、他の通信装置とのメッセージ送受信を開始する通信開始手段とを有することを特徴とする。
また、本発明に係る通信システムは、前記通信装置が、メッセージ送信までの待機時間を計時する計時手段を有し、前記通信装置の通信開始手段は、メッセージ送信を行った場合又は前記所定サイクルの間に他の通信装置から異常なメッセージを受信した場合に、割
り当てられた送信権利に応じた待機時間を前記計時手段にて計時した後、メッセージの送信を行うようにしてあり、複数の前記通信装置が、前記計時手段にてそれぞれ異なる待機時間を計時するようにしてあることを特徴とする。
また、本発明に係る通信システムは、3つ以上の通信装置が共通の通信線で接続され、一の通信装置が送信したメッセージを他の複数の通信装置が受信する通信システムにおいて、各通信装置に対して一又は複数の送信権利が予め割り当てられ、該送信権利毎に定められた順序で前記3つ以上の通信装置が巡回的にメッセージの送信を行うようにしてあり、前記通信装置は、各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の通信装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、他の通信装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、メッセージ送信までの待機時間を計時する計時手段と、所定サイクルの間に他の通信装置からメッセージを受信しない場合に、割り当てられた送信権利に応じた待機時間を前記計時手段にて計時した後、メッセージ送信を再開する通信再開手段とを有し、複数の前記通信装置が、前記計時手段にてそれぞれ異なる待機時間を計時するようにしてあることを特徴とする。
また、本発明に係る通信システムは、3つ以上の通信装置が共通の通信線で接続され、一の通信装置が送信したメッセージを他の複数の通信装置が受信する通信システムにおいて、各通信装置に対して一又は複数の送信権利が予め割り当てられ、該送信権利毎に定められた順序で前記3つ以上の通信装置が巡回的にメッセージの送信を行うようにしてあり、前記通信装置は、各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の通信装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、他の通信装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、メッセージ送信の停止を要求するメッセージを送信する通信停止要求送信手段と、他の通信装置から通信処理の停止を要求するメッセージを受信する通信停止要求受信手段と、所定サイクルに亘って、複数の他の通信装置から前記通信停止要求受信手段が通信処理の停止を要求するメッセージを受信した場合に、メッセージ送信を停止する通信停止制御手段とを有することを特徴とする。
また、本発明に係る通信システムは、前記通信装置のメッセージ送信手段が、自らの一の送信権利に係る前回のメッセージ送信から今回のメッセージ送信までの1サイクル間に送信される他の送信権利に係るメッセージの受信の成否を、前記受信成否情報として送信するメッセージに含ませるようにしてあることを特徴とする。
また、本発明に係る通信システムは、各通信装置が、一の通信権利に係るメッセージの送信が所定時間に亘って行われない場合、次の通信権利に係るメッセージの送信又は受信を行うようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記通信装置のメッセージ送信手段は、送信権利を識別するための識別情報を含むメッセージを生成して送信するようにしてあり、各通信装置は、受信したメッセージの前記識別情報に基づいて、メッセージ送受信の同期を行うようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記通信装置のメッセージ送信手段は、前記識別情報の誤りを検出又は訂正するための情報を含むメッセージを生成して送信するようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記通信装置は、メッセージの送受信に係るエラーの発生数を計数するエラーカウンタを有し、前記通信装置のメッセージ送信手段は、前記エラーカウンタが計数したエラー発生数が所定値を超えた場合に、メッセージ送信の頻度を低減するようにしてあることを特徴とする。
また、本発明に係る通信装置は、共通の通信線を介して2つ以上の他の装置との間でメッセージの送受信を行う通信装置において、一又は複数の送信権利が予め割り当てられており、他の装置に割り当てられた送信権利を含む各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、他の装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、起動後の所定サイクルに亘ってメッセージの送信を行わず、前記所定サイクルの間に他の装置からメ
ッセージを受信した場合には該メッセージに同期して以降のメッセージ送信を行い、前記所定サイクルの間に他の装置からメッセージを受信しない場合にはメッセージ送信を行って、他の装置とのメッセージ送受信を開始する通信開始手段とを備え、前記メッセージ送信手段及び前記メッセージ再送信手段は、割り当てられた送信権利に定められた順序で、前記他の装置との間で巡回的にメッセージの送信を行うようにしてあることを特徴とする。
また、本発明に係る通信装置は、共通の通信線を介して2つ以上の他の装置との間でメッセージの送受信を行う通信装置において、一又は複数の送信権利が予め割り当てられており、他の装置に割り当てられた送信権利を含む各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、他の装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、メッセージ送信の停止を要求するメッセージを送信する通信停止要求送信手段と、他の装置から通信処理の停止を要求するメッセージを受信する通信停止要求受信手段と、所定サイクルに亘って、複数の他の装置から前記通信停止要求受信手段が通信処理の停止を要求するメッセージを受信した場合に、メッセージ送信を停止する通信停止制御手段とを備え、前記メッセージ送信手段及び前記メッセージ再送信手段は、割り当てられた送信権利に定められた順序で、前記他の装置との間で巡回的にメッセージの送信を行うようにしてあることを特徴とする。
本発明においては、複数の通信装置が共通の通信線(バス)で接続されたネットワーク構成において、各通信装置に予め一又は複数の送信権利(以下、スロットという)を割り当て、各通信装置が自らのスロットにて予め定められた順序で巡回的にメッセージの送信を行う構成とする。これにより、複数の通信装置が予め定められた順序でバスを時分割に利用してデータの送信を行う構成となるため、従来のCANプロトコルのように複数の通信装置が同時的にデータ送信を行うことがなく、アービトレーションを行う必要がない。よって、アービトレーションに要する時間の制約がなくなり、通信速度を高速化することが可能となる。
また各通信装置は、一のスロットに係るメッセージ送信を行う場合に、他のスロットに係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報と、他の通信装置へ送信すべきデータとを含むメッセージを作成して送信する。なお他の通信装置へ送信すべきデータがない場合には、受信成否情報を含んでデータを含まないメッセージを作成して送信してもよい。受信成否情報及びデータを含むメッセージを送信する構成とすることによって、各通信装置は、自らに与えられたスロットを有効に活用して他の通信装置へメッセージ受信の成否を知らせることができ、且つ、自らが有するデータを他の通信装置へ与えることができる。
一の通信装置が送信したメッセージは、バスに接続された他の全ての通信装置にて受信される。メッセージを受信した各通信装置は、メッセージに含まれるデータを取得することができると共に、メッセージに含まれる受信成否情報から以前に自らが送信したメッセージが正しく受信されたか否かを判断することができる。よって各通信装置は、一のスロットに係る前回のメッセージ送信からこのスロットに係る次のメッセージ送信までの間の1サイクル間に受信したメッセージに含まれる受信成否情報を調べ、前回に送信したメッセージが正しく受信されていない場合には、同一スロットに係る次の送信の機会が与えられた際にメッセージの再送信を行うことができる。
これにより、従来のCANプロトコルのようなアービトレーションを行うことなく、メッセージ送信を衝突させることなく複数の通信装置が効率よくメッセージ送信を巡回的に行うことができ、何らかの不具合によってメッセージが正しく受信されなかった場合であっても確実にメッセージを再送信することができる。
また、本発明においては、各通信装置が作成するメッセージには、一の送信権利に係る前回のメッセージ送信から今回のメッセージ送信までの1サイクル間に送受信される他のスロットに係るメッセージ受信の成否を受信成否情報として含ませる。即ち、通信システム中のスロット総数分の受信成否情報が1サイクル分の情報としてメッセージに含まれる(ただし、自らのスロットについての受信成否情報については省略することもでき、この場合にはスロットの総数−1の情報がメッセージに含まれる)。このように1サイクル分の受信成否情報を各通信装置が送信し、他の通信装置から送信された受信成否情報を1サイクル間受信することによって、各通信装置は、バスを共有する他の全ての通信装置にて自らの送信メッセージが正しく受信されたか否かを知ることができる。
また、本発明においては、一のスロットに係るメッセージの送信順に至った後、このスロットに係るメッセージ送信がなされない場合、このスロットが割り当てられた通信装置の処理が何らかの理由(例えば故障などの不具合又はスリープモード等)によって停止していることが推定される。そこで各通信装置は、一のスロットに係るメッセージ送信が所定時間に亘って行われない場合、このスロットに係るメッセージ送受信の処理を省略して、次のスロットに係るメッセージ送受信の処理を行う。これにより、メッセージの送受信が行われない期間を可能な限り短くすることができ、通信速度の高速化に寄与することができる。また通信システムにオプション装備を追加するためなどで予備のスロットを設けた場合であっても、オプション装備が追加されていない状態では予備のスロットに係る処理を省略することができる。
また、本発明においては、各通信装置が作成するメッセージには、スロットを識別するための識別情報(例えばスロット番号)を含める。本通信システムに参加する複数の通信装置は、バスを時分割で共用するために、バスを使用中のスロットがいずれであるかを把握し、同期してメッセージ送信を行う必要がある。そこで各通信装置は、受信したメッセージに含まれるスロット番号の受信タイミングに合わせて、メッセージ送受信に係る処理の同期を行う。これにより複数の通信装置が同期して処理を行うことができ、確実にメッセージ送受信を行うことができる。
また、本発明においては、各通信装置が作成するメッセージには、スロット番号などの識別情報と共に、この識別情報の誤り検出又は訂正を行うための情報を含む。従来のCANプロトコルにおいても、メッセージ全体の誤り検出のための情報(CRC(Cyclic Redundancy Check)シーケンス)がメッセージに含まれていたが、これとは別にスロット番号などのみの誤り検出又は訂正のための情報をメッセージに含める。本通信システムでは、バスを時分割で利用して複数の通信装置が巡回的にメッセージ送信を行うために、送信されたメッセージがいずれのスロットに係るものであるかを判断することは重要な処理であり、この判断に用いることができるスロット番号などの識別情報に誤りが発生すると、メッセージの送信順序などに破綻をきたす虞がある。よって、識別情報の誤り検出又は訂正のための情報をメッセージに含むことで、巡回的なメッセージの送受信を確実に行うことが可能となる。またメッセージ全体で誤りを検出した場合であっても、誤りが識別情報にて生じたか否かを判断できるため、その後のメッセージ再送信に係る処理などを容易に行うことができる。
また、本発明においては、メッセージ送受信の際に発生したエラーの数を各通信装置がエラーカウンタにてカウントする。エラーの発生数が多い場合には、通信装置の故障などが生じている虞があるため、カウントしたエラーの発生数が所定値を超えた場合に、通信装置はメッセージ送信の頻度を低減する。メッセージ送信の頻度低減は、例えば巡回的に与えられる自らの送信順に至った場合であっても、数サイクルに1度のみメッセージの送信を行うなどの方法で実現できる。更に、メッセージ送信の頻度を低減した後にもエラーが発生し、エラーカウンタの値が上限値を超えた場合には、通信装置のメッセージ送信を停止してもよい。
このように、エラー発生数に応じたメッセージ送信の制御を行うことによって、故障などが生じた通信装置が送信するメッセージが他の通信装置の処理に悪影響を与えることを防止することができ、通信システムの信頼性を向上できる。
また、本発明においては、バスを共有する複数の通信装置は処理(特に、スロットに係る処理)を同期させて行う必要がある。電源投入又はスリープ状態からの復帰等によって通信システムが起動された直後は、複数の通信装置は同期がとれていない状態であるため、各通信装置は、まず起動後に他の通信装置との同期を確立した後、通信処理を開始する。
このときに各通信装置は、起動直後の所定サイクルの間は他の通信装置からのメッセージ受信に徹し、所定サイクルの間にメッセージを受信した場合には、既に通信を開始した他の通信装置が存在すると判断できるため、この通信装置に同期すべく、受信メッセージに同期して以降のメッセージ送信を行い、通信処理を開始する。所定サイクルの間にメッセージを受信しない場合には、既に通信を開始した他の通信装置が存在しないと判断できるため、自らがメッセージ送信を行って通信処理を開始する。
これにより、通信システムの起動後に複数の通信装置が同期して通信処理を開始することができる。
ただし、所定サイクルの間にメッセージを受信していないと判断して複数の通信装置が同時的にメッセージ送信を開始する可能性があり、このような場合にはバス上で複数のメッセージが衝突し、他の通信装置は正常なメッセージを受信することができない。そこで本発明においては、各通信装置が計時手段を有し、メッセージ送信を行った場合又は異常なメッセージを受信した場合に、自らに割り当てられたスロットに応じた待機時間を計時手段によって計時した後、メッセージの送信を行う。
各通信装置に割り当てられたスロットに応じた待機時間とすることにより、通信システムの複数の通信装置はそれぞれ異なる時間を計時手段により計時することとなる。よって、メッセージの衝突が発生した後、最も短い待機時間が設定された通信装置が次のメッセージ送信を単独で行うこととなり、他の通信装置はこのメッセージを正常に受信して同期することができる。
また、通信システムが起動されて通信装置間の同期が確立した後、通信の不具合などによって一又は複数の通信装置に同期のズレが生じる可能性がある。そこで本発明においては、各通信装置が計時手段を有し、2サイクルなどの所定サイクルに亘って他の通信装置からメッセージを受信しない場合に、自らに割り当てられたスロットに応じた待機時間を計時手段によって計時した後、メッセージの送信を行う。
各通信装置に割り当てられたスロットに応じた待機時間とすることにより、通信システムの複数の通信装置はそれぞれ異なる時間を計時手段により計時することとなる。よって、同期にズレが生じることによって複数の通信装置が送信するメッセージが衝突し、各通信装置が他の通信装置からのメッセージを受信しない状態となった場合であっても、最も短い待機時間が設定された通信装置が次のメッセージ送信を単独で行うこととなり、他の通信装置はこのメッセージを正常に受信して同期することができる。
また、本発明においては、通信システムがスリープモードなどの省電力動作状態へ移行する場合、各通信装置は、メッセージ送信を停止する要求(スリープ要求)を他の通信装置へ送信すると共に、他の通信装置からのスリープ要求を受信する。その後、所定サイクルに亘って、通信システム内の複数の通信装置からスリープ要求を受信した場合に、各通信装置はメッセージの送信を停止してスリープモードへ遷移する。これにより、通信システム中の複数の通信装置がスリープモードへの移行準備を整えた後、これら複数の通信装置が揃ってスリープモードへ移行することができる。
本発明による場合は、バスに接続された複数の通信装置にスロットを割り当て、各通信装置が予め定められた順序で巡回的にメッセージ送信を行い、一のスロットに係るメッセージ送信を行う場合には、他のスロットに係るメッセージ受信の成否を示す受信成否情報、及び、他の通信装置へ送信すべきデータを含むメッセージを作成して送信し、メッセージを受信した場合には、このメッセージに含まれる受信成否情報に応じた再送信処理を行う構成とすることにより、従来のCANプロトコルのアービトレーションを行う必要がなくなるため、バス接続された複数の通信機器間の通信速度を高速化することができる。
本発明に係る通信システム及び通信装置のハードウェア構成を示すブロック図である。 本発明に係る通信装置の機能構成を示すブロック図である。 本発明に係る通信システムの通信プロトコルの概要を説明するための模式図である。 本発明に係る通信システムの通信プロトコルで用いるメッセージの構成を示す模式図である。 本発明に係る通信システムが行う応答処理を説明するための模式図である。 本発明に係る通信システムが行う応答処理を説明するための模式図である。 アクションポイントオフセット時間、アイドルスロット時間及び最大送信スロット時間を説明するための模式図である。 スロット管理手段によるスロット管理の基本動作を説明するための模式図である。 スロット管理手段によるスロット管理の基本動作を説明するための模式図である。 スロット管理手段によるスロットカウンタの同期処理を説明するためのタイミングチャートである。 プロトコル制御手段によるメッセージ送信の成否判定を説明するための模式図である。 プロトコル制御手段によるメッセージ再送信処理を説明するための模式図である。 プロトコル制御手段によるメッセージ再送信処理を説明するための模式図である。 本発明に係る通信システムにて検出される通信エラーの一覧を示す図表である。 エラーカウンタの変動条件を示す図表である。 エラー制御手段の動作を説明するための状態遷移図である。 ECUの通信制御処理に係る動作を説明するための状態遷移図である。 初期状態におけるECUの処理手順を示すフローチャートである。 同期準備状態におけるECUの処理手順を示すフローチャートである。 同期準備状態におけるECUの処理手順を示すフローチャートである。 同期待ち状態におけるECUの処理手順を示すフローチャートである。 同期状態におけるECUの処理手順を示すフローチャートである。 同期状態におけるECUの処理手順を示すフローチャートである。 スリープ準備状態におけるECUの処理手順を示すフローチャートである。 バスオフ状態におけるECUの処理手順を示すフローチャートである。 バススリープ状態におけるECUの処理手順を示すフローチャートである。 スタートアップシーケンスの処理例を示すタイミングチャートである。 スタートアップシーケンスの処理例を示すタイミングチャートである。 スタートアップシーケンスの処理例を示すタイミングチャートである。 再同期シーケンスの処理例を示すタイミングチャートである。 再同期シーケンスの処理例を示すタイミングチャートである。 変形例に係る通信システムのメッセージ構成を示す模式図である。
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。
<通信システムの構成>
図1は、本発明に係る通信システム及び通信装置のハードウェア構成を示すブロック図である。図において1はECU(通信装置)であり、図示しない車輌の適所に複数のECU1が配設され、各ECU1は、車輌に搭載された種々の電子機器の制御又はセンサによる車輌の走行状態の検知等の処理をそれぞれ行っている。また複数のECU1は、車輌内に敷設された共通の通信線(バス)5に接続され、バス5を介してメッセージの送受信を行うことができる。
バス5は、従来のCANプロトコルにて用いられるバスと同様の構成であり、作動信号を伝送するツイストペアケーブルで構成されている。バス5上にて伝送される信号は、論理ビットの”0”に対応する優性値の”ドミナント”と、論理ビットの”1”に対応する劣性値の”レセシブ”で表される。ただし本発明に係る通信システムにおいては、ドミナント及びレセシブの信号値は必ずしも優性値及び劣性値として扱われるわけではないが、従来のCANプロトコルとの互換性を保つために同じ信号値が用いられる。
通信システムの構成要素である各ECU1は、車輌の走行状態などを検出するセンサに接続されてこのセンサから入力される信号を取得する入力部12、車輌に搭載された制御対象となる電子機器(図示は省略する)に接続されて制御信号などを出力する出力部13、制御に必要なプログラム及びデータ等を記憶する記憶部14、ECU1内の各部へ電力を供給する電源回路15、及びバス5に接続されてデータの送受信を行う通信部16等と、ECU1内の各部の動作を制御する制御部11とを備えている。なお、図1においては1つのECU1のみ詳細な内部構成を示し、他のECU1は同様の構成であるため詳細な内部構成の図示を省略してある。
ECU1の入力部12は、例えば車輌の車速、加速度、エンジンの温度又はハンドルの操舵角等を検出する各種のセンサが接続され、センサからの検出値が信号として入力されている。入力部12は、センサが検出した検出値を取得して記憶部14に記憶すると共に、制御部11へセンサからの検出値の取得完了を通知する。出力部13には、車輌のエンジン又はブレーキ等の各種装置を電子的に制御するための電子機器に接続され、制御部11の制御に応じて出力部13は各種装置の動作を制御する制御信号を出力する。なお、ECU1によっては入力部12又は出力部13のいずれか一方のみを備える構成であってもよい。
記憶部14は、EEPROM(Electrically Erasable Programmable Read Only Memory)又はフラッシュメモリ等のデータ書き換え可能な不揮発性のメモリ素子により構成されている。記憶部14には、制御部11にて実行されるプログラム及びデータ等が予め記憶されており、ECU1の電源投入時にECU1が記憶部14からこれらのプログラム及びデータ等を読み出して処理を開始する。また記憶部14は、制御部11の処理過程で発生する各種のデータ、センサが検出した検出値、通信により他のECU1へ送信するデータ、及び他のECU1から受信したデータ等を記憶する。なお、記憶部14は、所謂ROMとRAM(Random Access Memory)とが別に設けられる構成であってもよい。
電源回路15は、車輌のオルタネータ又はバッテリ等の電力供給源(図示は省略する)に接続され、電力供給源からの電力を各部に適した電圧又は電流に調整した後に、各部へ供給する。
通信部16は、バス5に接続されており、制御部11の制御に従って記憶部14から送信用のデータを読み出し、このデータに所定の情報を付与したメッセージを作成してバス5へ出力することによって、メッセージの送信を行う。通信部16は、他のECU1から送信されたメッセージを受信し、受信したメッセージから必要なデータを抽出して記憶部14に記憶し、受信完了を制御部11へ通知する。また通信部16は、通信に係る種々の制御処理を行っており、例えば他のECU1と同期してバス5を時分割で利用してメッセージ送受信を行うための制御処理、他のECU1からのメッセージ受信の成否を判断する処理、他のECU1からのメッセージ受信に対する応答を行う処理、又は、他のECU1から受信したメッセージの内容に応じて自らのメッセージの再送信を行う処理等の種々の処理を行っている。ECU1が行うメッセージの送受信処理の詳細は後述する。
制御部11は、入力部12に入力された信号などに基づく情報及びバス5を介して他のECU1から受信した情報等を取得し、取得した情報を基に演算を行って制御信号を生成し、出力部13から制御信号を出力することによって、車輌に搭載された電子機器の制御を行う。このとき制御部11は、入力部12に入力されるセンサなどからの情報又は演算結果等を他のECU1と共有する必要がある場合、これらの情報をデータとして含むメッセージを生成し、通信部16にて他のECU1へ送信する。
<通信装置の機能構成>
図2は、本発明に係る通信装置の機能構成を示すブロック図であり、ECU1の制御部11及び通信部16にて実現される通信機能に係る構成を示したものである。ECU1の機能は、アプリケーション層、プロトコル制御層及び物理層の3つに分けることができる。アプリケーション層は、一又は複数のアプリケーションソフトウェア(以下、アプリケーションという)101で構成される。プロトコル制御層は、プロトコル制御手段102、エラー制御手段103、メッセージ生成手段104、スロット管理手段105及びビットサンプリング手段106等を含んでいる。また物理層は、バスドライバ107などで構成される。
物理層は、バス5との物理的な接続及びバス5に対する電気信号の授受に係る層であり、OSI(Open Systems Interconnection)参照モデルの物理層に相当する。物理層のバスドライバ107は、プロトコル制御層から与えられる送信メッセージの値(ドミナント/レセシブ)に対応した信号をバス5に対して出力すると共に、バス5の信号レベルを検出してドミナント/レセシブの値に変換し、プロトコル制御層へ与える。バスドライバ107は、通信部16に設けられている。
アプリケーション層は、車輌に搭載された電子機器の制御に係る具体的なサービスを提供する層であり、OSI参照モデルのアプリケーション層に相当する。アプリケーション層の各アプリケーション101は、予め定められたAPI(Application Programming Interface)を利用してプロトコル制御層との情報交換を行う。アプリケーション101は、記憶部14に記憶されたプログラム及びデータを制御部11が実行することによって実現するものである。
本実施の形態に係るECU1の物理層のバスドライバ107及びアプリケーション層のアプリケーション101は、従来のCANプロトコルが備えるものと略同じ構成とすることができる。本発明に係る通信装置と、従来のCANプロトコルの通信装置とは、プロトコル制御層の構成が異なり、通信プロトコルが異なる。ただし本発明に係る通信装置の通信プロトコルは、従来のCANプロトコルをベースとして改良を加えたものである。
本発明に係る通信システムの通信プロトコルは、図1に示すような複数の通信装置が共通の通信線に接続されるバス接続のネットワークで用いることが好適である。ただしその他の構成のネットワークで用いることも可能であり、例えばゲートウェイを中心に複数の通信装置がスター接続された構成のネットワークであっても、ゲートウェイ及び通信装置の間で行う通信処理を本発明の通信プロトコルにて行うことができる。また本発明の通信プロトコルでは、通信を行う複数の通信装置にマスター/スレーブなどの上下関係はなく、全ての通信装置が対等の関係で通信を行う。
従来のCANプロトコルでは、バスに対して複数の通信装置が同時的にメッセージ送信を行った場合、メッセージに含まれるID(IDentifier)の優先度に応じた調停処理(アービトレーション)が各通信装置にて行われ、最も優先度が高いメッセージの送信が行われる。これに対して本発明の通信プロトコルでは、上記のアービトレーションは行わない。本発明の通信プロトコルでは、バス5に接続された複数のECU1が巡回的にメッセージ送信を行う(即ち、予め定められた順序で周期的にメッセージ送信を行う)ことによって、バス5を時分割で利用し、メッセージ送信が衝突することを回避する。
<通信プロトコル概要>
図3は、本発明に係る通信システムの通信プロトコルの概要を説明するための模式図である。なお以下の説明においては、バス5に4つのECU1が接続された構成を想定し、4つのECU1をそれぞれ1a〜1dの符号にて区別する。本発明の通信プロトコルでは、通信に参加するECU1a〜1dに対して予め(静的に)一又は複数のスロット(スロット番号)が割り当てられている。スロットは、巡回的にメッセージ送信を行う際の送信権利を示すものであり、スロット番号が小さいほど送信順が先となる。なおスロット番号の重複は認められず、1つのスロット番号につき1つのECU1a〜1dのみが送信を行うことができる。
例えば図3(a)に示すように、ECU1aにはスロット1及びスロット5が割り当てられ、ECU1bにはスロット2が割り当てられ、ECU1cにはスロット3及びスロット6が割り当てられ、ECU1dにはスロット4が割り当てられている。また各ECU1a〜1dには、ネットワーク中の総スロット数、及び、1のスロットに係る1回のメッセージ送信にてバス5を利用できる最大時間(1スロット時間という)等の共通情報が予め与えられている。
各ECU1a〜1dは、総スロット数×1スロット時間を1サイクルとして、番号の小さいスロットが割り当てられたECU1a〜1dから順にメッセージ送信を行う。例えば図3(b)に示すように、スロット1が割り当てられたECU1aがメッセージ(図中ではMsgと略記する)Aを1番目に送信し、スロット2が割り当てられたECU1bがメッセージBを2番目に送信し、スロット3が割り当てられたECU1cがメッセージCを3番目に送信し、スロット4が割り当てられたECU1dがメッセージDを4番目に送信する。その後、スロット5が割り当てられたECU1aがメッセージEを5番目に送信し、スロット6が割り当てられたECU1cがメッセージFを6番目に送信する。番号が最大のスロットに係るメッセージ送信の終了により1サイクルが終了し、次のサイクルにてスロット1が割り当てられたECU1aがメッセージGを送信する。
このように、バス5に接続された複数のECU1a〜1dが同期してスロット番号に応じた巡回的なメッセージ送信を行うことによって、バス5上にて複数のメッセージが衝突することがないため、従来のCANプロトコルのアービトレーションを各ECU1a〜1dが行う必要はない。このため、従来のCANプロトコルではメッセージを送信する際、通信装置はメッセージをバスに出力した後に、バス上の信号変化の有無をビット毎に検出する必要があるが、本発明の通信プロトコルではこのようなビット毎の検出処理を行う必要がなく、通信速度を高速化することができる。上記のようなスロットによるメッセージ送受信の制御は、各ECU1a〜1dのプロトコル制御手段102及びスロット管理手段105等によって行われる。
いずれかのECU1a〜1dから送信されたメッセージは、バス5に接続された他の全てのECU1a〜1dにて受信可能である。メッセージを受信した他のECU1a〜1dは、メッセージの送信元のECU1a〜1dに対してメッセージを正しく受信したか否かの応答(いわゆる、ACK(ACKnowledgement)/NAK(Negative AcKnowledgement)の送信)を行う必要がある。従来のCANプロトコルではメッセージに含まれる1ビットのACKスロットを利用して応答を行っており、メッセージ送信元の通信装置はACKスロット期間に信号変化の有無を検出することで、メッセージが正しく受信されたか否かを判断することができる。
本発明の通信プロトコルでは、上述のようにメッセージ送信の際にビット毎の信号変化を検出しないため、従来のCANプロトコルとは異なる方法でメッセージ受信の応答を行う。このため本発明の通信プロトコルでは、ECU1a〜1dの間で送受信するメッセージの構成を、従来のCANプロトコルのメッセージ構成に対していくつかの点で拡張したものとしている。
<メッセージ生成>
次に、ECU1のプロトコル制御層に含まれるメッセージ生成手段104の動作を説明する。図4は、本発明に係る通信システムの通信プロトコルで用いるメッセージの構成を示す模式図であり、ECU1のメッセージ生成手段104にて生成されるものである。本発明の通信プロトコルでは、データフレーム及びACKフレームの2種のメッセージを用いる。本発明の通信プロトコルのデータフレームは、従来のCANプロトコルのデータフレームに相当し、本プロトコルのACKフレームは、従来のCANプロトコルにおいて相当するものはない。データフレームは、他のECU1へのデータの送信と、データ受信の成否に係る応答とを行うためのものである。ACKフレームは、他のECU1へ送信すべきデータが存在しない場合に用いられるほか、通信システムのスタートアップ及びスリープを行う際に用いられる。
本通信プロトコルのデータフレームは、SOF(Start Of Frame)、IDフィールド、コントロールフィールド、スリープビット、エラーアクティブビット(図4においてはEAと略記する)、ACKフィールド、スロット番号フィールド(図4においてはスロットと略記する)、データフィールド、CRC(Cyclic Redundancy Check)フィールド、及びEOF(End Of Frame)で構成されている。またACKフレームは、データフレームからデータフィールドを除いた構成である。なお、SOF、コントロールフィールド、データフィールド、EOF及びIFSについては、従来のCANプロトコルのものと同じものである。
SOFは、従来のCANプロトコルのデータフレームに設けられたSOFと同じものである。メッセージの開始を表すビットであり、1ビットのドミナントである。通信システムの各ECU1は、バス5上のSOFを検出することによって、メッセージ受信を同期して行う。
IDフィールドは、従来のCANプロトコルのデータフレームに設けられたアービトレーションフィールドと同じ構成であるが、上述のように本発明の通信プロトコルではアービトレーションを行わないため、このフィールドの値は単にメッセージのIDとして用いられる。IDフィールドは、IDデータ及びRTR(Remote Transmission Request)ビットを含んでいる。IDデータは、メッセージの種類を示し、標準フォーマットでは11ビットであり、拡張フォーマットでは29ビットである。RTRは、1ビットのデータであり、従来のCANプロトコルと同様のものである。
コントロールフィールドは、従来のCANプロトコルのコントロールフィールドと同じものであり、標準フォーマット又は拡張フォーマットを区別するためのIDE(IDentifier Extension)ビット、及びデータフレームのデータ長を示す4ビットのDLC(データ長コード)等の情報が含まれている。なお各ECU1a〜1dによるデータフレームとACKフレームとの識別には、IDフィールドのIDデータを用いており、IDデータ=1として正常受信するフレームをACKフレームとする(ただしこのIDデータの値は一例であって、その他の値を用いてもよい)。また各ECU1a〜1dは、ACKフレームにおいてDLC=0に設定して送信を行い、ACKフレームを受信したECU1a〜1dは、IDデータ=1のフレームを受信した場合には、受信フレームがDLC≠0であっても、DLC=0とみなして受信処理を行う。
スリープビットは、通信システムのスリープに係る処理に用いられる1ビットの情報であり、ACKフレームのみで利用される。スリープビットがドミナントに設定されている場合は通常の動作が行われ、スリープビットがレセシブに設定された場合はACKフレームがスリープ要求として受信され、スリープに係る処理が開始される。なおデータフレームにおいては、スリープビットは常にドミナントに設定される。
エラーアクティブビットは、1ビットの情報であり、通信処理に係るエラーが発生した場合にエラーの状態を通知するためのものである。エラーアクティブビットがドミナントに設定された場合、エラーの状態はエラーアクティブであり、エラーアクティブビットがレセシブに設定された場合、エラーの状態はエラーパッシブである(エラーアクティブ及びエラーパッシブ等の詳細は後述する)。
ACKフィールドは、通信システムにおける総スロット数に等しいビット数の情報であり、各ビットに1つのスロットが対応付けられ、1サイクル分のメッセージ受信の成否情報が設定される。例えば総スロット数が16の場合、ACKフィールドは16ビットの情報であり、1ビット目にスロット1の受信成否情報が設定され、2ビット目にスロット2の受信成否情報が設定され、…、16ビット目にスロット16の受信成否情報が設定される。なおACKフィールドの各ビットの値は、レセシブが受信成功(ACK)に対応し、ドミナントが受信失敗(NAK)に対応する。
ただし、本発明の通信システムは、従来のCANプロトコルのアービトレーション及びACKビット等の機能が必要ないため、ドミナントがACKに対応し、レセシブがNAKに対応する構成とすることもできる。即ち、ACKフィールドのACK及びNAKと、レセシブ及びドミナントとの組み合わせは、通信システム内で統一されていれば、特に限定されるものではなく、いずれの組み合わせであってもよい。
スロット番号は、このメッセージ送信が行われたスロットの番号が設定され、通信システムの各ECU1が同期補正(詳細は後述する)を行うために用いられる。スロット番号のデータサイズは、総スロット数により規定され、例えば総スロット数が16であればスロット番号は4ビットの情報となる。
データフィールドは、従来のCANプロトコルのデータフレームに設けられたデータフィールドと同じである。データフィールドは0〜8バイトのデータで構成されており、MSB(Most Significant Bit)ファーストで送信される。各ECU1は、他のECU1へ送信すべき任意のデータをこのデータフィールドに収めて送信する。
CRCフィールドは、15ビットのCRCシーケンスと、1ビットのCRCデリミタ(区切り用のビット)とで構成されており、受信したメッセージの誤り検出を行うためのものである。CRCシーケンスは、SOFからデータフィールドまでの値について予め定められた生成多項式を用いた演算を行うことにより取得することができる。なお、演算に用いる生成多項式は、従来のCANプロトコルで用いられるものと同じであってよい。メッセージを受信したECU1は、受信したメッセージについて生成多項式により算出される値と、受信したメッセージのCRCシーケンスの値とを比較することによって誤り検出を行うことができ、2つの値が一致しない場合は誤りが生じていると判断する。CRCデリミタは、従来のCANプロトコルにおいては1ビットのレセシブであったが、本発明の通信プロトコルにおいては1ビットのレセシブ及び1ビットのドミナントの計2ビットとする。なお、CRCシーケンスの長さを15ビットとしたが、これに限るものではなく、14ビット以下又は16ビット以上としてもよい。
EOFは、従来のCANプロトコルのデータフレームに設けられたEOFと同じである。データフレームの終了を表すビットであり、7ビットのレセシブである。
以上に説明したデータフレーム及びACKフレームは、ECU1のメッセージ生成手段104が、プロトコル制御手段102の制御に応じて生成する。メッセージ生成手段104は、生成したメッセージをビットサンプリング手段106を介してバスドライバ107へ与えることによって、バス5へメッセージを出力し、バス5に接続された他の全てのECU1に対するメッセージ送信を行う。また、メッセージ生成手段104は、ビットサンプリング手段106から与えられるサンプリング結果、即ち受信メッセージから、図4に示した各フィールドのデータを抽出してプロトコル制御手段102へ与える。
図5及び図6は、本発明に係る通信システムが行う応答処理を説明するための模式図である。図5には通信システム内のメッセージ送信の一例を示し、図6には各メッセージに含まれるACKフィールドの内容を示してある。なお、図5及び図6に示す例は、図3(a)に示した通信システムの構成(4つのECU1a〜1dが6つのスロットを利用してメッセージ送信を行う構成)を前提としたものである。
図5に示すように、通信システムの各ECU1a〜1dが起動して通信が開始されると、スロット1が割り当てられたECU1aからメッセージの送信が開始され、スロットの番号順に複数のECU1a〜1dがメッセージ送信を行う。図示の例では、スロット1が割り当てられたECU1aがメッセージAを送信し、スロット2が割り当てられたECU1bがメッセージBを送信し、スロット3が割り当てられたECU1cがメッセージCを送信し、スロット4が割り当てられたECU1dがメッセージDを送信し、スロット5が割り当てられたECU1aがメッセージEを送信し、スロット6が割り当てられたECU1cがメッセージFを送信して、1サイクルが終了する。次のサイクルでは、スロット1が割り当てられたECU1aがメッセージGを送信し、スロット2が割り当てられたECU1bがメッセージHを送信し、スロット3が割り当てられたECU1cがメッセージIを送信し、同様の処理が繰り返される。
図6に示すように、各ECU1a〜1dが送信するメッセージには、ACKフィールドとして6ビット(=スロット数)の情報(ACK1〜ACK6)が含まれており、スロット1〜スロット6に対するメッセージ受信の成否がそれぞれACK1〜ACK6に1ビットのレセシブ(ACK)又はドミナント(NAK)として設定される。また各ECU1a〜1dは、自らに割り当てられたスロットに対するACKフィールドのビットには、ACKを設定してメッセージ送信を行う。
通信システムが通信を開始した直後は、各ECU1a〜1dによるメッセージの送受信が未だ行われておらず、各ECU1a〜1dはメッセージを受信していない。このように、通信開始直後の1サイクルにおいて、各ECU1a〜1dは、メッセージ送受信が行われていないスロットに係るACKフィールドのビットには、ACKを設定してメッセージ送信を行う。
通信開始後の1サイクル目のスロット1に係る通信において、ECU1aは、自らに割り当てられたスロット1及びスロット5に対応するACK1及びACK5にACKを設定すると共に、メッセージの送受信が行われていないスロット2〜4、6に対応するACK2〜4、6にACKを設定したメッセージAを作成して送信する。
次いで、1サイクル目のスロット2に係る通信において、ECU1bは、スロット1に係る通信にて送信されたメッセージAに関する受信の成否(ACK/NAK)をACK1に設定し、自らに割り当てられたスロット2に対応するACK2にACKを設定し、メッセージの送受信が行われていないスロット3〜スロット6に対応するACK3〜ACK6にACKを設定したメッセージBを生成して送信する。
次いで、1サイクル目のスロット3に係る通信において、ECU1cは、スロット1及びスロット2に係る通信にて送信されたメッセージA及びBに関する受信の成否をACK1及びACK2に設定し、自らに割り当てられたスロット3及びスロット6に対応するACK3及びACK6にACKを設定し、メッセージの送受信が行われていないスロット4及びスロット5にACKを設定したメッセージCを生成して送信する。
同様にして、1サイクル目のスロット4に係るECU1dのメッセージDの送信、スロット5に係るECU1aのメッセージEの送信、及びスロット6に係るECU1cのメッセージFの送信が行われる。1サイクルのメッセージ送受信が終了した場合、各ECU1a〜1dは少なくとも1回のメッセージ送信を行っており、ECU1aは、1サイクル目のスロット1にて送信したメッセージAが他のECU1b〜1dにて正しく受信されたか否かを、他のECU1b〜1dからのメッセージB、C、D、FのACKフィールドを調べ、全てメッセージのACK1にACKが設定されているか否かで判断することができる。
ECU1aは、全てのメッセージのACK1がACKに設定されている場合、スロット1にて送信したメッセージAが全てのECU1b〜1dにて正常に受信されていると判断し、次のサイクルのスロット1では別データのメッセージGを送信する。これに対してECU1aは、いずれかのACK1がNAKに設定されている場合、スロット1にて送信したメッセージAが正常に受信されていないと判断し、次のサイクルのスロット1ではメッセージAを再送信する。図6に示す例では、メッセージAが他の全てのECU1b〜1dにて正常に受信されたものとしてある。
2サイクル目のスロット1に係る通信において、ECU1aは、1サイクル目のスロット2〜4、6に係るメッセージB〜D、Fに関する受信の成否をACK2〜4、6に設定し、自らに割り当てられたスロット1及びスロット5に対応するACK1及びACK5にACKを設定したメッセージGを生成して送信する。
同様にして、ECU1bは、1サイクル目のスロット3から2サイクル目のスロット1までの1サイクルの間に受信したメッセージのACKフィールドを調べることによって、1サイクル目のスロット2にて自らが送信したメッセージBが他のECU1a、1c、1dにて正しく受信されたか否かを判断することができる。2サイクル目のスロット2に係る通信において、ECU1bは、メッセージBが正しく受信されている場合、図6に示すように新たなメッセージHを作成して送信し、メッセージBが正しく受信されていない場合にはメッセージBの再送信を行う。
同様にして、ECU1cは、1サイクル目のスロット4から2サイクル目のスロット2までの1サイクルの間に受信したメッセージのACKフィールドを調べることによって、1サイクル目のスロット3にて自らが送信したメッセージCが他のECU1a、1b、1dにて正しく受信されたか否かを判断することができる。2サイクル目のスロット3に係る通信において、ECU1cは、メッセージCが正しく受信されている場合、図6に示すように新たなメッセージIを作成して送信し、メッセージCが正しく受信されていない場合にはメッセージCの再送信を行う。
このように、各ECU1a〜1dは、他のECU1a〜1dへ送信すべきデータ(データフィールド)と、他のECU1a〜1dからのメッセージ受信の成否を示す情報(ACKフィールド)とを含むメッセージを作成し、自らに割り当てられたスロットにてこのメッセージを全てのECU1a〜1dへ送信する。これにより、各ECU1a〜1dは、1サイクルの間に全てのECU1a〜1dからのメッセージを受信することができ、各メッセージに含まれるACKフィールドを調べることによって、前回に送信したメッセージが他の全てのECU1a〜1dにて正しく受信されたか否かを判断でき、このメッセージを再送信すべきか否かを判断することができる。なお各ECU1a〜1dは、自らに割り当てられたスロットにて、他のECU1a〜1dへ送信すべきデータがない場合には、ACKフレームを送信すればよい。
従来のCANプロトコルでは、通信システムに含まれる各通信装置が、バス上に出力されたメッセージに含まれるACKスロットに対する書き込み(レセシブからドミナントへ変化させる処理)を行うことによって、メッセージ送信元の通信装置がメッセージ受信の成否を判断することができる。本発明は、上述のようなメッセージ受信に対する応答を各ECU1a〜1dのプロトコル制御層にて行うことによって、従来のCANプロトコルと同等のエラー検出を通信システムが行うことを可能としたものである。アプリケーション層の各アプリケーション101は、従来のCANプロトコルであるか本発明の通信プロトコルであるかにかかわらず、同様の方法で通信に係る処理を行うことができ、アプリケーション101の開発者はいずれのプロトコルであるかを意識することなく開発を行うことができる。
<ビットサンプリング>
次に、ECU1のプロトコル制御層に含まれるビットサンプリング手段106の動作を説明する。本発明の通信システムでは、従来のCANプロトコルと同様に、バス5上の信号はドミナント又はレセシブの論理値で表される2値信号として扱われる。ビットサンプリング手段106は、バス5上の信号を周期的にサンプリングして得られた2値のデータ(即ちメッセージ)をメッセージ生成手段104及びスロット生成手段105へ与え、これらの手段を介してプロトコル制御手段102へ与える。
また共通のバス5に接続された複数のECU1がメッセージ受信を行う場合、全てのECU1が同期して受信処理を行う必要がある。ビットサンプリング手段106は、バス5上の信号変化に応じて他のECU1との同期を取る処理も行っている。ビットサンプリング手段106による同期の方法は、ハード同期及び再同期の2種がある。
ハード同期では、バス5上の信号が所定期間以上に亘ってレセシブの場合にメッセージの送受信が行われていない状態であるとビットサンプリング手段106が判断した後、バス5上の信号がレセシブからドミナントへ変化したタイミング(メッセージのSOFのタイミング)に対して同期が行われる。ビットサンプリング手段106は、SOFの信号変化のエッジを同期点としてバス5上の信号値のサンプリングを行う。ビットサンプリング手段106によるハード同期は、従来のCANプロトコルにて行われるものと同様の処理である。
再同期では、ハード同期を行うビット以外のビットの変化に応じて、ビットサンプリング手段106が同期の補正を行う。ビットサンプリング手段106は、自らが想定する信号変化の位置と、実際にバス5上にて検出した信号変化の位置とを比較して誤差を算出し、この誤差を打ち消すべくサンプリングのタイミングを補正する。なお従来のCANプロトコルにおいては再同期をメッセージの送信及び受信の両方で行っていたが、本発明の通信プロトコルでは、メッセージ送信時にバス5の信号レベルの検出を行わないため、再同期の処理はメッセージの受信時にのみ行う。
<スロット管理>
次に、ECU1のプロトコル制御層に含まれるスロット管理手段105の動作を説明する。ECU1のスロット管理手段105は、上述のように複数のECU1が巡回的にメッセージの送信を行うために、予め各ECU1に割り当てられるスロットの管理を行っている。本発明の通信プロトコルでは、ある時点においてメッセージ送信が許可されているのがいずれのスロットであるかを複数のECU1が共通して知る必要があり、スロット管理手段105は、メッセージ送信に係るスロットを共通して知るための管理処理、即ちスロットの同期処理を行っている。またスロット管理手段105は、あるスロットについてメッセージ送信が全く行われていない場合などに、このスロットを飛ばして次のスロットに係るメッセージの送受信を行うなどのスロット管理を行っている。
本発明の通信プロトコルでは、あるスロットについてメッセージ送信が行われていないことを検出した場合に、各ECU1は、このスロットのメッセージ受信処理を行うことなく、次のスロットの処理へ移行することによって、不具合などによってメッセージ送信を行っていないECU1に係るメッセージ送受信処理を省略し、メッセージ送信を行うことができるECU1のみで通信を行う。
これにより、通信システム中に故障などが生じたECU1が含まれ、このECU1がメッセージ送信を行うことができない状態であっても、このECU1に係るスロットの処理を省略することで通信システム中の他のECU1は相互にメッセージの送受信を行うことができる。また通信システムにオプションのECU1を追加するために予備のスロットを設け、オプション装備が追加されていない状態であっても、予備のスロットに係る処理を省略することができる。
上記の処理を実現するために、各ECU1のスロット管理手段105は、メッセージ送信可能な1スロット時間に対して、アクションポイントオフセット時間、アイドルスロット時間及び最大送信スロット時間が予め設定されており、これら所定時間を基準として他のECU1に割り当てられたスロットに係るメッセージ送信が行われていないことを判定し、このスロットに係るメッセージ受信処理を省略する処理を行う。図7は、アクションポイントオフセット時間、アイドルスロット時間及び最大送信スロット時間を説明するための模式図である。
各ECU1は、自らに割り当てられたスロットの開始時点に達した場合、予め定められたアクションポイントオフセット時間を待機した後で、メッセージの送信を開始する。スロット中におけるメッセージ送信の開始時点をアクションポイントといい、スロットの開始時点からアクションポイントまでの時間がアクションポイントオフセット時間である。
各ECU1は、他のECU1に割り当てられたスロットの開始時点に達した後、アイドルスロット時間が経過してもこのスロットに係るメッセージ送信がなされなかった場合に、このスロットが割り当てられたECU1は何らかの要因でメッセージ送信を行わない状態であるとみなし、次のスロットに係る通信処理に遷移する。
また各ECU1は、自らに割り当てられたスロットの開始時点から最大送信スロット時間が経過するまでの間にメッセージの送信を行う。各ECU1が送信するメッセージは可変長であってよいが、最大送信スロット時間を超えてメッセージ送信を行うことはできない。これにより、ECU1が故障などによって異常なメッセージ送信を行い続ける状態となった場合であっても、最大送信スロット時間に達した後はメッセージ送信が停止され、次のスロットに係る通信処理に遷移する。
これら所定時間は、下記の条件を満たすように、通信システムの設計段階などにおいて予め設定する。
アイドルスロット時間>アクションポイントオフセット時間+フレーム検出確認時間+RTT±α
最大送信スロット時間>1フレームの最大送信時間+アクションポイントオフセット時間±α
なお上記の条件において、RTT(Round Trip Time)とは2つのECU間をメッセージが往復するのに要する時間である。またフレーム検出確認時間とは、一のECU1から送信されたメッセージが他のECU1に到達した後、他のECU1がメッセージの受信を認識するまでに要する時間であり、ECU1の通信部16の内部遅延時間及び信号変化の検出に要する時間等を含むものである。またαは、複数のECU1間におけるクロック誤差の累積分を許容するマージンである。
図8及び図9は、スロット管理手段105によるスロット管理の基本動作を説明するための模式図であり、図8にはスロット管理に用いられる信号のタイミングチャートを示し、図9には各信号の定義を図表として示す。各ECU1は、内部に発振器を備え、この発振器が出力する内部の動作クロックがSample_clockであり(図8においては動作クロックの立ち上がり(又は立ち下がりであってもよい)エッジのみを図示してある)、ECU1内の各部(各手段)はこの動作クロックに基づいて処理を行っている。なお、共通のバス5に接続された複数のECU1は、略同じ周波数の動作クロックで動作している。またビットサンプリング手段106による受信メッセージのサンプリングポイントを示す信号がSample_pointである。
スロット管理手段105は、ビットカウンタ(Slot_bit_cnt)及びスロットカウンタ(Slot_cnt)の2つのカウンタを有している。ビットカウンタは、送受信するメッセージの何ビット目を処理中であるかを示すカウンタである。ビットカウンタは、ビットサンプリング手段106のサンプリングポイント毎にカウントアップされる(Sample_pointの値が1(ハイレベル)に変化したことを検出してカウントアップされる。図中の矢印(1)参照。)。
スロット管理手段105のスロットカウンタは、現時点にてメッセージ送信を行う権利を有するスロットを示すカウンタである。スロットカウンタは、Slot_cnt_enaがハイレベルであり、且つ、ビットカウンタが所定値(図8において所定値は2)を超えた場合に、カウントアップされる(図中の矢印(2)参照)。またスロットカウンタは、Slot_cnt_enaがハイレベルであり、且つ、1サイクルあたりのスロット数を超えた場合に、値が初期化される。
スロットカウンタの値が変化した場合に、信号Slot_cnt_pointが1クロック間のハイレベルとなり(図中の(3)参照)、この信号によってスロットの変化がECU1内の各手段に通知される。また、信号Slot_acpointはスロットにおけるアクションポイントを示しており、スロット開始から予め定められたアクションポイントオフセット時間(Slot_acpoint_bit)が経過した場合(図8の例では、アクションポイントオフセット時間は1であり、ビットカウンタの値が1に変化したタイミング)に、信号Slot_acpointが1クロック間のハイレベルとなる(図中の矢印(4)参照)。
信号Slot_wrcnt及び信号Slot_wrcnt_cmdは、スロット管理手段105の外部から入力される信号であり、後述の同期処理などに利用される。信号Slot_wrcntは、正常に受信したメッセージに含まれるスロット番号などをプロトコル制御手段102がスロット管理手段105へ与えるためのものである。また信号Slot_wrcnt_cmdは、信号Slot_wrcntにて指定したスロット番号をスロット管理手段105が書き込む(内部へ取り込む)タイミングを指示するためのものである。
スロット管理手段105は、上記の複数の信号及びビットカウンタの値に応じてスロットカウンタの値をカウントアップ又は初期化することによって、現時点でメッセージ送信を行うことができるスロット番号を管理している。また共通のバス5に接続された複数のECU1では、各スロット管理手段105がスロット番号を共有する必要があり、スロット管理手段105はメッセージ受信の際にスロットカウンタの同期処理を行っている。
図10は、スロット管理手段105によるスロットカウンタの同期処理を説明するためのタイミングチャートである。なお、図10に示す信号は、図8及び図9に示したものと同じものであり、信号Slot_cnt_ena_qは信号Slot_cnt_enaを1クロック分遅らせた信号である。図中の破線(1)で示すタイミングにてビットカウントが所定値に達したため、スロット管理手段105は、スロットカウンタをスロット1からスロット2へインクリメントする。その後、他のECU1からのメッセージ受信が開始され、スロット管理手段105は、このタイミングで信号Slot_cnt_enaをハイレベルからローレベルに変化させ、スロットカウンタの値が固定される(図中の矢印(2)参照)。
メッセージの受信処理が正常に終了した場合、プロトコル制御手段102から信号Slot_wrcnt_cmdにより受信終了が通知される。このとき正常に受信したメッセージに含まれるスロット番号がプロトコル制御手段102からスロット管理手段105に信号Slot_wrcntとして与えられており、信号Slot_wrcnt_cmdによる受信終了の通知のタイミングに応じて、スロット管理手段105は、与えられたスロット番号を取り込んでスロットカウンタに設定する(図中の矢印(3)参照)。これにより、スロットカウンタの同期が行われる。
またスロット管理手段105は、信号Slot_wrcnt_cmdによる受信終了の通知が与えられた後、信号Slot_cnt_enaをハイレベルに変化させ、スロットカウンタの更新を許可する。信号Slot_cnt_ena_qがローレベルからハイレベルへ変化することによって、ビットカウントの値が初期化され(図中の矢印(4)参照)、次のサンプリングポイントにてスロットカウンタの値がインクリメントされる(図中の矢印(5)参照)。
なお、各ECU1のスロット管理手段105は、メッセージの受信を行う都度、上記のような同期処理を行っている。ただし、メッセージ送信を行うECU1のスロット管理手段105では同期処理は行われない。
<プロトコル制御>
次に、ECU1のプロトコル制御層に含まれるプロトコル制御手段102の動作を説明する。上述のように、本発明の通信プロトコルでは、共通のバス5に接続された複数のECU1がスロット番号及びスロット時間を同期させて、各ECU1が自らに割り当てられたスロット番号の送信順に至った場合にメッセージ送信を行うことで、メッセージの衝突を回避する構成である。プロトコル制御手段102は、図3、図5及び図6等に示したようなスロット番号に応じたメッセージの送受信処理、送信メッセージ中のACKフィールドにACK又はNAKを設定する処理、及び受信したメッセージ中のACKフィールドの値に応じてメッセージを再送信する処理等を行っている。更にプロトコル制御手段102は、通信システムの起動時などに複数のECU1が同期をとって通信を開始するための処理(スタートアップシーケンス)、何らかの通信障害などによって複数のECU1間の同期にずれが生じた場合の再同期処理(再同期シーケンス)、及び、通信システムの動作を停止する場合の処理(スリープシーケンス)等を行っている。
本通信システムの各ECU1は、電源投入などによって起動された後、バス5を共有する他のECU1との間でスロットを同期させるための処理を、スタートアップシーケンスとしてプロトコル制御手段102が実行する。スタートアップシーケンスでは、まず、バス5上の信号の有無を調べることによって、既に他のECU1による通信が開始されているか否かを判断し、通信が開始されていないと判断した場合、プロトコル制御手段102は自らのメッセージ送信を開始することによって、他のECU1の起動を促す。また既に通信が開始されていると判断した場合には、プロトコル制御手段102は、他のECU1からのメッセージ受信を行って、受信したメッセージに含まれるスロット番号に同期して以降の通信処理を行う。
ただし、通信が開始されていないと複数のECU1が判断した場合には、これら複数のECU1によるメッセージ送信が衝突する可能性がある。このような場合、衝突したメッセージを受信した他のECU1は、このメッセージをスロット1のものとみなして次のスロット以降の通信処理を行い、以降の通信処理において異常を検出したECU1が処理を補正することによって更なるメッセージ衝突の発生を抑制する。
また、通信システムにおいてメッセージの送受信が正常に開始された後は、上述のようにメッセージ受信の際にスロットの同期を各ECU1が行うことによって、通信システム中の複数のECU1によるメッセージ送受信の同期は保たれるが、何らかの通信障害などによってスロット番号にズレが生じる可能性がある。本通信システムの各ECU1は、このようなズレが生じた場合であっても通信処理を継続し、以降の通信処理において異常を検出したECU1が再同期の処理を行う。各ECU1のプロトコル制御手段102は、自らが送信したスロットから2サイクル後のスロットまでの間に正常に受信したメッセージが存在しない場合に、通信異常が発生していると判断し、再同期シーケンスを実行する。
また、通信システムの動作を停止して低消費電力状態(スリープモード)とする場合、通信システムの各ECU1は他のECU1との間でスリープモードへ移行することに対する合意を得た後に、スリープモードへの移行を行う必要がある。各ECU1がスリープモードへ移行するか否かの判断はアプリケーション層のアプリケーション101が行い、アプリケーション101からプロトコル制御層のプロトコル制御手段102へスリープ要求が与えられた際に、プロトコル制御手段102がスリープモード移行の合意を得るための処理を行う。具体的には、スリープ要求が与えられたプロトコル制御手段102は、スリープビットにレセシブを設定したACKフレームの送信を行うことで他のECU1に対してスリープモードへ移行することを通知する。その後、プロトコル制御手段102は、他のECU1に係る全てのスロットについてスリープビットがレセシブに設定されたACKフレームを所定サイクル分受信した場合に、スリープモード移行の合意が得られたと判断して、スリープモードへ移行する。即ち、本通信システムでは、全てのECU1がスリープモードに移行すると判断し、各ECU1が送信するACKフレームの全てにてスリープビットがレセシブに設定された場合に、全てのECU1がスリープモードへ移行する。これに対して、少なくとも1つのECU1がスリープモードに移行しないと判断し、このECU1がスリープビットをレセシブに設定したACKフレームを送信しない場合には、通信システム中のECU1がスリープモードへ移行することはない。スリープモードへ移行したECU1は、ビットサンプリング手段106によるビットサンプリングのサンプリング周波数を低減するなどの方法によって、消費電力を低減し、他のECU1が送信したメッセージがバス5上に検出された場合に起動(ウェイクアップ)する。
各ECU1のプロトコル制御手段102は、上記のスタートアップシーケンス、再同期シーケンス及びスリープシーケンス等の例外的な処理を行う以外は、図3、図5及び図6等に示すように、スロット番号に応じたメッセージの送受信処理、送信メッセージ中のACKフィールドにACK又はNAKを設定する処理、及び受信したメッセージ中のACKフィールドの値に応じてメッセージを再送信する処理等を行っている。各ECU1のプロトコル制御手段102は、自らのメッセージ送信の完了後から1サイクルの間に、他のECU1からNAKの応答を含むメッセージを受信せず、且つ、少なくとも他の1つのECU1からACKの応答を含むメッセージを受信した場合に、自ら送信したメッセージが正常に受信されたと判断し、新たなメッセージ送信を行う。これに対してプロトコル制御手段102は、他のECU1からNAKの応答を含むメッセージを1つ以上受信するか、又は、ACKの応答を含むメッセージを全く受信しない場合に、自ら送信したメッセージが正常に受信されなかったと判断し、メッセージの再送信を行う。またプロトコル制御手段102は、他のECU1からACK/NAKを判別できないような異常なメッセージを受信した場合にも、自ら送信したメッセージが正常に受信されなかったと判断し、メッセージの再送信を行う。
図11は、プロトコル制御手段102によるメッセージ送信の成否判定を説明するための模式図である。なお、図11においては、6つのECU1に1つずつのスロットが割り当てられた通信システムにて、スロット1が割り当てられたECU1がメッセージ送信の成否判定を行う場合を示してあり、スロット2〜スロット6の期間に受信したメッセージのACKフィールドに含まれるスロット1に係るACK/NAKの応答結果を示してある。
スロット1が割り当てられたECU1のプロトコル制御手段102は、自送信後のスロット2〜スロット6の期間に受信したメッセージに含まれるACKフィールドのACK1の値をそれぞれ調べ、全てのメッセージについてACKが設定されていた場合には、自らのメッセージ送信が成功したと判断する(図11のケース1参照)。また少なくとも1つのECU1から受信したメッセージにACKが設定され、その他のECU1からのメッセージを受信しない場合についても、プロトコル制御手段102は、自らのメッセージ送信が成功したと判断する(図11のケース2参照)。
これに対して、スロット2〜スロット6の期間に受信したメッセージにNAKが設定されているものが1つでも存在する場合には、プロトコル制御手段102は、自らのメッセージ送信が失敗したと判断し(図11のケース3参照)、メッセージの再送信を行う。またスロット2〜スロット6の期間にメッセージを全く受信しない場合にも、プロトコル制御手段102は、自らのメッセージ送信が失敗したと判断し(図11のケース4参照)、メッセージの再送信を行う。また、スロット2〜スロット6の期間に、ACK/NAKを判断できない異常なメッセージを受信した場合、プロトコル制御手段102は、自らのメッセージ送信が失敗したと判断し(図11のケース5参照)、メッセージの再送信を行う。
図12及び図13は、プロトコル制御手段102によるメッセージ再送信処理を説明するための模式図である。なお、図12及び図13においては、通信の1サイクルが6スロットで構成される通信システムにおいて、バス5上にて送受信される3サイクル分のメッセージを時系列で示してある。
まず、図12に示す例では、1番目のサイクル(サイクル1)のスロット1〜スロット6と、2番目のサイクル(サイクル2)のスロット1〜スロット2とにおいて、メッセージA〜メッセージHが正しく送受信され、メッセージB〜メッセージIのACKフィールドは全てのビットにACKが設定されている。サイクル2のスロット3にて送信されたメッセージIが受信側の(全ての)ECU1にて正しく受信されなかった場合、その後のサイクル2のスロット4〜スロット6と、3番目のサイクル(サイクル3)のスロット1〜スロット2とにおいて送信されるメッセージJ〜メッセージNのACKフィールドには、スロット3に対応するビットにNAKが設定される。スロット3が割り当てられたECU1は、メッセージJ〜メッセージNに設定されたNAKに対応して、サイクル3のスロット3にてメッセージIの再送信を行う。
次に、図13に示す例では、サイクル1のスロット1〜スロット6と、サイクル2のスロット1〜スロット2とにおいて、メッセージA〜メッセージHが正しく送受信され、メッセージB〜メッセージIのACKフィールドは全てのビットにACKが設定されている。サイクル2のスロット3にて送信されたメッセージIが、ACKフィールドの各ビットがACKであるかNAKであるか判別不可能な異常メッセージとして受信側の(全ての)ECU1にて受信された場合、その後のサイクル2のスロット4〜スロット6と、サイクル3のスロット1〜スロット3とにおいて、各ECU1はメッセージIのACKフィールドによる受信成否の判断が行えなかったため、メッセージD〜メッセージIの再送信を行う。
このように、通信システムの各ECU1が、送信するメッセージのACKフィールドに他のECU1からのメッセージ受信の成否を設定すると共に、受信したメッセージのACKフィールドに設定されたACK/NAKに応じてメッセージの再送信を行う構成とすることによって、通信システムの全てのECU1が確実にメッセージを受信できる。
<エラー制御>
図14は、本発明に係る通信システムにて検出される通信エラーの一覧を示す図表である。本発明の通信プロトコルでは、従来のCANプロトコルと同様のスタッフエラー、CRCエラー、フォームエラー及びACKエラーを検出するが、従来のCANプロトコルで検出されたビットエラーの検出は行わない。なお本発明の通信プロトコルのACKエラーは、従来のCANプロトコルのACKエラーとは検出方法などが異なるものである。
本発明の通信プロトコルでは、従来のCANプロトコルと同様に、メッセージのSOFからCRCフィールドのCRCシーケンスまでを送信する際に、同一の信号レベルが5ビット連続する場合には次のビットに1ビットの反転データを付加する処理を行う。この処理をビットスタッフといい、スタッフエラーは、受信したメッセージのSOFからCRCシーケンスまでに同一の信号レベルが6ビット連続している場合に検出されるエラーである。
CRCエラーは、受信したメッセージに含まれるCRCシーケンスの値と、受信したメッセージから算出したCRCの値とが異なる場合に検出されるエラーである。フォームエラーは、ドミナント又はレセシブのいずれかに値が固定されたビット(CRCデリミタ及びEOF)について、受信メッセージのこのビットの値が定められた固定値と異なる場合に検出されるエラーである。
ACKエラーは、受信したメッセージのACKフィールドに含まれるいずれかのビットがNAKに設定されていた場合に検出されるエラーである。従来のCANプロトコルでは、メッセージ中の1ビットのACKスロットがレセシブの場合にACKエラーを検出しており、通信システム中の少なくとも1つの通信装置にてメッセージが受信されればACKスロットがドミナントに設定されるため、送信側の通信装置は受信側のいずれの通信装置がメッセージを正常に受信し、いずれの通信装置がメッセージを正常に受信していないかを確認することはできない。これに対して本発明の通信プロトコルでは、メッセージ中のACKフィールドには各ECU1に割り当てられるスロット毎にACKビットが設けられているため、送信側のECU1は、自らのメッセージ送信後の1サイクルにて受信したメッセージのACKフィールドを調べることによって、他のECU1がメッセージを正常に受信したか否かを個別に判断することができる。
また、従来のCANプロトコルでは、各通信装置はバスに信号を送信した後にバスの信号レベルを検出する処理を行っており、このときに送信した信号の信号レベルと検出した信号レベルとが一致しない場合にビットエラーを検出していた。本発明の通信プロトコルでは、各ECU1は信号送信後にバス5の信号レベルを検出しないため、このビットエラーについては検出しない。
通信システムの各ECU1は、他のECU1からのメッセージを受信した際に上記のエラー検出を行い、いずれかのエラーを検出した場合には、エラー検出後の1サイクル期間内に自らが送信するメッセージに含まれるACKフィールドの対応するビットにNAKを設定して送信を行う。
次に、ECU1のプロトコル制御層に含まれるエラー制御手段103の動作を説明する。従来のCANプロトコルでは、エラーが多発して故障などの疑いがある通信装置は、メッセージ送受信の処理を停止して通信システム全体に悪影響を与えることを防止する機能が備えられており、本発明の通信プロトコルについても同様の機能を備えている。このようなエラーに関する制御処理は、各ECU1のエラー制御手段103にて行われる。
エラー制御手段103は、エラーの発生数をカウントするために2つのカウンタ、TEC(Transmit Error Counter、送信エラーカウンタ)及びREC(Receive Error Counter、受信エラーカウンタ)を有している。図15は、エラーカウンタの変動条件を示す図表である。各ECU1は、自らのメッセージ送信後の1サイクル間に、受信メッセージ中のACKフィールドに含まれる自送信に係るビットの値を調べることによって、他の全てのECU1から自送信のメッセージに対するNAKが与えられていた場合に、TECの値に8を加算する。反対に、各ECU1は、他の全てのECU1から自送信のメッセージに対するACKが与えられ、メッセージ送信に成功した場合には、TECの値から1を減算する(ただしTEC=0の場合は変動なし)。
各ECU1は、受信したメッセージにてフォームエラー、CRCエラー又はスタッフエラーを検出した場合に、RECの値に1を加算する。また各ECU1は、受信したメッセージに何らかのエラーを検出し、このメッセージに対する応答としてNAKを設定する判定をしたが、その後に他のECU1から受信したメッセージから、自らがNAKと判定したメッセージが他のECU1でACKと判定されていた場合、RECの値に8を加算する。
反対に、各ECU1は、一のメッセージを受信した後の1サイクルにおいて更に受信した他のメッセージに含まれるACKフィールドを調べることによって、当該一のメッセージが他のECU1によっても正常に受信されたか否かを調べ、他の全てのECU1にて正常受信されていた場合に、RECの値を減算する。このとき各ECU1は、1≦REC≦127であればRECの値から1を減算し、REC>127であればRECの値を119〜127に設定する(ただしREC=0の場合は変動なし)。
また各ECU1は、所定数以上のエラーが検出されてメッセージの送信を停止した状態(バスオフ状態、後述する)から復帰した場合に、TEC及びRECの値を0にクリアする。
図16は、エラー制御手段103の動作を説明するための状態遷移図である。エラー制御手段103は、TEC及びRECの2つのカウンタの値に応じて、ECU1のエラー制御に係る状態を管理している。エラー制御手段103がこれらの状態をプロトコル制御手段102へ通知することによって、プロトコル制御手段102はエラーの状態に適したメッセージ送受信の処理を行うことができる。エラー制御に係る状態は、エラーアクティブ状態、エラーパッシブ状態及びバスオフ状態の3状態であり、ECU1の起動直後の状態(即ち初期状態)はエラーアクティブ状態である。またTEC及びRECの値は、ECU1の起動時に0にクリアされている。
エラーアクティブ状態は、ECU1の通常動作状態であり、ECU1がメッセージの送受信を制限なく行うことができる状態である。エラーアクティブ状態のECU1が送信するメッセージは、エラーアクティブビットがドミナントに設定される。エラーアクティブ状態にて、TECの値が127を超えるか、又は、RECの値が127を超えた場合、エラー制御手段103は、エラーアクティブ状態からエラーパッシブ状態への遷移を行う。
エラーパッシブ状態は、エラーカウンタの値が一定値を超えたため、メッセージ送信が制限された状態である。エラーアクティブ状態のECU1は、割り当てられた1つのスロットに関するメッセージ送信を2サイクルに1回のみ行うように、メッセージ送信が制限される。これにより、故障などの疑いがあるECU1のメッセージ送信が、他のECU1のメッセージ送受信の妨げとなることが抑制される。
またエラーパッシブ状態のECU1が送信するメッセージは、エラーアクティブビットがレセシブに設定される。エラーアクティブビットがレセシブに設定されたメッセージを受信したECU1は、このメッセージのACKフィールドにNAKが設定されていた場合であっても、このNAKの応答を無視して(メッセージの受信失敗とみなさずに)処理を行う。エラーアクティブフラグがレセシブに設定されたメッセージであっても、ACKフィールドにACKが設定されたメッセージであれば、このメッセージを受信したECU1は、通常のACKが設定されたメッセージを受信した場合と同様の処理を行えばよい。即ち、本発明の通信プロトコルでは、メッセージ中のエラーアクティブビットをレセシブに設定し、ACKフィールドをNAKに設定することによって、このメッセージを従来のCANプロトコルのエラーフレーム(パッシブエラーフラグ)の代替として利用している。
エラーパッシブ状態にて、TEC及びRECの値が共に127以下となった場合、エラー制御手段103は、エラーパッシブ状態からエラーアクティブ状態への遷移を行う。またエラーパッシブ状態にて、TECの値が255を超えた場合、エラー制御手段103は、エラーパッシブ状態からバスオフ状態への遷移を行う。
バスオフ状態は、エラーカウンタの値が更に増加して一定値を超えたため、ECU1が故障などの異常状態に至ったものとみなして、メッセージの送受信が禁じられた状態である。このためバスオフ状態のECU1は、バスオフ状態が解除される所定の条件が満たされるまで、一切のメッセージ送受信を行うことができない。バスオフ状態のECU1は、アプリケーション101からプロトコル制御手段102に対するバスオフクリアの要求が与えられた場合(バスオフクリア条件が成立した場合)、エラー制御手段103は、バスオフ状態からエラーアクティブ状態への遷移を行うと共に、TEC及びRECの値をクリアする。
本発明の各ECU1が上述のエラー制御処理を行うことによって、従来のCANプロトコルと同等のエラー制御が実現できる。
<プロトコル制御詳細>
次に、本発明の通信プロトコルによる制御処理の詳細を状態遷移図に従って説明する。図17は、ECU1の通信制御処理に係る動作を説明するための状態遷移図である。なお、以下の説明において、”X”は通信処理のスタートアップに用いるカウンタの値を示し、スロットカウンタの更新に伴ってカウンタXの値を減じ、カウンタXの値が0になった場合にECU1がメッセージの再送信を行う。なおカウンタXは、メッセージ送信までの待機時間を計時する計時手段に相当する。また、”N”は1サイクルのスロット数を示し、”i”は各ECU1に割り当てられたスロット番号のうちの最小番号を示す。
本発明の通信プロトコルにおいて、各ECU1は、初期状態、初期異常状態、同期準備状態、同期待ち状態、同期状態、スリープ準備状態、バススリープ状態及びバスオフ状態の8つの動作状態を遷移して、通信制御処理を行っている。初期状態は、ECU1が通信を開始する前の状態であり、機器の電源投入後(パワーオンリセット後)又はリセット信号入力後等にECU1はこの状態となる。初期状態においてECU1は、外部の機器からの入力によって又は予め記憶したデータを読み出すことによって、通信を行うために必要な情報(スロット数及びスロット番号等)を取得して初期設定を完了した後、他のECU1との通信の同期を行うべく同期準備状態へ遷移する。ただしECU1は、初期状態において異常が発生した場合又は初期設定に失敗した場合等には、初期状態から初期異常状態へ遷移し、初期異常状態で待機する。
図18は、初期状態におけるECU1の処理手順を示すフローチャートである。なお、図18〜図26に示すフローチャートにおいては、リセット信号が入力された場合に初期状態へ遷移する処理、及び、バスオフ条件が成立した場合にバスオフ状態へ遷移する処理等の例外的な処理は図示を省略してある。また図18〜図26のフローチャートに示す処理は、ECU1のプロトコル制御層のプロトコル制御手段102にて行われる処理である。
初期状態に遷移したECU1は、まず、スロット数及びスロット番号等の情報を取得して初期設定を行う(ステップS1)。次いでECU1は、初期設定にて異常が発生したか否かを判定し(ステップS2)、異常が発生した場合には(S2:YES)、初期異常状態へ遷移指定(ステップS3)、処理を終了する。異常が発生せずに初期設定を完了した場合(S2:NO)、ECU1は、カウンタXの値を(3N)に設定し(ステップS4)、スロットカウントの動作を開始して(ステップS5)、同期準備状態へ遷移し(ステップS6)、初期状態の処理を終了する。
同期準備状態は、他のECU1が既にメッセージの送信を行っているか否かを確認するための状態であり、最大で2サイクルの間、メッセージの受信に徹する。ECU1は、バス5上にメッセージが送信されているか否かを調べ、他のECU1が送信したメッセージを検出した場合には、このメッセージに同期すべく受信処理を行う。即ち、ECU1は、メッセージを正常に受信した場合には、同期状態へ遷移して、このメッセージに同期して以降の処理を行う。またECU1は、メッセージを正常に受信できなかった場合(異常なメッセージを受信した場合)には、同期待ち状態へ遷移して、正常なメッセージの受信を待つべくカウンタ”X”の再設定を行う。また他のECU1がメッセージ送信を開始しておらず、2サイクルの間にバス5上のメッセージが検出されなかった場合(カウンタ”X”が0になった場合)、ECU1は自らがメッセージ送信を開始すべく、同期待ち状態へ遷移し、同期待ち状態にてACKフレームの送信を行う。
図19及び図20は、同期準備状態におけるECU1の処理手順を示すフローチャートであり、同期準備状態においてECU1は図19及び図20に示す処理を繰り返し行っている。同期準備状態のECU1は、スロットカウンタの値を調べることによって、スロットが更新されたか否か(スロット番号が変化したか否か)を判定し(ステップS11)、スロットが更新されていない場合には(S11:NO)、スロットが更新されるまで待機する。スロットが更新された場合(S11:YES)、ECU1は、カウンタXの値から1を減算し(ステップS12)、カウンタXの値が0であるか否かを更に判定する(ステップS13)。カウンタXの値が0の場合(S13:YES)、即ちメッセージを受信することなくカウンタXの値が0に達した場合、ECU1は、同期待ち状態へ遷移し(ステップS14)、同期準備状態の処理を終了する。(ECU1は、同期待ち状態へ遷移後にACKフレームの送信を行う。)
また、カウンタXの値が0でない場合(S13:NO)、ECU1は、正常なメッセージを受信したか否かを判定する(ステップS17)。正常なメッセージを受信していない場合(S17:NO)、ECU1は、異常なメッセージを受信したか否かを更に判定する(ステップS20)。異常なメッセージを受信していない場合(S20:NO)、即ち他のECU1からのメッセージを全く受信していない場合には、ECU1は、処理を終了する(ただし図示の処理は同期準備状態において繰り返し行われており、ステップS11へECU1の処理が戻る)。
正常なメッセージを受信した場合(S17:YES)、ECU1は、カウンタXの値を(2N)に設定し(ステップS18)、同期状態へ遷移して(ステップS19)、同期準備状態の処理を終了する。また異常なメッセージを受信した場合(S20:YES)、ECU1は、カウンタXの値が(N+i−2)より大きいか否かを更に判定する(ステップS21)。カウンタXの値が(N+iー2)より大きい場合(S21:YES)、ECU1は、カウンタXの値に(2N+i−2)を設定し(ステップS22)、同期待ち状態へ遷移して(ステップS23)、同期準備状態の処理を終了する。またカウンタXの値が(N+i−2)以下の場合(S21:NO)、ECU1は、カウンタXの値に(N+i−2)を設定し(ステップS24)、同期待ち状態へ遷移して(ステップS23)、処理を終了する。
同期待ち状態は、他のECU1からのメッセージ受信を待つ状態であり、他のECU1からのメッセージを正常に受信した場合に、ECU1は受信したメッセージに同期して処理を開始し、同期状態へ遷移する。同期待ち状態において、異常なメッセージを受信した場合、ECU1は、このメッセージの再送信を待つ。また同期待ち状態において、他のECU1からのメッセージを全く受信しなかった場合(カウンタ”X”が0になった場合)、ECU1は、ACKフレームを送信する。また同期準備状態にてカウンタXの値が0となって同期待ち状態へ遷移した場合、ECU1は、まずACKフレームの送信を行う。
図21は、同期待ち状態におけるECU1の処理手順を示すフローチャートである。同期待ち状態に遷移したECU1は、まず、カウンタXの値が0であるか否かを調べ(ステップS30)、これにより同期準備状態にてカウンタXの値が0となって同期待ち状態へ遷移したか否かを判断する。カウンタXの値が0の場合(S30:YES)、ECU1は、カウンタXの値に(2N+i−2)を設定し(ステップS34)、ACKフレームを送信して(ステップS35)、ステップS31へ処理を進める。またカウンタXの値が0でない場合(S30:NO)、ECU1は、ステップS31へ処理を進める。
ステップS31にて、同期待ち状態のECU1は、スロットカウンタの値を調べることによって、スロットが更新されたか否かを判定し(ステップS31)、スロットが更新されていない場合には(S31:NO)、スロットが更新されるまで待機する。スロットが更新された場合(S31:YES)、ECU1は、カウンタXの値から1を減算し(ステップS32)、カウンタXの値が0であるか否かを更に判定する(ステップS33)。カウンタXの値が0の場合(S33:YES)、ECU1は、カウンタXの値に(2N+i−2)を設定し(ステップS34)、ACKフレームを送信して(ステップ35)、ステップS31へ処理を戻す。
また、カウンタXの値が0でない場合(S33:NO)、ECU1は、正常なメッセージを受信したか否かを判定する(ステップS36)。正常なメッセージを受信していない場合(S36:NO)、ECU1は、異常なメッセージを受信したか否かを更に判定する(ステップS39)。異常なメッセージを受信していない場合(S39:NO)、ECU1は、ステップS31へ処理を戻す。
正常なメッセージを受信した場合(S36:YES)、ECU1は、カウンタXの値を(2N)に設定し(ステップS37)、同期状態へ遷移して(ステップS38)、同期待ち状態の処理を終了する。また異常なメッセージを受信した場合(S39:YES)、ECU1は、カウンタXの値に(N+i−2)を設定し(ステップS40)、ステップS31へ処理を戻す。
同期状態は、少なくとも1つの他のECU1と同期がとれた状態であり、ECU1は、自らに割り当てられたスロットにてメッセージ(データフレーム又はACKフレーム)の送信を行う。また同期状態は、TEC及びRECの値に応じてエラーアクティブ状態又はエラーパッシブ状態の2つの内部状態を持ち、エラーパッシブ状態ではメッセージ送信が2サイクルに1度に制限される。ECU1は、通常動作状態においてはこの同期状態で動作している。またECU1は、2サイクルの間に他の全てのECU1から全くメッセージを受信しなかった場合には、ACKフレームを送信して、同期待ち状態へ遷移する。アプリケーション層のアプリケーション101からスリープ要求が与えられた場合には、ECU1は、スリープ遷移状態へ遷移する。その他、ECU1は、リセット信号の入力に応じて初期状態へ遷移し、バスオフ条件の成立に応じてバスオフ状態へ遷移する。
図22及び図23は、同期状態におけるECU1の処理手順を示すフローチャートであり、同期状態においてECU1は図22及び図23に示す処理を繰り返し行っている。同期状態のECU1は、アプリケーション101からのスリープ指示が与えられたか否かを判定し(ステップS51)、スリープ指示が与えられた場合には(S51:YES)、スリープ準備状態へ遷移して(ステップS52)、同期状態の処理を終了する。
アプリケーション101からのスリープ指示が与えられていない場合(S51:NO)、ECU1は、自らに割り当てられたスロットのアクションポイントに達したか否かを判定する(ステップS53)。アクションポイントに達した場合(S53:YES)、ECU1は、自らのエラー状態がエラーパッシブ状態であるか否かを更に判定する(ステップS54)。エラー状態がエラーパッシブ状態の場合(S54:YES)、メッセージの送信が2サイクルに1度に制限されるため、ECU1は、自らがメッセージを送信できるサイクルであるか否かを更に判定する(ステップS55)。メッセージ送信できるサイクルでないと判定した場合(S55:NO)、ECU1は、処理を終了する(ただし図示の処理は同期状態において繰り返し行われており、ステップS51へECU1の処理が戻る)。
エラー状態がエラーパッシブ状態でない場合(S54:NO)、即ちエラー状態がエラーアクティブの場合、又は、エラー状態がエラーパッシブ状態であってもメッセージ送信できるサイクルの場合(S55:YES)、ECU1は、他のECU1へ送信すべきデータが存在するか否かを調べる(ステップS56)。ECU1は、他のECU1へ送信すべきデータが存在する場合(S56:YES)、このデータを含むデータフレームを生成して送信し(ステップS57)、処理を終了する。またECU1は、他のECU1へ送信すべきデータが存在しない場合(S56:NO)、ACKフレームを生成して送信し(ステップS58)、処理を終了する。
また自らに割り当てられたスロットのアクションポイントに達していない場合(S53:NO)、ECU1は、スロットカウンタの値を調べることによって、スロットが更新されたか否かを判定する(ステップS59)。スロットが更新されていない場合(S59:NO)、ECU1は、ステップS51へ処理を戻し、スリープ指示が与えられるか、アクションポイントに達するか、又は、スロットが更新されるまで、ステップS51、S53及びS59の判定を繰り返し行う。
スロットが更新された場合(S59:YES)、ECU1は、カウンタXの値から1を減算し(ステップS60)、カウンタXの値が0であるか否かを更に判定する(ステップS61)。カウンタXの値が0の場合(S61:YES)、ECU1は、カウンタXの値に(2N+i−2)を設定し(ステップS62)、ACKフレームを送信して(ステップ63)、同期待ち状態へ遷移し(ステップS64)、同期状態の処理を終了する。また、カウンタXの値が0でない場合(S61:NO)、ECU1は、正常なメッセージを受信したか否かを判定する(ステップS65)。正常なメッセージを受信した場合(S65:YES)、ECU1は、カウンタXの値に(2N)を設定し(ステップS66)、処理を終了する。また正常なメッセージを受信しない場合(S65:NO)、即ち異常なメッセージを受信した場合又はメッセージを受信しない場合には、ECU1は、処理を終了する。
スリープ準備状態では、アプリケーション101からのスリープ要求が与えられて、他のECU1との間でスリープの合意が得られた場合、又は、アプリケーション101からスリープ要求がキャンセルされた場合、ECU1は他の状態への遷移を行う。スリープ準備状態において、ECU1は、データフレームの送信を行うことはできず、スリープビットをレセシブに設定したACKフレームの送信のみを行う。ECU1は、他のECU1からスリープビットがレセシブに設定されたACKフレームをM(予め定められた定数)サイクルに亘って受信した場合に、バススリープ状態へ遷移する。またECU1は、アプリケーション101からスリープ要求のキャンセルが与えられた場合に、同期状態へ遷移する。
図24は、スリープ準備状態におけるECU1の処理手順を示すフローチャートである。なお、図示の処理では、ECU1がスリープ準備カウンタを用いて処理を行うが、このカウンタは初期設定などの際に値が0に初期化される。スリープ準備状態へ遷移したECU1は、まず、アプリケーション101からのスリープ要求がキャンセルされたか否かを判定し(ステップS71)、スリープ要求がキャンセルされていない場合には(S71:NO)、他のECUからACKフレームを1サイクル受信したか否かを更に判定する(ステップS74)。ACKフレームを1サイクル受信していない場合(S74:NO)、ECU1は、ステップS71へ処理を戻し、スリープ要求がキャンセルされるか、又は、ACKフレームを1サイクル受信するまで、ステップS71及びS74の判定を繰り返し行う。
アプリケーション101によってスリープ要求がキャンセルされた場合(S71:YES)、ECU1は、スリープ準備カウンタの値に0を設定し(ステップS72)、同期状態へ遷移して(ステップS73)、スリープ準備状態の処理を終了する。
またACKフレームを1サイクル受信した場合(S74:YES)、ECU1は、スリープ準備カウンタの値をインクリメントし(ステップS75)、スリープ準備カウンタの値が予め設定されたMに達したか否かを判定する(ステップS76)。スリープ準備カウンタの値がMに達していない場合(S76:NO)、ECU1は、ステップS71へ処理を戻し、上述の処理を繰り返し行う。スリープ準備カウンタの値がMに達した場合(S76:YES)、ECU1は、スリープ準備カウンタの値に0を設定する(ステップS77)。次いでECU1は、ビットサンプリング手段106による通常のサンプリングを禁止し(ステップS78)、即ちビットサンプリング手段106によるサンプリングの周波数を低減するなどの省電力化設定をおこない、バススリープ状態へ遷移し(ステップS79)、スリープ準備状態の処理を終了する。
バスオフ状態は、他の全ての状態においてTEC>255のバスオフ条件が成立した場合に遷移する状態であり、バスオフ条件がクリアされるまで待機する。バスオフ条件がクリアされた場合、ECU1は、初期状態へ遷移する。
図25は、バスオフ状態におけるECU1の処理手順を示すフローチャートである。TEC>255のバスオフ条件が成立することによって、他の状態からバスオフ状態へ遷移したECU1は、バスオフ条件がクリアされたか(バスオフ条件が不成立の状態となったか)否かを判定し(ステップS81)、バスオフ条件がクリアされていない場合には(S81:NO)、バスオフ条件がクリアされるまで待機する。バスオフ条件がクリアされた場合(S81:YES)、ECU1は、初期状態へ遷移し(ステップS82)、バスオフ状態の処理を終了する。
バススリープ状態は、通信システム内で他のECU1とのスリープに関する合意が成立し、サンプリングの周波数を低減するなどの低消費電力状態でECU1がバス5の監視を行う状態である。バススリープ状態において、ECU1は、メッセージの送信は行わず、バス5上のドミナント(ウェイクアップ要求)を検出した場合、又は、アプリケーション101からスリープ要求のキャンセルが与えられた場合に、サンプリングの周波数を通常のものへ戻すなどの低消費電力状態からの復帰処理を行い、初期状態へ遷移する。
図26は、バススリープ状態におけるECU1の処理手順を示すフローチャートである。バススリープ状態へ遷移したECU1は、アプリケーション101からのウェイクアップ要求が与えられたか否かを判定し(ステップS91)、ウェイクアップ要求が与えられていない場合には(S91:NO)、バス5上にドミナントの信号が検出されたか否かを更に判定する(ステップS92)。ドミナントの信号が検出されない場合(S92:NO)、ECU1は、ステップS91へ処理を戻し、ウェイクアップ要求が与えられるか又はドミナントの信号が検出されるまで判定処理を繰り返す。
アプリケーション101からウェイクアップ要求が与えられた場合(S91:YES)、又は、バス5上にドミナントの信号が検出された場合(S92:YES)、ECU1は、初期状態へ遷移して(ステップS93)、バススリープ状態の処理を終了する。
<スタートアップシーケンス>
次に、本発明に係る通信システムの各ECU1が行うスタートアップシーケンスについて、いくつかの例を示して説明する。本発明の通信システムの各ECU1は、起動して初期状態から同期準備状態へ遷移した後で、既にメッセージの送信を開始した他のECU1が存在するか否かを判断するために、3サイクル期間に亘ってメッセージ受信のみを行う。この期間中に他のECU1から正常なメッセージを受信した場合、ECU1は受信したメッセージに含まれるスロット番号に同期し、同期状態へ遷移して通常のメッセージ送受信を行う。この期間中に異常なメッセージを受信した場合、ECU1は、異常なメッセージを受信したスロットをサイクルにおける1番目のスロット(スロット1)とし、同期待ち状態へ遷移し、タイマとして用いるカウンタXに値を設定して、以降のサイクルでのメッセージ再送信を待つ。この期間中に他のECU1からのメッセージを受信しなかった場合、ECU1は、ACKフレームを送信してカウンタXに値を設定すると共に、自らがメッセージ送信を行ったスロットをスロット1として同期待ち状態へ遷移し、他のECU1からの応答を待つ。
図27〜図29は、スタートアップシーケンスの処理例を示すタイミングチャートである。なお、図示の例は、1サイクルが4スロットであり、スロット1〜4がECU1a〜1dにそれぞれ1つずつ割り当てられた通信システムにおけるスタートアップシーケンスである。また各図においては、送信メッセージ(Msgの文字列が記載された長方形)、動作状態(破線の長円形)、スロットカウンタの値(SC=)及びカウンタXの値(X=)をECU1a〜1d毎に図示してある。
図27に示す例は、スタートアップシーケンスが正常に行われた例である。スロット2が割り当てられたECU1bは、同期待ち状態において、カウンタX=0のタイミングでメッセージAを送信する。このメッセージAは他のECU1a、1c及び1dにて正常に受信され、ECU1a、1c及び1dのスロットカウンタはメッセージAに含まれるスロット番号(スロット2)に同期して更新されると共に、ECU1a、1c及び1dは同期状態へ遷移する。
次のスロット(スロット3)にてECU1cがメッセージBを送信し、このメッセージBを正常に受信したECU1bは、メッセージBに含まれるスロット番号(スロット3)に同期してスロットカウンタを更新し、同期待ち状態から同期状態へ遷移する。これにより全てのECU1a〜1dは、スロットカウンタの値が同期した状態で、以降のメッセージC〜Kの送信を巡回的に行うことができる。
図28に示す例は、スタートアップシーケンスにおいてECU1a及び1bが同時的にメッセージを送信し、2つのメッセージがバス5上で衝突した場合の例である。同期待ち状態の2つのECU1a及び1bにてカウンタXの値が共に0となってメッセージA及びBが同時的に送信された場合、メッセージを送信したECU1a及び1bは、送信メッセージのチェックを行わないため、メッセージA及びBが衝突したことを知ることはなく、それぞれカウンタXの値を(2N+i−2)に設定する(即ち、ECU1aはカウンタXの値を7に設定し、ECU1bはカウンタXの値を8に設定する)。またメッセージの送信を行ったECU1a及び1bは、メッセージを送信のタイミングをスロット1とみなしてスロットカウンタを設定するため、次のスロットは共にスロット2となる。
また、衝突したメッセージA及びBを受信した同期準備状態のECU1c及び1dでは、受信したメッセージが異常なメッセージであると判断し、メッセージを受信したサイクルをサイクル1とみなしてスロットカウンタの値を設定すると共に、それぞれカウンタXの値を(2N+i−2)に設定して(即ち、ECU1cはカウンタXの値を9に設定し、ECU1dはカウンタXの値を10に設定して)、同期待ち状態へ遷移する。
このように、4つのECU1a〜1dが、割り当てられたスロット番号に応じて異なる値をカウンタXに設定することによって、その後に最も早くカウンタXの値が0となったECU1aのみがメッセージCの送信を行うことができる。メッセージCは他のECU1b〜1dに正常に受信され、ECU1b〜1dは、それぞれが有するスロットカウンタの値を、メッセージCに含まれるスロット番号(スロット1)に同期させ、同期状態へ遷移する。その後、次のスロット2にてECU1bがメッセージDを送信し、他のECU1a、1c及び1dにてメッセージDが正常に受信され、同期待ち状態のECU1aはメッセージDに含まれるスロット番号(スロット2)にスロットカウンタを同期させて、同期状態へ遷移する。
図29に示す例は、スタートアップシーケンスにおいてECU1a及び1bが同時的にメッセージを送信し、2つのメッセージがバス5上で衝突した場合の別の例である。上述の図28に示す例と同様に、同時的にメッセージを送信したECU1a及び1bは、それぞれカウンタXの値を(2N+i−2)に設定し(即ち、ECU1aはカウンタXの値を7に設定し、ECU1bはカウンタXの値を8に設定し)、メッセージを送信のタイミングをスロット1とみなしてスロットカウンタを設定する。
また、衝突したメッセージA及びBを同期待ち状態のECU1c及び1dが受信した場合、ECU1c及び1dは受信メッセージが異常なメッセージであると判断し、メッセージを受信したサイクルをサイクル1とみなしてスロットカウンタの値を設定すると共に、それぞれカウンタXの値を(N+i−2)に設定する(即ち、ECU1cはカウンタXの値を5に設定し、ECU1dはカウンタXの値を6に設定する)。
このように、異常なメッセージを受信したECU1c及び1dでは、同期準備状態であるか又は同期待ち状態であるかに応じてカウンタXが(2N+i−2)又は(N+i−2)に設定される。即ち、同期待ち状態で異常なメッセージを受信した場合には、同期準備状態で異常なメッセージを受信した場合より、カウンタXが小さな値に設定される。このため、その後にはECU1cのカウンタXの値が先に0となり、ECU1cがメッセージCを送信する。メッセージCは他のECU1a、1b及び1dに正常に受信され、ECU1a、1b及び1dは、それぞれが有するスロットカウンタの値を、メッセージCに含まれるスロット番号(スロット3)に同期させ、同期状態へ遷移する。その後、次のスロット2にてECU1dがメッセージDを送信し、他のECU1a〜1cにてメッセージDが正常に受信され、同期待ち状態のECU1cはメッセージDに含まれるスロット番号(スロット4)にスロットカウンタを同期させて、同期状態へ遷移する。
以上のように、スタートアップシーケンスにてメッセージの衝突が生じた場合であっても、通信システム中の各ECU1a〜1dにてカウンタXがそれぞれ異なる値に設定され、最も小さい値が設定されたECU1a〜1dから次のメッセージ送信を開始することによって、全てのECU1a〜1dが同期して通信を開始することができる。
<再同期シーケンス>
次に、本発明に係る通信システムの各ECU1が行う再同期シーケンスについて、いくつかの例を示して説明する。再同期シーケンスは、通信システムの各ECU1がスタートアップシーケンスを終えて同期した通信を開始した後、何らかの通信不具合などによってECU1間の同期がとれない状態となった場合に、各ECU1の判断によってスタートアップシーケンスを再度行うものである。各ECU1は、自らがメッセージ送信を行ったスロットから2サイクル後の同スロットまでの間に、他のECU1から正常に受信するメッセージがなかった場合、同期待ち状態へ遷移して再同期を行う。
図30〜図31は、再同期シーケンスの処理例を示すタイミングチャートである。なお、図示の例は、図27〜図29と同様に、1サイクルが4スロットであり、スロット1〜4がECU1a〜1dにそれぞれ1つずつ割り当てられた通信システムにおける再同期シーケンスである。また各図においては、送信メッセージ(Msgの文字列が記載された長方形)、動作状態(破線の長円形)、スロットカウンタの値(SC=)及びカウンタXの値(X=)をECU1a〜1d毎に図示してある。ただし、ECU1a〜1dが同期状態の場合のカウンタXの値は図示を省略する。
図30に示す例は、1つのECU1bにて他のECU1a、1c及び1dとの同期ズレが生じ、ECU1a及びECU1bが同時的にメッセージA及びBを送信した場合である。ECU1a、1c及び1dのスロットカウンタがスロット1のタイミングにて、ECU1bのスロットカウンタがスロット2となり、ECU1a及び1bが同時的にメッセージA及びBを送信した場合、他のECU1c及び1dでは異常なメッセージが受信される。次のスロットにおいて、ECU1a、1c及び1dのスロットカウンタはスロット2であるが、ECU1bのスロットカウンタはスロット2であるため、ECU1bのメッセージ送信は行われない。
その後、ECU1a、1c及び1dのスロットカウンタがスロット3のタイミングにて、ECU1cがメッセージCを送信する。これにより、メッセージCを正常に受信したECU1bは、メッセージCに含まれるスロット番号にスロットカウンタを同期させるため、全てのECU1a〜1dが同期した状態へ復帰することができる。
図31に示す例は、全てのECU1a〜1dの同期にズレが生じ、全てのECU1a〜1dが同時的にメッセージA〜Dを送信した場合である。全てのECU1a〜1dが同時的にメッセージA〜Dを送信した場合、次のサイクルに至るまでの間はメッセージ送信が行われることはなく、1サイクル後に全てのECU1a〜1dが同時的にメッセージE〜Hを送信する。更に1サイクル後には、同様にして全てのECU1a〜1dが同時的にメッセージI〜Lを送信する。
各ECU1a〜1dは、このように2サイクル期間に亘って他のECU1a〜1dからのメッセージを受信しない場合、カウンタXの値を(2N+i−2)にそれぞれ設定して、同期待ち状態へ遷移する。このとき各ECU1a〜1dのカウンタXは、割り当てられたスロットに応じてそれぞれ異なる値に設定され、カウンタXに最も小さい値が設定されたECU1aからメッセージ送信を行うことによって、全てのECU1a〜1dのスロットカウンタを同期させることができ、巡回的なメッセージ送信を再開することができる。
以上の構成の本発明に係る通信システムにおいては、複数のECU1が共通のバス5で接続されたネットワーク構成にて、各ECU1に予め一又は複数のスロット(送信権利)を割り当てておき、スロット毎に定められた順序で複数のECU1が巡回的にメッセージの送信を行う構成とすることにより、複数のECU1が同時的にメッセージ送信を行うことがないため、従来のCANプロトコルのようなアービトレーションを行う必要がなく、通信速度を高速化することが可能となる。
また各ECU1は、一のスロットに係るメッセージ送信を行う場合に、他のECU1へ送信すべきデータと共に、他のスロットの係るメッセージ受信の成否をそれぞれ示す情報を含めたメッセージを作成して送信する構成とすることにより、自らに割り当てられたスロットを有効に活用して他のECU1へメッセージ受信の成否を知らせることができ、且つ、自らが有するデータを他のECU1へ与えることができる。
一のECU1が送信したメッセージは、バス5に接続された他の全てのECU1にて受信され、メッセージを受信したECU1は、このメッセージのデータフィールドから必要なデータを取得することができると共に、メッセージのACKフィールドから以前に自らが送信したメッセージが正しく受信されたか否かを判断することができる。よって各ECU1は、一のスロットに係る前回のメッセージ送信から次のメッセージ送信までの1サイクルの間に受信したメッセージに含まれるACKフィールドの情報を調べ、前回のメッセージが他のECU1にて正しく受信されていなかった場合には、次のスロットにてメッセージの再送信を行うことができる。
これにより、メッセージ送信の衝突を生じることなく複数のECU1が効率よくメッセージ送信を巡回的に行うことができ、何らかの不具合によってメッセージが正しく受信されなかった場合であっても、確実にメッセージの再送信を行うことができる。
また、ECU1が作成して送信するメッセージには、1サイクル分のスロットに係るメッセージ受信の成否情報をACKフィールドに含む構成とすることにより、各通信装置は、1サイクルに亘って受信したメッセージのACKフィールドをそれぞれ調べることによって、バス5を共有する他の全ての通信装置にて自らの送信メッセージが正しく受信されたか否かを知ることができる。
また、一のスロットについて全くメッセージ送信がなされない場合、通信システムの各ECU1は、このスロットに係るメッセージ受信処理を省略して、次のスロットに係る処理を行う構成とすることにより、このスロットが割り当てられたECU1が何らかの理由でメッセージ送信を停止している場合に、サイクル中のメッセージ送受信が行われない時間を可能な限り短くすることができ、通信速度の高速化に寄与することができる。
また、各ECU1が作成して送信するメッセージには、いずれのスロットにて送信されたメッセージであるかを識別するためにスロット番号の情報を含め、各ECU1は受信したメッセージのスロット番号により通信処理の同期を行う構成とすることにより、通信システム中の複数のECU1がスロットを同期して確実にメッセージの送受信を行うことができる。
また、各ECU1がTEC及びRECのエラーカウンタを有してメッセージ送受信に係るエラーの発生数をカウントし、エラー発生数が所定数を超えた場合、各ECU1はメッセージ送信を2サイクルに1回に低減する構成とすることにより、故障などが生じた可能性が高いECU1のメッセージ送信が他のECU1の処理に悪影響を与えることを防止でき、通信システムの信頼性を向上できる。
また、起動後などに行うスタートアップシーケンスでは、各ECU1は、駆動直後の3サイクルの間は他のECU1からのメッセージ受信に徹し、3サイクルの間にメッセージを受信した場合には、受信メッセージのスロットに同期して処理を開始し、3サイクルの間にメッセージを受信しない場合には、自らがメッセージ(ACKフレーム)の送信を行う構成とすることにより、通信システムの複数のECU1が起動後に確実に同期して通信処理を開始することができる。
またスタートアップシーケンスにおいて、各ECU1は、メッセージ送信後及び異常なメッセージの受信後に、自らに割り当てられたスロット番号に応じてカウンタXの値を設定し、カウンタXをデクリメントして0に達した場合にメッセージ送信を行う構成とすることにより、通信システムの複数のECU1がそれぞれ異なる値をカウンタXに設定することができ、最も小さい値が設定されたECU1が次のメッセージ送信を単独で行うことができるため、このメッセージを他のECU1が受信して同期を行うことができる。
またスタートアップシーケンスを完了して同期が確立された後の不具合(同期ズレ)に対して、各ECU1は、2サイクルの間に他のECU1からのメッセージを全く受信しなかった場合、自らに割り当てられたスロット番号に応じてカウンタXの値を設定し、スタートアップシーケンスと同様の処理により再同期を行う構成とすることにより、通信の不具合などによって複数の通信装置に同期ズレが生じ、複数の通信装置が同時的にメッセージ送信を行った場合であっても、複数の通信装置の再同期を確実に行うことができる。
また通信システムをスリープモードへ移行する場合、各ECU1がスリープビットをレセシブに設定したACKフレームをスリープ要求として送受信し、1サイクルの間に全てのスロットについてスリープ要求を受信した場合に各ECU1がそれぞれメッセージ送信を停止してスリープモード(バススリープ状態)へ移行する構成とすることにより、バス5に接続された全てのECU1の間でスリープモードへ移行することに対する合意を取った後に各ECU1がスリープモードへ移行することができる。
このように、本発明の通信システムは、従来のCANプロトコルが有する機能と略同じ機能を有しており、これらを各ECU1のプロトコル制御層にて実現しているため、従来のCANプロトコルに対応して作られたアプリケーションをそのまま利用する(又は、アプリケーションに対して少ない修正を行って利用する)ことが可能である。加えて、本発明の通信システムは、従来のCANプロトコルのようなアービトレーションを行う必要がなく、メッセージ送信時にビット毎の信号レベル検出を行う必要がないため、従来のCANプロトコルにおける高速化に対する阻害要因がなくなり、従来のCANプロトコルよりも高速なメッセージ送受信を実現することができる。
なお本実施の形態においては、各ECU1に対するスロットの割り当てを静的に行う構成としたが、これに限るものではなく、通信システムの起動後などの何らかのタイミングにて各ECU1に対するスロットの割り当てを動的に行う構成としてもよい。また、1つのECU1に対して複数のスロットを割り当て可能としたが、これに限るものではなく、1つのECU1に対して1つのスロットのみを割り当てる構成としてもよい。また、本発明の通信システムは、車輌に搭載されるものに限らず、その他の種々のシステムに適用することができる。
(変形例)
また、ECU1が送受信するメッセージの構成は、図4に示したものに限らず、例えば以下の変形例に示すような他の構成であってもよい。図32は、変形例に係る通信システムのメッセージ構成を示す模式図である。なお本図においては、データフレームの構成のみを図示し、ACKフレームについては同様の構成(データフレームからデータフィールドを除いた構成)であるため、図示を省略する。
変形例のデータフレームは、図4に示したデータフレームに対して、スロット番号とデータフィールドとの間にスロット番号用CRC(図32において単にCRCと記載する)を追加した構成である。図示は省略するがACKフレームは、スロット番号とCRCフィールドとの間にスロット番号用CRCを追加する。スロット番号用CRCは、受信したメッセージに含まれるスロット番号の誤り検出を行うためのものであり、スロット番号の値について予め定められた生成多項式を用いた演算を行うことにより取得する。メッセージを受信したECU1は、受信したメッセージに含まれるスロット番号から生成多項式により算出される値と、受信したメッセージのスロット番号用CRCの値とを比較することによって、誤り検出を行うことができ、2つの値が一致しない場合は誤りが生じていると判断する。
このように、ECU1が送受信するメッセージ中にスロット番号の誤りを検出するためのスロット番号用CRCを設けることによって、CRCフィールドに基づく誤り検出にて誤りが検出された場合に、ECU1は誤りがスロット番号に含まれるか否かを更に調べることができる。これにより各ECU1は、誤りが含まれるメッセージを受信した場合であっても、スロット番号に誤りが含まれていなければ、受信したメッセージのスロット番号による通信の同期処理を行うことができるため、複数のECU1による巡回的なメッセージ送受信をより円滑に行うことが可能となる。
なお、上述の変形例においては、スロット番号の誤りを検出するスロット番号用CRCをメッセージ中に設ける構成としたが、これに限るものではなく、スロット番号の誤りを訂正することができるデータをメッセージ中に設ける構成としてもよい。
1、1a〜1d ECU(通信装置)
5 バス(通信線)
11 制御部
12 入力部
13 出力部
14 記憶部
15 電源回路
16 通信部
101 アプリケーション
102 プロトコル制御手段(メッセージ送信手段、メッセージ再送信手段、通信開始手段、通信再開手段、通信停止要求送信手段、通信停止要求受信手段、通信停止制御手段)
103 エラー制御手段
104 メッセージ生成手段
105 スロット管理手段
106 ビットサンプリング手段
107 バスドライバ

Claims (11)

  1. 3つ以上の通信装置が共通の通信線で接続され、一の通信装置が送信したメッセージを他の複数の通信装置が受信する通信システムにおいて、
    各通信装置に対して一又は複数の送信権利が予め割り当てられ、該送信権利毎に定められた順序で前記3つ以上の通信装置が巡回的にメッセージの送信を行うようにしてあり、
    前記通信装置は、
    各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の通信装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、
    他の通信装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と
    起動後の所定サイクルに亘ってメッセージの送信を行わず、前記所定サイクルの間に他の通信装置からメッセージを受信した場合には該メッセージに同期して以降のメッセージ送信を行い、前記所定サイクルの間に他の通信装置からメッセージを受信しない場合にはメッセージ送信を行って、他の通信装置とのメッセージ送受信を開始する通信開始手段と
    を有すること
    を特徴とする通信システム。
  2. 前記通信装置は、メッセージ送信までの待機時間を計時する計時手段を有し、
    前記通信装置の通信開始手段は、メッセージ送信を行った場合又は前記所定サイクルの間に他の通信装置から異常なメッセージを受信した場合に、割り当てられた送信権利に応じた待機時間を前記計時手段にて計時した後、メッセージの送信を行うようにしてあり、
    複数の前記通信装置が、前記計時手段にてそれぞれ異なる待機時間を計時するようにしてあること
    を特徴とする請求項に記載の通信システム。
  3. 3つ以上の通信装置が共通の通信線で接続され、一の通信装置が送信したメッセージを他の複数の通信装置が受信する通信システムにおいて、
    各通信装置に対して一又は複数の送信権利が予め割り当てられ、該送信権利毎に定められた順序で前記3つ以上の通信装置が巡回的にメッセージの送信を行うようにしてあり、
    前記通信装置は、
    各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の通信装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、
    他の通信装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、
    メッセージ送信までの待機時間を計時する計時手段と、
    所定サイクルの間に他の通信装置からメッセージを受信しない場合に、割り当てられた送信権利に応じた待機時間を前記計時手段にて計時した後、メッセージ送信を再開する通信再開手段と
    を有し、
    複数の前記通信装置が、前記計時手段にてそれぞれ異なる待機時間を計時するようにしてあること
    を特徴とする通信システム。
  4. 3つ以上の通信装置が共通の通信線で接続され、一の通信装置が送信したメッセージを他の複数の通信装置が受信する通信システムにおいて、
    各通信装置に対して一又は複数の送信権利が予め割り当てられ、該送信権利毎に定められた順序で前記3つ以上の通信装置が巡回的にメッセージの送信を行うようにしてあり、
    前記通信装置は、
    各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の通信装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、
    他の通信装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、
    メッセージ送信の停止を要求するメッセージを送信する通信停止要求送信手段と、
    他の通信装置から通信処理の停止を要求するメッセージを受信する通信停止要求受信手段と、
    所定サイクルに亘って、複数の他の通信装置から前記通信停止要求受信手段が通信処理の停止を要求するメッセージを受信した場合に、メッセージ送信を停止する通信停止制御手段と
    を有すること
    を特徴とする通信システム。
  5. 前記通信装置のメッセージ送信手段は、自らの一の送信権利に係る前回のメッセージ送信から今回のメッセージ送信までの1サイクル間に送信される他の送信権利に係るメッセージの受信の成否を、前記受信成否情報として送信するメッセージに含ませるようにしてあること
    を特徴とする請求項1乃至請求項4のいずれか1つに記載の通信システム。
  6. 各通信装置は、一の通信権利に係るメッセージの送信が所定時間に亘って行われない場合、次の通信権利に係るメッセージの送信又は受信を行うようにしてあること
    を特徴とする請求項1乃至請求項5のいずれか1つに記載の通信システム。
  7. 前記通信装置のメッセージ送信手段は、送信権利を識別するための識別情報を含むメッセージを生成して送信するようにしてあり、
    各通信装置は、受信したメッセージの前記識別情報に基づいて、メッセージ送受信の同期を行うようにしてあること
    を特徴とする請求項1乃至請求項のいずれか1つに記載の通信システム。
  8. 前記通信装置のメッセージ送信手段は、前記識別情報の誤りを検出又は訂正するための情報を含むメッセージを生成して送信するようにしてあること
    を特徴とする請求項に記載の通信システム。
  9. 前記通信装置は、メッセージの送受信に係るエラーの発生数を計数するエラーカウンタを有し、
    前記通信装置のメッセージ送信手段は、前記エラーカウンタが計数したエラー発生数が所定値を超えた場合に、メッセージ送信の頻度を低減するようにしてあること
    を特徴とする請求項1乃至請求項のいずれか1つに記載の通信システム。
  10. 共通の通信線を介して2つ以上の他の装置との間でメッセージの送受信を行う通信装置において、
    一又は複数の送信権利が予め割り当てられており、
    他の装置に割り当てられた送信権利を含む各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、
    他の装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と
    起動後の所定サイクルに亘ってメッセージの送信を行わず、前記所定サイクルの間に他の装置からメッセージを受信した場合には該メッセージに同期して以降のメッセージ送信を行い、前記所定サイクルの間に他の装置からメッセージを受信しない場合にはメッセージ送信を行って、他の装置とのメッセージ送受信を開始する通信開始手段と
    を備え、
    前記メッセージ送信手段及び前記メッセージ再送信手段は、割り当てられた送信権利に定められた順序で、前記他の装置との間で巡回的にメッセージの送信を行うようにしてあること
    を特徴とする通信装置。
  11. 共通の通信線を介して2つ以上の他の装置との間でメッセージの送受信を行う通信装置において、
    一又は複数の送信権利が予め割り当てられており、
    他の装置に割り当てられた送信権利を含む各送信権利に係るメッセージ受信の成否をそれぞれ示す複数の受信成否情報、及び、他の装置へ送信すべきデータを含むメッセージを生成して送信するメッセージ送信手段と、
    他の装置から受信したメッセージに含まれる受信成否情報に応じてメッセージの再送信を行うメッセージ再送信手段と、
    メッセージ送信の停止を要求するメッセージを送信する通信停止要求送信手段と、
    他の装置から通信処理の停止を要求するメッセージを受信する通信停止要求受信手段と、
    所定サイクルに亘って、複数の他の装置から前記通信停止要求受信手段が通信処理の停止を要求するメッセージを受信した場合に、メッセージ送信を停止する通信停止制御手段と
    を備え、
    前記メッセージ送信手段及び前記メッセージ再送信手段は、割り当てられた送信権利に定められた順序で、前記他の装置との間で巡回的にメッセージの送信を行うようにしてあること
    を特徴とする通信装置。
JP2010178681A 2010-08-09 2010-08-09 通信システム及び通信装置 Active JP5717240B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2010178681A JP5717240B2 (ja) 2010-08-09 2010-08-09 通信システム及び通信装置
DE112011102688T DE112011102688T5 (de) 2010-08-09 2011-08-09 Kommunikationssystem und Kommunikationsvorrichtung
PCT/JP2011/068168 WO2012020761A1 (ja) 2010-08-09 2011-08-09 通信システム及び通信装置
US13/813,749 US9209942B2 (en) 2010-08-09 2011-08-09 Communication system and communication apparatus
CN201180039441.7A CN103155492B (zh) 2010-08-09 2011-08-09 通信系统及通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010178681A JP5717240B2 (ja) 2010-08-09 2010-08-09 通信システム及び通信装置

Publications (2)

Publication Number Publication Date
JP2012039446A JP2012039446A (ja) 2012-02-23
JP5717240B2 true JP5717240B2 (ja) 2015-05-13

Family

ID=45567723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010178681A Active JP5717240B2 (ja) 2010-08-09 2010-08-09 通信システム及び通信装置

Country Status (5)

Country Link
US (1) US9209942B2 (ja)
JP (1) JP5717240B2 (ja)
CN (1) CN103155492B (ja)
DE (1) DE112011102688T5 (ja)
WO (1) WO2012020761A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5770925B2 (ja) 2011-04-06 2015-08-26 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 直列バスシステム内でデータ伝送容量を上げるための方法及び装置
US9880956B2 (en) 2011-04-06 2018-01-30 Robert Bosch Gmbh Method and apparatus for adapting the data transmission security in a serial bus system
WO2012146631A1 (de) 2011-04-26 2012-11-01 Robert Bosch Gmbh Verfahren und vorrichtung zur an speichergrössen angepassten seriellen datenübertragung
KR102007547B1 (ko) 2011-06-29 2019-08-05 로베르트 보쉬 게엠베하 유연한 메시지 크기 및 가변 비트 길이로 직렬 데이터 전송을 하기 위한 방법 및 장치
JP5626266B2 (ja) * 2012-06-05 2014-11-19 株式会社デンソー 通信システム
DE102012017386B4 (de) * 2012-09-01 2020-10-15 Volkswagen Aktiengesellschaft Verfahren zum Überwachen einer mit einem Kommunikationskanal verbundenen Vorrichtung
KR101438978B1 (ko) * 2012-12-31 2014-09-11 현대자동차주식회사 리프로그래밍 방법 및 시스템
US9419737B2 (en) * 2013-03-15 2016-08-16 Concio Holdings LLC High speed embedded protocol for distributed control systems
JP6039522B2 (ja) * 2013-09-06 2016-12-07 株式会社東芝 外部入出力装置および調停設定結果格納方法
DE102013015370A1 (de) * 2013-09-13 2015-03-19 Wabco Gmbh Verfahren zur Bereitstellung und Übertragung von Daten, insbesondere in Verbindung mit einem Fahrzeug
CA2888742C (en) 2013-09-23 2015-09-15 Jason G. Tatge Farming data collection and exchange system
CN104635549A (zh) * 2013-11-07 2015-05-20 北汽福田汽车股份有限公司 Can总线错误处理方法和can控制器
CN104717113B (zh) * 2013-12-14 2018-09-21 中国航空工业集团公司第六三一研究所 一种同步多主对等总线通信系统
JP2015139093A (ja) * 2014-01-22 2015-07-30 株式会社デンソー 中継装置
JP5958975B2 (ja) 2014-03-10 2016-08-02 トヨタ自動車株式会社 通信装置、通信方法及び通信システム
EP3133774B1 (en) * 2014-04-17 2020-11-25 Panasonic Intellectual Property Corporation of America Vehicle-mounted network system, abnormality detection electronic control unit and abnormality detection method
JP6336328B2 (ja) * 2014-05-02 2018-06-06 キヤノン株式会社 通信装置とその制御方法、及びプログラム
EP3169021B1 (en) * 2014-07-10 2021-06-23 Panasonic Intellectual Property Corporation of America Vehicle-mounted network system, electronic control unit, reception method, and transmission method
JP6323296B2 (ja) * 2014-10-23 2018-05-16 株式会社デンソー 制御装置
JP6282216B2 (ja) * 2014-11-20 2018-02-21 国立大学法人名古屋大学 通信システム及び通信装置
US9843597B2 (en) * 2015-01-05 2017-12-12 International Business Machines Corporation Controller area network bus monitor
JP6497142B2 (ja) * 2015-03-13 2019-04-10 富士通株式会社 通信監視装置、通信監視プログラム、および通信監視方法
US9768977B2 (en) * 2015-07-01 2017-09-19 QUALCOMM Technologies International, Ltd Low-power can management
JP6836340B2 (ja) * 2015-09-29 2021-02-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知電子制御ユニット、車載ネットワークシステム及び通信方法
JP6732799B2 (ja) * 2015-12-25 2020-07-29 パナソニックセミコンダクターソリューションズ株式会社 不正メッセージ検知装置、不正メッセージ検知装置を備える電子制御装置、不正メッセージ検知方法、及び不正メッセージ検知プログラム
WO2017168750A1 (ja) * 2016-04-01 2017-10-05 三菱電機株式会社 制御装置、および、制御装置の復帰処理方法
JP6845628B2 (ja) * 2016-07-07 2021-03-17 任天堂株式会社 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム
CN106789694A (zh) * 2016-11-12 2017-05-31 驭联智能科技发展(上海)有限公司 新型车载设备通信控制方法及系统
KR102592204B1 (ko) * 2016-12-29 2023-10-20 현대자동차주식회사 차량 및 그의 통신 제어 방법
CN111953450A (zh) * 2017-02-16 2020-11-17 华为技术有限公司 一种灵活以太网中传输数据的方法及设备
EP3625914B1 (en) * 2017-05-16 2021-04-28 ABB Power Grids Switzerland AG Communications network for communication between a control unit and a power electronics element
JP6543307B2 (ja) * 2017-08-08 2019-07-10 東芝エレベータ株式会社 エレベータシステム
EP3499806B1 (en) * 2017-12-13 2020-08-05 Nxp B.V. Node and method for conducting measurements and signal analyses on a multi-master access bus
JP7010087B2 (ja) 2018-03-16 2022-01-26 トヨタ自動車株式会社 プログラム更新管理装置、プログラム更新管理方法、およびプログラム
KR101988171B1 (ko) * 2018-04-27 2019-06-11 벨로넥트 인코퍼레이션 접속된 노드들에 향상된 속도의 버스를 제공하기 위한 기기
JP7018827B2 (ja) * 2018-06-13 2022-02-14 本田技研工業株式会社 通信システム及び車両
US10439840B1 (en) 2018-07-27 2019-10-08 Nxp B.V. Method and device for communicating data frames on a multi-master bus
FR3089729B1 (fr) * 2018-12-05 2021-08-06 Renault Sas Système de sélection de trames, nœud de communication et procédé de mise en oeuvre associés
DE102019205487A1 (de) 2019-04-16 2020-10-22 Robert Bosch Gmbh Teilnehmerstation für ein serielles Bussystem und Verfahren zur Kommunikation in einem seriellen Bussystem
US11843667B2 (en) 2020-08-17 2023-12-12 Toyota Motor North America, Inc. Real time boot for secure distributed systems
CN115733849A (zh) * 2021-08-27 2023-03-03 北京车和家信息技术有限公司 电子控制单元的刷写方法、装置、系统、设备和存储介质
WO2024009633A1 (ja) * 2022-07-05 2024-01-11 パナソニックIpマネジメント株式会社 コントローラ、制御方法及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0677963A (ja) * 1992-07-07 1994-03-18 Hitachi Ltd 通信方式および端末装置
JP2004363761A (ja) * 2003-06-03 2004-12-24 Nissan Motor Co Ltd データ通信方法
JP4341466B2 (ja) * 2004-05-21 2009-10-07 株式会社デンソー 同期通信システム
JP4852246B2 (ja) * 2005-01-04 2012-01-11 パナソニック株式会社 通信装置、集積回路、及び通信方法
JP2007081628A (ja) * 2005-09-13 2007-03-29 Nec Electronics Corp ネットワークの設計方法、ネットワーク設計プログラム、及びネットワーク設計装置
DE102005061403A1 (de) * 2005-12-22 2007-06-28 Robert Bosch Gmbh Überwachungseinheit zur Überwachung und Steuerung des Zugriffs eines Teilnehmers auf einen Datenbus und Teilnehmer mit einer solchen Überwachungseinheit
WO2008023638A1 (fr) 2006-08-21 2008-02-28 Panasonic Corporation Système de communication sans fil, procédé de commande de communication et nœud de communication
JP4781940B2 (ja) * 2006-08-21 2011-09-28 パナソニック株式会社 無線通信システム及び通信制御方法並びに通信ノード
JP4988474B2 (ja) 2007-08-02 2012-08-01 パナソニック株式会社 無線通信方法、無線通信システム及び無線通信装置
US20100118698A1 (en) * 2007-08-01 2010-05-13 Panasonic Corporation Radio communication method, radio communication system, radio communication device, and congestion control method
JP4988472B2 (ja) 2007-08-01 2012-08-01 パナソニック株式会社 無線通信方法、無線通信システム及び無線通信装置
JP4988475B2 (ja) * 2007-08-02 2012-08-01 パナソニック株式会社 輻輳制御方法、無線通信システム及び無線通信装置
JP5086725B2 (ja) 2007-08-01 2012-11-28 パナソニック株式会社 無線通信方法、無線通信システム及び無線通信装置
JP2010081152A (ja) * 2008-09-25 2010-04-08 Nec Electronics Corp 通信装置および通信システム並びに通信方法、canノード

Also Published As

Publication number Publication date
US9209942B2 (en) 2015-12-08
DE112011102688T5 (de) 2013-05-29
CN103155492A (zh) 2013-06-12
WO2012020761A1 (ja) 2012-02-16
US20130139018A1 (en) 2013-05-30
CN103155492B (zh) 2015-11-25
JP2012039446A (ja) 2012-02-23

Similar Documents

Publication Publication Date Title
JP5717240B2 (ja) 通信システム及び通信装置
JP4824662B2 (ja) 多数のバスのサイクルタイムを同期させる方法と装置及び対応するバスシステム
US8448035B2 (en) Communication system adapting for car, communication apparatus adapting for car, and communication method adapting for car
US6597683B1 (en) Medium access control protocol for centralized wireless network communication management
RU2596582C2 (ru) Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных
JP2013538025A (ja) 切り替え可能なデータレートによる直列データ伝送のための方法及び装置
JP2014528187A (ja) メッセージの大きさがフレキシブルな直列データ伝送におけるデータ伝送信頼性を改善するための方法及び装置
JP2008502182A (ja) 時間制御される通信システム内にグローバルなタイムベースを確立する方法および通信システム
JP5539593B2 (ja) 事象制御型バス通信においてグローバル時間情報を提供するための方法及び装置
JP2009521152A (ja) 加入者装置によるデータバスへのアクセスを監視または制御する監視ユニットおよび同監視ユニットを備えた加入者装置
JP2020099052A (ja) スレーブノード、スレーブノードとマスターノードとの間の通信を同期する方法、およびスレーブノードの制御構成要素
US20210392011A1 (en) User station for a serial bus system and method for communication in a serial bus system
JP2016005247A (ja) ネットワーク伝送システム、そのマスタノード、スレーブノード
JP2020108144A (ja) 分散された取得システムのマスターノード、マスターノードと1つ以上のスレーブノードとの間の通信を同期させる方法、および制御コンポーネント
US11706049B2 (en) Subscriber station for a serial bus system and method for communication in a serial bus system
JP4594124B2 (ja) 通信システム及び通信方法
JP2009244991A (ja) データ通信方法、データ通信システム、電子制御ユニット、及び回路基板
CN110071860B (zh) 机器人通信方法、机器人通信系统及机器人
WO2004100435A2 (en) Mac protocol for centralized wireless network communication management
JP4192627B2 (ja) パケット送受信方法、及び装置
JP2006319381A (ja) 緊急メッセージ送信方法
US20210250123A1 (en) User station for a serial communication network and method for correcting individual errors in a message of a serial communication network
JP5221292B2 (ja) サイクリック伝送システム、及びその伝送方法
JP5219120B2 (ja) 通信システム、通信装置及び通信方法
JPH06252895A (ja) データ伝送方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140717

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150313

R150 Certificate of patent or registration of utility model

Ref document number: 5717240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250