(57)【要約】【課題】  中央演算処理装置の通常処理が停止されることなくプログラムをダウンロードし、かつプログラムのダウンロードによる障害が発生したとき装置機能を回復する。【解決手段】  メモリ１ｅａ，１ｅｂは、切替え回路１ｆによりプログラム用バス１ｂが接続されて、ネットワーク２を介して送られてくるプログラムが格納される。切替え回路１ｆは、プログラム用バス１ｂに接続されているメモリ１ｅａ，１ｅｂの一方に最新のプログラムが格納されたとき、データ用バス１ｄをその一方のメモリ１ｅａ，１ｅｂに接続を切替え、プログラム用バス１ｂを他方のメモリ１ｅａ，１ｅｂに接続を切替える。復旧回路１ｇは、中央演算処理装置１ｃが最新のプログラムで起動することができないとき、切替え回路１ｆの接続を元に戻す。【選択図】  図１
2005190305.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してプログラムをダウンロードする通信装置において、
前記ネットワークを介して送信される前記プログラムと通信データとを分別する分別回路と、
前記プログラムが伝搬するプログラム用バスと、
前記プログラムを実行する中央演算処理装置が接続され、前記通信データが伝搬するデータ用バスと、
前記プログラム用バスが接続されて、前記プログラムが格納される２つのメモリと、
前記プログラム用バスが接続されている前記２つのメモリの一方に最新の前記プログラムが格納されたとき、前記データ用バスを前記２つのメモリの一方に接続を切替え、前記プログラム用バスを前記２つのメモリの他方に接続を切替える切替え回路と、
前記中央演算処理装置が最新の前記プログラムで起動することができないとき、前記切替え回路の接続を元に戻す復旧回路と、
を有することを特徴とする通信装置。
【請求項２】
前記プログラムには、前記中央演算処理装置が起動するためのブートプログラムが含まれることを特徴とする請求項１記載の通信装置。
【請求項３】
ネットワークを介して設定データをダウンロードする通信装置において、
前記ネットワークを介して送信される前記設定データと通信データとを分別する分別回路と、
前記設定データが伝搬する設定データ用バスと、
前記設定データによって特定の機能を発揮するデバイスと中央演算処理装置とが接続され、前記通信データが伝搬するデータ用バスと、
前記設定データ用バスが接続されて、前記設定データが格納される２つのメモリと、
前記設定データ用バスが接続されている前記２つのメモリの一方に最新の前記設定データが格納されたとき、前記データ用バスを前記２つのメモリの一方に接続を切替え、前記設定データ用バスを前記２つのメモリの他方に接続を切替える切替え回路と、
前記中央演算処理装置が起動することができないとき、前記切替え回路の接続を元に戻す復旧回路と、
を有することを特徴とする通信装置。
【請求項４】
前記２つのメモリに格納された前記設定データを前記デバイスに転送する転送回路をさらに有することを特徴とする請求項３記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置に関し、特にネットワークを介してプログラムをダウンロードする通信装置およびネットワークを介して設定データをダウンロードする通信装置に関する。
【背景技術】
【０００２】
離れて設置される通信装置では、ネットワークを介してのプログラムダウンロード機能があれば、設置場所ごとに出向いてプログラムを更新しなくて済み、低コストでの更新が可能となるため、大きな利点がある。
【０００３】
このようなプログラムをダウンロードする通信装置で、かつネットワークに常時接続される通信装置では、中央演算処理装置のダウンロードによって停止される通常処理（ダウンロード以外の処理）の停止時間を最小限に抑えることが重要である。また、プログラムのダウンロードに失敗したときの復旧手段が重要である。
【０００４】
従来、ダウンロードされたプログラムデータを待機系メモリに一旦蓄積し、ダウンロード完了後に、ＤＭＡＣ（Direct Memory Access Controller）が待機系メモリから、運用系メモリへ複写を行いプログラムの更新を行うソフトウェアダウンロード方式がある（例えば、特許文献１参照）。この方式によると、通信回線の回線速度の遅さによるボトルネックは解消されるが、プログラム更新による障害が発生したときの復旧手段がない。
【０００５】
また、更新されたプログラムに動作切替えした後、障害が発生した場合、トグル型レジスタにより、切替え以前のプログラムに戻すことによって復旧を行うリモートソフトウェアダウンロード方式がある（例えば、特許文献２参照）。この方式によると、プログラム更新の失敗による復旧は実現されるが、プログラムのダウンロード時においてバスが占有されるため、中央演算処理装置の通常処理が停止される。また、ブート領域はＲＯＭ化されており、ブートプログラムは更新することができない。
【０００６】
また、単一メモリをプログラム可能な領域とプログラム不可能な領域に分割し、プログラム可能な領域にプログラムをダウンロードする埋め込み式システムにソフトウェアをダウンロードする方法がある（例えば、特許文献３参照）。この方法でも、プログラムのダウンロード時においてバスが占有されるため、中央演算処理装置の通常処理が停止される。
【特許文献１】特開平５−１００９７４号公報（段落番号〔００１２〕〜〔００１８〕、図２，図３）
【特許文献２】特開平５−１５８７０３号公報（段落番号〔０００８〕〜〔００１７〕、図１〜図３）
【特許文献３】特開２０００−３５７０９５号公報（段落番号〔００１９〕〜〔００２９〕、図１〜図４）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、プログラムのダウンロード時、中央演算処理装置と接続されたバスが、プログラムのメモリへの格納のため占有されるため、中央演算処理装置の通常処理が停止されるという問題点があった。
【０００８】
また、プログラムのダウンロードによる障害が発生したとき、復旧するための復旧手段がなく、装置機能が停止してしまうという問題点があった。
本発明はこのような点に鑑みてなされたものであり、中央演算処理装置の通常処理が停止されることなくプログラムをダウンロードでき、かつプログラムのダウンロードによる障害が発生したとき、装置機能を回復することができる通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記問題を解決するために、ネットワーク２を介してプログラムをダウンロードする通信装置１において、ネットワーク２を介して送信されるプログラムと通信データとを分別する分別回路１ａと、プログラムが伝搬するプログラム用バス１ｂと、プログラムを実行する中央演算処理装置１ｃが接続され、通信データが伝搬するデータ用バス１ｄと、プログラム用バス１ｂが接続されて、プログラムが格納される２つのメモリ１ｅａ，１ｅｂと、プログラム用バス１ｂが接続されている２つのメモリ１ｅａ，１ｅｂの一方に最新のプログラムが格納されたとき、データ用バス１ｄを２つのメモリ１ｅａ，１ｅｂの一方に接続を切替え、プログラム用バス１ｂを２つのメモリ１ｅａ，１ｅｂの他方に接続を切替える切替え回路１ｆと、中央演算処理装置１ｃが最新のプログラムで起動することができないとき、切替え回路１ｆの接続を元に戻す復旧回路１ｇと、を有することを特徴とする通信装置が提供される。
【００１０】
このような通信装置１によれば、ネットワーク２から送信される通信データとプログラムは、分別回路１ａによって分別され、通信データはデータ用バス１ｄ、ダウンロードされたプログラムはプログラム用バス１ｂを伝搬する。そして、プログラムは、切替え回路１ｆを介してメモリ１ｅａまたはメモリ１ｅｂに格納される。よって、プログラムがメモリ１ｅａ，１ｅｂにダウンロードされるとき、中央演算処理装置１ｃと接続されているデータ用バス１ｄは、プログラムのダウンロードによって占有されることがない。
【００１１】
また、最新のプログラムのダウンロードによる障害により、中央演算処理装置１ｃが最新のプログラムで起動することができないとき、復旧回路１ｇによって切替え回路１ｆの接続が元に戻される。よって、中央演算処理装置１ｃが接続されているデータ用バス１ｄは、前回にダウンロードされたプログラムを格納しているメモリ１ｅａ，１ｅｂと接続され、中央演算処理装置１ｃは起動可能となる。
【発明の効果】
【００１２】
本発明の通信装置では、ダウンロードされるプログラムが伝搬するためのプログラム用バスを設けるようにした。これによって、中央演算処理装置と接続されているデータ用バスは、プログラムのダウンロードによって占有されることがないので、通常処理が停止されることなくプログラムをダウンロードすることができる。
【００１３】
また、２つのメモリの一方に最新のプログラムが格納されたとき、データ用バスを一方のメモリに接続し、プログラム用バスを他方のメモリに接続する。そして、中央演算処理装置が最新のプログラムで起動することができないとき、データ用バスとプログラム用バスの２つのメモリへの接続を元に戻すようにした。これによって、最新プログラムのダウンロードによる障害が発生したとき、中央演算処理装置は前回にダウンロードされたプログラムで起動するので、装置機能が停止することがない。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、本発明の原理を説明する原理図である。
図に示すように通信装置１は、分別回路１ａ、プログラム用バス１ｂ、中央演算処理装置１ｃ、データ用バス１ｄ、メモリ１ｅａ，１ｅｂ、切替え回路１ｆ、および復旧回路１ｇを有している。通信装置１は、ネットワーク２に接続されており、他の通信装置と通信する。また、通信装置１は、ネットワーク２を介してプログラムをダウンロードする。
【００１５】
分別回路１ａは、ネットワーク２を介して送信されるプログラムと通信データとを分別する。
プログラム用バス１ｂは、分別回路１ａにより分別されたプログラムが伝搬するバスである。
【００１６】
データ用バス１ｄは、分別回路１ａより分別された通信データが伝搬するバスである。データ用バス１ｄには、プログラムを実行する中央演算処理装置１ｃが接続されている。
メモリ１ｅａ，１ｅｂは、プログラム用バス１ｂが接続されて、ダウンロードされるプログラムが格納される。
【００１７】
切替え回路１ｆは、プログラム用バス１ｂが接続されている２つのメモリ１ｅａ，１ｅｂの一方に最新のプログラムが格納されたとき、データ用バス１ｄを、２つのメモリ１ｅａ，１ｅｂのその一方に接続を切替え、プログラム用バス１ｂを２つのメモリ１ｅａ，１ｅｂの他方に接続を切替える。
【００１８】
復旧回路１ｇは、中央演算処理装置１ｃがメモリ１ｅａ，１ｅｂに格納されている最新のプログラムで起動することができないとき、切替え回路１ｆの接続を元に戻す。
以下、原理図の動作について説明する。
【００１９】
メモリ１ｅｂに現在最新のプログラムがダウンロードされているとする。切替え回路１ｆは、プログラム用バス１ｂをメモリ１ｅａに接続し、データ用バス１ｄをメモリ１ｅｂに接続している状態にあるとする。従って、中央演算処理装置１ｃは、メモリ１ｅｂに格納されている現在最新のプログラムを実行している。
【００２０】
分別回路１ａは、ネットワーク２から送信される通信データとプログラムとを分別し、通信データはデータ用バス１ｄ、プログラムはプログラム用バス１ｂに出力する。よって、通信データは、中央演算処理装置１ｃで処理され、プログラムは、切替え回路１ｆを介してメモリ１ｅａに格納される。
【００２１】
切替え回路１ｆは、ネットワーク２からダウンロードされる最新プログラムのメモリ１ｅａへの格納が終了すると、データ用バス１ｄをメモリ１ｅａに接続し、プログラム用バス１ｂをメモリ１ｅｂに接続する。
【００２２】
このように、ダウンロードされるプログラムは、プログラム用バス１ｂを伝搬してメモリ１ｅａに格納される。よって、データ用バス１ｄと接続されている中央演算処理装置１ｃは、プログラムのダウンロードによってデータ用バス１ｄが占有されることがなく、通常処理を実行することができる。
【００２３】
一方、ネットワーク２からダウンロードされる最新のプログラムのデータが正しくダウンロードされなかったため、中央演算処理装置１ｃが最新のプログラムで起動できないときは、復旧回路１ｇによって切替え回路１ｆの接続が元に戻される。よって、中央演算処理装置１ｃが接続されているデータ用バス１ｄは、前回の最新プログラムを格納しているメモリ１ｅｂと接続され、中央演算処理装置１ｃは起動可能となる。
【００２４】
このように、ダウンロードされるプログラムが伝搬するためのプログラム用バス１ｂを、中央演算処理装置１ｃと接続されているデータ用バス１ｄとは別に設けるようにした。これによって、中央演算処理装置１ｃと接続されているデータ用バス１ｄはプログラムのダウンロードによって占有されることがないので、中央演算処理装置１ｃの通常処理が停止されることなく、プログラムをダウンロードすることができる。
【００２５】
また、２つのメモリ１ｅａ，１ｅｂの一方に最新のプログラムが格納されたとき、データ用バス１ｄをその一方のメモリ１ｅａ，１ｅｂに接続し、プログラム用バス１ｂを他方のメモリ１ｅａ，１ｅｂに接続する。そして、中央演算処理装置１ｃが最新のプログラムで起動することができないとき、データ用バス１ｄとプログラム用バス１ｂの２つのメモリ１ｅａ，１ｅｂへの接続を元に戻すようにした。これによって、最新プログラムのダウンロードによる障害が発生したとき、中央演算処理装置１ｃは、前回ダウンロードされたプログラムで起動するので、装置機能が停止することがない。
【００２６】
次に、本発明の第１の実施の形態について図面を参照して説明する。
図２は、本発明の第１の実施の形態に係る通信装置の回路ブロック図である。
図に示すように、通信装置１０は、ネットワーク５０を介して通信装置３０と接続されている。また、通信装置１０は、ネットワーク５０を介してネットワーク監視装置４０と接続されている。
【００２７】
通信装置１０，３０は、例えば、携帯電話の基地局に設置される。通信装置１０，３０は、携帯電話と無線で送受信する。そして、通信装置１０，３０は、互いに、例えば、専用ケーブルのネットワーク５０を介して通信データを送受信する。これによって、通信装置１０が設置されている地域の携帯電話は、通信装置３０が設置されている地域の携帯電話と通話することができる。
【００２８】
ネットワーク監視装置４０は、通信装置１０，３０においてプログラム更新の必要が生じた場合、ネットワーク５０を介して、更新したプログラムを通信装置１０，３０にダウンロードする。これによって、プログラムを更新する者は、各地域の基地局に出向くことなく、ネットワーク監視装置４０から通信装置１０，３０のプログラム更新を行うことができる。
【００２９】
通信装置１０は、回線終端部１１、ダウンロードデータセレクタ１２、プログラム用バス１３、ＤＭＡＣ１４、アクセスセレクタ１５、フラッシュメモリ１６ａ，１６ｂ、ＣＰＵ（Central Processing Unit）１７、データ用バス１８、ＲＡＭ（Random Access Memory）１９および監視回路２０を有している。通信装置３０も、通信装置１０と同様の構成を有しており、その説明を省略する。
【００３０】
回線終端部１１は、ネットワーク５０とのインターフェースを行い、例えば、物理レイヤの終端、電気レベル変換、およびフレーム同期の処理を行う。
ダウンロードデータセレクタ１２は、ネットワーク５０を介して送信されてくるデータが、例えば、携帯電話の通話に関する通信データであるか、更新されたプログラムデータであるかを分別し、プログラム用バス１３およびデータ用バス１８に出力する。ダウンロードデータセレクタ１２は、送信されてくるデータが通信データであれば、データ用バス１８に出力し、更新されたプログラムデータであれば、プログラム用バス１３に出力する。
【００３１】
ネットワーク５０を介して送受信されるデータには、通信データであるか、更新されたプログラム（最新プログラム）であるかを識別するための識別データが付加されている（後述詳細）。ダウンロードデータセレクタ１２は、付加されている識別データに基づいて、ネットワーク５０を介して送信されてくるデータを、通信データと最新プログラムとに分別する。なお、ダウンロードデータセレクタ１２は、通信データをデータ用バス１８に出力するとき、ＣＰＵ１７とのアクセス競合が生じる場合があるので、アクセス競合回路を有している。
【００３２】
プログラム用バス１３は、ダウンロードデータセレクタ１２によって分別された最新プログラムのデータが伝搬するプログラム専用のバスである。
ＤＭＡＣ１４は、ダウンロードデータセレクタ１２によって分別された最新プログラムを、プログラム用バス１３を介して受け取り、例えば、ＣＲＣ（Cyclic Redundancy Checking）、チェックサムによるエラー検出やエラー訂正を行う。最新プログラムのデータが正常に受信されている場合、ＤＭＡＣ１４はプログラムを、フラッシュメモリ１６ａ，１６ｂに書き込むためのアクセスタイミングを自律生成する。そして、ＤＭＡＣ１４は、アクセスセレクタ１５を介して、最新プログラムをフラッシュメモリ１６ａ，１６ｂに書き込む。最新プログラムのデータが正常に受信されていない場合は、ＤＭＡＣ１４は、最新プログラムのデータを訂正する。または、ＤＭＡＣ１４は、最新プログラムの再送要求データを作成し、ネットワーク監視装置４０に送信する。なお、ネットワーク監視装置４０は、通信装置１０から再送要求データを受信すると、最新プログラムを再送する。
【００３３】
アクセスセレクタ１５は、プログラム用バス１３とデータ用バス１８のフラッシュメモリ１６ａ，１６ｂへの接続を切替える。アクセスセレクタ１５は、プログラム用バス１３と接続されている一方のフラッシュメモリへの最新プログラムの格納が終了すると、データ用バス１８を、最新プログラムが格納された一方のフラッシュメモリに接続を切替え、プログラム用バス１３を他方のフラッシュメモリに切替える。これによって、ＣＰＵ１７は、最新プログラムを実行することが可能となる。また、次回プログラムがダウンロードされるときは、他方のフラッシュメモリに格納されることになる。また、フラッシュメモリ１６ａ，１６ｂには、最新プログラムと、前回ダウンロードされたプログラムとが格納されていることになる。
【００３４】
アクセスセレクタ１５は、ＣＰＵ１７および監視回路２０からの切替え指示によって、プログラム用バス１３とデータ用バス１８のフラッシュメモリ１６ａ，１６ｂへの接続を切替える。ＣＰＵ１７は、アクセスセレクタ１５から最新プログラムのダウンロードが完了した旨の通知を受けて、アクセスセレクタ１５の接続を切替える。また、監視回路２０は、ダウンロード時に発生した最新プログラムの、例えば、一部データ抜け、またはフラッシュメモリ１６ａ，１６ｂへの書き込み失敗などの障害によって、ＣＰＵ１７が最新プログラムでブートできないとき、アクセスセレクタ１５の接続を切替える（後述詳細）。アクセスセレクタ１５は、この切替え指示によって、プログラム用バス１３とデータ用バス１８のフラッシュメモリ１６ａ，１６ｂへの接続を元に戻し、データ用バス１８を、前回ダウンロードされたプログラムを格納しているフラッシュメモリに接続するようにする。これによって、ＣＰＵ１７は、最新プログラムでブートできなくても、前回ダウンロードされたプログラムでブートすることができる。
【００３５】
ここで、アクセスセレクタ１５の回路について詳細に説明する。
図３は、アクセスセレクタのその１の状態の回路ブロック図で、図４は、アクセスセレクタのその２の状態の回路ブロック図である。
【００３６】
図３，４に示すように、アクセスセレクタ１５は、物理アドレスタイミング生成回路１５ａ，１５ｂ、論理−物理アドレス変換回路１５ｃを有している。
物理アドレスタイミング生成回路１５ａは、フラッシュメモリ１６ａと接続されている。また、物理アドレスタイミング生成回路１５ａは、プログラム用バス１３または論理−物理アドレス変換回路１５ｃを介してデータ用バス１８と接続される。
【００３７】
物理アドレスタイミング生成回路１５ｂは、フラッシュメモリ１６ｂと接続されている。また、物理アドレスタイミング生成回路１５ｂは、プログラム用バス１３または論理−物理アドレス変換回路１５ｃを介してデータ用バス１８と接続される。
【００３８】
物理アドレスタイミング生成回路１５ａ，１５ｂは、フラッシュメモリ１６ａ，１６ｂにデータを書き込むため、またはデータを読み出すためのアクセスタイミングを自律生成する。物理アドレスタイミング生成回路１５ａ，１５ｂは、プログラム用バス１３と接続されているとき、プログラム用バス１３を伝搬して送られてきたプログラムをフラッシュメモリ１６ａ，１６ｂに格納する。また、物理アドレスタイミング生成回路１５ａ，１５ｂは、論理−物理アドレス変換回路１５ｃと接続されているとき、論理−物理アドレス変換回路１５ｃから出力されるフラッシュメモリ１６ａ，１６ｂの物理アドレスにデータを書き込み、またはデータを読み出す。
【００３９】
論理−物理アドレス変換回路１５ｃは、ＣＰＵ１７が指定するフラッシュメモリ１６ａ，１６ｂの論理アドレスを物理アドレスに変換する。
例えば、フラッシュメモリ１６ｂに最新プログラムが格納され、フラッシュメモリ１６ａに前回ダウンロードされたプログラムが格納されているとする。この場合、アクセスセレクタ１５は、図３に示すように、データ用バス１８とフラッシュメモリ１６ｂを、論理−物理アドレス変換回路１５ｃ、物理アドレスタイミング生成回路１５ｂを介して接続している。これによって、ＣＰＵ１７がデータ用バス１８を介して最新プログラムを格納しているフラッシュメモリ１６ｂにアクセスできるようになっている。
【００４０】
この状態において、最新プログラムがダウンロードされるとする。この場合、アクセスセレクタ１５は、図３に示す状態でプログラムをダウンロードする。すなわち、プログラム用バス１３が、物理アドレスタイミング生成回路１５ａを介してフラッシュメモリ１６ａと接続されている状態で、プログラムをダウンロードする。これによって、フラッシュメモリ１６ａには、最新プログラムが格納される。
【００４１】
アクセスセレクタ１５は、最新プログラムのダウンロードが終了すると、ＣＰＵ１７にその旨を通知する。ＣＰＵ１７は、アクセスセレクタ１５からの指示を受けて、アクセスセレクタ１５に接続の切替え指示を出す。これによって、アクセスセレクタ１５は、図４に示すようにプログラム用バス１３とデータ用バス１８のフラッシュメモリ１６ａ，１６ｂへの接続を切替える。これによって、ＣＰＵ１７は、最新プログラムを格納しているフラッシュメモリ１６ａにアクセスできる状態となる。
【００４２】
図２の説明に戻る。フラッシュメモリ１６ａ，１６ｂは、ネットワーク５０を介してダウンロードされる最新プログラムを格納する不揮発性のメモリである。不揮発性のメモリであれば、他のメモリであってもよく、例えば、ＥＥＰＲＯＭ（Electrical Erasable Programmable Read-only Memory）であってもよい。フラッシュメモリ１６ａ，１６ｂの最新プログラムを格納している方が、ＣＰＵ１７によって実行される運用系メモリとして使用され、他方は、次回のダウンロード時にプログラムが格納される待機系メモリとして使用される。
【００４３】
ＣＰＵ１７は、データ用バス１８に接続されている。ＣＰＵ１７は、電源が投入されたとき、外部からリセットされたとき、または自律リセットしたとき、最新プログラムが格納されているフラッシュメモリ１６ａ，１６ｂからブートする。ＣＰＵ１７は、ブートしたフラッシュメモリ１６ａ，１６ｂに格納されているブートプログラム（プログラムのブートプロセス）に従って、フラッシュメモリ１６ａ，１６ｂに格納されている最新プログラムをＲＡＭ１９に複写する。ＣＰＵ１７は、最新プログラムのＲＡＭ１９への複写が終了すると、自律リセットを行い、今度は、ＲＡＭ１９からブートする。
【００４４】
ＣＰＵ１７は、ＲＡＭ１９に複写したプログラムに従って、通信装置１０の全体を制御する。ＣＰＵ１７は、例えば、通信装置３０と送受信する通信データのエンコードやデコード、または汎用的な処理を実行する。ＣＰＵ１７は、ダウンロードデータセレクタ１２より分別された通信データを、データ用バス１８を介して受け取る。また、ＣＰＵ１７は、通信装置３０に送信する通信データを生成し、回線終端部１１を介してネットワーク５０に出力する。
【００４５】
データ用バス１８には、ダウンロードデータセレクタ１２、アクセスセレクタ１５、ＣＰＵ１７、ＲＡＭ１９、および監視回路２０が接続されている。データ用バス１８には、ダウンロードデータセレクタ１２より分別して出力される、受信された通信データが伝搬する。また、データ用バス１８には、ＣＰＵ１７が処理を実行するために入出力するデータが伝搬する。なお、データ用バス１８は、プログラム用バス１３と分離されているので、ダウンロードされるプログラムが伝搬することはない。
【００４６】
ＲＡＭ１９には、ＣＰＵ１７に実行させるＯＳ（Operating System）のプログラムや、通信処理を行うためのプログラムが、フラッシュメモリ１６ａ，１６ｂから複写される。また、ＲＡＭ１９には、ＣＰＵ１７による処理に必要な各種データが保存される。ＲＡＭ１９のアクセスタイムは、フラッシュメモリ１６ａ，１６ｂのアクセスタイムより速い。フラッシュメモリ１６ａ，１６ｂよりアクセスタイムの速いＲＡＭ１９にプログラムを複写することにより、ＣＰＵ１７の実行速度を速くすることができる。
【００４７】
監視回路２０は、ＣＰＵ１７のフラッシュメモリ１６ａ，１６ｂからのブート完了を監視する。監視回路２０は、内部にタイマを有している。監視回路２０は、アクセスセレクタ１５の接続切替えが行われた後、ＣＰＵ１７からの指示によってタイマのカウントダウンを開始する。監視回路２０は、ＣＰＵ１７からブート完了した旨の通知を受けると、タイマのカウントダウンを停止し、タイマをリセットする。タイマがタイムアウトした場合（例えば、タイマが０になった場合）、監視回路２０は、プログラム用バス１３とデータ用バス１８のフラッシュメモリ１６ａ，１６ｂへの接続を反転させる指示をアクセスセレクタ１５に出力する。これによって、ＣＰＵ１７が最新プログラムでブートできない場合、前回ダウンロードされたプログラムでブートできるようになる。
【００４８】
次に、ネットワークで送受信されるデータの構成について説明する。
図５は、受信されるデータの構成例を示した図である。
図５に示すように受信されるデータは、ＡＴＭ＿ＡＡＬ５（ATM Adaption Layer type5（ＡＴＭ：Asynchronous Transfer Mode））のパケット６０ａ，６０ｂ，６０ｃ，…で受信される。データ６１は、パケット６０ａ，６０ｂ，６０ｃ，…をつなぎ合わせたときのデータ構成である。なお、データ６１は、プログラムの場合の例である。
【００４９】
パケット６０ａ，６０ｂ，６０ｃ，…は、５バイトのＡＴＭヘッダと、４８バイトのＡＴＭ＿Ｐａｙｌｏａｄとに分けられる。ＡＴＭヘッダは、ＧＦＣ（Generic Flow Control）、ＶＰＩ（Virtual Path Identifier）、ＶＣＩ（Virtual Channel Identifier）、ＰＴ（Payload Type）、ＣＬＰ（Cell Loss Priority）、およびＡＴＭ＿ＨＥＣ（ＨＥＣ：Header Error Control）から構成されている。ＡＴＭセルは、上記ＡＴＭ＿ＨおよびＡＴＭ＿Ｐａｙｌｏａｄから構成されている。
【００５０】
データ６１は、プログラム終了ＦＬＧ、プログラム終了ＦＬＧ＿ＣＲＣ、プログラムデータ、およびＣＰＣＳ−ＰＤＵ（Common Part Convergence Sublayer Protocol Data Unit）トレイラから構成される。なお、プログラム終了ＦＬＧ、プログラム終了ＦＬＧ＿ＣＲＣ、プログラムデータ、およびＣＰＣＳ−ＰＤＵトレイラで、ＣＰＣＳ−ＰＤＵを構成している。プログラム終了ＦＬＧ、プログラム終了ＦＬＧ＿ＣＲＣ、およびプログラムデータで、ＳＳＣＳ−ＰＤＵ（Service-Specific Convergence Sublayer Protocol Data Unit）を構成している。
【００５１】
ＡＴＭでは、ＶＰＩまたはＶＣＩでコネクションを識別する。ＶＰＩは、通常ノード間のリンクの識別（例えば、装置Ａと装置Ｂとの仮想リンクには、ＶＰＩ＝５を使用し、装置Ｂと装置Ｃとの仮想リンクでは、ＶＰＩ＝７を使用するなど）に使用される。また、ＶＣＩは、同一装置内に複数のパスを設定する場合の識別に使用される。そこで、本発明では、プログラムと通信データの識別にＶＣＩを使用する。例えば、ＶＣＩ＝５の場合はプログラム、それ以外は通信データとする。なお、ＣＰＣＳ−ＰＤＵの一部にプログラムを識別するための領域を設けて行うことも可能である。また、プログラムと通信データの識別にＶＰＩを使用することも可能である。さらに、ＴＣＰ／ＩＰでは、ＩＰアドレスを前述と同様に使用することによりプログラムと通信データの識別が可能である。
【００５２】
受信されるデータは、非同期で通信されるため、ＡＴＭ＿ＡＡＬ５をＡＴＭアダプションレイヤとして使用する。ＡＴＭ＿ＡＡＬ５のＣＰＣＳ−ＰＤＵの先頭には、プログラムの転送の終了パターンを示すプログラム終了ＦＬＧと、プログラム終了ＦＬＧが正常に受信されたか否かをチェックするためのプログラム終了ＦＬＧ＿ＣＲＣが挿入される。ＤＭＡＣ１４は、プログラム終了ＦＬＧによって、最新プログラムのダウンロードの終了を認識することができる。
【００５３】
複数のパケット６０ａ，６０ｂ，６０ｃ，…により、データ６１に示すように１つのＣＰＣＳ−ＰＤＵが組みたてられる。ＳＳＣＳ−ＰＤＵに対するＣＲＣは、ＣＰＣＳ−ＰＤＵトレイラの中のＣＲＣ３２によって訂正される。プログラム終了ＦＬＧ＿ＣＲＣ、およびＣＰＣＳ−ＰＤＵ中ＣＲＣ３２の訂正により、プログラム終了ＦＬＧに対して、２重でのエラーチェックが行われることになる。
【００５４】
以下、図２の動作について説明する。
まず、通信装置１０の全体の処理の流れについて説明する。
図６、図７は、通信装置の動作の流れを示したシーケンス図である。
【００５５】
フラッシュメモリ１６ａに現在最新のプログラムが格納されているとする。ＣＰＵ１７は、例えば、通信データのエンコードやデコード、汎用的処理の通常処理を行っているとする。アクセスセレクタ１５は、図３に示すように、プログラム用バス１３とフラッシュメモリ１６ａを接続し、データ用バス１８をフラッシュメモリ１６ｂに接続している。なお、このときのアクセスセレクタ１５の状態を、状態Ａとして図６に示している。
【００５６】
ステップＳ１において、ネットワーク監視装置４０は、通信装置１０のＣＰＵ１７にプログラム更新の開始指示をする。
ステップＳ２において、ＣＰＵ１７は、ネットワーク監視装置４０からプログラム更新の開始指示を受けると、ダウンロードデータセレクタ１２にプログラム更新を開始することを指示する。
【００５７】
ステップＳ３において、ダウンロードデータセレクタ１２は、ＣＰＵ１７からの更新開始指示を受け、受信される最新プログラムをＤＭＡＣ１４に転送することができる状態にする。また、ＣＰＵ１７は、プログラム更新が可能であることを示す更新開始応答をネットワーク監視装置４０に行う。なお、ＣＰＵ１７は、その後通常処理を行う。
【００５８】
ステップＳ４において、ネットワーク監視装置４０は、ＣＰＵ１７からの更新開始応答を受けて、最新プログラムを通信装置１０へダウンロードする。通信装置１０の回線終端部１１は、更新されたプログラムを受信し、ダウンロードデータセレクタ１２に送信する。
【００５９】
ステップＳ５において、ダウンロードデータセレクタ１２は、受信された最新プログラムを分別し、プログラム用バス１３を介してＤＭＡＣ１４に転送する。
ステップＳ６において、ＤＭＡＣ１４は、ダウンロードデータセレクタ１２から送られてきた最新プログラムのデータエラー検出、訂正を行う。なお、ＤＭＡＣ１４は、プログラムのデータエラーを検出し、訂正ができなかった場合は、ネットワーク監視装置４０にプログラムの再送要求を行う。
【００６０】
ステップＳ７において、ＤＭＡＣ１４は、ダウンロードデータセレクタ１２から送られてきた最新プログラムをアクセスセレクタ１５に出力する。
ステップＳ８において、アクセスセレクタ１５は、ＤＭＡＣ１４から送られてきた最新プログラムをフラッシュメモリ１６ａに出力する。これは、上記で仮定したように、プログラム用バス１３とフラッシュメモリ１６ａが図３に示すように接続されているからである。
【００６１】
ステップＳ９において、ＤＭＡＣ１４は、最新プログラムの受信完了を監視している。なお、最新プログラムの受信完了は、図５で説明したように、受信されるデータに含まれるプログラム終了ＦＬＧによって認識する。ＤＭＡＣ１４は、最新プログラムの受信が完了するとステップＳ１０へ進む。
【００６２】
ステップＳ１０において、ＤＭＡＣ１４は、プログラムの受信が完了したことをダウンロードデータセレクタ１２に通知する。ダウンロードデータセレクタ１２は、ＤＡＭＣ１４からプログラムの受信完了の旨を受けると、データをＤＭＡＣ１４に転送することができない状態にする。そして、ダウンロードデータセレクタ１２は、ＣＰＵ１７が自律リセットを開始することをネットワーク監視装置４０に予告する。一方、ＤＭＡＣ１４は、アクセスセレクタ１５内にあるプログラムの転送が完了したことを示す転送完了フラグをオンにする。
【００６３】
ステップＳ１１において、アクセスセレクタ１５は、転送完了フラグを監視し、転送完了フラグがオンし、かつフラッシュメモリ１６ａへのプログラムの格納が終わっていた場合には、ＣＰＵ１７に書き込み完了信号を出力する。
【００６４】
ステップＳ１２において、ＣＰＵ１７は、通常処理を終了し、アクセスセレクタ１５に接続の切替え指示をする。なお、図に示すように、最新プログラムがダウンロードされている間、ＣＰＵ１７の通常処理は停止されていない。
【００６５】
ステップＳ１３において、アクセスセレクタ１５は、ＣＰＵ１７からの切替え指示を受けて、プログラム用バス１３とデータ用バス１８のフラッシュメモリ１６ａ，１６ｂへの接続状態を図４に示すように切替える。すなわち、アクセスセレクタ１５は、プログラム用バス１３をフラッシュメモリ１６ｂに接続し、データ用バス１８をフラッシュメモリ１６ａに接続する。
【００６６】
ステップＳ１４において、ＣＰＵ１７は、アクセスセレクタ１５に接続の切替え指示をした後、監視回路２０にリセット解除指示を出力する。監視回路２０は、ＣＰＵ１７からのリセット解除指示を受けてタイマを起動し、カウントダウンを開始する。
【００６７】
ステップＳ１５において、ＣＰＵ１７は、自律リセットを行う。
ステップＳ１６において、ダウンロードデータセレクタ１２、ＤＭＡＣ１４は、ＣＰＵ１７の自律リセットによってリセットされる。そして、ＣＰＵ１７によるリセットが解除される。
【００６８】
ステップＳ１７において、ＣＰＵ１７は、アクセスセレクタ１５を介してフラッシュメモリ１６ａにアクセスし、最新プログラムのブートプロセスを読み込む。
ステップＳ１８において、ＣＰＵ１７は、ブート処理の初期化を行う。そして、ブート処理が完了したか否かを判断する。ブート処理が完了すると、ステップＳ１９へ進む。ブート処理が完了しない場合（ブート処理が失敗した場合）、ＣＰＵ１７は、処理を停止する。
【００６９】
ステップＳ１９において、ＣＰＵ１７は、フラッシュメモリ１６ａに格納されている最新プログラムのデータを、アクセスセレクタ１５を介して読み出す。
ステップＳ２０において、ＣＰＵ１７は、監視回路２０にタイマ停止、またはリセットの指示を出力する。
【００７０】
ステップＳ２１において、監視回路２０は、ステップＳ１４において起動されたタイマがタイムアウトしたか否か判断する。監視回路２０は、タイムアウトするまでに、ＣＰＵ１７からタイマ停止、またはリセットの指示を受けなかった場合、プログラム更新失敗時の処理を行う。タイムアウトする前にタイマ停止、またはリセット指示を受けた場合、監視回路２０は処理を終了する。
【００７１】
ステップＳ２２において、ＣＰＵ１７は、フラッシュメモリ１６ａに格納されている最新プログラムをＲＡＭ１９に複写する。その後、ＣＰＵ１７は、自律リセットをし、ＲＡＭ１９からブートする。
【００７２】
ステップＳ２３において、ＣＰＵ１７は、ネットワーク監視装置４０にプログラム更新完了の旨の通知を行う。ＣＰＵ１７は、プログラム更新の処理を終了し、フラッシュメモリ１６ａからＲＡＭ１９に複写した最新プログラムに従って通常処理を行う。
【００７３】
次に、プログラム更新が失敗したときの動作について説明する。
図８、図９は、プログラム更新失敗時の動作の流れを示したシーケンス図である。
通信装置１０は、通常処理を行っているとする。フラッシュメモリ１６ａに現在最新のプログラムが格納されているとする。アクセスセレクタ１５は、図３に示すように、プログラム用バス１３とフラッシュメモリ１６ａを接続し、データ用バス１８をフラッシュメモリ１６ｂに接続している。なお、このときのアクセスセレクタ１５の状態を、状態Ａとして図８に示している。
【００７４】
ステップＳ３１において、通信装置１０は、ネットワーク監視装置４０から最新プログラムをダウンロードするとする。なお、図６に示したシーケンス図のステップＳ１３までの処理と同様の処理を行う。また、アクセスセレクタ１５は、プログラム用バス１３とデータ用バス１８のフラッシュメモリ１６ａ，１６ｂへの接続を切替えて、図４に示す状態Ｂの接続状態となっている。
【００７５】
ステップＳ３２において、ＣＰＵ１７は、監視回路２０にリセット解除指示を出力する。監視回路２０は、ＣＰＵ１７からのリセット解除指示を受けてタイマを起動し、カウントダウンを開始する。
【００７６】
ステップＳ３３において、ダウンロードデータセレクタ１２、ＤＭＡＣ１４は、ＣＰＵ１７の自律リセットによってリセットされる。そして、ＣＰＵ１７によるリセットが解除される。
【００７７】
ステップＳ３４において、ＣＰＵ１７は、アクセスセレクタ１５を介してフラッシュメモリ１６ａにアクセスし、最新プログラムのブートプロセスを読み込む。
ステップＳ３５において、ＣＰＵ１７は、ブート処理の初期化を行う。そして、ブート処理が完了したか否かを判断する。なお、今回は、ブートに失敗したためにブート完了しなかったとする。ＣＰＵ１７はブートの失敗により、動作停止になる。よって、ＣＰＵ１７は、監視回路２０のタイマのカウントダウンを停止、またはリセットすることができない。
【００７８】
ステップＳ３６において、監視回路２０は、ステップＳ３２において起動されたタイマがタイムアウトしたか否か判断する。今回、監視回路２０は、タイムアウトするまでに、ＣＰＵ１７からタイマ停止、またはリセットの指示を受けないのでステップＳ３７へ進む。なお、タイムアウトする前に、ＣＰＵ１７からタイマ停止、またはリセット指示を受けた場合、監視回路２０は処理を終了する。
【００７９】
ステップＳ３７において、監視回路２０は、アクセスセレクタ１５に接続切替えの指示を出力する。
ステップＳ３８において、アクセスセレクタ１５は、監視回路２０からの接続切替えの指示を受けて、状態Ａの接続状態、すなわち、図３に示す接続状態に戻す。
【００８０】
ステップＳ３９において、監視回路２０は、ＣＰＵ１７、ダウンロードデータセレクタ１２、およびＤＭＡＣ１４の周辺回路をリセットする。
ステップＳ４０において、ＣＰＵ１７、ダウンロードデータセレクタ１２、およびＤＭＡＣ１４は、監視回路２０よりリセットされる、また、監視回路２０によってリセットが解除される。
【００８１】
ステップＳ４１において、ＣＰＵ１７は、監視回路２０にリセット解除指示を出力する。監視回路２０は、ＣＰＵ１７からのリセット解除指示を受けてタイマを起動し、カウントダウンを開始する。
【００８２】
ステップＳ４２において、ＣＰＵ１７は、アクセスセレクタ１５を介してフラッシュメモリ１６ｂにアクセスし、前回ダウンロードされたプログラムのブートプロセスを読み込む。
【００８３】
ステップＳ４３において、ＣＰＵ１７は、ブート処理の初期化を行う。そして、ブート処理が完了したか否かを判断する。今回ＣＰＵ１７は、前回ダウンロードされたプログラムでブートするのでブート処理を完了し、ステップＳ４４へ進む。
【００８４】
ステップＳ４４において、ＣＰＵ１７は、フラッシュメモリ１６ｂに格納されている前回ダウンロードされたプログラムのデータを、アクセスセレクタ１５を介して読み出す。
ステップＳ４５において、ＣＰＵ１７は、監視回路２０にタイマ停止、またはリセットの指示を出力する。
【００８５】
ステップＳ４６において、監視回路２０は、ステップＳ４１において起動されたタイマがタイムアウトしているか否か判断する。なお、今回ＣＰＵ１７は、前回ダウンロードされたプログラムでブートするので、監視回路２０は、ＣＰＵ１７からタイムアウトするまでにタイマ停止、またはリセットの指示を受ける。監視回路２０は、これによって処理を終了する。
【００８６】
ステップＳ４７において、ＣＰＵ１７は、フラッシュメモリ１６ｂに格納されている前回ダウンロードされたプログラムをＲＡＭ１９に複写する。その後、ＣＰＵ１７は、自律リセットをし、ＲＡＭ１９からブートする。
【００８７】
ステップＳ４８において、ＣＰＵ１７は、ネットワーク監視装置４０にプログラム更新失敗の旨の通知を行う。ＣＰＵ１７は、プログラム更新の処理を終了し、フラッシュメモリ１６ａからＲＡＭ１９に複写した前回ダウンロードしたプログラムに従って通常処理を行う。
【００８８】
このように、ダウンロードされるプログラムが伝搬するためのプログラム用バス１３を設けるようにした。これによって、ＣＰＵ１７と接続されているデータ用バス１８は、プログラムのダウンロードによって占有されることがないので、ＣＰＵ１７の通常処理が停止されることなくプログラムをダウンロードすることができる。また、ＣＰＵ１７の処理能力低下を抑制することができる。
【００８９】
また、２つのフラッシュメモリ１６ａ，１６ｂの一方に最新プログラムが格納されたとき、データ用バス１８をその一方のフラッシュメモリに接続し、プログラム用バス１３を他方のフラッシュメモリに接続する。そして、ＣＰＵ１７が最新プログラムでブートできないとき、データ用バス１８とプログラム用バス１３のフラッシュメモリ１６ａ，１６ｂへの接続を元に戻すようにした。これによって、最新プログラムのダウンロードによる障害が発生したとき、ＣＰＵ１７は、前回ダウンロードされたプログラムで起動するので、装置機能が停止することがなく、より安全にプログラム更新をすることができる。
【００９０】
また、ダウンロードされるプログラムに、ブートに関するブートプログラムを含めることによって、同一ハードウェアに全く機能の異なるプログラムをダウンロードすることが可能となり、プログラム更新の柔軟性、汎用性が高くなる。
【００９１】
次に、本発明の第２の実施の形態について図面を参照して説明する。
図１０は、本発明の第２の実施の形態に係る通信装置の回路ブロック図である。
第２の実施の形態に係る通信装置では、ＦＰＧＡ（Field Programmable Gate Array）のコンフィグレーションデータが、ネットワーク監視装置４０からダウンロードされるところが第１の実施の形態と異なる。図１０の通信装置７０において、図２と同じものには同じ符号を付し、その説明を省略する。
【００９２】
図１０に示すように通信装置７０のデータ用バス１８には、ＦＰＧＡ２１、コンフィグ用デバイス２２が接続されている。ＦＰＧＡ２１とコンフィグ用デバイス２２は、シリアルのコンフィグ用バス２３で接続されている。
【００９３】
ＦＰＧＡ２１は、コンフィグレーションデータに応じて回路を構成し、特定の機能を発揮するデバイスである。ＦＰＧＡ２１は、コンフィグレーションデータにより回路変更することができ、機能を変更することができる。ＦＰＧＡ２１は、例えば、周辺回路を制御するための回路が構成され、ＣＰＵ１７からの命令に従って、周辺回路を制御する。
【００９４】
コンフィグ用デバイス２２は、バス変換機能とフラッシュメモリ１６ａ，１６ｂからの自立リード（ＤＭＡ相当機能）を有している。コンフィグレーションデータはパラレルでデータ用バス１８を伝搬する。ＦＰＧＡ２１は、コンフィグ用デバイス２２から出力されるシリアルのコンフィグレーションデータを読み込む。そのため、コンフィグ用デバイス２２は、データ用バス１８からのパラレルのコンフィグレーションデータをシリアル変換してＦＰＧＡ２１に出力する。なお、ＦＰＧＡ２１とデータ用バス１８のバスフォーマットが同じである場合、コンフィグ用デバイス２２のバス変換機能は不要となる。
【００９５】
ネットワーク５０から送られてくるデータには、図５で説明したのと同様に、コンフィグレーションデータと通信データとを区別するための識別子が付与されている。ダウンロードデータセレクタ１２は、データの識別子によって、通信データとコンフィグレーションデータとを分別する。ダウンロードデータセレクタ１２は、コンフィグレーションデータをプログラム用バス１３に出力し、通信データをデータ用バス１８に出力する。
【００９６】
以下、図１０の動作について説明する。
アクセスセレクタ１５は、プログラム用バス１３をフラッシュメモリ１６ａに接続し、データ用バス１８をフラッシュメモリ１６ｂに接続している状態にあるとする。
【００９７】
ダウンロードデータセレクタ１２は、ネットワーク５０から送信される通信データとコンフィグレーションデータとを分別し、通信データはデータ用バス１８、コンフィグレーションデータはプログラム用バス１３に出力する。コンフィグレーションデータは、アクセスセレクタ１５を介してフラッシュメモリ１６ａに格納される。
【００９８】
アクセスセレクタ１５は、最新のコンフィグレーションデータのフラッシュメモリ１６ａへの格納が終了すると、その旨をＣＰＵ１７に通知する。ＣＰＵ１７は、その通知を受けて、アクセスセレクタ１５に接続切替えの指示を出力する。アクセスセレクタ１５は、ＣＰＵ１７からの指示を受けて、データ用バス１８をフラッシュメモリ１６ａに接続し、プログラム用バス１３をフラッシュメモリ１６ｂに接続するように切替える。
【００９９】
ＣＰＵ１７は、自律リセットをかける。ＣＰＵ１７は、自律リセットからのブートの際にフラッシュメモリ１６ａのコンフィグレーションデータを読み込み、コンフィグ用デバイス２２に転送する。コンフィグ用デバイス２２は、コンフィグレーションデータをシリアル変換してＦＰＧＡ２１に出力する。ＦＰＧＡ２１は、コンフィグレーションデータに基づいて、内部の回路を構成する。
【０１００】
ダウンロードされるコンフィグレーションデータは、プログラム用バス１３を伝搬してフラッシュメモリ１６ａに格納される。よって、データ用バス１８と接続されているＣＰＵ１７は、コンフィグレーションデータがダウンロードされている間、データ用バス１８が占有されることがないので、通常処理を実行することができる。
【０１０１】
コンフィグレーションデータが正しくダウンロードされていないため、ＣＰＵ１７がコンフィグレーションデータをフラッシュメモリ１６ａから読み出せず、ブートできないときは、監視回路２０の内部のタイマがタイムアウトし、アクセスセレクタ１５の接続を元に戻す。よって、ＣＰＵ１７が接続されているデータ用バス１８は、前回ダウンロードされたコンフィグレーションデータを格納しているフラッシュメモリ１６ｂと接続され、ＣＰＵ１７はコンフィグレーションデータを読み出し可能となる。
【０１０２】
このように、ダウンロードされるコンフィグレーションデータが伝搬するためのプログラム用バス１３を設けるようにした。これによって、ＣＰＵ１７と接続されているデータ用バス１８はコンフィグレーションデータのダウンロードによって占有されることがないので、ＣＰＵ１７の通常処理が停止されることなく、コンフィグレーションデータをダウンロードすることができる。
【０１０３】
また、２つのフラッシュメモリ１６ａ，１６ｂの一方に最新のコンフィグレーションデータが格納されたとき、データ用バス１８をその一方のフラッシュメモリに接続し、プログラム用バス１３を他方のフラッシュメモリに接続する。そして、ＣＰＵ１７が最新のコンフィグレーションデータを読み出せずブートできなかったとき、データ用バス１８とプログラム用バス１３のフラッシュメモリ１６ａ，１６ｂへの接続を元に戻すようにした。これによって、ＣＰＵ１７は前回ダウンロードされたコンフィグレーションデータを読み出すことができ、装置機能が停止することがない。
【０１０４】
なお、コンフィグ用デバイス２２がＤＭＡＣの機能を有し、フラッシュメモリ１６ａ，１６ｂに格納されているコンフィグレーションデータを読み出してＦＰＧＡ２１に転送するようにしてもよい。例えば、ＣＰＵ１７がブートする前に、ＦＰＧＡ２１の回路構成が完了している必要がある場合に、コンフィグ用デバイス２２が、フラッシュメモリ１６ａ，１６ｂに格納されている最新のコンフィグレーションデータを読み出し、ＦＰＧＡ２１に転送する。ＣＰＵ１７は、コンフィグ用デバイス２２からＤＭＡ転送が終了した旨を受けて、ブートを開始する。
【０１０５】
また、コンフィグレーションデータが更新されるデバイスは、ＦＰＧＡに限られない。例えば、ＳＲＡＭ（Static Random Access Memory）型プログラマブルデバイスでもよく、データによって特定の機能を発揮するデバイスに適用することができる。
【０１０６】
（付記１）  ネットワークを介してプログラムをダウンロードする通信装置において、
前記ネットワークを介して送信される前記プログラムと通信データとを分別する分別回路と、
前記プログラムが伝搬するプログラム用バスと、
前記プログラムを実行する中央演算処理装置が接続され、前記通信データが伝搬するデータ用バスと、
前記プログラム用バスが接続されて、前記プログラムが格納される２つのメモリと、
前記プログラム用バスが接続されている前記２つのメモリの一方に最新の前記プログラムが格納されたとき、前記データ用バスを前記２つのメモリの一方に接続を切替え、前記プログラム用バスを前記２つのメモリの他方に接続を切替える切替え回路と、
前記中央演算処理装置が最新の前記プログラムで起動することができないとき、前記切替え回路の接続を元に戻す復旧回路と、
を有することを特徴とする通信装置。
【０１０７】
（付記２）  前記プログラムには、前記中央演算処理装置が起動するためのブートプログラムが含まれることを特徴とする付記１記載の通信装置。
（付記３）  前記２つのメモリは、フラッシュメモリであることを特徴とする付記１記載の通信装置。
【０１０８】
（付記４）  前記２つのメモリは、ＥＥＰＲＯＭであることを特徴とする付記１記載の通信装置。
（付記５）  ネットワークを介して設定データをダウンロードする通信装置において、
前記ネットワークを介して送信される前記設定データと通信データとを分別する分別回路と、
前記設定データが伝搬する設定データ用バスと、
前記設定データによって特定の機能を発揮するデバイスと中央演算処理装置とが接続され、前記通信データが伝搬するデータ用バスと、
前記設定データ用バスが接続されて、前記設定データが格納される２つのメモリと、
前記設定データ用バスが接続されている前記２つのメモリの一方に最新の前記設定データが格納されたとき、前記データ用バスを前記２つのメモリの一方に接続を切替え、前記設定データ用バスを前記２つのメモリの他方に接続を切替える切替え回路と、
前記中央演算処理装置が起動することができないとき、前記切替え回路の接続を元に戻す復旧回路と、
を有することを特徴とする通信装置。
【０１０９】
（付記６）  前記２つのメモリに格納された前記設定データは、前記中央演算処理装置によって前記デバイスに転送されることを特徴とする付記５記載の通信装置。
（付記７）  前記２つのメモリに格納された前記設定データを前記デバイスに転送する転送回路をさらに有することを特徴とする付記５記載の通信装置。
【図面の簡単な説明】
【０１１０】
【図１】本発明の原理を説明する原理図である。
【図２】本発明の第１の実施の形態に係る通信装置の回路ブロック図である。
【図３】アクセスセレクタのその１の状態の回路ブロック図である。
【図４】アクセスセレクタのその２の状態の回路ブロック図である。
【図５】受信されるデータの構成例を示した図である。
【図６】通信装置の動作の流れを示したシーケンス図である。
【図７】通信装置の動作の流れを示したシーケンス図である。
【図８】プログラム更新失敗時の動作の流れを示したシーケンス図である。
【図９】プログラム更新失敗時の動作の流れを示したシーケンス図である。
【図１０】本発明の第２の実施の形態に係る通信装置の回路ブロック図である。
【符号の説明】
【０１１１】
１，１０  通信装置
１ａ  分別回路
１ｂ，１３  プログラム用バス
１ｃ  中央演算処理装置
１ｄ，１８  データ用バス
１ｅａ，１ｅｂ  メモリ
１ｆ  切替え回路
１ｇ  復旧回路
２，５０  ネットワーク
１１  回線終端部
１２  ダウンロードデータセレクタ
１４  ＤＭＡＣ
１５  アクセスセレクタ
１６ａ，１６ｂ  フラッシュメモリ
１７  ＣＰＵ
１９  ＲＡＭ
２０  監視回路
２１  ＦＰＧＡ
２２  コンフィグ用デバイス
２３  コンフィグ用バス
３０  通信装置
４０  ネットワーク監視装置
【図１】
2005190305.tif 000003
【図２】
2005190305.tif 000004
【図３】
2005190305.tif 000005
【図４】
2005190305.tif 000006
【図５】
2005190305.tif 000007
【図６】
2005190305.tif 000008
【図７】
2005190305.tif 000009
【図８】
2005190305.tif 000010
【図９】
2005190305.tif 000011
【図１０】
2005190305.tif 000012