JP2006106914A - ファームウェアで動作する処理装置およびファームウェア更新方法 - Google Patents

ファームウェアで動作する処理装置およびファームウェア更新方法 Download PDF

Info

Publication number
JP2006106914A
JP2006106914A JP2004289533A JP2004289533A JP2006106914A JP 2006106914 A JP2006106914 A JP 2006106914A JP 2004289533 A JP2004289533 A JP 2004289533A JP 2004289533 A JP2004289533 A JP 2004289533A JP 2006106914 A JP2006106914 A JP 2006106914A
Authority
JP
Japan
Prior art keywords
firmware
bus
external
update
usb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004289533A
Other languages
English (en)
Inventor
Yoshiyuki Takamasa
義之 高正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004289533A priority Critical patent/JP2006106914A/ja
Publication of JP2006106914A publication Critical patent/JP2006106914A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ファームウェアで動作する処理装置に関し,ファームウェアの更新機能を予めファームウェアの機能に盛り込まなくても,外部端末から直接フラッシュメモリ内のファームウェアの更新を行うことを可能とする。
【解決手段】組み込み制御装置1の外部インタフェース制御部10が,外部バス(USBケーブル)18の接続を検出すると,コントロールバス17を用いてマイクロプロセッサ11とフラッシュメモリ13との間のバス15の切り離し処理を行った上で,端末4から受信した更新用ファームウェア41のファイルの書き込み要求に従って,更新用ファームウェア41のファイルを,直接,フラッシュメモリ13に書き込む。
【選択図】図1

Description

