(57)【要約】【課題】オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができるデータ処理システムを提供する。【解決手段】オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを半導体データ処理装置の外部に接続された不揮発性半導体メモリデバイスに格納し、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムやパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換える。プログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。【選択図】図１
2012252567.tif 000002
【特許請求の範囲】
【請求項１】
半導体データ処理装置と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイスと、前記半導体データ処理装置に接続された出力回路とを備え、
前記半導体データ処理装置は、中央処理装置と、前記中央処理装置が実行するプログラムを格納する書き換え可能な不揮発性メモリと、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラと、前記出力回路に接続された外部インタフェース回路とを有し、
前記不揮発性半導体メモリデバイスは、複数のプログラムが格納される複数のプログラム領域を有し、
前記不揮発性メモリは、前記複数のプログラムの一部を格納するための実行プログラム領域を有し、
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う、データ処理システム。
【請求項２】
前記外部インタフェース回路は入力ポートであり、
前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するプログラム領域を判別する、請求項１記載のデータ処理システム。
【請求項３】
前記外部インタフェース回路はシリアル入力回路であり、
前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するプログラム領域を判別する、請求項１記載のデータ処理システム。
【請求項４】
前記プログラムは、転送制御用の第１のプログラムとその他の第２のプログラムを含み、
前記第１のプログラムは、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在実行中のプログラムに対応しないとき、当該判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を制御するプログラムであり、前記第２のプログラムの実行中の所定のタイミングで実行可能にされる、請求項１記載のデータ処理システム。
【請求項５】
前記不揮発性半導体メモリデバイスはエンベデッドメモリカードであり、
前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラである、請求項１記載のデータ処理システム。
【請求項６】
前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリであり、
前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路である、請求項１記載のデータ処理システム。
【請求項７】
半導体データ処理装置と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイスと、前記半導体データ処理装置に接続された出力回路とを備え、
前記半導体データ処理装置は、中央処理装置と、前記中央処理装置によるデータ処理で利用されるパラメータを格納する書き換え可能な不揮発性メモリと、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラと、前記出力回路に接続された外部インタフェース回路とを有し、
前記不揮発性半導体メモリデバイスは、複数のパラメータ群が格納される複数のパラメータ群領域を有し、
前記不揮発性メモリは、前記複数のパラメータ群の一部のパラメータ群を格納するためのテンポラリ領域を有し、
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を行う、データ処理システム。
【請求項８】
前記外部インタフェース回路は入力ポートであり、
前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するテンポラリ領域を判別する、請求項７記載のデータ処理システム。
【請求項９】
前記外部インタフェース回路はシリアル入力回路であり、
前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するテンポラリ領域を判別する、請求項７記載のデータ処理システム。
【請求項１０】
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在使用中のパラメータ群に対応しないとき、当該判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を、アプリケーションプログラムの実行中の所定のタイミングで実行可能にされる、請求項７記載のデータ処理システム。
【請求項１１】
前記不揮発性半導体メモリデバイスはエンベデッドメモリカードであり、
前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラである、請求項７記載のデータ処理システム。
【請求項１２】
前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリであり、
前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路である、請求項７記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロコンピュータなどの半導体データ処理装置にオンチップされた不揮発性メモリのプログラムやパラメータを書き換えて用いるデータ処理システムに関し、例えば、ＡＣサーボ、汎用インバータ、エアコン、パワーコンディショナー、自動車、或いは通信端末等に適用して有効な技術に関する。
【背景技術】
【０００２】
マイクロコンピュータなどの半導体データ処理装置にオンチップされた不揮発性メモリのプログラムやパラメータを書き換えて用いる技術として、特許文献１乃至６がある。これらの文献では、マイクロコンピュータのオンチップされた電気的に書き換え可能な不揮発性メモリとしてのフラッシュメモリに対する書き換えモードとしてＰＲＯＭライタ書き込みモードとオンボード書き込みモードとを有する。ＰＲＯＭライタ書き込みモードでは、ＰＲＯＭライタ書き込みモードを設定したマイクロコンピュータをソケットアダプタ経由でＰＲＯＭライタに接続し、ＲＯＭライタによってオンチップのフラッシュメモリを直接書き換え制御する。オンボード書き込みモードでは、マイクロコンピュータがシステムに実装された状態のままで、中央処理装置がＳＣＩやＵＳＢ等の通信インタフェースを用いてプログラムまたはパラメータをダウンロードし、ダウンロードしたプログラムやパラメータは中央処理装置が書き換え制御プログラムを実行することによってフラッシュメモリに書き込む。オンボード書き込みモードはプログラムやパラメータの初期書き込みなどに利用される。また、オンボード書き込みモードはプログラムのバグの修正やバージョンアップなどに利用される。特許文献７にもマイクロコンピュータにオンチップされたフラッシュメモリに対するオンボード書き込みについて記載される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−００４２５８号公報
【特許文献２】特開２００７−０９５０９３号公報
【特許文献３】特開２００２−３０４８９４号公報
【特許文献４】特開平１１−２８８４１０号公報
【特許文献５】特開平５−２６６２１９号公報
【特許文献６】特開平５−２６６２２０号公報
【特許文献７】特開２００１−３５７６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明者はマイクロコンピュータにオンチップされた書き換え可能な不揮発性メモリにプログラムやパラメータを格納して中央処理装置の近傍に配置し、これに対する中央処理装置のアクセス速度を向上させて、プログラムの実行速度を高速化し、また、パラメータの参照速度を高速化することについて検討した。
【０００５】
しかしながら、そのようにオンチップする事ができる不揮発性メモリの記憶容量はマイクロコンピュータのコストやチップサイズなどの点から制限され、その制限以上に大きな規模のプログラムやパラメータを用いる場合には新たな対策を講ずることが必要になる。更に、前記ＰＲＯＭライタモードやオンボード書き換えモードを用いてそのような書き換えを行ったとき、パワーオンリセットを行ってから新たなプログラムの実行を開始すると、処理の再開に時間がかかりすぎたりして、データ処理によっては不都合を生ずる場合のあることが明らかにされた。
【０００６】
本発明の目的は、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができるデータ処理システムを提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを半導体データ処理装置の外部に接続された不揮発性半導体メモリデバイスに格納し、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムやパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換える。プログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【発明の効果】
【００１０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１１】
すなわち、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は本発明の実施の形態１に係るデータ処理システムを例示するブロック図である。
【図２】図２はＭＣＣＮＴとＥＭＣＲＤとのインタフェース信号を例示するブロック図である。
【図３】図３はユーザプログラムの転送制御に関するマイクロコンピュータの論理構成を例示する説明図である。
【図４】図４は図１のデータ処理システムにおいて、図３で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図５】図５は本発明の実施の形態２に係るデータ処理システムを例示するブロック図である。
【図６】図６はユーザプログラムの転送制御に関する図５のマイクロコンピュータの論理構成が例示される説明図である。
【図７】図７は図５のデータ処理システムにおいて、図６で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図８】図８は実施の形態３に係るデータ処理システムを例示するブロック図である。
【図９】図９はパラメータの転送制御に関するマイクロコンピュータの論理構成が例示される説明図である。
【図１０】図１０は図８のデータ処理システムにおいて、図９で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図１１】図１１は不揮発性メモリデバイスとしてシリアルフラッシュメモリを用いた例を示すブロック図である。
【図１２】図１２は本発明に係るデータ処理システムをモータ制御に適用した例を示すブロック図である。
【発明を実施するための形態】
【００１３】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕＜内蔵ＲＯＭ容量を超えるプログラムを選択して外部から内蔵ＲＯＭにロード＞
本発明の代表的な実施の形態に係るデータ処理システム（１，１Ａ）は、半導体データ処理装置（１０，１０Ａ）と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイス（２０，２０Ｃ）と、前記半導体データ処理装置に接続された出力回路（３０，４０）とを備える。前記半導体データ処理装置は、中央処理装置（１１）と、前記中央処理装置が実行するプログラムを格納する書き換え可能な不揮発性メモリ（１２）と、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラ（１５、１９）と、前記出力回路に接続された外部インタフェース回路（１６，１７）とを有する。前記不揮発性半導体メモリデバイスは、複数のプログラムが格納される複数のプログラム領域（２０１−１〜２０−Ｎ）を有する。前記不揮発性メモリは、前記複数のプログラムの一部を格納するための実行プログラム領域（１２−１）を有する。前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【００１５】
これによれば、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換えるから、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムであっても、半導体データ処理装置にオンチップされた不揮発性メモリから直接リードして高速に実行することが可能になる。さらに、半導体データ処理装置にオンチップされた不揮発性メモリのプログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行うから、パワーオンリセットを行ってそのプログラムの実行を開始する場合に比べて、プログラム処理の再開に時間がかからず、実行するプログラムを切り替えたときデータ処理を円滑に再会することができる。
【００１６】
〔２〕＜ポート入力によってプログラムを指示＞
項１のデータ処理システムにおいて、前記外部インタフェース回路は入力ポート（１６）であり、前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するプログラム領域を判別する。
【００１７】
これにより、入力ポートを介してプログラムの書き換えを外部から容易に指示することができる。
【００１８】
〔３〕＜シリアル入力によってプログラムを指示＞
項１のデータ処理システムにおいて、前記外部インタフェース回路はシリアル入力回路（１７）であり、前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するプログラム領域を判別する。
【００１９】
これにより、シリアル入力回路を介してプログラムの書き換えを外部から容易に指示することができる。
【００２０】
〔４〕＜転送制御用のプログラムを含む＞
項１のデータ処理システムにおいて、前記プログラムは、転送制御用の第１のプログラム（１２０，１１０，１１１，１１２）とその他の第２のプログラムを含む。前記第１のプログラムは、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在実行中のプログラムに対応しないとき、当該判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を制御するプログラムである。前記第１のプログラムは、前記第２のプログラムの実行中の所定のタイミングで実行可能にされる。
【００２１】
これにより、プログラムは第２のプログラムと共に転送制御用の第１のプログラムを有するから、第２のプログラムを実行しながらプログラムの書き換えに付帯する処理を円滑に行うことができる。
【００２２】
〔５〕＜メモリコントローラ＞
項１のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスはエンベデッドメモリカード（２０）であり、前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラ（１５）である。
【００２３】
これによれば、メモリカードコントローラを有する半導体データ処理装置に対してエンベデッドメモリカードを大きなプログラムの格納に流用することができる。
【００２４】
〔６〕＜シリアルペリフェラルコントローラ＞
項１のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリ（２０）であり、前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路（１９）である。
【００２５】
これによれば、シリアルペリフェラルインタフェース回路を有する半導体データ処理装置に対して不揮発性シリアルメモリを大きなプログラムの格納に流用することができる。
【００２６】
〔７〕＜内蔵ＲＯＭ容量を超えるパラメータを選択して外部から内蔵ＲＯＭにロード＞
本発明の別の実施の形態に係るデータ処理システム（１Ｂ）は、半導体データ処理装置（１０Ｂ）と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイス（２０Ｂ，２０Ｃ）と、前記半導体データ処理装置に接続された出力回路（３０Ｂ）とを備える。前記半導体データ処理装置は、中央処理装置（１１）と、前記中央処理装置によるデータ処理で利用されるパラメータを格納する書き換え可能な不揮発性メモリ（１８）と、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラ（１５，１９）と、前記出力回路に接続された外部インタフェース回路（１６）とを有する。前記不揮発性半導体メモリデバイスは、複数のパラメータ群が格納される複数のパラメータ群領域（２０Ｂ−１〜２０Ｂ−Ｎ）を有する。前記不揮発性メモリは、前記複数のパラメータ群の一部のパラメータ群を格納するためのテンポラリ領域（１８−１）を有する。前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を行う。
【００２７】
これによれば、半導体データ処理装置は外部から与えられた情報の判別結果に応答して、内部で必要なパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換えるから、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のパラメータであっても、半導体データ処理装置にオンチップされた不揮発性メモリから直接リードして即座に利用することが可能になる。
【００２８】
〔８〕＜ポート入力によってパラメータ群を指示＞
項７のデータ処理システムにおいて、前記外部インタフェース回路は入力ポート（１６）であり、前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するテンポラリ領域を判別する。
【００２９】
これにより、入力ポートを介してパラメータの書き換えを外部から容易に指示することができる。
【００３０】
〔９〕＜シリアル入力によってパラメータ群を指示＞
項７のデータ処理システムにおいて、前記外部インタフェース回路はシリアル入力回路（１７）であり、前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するテンポラリ領域を判別する。
【００３１】
これにより、シリアル入力回路を介してパラメータの書き換えを外部から容易に指示することができる。
【００３２】
〔１０〕＜パラメータの書き換え制御用のプログラム＞
項７のデータ処理システムにおいて、前記中央処理装置（１１）は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在使用中のパラメータ群に対応しないとき、当該判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードする。リードしたパラメータ群を前記テンポラリ領域に格納する処理は、アプリケーションプログラムの実行中の所定のタイミングで実行可能にされる。
【００３３】
これにより、アプリケーションプログラムを実行しながらパラメータの書き換えに付帯する処理を円滑に行うことができる。
【００３４】
〔１１〕＜メモリコントローラ＞
項７のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスはエンベデッドメモリカード（２０Ｂ）であり、前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラ（１５）である。
【００３５】
これによれば、メモリカードコントローラを有する半導体データ処理装置に対してエンベデッドメモリカードを大きなサイズのパラメータの格納に流用することができる。
【００３６】
〔１２〕＜シリアルペリフェラルコントローラ＞
項７のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリ（２０Ｃ）であり、前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路（１９）である。
【００３７】
これによれば、シリアルペリフェラルインタフェース回路を有する半導体データ処理装置に対して不揮発性シリアルメモリを大きなサイズのパラメータの格納に流用することができる。
【００３８】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３９】
《実施の形態１》
図１には本発明の実施の形態１に係るデータ処理システムが例示される。同図に示されるデータ処理システム１は、特に制限されないが、所定の配線基板（図示せず）に、半導体データ処理装置としてのマイクロコンピュータ１０、前記マイクロコンピュータ１０に接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード（ＥＭＣＲＤ）２０、及びマイクロコンピュータ１０に接続された出力回路としてのプログラム選択スイッチ回路３０などが実装されて構成される。
【００４０】
マイクロコンピュータ１０は、特に制限されないが、単結晶シリコンなどの１個の半導体基板にＣＭＯＳ集積回路製造技術などによって構成される。このマイクロコンピュータ１０は、中央処理装置（ＣＰＵ）１１、電気的に書き換え可能な不揮発性メモリ（ＲＯＭ）１２、不揮発性メモリ１２に対する消去及び書き込み動作のシーケンス制御を行う消去書き込み制御回路（ＦＣＵ）１３、ＲＡＭ１４、前記エンベデッドメモリカード２０の動作を制御するメモリカードコントローラ（ＭＣＣＮＴ）１５、及び入出力ポート（ＩＯＰ）１６などを備える。ＲＡＭ１４はプログラムのワーク領域やデータを一時保存する領域として使用される。
【００４１】
図１では上記それぞれの回路モジュールは隣同士で信号の入出力を行うように図示されているが、これは代表的な信号入出力形態を模式的に図示しているにすぎない。実際は内部バスによって接続されている。図示は省略するが、例えばＣＰＵ１１、ＲＯＭ１２及びＲＡＭ１４はＣＰＵ１１の動作サイクルに匹敵するバスサイクルで信号伝達を行う高速な内部バスによって接続される。この内部バスはバスブリッジ回路又はバスコントローラを介して周辺バスに接続される。周辺バスには内部バスよりも低速で、必ずしも高速のクロック動作が必要とされない回路モジュールとして、前記ＦＣＵ１３、ＭＣＣＮＴ１５、ＩＯＰ１６などが結合されている。
【００４２】
前記不揮発性メモリ１２はフラッシュメモリの不揮発性記憶素子と同様の電気的に書き換え可能なスタックゲート型若しくはスプリットゲート型のメモリセルがマトリクス配置されたメモリセルアレイを有し、ＣＰＵ１１が実行するプログラムの格納に用いられる。その一部はユーザプログラムＵＰＧＭ＃ｉの格納領域１２−１とされる。図1ではｉ＝Ｊの場合を例示する。
【００４３】
前記不揮発性メモリ１２に対する消去書き込み制御回路１３は前記周辺バス経由でＣＰＵ１１から与えられる消去コマンドや書き込みコマンドに応答して、不揮発性メモリ１２に対する消去動作や書き込み動作のシーケンス制御を行う専用のハードウェアで、ＣＰＵ１１が他のタスク実行時でも、ＲＯＭ１２に対する書き込みを可能にする。前記不揮発性メモリ１２に対する読み出しは前記内部バス経由でＣＰＵ１１が高速に行うことができる。
【００４４】
ＭＣＣＮＴ１５はＣＰＵ１１から与えられるメモリカードコマンドに応答してＥＭＣＲＤ２０を制御するハードウェアである。
【００４５】
ＩＯＰ１６にはＮ個の入出力回路ＩＯ＃１〜ＩＯ＃Ｎが代表的に図示されている。入出力回路ＩＯ＃１〜ＩＯ＃Ｎにはプログラム選択スイッチ回路３０のＮ個のスイッチＳＷ＃１〜ＳＷ＃Ｎのスイッチ状態に応ずるスイッチ信号が供給される。特に制限されないが、夫々のスイッチ信号は１ビットとされる。プログラム選択スイッチにより制御される各I/Oポートの状態を反映する。上記スイッチ状態が反映される入出力回路ＩＯ＃１〜ＩＯ＃Ｎの状態はＣＰＵ１１によって監視される。
【００４６】
エンベデッドメモリカード２０は、特に制限されないが、組み込み用途のフラッシュメモリカードであり、回路基板上に例えばＢＧＡ（ボールグリッドアレイ）による外部端子を介して実装固定され、Ｎ個（Ｎは正の整数）のユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎを書き換え可能に格納する不揮発性のプログラム領域２０−１〜２０−Ｎを有する。このエンベデッドメモリカード２０は、例えばマルチメディアカード（MultiMediaCard/MMC：登録商標）準拠のメモリインタフェースを持つ。マイクロコンピュータ１０のメモリカードコントローラ１５は、エンベデッドメモリカード２０が持つ上記メモリカードインタフェースを用いたメモリカードのアクセス制御を行う。エンベデッドメモリカード２０の記憶容量や仕様の更新等があっても互換性の範囲でメモリカードコントローラ１５による制御を行うことができる。
【００４７】
ここで、ＲＯＭ１２の記憶容量はエンベデッドメモリカード２０の記憶容量に比べて格段に小さく、例えば数百キロバイトないし１メガバイト程度であり、例えば、ＯＳなどのシステムプログラムや必要なパラメータデータのほかに、一つのユーザプログラムを格納することができる程度の記憶容量をもつ。大きな記憶容量の電気的に書き換え可能な不揮発性メモリをオンチップで持つことによるマイクロコンピュータのコスト上昇とチップの大型化を抑えるためである。
【００４８】
プログラム選択スイッチ回路３０のスイッチＳＷ＃１〜ＳＷ＃ＮはユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎのプログラム領域２０−１〜２０−Ｎに対応され、対応するプログラム領域に対して、オン状態によるロー(Low)出力が選択、オフ状態によるハイ（High）出力が非選択を指示する。尚、プログラム選択スイッチ回路３０はスイッチＳＷ＃１〜ＳＷ＃Ｎのうち複数のスイッチがオン状態になることを禁止している。
【００４９】
スイッチＳＷ＃１〜ＳＷ＃Ｎのスイッチ状態は入出力ポート１６の入出力回路ＩＯ＃１〜ＩＯ＃Ｎに反映される。ＣＰＵ１１は入出力回路ＩＯ＃１〜ＩＯ＃Ｎの状態を監視し、それが指示する番号のユーザプログラムをＲＯＭ１２に書き込むための処理を行う。例えば新たに、ユーザプログラムの番号＃Ｊが指定されたことを検出すると、ＭＣＣＮＴ１５を介してＥＭＣＲＤ２０の記憶領域２０−ＪからＲＡＭ１４にユーザプログラムＵＰＧＭ＃Ｊを転送させ、次いで、そのユーザプログラムＵＰＧＭ＃ＪをＦＣＵ１３を介してＲＯＭ１２に書き込む制御を行う。特に制限されないが、その制御は、ユーザプログラムＵＰＧＭ＃Ｊを書きこむ前にＲＯＭ１２に格納さている他のユーザプログラムをＣＰＵ１１が実行することによって行う。新たなユーザプログラムＵＰＧＭ＃Ｊに書き込みが完了すると、特に制限されないが、ＣＰＵ１１がソフトウェアリセットを行って、当該ユーザプログラムＵＰＧＭ＃Ｊの実行が可能にされる。ソフトウェアリセットとして、例えば、ＣＰＵ１１の汎用レジスタやプログラムカウンタなどのレジスタセットの初期化が行われて、ユーザプログラムＵＰＧＭ＃Ｊの先頭番地から命令フェッチが開始される。
【００５０】
図２にはＭＣＣＮＴ１５とＥＭＣＲＤ２０とのインタフェース信号が例示される。図において双方は、クロック線、コマンド線、８本のデータ線で接続される。クロック線に供給されるクロック信号はＭＣＣＮＴ１５がマイクロコンピュータ１０内の周辺クロック信号を分周して生成し、このクロック信号がＭＣＣＮＴ１５からクロック線を介してＥＭＣＲＤ２０に供給される。コマンド線にはＭＣＣＮＴ１５からＥＭＣＲＤ２０に当該メモリカードのインタフェース仕様に準拠したコマンドが出力され、また、ＥＭＣＲＤ２０からＭＣＣＮＴ１５にはコマンドに対するレスポンスが転送される。データ線にはＭＣＣＮＴ１５からＥＭＣＲＤ２０に書き込みデータが供給され、また、ＥＭＣＲＤ２０からＭＣＣＮＴ１５に読み出しデータが供給される。使用するデータ線の本数は８本に限定されず、１本又は４本などであってもよい。
【００５１】
図３にはユーザプログラムの転送制御に関するマイクロコンピュータ１０の論理構成が例示される。ここではその論理構成を、ハードウェア層（ＨＷＬ）、ドライバ層（ＤＶＬ）、ミドルウェア（ＭＷＬ）、アプリケーション層（ＡＰＬ）に大別する。
【００５２】
ハードウェア層（ＨＷＬ）としてＩＯＰ１６、ＲＯＭ１２、ＦＣＵ１３、及びＭＣＣＮＴ１５を図示する。
【００５３】
ドライバ層（ＤＶＬ）には、例えば、入出力回路ＩＯ＃１〜ＩＯ＃ＮとスイッチＳＷ＃１〜ＳＷ＃Ｎとの対応を設定するＩＯＰ１６の機能設定部１００、ＦＣＵ１３によるＲＯＭ１２の消去及び書き込み制御シーケンスを規定するＦＣＵファームウェア１０１、ＭＣＣＮＴ１５を制御してＥＭＣＲＤ２０からユーザプログラムを読み出すためのリードアクセス動作のためのカードアクセスドライバ１０２が設けられる。
【００５４】
ミドルウェア層（ＭＷＬ）には、ＩＯ判定部１１０、書き込み制御部１１１、及びファイルシステム１１２を有する。ＩＯ判定部１１０は、プログラム選択スイッチ回路３０の状態を反映した各入出力回路ＩＯ＃１〜ＩＯ＃Ｎのロー（Lo）入力又はハイ（High）入力状態を判定するプログラムである。書き込み制御部１１１は、ＦＣＵファームウェア１０１が提供する機能に応じたコマンドを使用してＲＯＭへの消去及び書き込み動作に関する書き込み制御を行うプログラムである。ファイルシステム１１２はＥＭＣＲＤ２０内のユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎをファイルとして管理し、上位のアプリケーション層のプログラムがＥＭＣＲＤ２０内部のデータをファイルとして扱うことを可能にするためのプログラムである。ここでは、ユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃ＮをファイルとしてＥＭＣＲＤ２０に格納する例を説明したが、ユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃ＮをデータとしてＥＭＣＲＤ２０に格納し、ファイルシステムの代わりにユーザプログラムアクセス用の専用ソフトウェアを実装してもよい。
【００５５】
アプリケーション層（ＡＰＬ）は、タスク制御部１２０を有する。タスク制御部１２０は、ＩＯ判定部１１０を使用したＩＯＰ１６の状態に従った動作、書き込み制御部１１１を使用したＲＯＭ１２への書き込み動作、ファイルシステム１１２を使用したＥＭＣＲＤ２０からのファイルの読み出し動作等、マイクロコンピュータに対する全体的なタスクを制御するプログラムである。
【００５６】
特に制限されないが、ユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎのそれぞれは、ユーザプログラムの転送制御に用いるアプリケーション層（ＡＰＬ）のプログラム（タスク制御部１２０を構成する一部のプログラム）を持つ。ユーザプログラムの転送制御に用いるミドルウェア層（ＭＷＬ）及びドライバ層（ＤＶＬ）のプログラムは個々のアプリケーションプログラムから呼び出して実行すればよいから、ユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎ毎に個別に持たなくてもよい。ＲＯＭ１２のユーザプログラム領域とは別の記憶領域に固定的に格納されていればよい。尚、ユーザプログラムの転送制御に用いるアプリケーション層（ＡＰＬ）のプログラム（タスク制御部１２０を構成する一部のプログラム）は、ユーザプログラムの転送制御に用いるミドルウェア層（ＭＷＬ）及びドライバ層（ＤＶＬ）のプログラムと同様に、ユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎに共通化することも可能である。
【００５７】
図４には図１のデータ処理システムにおいて、図３で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、ＲＯＭ１２にはユーザプログラムＵＰＧＭ＃Ｋが初期的に格納されているものとする。
【００５８】
マイクロコンピュータ１０に電源が投入されて起動されると（Ｓ１）、パワーオンリセット処理によりマイクロコンピュータ１０の動作周波数や周辺モジュール等に対する初期設定が行われる（Ｓ２）。入出力ポート１６にはＩＯ機能設定部１００によってプログラム選択スイッチ回路３０との対応が設定される。
【００５９】
この後、ＲＯＭ１２に格納されているユーザプログラムＵＰＧＭ＃Ｋが先頭番地から実行される（Ｓ４）。即ち、ユーザプログラムの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、ユーザプログラムを更新するための処理を行う。即ち、ＣＰＵ１１は参照番号パラメータｉを０に初期化して（Ｓ５）、当該パラメータｉの値がＮになるまで（Ｓ６）、＋１ずつインクリメントしながら（Ｓ７）、当該パラメータが指す番号に入出力回路ＩＯ＃ｉの入力がロー（Ｌｏｗ）になっているか否かを判別する（Ｓ８）。どの入出力回路ＩＯ＃ｉの入力がロー（Ｌｏｗ）になるかはプログラム選択スイッチ回路３０の状態によって決まる。特に図示はしないが、現在実行中のユーザプログラムの番号はＣＰＵ１１によって把握されており、ステップＳ８の判別では現在実行中のユーザプログラムの番号が判定対象から除かれることは言うまでもない。
【００６０】
状態がLow”になっている入出力回路を判別すると、ＣＰＵ１１はその番号のユーザプログラム#ｉの更新要求があるものと判定し、ファイルシステム１１２によりＥＭＣＲＤ２０からＲＡＭ１４へユーザプログラム＃ｉを読み出す（Ｓ９）。例えばｉ＝Ｊとする。ＲＡＭ１４に読み出されたユーザプログラム#ｉは書き込み制御部１１１によりＲＯＭ１２に書き込まれる（Ｓ１０）。その後、マイクロコンピュータ１０はソフトウェアリセットされ、ＣＰＵ１１のレジスタセットが初期化される（Ｓ１１）。パワーオンリセットは行われない。ソフトウェアリセットに伴うレジスタセットの初期化などは、例えばハードウェアによって実現される。これによってＣＰＵ１１はユーザプログラム#ｉを実行開始し（Ｓ１２）、そのプログラムで規定されるタスクを実行する（Ｓ４）。
【００６１】
実施の形態１によれば、外部の通信端末の使用やカードソケットを実装することなく、マイクロコンピュータを起動した状態でユーザのプログラムを更新する事ができる。マイクロコンピュータがＲＯＭ１２の容量を超えた、複数のユーザプログラムを実行することができる。
【００６２】
プログラムスイッチ回路３０から与えたれた情報の判別結果に応答して、マイクロコンピュータ１０が必要なプログラムをＥＭＣＲＤ２０からダウンロードしてオンチップのＲＯＭ１２を書き換えるから、オンチップする事ができるＲＯＭの記憶容量以上に大きな規模のプログラムであっても、マイクロコンピュータ１０にオンチップされたＲＯＭから直接プログラムをリードして高速に実行することが可能になる。
【００６３】
マイクロコンピュータ１０にオンチップされたＲＯＭ１２のプログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行うから、パワーオンリセットを行ってそのプログラムの実行を開始する場合に比べて、プログラム処理の再開に時間がからず、実行するプログラムを切り替えたときデータ処理を円滑に再会することができる。
【００６４】
《実施の形態２》
図５には本発明の実施の形態２に係るデータ処理システムが例示される。同図に示されるデータ処理システム１Ａは、特に制限されないが、所定の配線基板（図示せず）に、半導体データ処理装置としてのマイクロコンピュータ１０Ａ、前記マイクロコンピュータ１０に接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード（ＥＭＣＲＤ）２０、及びマイクロコンピュータ１０に接続された出力回路としてのシリアル端末装置４０などが実装されて構成される。
【００６５】
マイクロコンピュータ１０Ａは、ＣＰＵ１１の制御によってシリアル通信制御を行うシリアルコミュニケーションインタフェースコントローラ（ＳＣＩＣ）１７を備える。このＳＣＩＣ１７にはシリアル端末装置４０が、例えばシリアルケーブルを介して接続される。シリアルケーブルに限定されず、非接触シリアル通信によってインタフェースされてもよい。ＳＣＩＣ１７にはシリアル端末４０の通信アプリケーションで生成された選択データ＃ｉがＳＣＩＣ４１を介して供給される。選択データ＃ｉは＃１〜＃Ｎの何れかの値を持つ。ＣＰＵ１１はＳＣＩＣ１７からの選択データ＃ｉの入力を監視する。実施の形態１と同様に選択データ＃ｉの値＃１〜＃ＮはユーザプログラムＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎの番号に対応される。ＣＰＵ１１はＳＣＩＣ１７から入力した番号＃ｉに応ずるユーザプログラムをＥＭＣＲＤ２０からＲＡＭ１４に転送してＲＯＭ１２に書き込む制御を行う。マイクロコンピュータ１０Ａのその他の構成は図１と同様であり、同一機能を有する回路には同じ参照符号を付してその詳細な説明を省略する。図５も図１と同様にｉ＝Ｊの場合を例示する。
【００６６】
図６にはユーザプログラムの転送制御に関するマイクロコンピュータ１０Ａの論理構成が例示される。ここではその論理構成を、ハードウェア層（ＨＷＬ）、ドライバ層（ＤＶＬ）、ミドルウェア（ＭＷＬ）、アプリケーション層（ＡＰＬ）に大別する。
【００６７】
図３との相違点はハードウェア層（ＨＷＬ）としてＳＣＩＣ１７を有し、ドライバ層（ＤＶＬ）としてＳＣＩドライバを有し、タスク制御部１２０ＡはＳＣＩＣ１７を制御対象に含めたアプリケーションプログラムとされる。ＳＣＩドライバ１０３はＳＣＩＣ１７を制御しシリアル端末４０からのユーザが選択した番号データ＃ｉを受信する制御を行う。番号判定部１１０Ａは、シリアル端末４０から受信した番号＃ｉを判定するプリグラムである。その他の論理構成は図３と同様であるから、同一機能にはそれと同じ参照符号を付して詳細な説明を省略する。
【００６８】
図７には図５のデータ処理システムにおいて、図６で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、ＲＯＭ１２にはユーザプログラムＵＰＧＭ＃Ｋが初期的に格納されているものとする。
【００６９】
マイクロコンピュータ１０Ａに電源が投入されて起動されると（Ｓ２１）、パワーオンリセット処理によりマイクロコンピュータ１０Ａの動作周波数や周辺モジュール等に対する初期設定が行われる（Ｓ２２）。ＳＣＩＣ１７にはＳＣＩドライバ１０３によってシリアル端末４０との間の通信条件などが設定される（Ｓ２３）。それに従ってＳＣＩＣ１７で番号＃ｉが受信されるかが判別される（Ｓ２４）。
【００７０】
番号受信がない場合は、ＲＯＭ１２に格納されているユーザプログラムＵＰＧＭ＃Ｋが先頭番地から実行開始される（Ｓ２５）。即ち、ユーザプログラムの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、番号受信の有無を逐次判別する（Ｓ２４）。
【００７１】
番号受信を判別したときは、ユーザプログラムを更新するための処理を行う。即ち、ＣＰＵ１１は受信番号が０＜ｉ＜Ｎであるかを判別し（Ｓ２６）、それ以外の番号であれば受信番号を破棄してステップＳ２５に戻る。特に図示はしないが、現在実行中のユーザプログラムの番号はＣＰＵ１１によって把握されており、ステップＳ８の判別では現在実行中のユーザプログラムの番号が判定対象から除かれることは言うまでもない。
【００７２】
受信番号が０＜ｉ＜Ｎのとき、ＣＰＵ１１はその番号のユーザプログラム#ｉの更新要求があるものと判定し、ファイルシステム１１２によりＥＭＣＲＤ２０からＲＡＭ１４へユーザプログラム＃ｉを読み出す（Ｓ２８）。例えばｉ＝Ｊとする。ＲＡＭ１４に読み出されたユーザプログラム#ｉは書き込み制御部１１１によりＲＯＭ１２に書き込まれる（Ｓ２９）。その後、マイクロコンピュータ１０Ａはソフトウェアリセットされ、ＣＰＵ１１のレジスタセットが初期化される（Ｓ３０）。パワーオンリセットは行われない。これによってＣＰＵ１１はユーザプログラム#ｉを実行開始し（Ｓ３１）、そのプログラムで規定されるタスクの実行（Ｓ２５）が可能にされる。
【００７３】
実施の形態２によればマイクロコンピュータ１０ＡにＩＯＰ経由でスイッチ回路を接続することなく、マイクロコンピュータ１０Ａを起動した状態でユーザプログラムを更新することができる。その他、実施の形態１と同様の作用効果を奏する。
【００７４】
《実施の形態３》
図８には実施の形態３に係るデータ処理システムが例示される。同図に示されるデータ処理システム１Ｂは、特に制限されないが、所定の配線基板（図示せず）に、半導体データ処理装置としてのマイクロコンピュータ１０Ｂ、前記マイクロコンピュータ１０Ｂに接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード（ＥＭＣＲＤ）２０Ｂ、及びマイクロコンピュータ１０Ｂに接続された出力回路としてのパラメータ選択スイッチ回路３０Ｂなどが実装されて構成される。
【００７５】
マイクロコンピュータ１０Ｂには電気的に書き換え可能な不揮発性メモリとしてのデータフラッシュメモリ（ＤＦＬＳＨ）１８が図示されている。データフラッシュメモリ１８はデータを書き換え可能に記憶するために利用され、その一部はＣＰＵ１１のデータ処理で用いられるパラメータを書き換え可能に格納するテンポラリ領域１８−１とされる。このデータフラッシュメモリ１８に対する消去及び書き込み動作のシーケンス制御は消去書き込み制御回路（ＦＣＵ）１３が行う。その他、図１と同様に回路には同じ参照符号を付してその詳細な説明を省略する。尚、図８ではプログラムを格納するＲＯＭの図示を省略しているが、マイクロコンピュータ１Ｂはプログラムを保有するＲＯＭを有し、例えば図１で説明した回路が設けられていても良い。マイクロコンピュータ１０Ｂにおいて図１と同じ回路には同じ参照符号を付してその詳細な説明は省略する。
【００７６】
図８では上記それぞれの回路モジュールは隣同士で信号の入出力を行うように図示されているが、これは代表的な信号入出力形態を模式的に図示しているにすぎない。実際は内部バスによって接続されている。図示は省略するが、例えばＣＰＵ１１、ＤＦＬＳＨ１８及びＲＡＭ１４はＣＰＵ１１の動作サイクルに匹敵するバスサイクルで信号伝達を行う高速な内部バスによって接続される。この内部バスはバスブリッジ回路又はバスコントローラを介して周辺バスに接続される。周辺バスには内部バスよりも低速で、必ずしも高速のクロック動作が必要とされない回路モジュールとして、前記ＦＣＵ１３、ＭＣＣＮＴ１５、ＩＯＰ１６などが結合されている。
【００７７】
エンベデッドメモリカード２０Ｂは、特に制限されないが、組み込み用途のフラッシュメモリカードであり、回路基板上に例えばＢＧＡ（ボールグリッドアレイ）による外部端子を介して実装固定され、Ｎ個（Ｎは正の整数）のパラメータ群ＵＰＲＭ＃１〜ＵＰＲＭ＃Ｎを書き換え可能に格納する不揮発性のパラメータ領域２０Ｂ−１〜２０Ｂ−Ｎを有する。このエンベデッドメモリカード２０Ｂは、例えばマルチメディアカード（MultiMediaCard/MMC：登録商標）準拠のメモリインタフェースを持つ。マイクロコンピュータ１０のメモリカードコントローラ１５は、エンベデッドメモリカード２０Ｂが持つ上記メモリカードインタフェースを用いたメモリカードのアクセス制御を行う。エンベデッドメモリカード２０Ｂの記憶容量や仕様の更新等があっても互換性の範囲でメモリカードコントローラ１５による制御を行うことができる。
【００７８】
ここで、ＤＦＬＳＨ１８の記憶容量はエンベデッドメモリカード２０Ｂの記憶容量に比べて格段に小さい。大きな記憶容量の電気的に書き換え可能な不揮発性メモリをオンチップで持つことによるマイクロコンピュータのコスト上昇とチップの大型化を抑えるためである。
【００７９】
パラメータ選択スイッチ回路３０ＢのスイッチＳＷ＃１〜ＳＷ＃ＮはパラメータＵＰＲＭ＃１〜ＵＰＲＭ＃Ｎのパラメータ領域２０Ｂ−１〜２０Ｂ−Ｎに対応され、対応するパラメータ領域に対して、オン状態によるロー(Low)出力が選択、オフ状態によるハイ（High）出力が非選択を指示する。尚、パラメータ選択スイッチ回路３０ＢはスイッチＳＷ＃１〜ＳＷ＃Ｎのうち複数のスイッチがオン状態になることを禁止している。
【００８０】
スイッチＳＷ＃１〜ＳＷ＃Ｎのスイッチ状態は入出力ポート１６の入出力回路ＩＯ＃１〜ＩＯ＃Ｎに反映される。ＣＰＵ１１は入出力回路ＩＯ＃１〜ＩＯ＃Ｎの状態を監視し、それが指示する番号のパラメータをＤＦＬＳＨ１８に書き込むための処理を行う。例えば図８の例では、新たに、パラメータの番号＃Ｊが指定されたことを検出すると、ＭＣＣＮＴ１５を介してＥＭＣＲＤ２０Ｂの記憶領域２０Ｂ−ＪからＲＡＭ１４にパラメータＵＰＲＭ＃Ｊを転送させ、次いで、そのパラメータＵＰＲＭ＃ＪをＦＣＵ１３を介してＤＦＬＳＨ１８に書き込む制御を行う。特に制限されないが、その制御は、ユーザプログラムをＣＰＵ１１が実行することによって行う。
【００８１】
図９にはパラメータの転送制御に関するマイクロコンピュータ１０Ｂの論理構成が例示される。ここではその論理構成を、ハードウェア層（ＨＷＬ）、ドライバ層（ＤＶＬ）、ミドルウェア（ＭＷＬ）、アプリケーション層（ＡＰＬ）に大別する。
【００８２】
図９ではハードウェア層（ＨＷＬ）としてＩＯＰ１６、ＤＦＬＳＨ１８、ＦＣＵ１３、及びＭＣＣＮＴ１５を図示する。
【００８３】
ドライバ層（ＤＶＬ）には、例えば、入出力回路ＩＯ＃１〜ＩＯ＃ＮとスイッチＷＳ＃１〜ＳＷ＃Ｎとの対応を設定するＩＯＰ１６の機能設定部１００、ＦＣＵ１３によるＤＦＬＳＨ１８の消去及び書き込み制御シーケンスを規定するＥＣＵファームウェア１０１Ｂ、ＭＣＣＮＴ１５を制御してＥＭＣＲＤ２０Ｂからパラメータを読み出すためのリードアクセス動作のためのカードアクセスドライバ１０２が設けられる。
【００８４】
ミドルウェア層（ＭＷＬ）には、ＩＯ判定部１１０、書き込み制御部１１１Ｂ、及びファイルシステム１１２を有する。ＩＯ判定部１１０は、プログラム選択スイッチ回路３０の状態を反映した各入出力回路ＩＯ＃１〜ＩＯ＃Ｎのロー（Lo）入力又はハイ（High）入力状態を判定するプログラムである。書き込み制御部１１１Ｂは、ＦＣＵファームウェア１０１Ｂが提供する機能に応じたコマンドを使用してＤＦＬＳＨ１８への消去及び書き込み動作に関する書き込み制御を行うプログラムである。ファイルシステム１１２はＥＭＣＲＤ２０Ｂ内のパラメータＵＰＲＭ＃１〜ＵＰＲＭ＃Ｎをファイルとして管理し、上位のアプリケーション層のプログラムがＥＤＭＣＲＤ２０Ｂ内部のデータをファイルとして扱うことを可能にするためのプログラムである。ここでは、パラメータＵＰＲＭ＃１〜ＵＰＲＭ＃ＮをファイルとしてＥＭＣＲＤ２０Ｂに格納する例を説明したが、パラメータＵＰＲＭ＃１〜ＵＰＲＭ＃ＮをデータとしてＥＭＣＲＤ２０Ｂに格納し、ファイルシステムの代わりにユーザプログラムアクセス用の専用ソフトウェアを実装してもよい。
【００８５】
アプリケーション層（ＡＰＬ）は、タスク制御部１２０Ｂを有する。タスク制御部１２０Ｂは、ＩＯ判定部１１０を使用したＩＯＰ１６の状態に従った動作、書き込み制御部１１１Ｂを使用したＤＦＬＳＨ１８への書き込み動作、ファイルシステム１１２を使用したＥＭＣＲＤ２０Ｂからのファイルの読み出し動作等、マイクロコンピュータに対する全体的なタスクを制御するプログラムである。
【００８６】
図１０には図８のデータ処理システムにおいて、図９で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、ＤＦＬＳＨ１８にはパラメータＵＰＲＭ＃Ｋが初期的に格納されているものとする。
【００８７】
マイクロコンピュータ１０Ｂに電源が投入されて起動されると（Ｓ４１）、パワーオンリセット処理によりマイクロコンピュータ１０Ｂの動作周波数や周辺モジュール等に対する初期設定が行われる（Ｓ４２）。入出力ポート１６にはＩＯ機能設定部１００によってパラメータ選択スイッチ回路３０Ｂとの対応が設定される。
【００８８】
この後、ユーザプログラムが先頭番地から実行される（Ｓ４４）。即ち、パラメータの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、パラメータを更新するための処理を行う。即ち、ＣＰＵ１１は参照番号パラメータｉを０に初期化して（Ｓ４５）、当該参照パラメータｉの値がＮになるまで（Ｓ４６）、＋１ずつインクリメントしながら（Ｓ４７）、当該参照パラメータが指す番号に入出力回路ＩＯ＃ｉの入力がロー（Ｌｏｗ）になっているか否かを判別する（Ｓ４８）。どの入出力回路ＩＯ＃ｉの入力がロー（Ｌｏｗ）になるかはパラメータ選択スイッチ回路３０Ｂの状態によって決まる。特に図示はしないが、現在使用中のパラメータの番号はＣＰＵ１１によって把握されており、ステップＳ４８の判別では現在使用中のパラメータの番号が判定対象から除かれることは言うまでもない。
【００８９】
状態がLow”になっている入出力回路を判別すると、ＣＰＵ１１はその番号のパラメータム#ｉの更新要求があるものと判定し、ファイルシステム１１２によりＥＭＣＲＤ２０ＢからＲＡＭ１４へパラメータ＃ｉを読み出す（Ｓ４９）。例えばｉ＝Ｊとする。ＲＡＭ１４に読み出されたパラメータＵＰＲＭ#Ｊは書き込み制御部１１１によりＤＦＬＳＨ１８に書き込まれる（Ｓ５０）。その後、マイクロコンピュータ１０ＢはユーザパラメータＵＰＲＭ＃ｉを使用してプログラムの実行を開始して（Ｓ５１）、タスクを実行する（Ｓ４４）。
【００９０】
実施の形態３によれば以下の作用効果を得ることができる。
【００９１】
外部の通信端末の使用やカードソケットを実装することなく、マイクロコンピュータ１０Ｂを起動した状態でパラメータＵＰＲＭ＃ｉを更新することができる。
【００９２】
また、マイクロコンピュータ１０ＢがＤＦＬＳＨ１８の記憶容量を超えた、複数のパラメータＵＰＲＭ＃１〜ＵＰＲＭ＃Ｎを使用することができる。
【００９３】
更に、マイクロコンピュータ１０Ｂは外部から与えたれた＃ｉ情報の判別結果に応答して、内部で必要なパラメータをＥＭＣＲＤ２０ＢからダウンロードしてオンチップのＤＦＬＳＨ１８を書き換えるから、オンチップする事ができるＤＦＬＳＨ１８の記憶容量以上に大きな規模のパラメータであっても、マイクロコンピュータ１０ＢにオンチップされたＤＦＬＳＨ１８から直接リードして即座に利用することが可能になる。
【００９４】
《実施の形態４》
図１１には不揮発性メモリデバイスとしてシリアルフラッシュメモリを用いた例が示される。シリアルフラッシュメモリ（ＳＦＬＳＨ）２０Ｃは、ＥＭＣＲＤ２０よりアクセス速度は遅いが、ＥＭＣＲＤ２０に比較しアクセスのための通信方式が簡易であり、ソフトウェアの作成が容易である。さらに、シリアルインタフェースで制御でき、端子数も少ないという利点もある。
【００９５】
シリアルフラッシュメモリ２０Ｃを用いる場合にはマイクロコンピュータ１０Ｃはシリアルフラッシュメモリ２０Ｃに接続するシリアルインタフェース回路（ＳＰＩＣ）１９を周辺回路として備える。このシリアルインタフェースは所謂ＳＰＩ（Serial Peripheral Interface）に準拠したインタフェース制御機能を備える。シリアルフラッシュメモリ２０ＣはＳＰＩＣ１９とクロック線、チップセレクト線、入力データ（データイン）線、出力データ（データアウト）線で接続する。クロックはＳＰＩＣ１９がマイクロコンピュータ１０Ｃの周辺クロックを分周し生成し、生成されたクロック信号はＳＰＩＣ１９からＳＦＬＳＨ２０Ｃにクロック線を介して供給される。チップセレクト線はＳＰＩＣ１９がＳＦＬＳＨ２０Ｃに対するチップ選択信号を伝達し、チップ選択信号が選択レベルにされることによってＳＦＬＳＨ２０Ｃはチップ選択状態にされ、データの書き込みや読み出しが可能にされる。データアウト線はＳＰＩＣ１９からＳＦＬＳＨ２０Ｃに書き込みデータを転送し、データイン線はＳＦＬＳＨ２０ＣからＳＰＩＣ１９に読み出しデータを転送する。尚、マイクロコンピュータに複数のシリアルフラッシュメモリを接続することもでき、その場合、マイクロコンピュータはチップセレクト線により個々のシリアルフラッシュメモリを選択すればよい。
【００９６】
《実施の形態５》
図１２には本発明に係るデータ処理システムをモータ制御に適用した例が示される。産業用途のモータは機器の位置決め制御や時刻同期が必要な制御等で使用する。そこで、高精度な制御が必要となりマイクロコンピュータでモータを制御するのが一般的である。
【００９７】
マイクロコンピュータ１０ＤのＣＰＵ１１はＲＯＭ１２に格納されたプログラムに従いモータ制御の演算を行う。演算結果を基にモータ制御用タイマ４０でPWM(Pulse Width Modulation)信号を生成する。方形波のPWM信号は、そのハイレベル（High）とローレベル（Low）の区間を調整して、モータドライバ４１を経由でモータ４２を駆動制御をする。また、マイクロコンピュータ１０ＤのA/D変換器４３によりモータセンサ４５からのセンサ信号を論理信号に変換し、モータの動作情報を取得する。ＣＰＵ１１のモータ制御演算はモータ４２の動作情報も反映させた演算となる。
【００９８】
ＲＯＭ１２のプログラムを書き換えることでモータ制御演算の内容を更新する場合、モータ４２を正常に制御するには、マイクロコンピュータ１０Ｄを起動したままで書き換える必要がある。従って、実施の形態１などで説明したＲＯＭ１２に対するユーザプログラムの選択的な書き換えのための構成を採用することにより、マイクロコンピュータ１０Ｄをパワーオンリセットすることなく効率的にユーザプログラムを書き換えて、小さなオンチップＲＯＭ１２を用いた高速のモータ制御を容易に実現することができる。
【００９９】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１００】
例えば、不揮発性メモリデバイスはメモリカードやシリアルフラッシュメモリに限定されずその他の不揮発性メモリに変更可能である。出力回路はスイッチ回路やシリアル端末に限定されずレジスタなど適宜変更可能である。オンチップ不揮発性メモリはフラッシュメモリに限定されずＭＲＡＭなどであってもよい。マイクロコンピュータの論理構成は図３などの階層構成に限定されず、ミドルウェア層がない場合など、その他の論理階層構造であっても良い。本発明はモータ制御のほかにも適宜の制御分野に適用することができる。また、各実施の形態はそれぞれ単独で実現する場合に限らず、適宜の複数の実施の形態を組み合わせて実現することも可能である。
【符号の説明】
【０１０１】
１，１Ａ，１Ｂ  データ処理システム
１０，１０Ａ，１０Ｂ  マイクロコンピュータ
２０，２０Ｂ  エンベデッドメモリカード（ＥＭＣＲＤ）
２０Ｃ  シリアルフラッシュメモリ（ＳＦＬＳＨ）
３０  プログラム選択スイッチ回路
１１  中央処理装置（ＣＰＵ）
１２  不揮発性メモリ（ＲＯＭ）
１３  消去書き込み制御回路（ＦＣＵ）
１４  ＲＡＭ
１５  メモリカードコントローラ（ＭＣＣＮＴ）
１６  入出力ポート（ＩＯＰ）
ＩＯ＃１〜ＩＯ＃Ｎ  入出力回路
ＳＷ＃１〜ＳＷ＃Ｎ  スイッチ
ＵＰＧＭ＃１〜ＵＰＧＭ＃Ｎ  ユーザプログラム
１００  機能設定部
１０１  ＥＣＵファームウェア
１０２  カードアクセスドライバ
１１０  ＩＯ判定部
１１１  書き込み制御部
１１２  ファイルシステム
１１０  ＩＯ判定部
１７  シリアルコミュニケーションインタフェースコントローラ（ＳＣＩＣ）
４０  シリアル端末装置
１２０Ａ  タスク制御部
１０３  ＳＣＩドライバ
１１０Ａ  番号判定部
３０Ｂ  パラメータ選択スイッチ回路
ＵＰＲＭ＃１〜ＵＰＲＭ＃Ｎ  パラメータ群
２０Ｂ−１〜２０Ｂ−Ｎ  パラメータ領域
１８  データフラッシュメモリ（ＤＦＬＳＨ）
【図１】
2012252567.tif 000003
【図２】
2012252567.tif 000004
【図３】
2012252567.tif 000005
【図４】
2012252567.tif 000006
【図５】
2012252567.tif 000007
【図６】
2012252567.tif 000008
【図７】
2012252567.tif 000009
【図８】
2012252567.tif 000010
【図９】
2012252567.tif 000011
【図１０】
2012252567.tif 000012
【図１１】
2012252567.tif 000013
【図１２】
2012252567.tif 000014