(57)【要約】【課題】ファームウェアで動作する処理装置に関し，ファームウェアの更新機能を予めファームウェアの機能に盛り込まなくても，外部端末から直接フラッシュメモリ内のファームウェアの更新を行うことを可能とする。【解決手段】組み込み制御装置１の外部インタフェース制御部１０が，外部バス（ＵＳＢケーブル）１８の接続を検出すると，コントロールバス１７を用いてマイクロプロセッサ１１とフラッシュメモリ１３との間のバス１５の切り離し処理を行った上で，端末４から受信した更新用ファームウェア４１のファイルの書き込み要求に従って，更新用ファームウェア４１のファイルを，直接，フラッシュメモリ１３に書き込む。【選択図】図１
2006106914.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサと書き換え可能な不揮発性メモリとを備え，前記不揮発性メモリに格納されたファームウェアに従って動作する処理装置であって，
外部装置から前記不揮発性メモリに格納されたファームウェアを更新するための外部インタフェース制御部を備え，
前記外部インタフェース制御部は，
前記外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信する書き込み要求受信手段と，
前記不揮発性メモリを前記マイクロプロセッサのバスから切り離すバス切り離し手段と，
前記バス切り離し手段によるバスの切り離しの後に，前記外部装置から外部バスを介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込むファームウェア更新手段とを備える
ことを特徴とするファームウェアで動作する処理装置。
【請求項２】
請求項１記載のファームウェアで動作する処理装置において，
前記外部インタフェース制御部は，前記外部装置に接続される外部バスの接続を検出する外部バス接続検出手段を備え，
前記バス切り離し手段は，前記外部バス接続検出手段が前記外部バスの接続を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを切り離し，前記外部バスの切断を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを接続する
ことを特徴とするファームウェアで動作する処理装置。
【請求項３】
請求項１または請求項２記載のファームウェアで動作する処理装置において，
前記外部インタフェース制御部は，ＵＳＢコントローラであり，
前記外部バスは，ＵＳＢケーブルである
ことを特徴とするファームウェアで動作する処理装置。
【請求項４】
マイクロプロセッサと，ファームウェアが格納された書き換え可能な不揮発性メモリと，外部装置から前記不揮発性メモリに格納されたファームウェアを更新するための外部インタフェース制御部とを備える処理装置のファームウェアを更新するファームウェア更新方法であって，
前記外部インタフェース制御部が，外部バスの接続を監視し，外部バスの接続を検出したときに前記不揮発性メモリを前記マイクロプロセッサのバスから切り離す過程と，
前記外部インタフェース制御部が，前記外部バスに接続される外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信する過程と，
前記外部インタフェース制御部が，前記外部装置から前記外部バスを介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込む過程とを有する
ことを特徴とするファームウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，組み込み制御装置等のファームウェア更新技術に関し，特に，外部端末から直接フラッシュメモリ内のファームウェアの更新を行うことができるファームウェアで動作する処理装置およびファームウェア更新方法に関する。
【背景技術】
【０００２】
近年，組み込み制御装置のファームウェアに要求される機能は多岐に渡り，短期間に機能の追加要求・機能変更・バグ修正が要求され，ファームウェア開発者，ＣＥ（カスタマエンジニア）からファームウェア更新失敗時にも対応可能な早急かつ確実なファームウェア更新方法が要望されている。
【０００３】
図９は，従来のファームウェア更新方法を実現する組み込み制御装置の構成図を示す。図９のように，組み込み制御装置２は，組み込み制御装置２を制御するマイクロプロセッサ１１と，ファームウェア実行のためにプログラムを一時的に格納する主メモリ１２と，ファームウェアを格納するフラッシュメモリ（ＲＯＭ）１３と，組み込み制御装置２の外部とのデータの送受信を制御するＬＡＮまたはシリアルコントローラ１４と，これらを接続するデータバスやアドレスバス等のバス１５とから構成されている。３は端末であり，組み込み制御装置２を動作させるための新しいファームウェアである更新用ファームウェア３１を持つ。１６は端末３と組み込み制御装置２とを接続するＬＡＮまたはシリアルインタフェースである。
【０００４】
フラッシュメモリ１３には，主メモリ１２へのプログラムの転送を行い，組み込み制御装置２の起動制御を行うためのブートプログラム１３１，組み込み制御装置２の制御を行う制御プログラム１３３とその制御のためのシステムプログラム１３２，フラッシュメモリ１３内のファームウェア自身を更新するための更新プログラム１３４が格納される。
【０００５】
以下に，図９に示す組み込み制御装置２の各構成部分を説明する。マイクロプロセッサ１１は，フラッシュメモリ１３に格納されたシステムプログラム１３２や制御プログラム１３３により組み込み制御装置２の制御を行うＣＰＵである。
【０００６】
主メモリ１２は，ＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory ）などで構成される主記憶メモリであり，ファームウェアを実行するためにプログラムを一時的に格納するメモリである。フラッシュメモリ１３は，ファームウェアが格納される書き換え可能な不揮発性メモリである。組み込み制御装置２では，ファームウェアをＲＯＭに格納しておき，ＲＯＭから主記憶メモリ上にプログラムを一時的に格納し実行する方法を用いることが一般的である。近年では内容の消去と再書き込みが電気的に可能なフラッシュメモリを搭載することが多い。
【０００７】
図９に示すように，フラッシュメモリ１３を利用した場合，組み込み制御装置２自身だけでソフトウェアを用いて内容の書き換えが可能となるため，フラッシュメモリ１３内にシステムプログラム１３２と更新プログラム１３４を格納してファームウェアの更新を行うことが多い。また，ファームウェアの更新が失敗した場合を考慮して，フラッシュメモリ１３を複数面実装し，古いファームウェアを保存する組み込み制御装置も存在する。
【０００８】
ＬＡＮまたはシリアルコントローラ１４は，更新用ファームウェア３１を組み込み制御装置２の外部の記憶装置（図９では端末３）から入手するために，ＬＡＮまたはシリアルインタフェース１６の制御を行う装置である。
【０００９】
次に，図９に示す従来技術の動作を説明する。フラッシュメモリ１３を実装している組み込み制御装置２では，ファームウェアの更新機能（図９では更新プログラム１３４）は，予めファームウェアの機能としてフラッシュメモリ１３上に組み込まれており，ＬＡＮでネットワークに接続された端末３，または例えばシリアルケーブルで接続された端末３等の外部記憶装置から更新用ファームウェア３１を転送することにより，自身のファームウェアの更新を行っている。
【００１０】
具体的には，端末３からファームウェアの更新操作が行われると，フラッシュメモリ１３から主メモリ１２内にファームウェアの更新プログラム１３４がロードされ，マイクロプロセッサ１１は，主メモリ１２内の更新プログラム１３４によって，ＬＡＮまたはシリアルコントローラ１４を介して更新用ファームウェア３１を読み込み，それをフラッシュメモリ１３に書き込み，ファームウェアを更新する。
【００１１】
従来の組み込み制御装置２においてファームウェアの更新に失敗した場合には，図１０または図１１に示す手順で修復を行っている。
【００１２】
図１０は，組み込み制御装置がフラッシュメモリを複数面実装する場合のファームウェア修復処理を説明する図である。フラッシュメモリ１３内のファームウェア更新が完了すると（ステップＳ５１），更新後のファームウェアで立上げを行う（ステップＳ５２）。ファームウェアの検証結果（Ｓ５３）がＯＫであれば更新処理を終了し，ファームウェアの検証結果がＮＧならステップＳ５４〜Ｓ５６においてファームウェア更新のやり直しを行う。
【００１３】
すなわち，更新後のフラッシュメモリ１３とは異なる別のフラッシュメモリ内に格納された古いファームウェアで立上げを行い（ステップＳ５４），ＬＡＮまたはシリアルインタフェース１６を通じて端末３から正しいファ−ムウェアを取得し（ステップＳ５５），フラッシュメモリ１３への書き込みを行う（ステップＳ５６）。そして，新ファームウェアで立上げを行い（ステップＳ５７），ステップＳ５３に戻る。
【００１４】
図１１は，組み込み制御装置がフラッシュメモリを１面しか持たない場合のファームウェア修復処理を説明する図である。ファームウェア更新が完了すると（ステップＳ６１），更新後のファームウェアで立上げを行う（ステップＳ６２）。ファームウェアの検証結果がＯＫであれば更新処理を終了し（ステップＳ６３），ファームウェアの検証結果がＮＧならステップＳ６４〜Ｓ６６においてファームウェア更新のやり直しを行う。
【００１５】
すなわち，フラッシュメモリ１３は１面しかないため，そのフラッシュメモリ１３を取り外し（ステップＳ６４），例えばＲＯＭライタ等の外部装置でフラッシュメモリ１３への書き込みを行った後（ステップＳ６５），フラッシュメモリ１３の再実装を行う（ステップＳ６６）。その新ファームウェアで立上げを行い（ステップＳ６７），ステップＳ６３に戻って，ファームウェアの再検証を行う。
【００１６】
図１２は，フラッシュメモリを複数面実装する組み込み制御装置での，フラッシュメモリ上のメモリイメージを示す図である。図１３は，フラッシュメモリを１面しか持たない組み込み制御装置での，フラッシュメモリ上のメモリイメージを示す図である。
【００１７】
図１２に示すように，フラッシュメモリを複数面実装する組み込み制御装置では，更新用ファームウェア格納面におけるファームウェア更新の失敗をファームウェアの検証により検出すると，古いファームウェア格納面上に残してある古いファームウェアで立上げ直し，新たにファームウェアの修復を行う。
【００１８】
一方，図１３に示すように，フラッシュメモリを１面しか持たない組み込み制御装置では，更新したファームウェアは，暴走する可能性も考えられるため，フラッシュメモリを組み込み制御装置から取り外し，外部の装置（ＲＯＭライタ等）で新たにファームウェアの修復を行う。
【００１９】
なお，運用中のファームウェアの更新に関する従来の方法として，下記の特許文献１には，ＵＳＢ（Universal Serial Bus）インタフェースを介してＵＳＢ機器のファームウェアを書き換える技術に関して記載され，下記の特許文献２には，ファームウェア書き換え機能を備えたＵＳＢ装置に関して記載されている。
【特許文献１】特開２０００−２０７１９０号公報
【特許文献２】特開２００１−１１７７７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
ファームウェアの更新機能を予めファームウェアの機能に組み込んだ従来のファームウェアの更新方法では，以下の問題がある。
【００２１】
（１）組み込み制御装置上のファームウェアが動作可能であることを前提とした更新方法であるため，ブートプログラムの部分で更新の失敗，または，更新用ファームウェアにバグがあった場合，組み込み制御装置の立上げができず，ファームウェアの修復が不可能となってしまう問題があった。
【００２２】
（２）組み込み制御装置上のファームウェアが動作可能であることを前提とした更新方法であるため，ファームウェアの更新プログラムの部分で更新の失敗，または，更新用ファームウェアにバグがあった場合，ファームウェアの修復が不可能となってしまう問題があった。
【００２３】
（３）ファームウェアの更新プログラムを予めファームウェアの機能に盛り込む必要があるため，メモリ量の増大と，ファームウェア開発のためのコストが掛かる問題があった。
【００２４】
（４）ファームウェア更新の失敗対策のためにフラッシュメモリの格納面を複数面実装する組み込み制御装置であっても，１面しかファームウェアが入っていない場合や，複数面のファームウェアの破損が起きてしまった場合には，ファームウェアの修復が不可能となってしまう問題があった。
【００２５】
（５）ファームウェア更新の失敗対策のために，フラッシュメモリの格納面を複数面実装する組み込み制御装置では，メモリ量を増やさなければならないため，基板の実装面積が増大する場合があり，コスト高となる問題があった。
【００２６】
（６）ファームウェア更新の失敗対策のために，フラッシュメモリの格納面を複数面実装する組み込み制御装置では，ファームウェアの更新プログラム及びハードウェアの回路に，フラッシュメモリの複数面を制御する機能を盛り込む必要があるため，ファームウェアは処理時間が掛かってしまう問題があり，ハードウェアは回路が複雑になってしまう問題があった。
【００２７】
（７）フラッシュメモリの格納面を１面しか持たない組み込み制御装置では，フラッシュメモリがソケットで基板に実装されていない場合には，基板を工場に返却してフラッシュメモリを基板から脱着し，外部装置（例えばＲＯＭライタ）でファームウェアを更新しなければならないため，保守性が悪い問題があった。
【００２８】
また，上記特許文献１，特許文献２に記載された技術は，ファームウェアが動作していることを前提としており，組み込み制御装置の立上げ不能状態，動作不能状態については考慮されていない。このため，ファームウェアの更新の結果，組み込み制御装置の立上げができなくなった場合には，ファームウェアの修復が不可能である。
【００２９】
本発明は，このような従来技術の課題を解決しようとするものであって，ファームウェアの更新機能を予めファームウェアの機能に盛り込まなくても，外部端末から直接フラッシュメモリ内のファームウェアを更新することができるようにすることを目的とする。
【課題を解決するための手段】
【００３０】
上記課題を解決するため，本発明は，マイクロプロセッサと書き換え可能な不揮発性メモリ（例えば，フラッシュメモリ）とを備え，前記不揮発性メモリに格納されたファームウェアに従って動作する処理装置であって，外部装置から前記不揮発性メモリに格納されたファームウェアを更新するための外部インタフェース制御部（例えば，ＵＳＢコントローラ）を備え，前記外部インタフェース制御部は，前記外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信する書き込み要求受信手段と，前記不揮発性メモリを前記マイクロプロセッサのバスから切り離すバス切り離し手段と，前記バス切り離し手段によるバスの切り離しの後に，前記外部装置から外部バス（例えば，ＵＳＢケーブル）を介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込むファームウェア更新手段とを備えることを特徴とする。
【００３１】
また，前記外部インタフェース制御部は，前記外部装置に接続される外部バスの接続を検出する外部バス接続検出手段を備え，前記バス切り離し手段は，前記外部バス接続検出手段が前記外部バスの接続を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを切り離し，前記外部バスの切断を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを接続することを特徴とする。
【００３２】
外部装置から前記不揮発性メモリに格納されたファームウェアを更新するときには，前記外部インタフェース制御部が，外部バスの接続を監視し，外部バスの接続を検出したときに前記不揮発性メモリを前記マイクロプロセッサのバスから切り離す。その後，前記外部インタフェース制御部が，前記外部バスに接続される外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信し，前記外部装置から前記外部バスを介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込むことにより，ファームウェアを更新する。
【発明の効果】
【００３３】
本発明は，以下の効果を奏する。
（１）組み込み制御装置等のファームウェアで動作する処理装置の立上げが不可能な状態や，ファームウェアにバグがあり暴走した状態でも，ファームウェアの修復が可能となる。
（２）ファームウェアの更新機能を予めファームウェアの機能に盛り込む必要がないため，メモリ量の増大を防止でき，ファームウェア開発のコストの増加を抑止できる。
（３）ファームウェア更新の失敗対策のためにフラッシュメモリの格納面を複数面用意する必要がなく，基板の実装面積の増大やコストの増加を抑止できる。
（４）フラッシュメモリの格納面を複数制御する機能が不要なため，ファームウェアの処理能力向上，ハードウェア回路の簡素化が可能となる。
（５）フラッシュメモリがソケットで基板に実装されていない組み込み制御装置においても，フラッシュメモリを脱着しないでファームウェアを更新できるようになるため保守性がよくなる。
【発明を実施するための最良の形態】
【００３４】
図１は，本発明の原理説明図である。組み込み制御装置１は，例えば各種の周辺機器や家電製品その他に組み込まれ，ファームウェア１３０で動作する処理装置である。組み込み制御装置１は，マイクロプロセッサ１１と，主メモリ１２と，ファームウェア１３０が格納されるフラッシュメモリ１３と，フラッシュメモリ１３内のファームウェア１３０の更新処理を行う外部インタフェース制御部１０とを備える。１５はデータバスやアドレスバス等のバス，１７はバス１５の制御権獲得／解放などのためのコントロールバスである。
【００３５】
また，４は更新用ファームウェア４１のファイルの書き込み要求を外部インタフェース制御部１０に送信するパーソナルコンピュータ（ＰＣ）等の端末，１８は外部インタフェース制御部１０と端末４とを接続する，外部機接続用の外部バスである。更新用ファームウェア４１は，端末４の記憶装置に格納されている。また，外部バス１８として，例えばＵＳＢケーブルが用いられる。
【００３６】
外部インタフェース制御部１０内において，１０１は外部バス１８の接続を検出する外部バス接続検出部，１０２は外部バス１８を介して，端末４から更新用ファームウェア４１のファイルの書き込み要求を受信する書き込み要求受信部，１０３は外部バス１８の接続検出時に，コントロールバス１７を介してマイクロプロセッサ１１からバス１５の制御権の譲渡を受け，マイクロプロセッサ１１とフラッシュメモリ１３間のバス１５の切り離しを行うバス切り離し部，１０４はバス１５の切り離し後に，更新用ファームウェア４１のファイルをフラッシュメモリ１３に書き込んで，ファームウェアの更新処理を行うファームウェア更新部である。
【００３７】
図１に示す構成を採る組み込み制御装置１は，以下に述べるように，端末４から外部インタフェース制御部１０を介し，直接フラッシュメモリ１３に対してファームウェアの更新を行うことができる。
【００３８】
すなわち，フラッシュメモリ１３内に格納されたファームウェア１３０を更新する際には，更新用のファームウェア４１を格納した端末４を組み込み制御装置１と外部バス１８で接続する。外部インタフェース制御部１０内の外部バス接続検出部１０１が外部バス１８の接続を検出すると，バス切り離し部１０３が，コントロールバス１７のバス制御の信号線を使用して，マイクロプロセッサ１１からバス１５の制御権を獲得し，マイクロプロセッサ１１とフラッシュメモリ１３間のバス１５の切り離しを行う。
【００３９】
そして，ファームウェア更新部１０４が，書き込み要求受信部１０２が端末４から受信した書き込み要求に従って，更新用ファームウェア４１のファイルをフラッシュメモリ１３内に書き込む。フラッシュメモリ１３に更新用ファームウェア４１を書き込んでいる間は，マイクロプロセッサ１１とフラッシュメモリ１３間のバス１５が切り離されているため，マイクロプロセッサ１１がフラッシュメモリ１３にアクセスすることはない。ファームウェア１３０の更新後に，マイクロプロセッサ１１を更新後のファームウェア１３０で立ち上げ，正常に動作するかどうかを検証する。検証が失敗した場合にも，同様に，端末４から再度，修正した更新用ファームウェア４１の書き込み要求を送信することにより，正しい更新用ファームウェア４１の再書き込みを実施することができる。
【００４０】
図２は，本発明の実施の形態に係る組み込み制御装置の構成例を示す図である。本実施の形態におけるファームウェア更新方法は，例えば，図２に示す組み込み制御装置６と，更新用ファームウェア４１を組み込み制御装置６に送信するパーソナルコンピュータ（ＰＣ）等のＵＳＢホスト５によって実現される。
【００４１】
組み込み制御装置６において，２０はフラッシュメモリ１３内に格納されたファームウェア１３０の更新処理を行うＵＳＢコントローラであり，図１の外部インタフェース制御部１０に相当するもの，１５−１はアドレスバス，１５−２はデータバスである。マイクロプロセッサ１１，主メモリ１２，フラッシュメモリ１３，コントロールバス１７は，図１に示す組み込み制御装置１内の同符号の構成要素と同様である。１９はＵＳＢコントローラ２０とＵＳＢホスト５とを接続するＵＳＢケーブルである。
【００４２】
ＵＳＢコントローラ２０とフラッシュメモリ１３とは，データのリード／ライトを行うためにアドレスバス１５−１およびデータバス１５−２で接続される。ＵＳＢコントローラ２０と主メモリ１２とマイクロプロセッサ１１との間は，バス制御によりバスの制御権をマイクロプロセッサ１１から譲りうけ，マイクロプロセッサ１１とフラッシュメモリ１３間のバスの切り離しを行うためにコントロールバス１７で接続される。
【００４３】
組み込み制御装置６のＵＳＢコントローラ２０はＵＳＢクライアントであり，ＵＳＢホスト５とは，更新用ファームウェア４１のファイルの送受信のためＵＳＢケーブル１９で接続される。
【００４４】
図３は，ＵＳＢコントローラの構成の一例を示す図である。図３に示すように，組み込み制御装置６のＵＳＢコントローラ２０は，ＵＳＢインタフェースのパケット送受信の制御を行うトランシーバ部（送受信制御部）２０１，ＵＳＢ機能の制御を行うＵＳＢ機能制御部２０２，ＵＳＢケーブル１９の接続を検出してバスの切り離し要求を行う接続検出部２０３，フラッシュメモリ１３に対するデータ（更新用ファームウェア４１のファイル）の読み書きを行うドライバ部２０４から構成される。
【００４５】
トランシーバ部２０１の対ＵＳＢホストインタフェース側には，ＵＳＢケーブル１９の周辺機器側に設けられるＵＳＢ・Ｂプラグ１９−１と接続可能なＵＳＢレセプタクル２００を装備する。
【００４６】
接続検出部２０３は，ＵＳＢレセプタクル２００にＵＳＢ・Ｂプラグ１９−１が接続されるのを監視し，接続を検出した場合には，ドライバ部２０４を通してマイクロプロセッサ１１とフラッシュメモリ１３間のバスの切り離し要求を行う。
【００４７】
ドライバ部２０４は，フラッシュメモリ１３とアドレスバス１５−１，データバス１５−２で接続され，フラッシュメモリ１３のデータの読み書きを行う。また，ドライバ部２０４は，接続検出部２０３からのバス切り離し要求を受け，コントロールバス１７に接続されたマイクロプロセッサ１１に対して＃ＢＵＳＲＱ(BUS ReQuest) のバス制御信号線を使用して，バスの制御権の譲渡を要求し，マイクロプロセッサ１１からの＃ＢＵＳＡＫ(BUS AcKnowledge) を受信し，バスの切り離しを行う。
【００４８】
図４は，ＵＳＢホストの構成の一例を示す図である。図４に示すように，ＵＳＢホスト５は，ＵＳＢデバイス（周辺機器）を複数接続するためのＵＳＢハブ部５１と，ＵＳＢケーブル１９を介したパケット送受信の制御を行うトランシーバ部５２と，ＵＳＢ機能の制御を行うＵＳＢ機能制御部５３と，ファームウェア更新を行うプログラムとコンピュータからなるファームウェア更新ソフト部５４と，更新用ファームウェア４１のファイルを格納する外部記憶装置５５とから構成される。ＵＳＢホスト５は，一般に用いられているＵＳＢメモリへのアクセス機能と同様な機能を備えている。
【００４９】
ＵＳＢハブ部５１の対ＵＳＢコントローラインタフェース側には，ＵＳＢケーブル１９のホスト側に設けられるＵＳＢ・Ａプラグ１９−２と接続可能なＵＳＢレセプタクル５０を装備する。
【００５０】
ファームウェア更新ソフト部５４は，ＵＳＢホスト５のユーザから入力されたファームウェア更新要求を受けて，外部記憶装置５５にある更新用ファームウェア４１のファイルを読み出し，ＵＳＢ機能制御部５３に対して書き込み要求を行うことによりファームウェアの更新を行う。
【００５１】
図５は，ＵＳＢホストの動作処理を説明する図である。ＵＳＢホスト５のファームウェア更新ソフト部５４は，ファームウェア更新要求を受けると，外部記憶装置５５から更新用ファームウェア４１のＲＯＭイメージファイルを読み込む（ステップＳ１）。
【００５２】
ファームウェア更新ソフト部５４は，読み込んだファイルの書き込み要求をＵＳＢ機能制御部５３に対して行う（ステップＳ２）。ＵＳＢ機能制御部５３は，トランシーバ部５２を介してＵＳＢパケットの送信要求を行う（ステップＳ３）。トランシーバ部５２は，要求されたデータをＵＳＢのパケットに変換して（ステップＳ４），ＵＳＢケーブル１９に対しＵＳＢパケットを送信する（ステップＳ５）。
【００５３】
図６は，ＵＳＢコントローラにおけるファームウェア更新処理を説明する図である。ＵＳＢコントローラ２０のトランシーバ部２０１は，ＵＳＢホスト５からＵＳＢケーブル１９を介してＵＳＢパケットを受信し（ステップＳ１１），受信したＵＳＢパケットからデータを組み立て（ステップＳ１２），ＵＳＢ機能制御部２０２にデータを渡す。
【００５４】
ＵＳＢ機能制御部２０２に渡されたデータがファイル書き込み要求であれば（ステップＳ１３），ドライバ部２０４を介してフラッシュメモリ１３にＲＯＭイレーズ処理を行った後（ステップＳ１４），更新用ファームウェア４１のファイルをフラッシュメモリ１３に書き込む（ステップＳ１５）。
【００５５】
図７は，ＵＳＢコントローラにおけるバス切り離し処理を説明する図である。接続検出部２０３は，ＵＳＢコントローラ２０のＵＳＢレセプタクル２００においてＵＳＢケーブル１９のプラグの抜き差しが発生したかを監視する。ドライバ部２０４は，接続検出部２０３からのプラグの抜き差し発生に関するイベントを待つ（ステップＳ２１）。
【００５６】
イベントが発生すると，ドライバ部２０４はイベントを分析し（ステップＳ２２），発生したイベントがプラグインである場合，マイクロプロセッサ１１のコントロールバス１７の＃ＢＵＳＡＫの状態を確認し（ステップＳ２３），ネゲート（無効）状態であれば，＃ＢＵＳＲＱをアサート（有効）状態にし，マイクロプロセッサ１１とフラッシュメモリ１３の間のバス（アドレスバス１５−１およびデータバス１５−２）の切り離しを要求する（ステップＳ２４）。その後，＃ＢＵＳＡＫがアサート状態となったことを確認して（ステップＳ２５），ステップＳ２１へ戻り，再びＵＳＢケーブル１９のプラグの抜き差しの監視状態となる。上記ステップＳ２３において＃ＢＵＳＡＫの状態がネゲート（無効）状態でなければステップＳ２１に戻る。
【００５７】
ステップＳ２２におけるイベント分析の結果，発生イベントがプラグアウトの場合には，ドライバ部２０４は，マイクロプロセッサ１１のコントロールバス１７の＃ＢＵＳＡＫの状態を確認し（ステップＳ２６），アサート状態であれば，＃ＢＵＳＲＱをネゲート状態にする（ステップＳ２７）。これにより，バスの制御権をマイクロプロセッサ１１に戻し，マイクロプロセッサ１１からの＃ＢＵＳＡＫがネゲート状態になったことを確認して（ステップＳ２８），ステップＳ２１へ戻る。これにより，再びＵＳＢケーブル１９のプラグの抜き差しの監視状態となる。
【００５８】
コントロールバス１７の＃ＢＵＳＲＱをアサート（有効）状態にし，＃ＢＵＳＡＫがアサート状態となったことを確認するというバスの切り離し手順の後，フラッシュメモリ１３はＵＳＢの自動認識機能によりＵＳＢデバイスとして使用可能となる。
【００５９】
図８は，本発明のファームウェア更新方法を用いたファームウェアの修復処理を説明する図である。ファームウェア更新が完了すると（ステップＳ３１），更新後のファームウェアで立上げを行う（ステップＳ３２）。ファームウェアの検証結果がＯＫであれば更新処理を終了する（ステップＳ３３）。
【００６０】
ファームウェアの検証結果がＮＧの場合，ステップＳ３４〜Ｓ３６においてファームウェア更新のやり直しを行う。すなわち，組み込み制御装置６にＰＣ等のＵＳＢホスト５を接続し（ステップＳ３４），ＵＳＢホスト５から新しい更新用ファームウェア４１をフラッシュメモリ１３にコピーし（ステップＳ３５），組み込み制御装置６からＰＣ等のＵＳＢホスト５を切り離す（ステップＳ３６）。その後，新ファームウェアで立上げを行い（ステップＳ３７），ファームウェアの検証結果がＯＫかどうかを確認する（ステップＳ３８）。ＯＫであれば更新処理を終了し，ファームウェアの検証結果がＮＧであればステップＳ３４に戻る。
【００６１】
以上説明した本発明のファームウェア更新方法によれば，保守者（ユーザ）が，組み込み制御装置６のＵＳＢコントローラ２０上に実装されたＵＳＢレセプタクル２００とＵＳＢホスト５（ＰＣで代用可能）のＵＳＢレセプタクル５０とをＵＳＢケーブル１９で接続することで，自動的にフラッシュメモリ１３は，ＵＳＢ大容量記憶装置デバイス（ＵＳＢメモリ）として使用できるようになる。
【００６２】
保守者は，例えばファームウェア更新ソフト部５４，ＵＳＢ機能制御部５３およびトランシーバ部５２といった，ＵＳＢホスト５上のファイルマネージメントツールを用いて，外部記憶装置５５に予め保存してある更新用ファームウェア４１のファイルをフラッシュメモリ１３にコピーすることにより，従来技術のように，フラッシュメモリ１３の脱着を実施することなく，また，ファームウェアに予め盛り込んだファームウェアの更新用プログラムを立ち上げることなく，ファームウェアの更新を実施することができる。
【００６３】
通常ファームウェアのフラッシュメモリ１３での格納アドレスは，固定的に決められているため，ＵＳＢコントローラ２０のドライバ部２０４は，固定のフラッシュメモリ１３のアドレスに書き込むことによりファームウェアを更新することができる。
【００６４】
ファームウェアの更新に失敗した場合にも，例えば図８に示す手順により，従来技術のようにフラッシュメモリ１３の脱着を実施することなく，また，ファームウェアに予め盛り込んだファームウェアの更新用プログラムを立ち上げることなくファームウェアの修復処理が実施可能となる。
【図面の簡単な説明】
【００６５】
【図１】本発明の原理説明図である。
【図２】組み込み制御装置の構成例を示す図である。
【図３】ＵＳＢコントローラの構成の一例を示す図である。
【図４】ＵＳＢホストの構成の一例を示す図である。
【図５】ＵＳＢホストの動作処理を説明する図である。
【図６】ＵＳＢコントローラにおけるファームウェア更新処理を説明する図である。
【図７】ＵＳＢコントローラにおけるバス切り離し処理を説明する図である。
【図８】本発明のファームウェア更新方法を用いたファームウェアの修復処理を説明する図である。
【図９】組み込み制御装置の構成図である。
【図１０】組み込み制御装置のファームウェア修復処理を説明する図である。
【図１１】組み込み制御装置のファームウェア修復処理を説明する図である。
【図１２】組み込み制御装置での，フラッシュメモリ上のメモリイメージを示す図である。
【図１３】組み込み制御装置での，フラッシュメモリ上のメモリイメージを示す図である。
【符号の説明】
【００６６】
１，２，６  組み込み制御装置
３，４  端末
５  ＵＳＢホスト
１０  外部インタフェース制御部
１１  マイクロプロセッサ
１２  主メモリ
１３  フラッシュメモリ
１４  ＬＡＮまたはシリアルコントローラ
１５  バス
１５−１  アドレスバス
１５−２  データバス
１６  ＬＡＮまたはシリアルインタフェース
１８  外部バス
１９  ＵＳＢケーブル
１９−１  ＵＳＢ・Ｂプラグ
１９−２  ＵＳＢ・Ａプラグ
２０  ＵＳＢコントローラ
３１，４１  更新用ファームウェア
５０，２００  ＵＳＢレセプタクル
５１  ＵＳＢハブ部
５２，２０１  トランシーバ部
５３，２０２  ＵＳＢ機能制御部
５４  ファームウェア更新ソフト部
５５  外部記憶装置
１０１  外部バス接続検出部
１０２  書き込み要求受信部
１０３  バス切り離し部
１０４  ファームウェア更新部
１３１  ブートプログラム
１３２  システムプログラム
１３３  制御プログラム
１３４  更新プログラム
２０３  接続検出部
２０４  ドライバ部
【図１】
2006106914.tif 000003
【図２】
2006106914.tif 000004
【図３】
2006106914.tif 000005
【図４】
2006106914.tif 000006
【図５】
2006106914.tif 000007
【図６】
2006106914.tif 000008
【図７】
2006106914.tif 000009
【図８】
2006106914.tif 000010
【図９】
2006106914.tif 000011
【図１０】
2006106914.tif 000012
【図１１】
2006106914.tif 000013
【図１２】
2006106914.tif 000014
【図１３】
2006106914.tif 000015