本発明は,組み込み制御装置等のファームウェア更新技術に関し,特に,外部端末から直接フラッシュメモリ内のファームウェアの更新を行うことができるファームウェアで動作する処理装置およびファームウェア更新方法に関する。
近年,組み込み制御装置のファームウェアに要求される機能は多岐に渡り,短期間に機能の追加要求・機能変更・バグ修正が要求され,ファームウェア開発者,CE(カスタマエンジニア)からファームウェア更新失敗時にも対応可能な早急かつ確実なファームウェア更新方法が要望されている。
図9は,従来のファームウェア更新方法を実現する組み込み制御装置の構成図を示す。図9のように,組み込み制御装置2は,組み込み制御装置2を制御するマイクロプロセッサ11と,ファームウェア実行のためにプログラムを一時的に格納する主メモリ12と,ファームウェアを格納するフラッシュメモリ(ROM)13と,組み込み制御装置2の外部とのデータの送受信を制御するLANまたはシリアルコントローラ14と,これらを接続するデータバスやアドレスバス等のバス15とから構成されている。3は端末であり,組み込み制御装置2を動作させるための新しいファームウェアである更新用ファームウェア31を持つ。16は端末3と組み込み制御装置2とを接続するLANまたはシリアルインタフェースである。
フラッシュメモリ13には,主メモリ12へのプログラムの転送を行い,組み込み制御装置2の起動制御を行うためのブートプログラム131,組み込み制御装置2の制御を行う制御プログラム133とその制御のためのシステムプログラム132,フラッシュメモリ13内のファームウェア自身を更新するための更新プログラム134が格納される。
以下に,図9に示す組み込み制御装置2の各構成部分を説明する。マイクロプロセッサ11は,フラッシュメモリ13に格納されたシステムプログラム132や制御プログラム133により組み込み制御装置2の制御を行うCPUである。
主メモリ12は,DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory )などで構成される主記憶メモリであり,ファームウェアを実行するためにプログラムを一時的に格納するメモリである。フラッシュメモリ13は,ファームウェアが格納される書き換え可能な不揮発性メモリである。組み込み制御装置2では,ファームウェアをROMに格納しておき,ROMから主記憶メモリ上にプログラムを一時的に格納し実行する方法を用いることが一般的である。近年では内容の消去と再書き込みが電気的に可能なフラッシュメモリを搭載することが多い。
図9に示すように,フラッシュメモリ13を利用した場合,組み込み制御装置2自身だけでソフトウェアを用いて内容の書き換えが可能となるため,フラッシュメモリ13内にシステムプログラム132と更新プログラム134を格納してファームウェアの更新を行うことが多い。また,ファームウェアの更新が失敗した場合を考慮して,フラッシュメモリ13を複数面実装し,古いファームウェアを保存する組み込み制御装置も存在する。
LANまたはシリアルコントローラ14は,更新用ファームウェア31を組み込み制御装置2の外部の記憶装置(図9では端末3)から入手するために,LANまたはシリアルインタフェース16の制御を行う装置である。
次に,図9に示す従来技術の動作を説明する。フラッシュメモリ13を実装している組み込み制御装置2では,ファームウェアの更新機能(図9では更新プログラム134)は,予めファームウェアの機能としてフラッシュメモリ13上に組み込まれており,LANでネットワークに接続された端末3,または例えばシリアルケーブルで接続された端末3等の外部記憶装置から更新用ファームウェア31を転送することにより,自身のファームウェアの更新を行っている。
具体的には,端末3からファームウェアの更新操作が行われると,フラッシュメモリ13から主メモリ12内にファームウェアの更新プログラム134がロードされ,マイクロプロセッサ11は,主メモリ12内の更新プログラム134によって,LANまたはシリアルコントローラ14を介して更新用ファームウェア31を読み込み,それをフラッシュメモリ13に書き込み,ファームウェアを更新する。
従来の組み込み制御装置2においてファームウェアの更新に失敗した場合には,図10または図11に示す手順で修復を行っている。
図10は,組み込み制御装置がフラッシュメモリを複数面実装する場合のファームウェア修復処理を説明する図である。フラッシュメモリ13内のファームウェア更新が完了すると(ステップS51),更新後のファームウェアで立上げを行う(ステップS52)。ファームウェアの検証結果(S53)がOKであれば更新処理を終了し,ファームウェアの検証結果がNGならステップS54〜S56においてファームウェア更新のやり直しを行う。
すなわち,更新後のフラッシュメモリ13とは異なる別のフラッシュメモリ内に格納された古いファームウェアで立上げを行い(ステップS54),LANまたはシリアルインタフェース16を通じて端末3から正しいファ−ムウェアを取得し(ステップS55),フラッシュメモリ13への書き込みを行う(ステップS56)。そして,新ファームウェアで立上げを行い(ステップS57),ステップS53に戻る。
図11は,組み込み制御装置がフラッシュメモリを1面しか持たない場合のファームウェア修復処理を説明する図である。ファームウェア更新が完了すると(ステップS61),更新後のファームウェアで立上げを行う(ステップS62)。ファームウェアの検証結果がOKであれば更新処理を終了し(ステップS63),ファームウェアの検証結果がNGならステップS64〜S66においてファームウェア更新のやり直しを行う。
すなわち,フラッシュメモリ13は1面しかないため,そのフラッシュメモリ13を取り外し(ステップS64),例えばROMライタ等の外部装置でフラッシュメモリ13への書き込みを行った後(ステップS65),フラッシュメモリ13の再実装を行う(ステップS66)。その新ファームウェアで立上げを行い(ステップS67),ステップS63に戻って,ファームウェアの再検証を行う。
図12は,フラッシュメモリを複数面実装する組み込み制御装置での,フラッシュメモリ上のメモリイメージを示す図である。図13は,フラッシュメモリを1面しか持たない組み込み制御装置での,フラッシュメモリ上のメモリイメージを示す図である。
図12に示すように,フラッシュメモリを複数面実装する組み込み制御装置では,更新用ファームウェア格納面におけるファームウェア更新の失敗をファームウェアの検証により検出すると,古いファームウェア格納面上に残してある古いファームウェアで立上げ直し,新たにファームウェアの修復を行う。
一方,図13に示すように,フラッシュメモリを1面しか持たない組み込み制御装置では,更新したファームウェアは,暴走する可能性も考えられるため,フラッシュメモリを組み込み制御装置から取り外し,外部の装置(ROMライタ等)で新たにファームウェアの修復を行う。
なお,運用中のファームウェアの更新に関する従来の方法として,下記の特許文献1には,USB(Universal Serial Bus)インタフェースを介してUSB機器のファームウェアを書き換える技術に関して記載され,下記の特許文献2には,ファームウェア書き換え機能を備えたUSB装置に関して記載されている。
特開2000−207190号公報 特開2001−117778号公報
ファームウェアの更新機能を予めファームウェアの機能に組み込んだ従来のファームウェアの更新方法では,以下の問題がある。
(1)組み込み制御装置上のファームウェアが動作可能であることを前提とした更新方法であるため,ブートプログラムの部分で更新の失敗,または,更新用ファームウェアにバグがあった場合,組み込み制御装置の立上げができず,ファームウェアの修復が不可能となってしまう問題があった。
(2)組み込み制御装置上のファームウェアが動作可能であることを前提とした更新方法であるため,ファームウェアの更新プログラムの部分で更新の失敗,または,更新用ファームウェアにバグがあった場合,ファームウェアの修復が不可能となってしまう問題があった。
(3)ファームウェアの更新プログラムを予めファームウェアの機能に盛り込む必要があるため,メモリ量の増大と,ファームウェア開発のためのコストが掛かる問題があった。
(4)ファームウェア更新の失敗対策のためにフラッシュメモリの格納面を複数面実装する組み込み制御装置であっても,1面しかファームウェアが入っていない場合や,複数面のファームウェアの破損が起きてしまった場合には,ファームウェアの修復が不可能となってしまう問題があった。
(5)ファームウェア更新の失敗対策のために,フラッシュメモリの格納面を複数面実装する組み込み制御装置では,メモリ量を増やさなければならないため,基板の実装面積が増大する場合があり,コスト高となる問題があった。
(6)ファームウェア更新の失敗対策のために,フラッシュメモリの格納面を複数面実装する組み込み制御装置では,ファームウェアの更新プログラム及びハードウェアの回路に,フラッシュメモリの複数面を制御する機能を盛り込む必要があるため,ファームウェアは処理時間が掛かってしまう問題があり,ハードウェアは回路が複雑になってしまう問題があった。
(7)フラッシュメモリの格納面を1面しか持たない組み込み制御装置では,フラッシュメモリがソケットで基板に実装されていない場合には,基板を工場に返却してフラッシュメモリを基板から脱着し,外部装置(例えばROMライタ)でファームウェアを更新しなければならないため,保守性が悪い問題があった。
また,上記特許文献1,特許文献2に記載された技術は,ファームウェアが動作していることを前提としており,組み込み制御装置の立上げ不能状態,動作不能状態については考慮されていない。このため,ファームウェアの更新の結果,組み込み制御装置の立上げができなくなった場合には,ファームウェアの修復が不可能である。
本発明は,このような従来技術の課題を解決しようとするものであって,ファームウェアの更新機能を予めファームウェアの機能に盛り込まなくても,外部端末から直接フラッシュメモリ内のファームウェアを更新することができるようにすることを目的とする。
上記課題を解決するため,本発明は,マイクロプロセッサと書き換え可能な不揮発性メモリ(例えば,フラッシュメモリ)とを備え,前記不揮発性メモリに格納されたファームウェアに従って動作する処理装置であって,外部装置から前記不揮発性メモリに格納されたファームウェアを更新するための外部インタフェース制御部(例えば,USBコントローラ)を備え,前記外部インタフェース制御部は,前記外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信する書き込み要求受信手段と,前記不揮発性メモリを前記マイクロプロセッサのバスから切り離すバス切り離し手段と,前記バス切り離し手段によるバスの切り離しの後に,前記外部装置から外部バス(例えば,USBケーブル)を介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込むファームウェア更新手段とを備えることを特徴とする。
また,前記外部インタフェース制御部は,前記外部装置に接続される外部バスの接続を検出する外部バス接続検出手段を備え,前記バス切り離し手段は,前記外部バス接続検出手段が前記外部バスの接続を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを切り離し,前記外部バスの切断を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを接続することを特徴とする。
外部装置から前記不揮発性メモリに格納されたファームウェアを更新するときには,前記外部インタフェース制御部が,外部バスの接続を監視し,外部バスの接続を検出したときに前記不揮発性メモリを前記マイクロプロセッサのバスから切り離す。その後,前記外部インタフェース制御部が,前記外部バスに接続される外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信し,前記外部装置から前記外部バスを介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込むことにより,ファームウェアを更新する。
本発明は,以下の効果を奏する。
(1)組み込み制御装置等のファームウェアで動作する処理装置の立上げが不可能な状態や,ファームウェアにバグがあり暴走した状態でも,ファームウェアの修復が可能となる。
(2)ファームウェアの更新機能を予めファームウェアの機能に盛り込む必要がないため,メモリ量の増大を防止でき,ファームウェア開発のコストの増加を抑止できる。
(3)ファームウェア更新の失敗対策のためにフラッシュメモリの格納面を複数面用意する必要がなく,基板の実装面積の増大やコストの増加を抑止できる。
(4)フラッシュメモリの格納面を複数制御する機能が不要なため,ファームウェアの処理能力向上,ハードウェア回路の簡素化が可能となる。
(5)フラッシュメモリがソケットで基板に実装されていない組み込み制御装置においても,フラッシュメモリを脱着しないでファームウェアを更新できるようになるため保守性がよくなる。
図1は,本発明の原理説明図である。組み込み制御装置1は,例えば各種の周辺機器や家電製品その他に組み込まれ,ファームウェア130で動作する処理装置である。組み込み制御装置1は,マイクロプロセッサ11と,主メモリ12と,ファームウェア130が格納されるフラッシュメモリ13と,フラッシュメモリ13内のファームウェア130の更新処理を行う外部インタフェース制御部10とを備える。15はデータバスやアドレスバス等のバス,17はバス15の制御権獲得/解放などのためのコントロールバスである。
また,4は更新用ファームウェア41のファイルの書き込み要求を外部インタフェース制御部10に送信するパーソナルコンピュータ(PC)等の端末,18は外部インタフェース制御部10と端末4とを接続する,外部機接続用の外部バスである。更新用ファームウェア41は,端末4の記憶装置に格納されている。また,外部バス18として,例えばUSBケーブルが用いられる。
外部インタフェース制御部10内において,101は外部バス18の接続を検出する外部バス接続検出部,102は外部バス18を介して,端末4から更新用ファームウェア41のファイルの書き込み要求を受信する書き込み要求受信部,103は外部バス18の接続検出時に,コントロールバス17を介してマイクロプロセッサ11からバス15の制御権の譲渡を受け,マイクロプロセッサ11とフラッシュメモリ13間のバス15の切り離しを行うバス切り離し部,104はバス15の切り離し後に,更新用ファームウェア41のファイルをフラッシュメモリ13に書き込んで,ファームウェアの更新処理を行うファームウェア更新部である。
図1に示す構成を採る組み込み制御装置1は,以下に述べるように,端末4から外部インタフェース制御部10を介し,直接フラッシュメモリ13に対してファームウェアの更新を行うことができる。
すなわち,フラッシュメモリ13内に格納されたファームウェア130を更新する際には,更新用のファームウェア41を格納した端末4を組み込み制御装置1と外部バス18で接続する。外部インタフェース制御部10内の外部バス接続検出部101が外部バス18の接続を検出すると,バス切り離し部103が,コントロールバス17のバス制御の信号線を使用して,マイクロプロセッサ11からバス15の制御権を獲得し,マイクロプロセッサ11とフラッシュメモリ13間のバス15の切り離しを行う。
そして,ファームウェア更新部104が,書き込み要求受信部102が端末4から受信した書き込み要求に従って,更新用ファームウェア41のファイルをフラッシュメモリ13内に書き込む。フラッシュメモリ13に更新用ファームウェア41を書き込んでいる間は,マイクロプロセッサ11とフラッシュメモリ13間のバス15が切り離されているため,マイクロプロセッサ11がフラッシュメモリ13にアクセスすることはない。ファームウェア130の更新後に,マイクロプロセッサ11を更新後のファームウェア130で立ち上げ,正常に動作するかどうかを検証する。検証が失敗した場合にも,同様に,端末4から再度,修正した更新用ファームウェア41の書き込み要求を送信することにより,正しい更新用ファームウェア41の再書き込みを実施することができる。
図2は,本発明の実施の形態に係る組み込み制御装置の構成例を示す図である。本実施の形態におけるファームウェア更新方法は,例えば,図2に示す組み込み制御装置6と,更新用ファームウェア41を組み込み制御装置6に送信するパーソナルコンピュータ(PC)等のUSBホスト5によって実現される。
組み込み制御装置6において,20はフラッシュメモリ13内に格納されたファームウェア130の更新処理を行うUSBコントローラであり,図1の外部インタフェース制御部10に相当するもの,15−1はアドレスバス,15−2はデータバスである。マイクロプロセッサ11,主メモリ12,フラッシュメモリ13,コントロールバス17は,図1に示す組み込み制御装置1内の同符号の構成要素と同様である。19はUSBコントローラ20とUSBホスト5とを接続するUSBケーブルである。
USBコントローラ20とフラッシュメモリ13とは,データのリード/ライトを行うためにアドレスバス15−1およびデータバス15−2で接続される。USBコントローラ20と主メモリ12とマイクロプロセッサ11との間は,バス制御によりバスの制御権をマイクロプロセッサ11から譲りうけ,マイクロプロセッサ11とフラッシュメモリ13間のバスの切り離しを行うためにコントロールバス17で接続される。
組み込み制御装置6のUSBコントローラ20はUSBクライアントであり,USBホスト5とは,更新用ファームウェア41のファイルの送受信のためUSBケーブル19で接続される。
図3は,USBコントローラの構成の一例を示す図である。図3に示すように,組み込み制御装置6のUSBコントローラ20は,USBインタフェースのパケット送受信の制御を行うトランシーバ部(送受信制御部)201,USB機能の制御を行うUSB機能制御部202,USBケーブル19の接続を検出してバスの切り離し要求を行う接続検出部203,フラッシュメモリ13に対するデータ(更新用ファームウェア41のファイル)の読み書きを行うドライバ部204から構成される。
トランシーバ部201の対USBホストインタフェース側には,USBケーブル19の周辺機器側に設けられるUSB・Bプラグ19−1と接続可能なUSBレセプタクル200を装備する。
接続検出部203は,USBレセプタクル200にUSB・Bプラグ19−1が接続されるのを監視し,接続を検出した場合には,ドライバ部204を通してマイクロプロセッサ11とフラッシュメモリ13間のバスの切り離し要求を行う。
ドライバ部204は,フラッシュメモリ13とアドレスバス15−1,データバス15−2で接続され,フラッシュメモリ13のデータの読み書きを行う。また,ドライバ部204は,接続検出部203からのバス切り離し要求を受け,コントロールバス17に接続されたマイクロプロセッサ11に対して#BUSRQ(BUS ReQuest) のバス制御信号線を使用して,バスの制御権の譲渡を要求し,マイクロプロセッサ11からの#BUSAK(BUS AcKnowledge) を受信し,バスの切り離しを行う。
図4は,USBホストの構成の一例を示す図である。図4に示すように,USBホスト5は,USBデバイス(周辺機器)を複数接続するためのUSBハブ部51と,USBケーブル19を介したパケット送受信の制御を行うトランシーバ部52と,USB機能の制御を行うUSB機能制御部53と,ファームウェア更新を行うプログラムとコンピュータからなるファームウェア更新ソフト部54と,更新用ファームウェア41のファイルを格納する外部記憶装置55とから構成される。USBホスト5は,一般に用いられているUSBメモリへのアクセス機能と同様な機能を備えている。
USBハブ部51の対USBコントローラインタフェース側には,USBケーブル19のホスト側に設けられるUSB・Aプラグ19−2と接続可能なUSBレセプタクル50を装備する。
ファームウェア更新ソフト部54は,USBホスト5のユーザから入力されたファームウェア更新要求を受けて,外部記憶装置55にある更新用ファームウェア41のファイルを読み出し,USB機能制御部53に対して書き込み要求を行うことによりファームウェアの更新を行う。
図5は,USBホストの動作処理を説明する図である。USBホスト5のファームウェア更新ソフト部54は,ファームウェア更新要求を受けると,外部記憶装置55から更新用ファームウェア41のROMイメージファイルを読み込む(ステップS1)。
ファームウェア更新ソフト部54は,読み込んだファイルの書き込み要求をUSB機能制御部53に対して行う(ステップS2)。USB機能制御部53は,トランシーバ部52を介してUSBパケットの送信要求を行う(ステップS3)。トランシーバ部52は,要求されたデータをUSBのパケットに変換して(ステップS4),USBケーブル19に対しUSBパケットを送信する(ステップS5)。
図6は,USBコントローラにおけるファームウェア更新処理を説明する図である。USBコントローラ20のトランシーバ部201は,USBホスト5からUSBケーブル19を介してUSBパケットを受信し(ステップS11),受信したUSBパケットからデータを組み立て(ステップS12),USB機能制御部202にデータを渡す。
USB機能制御部202に渡されたデータがファイル書き込み要求であれば(ステップS13),ドライバ部204を介してフラッシュメモリ13にROMイレーズ処理を行った後(ステップS14),更新用ファームウェア41のファイルをフラッシュメモリ13に書き込む(ステップS15)。
図7は,USBコントローラにおけるバス切り離し処理を説明する図である。接続検出部203は,USBコントローラ20のUSBレセプタクル200においてUSBケーブル19のプラグの抜き差しが発生したかを監視する。ドライバ部204は,接続検出部203からのプラグの抜き差し発生に関するイベントを待つ(ステップS21)。
イベントが発生すると,ドライバ部204はイベントを分析し(ステップS22),発生したイベントがプラグインである場合,マイクロプロセッサ11のコントロールバス17の#BUSAKの状態を確認し(ステップS23),ネゲート(無効)状態であれば,#BUSRQをアサート(有効)状態にし,マイクロプロセッサ11とフラッシュメモリ13の間のバス(アドレスバス15−1およびデータバス15−2)の切り離しを要求する(ステップS24)。その後,#BUSAKがアサート状態となったことを確認して(ステップS25),ステップS21へ戻り,再びUSBケーブル19のプラグの抜き差しの監視状態となる。上記ステップS23において#BUSAKの状態がネゲート(無効)状態でなければステップS21に戻る。
ステップS22におけるイベント分析の結果,発生イベントがプラグアウトの場合には,ドライバ部204は,マイクロプロセッサ11のコントロールバス17の#BUSAKの状態を確認し(ステップS26),アサート状態であれば,#BUSRQをネゲート状態にする(ステップS27)。これにより,バスの制御権をマイクロプロセッサ11に戻し,マイクロプロセッサ11からの#BUSAKがネゲート状態になったことを確認して(ステップS28),ステップS21へ戻る。これにより,再びUSBケーブル19のプラグの抜き差しの監視状態となる。
コントロールバス17の#BUSRQをアサート(有効)状態にし,#BUSAKがアサート状態となったことを確認するというバスの切り離し手順の後,フラッシュメモリ13はUSBの自動認識機能によりUSBデバイスとして使用可能となる。
図8は,本発明のファームウェア更新方法を用いたファームウェアの修復処理を説明する図である。ファームウェア更新が完了すると(ステップS31),更新後のファームウェアで立上げを行う(ステップS32)。ファームウェアの検証結果がOKであれば更新処理を終了する(ステップS33)。
ファームウェアの検証結果がNGの場合,ステップS34〜S36においてファームウェア更新のやり直しを行う。すなわち,組み込み制御装置6にPC等のUSBホスト5を接続し(ステップS34),USBホスト5から新しい更新用ファームウェア41をフラッシュメモリ13にコピーし(ステップS35),組み込み制御装置6からPC等のUSBホスト5を切り離す(ステップS36)。その後,新ファームウェアで立上げを行い(ステップS37),ファームウェアの検証結果がOKかどうかを確認する(ステップS38)。OKであれば更新処理を終了し,ファームウェアの検証結果がNGであればステップS34に戻る。
以上説明した本発明のファームウェア更新方法によれば,保守者(ユーザ)が,組み込み制御装置6のUSBコントローラ20上に実装されたUSBレセプタクル200とUSBホスト5(PCで代用可能)のUSBレセプタクル50とをUSBケーブル19で接続することで,自動的にフラッシュメモリ13は,USB大容量記憶装置デバイス(USBメモリ)として使用できるようになる。
保守者は,例えばファームウェア更新ソフト部54,USB機能制御部53およびトランシーバ部52といった,USBホスト5上のファイルマネージメントツールを用いて,外部記憶装置55に予め保存してある更新用ファームウェア41のファイルをフラッシュメモリ13にコピーすることにより,従来技術のように,フラッシュメモリ13の脱着を実施することなく,また,ファームウェアに予め盛り込んだファームウェアの更新用プログラムを立ち上げることなく,ファームウェアの更新を実施することができる。
通常ファームウェアのフラッシュメモリ13での格納アドレスは,固定的に決められているため,USBコントローラ20のドライバ部204は,固定のフラッシュメモリ13のアドレスに書き込むことによりファームウェアを更新することができる。
ファームウェアの更新に失敗した場合にも,例えば図8に示す手順により,従来技術のようにフラッシュメモリ13の脱着を実施することなく,また,ファームウェアに予め盛り込んだファームウェアの更新用プログラムを立ち上げることなくファームウェアの修復処理が実施可能となる。
本発明の原理説明図である。 組み込み制御装置の構成例を示す図である。 USBコントローラの構成の一例を示す図である。 USBホストの構成の一例を示す図である。 USBホストの動作処理を説明する図である。 USBコントローラにおけるファームウェア更新処理を説明する図である。 USBコントローラにおけるバス切り離し処理を説明する図である。 本発明のファームウェア更新方法を用いたファームウェアの修復処理を説明する図である。 組み込み制御装置の構成図である。 組み込み制御装置のファームウェア修復処理を説明する図である。 組み込み制御装置のファームウェア修復処理を説明する図である。 組み込み制御装置での,フラッシュメモリ上のメモリイメージを示す図である。 組み込み制御装置での,フラッシュメモリ上のメモリイメージを示す図である。
符号の説明
1,2,6 組み込み制御装置
3,4 端末
5 USBホスト
10 外部インタフェース制御部
11 マイクロプロセッサ
12 主メモリ
13 フラッシュメモリ
14 LANまたはシリアルコントローラ
15 バス
15−1 アドレスバス
15−2 データバス
16 LANまたはシリアルインタフェース
18 外部バス
19 USBケーブル
19−1 USB・Bプラグ
19−2 USB・Aプラグ
20 USBコントローラ
31,41 更新用ファームウェア
50,200 USBレセプタクル
51 USBハブ部
52,201 トランシーバ部
53,202 USB機能制御部
54 ファームウェア更新ソフト部
55 外部記憶装置
101 外部バス接続検出部
102 書き込み要求受信部
103 バス切り離し部
104 ファームウェア更新部
131 ブートプログラム
132 システムプログラム
133 制御プログラム
134 更新プログラム
203 接続検出部
204 ドライバ部

