説明

OTAプログラミングのためのシステム及び方法

【課題】 ローカルコンピュータを有するリモートプラットフォームにおいて、コンピュータコードをプログラミングする方法を提供する。
【解決手段】 ホームデバイスは、ローカルコンピュータに対して、無線伝送を介してコンピュータコードを送信し、コンピュータコードは、フラッシュメモリの別領域内に保存される。一度コンピュータコードの完全なコピーがローカルコンピュータにおいて認識されると、コンピュータコードの完全性は確認され、もし適切であれば、新しい起動アドレスは、ローカルコンピュータにおいて割当てられる。ローカルコンピュータは、新しいコンピュータコードを使用して再起動されるので、効率的にコンピュータソフトウェアをアップデートできる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、OTAプログラミングシステムとその使用方法に関する。より詳しく言うと、本発明は、リモートプラットフォームにおけるコンピュータコードをプログラミングする方法に関する。
【背景技術】
【0002】
リモートデバイス、モバイルデバイス、又は、メディアと情報を通信するためのOTAP(オーバー ジ エア プログラミング)システムは、当該者に周知である。多くの場合、モバイルデバイスは、ローカルコンピュータを有しており、ローカルコンピュータは、ホームデバイスから、OTA通信を無線によって受信している。ローカルコンピュータは、マイクロコントローラ、及びメモリシステム等を含有しており、ユーザに様々な機能を提供する。ローカルコンピュータは、複数のアプリケーション、システム、又はプログラム等を有しており、これらは、ユーザのために、ローカルコンピュータの様々な操作モード及び機能を提供する。
【0003】
当技術分野において、アプリケーション、システム、又はプログラム等をアップデートする必要があるとき、ホームデバイスは、リモートデバイスに対して信号を送り、リモートデバイスは、ローカルコンピュータに複数のコンピュータコードパケットを送信する。このパケットは、ローカルコンピュータ内のシステム、プログラム、又はアプリケーション等をアップデートするコンピュータコードを構成している。現在、当技術分野において、コンピュータコードが受信されると、ローカルコンピュータは再起動し、再起動処理の間、コードの完全性を確認し、アップデートが適切であるかどうかを判断する。
【0004】
この処理は、ローカルコンピュータをアップデートするのに有効ではあるが、この処理には多大な時間を要することとなる。特に、再起動処理の間、コードの完全性が適切であるかどうかを判断するために、プログラムを、分析及び確認しなければならないため、ユーザは、コードの完全性の確認を待った後でなければ、ローカルコンピュータの操作を継続できない。このように即時操作ができないことは、ユーザにとって不快であるばかりでなく、効率的でもない。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の主たる目的は、コンピュータをアップデートする効率的な方法を提供することにある。
【0006】
本発明の別の目的は、コンピュータがアップデートの最中にあっても、ユーザ処理のための時間を最大限にする方法を提供することにある。
【0007】
本発明の上記の目的、他の目的、特徴及び利点については、本明細書と請求の範囲により、明らかになると思う。
【課題を解決するための手段】
【0008】
リモートプラットフォームにおけるコンピュータコードをプログラムする方法を開示する。リモートプラットフォームはローカルコンピュータを有し、ローカルコンピュータはフラッシュメモリを備えている。
【0009】
本発明の方法は、複数のコンピュータコードパケットを受信する工程を含み、コンピュータコードパケットは、無線を介して通信される。次の工程は、ローカルコンピュータのフラッシュメモリの別の領域内に複数のコンピュータコードパケットを保存する工程である。複数のコンピュータコードパケットは、1つのコンピュータコードを構成している。次に、ローカルコンピュータは、コンピュータコードの完全なコピーの受信を認識し、この受信したコンピュータコードの完全性を確認し、再起動処理に入る。
【0010】
コンピュータコードの完全性を確認すると、ローカルコンピュータの起動アドレスは変更されるので、起動アドレス変更後、ユーザの都合に合わせて、ローカルコンピュータが再起動されることがある。一度、ローカルコンピュータが再起動されると、コンピュータは、新しいコンピュータコードを用いて再起動する。再起動処理の間、コンピュータコードの完全性を確認する必要はない。
【発明を実施するための最良の形態】
【0011】
図1は、OTAPシステム10を示し、このシステム10は、ホームデバイス12と、このホームデバイス12からOTA信号を受信する、リモートプラットフォーム14とを有している。好ましい例では、リモートプラットフォーム14は、メディアのようなモバイルデバイスである。具体的には、ホームデバイス12は、複数のコンピュータコードパケット16を含有しており、このパケット16は、リモートプラットフォーム14へ転送され、リモートプラットフォーム14のローカルコンピュータ18で受信される。
【0012】
ローカルコンピュータ18は、図2に最も良く示されているように、複数のオペレーティングシステム/アプリケーション/プログラム等を有しており、ローカルコンピュータ18の動作を制御する。このシステム/アプリケーション/プログラムは、マイクロコントローラ20と、別領域24を有しているフラッシュメモリ22と、マネージャコントローラ26等を備えているが、これらに限られるものではない。他のメモリ等は、当該者に周知のように、ローカルコンピュータ18内に設けられている。
【0013】
ローカルコンピュータ18は、ホームデバイス12から通信を受信し、好適例においては、マネージャコントローラ26は、1つのコンピュータコードを構成する複数のコンピュータコードパケット16を受信する。この実施例においては、コンピュータコードは、複数のアプリケーションを有することができ、組込みバルブセクションコントローラ、又は組込みポンププロセッサ、又はディストリビューテッドマイクロコントローラ、又はI/Oモジュール等のようなディストリビューテッドプロセッサにダウンロードされることとなる。従って、ローカルコンピュータ18は、マネージャコントローラ26内で、複数のアプリケーションを受信することができる。
【0014】
図3は、フラッシュメモリ22の別領域24のプログラミングデータを示している。特に、この別領域24は、ソフトウェアであって、スタートアップコードと、アプリケーションローダと、アプリケーションと、メッセージプロセッサと、オペレーティングシステムと、書き込みコード等のような複数のコンポーネント28を含んでいる。これらのコンポーネント28を用いることによって、ソフトウェアは、アップデートを受信し、かつ、このアップデートを実行することができる。従って、ローカルコンピュータ18は、データ30及びヘッダ領域(HDR)32を有するアップデートソフトウェア(図4を参照のこと。)を受信することができ、このアップデートされたソフトウェア、又はコンピュータコードパケット16を用いて、ローカルコンピュータ18でソフトウェアをアップデートすることができる。
【0015】
図5は、フラッシュメモリ22内のソフトウェア34が動作して、ローカルコンピュータ18内のソフトウェアをアップデートする要領を示している。具体的には、ブロック36において、ソフトウェアは通常どおり動作している。複数のコンピュータコードパケットを介して新しいコードを受信する前に、ブロック38において、ソフトウェア34は、システムをモニタし、新しいプログラムに起動コマンドを渡すかどうかを判断する。新しいプログラムがまだ準備できていないとき、ブロック40において、通常の動作が開始される。
【0016】
ブロック42において、ソフトウェア34はモニタを続け、新しいコードを渡すために、複数のコンピュータコードパケットが受信されたかどうかを判断する。もし受信していなければ、ブロック36において、通常動作が開始される。しかし、ブロック42において、新しいコードが検出されると、ブロック44において、この検出されたコードが受信され、別領域24へ転送される。このとき、ブロック46において、判断が実行され、もしソフトウェア34が、新しいコードの転送は完了していないと判断すると、ソフトウェア34は、別領域24へコードを転送し続ける。ブロック46において、転送が完了している場合、ブロック48において、新しいコード、又はプログラムの完全性が判断される。
【0017】
従って、ブロック48において、新しいコードの完全性は、ローカルコンピュータ18を再起動する前に確認され、ソフトウェア34は、たとえ、ブロック48において、プログラムの完全性が確認されている最中であっても、ユーザがローカルコンピュータ18を操作し続けられるようにする。従って、新しいプログラム、又はコードの完全性は、再起動処理の間は確認される必要はない。
【0018】
従って、ブロック50において、新しいコンピュータコードが正しいかどうかの判断が実行される。もし正しくなければ、ブロック52において、ソフトウェア34はローカルコンピュータ18に、正しくファイル転送をできなかったことを通知する。しかし、もし新しいコンピュータコードが正しいと、ソフトウェア34は、ブロック54において、新しいプログラムを設定する。ブロック54において、一度新しいプログラムの準備ができると、ブロック56において、ソフトウェア34は、ローカルコンピュータ18に転送の成功を通知する。そして、ブロック36において、コンピュータユーザがローカルコンピュータ18のさらなる操作を続ける間、通常動作は継続する。
【0019】
このとき、新しいプログラムに起動コマンドを渡すかどうかという判断38が与えられ、ブロック54において、新しいプログラムは準備ができているため、ブロック58において、ソフトウェア34は、新しいプログラムが準備できているかどうかを判断することができる。
【0020】
準備ができていない場合には、ブロック50において、ローカルコンピュータ18には、準備できていないことが通知される。一方、ブロック58において、新しいプログラムが準備できている場合、ブロック62において、ソフトウェア34は、ローカルコンピュータ18の起動アドレスを再割当てするか、又は変更する。そして、ローカルコンピュータ18を再起動する。再起動処理の間、ローカルコンピュータ18は、アップデートで提供された新しいコンピュータコードで再起動する。
【0021】
ソフトウェア34は、ローカルコンピュータ18が動作している間に受信したコンピュータコードの完全性を判断することができるため、プログラムの完全性を確認するステップは、再起動処理の間実行される必要はない。従って、再起動時間を最小限に抑える。同様に、これは、プログラムの完全性の確認は、ユーザが操作している間、同時になされることができるので、ユーザの効率を最大限にする。従って、少なくとも上述した全目的が達成される。
【0022】
本発明の精神と範囲から逸脱することなしに、デバイスに対して、他の様々な変形例や変更例が可能であることは、当該者にとっては明らかであると思う。このような変形例や変更例は、総て特許請求の範囲に含まれ、網羅されるものである。
【図面の簡単な説明】
【0023】
【図1】OTAPシステムのブロック図である。
【図2】OTAPを受信するように設計されたローカルコンピュータのブロック図である。
【図3】フラッシュメモリの別領域内におけるコードのブロック図である。
【図4】プログラムを転送するために、図1のシステムにおいて使用されているメッセージの図である。
【図5】OTAPを実行するために使用される処理工程のフローチャートである。
【符号の説明】
【0024】
10 OTAPシステム
12 ホームデバイス
14 リモートプラットフォーム
16 複数のコンピュータコードパケット
18 ローカルコンピュータ
20 マイクロコントローラ
22 フラッシュメモリ
24 別領域
26 マネージャコントローラ
28 コンポーネント
30 データ
32 ヘッダ領域(HDR)
34 ソフトウェア
38 判断
36、38、40、42、44、46、48、50、52、54、56、58、62 ブロック

【特許請求の範囲】
【請求項1】
フラッシュメモリを備える、ローカルコンピュータを有しているリモートプラットフォームにおいて、コンピュータコードをプログラミングする方法であって、
無線を介して通信される、複数のコンピュータコードパケットを受信する工程と、
前記ローカルコンピュータのフラッシュメモリの別領域に、前記コンピュータコードを構成している、前記複数のコンピュータコードパケットを保存する工程と、
前記ローカルコンピュータにおいて、前記コンピュータコードの完全なコピーの受信を認識する工程と、
この受信したコンピュータコードの完全性を確認する工程と、
この確認工程を受けて、前記ローカルコンピュータの起動アドレスを変更する工程と、
この起動アドレス変更後、前記ローカルコンピュータを再起動する工程と、
前記ローカルコンピュータを再起動する工程を受けて、新しいコンピュータコードを用いて、前記ローカルコンピュータを再起動させる工程とを有する方法。
【請求項2】
前記リモートプラットフォームは、モバイルプラットフォームである、請求項1記載の方法。
【請求項3】
前記コンピュータコードは、複数のアプリケーションを構成している、請求項1記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate