(57)【要約】【課題】容易に作業機のプログラムを更新する。【解決手段】本発明の一態様に係る作業機のプログラム更新システムは、作業機に設けられた制御装置のプログラムを更新する更新プログラムを取得する取得部と、制御装置が有し、且つ、取得部が取得した更新プログラムをハッシュ化して、第１秘密鍵により暗号化された認証データに変換する変換部と、作業機に設けられ、且つ、認証データと、第１秘密鍵と対応する第１公開鍵とを送信する第１通信部と、サーバに設けられ、且つ、認証データと第１公開鍵とを受信する第２通信部と、サーバに設けられ、且つ、第１公開鍵による認証データの復号、及び認証データの解析を行い、更新プログラムの更新を認証するか否かを判断する判断部と、作業機に設けられ、判断部の判断結果が更新認証の場合、更新プログラムによるプログラムの更新を行う更新部と、を備える。【選択図】図１
2019185401.tif 000002
【特許請求の範囲】
【請求項１】
作業機に設けられた制御装置のプログラムを更新する更新プログラムを取得する取得部と、
前記取得部が取得した前記更新プログラムをハッシュ化し、前記ハッシュ化した更新プログラムを第１秘密鍵により暗号化することで認証データに変換する変換部と、
前記作業機に設けられ、且つ、前記認証データと、前記第１秘密鍵と対応する第１公開鍵とを送信する第１通信部と、
サーバに設けられ、且つ、前記認証データと前記第１公開鍵とを受信する第２通信部と、
前記サーバに設けられ、且つ、前記第１公開鍵による前記認証データの復号、及び前記認証データの解析を行い、前記更新プログラムの更新を認証するか否かを判断する判断部と、
前記作業機に設けられ、前記判断部の判断結果が更新認証の場合、前記更新プログラムによる前記プログラムの更新を行う更新部と、
を備える作業機のプログラム更新システム。
【請求項２】
前記更新プログラムが記憶され、且つ、前記更新プログラムを送信する端末を備え、
前記取得部は、前記端末から前記更新プログラムを取得する請求項１に記載の作業機のプログラム更新システム。
【請求項３】
通信装置に設けられ、且つ、前記第１通信部から送信された前記認証データ及び前記第１公開鍵を前記第２通信部に送信する第３通信部を備え、
前記第３通信部は、前記第２通信部から送信された当該判断結果を前記第１通信部に送信し、
前記更新部は、前記第１通信部が受信した前記判断結果が更新認証の場合、前記更新プログラムによる前記プログラムの更新を行う請求項１又は２に記載の作業機のプログラム更新システム。
【請求項４】
前記第２通信部は、第２秘密鍵で暗号化された前記判断結果と、前記第２秘密鍵と対応する第２公開鍵とを送信し、
前記第１通信部は、前記第２公開鍵を受信し、
前記制御装置は、前記第２公開鍵による前記判断結果の復号を行い、
前記更新部は、前記判断結果が更新認証の場合、前記更新プログラムによる前記プログラムの更新を行う請求項１〜３のいずれか１項に記載の作業機のプログラム更新システム。
【請求項５】
前記制御装置は、前記第１通信部を制御する通信制御部を有し、
前記更新部は、前記判断結果が更新認証の場合、前記更新プログラムによる前記通信制御部のプログラムの更新を行う請求項１〜４のいずれか１項に記載の作業機のプログラム更新システム。
【請求項６】
前記制御装置は、前記作業機に設けられた原動機と、走行装置と、作業装置と、のうち少なくとも１以上を制御する作業制御部を有し、
前記更新部は、前記通信制御部から前記更新プログラムを取得し、前記判断結果が更新認証の場合、前記更新プログラムによる前記作業制御部のプログラムの更新を行う請求項１〜５のいずれか１項に記載の作業機のプログラム更新システム。
【請求項７】
前記通信制御部に設けられ、且つ、前記取得部が取得した前記更新プログラムを記憶する第１記憶部を備え、
前記第１記憶部は、第１記憶領域と、前記第１記憶領域と異なる第２記憶領域とを有し、
前記第１記憶部は、前記第１通信部が受信した前記判断結果が更新認証の場合、前記取得部が取得した更新プログラムを前記第１記憶領域と、第２記憶領域とのいずれか一方から他方に変更し、
前記判断結果が、更新非認証の場合、前記取得部が取得した更新プログラムを前記第１記憶領域と、第２記憶領域とのいずれかから変更しない請求項５又は請求項６に記載の作業機のプログラム更新システム。
【請求項８】
前記作業制御部に設けられ、且つ、前記取得部が取得した前記更新プログラムを記憶する第２記憶部を備え、
前記第２記憶部は、第３記憶領域と、前記第３記憶領域と異なる第４記憶領域とを有し、
前記第２記憶部は、前記第１通信部が受信した前記判断結果が更新認証の場合、前記通信制御部から取得した更新プログラムを前記第３記憶領域と、第４記憶領域とのいずれか一方から他方に変更し、
前記判断結果が、更新非認証の場合、前記取得部が取得した更新プログラムを前記第１記憶領域と、第２記憶領域とのいずれかから変更しない請求項５〜７のいずれか１項に記載の作業機のプログラム更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業機のプログラム更新システム及び方法に関する。
【背景技術】
【０００２】
従来、特許文献１に開示されているソフトウェア更新装置は、サーバから送信され、分割された更新ソフトウェアの一方である第１更新ソフトウェア、及び、更新ソフトウェアをハッシュ化して得られるハッシュ値である第１認証データと、第１共通鍵を用いて暗号化して携帯端末から送信され、分割された更新ソフトウェアの他方である第２更新ソフトウェアとを受信する通信手段と、携帯端末における第１共通鍵とペアをなす第２共通鍵を用いて、第２更新ソフトウェアを復号する復号手段と、第１更新ソフトウェアと、復号された第２更新ソフトウェアとを統合して、分割前の更新ソフトウェアを生成する統合手段と、統合手段によって統合された更新ソフトウェアをハッシュ化して得られるハッシュ値である第２認証データを生成する認証データ生成手段と、第１認証データと、第２認証データとが一致するか否かを判定する判定手段と、第１認証データと第２認証データとが一致した場合、ソフトウェアの更新を行うソフトウェア更新手段と、を具備する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１５２４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されているソフトウェア更新装置は、ソフトウェアの不正な書換えを防止し、且つ、ユーザの利便性を向上させることができる。しかしながら、ソフトウェアの更新のため、ゲートウェイや各種ＥＣＵを備えており、当該ゲートウェイがソフトウェアの更新の認証を行う。つまり、ゲートウェイの処理能力をソフトウェアの更新のために、割く必要があった。
【０００５】
本発明は、このような従来技術の問題点を解決すべくなされたものであって、容易に作業機のプログラムを更新することができる作業機のプログラム更新システム及び方法の提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る作業機のプログラム更新システムは、作業機に設けられた制御装置のプログラムを更新する更新プログラムを取得する取得部と、前記取得部が取得した前記更新プログラムをハッシュ化し、前記ハッシュ化した更新プログラムを第１秘密鍵により暗号化することで認証データに変換する変換部と、前記作業機に設けられ、且つ、前記認証データと、前記第１秘密鍵と対応する第１公開鍵とを送信する第１通信部と、を備えている。
【０００７】
また、作業機のプログラム更新システムは、更新プログラムが記憶され、且つ、更新プログラムを送信する端末を備え、取得部は、端末から更新プログラムを取得する。
また、作業機のプログラム更新システムは、通信装置に設けられ、且つ、第１通信部から送信された認証データ及び第１公開鍵を第２通信部に送信する第３通信部を備え、第３通信部は、第２通信部から送信された当該判断結果を第１通信部に送信し、更新部は、第１通信部が受信した判断結果が更新認証の場合、更新プログラムによるプログラムの更新を行う。
【０００８】
また、第２通信部は、第２秘密鍵で暗号化された判断結果と、第２秘密鍵と対応する第２公開鍵とを送信し、第１通信部は、第２公開鍵を受信し、制御装置は、第２公開鍵による判断結果の復号を行い、更新部は、判断結果が更新認証の場合、更新プログラムによるプログラムの更新を行う。
また、制御装置は、第１通信部を制御する通信制御部を有し、更新部は、判断結果が更新認証の場合、更新プログラムによる通信制御部のプログラムの更新を行う。
【０００９】
また、制御装置は、作業機に設けられた原動機と、走行装置と、作業装置と、のうち少
なくとも１以上を制御する作業制御部を有し、更新部は、通信制御部から更新プログラムを取得し、判断結果が更新認証の場合、更新プログラムによる作業制御部のプログラムの更新を行う。
また、作業機のプログラム更新システムは、通信制御部に設けられ、且つ、取得部が取得した更新プログラムを記憶する第１記憶部を備え、第１記憶部は、第１記憶領域と、第１記憶領域と異なる第２記憶領域とを有し、第１記憶部は、第１通信部が受信した判断結果が更新認証の場合、取得部が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれか一方から他方に変更し、判断結果が、更新非認証の場合、取得部が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれかから変更しない。
【００１０】
また、作業機のプログラム更新システムは、作業制御部に設けられ、且つ、取得部が取得した更新プログラムを記憶する第２記憶部を備え、第２記憶部は、第３記憶領域と、第３記憶領域と異なる第４記憶領域とを有し、第２記憶部は、第１通信部が受信した判断結果が更新認証の場合、通信制御部から取得した更新プログラムを第３記憶領域と、第４記憶領域とのいずれか一方から他方に変更し、判断結果が、更新非認証の場合、取得部が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれかから変更しない。
【発明の効果】
【００１１】
上記作業機のプログラム更新システム及び方法によれば、容易に作業機のプログラムを更新することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態における作業機のプログラム更新システムの全体図である。
【図２Ａ】認証データの解析を示す図である。
【図２Ｂ】認証データの解析を示す図である。
【図３】第１実施形態における制御装置の一連の流れを示す図である。
【図４】第１実施形態における通信装置の一連の流れを示す図である。
【図５】第１実施形態におけるサーバの一連の流れを示す図である。
【図６】第２実施形態における作業機のプログラム更新システムの全体図である。
【図７】第２実施形態における制御装置の一連の流れを示す図である。
【図８】第３実施形態における作業機のプログラム更新システムの全体図である。
【図９】第３実施形態における制御装置の一連の流れを示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態について、図面を参照しながら説明する。
［第１実施形態］
図１は、作業機１のプログラム更新システムの全体図である。作業機１のプログラム更新システムは、制御装置１１が有する制御プログラムを更新するためのシステムである。
作業機１とは、圃場での耕耘や作物の収穫等を含む作業を行う農業機械や、建設機械や除雪機械等を含む。農業機械は、トラクタ、コンバイン、田植機等である。建設機械は、バックホー、コンパクトトラックローダ（ＣＴＬ）、スキッドステアローダ（ＳＳＬ）等である。以下、農業機械の１つであるトラクタ１を例にとり説明する。トラクタ１には、例えば、耕運機、モア、テッダー、レーキ等といった作業装置４を設けることが可能である。
【００１４】
まず、トラクタ１の全体構成について説明する。
トラクタ１は、走行装置５を有する走行車両（走行車体）と、ディーゼルエンジン等の原動機（駆動部）３と、を備えている。
トラクタ１は、制御装置１１と、第１通信部１２と、を備えている。また、トラクタ１は、スタータスイッチ１９と、スタータリレー２０と、を備えている。原動機３、作業装置４、走行装置５、制御装置１１、第１通信部１２、スタータスイッチ１９、スタータリレー２０は、ＣＡＮ等の車載ネットワークＮにより接続されている。つまり、例えば、原動機３、作業装置４、走行装置５等の車載ネットワークＮにより接続されている装置は、車載ネットワークＮ上の装置同士で情報の出力及び取得が可能である。
【００１５】
制御装置１１は、ＣＰＵや車両記憶部１３に記憶（保存）されているプログラム等から
構成され、作業機１に関する様々な制御を行う。制御装置１１は、例えば、操作装置から出力された操作情報に基づいて、作業装置４及び走行装置５の制御を行う。制御装置１１は、車両記憶部１３と、通信制御部１７と、を有している。車両記憶部１３は、不揮発性のメモリ等であって、作業機１の情報を含む様々な情報を記憶する。第１通信部１２は、例えば、通信装置３０に設けられた第３通信部３２と通信する装置である。第１通信部１２は、近距離、或いは、長距離の通信を行う装置である。第１通信部１２は、通信規格ＩＥＥＥ８０２．１５．１シリーズのＢｌｕｅｔｏｏｔｈ（登録商標）等により、第３通信部３２と無線通信を行う。なお、第１通信部１２は、第３通信部３２と有線通信を行う構成であってもよい。
【００１６】
スタータスイッチ１９は、原動機３を始動させるためのスイッチである。オペレータが、作業機１に設けられた運転席周りに設けられたキーシリンダに、エンジンキーを挿入し、当該エンジンキーの回転操作を行うと、スタータスイッチ１９は、スタータリレー２０に原動機始動の信号を送信する。
スタータリレー２０は、原動機３の始動を行う部品である。スタータスイッチ１９からスタータリレー２０に原動機始動の信号が出力されると、当該スタータリレー２０は、原動機３の始動を行う。なお、原動機駆動の１つである原動機始動は、エンジンキーをキーシリンダに挿入してスタータリレー２０をオンするような機械式（キーシリンダ式）に限定されず、無線通信によって原動機始動を許可又は禁止にするスマートエントリー式であってもよい。
【００１７】
端末２５は、例えば、ＰＣや比較的演算能力の高いスマートフォン（多機能携帯電話）等で構成されている。端末２５は、外部ネットワークと、端末記憶部２６と、を有している。外部ネットワークは、制御装置１１の外部ネットワークと接続可能であって、端末記憶部２６に記憶されている情報を制御装置１１に送信可能である。なお、外部ネットワーク同士の接続は、有線接続であってもよいし、無線接続であってもよい。これによって、制御装置１１は外部の端末２５から更新プログラムを取得することができる。このため、制御装置１１のプログラムの更新を容易に行うことができる。
【００１８】
端末記憶部２６は、不揮発性のメモリ等であって、制御装置１１のプログラムを更新する更新プログラムを記憶する。更新プログラムは、例えば作業機１の作業装置４や走行装置５等の制御パラメータを含むプログラムである。なお、端末２５は、ＰＣやスマートフォンに限定されず、外部ネットワークと端末記憶部２６を有していればよく、ＵＳＢメモリやＨＤＤ（ハードディスク）等といった記憶装置であってもよい。
【００１９】
通信装置３０は、例えば、ＰＣや比較的演算能力の高いスマートフォン（多機能携帯電話）等で構成されている。通信装置３０は、端末制御装置３１と、第３通信部３２とを有している。端末制御装置３１は、ＣＰＵやプログラム等から構成され、様々な演算処理を行う。
第３通信部３２は、第１通信部１２やサーバ４０の第２通信部４３と無線通信を行う装置である。第３通信部３２は、例えば、Ｗｉ-Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、登録商標）などにより第１通信部１２や第２通信部４３との無線通信を行う。尚、第３通信部３２は、データ通信網や携帯電話通信網などにより第１通信部１２や第２通信部４３との無線通信を行うものであってもよい。また、第３通信部３２は、第１通信部１２と有線通信を行う構成であってもよい。
【００２０】
サーバ４０は、サーバ制御装置４１と、第２通信部４３とを有している。サーバ制御装置４１は、ＣＰＵやサーバ記憶部４２に記憶されているプログラム等から構成され、様々な演算処理を行う。サーバ制御装置４１は、サーバ記憶部４２とを有している。サーバ記憶部４２は、不揮発性のメモリ等であって、種々のプログラムや、テーブル等を記憶する。
【００２１】
第２通信部４３は、例えば、通信規格であるＩＥＥＥ８０２．１１シリーズのＷｉ-Ｆｉ等により、通信装置３０の第３通信部３２や外部と無線通信を行うものである。なお、第２通信部４３は、例えば、携帯電話通信網やデータ通信網や携帯電話通信網などにより、第３通信部３２と無線通信を行うものであってもよい。
さて、本実施形態に係る作業機１のプログラム更新システムは、サーバ４０が、端末２５から制御装置１１に送信された更新プログラムによる制御装置１１のプログラムの更新を認証するか否かを判断し、当該判断結果に基づいて、通信制御部１７のプログラムを更新するシステムである。これによって、作業機１の外部ネットワークと内部ネットワークとの間に設けられたゲートウェイである通信制御部１７を配置することができる。このため、制御装置１１のプログラムを更新する際には、通信制御部１７を介する必要があるため、制御装置内部の作業制御部１８等を保護することができる。
【００２２】
また、本実施形態に係る作業機１のプログラム更新システムにおいて、作業機１からサーバ４０までの情報の伝達に、例えば片方向暗号方式を採用する。制御装置１１は、取得部１４と、変換部１５と、更新部１６と、を有している。取得部１４は、車両記憶部１３に記憶されているプログラム等から構成され、制御装置１１及び端末２５を介して端末２５から更新プログラムを取得する。変換部１５は、車両記憶部１３に記憶されているプログラム等から構成され、取得部１４が取得した更新プログラムをハッシュ化する。また、変換部１５は、当該ハッシュ化されたハッシュ値を、車両記憶部に記憶されている第１秘密鍵によって暗号化し、認証データに変換する。詳しく説明すると、変換部１５は、所定のハッシュ関数により一定のフォーマットへ不可逆の変換を行う。ハッシュ関数は、ｍｄ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｙｔｈｍ  ５）や、ｓｈａ（Ｓｅｃｕｒｅ Ｈａｓｈ Ａｌｇｏｒｉｔｈｍ）でも何でもよい。例えば、図２Ａに示すように、変換部１５は、取得部１４が取得した更新プログラムを、ハッシュ関数に基づいて、ハッシュ値に変更する。更新部１６は、車両記憶部１３に記憶されているプログラム等から構成され、第１通信部１２が第２通信部４３を介して受信した判断部４１ａの判断結果が、制御装置１１のプログラムの更新認証の場合、更新プログラムによる更新を行う。通信制御部１７は、ＣＰＵや車両記憶部１３に記憶されているプログラム等から構成され、第１通信部１２に関する様々な制御を行う。
【００２３】
通信制御部１７は、作業機１の外部ネットワークと内部ネットワークとの間に設けられたゲートウェイであり、第１記憶部１７ａを有する。第１記憶部１７ａは、取得部１４が取得した更新プログラムを記憶する。このため、外部から制御装置１１に出力された更新プログラムを一旦、バッファしてサーバ４０からの認証がされるまで制御装置１１のプログラムを更新させないことができる。つまり、不正に改竄された更新プログラムを排除することができる。また、作業機外部のサーバ４０が制御装置１１のプログラムの更新認証を行うため、作業機自体には高度な暗号化装置を搭載しなくてもよい。
【００２４】
また、第１通信部１２は、第３通信部３２に対して、例えば、変換部１５が変換した認証データ、及び第１公開鍵を送信する。第１公開鍵は、第１秘密鍵と対応する。つまり、第１公開鍵により認証データをハッシュ値に復号することができる。
第３通信部３２は、例えば、第１通信部１２から認証データ及び第１公開鍵を受信する。第３通信部３２は、第２通信部４３に対して、当該第１通信部１２から受信した認証データ及び第１公開鍵を送信する。また、第３通信部３２は、第２通信部４３から判断部４１ａの判断結果含む情報を受信する。これによって、作業機自体に設けられた第１通信部１２が近距離通信である場合であっても、遠距離通信が可能な通信装置３０を介してサーバ４０と通信を行うことができる。このため、従来の作業機１の設けられた構成を応用することができ、作業機１に新たな構成を搭載する必要がない。
【００２５】
判断部４１ａは、第２通信部４３が受信した第１公開鍵により認証データの復号を行う。また、判断部４１ａは、第２通信部４３が受信した認証データの解析を行う。判断部４１ａは、端末２５から制御装置１１に送信された更新プログラムによる制御装置１１のプログラムの更新を認証するか否かの判断結果を出力する。詳しく説明すると、図２Ｂに示すように、判断部４１ａは、認証データの復号後のハッシュ値と、サーバ記憶部４２に記憶されているテーブルとが一致するか判断する。なお、更新プログラムに複数のバージョンが存在する場合、サーバ記憶部４２は、夫々の更新プログラムのバージョンに対応したテーブルを記憶する。このため、判断部４１ａは、認証データの復号後のハッシュ値と、夫々の更新プログラムのバージョンに対応したバージョンのテーブルとが一致するか判断
する。なお、判断部４１ａは、所定のハッシュ関数に基づいて、サーバ記憶部４２に記憶されている更新プログラムのハッシュ化を行い、当該ハッシュ化されたハッシュ値と、認証データの復号後のデータとの照合を行うものであってもよい。係る場合、判断部４１ａがハッシュ化に用いるハッシュ関数と、制御装置１１の変換部１５がハッシュ化に用いるハッシュ関数とは同一のものである。判断部４１ａは、認証データの復号後のハッシュ値と、サーバ記憶部４２に記憶されているテーブルとが一致する場合には、制御装置１１のプログラムの更新認証の判断結果を第２通信部４３に出力する。一方、判断部４１ａは、認証データの復号後のハッシュ値と、サーバ記憶部４２に記憶されているテーブルとが不一致の場合には、制御装置１１のプログラムの更新非認証の判断結果を第２通信部４３に出力する。
【００２６】
第２通信部４３は、例えば、第３通信部３２から第１公開鍵と認証データを受信する。また、第２通信部４３は、第３通信部３２に対して、判断部４１ａの判断結果を含む情報を送信する。
また、第１記憶部１７ａは、第１記憶領域と、第１記憶領域と異なる第２記憶領域と、を有する。第１記憶部１７ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合に、取得部１４が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれか一方から他方に変更する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証の場合、取得部１４が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれかから変更しない。具体的には、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第１記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第２記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第２記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第１記憶領域に記憶する。つまり、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証である場合には、当該更新プログラムは、一時保存され、次回取得される更新プログラムが異なる記憶領域に保存される。
【００２７】
一方、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第１記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第１記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第２記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第２記憶領域に記憶する。つまり、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、当該更新プログラムに、次回取得される更新プログラムが上書き保存される。これによって、次回に取得部１４が更新プログラムを取得すると、前回に、制御装置１１のプログラムの更新認証された更新プログラムは保存し、前回に、制御装置１１のプログラムの更新非認証された更新プログラムに上書きして新たな更新プログラムを保存することができる。このため、更新非認証の更新プログラム、即ち不要なプログラムを記憶領域から排除し、記憶領域の容量を確保することができる。
【００２８】
なお、第２通信部４３は、第２秘密鍵により暗号化された判断結果と、当該第２秘密鍵に対応する第２公開鍵と、を含む情報を送信するような構成であってもよい。第１通信部１２は、第３通信部３２を介して当該第２公開鍵を受信する。制御装置１１は、第２公開鍵により判断結果の復号を行い、当該判断結果に基づいて更新部１６に対してプログラムの更新を指示する。これによって、サーバ４０側から作業機１側への判断結果についても、本来非認証であるにもかかわらず認証と偽装された判断結果を排除することができる。このため、改竄された更新プログラムの排除精度を、より高めることができる。
【００２９】
以下、図３を用いて、作業機１における作業機１のプログラム更新システムの一連の動作について説明する。
制御装置１１が、制御装置１１の外部ネットワークと、端末２５の外部ネットワークとが接続されているか否かを確認する（Ｓ１０）。制御装置１１が外部ネットワークに接続がないと判断すると、制御装置１１は、エンジンキーの操作がされているか否かを判断する（Ｓ２０）。具体的には、制御装置１１は、エンジンキーをキーシリンダに挿入してスタータリレー２０をオンするような操作がされた場合、スタータリレー２０から制御装置１１に出力された信号に基づいて、エンジンキーの操作の有無を判断する。エンジンキー操作がある場合は、作業機１の動作を終了する。
【００３０】
一方、制御装置１１が外部ネットワークに接続があると判断すると、当該外部ネットワークを介して端末２５から更新プログラムを受信しているか否かを確認する（Ｓ１１）。
制御装置１１が端末２５から更新プログラムを受信していると判断すると、取得部１４が当該更新プログラムを取得し、第１記憶部１７ａが当該更新プログラムを記憶する（Ｓ１２）。
【００３１】
制御装置１１が第１秘密鍵を生成し、且つ第１公開鍵を生成する（Ｓ１３）。
変換部１５が更新プログラムを認証データに変換する（Ｓ１４）。詳しく説明すると、制御装置１１の外部ネットワークが受信した更新プログラムを取得部１４が取得する。変換部１５が、取得部１４の取得した更新プログラムをハッシュ化する。変換部１５が当該ハッシュ化したハッシュ値を第１秘密鍵により暗号化する。これによって、変換部１５は、更新プログラムを認証データに変換する。
【００３２】
第１通信部１２が第１公開鍵及び認証データを送信する（Ｓ１５）。詳しく説明すると、第１通信部１２は、制御装置１１から第１公開鍵を取得する。第１通信部１２は、変換部１５から認証データを取得する。第１通信部１２は、第３通信部３２に対して、当該取得した第１公開鍵と認証データとを送信する。
制御装置１１が判断結果を受信しているか否かを確認する（Ｓ１６）。具体的には、制御装置１１は、第１通信部１２が第３通信部３２から判断部４１ａの判断結果を受信しているか否かを確認する。
【００３３】
制御装置１１は、第１通信部１２が判断結果を受信している場合、当該判断結果が、制御装置１１のプログラムの更新認証であるか否かを確認する（Ｓ１７）。詳しく説明すると、制御装置１１は、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、更新プログラムを記憶する記憶領域の変更や、当該更新プログラムによる通信制御部１７のプログラムの更新を行なわず、エンジンキーの操作がされているか否かを判断する（Ｓ２０）。つまり、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、当該更新プログラムに、次回取得される更新プログラムが上書き保存される。具体的には、第１通信部１２が受信した判断結果が更新非認証であって、当該更新非認証の更新プログラムが第１記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第１記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第２記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第２記憶領域に記憶する。
【００３４】
一方、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証である場合、次回受信した場合の保存先を現在の保存先である記憶領域とは別の記憶領域に変更する（Ｓ１８）。言い換えれば、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証である場合には、当該更新プログラムは、一時保存され、次回受信される更新プログラムが異なる記憶領域に保存される。つまり、第１記憶部１７ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合に、取得部１４が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれか一方から他方に変更する。具体的には、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第１記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第２記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１の
プログラムの更新認証であって、当該更新認証の更新プログラムが第２記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第１記憶領域に記憶する。
【００３５】
更新部１６が、更新認証の更新プログラムに基づいて、通信制御部１７のプログラムの更新を行う（Ｓ１９）。
制御装置１１は、エンジンキーの操作がされているか否かを判断する（Ｓ２０）。
以下、図４を用いて、通信装置３０における作業機１のプログラム更新システムの一連の動作について説明する。
【００３６】
端末制御装置３１が、更新プログラムの更新認証が可能であるか否かを判断する（Ｓ３０）。
端末制御装置３１が、更新プログラムの更新認証が可能であると判断した場合、端末制御装置３１は、第３通信部３２が、第１公開鍵及び認証データを受信しているか否かを判断する（Ｓ３１）。具体的には、端末制御装置３１は、第３通信部３２が第１通信部１２から第１公開鍵及び認証データを受信しているか否かを判断する。つまり、通信装置３０が更新プログラムの更新認証よりも優先すべき処理を行っている場合には、当該更新認証よりも、他の処理が優先される。
【００３７】
端末制御装置３１が、第１公開鍵及び認証データを受信していると判断した場合、第３通信部３２は、第２通信部４３に対して、当該第１公開鍵及び認証データを送信する（Ｓ３２）。
端末制御装置３１は、第３通信部３２が第２通信部４３から判断結果を受信しているか否かを判断する（Ｓ３３）。
【００３８】
端末制御装置３１が、第３通信部３２が第２通信部４３から判断結果を受信していると判断した場合、第３通信部３２は、第１通信部１２に対して、当該判断結果を送信する（Ｓ３４）。
以下、図５を用いて、サーバ４０における作業機１のプログラム更新システムの一連の動作について説明する。
【００３９】
サーバ制御装置４１が、更新プログラムの更新認証が可能であるか否かを判断する（Ｓ４０）。
サーバ制御装置４１が、更新プログラムの更新認証が可能であると判断した場合、サーバ制御装置４１は、第２通信部４３が、第１公開鍵及び認証データを受信しているか否かを判断する（Ｓ４１）。具体的には、サーバ制御装置４１は、第２通信部４３が第３通信部３２から第１公開鍵及び認証データを受信しているか否かを判断する。つまり、サーバ４０が更新プログラムの更新認証よりも優先すべき処理を行っている場合には、当該更新認証よりも、他の処理が優先される。
【００４０】
判断部４１ａが、第１公開鍵により認証データの復号を行い、且つ、当該復号されたデータの解析を行う（Ｓ４２）。判断部４１ａは、第２通信部４３が受信した第１公開鍵により認証データの復号を行う。判断部４１ａは、サーバ記憶部４２に記憶されているテーブルと、第１公開鍵により復号されたデータとの照合を行う。
判断部４１ａが、更新プログラムによる制御装置１１のプログラムの更新を認証するか否かを判断する（Ｓ４３）。判断部４１ａは、復号されたハッシュ値とサーバ記憶部４２に記憶されているテーブルとが一致する場合には、制御装置１１のプログラムの更新認証の判断結果を出力する。一方、判断部４１ａは、復号されたハッシュ値とサーバ記憶部４２に記憶されているテーブルとが不一致の場合には、制御装置１１のプログラムの更新非認証の判断結果を出力する。
【００４１】
判断部４１ａが当該更新プログラムによる制御装置１１のプログラムの更新を認証する場合、第２通信部４３が、制御装置１１のプログラムの更新認証の判断結果を送信する（Ｓ４４）。具体的に説明すると、第２通信部４３は、判断部４１ａから当該更新認証の判断結果を取得する。第２通信部４３は、第３通信部３２に対して、当該取得した更新認証の判断結果を送信する。
【００４２】
判断部４１ａが当該更新プログラムによる制御装置１１のプログラムの更新を認証しな
い場合、第２通信部４３が、制御装置１１のプログラムの更新非認証の判断結果を送信する（Ｓ４５）。具体的に説明すると、第２通信部４３は、判断部４１ａから当該更新非認証の判断結果を取得する。第２通信部４３は、第３通信部３２に対して、当該取得した更新非認証の判断結果を送信する。
【００４３】
なお、上述した作業機１のプログラム更新システムでは、作業機１とサーバ４０とが通信装置３０を介して通信を行うが、作業機１とサーバ４０とが第１公開鍵、認証データ、判断結果等を送受信できればよく、作業機１とサーバ４０とが直接通信するものであってもよく、複数の通信装置３０を介して間接通信するものであってもよい。
上記作業機１のプログラム更新システムは、取得部１４と、変換部１５と、第１通信部１２と、第２通信部４３と、判断部４１ａと、更新部１６と、を備える。これによって、制御装置１１が更新プログラムを取得し、外部のサーバ４０に設けられた判断部４１ａに認証されると、更新部１６が制御装置１１のプログラムを更新する。このため、外部から制御装置１１に出力された更新プログラムを一旦、バッファしてサーバ４０からの認証がされるまで制御装置１１のプログラムを更新させないことができる。つまり、不正に改竄された更新プログラムを排除することができる。また、作業機外部のサーバ４０が制御装置１１の更新の認証を行うため、作業機自体には高度な暗号化装置を搭載しなくてもよい。
【００４４】
また、作業機１のプログラム更新システムは、端末２５を備え、取得部１４は、端末２５から更新プログラムを取得する。これによって、制御装置１１は外部から更新プログラムを取得することができる。このため、制御装置１１のプログラムの更新を容易に行うことができる。
また、作業機１のプログラム更新システムは、第３通信部３２を備える。第３通信部３２は、第２通信部４３から送信された当該判断結果を第１通信部１２に送信する。更新部１６は、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合、更新プログラムによるプログラムの更新を行う。これによって、作業機１自体に設けられた第１通信部１２が近距離通信である場合であっても、遠距離通信が可能な通信装置３０を介してサーバ４０と通信を行うことができる。このため、従来の作業機１の設けられた構成を応用することができ、作業機１に新たな構成を搭載する必要がない。
【００４５】
また、第２通信部４３は、第２公開鍵を送信し、第１通信部１２は、第２公開鍵を受信する。制御装置１１は、第２公開鍵による認証データの復号を行う。更新部１６は、制御装置１１の判断結果が、制御装置１１のプログラムの更新認証の場合、更新プログラムによるプログラムの更新を行う。これによって、サーバ４０側から作業機１側への判断結果についても、本来非認証であるにもかかわらず認証と偽装された判断結果を排除することができる。このため、改竄された更新プログラムの排除精度を、より高めることができる。
【００４６】
また、制御装置１１は、第１通信部１２を制御する通信制御部１７を有する。更新部１６は、判断結果が、制御装置１１のプログラムの更新認証の場合、更新プログラムによる通信制御部１７のプログラムの更新を行う。これによって、作業機１の外部ネットワークと内部ネットワークとの間に設けられたゲートウェイである通信制御部１７を配置することができる。このため、制御装置１１のプログラムを更新する際には、通信制御部１７を介する必要があるため、制御装置内部の作業制御部１８等を保護することができる。
【００４７】
また、作業機１のプログラム更新システムは、第１記憶部１７ａを備える。第１記憶部１７ａは、第１記憶領域と、第１記憶領域と異なる第２記憶領域とを有する。第１記憶部１７ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合、取得部１４が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれか一方から他方に変更する。判断結果が、制御装置１１のプログラムの更新非認証の場合、取得部１４が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれかから変更しない。これによって、次回に取得部１４が更新プログラムを取得すると、前回に更新認証された更新プログラムは保存し、前回に更新非認証された更新プログラムに上書きして新たな更新プログラムを保存することができる。このため、更新非認証の更新プ
ログラム、即ち不要なプログラムを記憶領域から排除し、記憶領域の容量を確保することができる。
【００４８】
［第２実施形態］
図６は、本発明の第２実施形態に係る作業機１のプログラム更新システムの全体図を示している。本実施形態に係る作業機１のプログラム更新システムは、通信制御部１７を介して作業制御部１８のプログラムを更新するシステムである。これによって、ゲートウェイである通信制御部１７を介して、作業制御部１８のプログラムを更新することができる。このため、作業制御部１８のプログラムを間接的に更新することができる。つまり、制御装置１１内部のＥＣＵ群である作業制御部１８を保護することができる。なお、第１実施形態と同様の構成については同じ符号を付し、その説明は省略する。
【００４９】
作業制御部１８は、ＣＰＵや車両記憶部１３に記憶されているプログラム等から構成され、原動機３、作業装置４、走行装置５に関する様々な制御を行う。また、作業制御部１８は、制御装置１１内部のＥＣＵ群である。また、作業制御部１８は、第２記憶部１８ａを有する。第２記憶部１８ａは、第３記憶領域と、第３記憶領域と異なる第４記憶領域とを有する。第２記憶部１８ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合に、取得部１４が取得した更新プログラムを第３記憶領域と、第４記憶領域とのいずれか一方から他方に変更する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証の場合、取得部１４が取得した更新プログラムを第３記憶領域と、第４記憶領域とのいずれかから変更しない。具体的には、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第３記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第４記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第３記憶領域に記憶する。つまり、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証である場合には、当該更新プログラムは、一時保存され、次回取得される更新プログラムが異なる記憶領域に保存される。
【００５０】
一方、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第３記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第３記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第４記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。つまり、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、当該更新プログラムに、次回取得される更新プログラムが上書き保存される。これによって、次回に取得部１４が更新プログラムを取得すると、前回に、制御装置１１のプログラムの更新認証された更新プログラムは保存し、前回に更新非認証された更新プログラムに上書きして新たな更新プログラムを保存することができる。このため、更新非認証の更新プログラム、即ち不要なプログラムを記憶領域から排除し、記憶領域の容量を確保することができる。
【００５１】
以下、図７を用いて、作業機１における作業機１のプログラム更新システムの一連の動作について説明する。
制御装置１１が制御装置１１の外部ネットワークと、端末２５の外部ネットワークとが接続されているか否かを確認する（Ｓ１１０）。制御装置１１が外部ネットワークに接続がないと判断すると、制御装置１１は、エンジンキーの操作がされているか否かを判断する（Ｓ１２１）。具体的には、制御装置１１は、エンジンキーをキーシリンダに挿入してスタータリレー２０をオンするような操作がされた場合、スタータリレー２０から制御装置１１に出力された信号に基づいて、エンジンキーの操作の有無を判断する。エンジンキー操作がある場合は、作業機１の動作を終了する。
【００５２】
一方、制御装置１１が外部ネットワークに接続があると判断すると、当該外部ネットワークを介して端末２５から更新プログラムを受信しているか否かを確認する（Ｓ１１１）。
制御装置１１が端末２５から更新プログラムを受信していると判断すると、取得部１４が当該更新プログラムを取得し、第１記憶部１７ａが当該更新プログラムを記憶する（Ｓ１１２）。
【００５３】
制御装置１１が第１秘密鍵を生成し、且つ第１秘密鍵に対応する第１公開鍵を生成する（Ｓ１１３）。
変換部１５が更新プログラムを認証データに変換する（Ｓ１１４）。詳しく説明すると、外部ネットワークが受信した更新プログラムを取得部１４が取得する。変換部１５が、取得部１４の取得した更新プログラムをハッシュ化する。変換部１５が当該ハッシュ値を第１秘密鍵により暗号化する。これによって、変換部１５は、更新プログラムを認証データに変換する。
【００５４】
第１通信部１２が第１公開鍵及び認証データを送信する（Ｓ１１５）。詳しく説明すると、第１通信部１２は、制御装置１１から第１公開鍵を取得する。第１通信部１２は、変換部１５から認証データを取得する。第１通信部１２は、第３通信部３２に対して、当該取得した第１公開鍵と認証データとを送信する。
制御装置１１が判断結果を受信しているか否かを確認する（Ｓ１１６）。具体的には、制御装置１１は、第１通信部１２が第３通信部３２から判断部４１ａの判断結果を受信しているか否かを確認する。
【００５５】
制御装置１１は、第１通信部１２が判断結果を受信している場合、当該判断結果が、制御装置１１のプログラムの更新認証であるか否かを確認する（Ｓ１１７）。詳しく説明すると、制御装置１１は、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、更新プログラムを記憶する記憶領域の変更や、当該更新プログラムによる作業制御部１８のプログラムの更新を行なわず、エンジンキーの操作がされているか否かを判断する（Ｓ１２１）。つまり、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、当該更新プログラムに、次回取得される更新プログラムが上書き保存される。具体的には、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第１記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第１記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第２記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第２記憶領域に記憶する。一方、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第３記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第４記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。
【００５６】
一方、受信した判断結果が、制御装置１１のプログラムの更新認証である場合、次回受信した場合の保存先を現在の保存先である記憶領域とは別の記憶領域に変更する（Ｓ１１８）。言い換えれば、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証である場合には、当該更新プログラムは、一時保存され、次回受信される更新プログラムが異なる記憶領域に保存される。つまり、第１記憶部１７ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合に、取得部１４が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれか一方から他方に変更する。具体的には、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第１記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第２記憶領域に
記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第２記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第１記憶領域に記憶する。第２記憶部１８ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合に、取得部１４が取得した更新プログラムを第３記憶領域と、第４記憶領域とのいずれか一方から他方に変更する。具体的には、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第３記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第４記憶領域に記憶されている場合、第１記憶部１７ａは、取得部１４が次回に取得する更新プログラムを第３記憶領域に記憶する。
【００５７】
通信制御部１７が第１記憶部１７ａに記憶されている更新プログラムを、作業制御部１８に出力する（Ｓ１１９）。作業制御部１８は、通信制御部１７から取得した更新プログラムを第２記憶部１８ａに記憶する。
更新部１６が、制御装置１１のプログラムの更新認証の更新プログラムに基づいて、作業制御部１８のプログラムの更新を行う（Ｓ１２０）。
【００５８】
制御装置１１は、エンジンキーの操作がされているか否かを判断する（Ｓ１２１）。
上記作業機１のプログラム更新システムにおいて、制御装置１１は、作業機１に設けられた原動機３と、走行装置５と、作業装置４と、のうち少なくとも１以上を制御する作業制御部１８を有し、更新部１６は、通信制御部１７から更新プログラムを取得し、判断結果が、制御装置１１のプログラムの更新認証の場合、更新プログラムによる作業制御部１８のプログラムの更新を行う。これによって、ゲートウェイである通信制御部１７を介して、作業制御部１８のプログラムを更新することができる。このため、作業制御部１８のプログラムを間接的に更新することができる。つまり、制御装置内部のＥＣＵ群である作業制御部１８を保護することができる。
【００５９】
また、作業機１のプログラム更新システムは、作業制御部１８に設けられ、且つ、取得部１４が取得した更新プログラムを記憶する第２記憶部１８ａを備え、第２記憶部１８ａは、第３記憶領域と、第３記憶領域と異なる第４記憶領域とを有し、第２記憶部１８ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合、通信制御部１７から取得した更新プログラムを第３記憶領域と、第４記憶領域とのいずれか一方から他方に変更し、判断結果が、制御装置１１のプログラムの更新非認証の場合、取得部１４が取得した更新プログラムを第１記憶領域と、第２記憶領域とのいずれかから変更しない。これによって、次回に取得部１４が更新プログラムを取得すると、前回に更新認証された更新プログラムは保存し、前回に更新非認証された更新プログラムに上書きして新たな更新プログラムを保存することができる。このため、更新非認証の更新プログラム、即ち不要なプログラムを記憶領域から排除し、記憶領域の容量を確保することができる。
【００６０】
［第３実施形態］
図８は、本発明の第３実施形態に係る作業機１のプログラム更新システムの全体図を示している。本実施形態に係る作業機１のプログラム更新システムは、通信制御部１７を介さず、作業制御部１８のプログラムを更新するシステムである。なお、第１実施形態又は第２実施形態と同様の構成については同じ符号を付し、その説明は省略する。
【００６１】
以下、図９を用いて、作業機１における作業機１のプログラム更新システムの一連の動作について説明する。
制御装置１１が制御装置１１の外部ネットワークと、端末２５の外部ネットワークとが接続されているか否かを確認する（Ｓ２１０）。制御装置１１が外部ネットワークに接続がないと判断すると、制御装置１１は、エンジンキーの操作がされているか否かを判断する（Ｓ２２０）。具体的には、制御装置１１は、エンジンキーをキーシリンダに挿入してスタータリレー２０をオンするような操作がされた場合、スタータリレー２０から制御装
置１１に出力された信号に基づいて、エンジンキーの操作の有無を判断する。エンジンキー操作がある場合は、作業機１の動作を終了する。
【００６２】
一方、制御装置１１が外部ネットワークに接続があると判断すると、当該外部ネットワークを介して端末２５から更新プログラムを受信しているか否かを確認する（Ｓ２１１）。
制御装置１１が端末２５から更新プログラムを受信していると判断すると、取得部１４が当該更新プログラムを取得し、第１記憶部１７ａが当該更新プログラムを記憶する（Ｓ２１２）。
【００６３】
制御装置１１が第１秘密鍵を生成し、且つ第１秘密鍵に対応する第１公開鍵を生成する（Ｓ２１３）。
変換部１５が更新プログラムを認証データに変換する（Ｓ２１４）。詳しく説明すると、外部ネットワークが受信した更新プログラムを取得部１４が取得する。変換部１５が、取得部１４の取得した更新プログラムをハッシュ化する。変換部１５が当該ハッシュ値を第１秘密鍵により暗号化する。これによって、変換部１５は、更新プログラムを認証データに変換する。
【００６４】
第１通信部１２が第１公開鍵及び認証データを送信する（Ｓ２１５）。詳しく説明すると、第１通信部１２は、制御装置１１から第１公開鍵を取得する。第１通信部１２は、変換部１５から認証データを取得する。第１通信部１２は、第３通信部３２に対して、当該取得した第１公開鍵と認証データとを送信する。
制御装置１１が判断結果を受信しているか否かを確認する（Ｓ２１６）。具体的には、制御装置１１は、第１通信部１２が第３通信部３２から判断部４１ａの判断結果を受信しているか否かを確認する。
【００６５】
制御装置１１は、第１通信部１２が判断結果を受信している場合、当該判断結果が、制御装置１１のプログラムの更新認証であるか否かを確認する（Ｓ２１７）。詳しく説明すると、制御装置１１は、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、更新プログラムを記憶する記憶領域の変更や、当該更新プログラムによる作業制御部１８のプログラムの更新を行なわず、エンジンキーの操作がされているか否かを判断する（Ｓ２２０）。つまり、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証である場合には、当該更新プログラムに、次回取得される更新プログラムが上書き保存される。具体的には、第１通信部１２が受信した判断結果が更新非認証であって、当該更新非認証の更新プログラムが第３記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新非認証であって、当該更新非認証の更新プログラムが第４記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。
【００６６】
一方、受信した判断結果が、制御装置１１のプログラムの更新認証である場合、次回受信した場合の保存先を現在の保存先である記憶領域とは別の記憶領域に変更する（Ｓ２１８）。言い換えれば、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証である場合には、当該更新プログラムは、一時保存され、次回受信される更新プログラムが異なる記憶領域に保存される。つまり、第２記憶部１８ａは、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証の場合に、取得部１４が取得した更新プログラムを第３記憶領域と、第４記憶領域とのいずれか一方から他方に変更する。具体的には、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第３記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第４記憶領域に記憶する。また、第１通信部１２が受信した判断結果が、制御装置１１のプログラムの更新認証であって、当該更新認証の更新プログラムが第４記憶領域に記憶されている場合、第２記憶部１８ａは、取得部１４が次回に取得する更新プログラムを第３記憶領域に記憶する。
【００６７】
更新部１６が、制御装置１１のプログラムの更新認証の更新プログラムに基づいて、作業制御部１８のプログラムの更新を行う（Ｓ２１９）。
制御装置１１は、エンジンキーの操作がされているか否かを判断する（Ｓ２２０）。
以上、本発明について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６８】
１  作業機
３  原動機
４  作業装置
５  走行装置
１１  制御装置
１２  第１通信部
１４  取得部
１５  変換部
１６  更新部
１７  通信制御部
１７ａ  第１記憶部
１８  作業制御部
１８ａ  第２記憶部
２５  端末
３０  通信装置
３２  第３通信部
４０  サーバ
４１ａ  判断部
４３  第２通信部
【図１】
2019185401.tif 000003
【図２Ａ】
2019185401.tif 000004
【図２Ｂ】
2019185401.tif 000005
【図３】
2019185401.tif 000006
【図４】
2019185401.tif 000007
【図５】
2019185401.tif 000008
【図６】
2019185401.tif 000009
【図７】
2019185401.tif 000010
【図８】
2019185401.tif 000011
【図９】
2019185401.tif 000012