Claims (4)

  1. マイクロプロセッサと書き換え可能な不揮発性メモリとを備え,前記不揮発性メモリに格納されたファームウェアに従って動作する処理装置であって,
    外部装置から前記不揮発性メモリに格納されたファームウェアを更新するための外部インタフェース制御部を備え,
    前記外部インタフェース制御部は,
    前記外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信する書き込み要求受信手段と,
    前記不揮発性メモリを前記マイクロプロセッサのバスから切り離すバス切り離し手段と,
    前記バス切り離し手段によるバスの切り離しの後に,前記外部装置から外部バスを介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込むファームウェア更新手段とを備える
    ことを特徴とするファームウェアで動作する処理装置。
  2. 請求項1記載のファームウェアで動作する処理装置において,
    前記外部インタフェース制御部は,前記外部装置に接続される外部バスの接続を検出する外部バス接続検出手段を備え,
    前記バス切り離し手段は,前記外部バス接続検出手段が前記外部バスの接続を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを切り離し,前記外部バスの切断を検出したときに前記マイクロプロセッサと前記不揮発性メモリとの間のバスを接続する
    ことを特徴とするファームウェアで動作する処理装置。
  3. 請求項1または請求項2記載のファームウェアで動作する処理装置において,
    前記外部インタフェース制御部は,USBコントローラであり,
    前記外部バスは,USBケーブルである
    ことを特徴とするファームウェアで動作する処理装置。
  4. マイクロプロセッサと,ファームウェアが格納された書き換え可能な不揮発性メモリと,外部装置から前記不揮発性メモリに格納されたファームウェアを更新するための外部インタフェース制御部とを備える処理装置のファームウェアを更新するファームウェア更新方法であって,
    前記外部インタフェース制御部が,外部バスの接続を監視し,外部バスの接続を検出したときに前記不揮発性メモリを前記マイクロプロセッサのバスから切り離す過程と,
    前記外部インタフェース制御部が,前記外部バスに接続される外部装置から更新用ファームウェアの前記不揮発性メモリへの書き込み要求を受信する過程と,
    前記外部インタフェース制御部が,前記外部装置から前記外部バスを介して受信した更新用ファームウェアを前記不揮発性メモリへ書き込む過程とを有する
    ことを特徴とするファームウェア更新方法。
