(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024008623
(43)【公開日】2024-01-19
(54)【発明の名称】船舶システムにおいて複数の電子制御装置のプログラムを書き換える方法、及び、船舶システム
(51)【国際特許分類】
B63H 21/21 20060101AFI20240112BHJP
B63H 20/00 20060101ALI20240112BHJP
G06F 8/65 20180101ALI20240112BHJP
【FI】
B63H21/21
B63H20/00 803
G06F8/65
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022110637
(22)【出願日】2022-07-08
(71)【出願人】
【識別番号】000010076
【氏名又は名称】ヤマハ発動機株式会社
(74)【代理人】
【識別番号】110000202
【氏名又は名称】弁理士法人新樹グローバル・アイピー
(74)【代理人】
【識別番号】100121382
【弁理士】
【氏名又は名称】山下 託嗣
(72)【発明者】
【氏名】馬場 貴秋
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA13
5B376CA29
5B376CA46
(57)【要約】
【課題】複数の船舶推進器を含む船舶のシステムにおいて、複数の電子制御装置のプログラムの書き換えに要する時間を削減する。
【解決手段】プログラムを書き換えるための方法は、第1電子制御装置と第2電子制御装置とに対して、それぞれプログラムの一括書き換えを行うと判定したときには、第1電子制御装置と第2電子制御装置とに、共通の識別子で、プログラムを書き換えるためのデータを送信することと、第1電子制御装置に対して、プログラムの一括書き換えを行わないと判定したときには、共通の識別子と異なる個別の第1識別子によって、第1電子制御装置にプログラムを書き換えるためのデータを送信することと、第2電子制御装置に対して、プログラムの一括書き換えを行わないと判定したときには、共通の識別子と異なる個別の第2識別子によって、第2電子制御装置にプログラムを書き換えるためのデータを送信すること、を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
第1電子制御装置を含む第1船舶推進器と、第2電子制御装置を含む第2船舶推進器と、前記第1電子制御装置と前記第2電子制御装置とを接続する通信ネットワークとを備える船舶システムにおいて、前記第1電子制御装置と前記第2電子制御装置とのプログラムを書き換えるための方法であって、
前記第1電子制御装置と前記第2電子制御装置とに対して、それぞれ前記プログラムの一括書き換えを行うかを判定することと、
前記第1電子制御装置と前記第2電子制御装置とに対して、それぞれ前記プログラムの一括書き換えを行うと判定したときには、前記通信ネットワークを介して、前記第1電子制御装置と前記第2電子制御装置とに、共通の識別子で、前記プログラムを書き換えるためのデータを送信することと、
前記第1電子制御装置に対して、前記プログラムの一括書き換えを行わないと判定したときには、前記第1電子制御装置に割り当てられた前記共通の識別子と異なる個別の第1識別子によって、前記第1電子制御装置に前記プログラムを書き換えるためのデータを送信することと、
前記第2電子制御装置に対して、前記プログラムの一括書き換えを行わないと判定したときには、前記第2電子制御装置に割り当てられた前記共通の識別子と異なる個別の第2識別子によって、前記第2電子制御装置に前記プログラムを書き換えるためのデータを送信すること、
を備える方法。
【請求項2】
前記第1電子制御装置と前記第2電子制御装置とのそれぞれから、前記プログラムの書き換えのプロトコルバージョンを取得することと、
前記プロトコルバージョンに基づいて、前記第1電子制御装置と前記第2電子制御装置とのそれぞれに対して、前記一括書き換えを行うかを判定すること、
をさらに備える請求項1に記載の方法。
【請求項3】
前記第1電子制御装置と前記第2電子制御装置とのそれぞれにおいて、前記プログラムの書き換え回数が規定値に達しているかを判定し、
前記プログラムの書き換え回数が規定値に達しているかに基づいて、前記第1電子制御装置と前記第2電子制御装置とのそれぞれに対して、前記一括書き換えを行うかを判定すること、
をさらに備える請求項1に記載の方法。
【請求項4】
前記第1電子制御装置と前記第2電子制御装置とのそれぞれにおいて、前記プログラムのバージョンが最新か否かを判定することと、
前記プログラムのバージョンが最新であるか否かに基づいて、前記第1電子制御装置と前記第2電子制御装置とのそれぞれに対して、前記一括書き換えを行うかを判定すること、
をさらに備える請求項1に記載の方法。
【請求項5】
第1電子制御装置を含む第1船舶推進器と、
第2電子制御装置を含む第2船舶推進器と、
前記第1電子制御装置と前記第2電子制御装置とを接続する通信ネットワークと、
前記通信ネットワークに接続され、前記第1電子制御装置と前記第2電子制御装置とのプログラムを書き換えるためのコンピュータと、
を備え、
前記コンピュータは、
前記第1電子制御装置と前記第2電子制御装置とに対して、それぞれ前記プログラムの一括書き換えを行うかを判定し、
前記第1電子制御装置と前記第2電子制御装置とに対して、それぞれ前記プログラムの一括書き換えを行うと判定したときには、前記通信ネットワークを介して、前記第1電子制御装置と前記第2電子制御装置とに、共通の識別子で、前記プログラムを書き換えるためのデータを送信し、
前記第1電子制御装置に対して、前記プログラムの一括書き換えを行わないと判定したときには、前記第1電子制御装置に割り当てられた前記共通の識別子と異なる個別の第1識別子によって、前記第1電子制御装置に前記プログラムを書き換えるためのデータを送信し、
前記第2電子制御装置に対して、前記プログラムの一括書き換えを行わないと判定したときには、前記第2電子制御装置に割り当てられた前記共通の識別子と異なる個別の第2識別子によって、前記第2電子制御装置に前記プログラムを書き換えるためのデータを送信する、
船舶システム。
【請求項6】
前記コントローラは、
前記第1電子制御装置と前記第2電子制御装置とのそれぞれから、前記プログラムの書き換えのプロトコルバージョンを取得し、
前記プロトコルバージョンに基づいて、前記第1電子制御装置と前記第2電子制御装置とのそれぞれに対して、前記一括書き換えを行うかを判定する、
請求項5に記載の船舶システム。
【請求項7】
前記コントローラは、
前記第1電子制御装置と前記第2電子制御装置とのそれぞれにおいて、前記プログラムの書き換え回数が規定値に達しているかを判定し、
前記プログラムの書き換え回数が規定値に達しているかに基づいて、前記第1電子制御装置と前記第2電子制御装置とのそれぞれに対して、前記一括書き換えを行うかを判定する、
請求項5に記載の船舶システム。
【請求項8】
前記コントローラは、
前記第1電子制御装置と前記第2電子制御装置とのそれぞれにおいて、前記プログラムのバージョンが最新か否かを判定し、
前記プログラムのバージョンが最新であるか否かに基づいて、前記第1電子制御装置と前記第2電子制御装置とのそれぞれに対して、前記一括書き換えを行うかを判定する、
請求項5に記載の船舶システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、船舶システムにおいて複数の電子制御装置のプログラムを書き換える方法、及び、船舶システムに関する。
【背景技術】
【0002】
船舶には、船外機などの船舶推進器が搭載されている。船舶推進器は、電子制御装置を備えている。電子制御装置は、CAN(Controller Area Network)などの通信ネットワークに接続されている。例えば、特許文献1に示されているように、電子制御装置のプログラムを更新する場合、プログラムを書き換えるためのコンピュータが、通信ネットワークを介して電子制御装置に接続される。コンピュータは、UDS(Unified Diagnostic Services)などの書き換えプロトコルを利用して、電子制御装置に対してプログラムの書き換えを行う。この場合、コンピュータと電子制御装置とは、互いに相手の識別子を指定して1対1の通信を確立することで、プログラムを書き換えるためのデータの送受信を行う。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
船舶には、複数の船舶推進器を含むシステムを有するものがある。そのようなシステムでは、複数の船舶推進器の複数の電子制御装置が通信ネットワークを介して互いに接続される。これらの複数の電子制御装置は、それぞれ共通の機能を有するものであるが、通信ネットワーク上では、それぞれ個別の装置として識別される。そのため、複数の電子制御装置には、それぞれ個別の識別子が割り当てられる。
【0005】
上記のように複数の船舶推進器を含むシステムにおいて、複数の電子制御装置のプログラムを書き換える場合、コンピュータは、複数の電子制御装置に対して個別にプログラムの書き換えを行うことになる。そのため、プログラムの書き換えに要する時間が、複数の電子制御装の数に応じて増大してしまう。
【0006】
本発明の目的は、複数の船舶推進器を含む船舶のシステムにおいて、複数の電子制御装置のプログラムの書き換えに要する時間を削減することにある。
【課題を解決するための手段】
【0007】
本発明の一態様に係る方法は、船舶システムにおいて、第1電子制御装置と第2電子制御装置とのプログラムを書き換えるための方法である。船舶システムは、第1船舶推進器と、第2船舶推進器と、通信ネットワークとを備える。第1船舶推進器は、第1電子制御装置を含む。第2船舶推進器は、第2電子制御装置を含む。通信ネットワークは、第1電子制御装置と第2電子制御装置とを接続する。当該方法は、第1電子制御装置と第2電子制御装置とに対して、それぞれプログラムの一括書き換えを行うかを判定することと、第1電子制御装置と第2電子制御装置とに対して、それぞれプログラムの一括書き換えを行うと判定したときには、通信ネットワークを介して、第1電子制御装置と第2電子制御装置とに、共通の識別子で、プログラムを書き換えるためのデータを送信することと、第1電子制御装置に対して、プログラムの一括書き換えを行わないと判定したときには、第1電子制御装置に割り当てられた共通の識別子と異なる個別の第1識別子によって、第1電子制御装置にプログラムを書き換えるためのデータを送信することと、第2電子制御装置に対して、プログラムの一括書き換えを行わないと判定したときには、第2電子制御装置に割り当てられた共通の識別子と異なる個別の第2識別子によって、第2電子制御装置にプログラムを書き換えるためのデータを送信すること、を備える。
【0008】
本発明の他の態様に係る船舶システムは、第1船舶推進器と、第2船舶推進器と、通信ネットワークと、コンピュータとを備える。第1船舶推進器は、第1電子制御装置を含む。第2船舶推進器は、第2電子制御装置を含む。通信ネットワークは、第1電子制御装置と第2電子制御装置とを接続する。コンピュータは、通信ネットワークに接続され、第1電子制御装置と第2電子制御装置とのプログラムを書き換える。
【0009】
コンピュータは、第1電子制御装置と第2電子制御装置とに対して、それぞれプログラムの一括書き換えを行うかを判定する。コンピュータは、第1電子制御装置と第2電子制御装置とに対して、それぞれプログラムの一括書き換えを行うと判定したときには、通信ネットワークを介して、第1電子制御装置と第2電子制御装置とに、共通の識別子で、プログラムを書き換えるためのデータを送信する。コンピュータは、第1電子制御装置に対して、プログラムの一括書き換えを行わないと判定したときには、第1電子制御装置に割り当てられた共通の識別子と異なる個別の第1識別子によって、第1電子制御装置にプログラムを書き換えるためのデータを送信する。コンピュータは、第2電子制御装置に対して、プログラムの一括書き換えを行わないと判定したときには、第2電子制御装置に割り当てられた共通の識別子と異なる個別の第2識別子によって、第2電子制御装置にプログラムを書き換えるためのデータを送信する。
【発明の効果】
【0010】
本発明によれば、複数の電子制御装置に対して、プログラムの一括書き換えを行うと判定された場合には、通信ネットワークを介して、複数の電子制御装置のそれぞれに共通の識別子で、プログラムを書き換えるためのデータが送信される。それにより、複数の電子制御装置のプログラムの書き換えに要する時間が削減される。また、複数の電子制御装置のうちプログラムの一括書き換えを行わないと判定されたものに対しては、個別の識別子によって、プログラムを書き換えるためのデータが送信される。それにより、複数の電子制御装置のそれぞれの書き換えの要求に応じてプログラムの書き換えを行うことができる。
【図面の簡単な説明】
【0011】
【
図4】ECUのプログラムを書き換えるためにコンピュータによって実行される処理を示すフローチャートである。
【
図5】ECUのプログラムを書き換えるためにコンピュータによって実行される処理を示すフローチャートである。
【
図6】書き換え回数更新指令を受信したECUによって実行される処理を示すフローチャートである。
【
図7】ECUによって実行される処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面を参照して、実施形態について説明する。
図1は、実施形態に係る船舶100を示す斜視図である。船舶100の船尾には、複数の船舶推進器1A-1Cが取り付けられる。船舶推進器1A-1Cは、船舶100を推進させるスラストを発生させる。本実施形態において、船舶推進器1A-1Cは、船外機である。船舶推進器1A-1Cは、第1船舶推進器1Aと、第2船舶推進器1Bと、第3船舶推進器1Cとを含む。
【0013】
図2は、船舶推進器1Aの側面図である。
図2に示すように、第1船舶推進器1Aは、エンジン10と、駆動軸11と、プロペラ軸12と、シフト機構13とを含む。エンジン10は、船舶100を推進させる推進力を発生させる。エンジン10は、クランク軸14を含む。クランク軸14は、鉛直方向に延びている。駆動軸11は、クランク軸14に接続されている。駆動軸11は、鉛直方向に延びている。駆動軸11は、エンジン10から下方へ延びている。
【0014】
プロペラ軸12は、第1船舶推進器1Aの前後方向に延びている。プロペラ軸12は、シフト機構13を介して、駆動軸11に接続されている。プロペラ軸12には、プロペラ15が接続される。シフト機構13は、駆動軸11からプロペラ軸12へ伝達される動力の回転方向を切り換える。シフト機構13は、例えば、複数のギアと、ギアの噛み合いを変更するクラッチとを含む。第1船舶推進器1Aは、ブラケット16を介して、船舶100に取り付けられる。
【0015】
第1船舶推進器1Aは、第1ECU(Engine Control Unit)17Aを含む。第1ECU17Aは、エンジン10を制御する電子制御装置である。第1ECU17Aは、CPU等のプロセッサ18と、RAM19と、フラッシュROM20とを含む。フラッシュROM20には、エンジン10を制御するためのプログラムが保存されている。第1ECU17Aは、プログラムに従い、エンジン10を電気的に制御する。
【0016】
図3は、船舶100に搭載された船舶システムの構成を示す模式図である。
図3に示すように、第2船舶推進器1Bは、第2ECU17Bを含む。第3船舶推進器1Cは、第3ECU17Cを含む。第2、第3ECU17B,17Cは、第1ECU17Aと同様の構成及び機能を有する。第2、第3船舶推進器1B,1Cの他の構成は、第1船舶推進器1Aと同様である。
【0017】
図3に示すように、船舶システムは、データ通信モジュール(以下、DCM)21と、機器システム22と、コントローラ23とを含む。DCM21は、外部のコンピュータ201と無線通信を行う。例えば、DCM21は、モバイル通信網200を介して、外部のコンピュータ201とデータ通信可能である。モバイル通信網200は、例えば3G、4G、或いは5Gなどのモバイル通信システムのネットワークである。
【0018】
機器システム22は、船舶100に搭載される電気機器を含む。例えば、機器システム22は、上述したECU17A-17Cを含む。機器システム22は、スロットル・シフト操作装置25を含む。スロットル・シフト操作装置25は、船舶推進器1A-1Cのエンジン回転速度を調整するために、オペレータによって操作可能である。また、スロットル・シフト操作装置25は、船舶推進器1A-1Cの前進・後進を切り替えるために、オペレータによって操作可能である。
【0019】
スロットル・シフト操作装置25は、スロットルレバー26を含む。スロットルレバー26は、中立位置から、前進位置と後進位置とに操作可能である。スロットル・シフト操作装置25は、スロットルレバー26の操作位置を示すスロットル信号を出力する。ECU17A-17Cは、スロットル・シフト操作装置25からのスロットル信号を受信する。ECU17A-17Cは、スロットルレバー26の操作位置に応じて、シフト機構13を制御する。それにより、プロペラ軸12の回転方向が、前進方向と後進方向とに切り替えられる。また、ECU17A-17Cは、スロットルレバー26の操作位置に応じて、エンジン回転速度を制御する。
【0020】
機器システム22は、ステアリングアクチュエータ27と、ステアリング操作装置28とを含む。ステアリングアクチュエータ27は、船舶推進器1A-1Cを左右に旋回させることで、船舶推進器1A-1Cの舵角を変更する。ステアリングアクチュエータ27は、例えば電動モータである。或いは、ステアリングアクチュエータ27は、電動ポンプと油圧シリンダとを含んでもよい。
【0021】
ステアリング操作装置28は、船舶推進器1A-1Cの舵角を調整するために、オペレータによって操作可能である。ステアリング操作装置28は、例えばステアリングホイールである。或いは、ステアリング操作装置28は、ジョイスティックなどの他の操作装置であってもよい。ステアリング操作装置28は、中立位置から左右に操作可能である。ステアリング操作装置28は、ステアリング操作装置28の操作位置を示すステアリング信号を出力する。ステアリング操作装置28の操作位置に応じてステアリングアクチュエータ27を制御することで、船舶推進器1A-1Cの舵角が制御される。
【0022】
機器システム22は、ディスプレイ31と入力装置32とを含む。ディスプレイ31は、船舶推進器1A-1Cに関する情報を表示する。ディスプレイ31は、ディスプレイ31に入力される画像信号に応じた画像を表示する。入力装置32は、ユーザによる入力を受け付ける。入力装置32は、ユーザによる入力を示す入力信号を出力する。入力装置32は、例えばタッチパネルである。ただし、入力装置32は、ハードウェアキーを含んでもよい。機器システム22は、CAN(Controller Area Network)33を含む。CAN33は、機器システム22に含まれる電気機器を互いに接続する通信ネットワークである。
【0023】
コントローラ23は、CPU等のプロセッサ、RAM及びROMなどのメモリを含む。コントローラ23は、機器システム22を制御する。例えば、コントローラ23は、入力装置32からの入力信号に応じて、機器システム22を制御する。コントローラ23は、ディスプレイ31に画像信号を出力することで、ディスプレイ31に所望の画像を表示させる。機器システム22は、コントローラ23を介して、DCM21と接続されている。
【0024】
コンピュータ201は、DCM21を介して、CAN33に接続される。コンピュータ201は、UDS(Unified Diagnostic Services)などのプログラムを書き換えるための書換プロトコルを用いて、ECU17A-17Cのプログラムを書き換える。以下、ECU17A-17Cのプログラムを書き換えるための処理について説明する。
【0025】
図4は、ECU17A-17Cのプログラムを書き換えるためにコンピュータ201によって実行される処理を示すフローチャートである。
図4に示すように、ステップS101では、コンピュータ201は、各ECU17A-17CからECU情報を取得する。ECU情報は、各ECU17A-17Cのプロトコルバージョンと、プログラムの書き換え回数と、シリアル番号と、プログラムのバージョンとを含む。なお、ここでは、コンピュータ201は、上述したCAN33の書換プロトコルとは別の通信プロトコルにて、ECU情報を取得する。この別の通信プロトコルは、同一種類のECUでも個別に判別可能なようにIDが設定されており、例えばSAE J1939プロトコルであってもよい。書換プロトコルによる通信時のECU17A-17Cからのマルチパケット応答が発生すると、コンピュータ201は、各ECU17A-17Cからの応答を正しく判定できないためである。
【0026】
ステップS102では、コンピュータ201は、各ECU17A-17Cが一括書き換えに対応しているかを判定する。コンピュータ201は、各ECU17A-17Cのプロトコルバージョンに基づいて、各ECU17A-17Cが一括書き換えに対応しているかを判定する。
【0027】
ステップS103では、コンピュータ201は、各ECU17A-17Cのプログラムのバージョンが最新であるかを判定する。ステップS104では、コンピュータ201は、書き換え回数が規定値A1を超えるかどうかを判定する。コンピュータ201は、ECU17A-17Cのうち、一括書き換えに対応し、プログラムのバージョンが最新ではなく、且つ、書き換え回数が規定値A1を超えていないECUに対しては、ステップS105において、一括書き換えのための共通の識別子で、プログラムを書き換えるためのデータを送信する。すなわち、コンピュータ201は、ECU17A-17Cのうち、一括書き換えに対応し、プログラムのバージョンが最新ではなく、且つ、書き換え回数が規定値A1を超えていないECUに対しては、共通の識別子により一括書き換えを行うと判定する。共通の識別子は、一括書き換えに対応したプロトコルバージョンを有するECU17A-17Cに予め設定されている。
【0028】
ステップS102において、ECU17A-17Cが一括書き換えに対応していない場合には、処理はステップS106に進む。ステップS106では、コンピュータ201は、個別書き換えのための個別の識別子で、プログラムを書き換えるためのデータを送信する。一括書き換えに対応していないプロトコルバージョンを有するECU17A-17Cのそれぞれには、個別の識別子が予め割り当てられて設定されている。
【0029】
例えば、コンピュータ201は、第1ECU17Aと第2ECU17Bとが一括書き換えに対応し、プログラムのバージョンが最新ではなく、且つ、書き換え回数が規定値A1を超えていないと判定した場合には、共通の識別子で、第1ECU17Aと第2ECU17Bとに、プログラムを書き換えるためのデータを同時に送信する。また、コンピュータ201は、第3ECU17Cが一括書き換えに対応していないと判定した場合には、第3ECU17Cに割り当てられた個別の識別子で、第3ECU17Cに、プログラムを書き換えるためのデータを送信する。すなわち、コンピュータ201は、共通の識別子による第1ECU17Aと第2ECU17Bとへのデータの送信と、個別の識別子による第3ECU17Cへのデータの送信とを別々に行う。
【0030】
なお、コンピュータ201は、第3ECU17Cが一括書き換えに対応していても、第3ECU17Cのプログラムのバージョンが最新である場合、或いは、第3ECU17Cのプログラムの書き換え回数が規定値A1を超える場合には、第1ECU17Aと第2ECU17Bとに対してのみ、共通の識別子によるプログラムの一括書き換えを行う。すなわち、コンピュータ201は、一括書き換えに対応していない、或いは、プログラムのバージョンが最新である、或いは、プログラムの書き換え回数が規定値A1を超えているECUに対しては、一括書き換えを行わないと判定する。
【0031】
コンピュータ201は、一括書き換えを行うと判定したECUに対しては、共通の識別子で、
図5に示す処理によりデータを送信する。以下、第1ECU17Aと第2ECU17Bとは、一括書き換えに対応し、プログラムのバージョンが最新ではなく、且つ、書き換え回数が規定値A1を超えていないものとする。また、第3ECU17Cは、一括書き換えに対応していない、或いは、プログラムのバージョンが最新である、或いは、プログラムの書き換え回数が規定値A1を超えているものとする。
【0032】
図5に示すように、コンピュータ201は、ステップS201では、拡張診断セッションの移行要求を各ECU17A,17Bに送信する。ステップS202では、コンピュータ201は、リプログラミングセッションの移行要求をECU17A,17Bに送信する。
【0033】
ステップS203では、コンピュータ201は、セイキュリティアクセス(Seed)を送信する。ステップS204では、コンピュータ201は、セイキュリティアクセス(Key)を送信する。なお、セキュリティアクセス(Key)は、合致するECU17A,17B以外はエラーとなるため、コンピュータ201は、ECU17A,17Bの個数分のKeyを送信する。また、ECU17A,17Bは、(ECUの個数-1)回のエラーが発生することを許容する。
【0034】
ステップS205では、コンピュータ201は、書き換え回数更新指令を送信する。コンピュータ201は、各ECU17A,17Bに対して、具体的な回数を送信するのではなく、書き換え回数を1つ増やす指令を送信する。
【0035】
図6は、書き換え回数更新指令を受信したECU17A,17Bによって実行される処理を示すフローチャートである。例えば、第1ECU17Aが、書き換え回数更新指令を受信した場合、
図6に示すように、ステップS301において、第1ECU17Aは、自身の書き換え回数を1つ増やす。第1ECU17Aが書き換え換え回数の上限値が規定されているECUである場合には、ステップS302において、第1ECU17Aは、書き換え回数が規定値A1を超えるかどうかを判定する。
【0036】
ステップS302において、第1ECU17Aが、書き換え回数が規定値A1を超えると判定した場合には、処理はステップS303に進む。ステップS303では、第1ECU17Aは、プログラムの書き換えを拒否する。この場合、第1ECU17Aは、コンピュータ201へ対して、否定応答を行う。コンピュータ201は、第1ECU17Aから否定応答を受信した場合、第1ECU17Aは書き換え不可能と判定する。
【0037】
ステップS302において、第1ECU17Aが、書き換え回数が規定値A1を超えていないと判定した場合には、処理は、ステップS304へ進む。ステップS304では、第1ECU17Aは、プログラムの書き換えを許容する。この場合、第1ECU17Aは、コンピュータ201に対して肯定応答を行う。第1ECU17Aが書き換え換え回数の上限値が規定されていないECU17A,17Bである場合にも、第1ECU17Aは、コンピュータ201に対して肯定応答を行う。コンピュータ201は、第1ECU17Aから肯定応答を受信した場合、第1ECU17Aは書き換え可能と判定する。第2ECU17Bも、書き換え回数更新指令を受信すると、上記の処理を実行する。
【0038】
ステップS206では、コンピュータ201は、フラッシュROMの消去指令を送信する。なお、ステップS206以降の処理に対して、書き換え不可能なECUは、否定応答を行い、書き換え可能なECUのみが処理を継続する。
【0039】
ステップS207では、コンピュータ201は、ダウンロード要求を送信する。ダウンロード要求に対するECU17A,17Bからの応答に差(例えばデータ受け入れ可能容量の差、或いは通信時間間隔の要求の差)が発生した場合は、コンピュータ201は、その応答の最も緩い条件に合わせて、データ転送を行う。また、ECU17A,17Bは、コンピュータ201から宣言されたデータ送信容量に従って、応答を行う。すなわち、コンピュータ201は、ECU17A,17Bからの要求値に対応した処理は行わない。
【0040】
ステップS208では、コンピュータ201は、アップデートされたプログラムのデータをECU17A,17Bに送信する。各ECU17A,17Bは、受信したプログラムのデータにより、プログラムを書き換える。例えば、第1ECU17Aが、プログラムの書き換えを許容した場合、第1ECU17Aは、コンピュータ201から受信したプログラムのデータにより、プログラムを書き換える。第1ECU17Aが、プログラムの書き換えを拒否した場合には、第1ECU17Aは、プログラムの書き換えを行わない。
【0041】
プログラムのデータの送信が完了すると、ステップS209では、コンピュータ201は、チェックサム確認を送信する。ステップS210では、コンピュータ201は、リブート指令を送信する。ステップS211では、コンピュータ201は、拡張診断セッション移行要求を送信する。ステップS212では、コンピュータ201は、デフォルトセッション移行要求を送信する。
【0042】
ステップS213では、コンピュータ201は、ECU情報要求を送信する。ここでは、コンピュータ201は、上述したステップS101と同様に、CAN33の書換プロトコルとは別の通信プロトコルにて、ECU情報を取得する。
【0043】
なお、上記の各処理に対して、各ECU17A,17Bは応答を行い、コンピュータ201は各ECU17A,17Bからの応答の受信後に、次の処理を実行する。フラッシュROMの消去前までの処理において、ECU17A,17Bのいずれかにおいて何らかのエラーが発生した場合には、コンピュータ201は、エラーが発生したECUは、書き換えが実施できないと判断するが、一括書き換えを続行する。また、フラッシュROMの消去以降の処理において、ECU17A,17Bのいずれかにおいて何らかのエラーが発生しても、コンピュータ201は、最後まで一括書き換えを実行する。すなわち、コンピュータ201は、書き換えが成功しそうなECUに対しては、最後まで処理を実行する。それにより、ECU17A,17Bでのソフトウェアの破損の発生が抑えられる。
【0044】
コンピュータ201は、一括書き換えに対応していない第3ECU17Cに対しては、第3ECU17Cに割り当てられた個別の識別子で、上述した処理と同様の処理によりデータを送信する。
【0045】
図4のステップS102~S104に示すように、第1~第3ECU17A-17Cのうち、一括書き換えに対応していないもの、プログラムのバージョンが最新であるもの、或いは、書き換え回数が規定値A1を超えているものについては、コンピュータ201は、共通の識別子によるプログラムの一括書き換えを行わない。その場合、コンピュータ201は、個別の識別子でデータを送信することで、個別にプログラムの書き換えを行う。
【0046】
図7は、ECU17A-17Cによって実行される処理を示すフローチャートである。
図7に示すように、ステップS401では、ECU17A-17Cは、コンピュータ201から共通の識別子を受信したかを判定する。なお、ECU17A-17Cのそれぞれは、ECU17A-17Cに共通の識別子と、ECU17A-17Cのそれぞれに割り当てられた個別の識別子とを記憶している。
【0047】
例えば、第1ECUは、共通の識別子と、個別の第1識別子とを記憶している。第2ECUは、共通の識別子と、個別の第2識別子とを記憶している。第3ECUは、共通の識別子と、個別の第3識別子とを記憶している。第1~第3識別子は、それぞれ第1~第3ECU17A-17Cに固有に割り当てられた識別子である。第1~第3識別子は、互いに異なっており、共通の識別子とも異なる。
【0048】
ECU17A-17Cは、共通の識別子を受信した場合には、ステップS402において共通の識別子で動作する。すなわち、ECU17A-17Cは、上述したコンピュータ201からのデータを、共通の識別子により受信し、コンピュータ201に応答する。それにより、ECU17A-17Cは、一括書き換えにより、プログラムを更新する。
【0049】
ステップS403では、ECU17A-17Cは、コンピュータ201から個別の識別子を受信したかを判定する。ECU17A-17Cは、コンピュータ201から個別の識別子を受信した場合には、ステップS404において個別の識別子で動作する。例えば、第1ECU17Aは、第1識別子を受信した場合には、上述したコンピュータ201からのデータを、第1識別子により受信し、コンピュータ201に応答する。第2ECU17Bは、第2識別子を受信した場合には、上述したコンピュータ201からのデータを、第2識別子により受信し、コンピュータ201に応答する。第3ECU17Cは、第3識別子を受信した場合には、上述したコンピュータ201からのデータを、第3識別子により受信し、コンピュータ201に応答する。それにより、ECU17A-17Cは、それぞれ個別書き換えにより、プログラムを更新する。
【0050】
以上説明した本実施形態に係る船舶システムによれば、複数のECU17A-17Cに対して、プログラムの一括書き換えを行うと判定された場合には、CAN33を介して、複数のECU17A-17Cのそれぞれに共通の識別子で、プログラムを書き換えるためのデータが送信される。そのため、複数のECU17A-17Cに対しては、同時にプログラムの書き換えが行われる。それにより、複数のECU17A-17Cのプログラムの書き換えに要する時間が削減される。また、複数のECU17A-17Cのうちプログラムの一括書き換えを行わないと判定されたものに対しては、個別の識別子によって、プログラムを書き換えるためのデータが送信される。それにより、複数のECU17A-17Cのそれぞれの書き換えの要求に応じてプログラムの書き換えを行うことができる。
【0051】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。
【0052】
船舶推進器1A-1Cは、船外機に限らず、船内外機、或いはジェット推進器などの他の推進器であってもよい。船舶推進器1A-1Cの構造は、上記の実施形態のものに限らず、変更されてもよい。例えば、船舶推進器1A-1Cは、エンジンに代えて、電動モータを備えてもよい。
【0053】
船舶推進器の数は、3つに限らない。船舶推進器の数は2つであってもよく、或いは3つより多くてもよい。電子制御装置は、上述したECUに限らず、変更されてもよい。例えば、船舶推進器が、駆動源として電動モータを有する場合には、電子制御装置は、電動モータ制御するモータコントローラであってもよい。
【0054】
プログラムの書き換え条件は、プログラムの書き換え回数が規定値に達していないことに限らず、他の条件を含んでもよい。例えば、プログラムの書き換え条件は、船舶推進器が運転状態ではないこと、或いは、ECUへの電圧が所定値以上であることを含んでもよい。
【0055】
上記の実施形態では、コンピュータ201は、モバイル通信網200を介して、CAN33に接続されている。しかし、コンピュータ201は、有線、或いは、無線LAN、或いはBluetooth(登録商標)などの近距離無線通信により、CAN33に接続されてもよい。
【0056】
ECUは、共通の識別子により動作する場合と、個別の識別子により動作する場合とで、実行する処理を切り替えてもよい。コンピュータ201は、共通の識別子によりデータを送信する場合と、個別の識別子によりデータを送信する場合とで、実行する処理を切り替えてもよい。
【産業上の利用可能性】
【0057】
本発明によれば、複数の船舶推進器を含む船舶のシステムにおいて、複数の電子制御装置のプログラムの書き換えに要する時間が削減される。
【符号の説明】
【0058】
1A・・・第1船舶推進器
1B・・・第2船舶推進器
1C・・・第3船舶推進器
17A・・・第1ECU
17B・・・第2ECU
17C・・・第3ECU
33・・・CAN
201・・・コンピュータ