(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182276
(43)【公開日】2023-12-26
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
H04L 12/28 20060101AFI20231219BHJP
【FI】
H04L12/28 200D
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022095780
(22)【出願日】2022-06-14
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】鈴木 康弘
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA02
5K033BA06
5K033CA07
5K033CB18
(57)【要約】
【課題】大量のフレームの高速処理を妨げることなく、送信優先度が高いフレームを適切に優先して送信する。
【解決手段】電子制御装置1は、フレームを蓄積可能な送信FIFOを複数有する送信FIFO群7と、送信FIFO群に対応し、フレームを格納可能な送信部を複数有する送信部群8と、送信要求が発生したフレームに付与されている送信優先度を判定する送信優先度判定部9と、送信優先度判定部の判定結果に基づいてフレームを複数の送信FIFOに振り分けて蓄積するフレーム蓄積部10と、送信FIFOに蓄積されているフレームを、対応する送信部が空である場合に当該送信部に複製して格納するフレーム格納部11と、送信部に格納されているフレームを送信させるフレーム送信制御部12と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データを含むフレームに付与されているIDに基づいた優先順位にしたがって前記フレームを送信可能な電子制御装置であって、
前記フレームを蓄積可能な送信FIFOを複数有する送信FIFO群(7)と、
前記送信FIFO群に対応し、前記フレームを格納可能な送信部を複数有する送信部群(8)と、
送信要求が発生した前記フレームに付与されている送信優先度を判定する送信優先度判定部(9)と、
前記送信優先度判定部の判定結果に基づいて前記フレームを前記複数の送信FIFOに振り分けて蓄積するフレーム蓄積部(10)と、
前記送信FIFOに蓄積されている前記フレームを、対応する前記送信部が空である場合に当該送信部に複製して格納するフレーム格納部(11)と、
前記送信部に格納されているフレームを送信させるフレーム送信制御部(12)と、を備える電子制御装置。
【請求項2】
前記送信FIFOに蓄積されている前記フレームが、対応する前記送信部に前記フレーム格納部により複製されて格納された後に、その格納された前記フレームと同じ前記フレームを前記送信FIFOから消去するフレーム消去部(13)を備える請求項1に記載した電子制御装置。
【請求項3】
前記フレーム蓄積部は、前記送信FIFOに前記フレームの蓄積領域が存在しない場合には、送信要求が発生した前記フレームの前記送信FIFOへの蓄積を待機し、前記送信部に格納された前記フレームと同じ前記フレームが前記送信FIFOから前記フレーム消去部により消去され次第、前記送信FIFOへの蓄積を待機していた前記フレームを前記送信FIFOに蓄積する請求項2に記載した電子制御装置。
【請求項4】
前記送信FIFOに蓄積されている前記フレームが、対応する前記送信部に前記フレーム格納部により複製されて格納された後に、その格納された前記フレームと同じフレームに送信要求済みフラグを設定する送信要求済みフラグ設定部(22)を備える請求項1に記載した電子制御装置。
【請求項5】
前記フレーム蓄積部は、前記送信FIFOに前記フレームの蓄積領域が存在しない場合には、送信要求が発生した前記フレームを、前記送信要求済みフラグが設定されている前記フレームに上書きして前記送信FIFOに蓄積する請求項4に記載した電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置に関する。
【背景技術】
【0002】
車載用の電子制御装置(以下、ECU(Electronic Control Unit)と称する)の接続形態として、CAN(Controller Area Network)(登録商標)バスを介して他のECUとデータ通信可能に接続される構成が供されている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
CANの通信プロトコルに準拠するデータ通信では、データを含むフレームにIDが付与され、その付与されているIDに基づいた優先順位にしたがってフレームを送信する。即ち、IDの値が小さいフレームを、IDの値が大きいフレームよりも優先して送信する。この場合、送信優先度が高くなる順序でIDが昇順に付与されていれば、送信優先度が高くなる順序でフレームを送信することができ、送信優先度が高いフレームを優先して送信することができる。
【0005】
しかしながら、例えば量産後の要求変更により送信優先度とIDとの組み合わせが逆転する場合があり、送信優先度が高いフレームに大きい値のIDが付与され、送信優先度が低いフレームに小さい値のIDが付与されてしまう場合がある。そうなると、送信優先度が高いフレームを優先して送信することができなくなる。又、IDに基づいた優先順位にしたがってフレームを送信する手法では、フレームの送信要求が発生する都度、その送信要求が発生したフレームのIDを他のフレームのIDと比較して大小を判定する処理が必要となる。その結果、演算量が増加し、大量のフレームの高速処理を妨げる要因となる虞もある。
【0006】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、大量のフレームの高速処理を妨げることなく、送信優先度が高いフレームを適切に優先して送信することができる電子制御装置を提供することにある。
【課題を解決するための手段】
【0007】
請求項1に記載した発明によれば、データを含むフレームに付与されているIDに基づいた優先順位にしたがってフレームを送信可能である。送信FIFO群(7)は、フレームを蓄積可能な送信FIFOを複数有する。送信部群(8)は、送信FIFO群に対応し、フレームを格納可能な送信部を複数有する。送信優先度判定部(9)は、送信要求が発生したフレームに付与されている送信優先度を判定する。フレーム蓄積部(10)は、送信優先度判定部の判定結果に基づいてフレームを複数の送信FIFOに振り分けて蓄積する。フレーム格納部(11)は、送信FIFOに蓄積されているフレームを、対応する送信部が空である場合に当該送信部に複製して格納する。フレーム送信制御部(12)は、送信部に格納されているフレームを送信させる。
【0008】
送信FIFO及び送信部をそれぞれ複数用意し、送信要求が発生したフレームに付与されている送信優先度の判定結果に基づいてフレームを複数の送信FIFOに振り分けて蓄積し、その送信FIFOに蓄積したフレームを、対応する送信部が空である場合に当該送信部に複製して格納し、その格納したフレームを送信させるようにした。送信対象のフレームに送信優先度を付与することで、送信要求が発生したフレームを、そのフレームに付与されているIDに基づいた優先順位とは異なる優先順位にしたがって送信することができる。このとき、フレームに付与されている送信優先度を判定すれば良く、送信要求が発生したフレームのIDを他のフレームのIDと比較して大小を判定する処理が不要となる。これにより、大量のフレームの高速処理を妨げることなく、送信優先度が高いフレームを適切に優先して送信することができる。
【図面の簡単な説明】
【0009】
【発明を実施するための形態】
【0010】
以下、複数の実施形態について図面を参照して説明する。後続する実施形態において、先行する実施形態と共通する部分は説明を省略する。
【0011】
(第1実施形態)
第1実施形態について
図1から
図4を参照して説明する。
図1に示すように、ECU1は、例えば車載用のECUであり、駆動系の制御を行う装置、ADAS(Advanced Driving Assistant System)系の制御を行う装置、マルチメディア系の制御を行う装置等である。ECU1は、CANバス2を介してECU3,4とCANの通信プロトコルに準拠してデータ通信可能に接続されている。本実施形態では、ECU1とCANバス2を介して接続される2個のECU3,4を例示しているが、ECU1とCANバス2を介して接続されるECUの個数は2個に限らず、1以上の任意の個数であれば良い。
【0012】
ECU1は、制御部5と、入力インターフェース部6とを備える。制御部5は、非遷移的実体的格納媒体に格納されているコンピュータプログラムをCPUで実行することによるソフトウェア処理、専用の電子回路によるハードウェア処理による制御を実行し、ECU1の動作を制御する。
【0013】
入力インターフェース部6は、外部からの入力信号を入力する。制御部5は、例えばセンサ等からの入力信号が入力インターフェース部6に入力されると、その入力された入力信号を内部処理してECU1の動作を制御する。又、制御部5は、その入力された入力信号を外部へ送信する必要がある場合には、その内部処理された入力信号をフレームのデータ領域に格納し、その入力信号を格納したフレームをCANコントローラ8からCANバス2へ送信させる。例えばエンジンを制御するエンジンECUであれば、制御部5は、エンジン回転パルス、車速パルス及びシフト位置信号等の入力信号が入力インターフェース部6により入力されると、エンジン制御やオートマチックトランスミッション制御等を行うと共に、エンジン回転パルスに基づいて演算したエンジン回転数のデータを格納したフレームをCANコントローラ8からCANバス2へ送信させる。エンジン回転数のデータを格納したフレームがエンジンECUからCANバス2を介してメータECUへ送信されることで、エンジン回転数に関する情報がメータECUに表示される。尚、フレームに格納するデータは、外部から入力インターフェース部6に入力された入力信号であっても良いし、ECU1の内部で生成したデータであっても良い。
【0014】
制御部5は、ソフトウェア等により実現される内部の機能として、送信FIFO(First In First Out)群7と、CANコントローラ8(送信部群に相当する)と、送信優先度判定部9と、フレーム蓄積部10と、フレーム格納部11と、フレーム送信制御部12と、フレーム消去部13とを備える。
【0015】
送信FIFO群7は、第1送信FIFO7aと、第2送信FIFO7bと、第3送信FIFO7cとを備える。第1送信FIFO7a、第2送信FIFO7b及び第3送信FIFO7cは、それぞれ独立しており、それぞれ複数のフレームを蓄積可能である。第1送信FIFO7a、第2送信FIFO7b及び第3送信FIFO7cにそれぞれ蓄積可能なフレーム数は、同じであっても良いし異なっていても良い。第1送信FIFO7a、第2送信FIFO7b、第3送信FIFO7cの順序で優先順位が付与されている。
【0016】
CANコントローラ8は、ドライバ回路を含み、CANバス2との間のフレームの送受信をドライバ回路により制御する。CANバス2との間の送受信するフレームは、CANの通信プロトコルに準拠したデータフレームであり、標準フォーマット及び拡張フォーマットの何れであっても良い。尚、フレームは、メッセージと称する場合もある。
【0017】
CANコントローラ8は、第1送信部8aと、第2送信部8bと、第3送信部8cとを備える。第1送信部8a、第2送信部8b及び第3送信部8cは、それぞれ独立しており、それぞれ一つのフレームを格納可能である。第1送信FIFO7aと第1送信部8a、第2送信FIFO7bと第2送信部8b、第3送信FIFO7cと第3送信部8cは、それぞれ対応している。即ち、第1送信FIFO7a、第2送信FIFO7b、第3送信FIFO7cの順序で優先順位が付与されていることに伴い、第1送信部8a、第2送信部8b、第3送信部8cの順序で優先順位が付与されている。第1送信FIFO7aに蓄積されているフレームが第1送信部8aに複製されることで格納される。第2送信FIFO7bに蓄積されているフレームが第2送信部8bに複製されることで格納される。第3送信FIFO7cに蓄積されているフレームが第3送信部8cに複製されることで格納される。
【0018】
送信優先度判定部9は、フレームの送信要求が発生すると、その送信要求が発生したフレームに付与されている送信優先度を判定する。送信優先度は、例えばECU1の製造時等で設定され、重要度や緊急度が高いデータを含むフレームは送信優先度が小さい値で設定され、重要度や緊急度が低いデータを含むフレームは送信優先度が高い値で設定される。送信優先度は、送信FIFO群7内の送信FIFO7a~7cの個数分及びCANコントローラ8内の送信部8a~8cの個数分の段階で設定され、本実施形態では「1」、「2」、「3」の3段階で設定される。
【0019】
フレーム蓄積部10は、送信要求が発生したフレームに付与されている送信優先度が送信優先度判定部9により判定されると、その判定結果に基づいてフレームを送信FIFO7a~7cに振り分けて蓄積する。フレーム蓄積部10は、送信要求が発生したフレームに付与されている送信優先度が「1」の場合は、その送信要求が発生したフレームを第1送信FIFO7aに蓄積する。フレーム蓄積部10は、送信要求が発生したフレームに付与されている送信優先度が「2」の場合は、その送信要求が発生したフレームを第2送信FIFO7bに蓄積する。フレーム蓄積部10は、送信要求が発生したフレームに付与されている送信優先度が「3」の場合は、その送信要求が発生したフレームを第3送信FIFO7cに蓄積する。
【0020】
フレーム格納部11は、送信FIFO7a~7cに蓄積されているフレームのうち出力順位が最上位のフレームを、対応する送信部8a~8cが空である場合に、該当する送信部8a~8cに複製して格納する。
【0021】
フレーム送信制御部12は、送信FIFO7a~7cに蓄積されているフレームのうち出力順位が最上位のフレームが、対応する送信部8a~8cにフレーム格納部11により複製されて格納されると、その格納されたフレームを対応する送信部8a~8cからCANバス2へ送信させる。
【0022】
フレーム消去部13は、送信FIFO7a~7cに蓄積されているフレームのうち出力順位が最上位のフレームが、対応する送信部8a~8cにフレーム格納部11により複製されて格納されると、その格納されたフレームと同じフレームを送信FIFO7a~7cから消去する。フレーム消去部13がフレームを送信FIFO7a~7cから消去することで、フレーム蓄積部10は、送信要求が発生したフレームの送信FIFO7a~7cへの格納を繰り返し可能となる。
【0023】
即ち、フレーム蓄積部10は、送信優先度に対応する送信FIFO7a~7cにフレームの蓄積領域が存在していれば、その送信要求が発生したフレームを送信FIFO7a~7cに速やかに格納するが、送信優先度に対応する送信FIFO7a~7cにフレームの蓄積領域が存在していなければ、その送信要求が発生したフレームの送信FIFO7a~7cへの蓄積を待機する。フレーム蓄積部10は、送信部8a~8cに格納されたフレームと同じフレームが送信FIFO7a~7cからフレーム消去部13により消去され、フレームの蓄積領域が発生次第、その送信FIFO7a~7cへの蓄積を待機していたフレームを送信FIFO7a~7cに蓄積する。
【0024】
次に、上記した構成の作用について
図2から
図4を参照して説明する。この場合、制御部5が行う処理として、フレーム蓄積処理、フレーム格納処理、フレーム送信処理について順次説明する。
【0025】
(1-1)フレーム蓄積処理(
図2参照)
フレーム蓄積処理はフレームを送信FIFO群7に蓄積する処理である。制御部5は、フレームの送信要求が発生したことでフレーム蓄積処理の開始条件が成立すると、フレーム蓄積処理を開始し、その送信要求が発生したフレームに付与されている送信優先度を判定し、送信優先度が「1」であるか否かを判定する(S1)。制御部5は、送信優先度が「1」であると判定すると(S1:YES)、送信優先度が「1」に対応する第1送信FIFO7aにフレームの蓄積領域が存在するか否かを判定する(S2)。
【0026】
制御部5は、第1送信FIFO7aにフレームの蓄積領域が存在すると判定すると(S2:YES)、その送信要求が発生したフレームを第1送信FIFO7aに蓄積し(S3)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。制御部5は、第1送信FIFO7aにフレームの蓄積領域が存在しないと判定すると(S2:NO)、その送信要求が発生したフレームの第1送信FIFO7aへの格納を待機する。
【0027】
制御部5は、第1送信FIFO7aに蓄積されているフレームのうち出力順位が最上位のフレームを消去したことでフレームの蓄積領域が発生し、第1送信FIFO7aにフレームの蓄積領域が存在すると判定すると(S2:YES)、その送信要求が発生したフレームを第1送信FIFO7aに蓄積し(S3)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。
【0028】
制御部5は、送信優先度が「1」でないと判定すると(S1:NO)、送信優先度が「2」であるか否かを判定する(S4)。制御部5は、送信優先度が「2」であると判定すると(S4:YES)、送信優先度が「2」に対応する第2送信FIFO7bにフレームの蓄積領域が存在するか否かを判定する(S5)。
【0029】
制御部5は、第2送信FIFO7bにフレームの蓄積領域が存在すると判定すると(S5:YES)、その送信要求が発生したフレームを第2送信FIFO7bに蓄積し(S6)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。制御部5は、第2送信FIFO7bにフレームの蓄積領域が存在しないと判定すると(S5:NO)、その送信要求が発生したフレームの第2送信FIFO7bへの格納を待機する。
【0030】
制御部5は、第2送信FIFO7bに蓄積されているフレームのうち出力順位が最上位のフレームを消去したことでフレームの蓄積領域が発生し、第2送信FIFO7bにフレームの蓄積領域が存在すると判定すると(S5:YES)、その送信要求が発生したフレームを第2送信FIFO7bに蓄積し(S6)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。
【0031】
制御部5は、送信優先度が「2」でないと判定すると(S4:NO)、送信優先度が「3」に対応する第3送信FIFO7cにフレームの蓄積領域が存在するか否かを判定する(S7)。
【0032】
制御部5は、第3送信FIFO7cにフレームの蓄積領域が存在すると判定すると(S7:YES)、その送信要求が発生したフレームを第3送信FIFO7cに蓄積し(S8)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。制御部5は、第3送信FIFO7cにフレームの蓄積領域が存在しないと判定すると(S7:NO)、その送信要求が発生したフレームの第3送信FIFO7cへの格納を待機する。
【0033】
制御部5は、第3送信FIFO7cに蓄積されているフレームのうち出力順位が最上位のフレームを消去したことでフレームの蓄積領域が発生し、第3送信FIFO7cにフレームの蓄積領域が存在すると判定すると(S7:YES)、その送信要求が発生したフレームを第3送信FIFO7cに蓄積し(S8)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。
【0034】
(1-2)フレーム格納処理(
図3参照)
フレーム格納処理はフレームをCANコントローラ8に格納する処理である。制御部5は、フレーム蓄積処理を終了したことでフレーム格納処理の開始条件が成立すると、フレーム格納処理を開始し、第1送信FIFO7aにフレームが格納されているか否かを判定する(S11)。
【0035】
制御部5は、第1送信FIFO7aにフレームが格納されていると判定すると(S11:YES)、第1送信部8aが空であるか否かを判定する(S12)。制御部5は、第1送信部8aが空であると判定すると(S12:YES)、第1送信FIFO7aに蓄積されているフレームのうち出力順位が最上位のフレームを第1送信部8aに複製して格納する(S13)。
【0036】
制御部5は、その第1送信部8aに格納したフレームと同じフレーム、即ち、出力順位が最上位のフレームを第1送信FIFO7aから消去する(S14)。制御部5は、出力順位が最上位のフレームを第1送信FIFO7aから消去したことで、第1送信FIFO7aに蓄積されている残りのフレームについて出力順位を1つずつ繰り上げ、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。一方、制御部5は、第1送信部8aが空でないと判定すると(S12:NO)、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。
【0037】
制御部5は、第1送信FIFO7aにフレームが格納されていないと判定すると(S11:NO)、第2送信FIFO7bにフレームが格納されているか否かを判定する(S15)。制御部5は、第2送信FIFO7bにフレームが格納されていると判定すると(S15:YES)、第2送信部8bが空であるか否かを判定する(S16)。制御部5は、第2送信部8bが空であると判定すると(S16:YES)、第2送信FIFO7bに蓄積されているフレームのうち出力順位が最上位のフレームを第2送信部8bに複製して格納する(S17)。
【0038】
制御部5は、その第2送信部8bに格納したフレームと同じフレーム、即ち、出力順位が最上位のフレームを第2送信FIFO7bから消去する(S18)。制御部5は、出力順位が最上位のフレームを第2送信FIFO7bから消去したことで、第2送信FIFO7bに蓄積されている残りのフレームについて出力順位を1つずつ繰り上げ、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。一方、制御部5は、第2送信部8bが空でないと判定すると(S16:NO)、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。
【0039】
制御部5は、第2送信FIFO7bにフレームが格納されていないと判定すると(S15:NO)、第3送信FIFO7cにフレームが格納されているか否かを判定する(S19)。制御部5は、第3送信FIFO7cにフレームが格納されていると判定すると(S19:YES)、第3送信部8cが空であるか否かを判定する(S20)。制御部5は、第3送信部8cが空であると判定すると(S20:YES)、第3送信FIFO7cに蓄積されているフレームのうち出力順位が最上位のフレームを第3送信部8cに複製して格納する(S21)。
【0040】
制御部5は、その第3送信部8cに格納したフレームと同じフレーム、即ち、出力順位が最上位のフレームを第3送信FIFO7cから消去する(S22)。制御部5は、出力順位が最上位のフレームを第3送信FIFO7cから消去したことで、第3送信FIFO7cに蓄積されている残りのフレームについて出力順位を1つずつ繰り上げ、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。一方、制御部5は、第3送信部8cが空でないと判定すると(S20:NO)、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。制御部5は、第3送信FIFO7cにフレームが格納されていないと判定すると(S19:NO)、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。
【0041】
(1-3)フレーム送信処理(
図4参照)
制御部5は、フレーム格納処理を終了したことでフレーム送信処理の開始条件が成立すると、フレーム送信処理を開始し、第1送信部8aにフレームが格納されているか否かを判定する(S31)。制御部5は、第1送信部8aにフレームが格納されていると判定すると(S31:YES)、そのフレームを第1送信部8aからCANバス2へ送信させ(S32)、フレーム送信処理を終了し、次のフレーム送信処理の開始条件の成立を待機する。
【0042】
制御部5は、第1送信部8aにフレームが格納されていないと判定すると(S31:NO)、第2送信部8bにフレームが格納されているか否かを判定する(S33)。制御部5は、第2送信部8bにフレームが格納されていると判定すると(S33:YES)、そのフレームを第2送信部8bからCANバス2へ送信させ(S34)、フレーム送信処理を終了し、次のフレーム送信処理の開始条件の成立を待機する。
【0043】
制御部5は、第2送信部8bにフレームが格納されていないと判定すると(S33:NO)、第3送信部8cにフレームが格納されているか否かを判定する(S35)。制御部5は、第3送信部8cにフレームが格納されていると判定すると(S35:YES)、そのフレームを第3送信部8cからCANバス2へ送信させ(S36)、フレーム送信処理を終了し、次のフレーム送信処理の開始条件の成立を待機する。制御部5は、第3送信部8cにフレームが格納されていないと判定すると(S35:NO)、フレーム送信処理を終了し、次のフレーム送信処理の開始条件の成立を待機する。
【0044】
尚、以上は、送信FIFO群7が3個の送信FIFO7a~7cを備え、CANコントローラ8が3個の送信部8a~8cを備える構成を例示したが、送信FIFO及び送信部の個数は、2以上の任意の個数であれば良い。又、送信優先度が送信FIFO群7内の送信FIFO7a~7cの個数分及びCANコントローラ8内の送信部8a~8cの個数分の段階で設定される構成を例示したが、送信優先度は、送信FIFO群7内の送信FIFO7a~7cの個数及びCANコントローラ8内の送信部8a~8cの個数よりも大きな段数で設定されても良い。例えば送信FIFO群7が3個の送信FIFO7a~7cを備え、CANコントローラ8が3個の送信部8a~8cを備える構成において、送信優先度が「1」、「2」、「3」、「4」、「5」の5段階で設定される場合、送信優先度が「1」のフレームを送信FIFO7aに蓄積し、送信優先度が「2」のフレームを第2送信FIFO7bに蓄積し、残りの送信優先度が「3」、「4」、「5」のフレームを纏めて第3送信FIFO7cに蓄積しても良い。
【0045】
以上に説明したように第1実施形態によれば、次に示す作用効果を得ることができる。
ECU1において、送信要求が発生したフレームに付与されている送信優先度の判定結果に基づいてフレームを送信FIFO7a~7cに蓄積し、その送信FIFO7a~7cに蓄積したフレームを、対応する送信部8a~8cが空である場合に当該送信部8a~8cに複製して格納し、その格納したフレームをCANバス2へ送信するようにした。送信対象のフレームに送信優先度を付与することで、送信要求が発生したフレームを、そのフレームに付与されているIDに基づいた優先順位とは異なる優先順位にしたがって送信することができる。このとき、フレームに付与されている送信優先度を判定すれば良く、送信要求が発生したフレームのIDを他のフレームのIDと比較して大小を判定する処理が不要となる。これにより、大量のフレームの高速処理を妨げることなく、送信優先度が高いフレームを適切に優先して送信することができる。
【0046】
又、それぞれ送信FIFO7a~7cに蓄積されているフレームのうち出力順位が最上位のフレームを送信部8a~8cに複製して格納すると、その送信部8a~8cに格納したフレームと同じフレームを送信FIFO7a~7cから消去するようにした。フレームを送信FIFO7a~7cから消去することで、送信要求が発生したフレームを、そのフレームに付与されているIDに基づいた優先順位とは異なる優先順位にしたがって送信する処理を繰り返すことができる。
【0047】
又、フレームに付与されているIDに基づいた優先順位にしたがってフレームを送信する従来の処理と、上記した送信優先度にしたがってフレームを送信する処理とを併用し、使い分けても良い。例えば送信対象のデータを、送信優先度とIDとの組み合わせが逆転しない第1群と、送信優先度とIDとの組み合わせが逆転する第2群とに区分し、第1群についてはIDに基づいた優先順位にしたがってフレームを送信する従来の処理を適用し、第2群については送信優先度に基づいた優先順位にしたがってフレームを送信する処理を適用しても良い。
【0048】
(第2実施形態)
第2実施形態について
図5から
図8を参照して説明する。
図5に示すように、ECU21は、第1実施形態で説明したフレーム消去部13に代えて、送信要求済みフラグ設定部22を備える。送信要求済みフラグ設定部22は、送信FIFO7a~7cに蓄積されているフレームのうち出力順位が最上位のフレームが、対応する送信部8a~8cにフレーム格納部11により複製されて格納されると、その格納されたフレームと同じフレームに送信要求済みフラグを設定する。送信要求済みフラグ設定部22がフレームに送信要求済みフラグを設定することで、フレーム蓄積部10は、送信要求が発生したフレームの送信FIFO7a~7cへの格納を繰り返し可能となる。
【0049】
即ち、フレーム蓄積部10は、送信優先度に対応する送信FIFO7a~7cにフレームの蓄積領域が存在していれば、その送信要求が発生したフレームを送信FIFO7a~7cに速やかに格納するが、送信優先度に対応する送信FIFO7a~7cにフレームの蓄積領域が存在していなければ、送信要求済みフラグが設定されているフレームが存在すれば、その送信要求が発生したフレームを、送信要求済みフラグが設定されているフレームに上書きして送信FIFO7a~7cに蓄積する。
【0050】
次に、上記した構成の作用について
図6から
図8を参照して説明する。この場合も、制御部5が行う処理として、フレーム蓄積処理、フレーム格納処理、フレーム送信処理について順次説明する。
【0051】
(2-1)フレーム蓄積処理(
図6から
図7参照)
制御部5は、送信要求が発生したフレームに付与されている送信優先度が「1」であると判定し(S1:YES)、送信優先度が「1」に対応する第1送信FIFO7aにフレームの蓄積領域が存在すると判定すると(S2:YES)、その送信要求が発生したフレームを第1送信FIFO7aに蓄積し(S3)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。
【0052】
制御部5は、送信優先度が「1」に対応する第1送信FIFO7aにフレームの蓄積領域が存在しないと判定すると(S2:NO)、送信要求済みフラグが設定されているフレームが存在するか否かを判定する(S41)。制御部5は、送信要求済みフラグが設定されているフレームが存在すると判定すると(S41:YES)、その送信要求が発生したフレームを、送信要求済みフラグが設定されているフレームに上書きして第1送信FIFO7aに蓄積し(S42)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。制御部5は、送信要求済みフラグが設定されているフレームが存在しないと判定すると(S41:NO)、その送信要求が発生したフレームの第1送信FIFO7aへの格納を待機する。
【0053】
制御部5は、送信要求が発生したフレームに付与されている送信優先度が「2」であると判定し(S4:YES)、送信優先度が「2」に対応する第2送信FIFO7bにフレームの蓄積領域が存在すると判定すると(S5:YES)、その送信要求が発生したフレームを第2送信FIFO7bに蓄積し(S6)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。
【0054】
制御部5は、送信優先度が「2」に対応する第2送信FIFO7bにフレームの蓄積領域が存在しないと判定すると(S5:NO)、送信要求済みフラグが設定されているフレームが存在するか否かを判定する(S43)。制御部5は、送信要求済みフラグが設定されているフレームが存在すると判定すると(S43:YES)、その送信要求が発生したフレームを、送信要求済みフラグが設定されているフレームに上書きして第2送信FIFO7bに蓄積し(S44)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。制御部5は、送信要求済みフラグが設定されているフレームが存在しないと判定すると(S43:NO)、その送信要求が発生したフレームの第2送信FIFO7bへの格納を待機する。
【0055】
制御部5は、送信要求が発生したフレームに付与されている送信優先度が「2」でないと判定し(S4:NO)、送信優先度が「3」に対応する第3送信FIFO7cにフレームの蓄積領域が存在すると判定すると(S7:YES)、その送信要求が発生したフレームを第3送信FIFO7cに蓄積し(S8)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。
【0056】
制御部5は、送信優先度が「3」に対応する第3送信FIFO7cにフレームの蓄積領域が存在しないと判定すると(S7:NO)、送信要求済みフラグが設定されているフレームが存在するか否かを判定する(S45)。制御部5は、送信要求済みフラグが設定されているフレームが存在すると判定すると(S45:YES)、その送信要求が発生したフレームを、送信要求済みフラグが設定されているフレームに上書きして第3送信FIFO7cに蓄積し(S46)、フレーム蓄積処理を終了し、次のフレーム蓄積処理の開始条件の成立を待機する。制御部5は、送信要求済みフラグが設定されているフレームが存在しないと判定すると(S45:NO)、その送信要求が発生したフレームの第3送信FIFO7cへの格納を待機する。
【0057】
(2-2)フレーム格納処理(
図8参照)
制御部5は、それぞれ送信FIFO7a~7cに蓄積されているフレームのうち出力順位が最上位のフレームを送信部8a~8cに複製して格納すると(S13,S17,S21)、その送信部8a~8cに格納したフレームと同じフレーム、即ち、出力順位が最上位のフレームに送信要求済みフラグを設定する(S51~S53)。制御部5は、出力順位が最上位のフレームに送信要求済みフラグを設定したことで、送信FIFO7a~7cに蓄積されている残りのフレームについて出力順位を1つずつ繰り上げ、フレーム格納処理を終了し、次のフレーム格納処理の開始条件の成立を待機する。
【0058】
(2-3)フレーム送信処理
フレーム送信処理は、第1実施形態の
図4で説明したフレーム送信処理(S31~S36)と同じである。
【0059】
以上に説明したように第2実施形態によれば、次に示す作用効果を得ることができる。
ECU21において、第1実施形態と同様の作用効果を得ることができ、大量のフレームの高速処理を妨げることなく、送信優先度が高いフレームを適切に優先して送信することができる。
【0060】
又、それぞれ送信FIFO7a~7cに蓄積されているフレームのうち出力順位が最上位のフレームを送信部8a~8cに複製して格納すると、その送信部8a~8cに格納したフレームと同じフレームに送信要求済みフラグを設定するようにした。送信要求済みフラグを設定することで、送信要求が発生したフレームを、そのフレームに付与されているIDに基づいた優先順位とは異なる優先順位にしたがって送信する処理を繰り返すことができる。
【0061】
(その他の実施形態)
本開示は、実施例に準拠して記述されたが、当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、更には、それらに一要素のみ、それ以上、或いはそれ以下を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【0062】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することにより提供された専用コンピュータにより実現されても良い。或いは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によりプロセッサを構成することにより提供された専用コンピュータにより実現されても良い。若しくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路により構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより実現されても良い。又、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていても良い。
【符号の説明】
【0063】
図面中、1,21は電子制御装置、5は制御部、7は送信FIFO群、8はCANコントローラ(送信部群)、9は送信優先度判定部、10はフレーム蓄積部、11はフレーム格納部、12はフレーム送信制御部、13はフレーム消去部、22は送信要求済みフラグ設定部である。