JP2004289533A 2004-10-01 2004-10-01 ファームウェアで動作する処理装置およびファームウェア更新方法 Withdrawn JP2006106914A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004289533A JP2006106914A (ja) 2004-10-01 2004-10-01 ファームウェアで動作する処理装置およびファームウェア更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004289533A JP2006106914A (ja) 2004-10-01 2004-10-01 ファームウェアで動作する処理装置およびファームウェア更新方法

Publications (1)

Publication Number Publication Date
JP2006106914A true JP2006106914A (ja) 2006-04-20

Family

ID=36376614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004289533A Withdrawn JP2006106914A (ja) 2004-10-01 2004-10-01 ファームウェアで動作する処理装置およびファームウェア更新方法

Country Status (1)

Country Link
JP (1) JP2006106914A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299372A (ja) * 2006-05-04 2007-11-15 Syntax Brillian Corp ファームウェアを更新するためのusbポートを有するテレビジョンおよび表示装置
JP2010257367A (ja) * 2009-04-28 2010-11-11 Sanyo Electric Co Ltd プログラムの更新システム、プログラム更新機能付き電子機器
US8140837B2 (en) 2008-11-05 2012-03-20 International Business Machines Corporation Automatically making selective changes to firmware or configuration settings
JP2014518428A (ja) * 2011-07-07 2014-07-28 インテル・コーポレーション Biosフラッシュ攻撃に対する保護および通知
JP2014215651A (ja) * 2013-04-23 2014-11-17 三菱電機株式会社 不揮発性メモリ搭載装置
CN106293507A (zh) * 2015-06-26 2017-01-04 三星电子株式会社 具有外部存储器的电子设备及操作电子设备的方法
JP2021047582A (ja) * 2019-09-18 2021-03-25 Necプラットフォームズ株式会社 Rom書き換えモジュール、電子装置、rom書き換え方法およびプログラム
JP2021524633A (ja) * 2018-05-23 2021-09-13 ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh 実行可能な第1のプログラムコードと実行可能な第2のプログラムコードとを交換する方法および制御器

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299372A (ja) * 2006-05-04 2007-11-15 Syntax Brillian Corp ファームウェアを更新するためのusbポートを有するテレビジョンおよび表示装置
US8140837B2 (en) 2008-11-05 2012-03-20 International Business Machines Corporation Automatically making selective changes to firmware or configuration settings
JP2010257367A (ja) * 2009-04-28 2010-11-11 Sanyo Electric Co Ltd プログラムの更新システム、プログラム更新機能付き電子機器
JP2014518428A (ja) * 2011-07-07 2014-07-28 インテル・コーポレーション Biosフラッシュ攻撃に対する保護および通知
US9015455B2 (en) 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
JP2014215651A (ja) * 2013-04-23 2014-11-17 三菱電機株式会社 不揮発性メモリ搭載装置
CN106293507A (zh) * 2015-06-26 2017-01-04 三星电子株式会社 具有外部存储器的电子设备及操作电子设备的方法
CN106293507B (zh) * 2015-06-26 2021-02-09 三星电子株式会社 具有外部存储器的电子设备及操作电子设备的方法
JP2021524633A (ja) * 2018-05-23 2021-09-13 ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh 実行可能な第1のプログラムコードと実行可能な第2のプログラムコードとを交換する方法および制御器
US11429375B2 (en) 2018-05-23 2022-08-30 Robert Bosch Gmbh Method for exchanging a first executable program code and a second executable program code, and a control unit
JP2021047582A (ja) * 2019-09-18 2021-03-25 Necプラットフォームズ株式会社 Rom書き換えモジュール、電子装置、rom書き換え方法およびプログラム

