(57)【要約】  【課題】移動局での通信によるプログラム変更をより安全に、少ないデータ量で実現することができるプログラム動作変更方法を提供する。  【解決手段】基地局から修正プログラム及び動作変更指示情報が一斉に移動局に送信されると、移動局は修正プログラムをＳＲＡＭの修正プログラム格納部に記憶する（ステップ１０２）。そして、基地局から受信した情報に動作変更指示があるか否かを判別し（ステップ１０３）、基地局から動作変更指示があった場合には、移動局はＲＡＭ上に展開されている制御プログラムをＳＲＡＭの修正プログラム格納部に記憶されている修正プログラムで変更する（ステップ１０４）。  【選択図】図３
2005085054.tif 000002
【特許請求の範囲】
【請求項１】
プログラムによって動作するＣＰＵを搭載した機器よりなる移動局と、
上記移動局との間で情報を送受信可能な通信手段を備えた基地局からなり、
動作時にＲＯＭに記憶されたプログラムをＲＡＭに転送し、ＲＡＭ上で動作する上記機器のプログラムの動作変更方法であって、
上記基地局から上記移動局にプログラム修正情報を送信し、
上記移動局が受信した修正情報によってＲＡＭ内のプログラム情報を変更することを特徴とするプログラム動作変更方法。
【請求項２】
請求項１に記載のプログラム動作変更方法において、
上記移動局が上記基地局から送信されたプログラム修正情報を電源オフ時にも保持可能なメモリに保存し、
修正情報があるときは、上記移動局が機器の起動時に、ＲＯＭに記憶されたプログラムをＲＡＭに転送した後、ＲＡＭに展開されたプログラム情報を上記メモリに記憶されたプログラム修正情報によって変更することを特徴とするプログラム動作変更方法。
【請求項３】
請求項１に記載のプログラム動作変更方法において、
上記基地局がプログラム修正情報と、修正情報により動作を変更する動作変更指示情報を送信し、
上記移動局が上記動作変更指示情報を受信した場合にのみ、ＲＡＭ内のプログラム情報を変更することを特徴とするプログラム動作変更方法。
【請求項４】
請求項１に記載のプログラム動作変更方法において、
上記基地局がプログラム修正情報及び指定移動局情報を送信し、
上記移動局が、自局が上記基地局の指定移動局情報によって指定された移動局か否かを判断し、
自局が指定移動局のときのみ、ＲＡＭ内のプログラム情報を変更することを特徴とするプログラム動作変更方法。
【請求項５】
請求項１に記載のプログラム動作変更方法において、
上記基地局がプログラム修正情報及び指定エリア情報を送信し、
上記移動局が位置検出手段により検出した自局の位置により、自局が上記基地局の指定エリア情報によって指定されたエリア内にいるか否かを判断し、
指定エリア内にいるときのみ、ＲＡＭ内のプログラム情報を変更することを特徴とするプログラム動作変更方法。
【請求項６】
請求項１に記載のプログラム動作変更方法において、
上記移動局が移動局の機器の稼動状態に応じて、ＲＡＭ内のプログラム情報を変更するか否かを決定することを特徴とするプログラム動作変更方法。
【請求項７】
請求項１に記載のプログラム動作変更方法において、
上記移動局が位置検出手段により検出した自局の位置情報を上記基地局に送信し、
上記基地局が上記移動局からの位置情報に基づき所定のエリア内の移動局のみに、プログラム修正情報を送信することを特徴とするプログラム動作変更方法。
【請求項８】
請求項１に記載のプログラム動作変更方法において、
上記移動局が移動局の機器の稼動状態情報を上記基地局に送信し、
上記基地局が上記移動局からの稼動状態情報に基づき所定の稼動状態の移動局のみに、プログラム修正情報を送信することを特徴とするプログラム動作変更方法。
【請求項９】
請求項１に記載のプログラム動作変更方法において、
上記基地局がプログラム修正情報とともに、該当する修正プログラムの識別コードを送信し、
上記移動局がプログラム修正情報により動作している場合には、その修正情報の識別コードを上記基地局に送信することを特徴とするプログラム動作変更方法。
【請求項１０】
請求項１〜請求項８のいずれかに記載のプログラム動作変更方法において、
上記移動局が修正プログラムにより正常に起動、終了したか否かを判別し、正常に起動、終了していない場合には、当該修正プログラムによるプログラム変更を実行しないことを特徴とするプログラム動作変更方法。
【請求項１１】
請求項１０に記載のプログラム動作変更方法において、
上記移動局が修正プログラムの識別コード毎に正常起動、終了を管理し、正常終了していないことを検知した場合には、当該識別コードの修正プログラムによるプログラム変更を実行しないことを特徴とするプログラム動作変更方法。
【請求項１２】
請求項１〜請求項８のいずれかに記載のプログラム動作変更方法において、
上記移動局がプログラムが正常に起動、終了したか否かを判別し、正常に起動、終了した場合には、上記基地局に起動、終了を通知し、
上記基地局が上記移動局の起動、終了通知により、移動局の異常終了を検知することを特徴とするプログラム動作変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムによって動作するＣＰＵを搭載した機器よりなる移動局と、移動局との間で情報を送受信可能な通信手段を備えた基地局よりなり、移動局が基地局より送信されたプログラム修正情報によってプログラムを変更するプログラム動作変更方法に関する。
【背景技術】
【０００２】
車両に搭載された機器は、一般的にメモリ等の記憶素子に記憶されている制御手順（以下、プログラムという。）に従い制御動作を行っている。制御プログラムの記憶媒体としては、読み込み専用のＲＯＭ（リード  オンリー  メモリ）が多く使用されていたが、近年、製品発売後のプログラム書き換えによる機能拡張対応のために、フラッシュＲＯＭ等の書き換えが可能なメモリを使用して新たなプログラムを直接フラッシュＲＯＭに書き込むことが行われている。
【０００３】
このようなＲＯＭあるいはフラッシュＲＯＭに記憶された機器の動作プログラムを修正する場合には、新たなプログラムが書き込まれたＲＯＭへの交換、フラッシュＲＯＭの書換え等といった端末での特別な作業を行うことにより対処しているが、ＲＯＭ交換、フラッシュＲＯＭの書換え等の作業は特別な技術を要し、手間暇がかかる作業であった。
例えば、車両等の移動局のソフトウェアのプログラム変更を行うときは、移動局の機器を一度回収し、その機器に精通した技術者がＲＯＭあるいは基板等の交換を行うか、あるいは別の機器を接続し、フラッシュＲＯＭの内容を書き換えるといった処理が必要であった。しかし、全車両でこれらの作業を行うには、多くの時間や費用がかかり、特に、業務に使用している機器の場合は、業務を中断することになり、顧客への影響も大きい。
【０００４】
一方、輸配送業やタクシーにおいては、各車両に通信手段の搭載が必須となっているので、この通信手段を使って各車両にプログラム修正情報を送信してプログラムを変更することが提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２０００−１３２４０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の通信手段を使用したプログラム変更方法では、送信するデータが多くなるとともに、送信されてきたプログラム修正情報でフラッシュＲＯＭのプログラム自体を書き換えてしまうため、通信路でのエラーが発生したり、修正プログラム自体にエラーがあった場合には、その機器が動作しなくなる、という危険性があった。
【０００６】
本発明は、上記の問題に鑑みてなされたもので、移動局での通信によるプログラム変更をより安全に、少ないデータ量で実現することができるプログラム動作変更方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的を達成するため、本発明に係るプログラム動作変更方法（１）は、
プログラムによって動作するＣＰＵを搭載した機器よりなる移動局と、
上記移動局との間で情報を送受信可能な通信手段を備えた基地局からなり、
動作時にＲＯＭに記憶されたプログラムをＲＡＭに転送し、ＲＡＭ上で動作する上記機器のプログラムの動作変更方法であって、
上記基地局から上記移動局にプログラム修正情報を送信し、
上記移動局が受信した修正情報によってＲＡＭ内のプログラム情報を変更することを特徴とする。
【０００８】
また、本発明に係るプログラム動作変更方法（２）は、プログラム動作変更方法（１）において、
上記移動局が上記基地局から送信されたプログラム修正情報を電源オフ時にも保持可能なメモリに保存し、
修正情報があるときは、上記移動局が機器の起動時に、ＲＯＭに記憶されたプログラムをＲＡＭに転送した後、ＲＡＭに展開されたプログラム情報を上記メモリに記憶されたプログラム修正情報によって変更することを特徴とする。
【０００９】
また、本発明に係るプログラム動作変更方法（３）は、プログラム動作変更方法（１）において、
上記基地局がプログラム修正情報と、修正情報により動作を変更する動作変更指示情報を送信し、
上記移動局が上記動作変更指示情報を受信した場合にのみ、ＲＡＭ内のプログラム情報を変更することを特徴とする。
【００１０】
また、本発明に係るプログラム動作変更方法（４）は、プログラム動作変更方法（１）において、
上記基地局がプログラム修正情報及び指定移動局情報を送信し、
上記移動局が、自局が上記基地局の指定移動局情報によって指定された移動局か否かを判断し、
自局が指定移動局のときのみ、ＲＡＭ内のプログラム情報を変更することを特徴とする。
【００１１】
また、本発明に係るプログラム動作変更方法（５）は、プログラム動作変更方法（１）において、
上記基地局がプログラム修正情報及び指定エリア情報を送信し、
上記移動局が位置検出手段により検出した自局の位置により、自局が上記基地局の指定エリア情報によって指定されたエリア内にいるか否かを判断し、
指定エリア内にいるときのみ、ＲＡＭ内のプログラム情報を変更することを特徴とする。
【００１２】
また、本発明に係るプログラム動作変更方法（６）は、プログラム動作変更方法（１）において、
上記移動局が移動局の機器の稼動状態に応じて、ＲＡＭ内のプログラム情報を変更するか否かを決定することを特徴とする。
【００１３】
また、本発明に係るプログラム動作変更方法（７）は、プログラム動作変更方法（１）において、
上記移動局が位置検出手段により検出した自局の位置情報を上記基地局に送信し、
上記基地局が上記移動局からの位置情報に基づき所定のエリア内の移動局のみに、プログラム修正情報を送信することを特徴とする。
【００１４】
また、本発明に係るプログラム動作変更方法（８）は、プログラム動作変更方法（１）において、
上記移動局が移動局の機器の稼動状態情報を上記基地局に送信し、
上記基地局が上記移動局からの稼動状態情報に基づき所定の稼動状態の移動局のみに、プログラム修正情報を送信することを特徴とする。
【００１５】
また、本発明に係るプログラム動作変更方法（９）は、プログラム動作変更方法（１）において、
上記基地局がプログラム修正情報とともに、該当する修正プログラムの識別コードを送信し、
上記移動局がプログラム修正情報により動作している場合には、その修正情報の識別コードを上記基地局に送信することを特徴とする。
【００１６】
また、本発明に係るプログラム動作変更方法（１０）は、プログラム動作変更方法（１）〜（８）のいずれかにおいて、
上記移動局が修正プログラムにより正常に起動、終了したか否かを判別し、正常に起動、終了していない場合には、当該修正プログラムによるプログラム変更を実行しないことを特徴とする。
【００１７】
また、本発明に係るプログラム動作変更方法（１１）は、プログラム動作変更方法（１０）において、
上記移動局が修正プログラムの識別コード毎に正常起動、終了を管理し、正常終了していないことを検知した場合には、当該識別コードの修正プログラムによるプログラム変更を実行しないことを特徴とする。
【００１８】
また、本発明に係るプログラム動作変更方法（１２）は、プログラム動作変更方法（１）〜（８）のいずれかにおいて、
上記移動局がプログラムが正常に起動、終了したか否かを判別し、正常に起動、終了した場合には、上記基地局に起動、終了を通知し、
上記基地局が上記移動局の起動、終了通知により、移動局の異常終了を検知することを特徴とする。
【発明の効果】
【００１９】
本発明に係るプログラム動作変更方法（１）、（２）によれば、動作時にＲＯＭに記憶されたプログラムをＲＡＭに転送し、移動局が受信した修正情報によってＲＡＭ内のプログラム情報を変更するので、プログラムを記録している主メモリを書き換えることなく、移動局の動作を変更可能であり、プログラム変更作業工数を軽減できるとともに、エラーが発生しても修復が容易となる。
【００２０】
また、本発明に係るプログラム動作変更方法（３）によれば、基地局がプログラム修正情報と、修正情報により動作を変更する動作変更指示情報を送信するので、プログラム変更動作を基地局から制御可能であり、動作変更における予期しない異常動作のリスクを軽減することができる。
【００２１】
さらに、本発明に係るプログラム動作変更方法（４）によれば、移動局が基地局の指定移動局情報によって指定された移動局のときのみ、ＲＡＭ内のプログラム情報を変更するので、移動局を限定して、プログラム変更動作を実現可能であり、特定の車両、例えば、特殊なプログラムで動作している特殊車両や、新規プログラムの効果確認を行うための試験車両等にのみプログラムの変更を実施させることができる。
【００２２】
さらに、本発明に係るプログラム動作変更方法（５）、（７）によれば、指定エリア内にいるときのみ、移動局がＲＡＭ内のプログラム情報を変更するので、移動局の受信感度がいい場所を特定できている場合、その場所を指定すれば、プログラム修正情報をより確実に伝送することが可能となる。また、特定の地域で稼動する車両のみ変更が必要なプログラムが発生した場合には、その地域の車両についてのみプログラム変更を実施させることができる。
【００２３】
さらに、本発明に係るプログラム動作変更方法（６）、（８）によれば、移動局の機器の稼動状態に応じて、ＲＡＭ内のプログラム情報を変更するか否かを決定するので、移動局の稼動状態に合わせたプログラム変更が実現可能となり、実際の運用への影響を考慮した制御を行うことができる。
【００２４】
さらに、本発明に係るプログラム動作変更方法（９）によれば、移動局がプログラム修正情報により動作している場合には、その修正情報の識別コードを基地局に送信するので、各移動局のプログラム変更状況を基地局で管理でき、必要な移動局のみに必要な修正プログラムを送信することが可能となる。
【００２５】
さらに、本発明に係るプログラム動作変更方法（１０）、（１１）によれば、移動局が修正プログラムにより正常に起動、終了したか否かを判別するので、伝送中誤ったデータを受信した場合や、異常動作を生じる修正情報で動作した場合には、異常動作を繰り返さず、元の状態での動作に復旧することが可能となる。
【００２６】
さらに、本発明に係るプログラム動作変更方法（１２）によれば、移動局からの起動、終了通知により、基地局で各移動局の制御プログラムの正常終了を監視することができるので、基地局で移動局の異常終了を検知した場合には、新たな修正プログラムの送信を中止したり、異常終了した修正識別コードの修正プログラムを再度送信することにより、その移動局の異常終了に必要な措置を取ることが可能となる。
【実施例】
【００２７】
以下、本発明のプログラム動作変更方法をタクシーの配送システムに適用した実施例について図面を用いて説明する。
図１はタクシーの配送システムの概略ブロック図であり、１はタクシー会社等の基地局、２はタクシーに搭載された機器としての移動局である。移動局２は、ＣＰＵ２１、Ｆ−ＲＯＭ（フラッシュＲＯＭ）２２、ＲＡＭ（ランダム  アクセス  メモリ）２３、ＳＲＡＭ（スタティックＲＡＭ）２４、無線機２５、ＧＰＳ２６により構成されている。
【００２８】
ＣＰＵ２１は移動局２のハードウェア各部を制御するとともに、Ｆ−ＲＯＭ２２に記憶されたプログラムに基づいて各種のプログラムを実行し、Ｆ−ＲＯＭ２２は制御プログラムを書換え可能に格納するＲＯＭであり、移動局２の動作に必要な種々のプログラムを予め記憶している。ＲＡＭ２３はプログラムの実行時に発生する一時的なデータを記憶するものであり、プログラムの実行時にＦ−ＲＯＭ２２に記憶された制御プログラムがこのＲＡＭ２３に転送され、ＲＡＭ２３上で機器のプログラムが実行される。
【００２９】
また、ＳＲＡＭ２４は電源がオフとなっても記憶内容を保持可能なメモリであり、図２に示すように、基地局１から送信されてきた修正プログラムを格納する修正プログラム格納部３１、制御プログラムの起動終了フラグを格納する起動終了フラグ格納部３２、実行している修正プログラムの識別コードの情報を記憶する識別コード情報格納部３３、各識別コードの修正プログラムの異常を記憶する異常フラグ格納部３４を備えている。無線部２５は基地局１の無線部と交信可能とするための自動車電話や携帯電話等の無線装置であり、基地局１から無線送信された修正プログラムや指示情報を受信するとともに、基地局１に移動局２の位置情報や機器の動作情報を送信する。また、ＧＰＳ２６はＧＰＳ衛星からの位置情報を受信して移動局２の現在位置を測定する。
【００３０】
次に、タクシー会社等の基地局１から多数の移動局２に一斉にプログラム修正情報を送信する場合の、移動局２でのプログラム変更の動作を図３のフローチャートにより説明する。
基地局１から修正プログラム及び動作変更指示情報が一斉に移動局２に送信されると、移動局２の無線部２５が基地局１からの送信情報を受信して、ＣＰＵ２１に送る。一方、ＣＰＵ２１は機器の動作中、修正プログラムを受信したか否かを常時判別しており（ステップ１０１）、無線部２５から修正プログラムを受けると、修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶する（ステップ１０２）。
【００３１】
そして、基地局１から受信した情報に動作変更指示があるか否かを判別し（ステップ１０３）、基地局１から動作変更指示があった場合には、ＣＰＵ２１はＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更する（ステップ１０４）。なお、プログラムの変更は機器の制御動作を停止した状態で行うことが好ましいが、修正プログラムには修正すべきプログラムのアドレスが記載されているので、そのアドレスをバッチ処理していない期間に、その部分を修正することが可能である。
一方、ステップ１０３において、動作変更指示がないと判別した場合には、ＣＰＵ２１は変更プログラムを終了する。
【００３２】
上記の実施例では、基地局１から動作変更指示情報をすべての移動局２に送信し、すべての移動局２でプログラム変更を行う場合を説明したが、特定の移動局を指定して、指定された移動局のみプログラム変更を実行させるようにすることも可能である。
図４のフローチャートは、プログラム変更を行う車両を指定する場合の移動局２でのプログラム変更の動作を示す。
この場合、基地局１は動作変更指示情報にプログラム変更を行うべき車両の車両ＩＤを付加して各移動局に送信する。そして、上記と同様に、基地局１から修正プログラム及び指定車両ＩＤを含む動作変更指示情報が一斉に移動局２に送信されると、移動局２の無線部２５が基地局１からの送信情報を受信してＣＰＵ２１に送る。一方、ＣＰＵ２１は機器の動作中、修正プログラムを受信したか否かを常時判別しており（ステップ２０１）、無線部２５から修正プログラムを受けると、修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶する（ステップ２０２）。
【００３３】
次に、動作変更指示があるか否かを判別し（ステップ２０３）、基地局１から動作変更指示があった場合には、ＣＰＵ２１は動作変更指示情報に含まれる指定車両ＩＤと自車両の車両ＩＤとを比較することにより、自車両が指定車両か否かを判別する（ステップ２０４）。自車両が指定車両であった場合には、ＣＰＵ２１はＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更する（ステップ２０５）。
一方、ステップ２０３、２０４において、動作変更指示なしあるいは、自車両が指定車両でないと判別した場合には、ＣＰＵ２１は変更プログラムを終了する。
これにより、特定の車両、例えば、特殊なプログラムで動作している特殊車両や、新規プログラムの効果確認を行うための試験車両等にのみプログラムの変更を実施させることができる。
【００３４】
また、車両を指定するのではなく、所定のエリア内にいる車両のみプログラム変更を実行させることも可能であり、図５のフローチャートはこのように所定のエリア内にいる車両のみプログラム変更を行う場合の、移動局２でのプログラム変更の動作を示す。
この場合、基地局１は動作変更指示情報にプログラム変更を行うべきエリアの情報を付加して各移動局２に送信する。そして、上記と同様に、基地局１から修正プログラム及び指定エリア情報を含む動作変更指示情報が一斉に移動局２に送信されると、移動局２の無線部２５が基地局１からの送信情報を受信してＣＰＵ２１に送る。一方、ＣＰＵ２１は機器の動作中、修正プログラムを受信したか否かを常時判別しており（ステップ３０１）、無線部２５から修正プログラムを受けると、修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶する（ステップ３０２）。
【００３５】
次に、ＣＰＵ２１は動作変更指示があるか否かを判別し（ステップ３０３）、基地局１から動作変更指示があった場合には、ＣＰＵ２１は動作変更指示情報に含まれる指定エリア情報とＧＰＳ２６からの自車両の位置情報とを比較することにより、自車両が指定エリア内にいるか否かを判別する（ステップ３０４）。そして、自車両の位置が指定エリア内であった場合には、ＣＰＵ１はＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更する（ステップ３０５）。
一方、ステップ３０３、３０４において、動作変更指示なし、あるいは自車両が指定エリア外と判別した場合には、ＣＰＵ２１は変更プログラムを終了する。
これにより、移動局の受信感度がいい場所を特定できている場合、その場所を指定すれば、プログラム修正情報をより確実に伝送することが可能となる。また、例えば、特定の地域で稼動する車両のみ変更が必要なプログラムが発生した場合には、その地域の車両のみでプログラム変更を実施させることができる。
【００３６】
また、基地局からの指定によらず、移動局の機器の稼動状態に応じてプログラムを変更するかどうかを決定することも可能である。
例えば、タクシーの車両配送システムでは、車両の状態として、「実車」、「空車（待機中）」、「空車（流し中）」、「配車」、「休憩」、「回送」、「閉局」等の設定が可能であり、配送メータからの信号及び乗務員の指示によりこれらの設定が変更される。なお、「実車」は乗客輸送中であり、「空車（待機中）」は停車状態で客待ちしている状態であり、「空車（流し中）」は運転状態で客待ちしている状態である。また、「配車」は配車指示を受けて顧客の場所への移動中であり、「休憩」は休憩中、「回送」は車庫へ戻る途中であり、「閉局」はシステムの動作を終了した状態である。このうち、例えば、「休憩」、「回送」の状態のときのみ、プログラムの変更を行うように設定することができる。
【００３７】
図６のフローチャートはこのように移動局の機器の稼動状態に応じてプログラム変更を行う場合の、移動局２でのプログラム変更の動作を示す。
上記と同様に、基地局１から修正プログラム及び動作変更指示情報が一斉に移動局２に送信されると、移動局２の無線部２５が基地局１からの送信情報を受信してＣＰＵ２１に送る。一方、ＣＰＵ２１は機器の動作中、修正プログラムを受信したか否かを常時判別しており（ステップ４０１）、無線部２５から修正プログラムを受けると、修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶する（ステップ４０２）。
【００３８】
次に、動作変更指示があるか否かを判別し（ステップ４０３）、基地局１から動作変更指示があった場合には、ＣＰＵ２１は現在の機器の稼動状態が「休憩」または「回送」であるかを判別することにより、プログラム変更が可能な状態か否かを判別する（ステップ４０４）。そして、自車両の機器の稼動状態が「休憩」または「回送」であった場合には、ＣＰＵ２１はＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更し（ステップ４０５）、「休憩」または「回送」以外の状態であった場合には、プログラムを変更せずに変更プログラムを終了する。
これにより、例えば、「実車」、「配送中」等のプログラム変更が好ましくない場合には、プログラム変更を実行しないようにすることができる。
【００３９】
上記では、システム機器の稼動中の動作について説明したが、次に、移動局２のシステム機器の起動時の動作について、図７のフローチャートにより説明する。
システム機器の電源を投入すると、ＣＰＵ２１はＦ−ＲＯＭ２２に記憶されている制御プログラムをＲＡＭ２３に転送する（ステップ５０１）。次に、ＣＰＵ２１はＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムの有無を判別することにより、プログラムの修正があるか否かを判別する（ステップ５０２）。プログラム修正がない場合には、ＣＰＵ２１はＲＡＭ２３に展開されているプログラムに基づいて起動を行う（ステップ５０４）。一方、プログラム修正があった場合には、ＣＰＵ２１はＲＡＭ２３上に展開されているプログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されているプログラムで変更した（ステップ５０３）後、起動を行う（ステップ５０４）。
【００４０】
上記のシステム機器の起動の実施例では、修正プログラムがあった場合には、自動的にプログラムを修正したが、修正プログラムの受信中にエラーが発生した場合など、修正プログラムにより機器の動作が不良となることがあるので、このような場合の対処として、修正プログラムを識別コードで管理する方法について、以下、図８のシステム機器の起動時のフローチャートにより説明する。
【００４１】
システム機器の電源を投入すると、ＣＰＵ２１はＳＲＡＭ２４の起動終了フラグ格納部３２に記憶されている起動終了フラグがオフになっているか否かを判別する（ステップ６０１）。起動終了フラグがオフの場合、ＣＰＵ２１はＳＲＡＭ２４の起動終了フラグ格納部３２に記憶されている起動終了フラグをオンにする（ステップ６０２）。次に、ＣＰＵ２１はＦ−ＲＯＭ２２に記憶されている制御プログラムをＲＡＭ２３に転送する（ステップ６０３）。この後、ＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムの有無を判別することにより、プログラムの修正があるか否かを判別する（ステップ６０４）。プログラム修正がない場合には、ＲＡＭ２３に展開されているプログラムに基づいて起動を行う（ステップ６０８）。
【００４２】
一方、プログラム修正があった場合には、ＣＰＵ２１はＳＲＡＭ２４の識別コード情報格納部３３に記憶されている修正プログラムの識別コードの更新情報とＳＲＡＭ２３の修正プログラム格納部３１に記憶されている修正プログラムの識別コードとを比較し、新しい修正プログラムがあるか否かを判別する（ステップ６０５）。新しい修正プログラムがあった場合には、その修正プログラムの識別コードをＳＲＡＭ２４の識別コード情報格納部３３に追加する（ステップ６０６）。次に、ＣＰＵ２１はＲＡＭ２３上に展開されているプログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更した（ステップ６０７）後、制御プログラムを起動する（ステップ６０８）。なお、ステップ６０７において、ＣＰＵ２１はＳＲＡＭ２４の異常フラグ格納部３４に記憶されている各識別コードの異常フラグを確認し、異常フラグがオンになっていない識別コードの修正情報のみによってプログラムを変更する。
【００４３】
そして、この制御プログラム実行中、ＣＰＵ２１は制御終了が指示されたか否かを判別する（ステップ６０９）。制御終了が指示された場合、ＣＰＵ２１は制御プログラムの終了処理を実行し（ステップ６１０）、終了処理が完了した後、ＣＰＵ２１はＳＲＡＭ２４の起動終了フラグ格納部３２に記憶されている起動終了フラグをオフにする（ステップ６１１）。これにより、制御プログラムが異常終了した場合には、起動終了フラグがオンのままとなる。
【００４４】
一方、ステップ６０１において、起動終了フラグがオンとなっていると判別した場合には、前回修正を行ったプログラムにエラーがあると判断して、ＣＰＵ２１はＳＲＡＭ２４の識別コード情報格納部３３に記憶されている最新の識別コードの修正プログラムにエラーがあると判断し、ＳＲＡＭ２４の異常フラグ格納部３４に記憶されている、その修正プログラムの識別コードの異常フラグをオンにする。この後、ステップ６０２に移り、上記と同様に制御プログラムを起動する。
このように、修正プログラムにエラーがあって、プログラムが異常終了した場合には、次回からはエラーがあった修正プログラムによるプログラム変更が実施されないので、異常終了を防止することができる。
【００４５】
以上、基地局からすべての移動局に一斉に修正プログラムを送信する場合について説明したが、基地局から個別の移動局に接続して、あるいは各移動局が基地局に接続してプログラムを変更することも可能であり、以下これについて説明する。
図９は接続した移動局が設定エリア内にいる場合にのみプログラム修正を行なう場合の通信フローであり、基地局１と移動局２の通信が確立されると、移動局２はＧＰＳ２６により検出した自車両の位置情報を基地局１に送信する。基地局１は送信されてきた移動局２の位置情報から移動局が設定エリア内にいるか否かを判別する。移動局２が設定エリア内にいない場合には、通信を終了し、移動局が設定エリア内にいる場合には、プログラム修正情報を送信する。これにより、移動局２は修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶した後、ＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更する。この後、移動局２は基地局１との通信を終了する。
【００４６】
上記の実施例では、移動局２が設定エリア内にいる場合に修正プログラムを送信したが、移動局の機器の稼動状態に応じて修正プログラムの送信の是非を決定することも可能である。
図１０は移動局の機器が所定の稼動状態にある場合にのみプログラム変更を行なう場合の通信フローであり、基地局１と移動局２の通信が確立されると、移動局２は自車両の機器の稼動状態情報を基地局１に送信する。基地局１は送信されてきた移動局２の機器の稼動状態情報から修正情報を送信可能か否かを判別する。移動局２の機器の稼動状態が、例えば、「休憩」または「回送」以外の状態であった場合には、基地局１は通信を終了し、移動局２の稼動状態が「休憩」または「回送」であった場合には、プログラム修正情報を送信する。これにより、上記と同様に、移動局２は修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶した後、ＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更する。この後、移動局２は基地局１との通信を終了する。
【００４７】
また、移動局で変更を実施した修正プログラムの識別コードを基地局で管理することもでき、このように移動局の修正プログラムの識別コードの管理を行う場合の通信フローを図１１により説明する。
基地局１と移動局２の通信が確立されると、基地局１は移動局２に修正プログラム情報、修正識別コードを送信する。これにより、移動局２は修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶した後、ＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更するとともに、ＳＲＡＭ２４の識別コード情報格納部３３に新たに変更を行った修正プログラムの識別コードを追加する。この後、移動局２はＳＲＡＭ２４の識別コード情報格納部３３に記憶されている識別コードを基地局１に送信し、基地局１は対象の移動局２のプログラム変更情報を更新した後、移動局２との通信を終了する。
これにより、各移動局のプログラム変更状況を基地局で管理でき、移動局毎に必要な修正プログラムを送信することが可能となる。
【００４８】
また、修正プログラムにエラーがあったか否かを基地局で管理することも可能であり、このように基地局でエラーを管理する場合の通信フローを図１２により説明する。
移動局２は制御プログラムを起動すると、基地局１との通信を行い、基地局１との通信が確立されると、移動局２は基地局１に起動通知を行う。起動通知を受けると、基地局１は該当する移動局２の起動終了フラグをオンした後、その移動局２に送信すべき修正プログラムがあった場合、修正情報、修正識別コードを移動局２に送信する。これにより、移動局２は修正プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶した後、ＲＡＭ２３上に展開されている制御プログラムをＳＲＡＭ２４の修正プログラム格納部３１に記憶されている修正プログラムで変更するとともに、ＳＲＡＭ２４の識別コード情報格納部３３に新たに変更を行った修正プログラムの識別コードを追加する。
【００４９】
この後、移動局２はＳＲＡＭ２４の識別コード情報格納部３３に記憶されている識別コードを基地局１に送信して移動局２との通信を終了する。そして、移動局２の制御プログラムが終了する場合、正常終了すると、移動局２は基地局１との通信を行い、通信が確立すると、移動局２は基地局１に正常終了を通知し、基地局１はこの正常終了を受信すると、該当する移動局２の起動終了フラグをオフした後、通信を終了する。
【００５０】
このように、基地局で各移動局の制御プログラムの正常終了を監視することにより、次回起動通知があった場合に、その移動局の起動終了フラグがオンの場合には、その移動局の制御プログラムが前回異常終了したことを判別することができるので、新たな修正プログラムの送信を中止したり、異常終了した識別コードの修正プログラムを再度送信することにより、その移動局の異常終了に対処することが可能となる。
【００５１】
なお、上記の実施例では、本発明のプログラム動作変更方法をタクシーの配送システムに適用した例について説明したが、本発明のプログラム動作変更方法は移動局を備えたシステム、特に車両よりなる移動局を備えた様々なシステムに適用することが可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明を実施するタクシーの配送システムの概略ブロック図である。
【図２】ＳＲＡＭ２４の記憶内容を説明する図である。
【図３】プログラム変更の動作を示すフローチャートである。
【図４】プログラム変更を行う車両を指定する場合のプログラム変更の動作を示すフローチャートである。
【図５】所定のエリア内にいる車両のみプログラム変更を行う場合の動作を示すフローチャートである。
【図６】移動局の機器の稼動状態に応じてプログラム変更を行う場合の動作を示すフローチャートである。
【図７】システム機器の起動時の動作を示すフローチャートである。
【図８】システム機器の起動時の他の動作を示すフローチャートである。
【図９】移動局が設定エリア内にいる場合にのみプログラム修正を行なう場合の通信フローを示す図である。
【図１０】移動局の機器が所定の稼動状態にある場合にのみプログラム変更を行なう場合の通信フローを示す図である。
【図１１】基地局で移動局の修正プログラムの識別コードの管理を行う場合の通信フローを示す図である。
【図１２】基地局で移動局でのエラーを管理する場合の通信フローを示す図である。
【符号の説明】
【００５３】
１  基地局
２  移動局
２１  ＣＰＵ
２２  Ｆ−ＲＯＭ
２３  ＲＡＭ
２４  ＳＲＡＭ
２５  無線機
２６  ＧＰＳ
【図１】
2005085054.tif 000003
【図２】
2005085054.tif 000004
【図３】
2005085054.tif 000005
【図４】
2005085054.tif 000006
【図５】
2005085054.tif 000007
【図６】
2005085054.tif 000008
【図７】
2005085054.tif 000009
【図８】
2005085054.tif 000010
【図９】
2005085054.tif 000011
【図１０】
2005085054.tif 000012
【図１１】
2005085054.tif 000013
【図１２】
2005085054.tif 000014