(57)【要約】【課題】ＰＣ等に格納しているファームウェアを、他の機器内に備えられるフラッシュＲＯＭに高速にダウンロードを行うことを可能にする。【解決手段】ファームウェアの送信時、ＰＣ本体１１のアプリケーションは、メモリ２１から格納アドレス順に、ファームウェアのデータを読み出し、２本のシリアルケーブルに交互に送信すべき送信パケットデータ２３、２４を生成する。前述の２３、２４は、メモリ２１の偶数番地、奇数番地から読み出したデータとそのアドレスとに、チェック用のＣＲＣデータ、データ長、コマンドＩＤが付加されて生成され、機器１３に送信される。機器１３側には、送信パケットデータのそれぞれを格納するリングバッファ２６、２７が備えられ、機器１３側の製品ファームウェアは、ファームウェアのダウンロードを、バッファへの書き込みまでの受信処理とフラッシュＲＯＭへの書き込み処理とに別けて行い、書き込みエラーが生じた場合、後に、ＰＣ側から再転送してもらう。【選択図】      図１
2004206622.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアの送信側となる機器からフラッシュＲＯＭを有してファームウェアの受信側となる機器内のフラッシュＲＯＭへのファームウェアのダウンロード方法において、前記送信側機器と受信側機器とを２本のシリアルケーブルにより接続し、前記送信側機器は、ファームウェアデータを格納するメモリの偶数番地からのファームウェアデータと、奇数番地からのファームウェアデータとを前記２本のシリアルケーブルのそれぞれに送信することを特徴とするファームウェアのダウンロード方法。
【請求項２】
前記受信側機器は、ファームウェアデータの受信からシリアルケーブル対応に設けられた２つのバッファへの受信データの格納までの受信処理と、前記２つのバッファからファームウェアデータを前記フラッシュＲＯＭに書き込む書き込み処理とを独立に実行すること特徴とする請求項１記載のファームウェアのダウンロード方法。
【請求項３】
前記受信側機器での書き込み処理で、書き込みにエラーが生じたとき、前記受信側機器は、エラー情報を前記送信側機器に送信し、前記送信側機器は、受信したエラー情報に基づいて、エラー情報に指示されたファームウェアデータを再送信することを特徴とする請求項２記載のファームウェアのダウンロード方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファームウェアのダウンロード方法に係り、特に、ＣＤＭＡモジュールにおけるファームウェアを、ＰＣ等の機器からカーナビ等の機器の内部に備えられるＣＤＭＡモジュールにダウンロードするために使用して好適なファームウェアのダウンロード方法に関する。
【０００２】
【従来の技術】
近年、カーナビ等の機器は、その内部にＣＤＭＡモジュールを備え、通信機能を有するように構成されるようになってきている。このような内部にＣＤＭＡモジュールを備える機器は、その製造時、あるいは、出荷後にＣＤＭＡモジュール内のファームウェアのバージョンアップが行われた場合、ＣＤＭＡモジュール内に新しいファームウェアをダウンロードする必要が生じる。
【０００３】
図６は従来技術によりファームウェアをダウンロードする場合の機器相互の接続を示す図、図７は従来技術によるファームウェアのダウンロード方法の概要を説明する図、図８は従来技術によるファームウェアのダウンロードの処理動作を説明するフローチャートであり、以下、図６〜図８を参照して、従来技術によるファームウェアのダウンロードについて説明する。図６、図７において、１１はＰＣ本体、１２はディスプレイ、１３は製品、１４はＣＤＭＡモジュール、１５はシリアルケーブル、２１はメモリ、２２は送信パケットデータである。
【０００４】
従来技術によるファームウェアのダウンロードは、図６に示すように、ＰＣ本体１１、ディスプレイ１２及び図示しないキーボード等の入力装置を備えるＰＣと、ＣＤＭＡモジュールを有するカーナビ等の機器１３とを１本のシリアルケーブル１５により接続し、このシリアルケーブルを介してＰＣから機器１３に備えられるＣＤＭＡモジュール１４内のフラッシュＲＯＭにファームウェアを送信することにより行われる。
【０００５】
ダウンロードすべきファームウェアは、図７に示すように、ＰＣ本体１１の内部のメモリ２１に格納される。このファームウェアは、ＣＤＭＡモジュール用のものの場合、約４．６Ｍバイトの大きさを有する。ファームウェアの送信時、ＰＣ本体１１内のファームウェアダウンロードのためのアプリケーションは、ファームウェアを格納しているメモリ２１から格納アドレス順にファームウェアを構成するデータを読み出して送信パケットデータ２２を生成する。送信パケットデータ２２は、メモリ２１から読み出したデータとそのアドレスとに、アプリケーションによりチェック用のＣＲＣデータ、データ長、コマンドＩＤが付加されて生成され、シリアルケーブル１５を介して機器１３に送信される。
【０００６】
機器１３側の製品ファームウェアは、この送信パケットデータ２２を受信し、ＣＲＣチェック、データ長チェックを行って、ＣＤＭＡモジュール１４内のフラッシュＲＯＭに受信したデータの書き込みを行う。そして、ＣＲＣチェック、データ長チェック、書き込みの処理でエラーが生じていた場合、機器１３側の製品ファームウェアは、ＮＡＫ信号を生成してＰＣに返送し、データの再送を促し、また、ＣＲＣチェック、データ長チェック、書き込みの処理でエラーが生じていなかった場合、ＡＣＫ信号を生成してＰＣに返送し、次のデータの送信を促す。
【０００７】
ＰＣ側のアプリケーションは、ＮＡＫ信号を受信すると、直前に送信したアドレスのデータの再送の処理を行い、また、ＡＣＫ信号を受信すると、次のアドレスのデータをメモリ２１から読み出して、前述と同様に、送信パケットデータ２２を生成して送信する処理を行う。
【０００８】
次に、図８に示すフローを参照して、図７により説明したファームウェアのダウンロードの処理の詳細について説明する。
【０００９】
（１）ＰＣ側において、メモリ２１に格納されているファームウェアのファイルから１パケット分のデータを読み込み、そのデータがＥＯＦ（エンドオブファイル）であるか否かをチェックし、データがＥＯＦであった場合、機器１３にリセットコマンドを送信して、ここでの処理を終了する（ステップ８０１〜８０３）。
【００１０】
（２）ステップ８０２のチェックで、読み込んだデータがＥＯＦでなかった場合、図７により説明したような送信データパケット２２を生成して、機器１３にそのパケットを送信し、機器１３からのパケットの受信待ちとなる（ステップ８０４〜８０６）。
【００１１】
（３）製品側において、前述のステップ８０３あるいはステップ８０５の処理でＰＣ側から送信されてきた送信パケットデータを受信すると、受信したデータのＣＲＣチェックを行って誤りが検出されたか否かを判定し、誤りが検出された場合、ＮＡＫ信号をＰＣ側に返送する（ステップ８０７〜８１０）。
【００１２】
（４）ステップ８０９の判定で、受信データに誤りが検出されていなかった場合、次にデータ長のチェックを行い、正しく受信されていたか否かを判定し、正しく受信されていなかった場合、ＮＡＫ信号をＰＣ側に返送する（ステップ８１１、８１２、８１０）。
【００１３】
（５）ステップ８１２の判定で、データ長が正しかった場合、受信したデータがリセットコマンドであるか否かを判定し、リセットコマンドであった場合、ここでの処理を終了する（ステップ８１３）。
【００１４】
（６）ステップ８１３の判定で、受信したデータがリセットコマンドでなかった場合、すなわち、ファームウェアのデータであった場合、そのデータをフラッシュＲＯＭへ書き込み、書き込みが正常に終了したか否かを判定する（ステップ８１４、８１５）。
【００１５】
（７）ステップ８１５の判定で、書き込みが正常に終了していたらＡＣＫ信号をＰＣ側に送信し、書き込みが正常に行われなかった場合、ＮＡＫ信号をＰＣ側に送信する（ステップ８１６、８１０）。
【００１６】
（８）ＰＣ側において、機器１３からパケットが受信されると、その受信パケットがＮＡＫ信号であったか否かを判定し、ＮＡＫ信号であった場合、ステップ８０４からの処理に戻って処理を続けることにより、データの再送を行う（ステップ８０６、８１７）。
【００１７】
（９）ステップ８１７の判定で、受信パケットがＮＡＫ信号でなかった場合、受信パケットがＡＣＫ信号であったか否かを判定し、ＡＣＫ信号であった場合、ステップ８０１からの処理に戻って処理を続けることにより、次のデータの送信を行う（ステップ８１８）。
【００１８】
（10）ステップ８１８の判定で、受信パケットがＡＣＫ信号でなかった場合、パケット受信待ちのタイムアウトとなったか否か判定し、タイムアウトとなっていなければ、パケットの受信待ちを続け、タイムアウトとなっていた場合、タイムアウトエラーをディスプレイ１２に表示して処理を終了する（ステップ８１９、９２０）。
【００１９】
なお、前述したようなファームウェアのダウンロード方法に関する従来技術として、例えば、特許文献１等に記載された技術が知られている。
【００２０】
【特許文献１】
特開２００１−２４９８１１号公報
【００２１】
【発明が解決しようとする課題】
前述で説明した従来技術によるファームウェアのダウンロード方法は、ＰＣとフラッシュＲＯＭを有する機器との間にある１本のシリアルポートを使用してファームウェアをフラッシュＲＯＭにダウンロードする方法であるので、ダウンロードに大きな時間を要するという問題点を有している。従来技術で説明したようなＣＤＭＡモジュールのファームウェアの場合で、ファームウェアの情報量が４．６Ｍバイト程度である場合、ダウンロードに５分３０秒程度を要しているのが現状である。
【００２２】
前述のように、ファームウェアのダウンロードに多くの時間を要することは、特に、カーナビ等の機器の製造において、内部に備えられるＣＤＭＡモジュールにファームウェアを予めダウンロードしておかなければならない場合に、製造効率を低下させてしまうことになる。
【００２３】
本発明の目的は、前述した従来技術の問題点を解決し、ＰＣ等に格納しているファームウェアを、他の機器内に備えられるフラッシュＲＯＭにダウンロードするダウンロード時間を短縮して、高速にダウンロードを行うことを可能にしたファームウェアのダウンロード方法を提供することにある。
【００２４】
【課題を解決するための手段】
本発明によれば前記目的は、ファームウェアの送信側となる機器からフラッシュＲＯＭを有してファームウェアの受信側となる機器内のフラッシュＲＯＭへのファームウェアのダウンロード方法において、前記送信側機器と受信側機器とを２本のシリアルケーブルにより接続し、前記送信側機器が、ファームウェアデータを格納するメモリの偶数番地からのファームウェアデータと、奇数番地からのファームウェアデータとを前記２本のシリアルケーブルのそれぞれに送信することにより達成される。
【００２５】
本発明は、前述したように、２本のシリアルケーブルを用いてファームウェアデータを送信することとしているので、高速なファームウェアのダウンロードを行うことができる。
【００２６】
また、前記目的は、前述において、前記受信側機器が、ファームウェアデータの受信からシリアルケーブル対応に設けられた２つのバッファへの受信データの格納までの受信処理と、前記２つのバッファからファームウェアデータを前記フラッシュＲＯＭに書き込む書き込み処理とを独立に実行することにより達成される。
【００２７】
これにより、本発明は、受信処理と書き込み処理とを独立して行うことが可能となり、連続してデータの受信が可能となるため、ファームウェアの受信側となる機器内の処理を受信処理と書き込み処理とを一連の処理として行っていた従来技術での処理に比べ、従来技術の手法を単に２本のシリアルケーブの使用に適用するより、さらに高速にデータの受信を行うことができる。
【００２８】
さらに、前記目的は、前述において、前記受信側機器での書き込み処理で、書き込みにエラーが生じたとき、前記受信側機器が、エラー情報を前記送信側機器に送信し、前記送信側機器が、受信したエラー情報に基づいて、エラー情報に指示されたファームウェアデータを再送信することにより達成される。
【００２９】
前述により、本発明は、フラッシュＲＯＭへの書き込みに失敗した場合にも、再度、その失敗したデータだけをダウンロードすることができ、正しいダウンロードを行うことができる。
【００３０】
【発明の実施の形態】
以下、本発明によるファームウェアのダウンロード方法の実施形態を図面により詳細に説明する。
【００３１】
図１は本発明の一実施形態によりファームウェアをダウンロードする場合の機器相互の接続を示す図、図２は本発明の一実施形態によるファームウェアのダウンロード方法の概要を説明する図である。図１、図２において、２３、２４は送信パケットデータ、２５はエラー情報バッファ、２６、２７はリングバッファであり、他の符号は、図６、図７の場合と同一である。
【００３２】
本発明の実施形態によるファームウェアのダウンロードは、データの送信に使用するシリアルケーブルを２本使用する点を除いて、基本的には、図６により説明した従来技術の場合と同様な構成で行われる。すなわち、ファームウェアのダウンロードは、図１に示すように、ＰＣ本体１１、ディスプレイ１２及び図示しないキーボード等の入力装置を備えるＰＣと、ＣＤＭＡモジュールを有するカーナビ等の機器１３とを２本のシリアルケーブル１５により接続し、この２本のシリアルケーブルを介してＰＣから機器１３に備えられるＣＤＭＡモジュール１４内のフラッシュＲＯＭにファームウェアを送信することにより行われる。
【００３３】
ダウンロードすべきファームウェアは、図２に示すように、ＰＣ本体１１の内部のメモリ２１に格納されている。ファームウェアの送信時、ＰＣ本体１１内のファームウェアダウンロードのためのアプリケーションは、ファームウェアを格納しているメモリ２１から格納アドレス順に、ファームウェアを構成するデータを読み出し、２本のシリアルケーブルに交互に送信すべき送信パケットデータ２３、２４を生成する。
【００３４】
そして、送信パケットデータ２３は、メモリ２１の偶数番地のアドレス２ｎ（ｎ＝０、１、２、……）から読み出したデータとそのアドレスとに、アプリケーションによりチェック用のＣＲＣデータ、データ長、コマンドＩＤが付加されて生成され、シリアルケーブル１５の一方を介して機器１３に送信される。また、送信パケットデータ２４は、メモリ２１の奇数番地のアドレス２ｎ＋１（ｎ＝０、１、２、……）から読み出したデータとそのアドレスとに、アプリケーションによりチェック用のＣＲＣデータ、データ長、コマンドＩＤが付加されて生成され、シリアルケーブル１５の一方を介して機器１３に送信される。
【００３５】
機器１３側には、２本のシリアルケーブルのそれぞれを介して送信されてきた送信パケットデータのそれぞれを一時的に格納しておくリングバッファ２６、２７が備えられ、機器１３側の製品ファームウェアは、ファームウェアのダウンロードを受信処理と書き込み処理とに別けて行う。すなわち、機器１３側の製品ファームウェアは、送信パケットデータ２３、２４を受信すると、それらのそれぞれに対してＣＲＣチェック、データ長チェックを行って、それぞれに対してエラーが生じているか否かを判定し、エラーが生じていた場合、ＮＡＫ信号を生成してＰＣに返送し、データの再送を促し、また、ＣＲＣチェック、データ長チェック、書き込みの処理でエラーが生じていなかった場合、ＡＣＫ信号を生成してＰＣに返送し、次のデータの送信を促す。
【００３６】
ＰＣ側のアプリケーションは、ＮＡＫ信号を受信すると、直前に送信したアドレスのデータの再送の処理を行い、また、ＡＣＫ信号を受信すると、次のアドレスのデータをメモリ２１から読み出して、前述と同様に、送信パケットデータ２２を生成して送信する処理を行う。
【００３７】
機器１３側の製品ファームウェアは、それぞれのデータに対するＣＲＣチェック、データ長チェックの終了後、それらのデータを一旦対応するリングバッファ２６、２７に書き込む。
【００３８】
リングバッファ２６、２７に書き込まれたデータは、リングバッファ２６、２７から交互に読み出されてフラッシュＲＯＭに書き込まれる。この書き込みでエラーが生じた場合、機器１３側の製品ファームウェアは、エラー情報をアドレス情報と共にＰＣ側に送信する。このエラー情報の送信は、２本のシリアルケーブルの一方を使用して行っても、あるいは、そのパケットデータが送られてきたシリアルケーブルを使用して行ってもよい。
【００３９】
ＰＣ側のファームウェアは、フラッシュＲＯＭへの書き込み時におけるエラー情報を受信すると、そのエラー情報をエラー情報バッファ２５に順次格納しておき、メモリ２１内のフラッシュＲＯＭに格納すべき全てのデータの送信後、エラー情報バッファ２５に格納されたエラー情報に含まれるアドレスに従って、そのアドレスのデータを再送するエラーリカバリー処理を実行する。
【００４０】
図３は本発明の実施形態によるファームウェアのダウンロードの処理動作を説明するフローチャートであり、次に、図３に示すフローを参照して、図２により説明したダウンロードの処理動作を詳細に説明する。
【００４１】
（１）ＰＣ側において、メモリ２１に格納されているファームウェアのアドレスの偶数番地２ｎまたは奇数番地２ｎ＋１のデータを読み込み、そのデータがＥＯＦ（エンドオブファイル）であるか否かをチェックし、データがＥＯＦであった場合、号術するエラーリカバリー処理を実行して、ここでの処理を終了する（ステップ３０１〜３０３）。
【００４２】
（２）ステップ３０２のチェックで、読み込んだデータがＥＯＦでなかった場合、図２により説明したような送信データパケット２２または２３を生成して、機器１３にそのパケットを送信し、機器１３からのパケットの受信待ちとなる（ステップ３０４〜３０６）。
【００４３】
（３）製品側において、前述のステップ３０５の処理でＰＣ側から送信されてきた送信パケットデータを受信すると、受信したデータのＣＲＣチェックを行って誤りが検出されたか否かを判定し、誤りが検出された場合、ＮＡＫ信号をＰＣ側に返送する（ステップ３０７〜３１０）。
【００４４】
（４）ステップ３０９の判定で、受信データに誤りが検出されていなかった場合、次にデータ長のチェックを行い、正しく受信されていたか否かを判定し、正しく受信されていなかった場合、ＮＡＫ信号をＰＣ側に返送する（ステップ３１１、３１２、３１０）。
【００４５】
（５）ステップ３１２の判定で、データ長が正しかった場合、受信したデータをそのアドレスが偶数であるか奇数であるかに従ってリングバッファ２６または２７に格納し、ＮＡＫ信号をＰＣ側に送信する（ステップ３１３、３１４）。
【００４６】
（６）ＰＣ側において、機器１３からパケットが受信されると、その受信パケットがＮＡＫ信号であったか否かを判定し、ＮＡＫ信号であった場合、ステップ３０４からの処理に戻って処理を続けることにより、データの再送を行う（ステップ３０６、３１５）。
【００４７】
（７）ステップ３１５の判定で、受信パケットがＮＡＫ信号でなかった場合、受信パケットがＡＣＫ信号であったか否かを判定し、ＡＣＫ信号であった場合、ステップ３０１からの処理に戻って処理を続けることにより、次のデータの送信を行う（ステップ３１６）。
【００４８】
（８）ステップ３１６の判定で、受信パケットがＡＣＫ信号でなかった場合、受信パケットがエラー情報であったか否かを判定し、エラー情報であった場合、そのエラー情報をエラー情報バッファ２５に格納し、ステップ３０１からの処理に戻って処理を続けることにより、次のデータの送信を行う（ステップ３１７、３１８）。
【００４９】
（９）ステップ３１７の判定で、受信パケットがエラー情報でなかった場合、パケット受信待ちのタイムアウトとなったか否か判定し、タイムアウトとなっていなければ、パケットの受信待ちを続け、タイムアウトとなっていた場合、タイムアウトエラーをディスプレイ１２に表示して処理を終了する（ステップ３１９、３２０）。
【００５０】
図４は前述したステップ３１３の処理におけるリングバッファ２６または２７へのデータの書き込み処理の詳細を説明するフローチャートであり、次に、これについて説明する。
【００５１】
（１）書き込みの処理が開始されると、まず、偶数側のリングバッファ２６からデータを１つ読み出し、そのデータがリセットコマンドであるか否かを判定し、リセットコマンドでなかった場合、そのデータをフラッシュＲＯＭの指定のアドレスへ書き込む（ステップ４０１〜４０３）。
【００５２】
（２）データのフラッシュＲＯＭへの書き込みが正常に終了したか否かを判定し、書き込みが正常に終了していなかった場合、ＰＣ側へエラーとなったデータのアドレスデータ長とをエラー情報として送信し、ステップ４０１からの処理に戻り、次のデータのフラッシュＲＯＭへの書き込みを続ける（ステップ４０４、４０５）。
【００５３】
（３）ステップ４０２の判定で、データがリセットコマンドであった場合、あるいは、ステップ４０４の判定で、データのフラッシュＲＯＭへの書き込みが正常に終了していた場合、次に、奇数側のリングバッファ２７からデータを１つ読み出し、そのデータがリセットコマンドであるか否かを判定し、リセットコマンドであった場合、ここでの処理を終了する（ステップ４０６、４０７）。
【００５４】
（４）ステップ４０７の判定で、データがリセットコマンドでなかった場合、そのデータをフラッシュＲＯＭの指定のアドレスへ書き込み、データのフラッシュＲＯＭへの書き込みが正常に終了したか否かを判定し、書き込みが正常に終了していなかった場合、ＰＣ側へエラーとなったデータのアドレスデータ長とをエラー情報として送信し、ここでの判定の処理後、ステップ４０１からの処理に戻り、次のデータのフラッシュＲＯＭへの書き込みを続ける（ステップ４０８、４０９、４０５）。
【００５５】
図５は前述した図３のステップ３０３の処理におけるエラーリカバリー処理の詳細を説明するフローチャートであり、次に、これについて説明する。
【００５６】
（１）ＰＣ側において、エラーバッファ２５内のエラー情報の１つを読み出し、メモリ２１に格納されているファームウェアのファイルから指定されたアドレスの指定長のデータを読み込む処理を行い、この処理の中で、エラー情報バッファ２５が空きであるか否かをチェックし、エラー情報バッファ２５が空きであった場合、機器１３にリセットコマンドを送信して、ここでの処理を終了する（ステップ５０１〜５０３）。
【００５７】
（２）ステップ５０２のチェックで、エラー情報バッファ２５が空きでなく、データが読み出されていた図７により説明したと同様に、送信データパケット２２または２３を生成して、機器１３にそのパケットを送信し、機器１３からのパケットの受信待ちとなる（ステップ５０４〜５０６）。
【００５８】
（３）製品側において、前述のステップ５０３あるいはステップ５０５の処理でＰＣ側から送信されてきた送信パケットデータを受信すると、受信したデータのＣＲＣチェックを行って誤りが検出されたか否かを判定し、誤りが検出された場合、ＮＡＫ信号をＰＣ側に返送する（ステップ５０７〜５１０）。
【００５９】
（４）ステップ５０９の判定で、受信データに誤りが検出されていなかった場合、次にデータ長のチェックを行い、正しく受信されていたか否かを判定し、正しく受信されていなかった場合、ＮＡＫ信号をＰＣ側に返送する（ステップ５１１、５１２、５１０）。
【００６０】
（５）ステップ５１２の判定で、データ長が正しかった場合、そのデータを所定の側のリングバッファ２６または２７に格納し、ＡＣＫ信号をＰＣ側に返送する（ステップ５１３、５１４）。
【００６１】
（６）ＰＣ側において、機器１３からパケットが受信されると、その受信パケットがＮＡＫ信号であったか否かを判定し、ＮＡＫ信号であった場合、ステップ５０４からの処理に戻って処理を続けることにより、データの再送を行う（ステップ５０６、５１５）。
【００６２】
（７）ステップ５１５の判定で、受信パケットがＮＡＫ信号でなかった場合、受信パケットがＡＣＫ信号であったか否かを判定し、ＡＣＫ信号であった場合、ステップ５０１からの処理に戻って処理を続けることにより、次のエラー情報に示されるデータの送信を行う（ステップ５１６）。
【００６３】
（８）ステップ５１６の判定で、受信パケットがＡＣＫ信号でなかった場合、受信パケットがエラー情報であったか否かを判定し、エラー情報であった場合、書き込み失敗であると判定し、その旨をディスプレイ１２に表示して処理を終了する。なお、ここでの処理で、このエラー情報を再度エラー情報バッファに格納して、エラーリカバリーの処理を繰り返し行ってもよい（ステップ５１７、５１８、５２０）。
【００６４】
（９）ステップ５１７の判定で、受信パケットがエラー情報でなかった場合、パケット受信待ちのタイムアウトとなったか否か判定し、タイムアウトとなっていなければ、パケットの受信待ちを続け、タイムアウトとなっていた場合、タイムアウトエラーをディスプレイ１２に表示して処理を終了する（ステップ５１９、５２０）。
【００６５】
前述で説明した本発明の実施形態での各処理は、処理プログラムにより実行することができ、この処理プログラムは、ＨＤ、ＤＡＴ、ＦＤ、ＭＯ、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することができる。
【００６６】
前述した本発明の実施形態によるファームウェアのダウンロード方法は、ファームウェアの送信側となる機器としてのＰＣと、フラッシュＲＯＭを有してファームウェアの受信側となる機器との間の２本のシリアルケーブルを利用してファームウェアデータの送信を行い、ファームウェアの受信側となる機器内の処理を受信処理と書き込み処理とに別け、受信処理で受信データを一旦リングバッファに格納した後、書き込み処理でリングバッファ内のデータをフラッシュＲＯＭに書き込むようにしている。
【００６７】
これにより、本発明の実施形態は、受信処理と書き込み処理とを独立して行うことが可能となり、連続してデータの受信が可能となるため、ファームウェアの受信側となる機器内の処理を受信処理と書き込み処理とを一連の処理として行っていた従来技術での処理に比べ、従来技術の手法を単に２本のシリアルケーブの使用に適用するより、さらに高速にデータの受信を行うことができる。
【００６８】
前述した本発明の実施形態は、ＰＣを使用してカーナビ等の他の機器に備えられるＣＤＭＡモジュール内のフラッシュＲＯＭにファームウェアをダウンロードするとして説明したが、本発明は、フラッシュＲＯＭにファームウェアをダウンロードするどのような機器に対しても適用することができる。また、ダウンロード用のファームウェアを保持している機器も、ＰＣに限ることはない。
【００６９】
【発明の効果】
以上説明したように本発明によれば、ＰＣ等に格納しているファームウェアを、他の機器内に備えられるフラッシュＲＯＭにダウンロードするダウンロード時間を短縮して、高速にダウンロードを行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施形態によりファームウェアをダウンロードする場合の機器相互の接続を示す図である。
【図２】本発明の一実施形態によるファームウェアのダウンロード方法の概要を説明する図である。
【図３】本発明の実施形態によるファームウェアのダウンロードの処理動作を説明するフローチャートである。
【図４】リングバッファへのデータの書き込み処理の詳細を説明するフローチャートである。
【図５】エラーリカバリー処理の詳細を説明するフローチャートである。
【図６】従来技術によりファームウェアをダウンロードする場合の機器相互の接続を示す図である。
【図７】従来技術によるファームウェアのダウンロード方法の概要を説明する図である。
【図８】従来技術によるファームウェアのダウンロードの処理動作を説明するフローチャートである。
【符号の説明】
１１  ＰＣ本体
１２  ディスプレイ
１３  製品
１４  ＣＤＭＡモジュール
１５  シリアルケーブル
２１  メモリ
２２〜２４  送信パケットデータ
２５  エラー情報バッファ
２６、２７  リングバッファ
【図１】
2004206622.tif 000003
【図２】
2004206622.tif 000004
【図３】
2004206622.tif 000005
【図４】
2004206622.tif 000006
【図５】
2004206622.tif 000007
【図６】
2004206622.tif 000008
【図７】
2004206622.tif 000009
【図８】
2004206622.tif 000010