Similar Documents

Publication Publication Date Title
US6324692B1 (en) Upgrade of a program
TWI386847B (zh) 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置
US9015458B2 (en) Computer system and method for updating basic input/output system by switching between local mode and bypass mode through baseboard management controller
JP6752863B2 (ja) ファームウェアの更新方法及びこの方法を用いる電子装置
CN101373433A (zh) 更新bios的方法以及使用该方法的电脑与系统
US9152492B2 (en) Performing recovery of a headless computer
JP7002358B2 (ja) 情報処理システム、情報処理装置、情報処理装置のbios更新方法、及び情報処理装置のbios更新プログラム
WO2020114431A1 (zh) 基于PCIe接口的FPGA升级方法
TW201333688A (zh) 具有bmc固件修復功能的電子裝置及修復方法
JP2009176152A (ja) 情報処理装置
JP2018116648A (ja) 情報処理装置、その制御方法、及びプログラム
JP2006106914A (ja) ファームウェアで動作する処理装置およびファームウェア更新方法
CN107315607B (zh) 一种驱动自适应加载系统
US9354898B1 (en) Detection of a USB OS descriptor request to facilitate installation of a device driver
EP2372565A1 (en) Method for managing USB devices
JP4646859B2 (ja) Usb機器、およびusb接続システム
JP4013040B2 (ja) ダウンロード装置及びダウンロード方法
US20230132494A1 (en) Information processing apparatus, method of controlling the same, and storage medium
US20090157908A1 (en) Software Driver Device
JP2013045354A (ja) プリンタ装置、通信システム、通信方法
JP2007172186A (ja) データ更新装置及びデータ更新方法
JP2002229798A (ja) コンピュータシステムとそのバイオス管理方法、及びバイオス管理プログラム
JP6709510B2 (ja) 電子機器
JP2006172098A (ja) パケット通信装置、パケット通信装置におけるリブート方法、及び、プログラム
CN117389637B (zh) 一种主机状态确认方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071204