(57)【要約】【課題】プログラム等の変更をする際の誤った設定による誤動作を防止することができる集積回路装置等を提供する。【解決手段】集積回路装置１００は、１又は複数のモード設定端子１０２と、通常プログラムを記憶するＲＯＭ１３０と、電源投入時において１又は複数のモード設定端子１０２により起動モードが設定されたとき、通常プログラムの少なくとも一部を修正プログラムに置き換えるための記憶エリアを有するＲＡＭ１３０と、起動モードから通常モードに変更された後、ＲＡＭ１３０に記憶され、通常プログラムの少なくとも一部に置き換えられた修正プログラムを実行するＣＰＵ１２０とを含む。【選択図】図２
2013077171.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のモード設定端子と、
第１のプログラムを記憶する不揮発性メモリーと、
電源投入時において前記１又は複数のモード設定端子により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換えるプログラム置換処理部と、
前記第１のモードから第２のモードに変更された後、前記プログラム置換処理部によって置き換えられた前記第２のプログラムを実行する中央演算処理装置とを含むことを特徴とする集積回路装置。
【請求項２】
モード設定レジスターと、
第１のプログラムを記憶する不揮発性メモリーと、
前記モード設定レジスターの設定値により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換えるプログラム置換処理部と、
前記第１のモードから第２のモードに変更された後、前記プログラム置換処理部によって置き換えられた前記第２のプログラムを実行する中央演算処理装置とを含むことを特徴とする集積回路装置。
【請求項３】
請求項２において、
前記モード設定レジスターの設定値は、前記第２のプログラムを送信するホストにより設定されることを特徴とする集積回路装置。
【請求項４】
請求項２において、
前記モード設定レジスターの設定値は、前記第２のプログラムを送信するホストからのコマンドを受けた前記中央演算処理装置により設定されることを特徴とする集積回路装置。
【請求項５】
請求項２において、
前記第２のプログラムを送信するホストとの間の通信インターフェース処理を行うホストインターフェースを含み、
前記モード設定レジスターの設定値は、前記第２のプログラムを送信するホストからのコマンドを受けた前記ホストインターフェースにより設定されることを特徴とする集積回路装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記プログラム置換処理部は、
前記第１のプログラム内の関数プログラム毎に書き換えが可能な先頭アドレスがテーブル化されたアドレステーブルと、
前記第２のプログラムが記憶される揮発性メモリーとを含み、
前記中央演算処理装置は、
書き換え後の前記アドレステーブルを参照して、前記第２のプログラムを実行することを特徴とする集積回路装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記第１のモードから前記第２のモードへの変更が可能に構成され、且つ、前記第２のモードから前記第１のモードへの変更が不可能に構成されることを特徴とする集積回路装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記第２のプログラムを送信するホストとの間の通信設定を行うための通信設定レジスターを含み、
前記第１のモードのとき、前記通信設定レジスターへの設定値の変更が可能に構成され、且つ、前記第２のモードのとき、前記通信設定レジスターへの設定値の変更が不可能に構成されることを特徴とする集積回路装置。
【請求項９】
請求項１乃至８のいずれか記載の集積回路装置と、
前記第２のプログラムを前記集積回路装置に対して送信するホストとを含むことを特徴とする処理システム。
【請求項１０】
請求項１乃至８のいずれか記載の集積回路装置を含むことを特徴とする電子機器。
【請求項１１】
１又は複数のモード設定端子と、
第１のプログラムを記憶する不揮発性メモリーと、
中央演算処理装置とを有する集積回路装置のモード切替方法であって、
電源投入時において前記１又は複数のモード設定端子により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換える置換ステップと、
前記第１のモードから第２のモードに変更後、前記中央演算処理装置が、前記置換ステップにおいて置き換えられた前記第２のプログラムを実行する実行ステップとを含むことを特徴とする集積回路装置のモード切替方法。
【請求項１２】
モード設定レジスターと、
第１のプログラムを記憶する不揮発性メモリーと、
中央演算処理装置とを有する集積回路装置のモード切替方法であって、
前記モード設定レジスターの設定値により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換える置換ステップと、
前記第１のモードから第２のモードに変更後、前記中央演算処理装置が、前記置換ステップにおいて置き換えられた前記第２のプログラムを実行する実行ステップとを含むことを特徴とする集積回路装置のモード切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置、処理システム、電子機器、及び集積回路装置のモード切替方法等に関する。
【背景技術】
【０００２】
従来、多くの電子機器には、中央演算処理装置及びマスクＲＯＭを内蔵した集積回路装置が搭載される。この集積回路装置は、マスクＲＯＭに記憶されたプログラムを読み込んだ中央演算処理装置が、複雑な機能を実現する。ところが、プログラムやデータ等がマスクＲＯＭに記憶されているため、仕様の変更や不具合の発生等により集積回路装置の動作を変更する必要があっても、プログラム等を変更することは容易ではなかった。そこで、フラッシュメモリーを内蔵した集積回路装置を採用することも考えられるが、コスト高を招く上に、フラッシュメモリーの書き込み時間が長く、低コストで高速にプログラムの変更等が可能な集積回路装置が望まれている。
【０００３】
このようなプログラム等の変更を容易にした集積回路装置に関する技術については、種々提案されている。例えば特許文献１には、書き換えプログラムを送信する外部装置との間でシリアル通信機能を有し、複数のブロックに分割されたメモリー手段の一部のブロックのみを書き換えることでプログラムの変更等を可能にしたワンチップマイコンが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２２７３５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された技術では、ワンチップマイコン側で常に通信設定の変更やプログラム等の変更が可能である。そのため、例えば外部装置のソフトウェアのミス等により誤った設定が行われてしまうと、ワンチップマイコンが動作不能に陥る危険性があるという問題がある。
【０００６】
本発明は、以上のような技術的課題に鑑みてなされたものである。本発明の幾つかの態様によれば、プログラム等の変更をする際の誤った設定による誤動作を防止することができる集積回路装置、処理システム、電子機器、及び集積回路装置のモード切替方法等を提供することができる。
【課題を解決するための手段】
【０００７】
（１）本発明の第１の態様は、集積回路装置が、１又は複数のモード設定端子と、第１のプログラムを記憶する不揮発性メモリーと、電源投入時において前記１又は複数のモード設定端子により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換えるプログラム置換処理部と、前記第１のモードから第２のモードに変更された後、前記プログラム置換処理部によって置き換えられた前記第２のプログラムを実行する中央演算処理装置とを含む。
【０００８】
本態様においては、第１のモードにおいて、第１のプログラムの少なくとも一部を第２のプログラムに置き換え、第２のモードにおいて、中央演算処理装置が、第２のプログラムに一部を置き換えた第１のプログラムを実行する。第１のモードは、集積回路装置の電源投入時における１又は複数のモード設定端子により設定される。こうすることで、集積回路装置は、誤って第２のプログラムに置き換えられることに起因した誤動作を防止することができるようになる。即ち、機能的に重要な設定変更が可能な第１のモードを、第１のプログラムを実行する第２のモードとは別に設けるようにしたので、集積回路装置は、設定の適切な保護が可能となる。
【０００９】
（２）本発明の第２の態様は、集積回路装置が、モード設定レジスターと、第１のプログラムを記憶する不揮発性メモリーと、前記モード設定レジスターの設定値により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換えるプログラム置換処理部と、前記第１のモードから第２のモードに変更された後、前記プログラム置換処理部によって置き換えられた前記第２のプログラムを実行する中央演算処理装置とを含む。
【００１０】
本態様においては、第１のモードにおいて、第１のプログラムの少なくとも一部を第２のプログラムに置き換え、第２のモードにおいて、中央演算処理装置が、第２のプログラムに一部を置き換えた第１のプログラムを実行する。第１のモードは、モード設定レジスターにより設定される。こうすることで、集積回路装置は、誤って第２のプログラムに置き換えられることに起因した誤動作を防止することができるようになる。即ち、機能的に重要な設定変更が可能な第１のモードを、第１のプログラムを実行する第２のモードとは別に設けるようにしたので、集積回路装置は、設定の適切な保護が可能となる。
【００１１】
（３）本発明の第３の態様に係る集積回路装置では、第２の態様において、前記モード設定レジスターの設定値は、前記第２のプログラムを送信するホストにより設定される。
【００１２】
本態様によれば、上記の効果に加えて、１又は複数のモード設定端子を設けて第１のモードを設定する場合に比べて、より簡素な構成で、集積回路装置の各種設定の適切な保護が可能となる。
【００１３】
（４）本発明の第４の態様に係る集積回路装置では、第２の態様において、前記モード設定レジスターの設定値は、前記第２のプログラムを送信するホストからのコマンドを受けた前記中央演算処理装置により設定される。
【００１４】
本態様によれば、上記の効果に加えて、１又は複数のモード設定端子を設けて第１のモードを設定する場合に比べて、より簡素な構成で、集積回路装置の各種設定の適切な保護が可能となる。
【００１５】
（５）本発明の第５の態様に係る集積回路装置では、第２の態様において、前記第２のプログラムを送信するホストとの間の通信インターフェース処理を行うホストインターフェースを含み、前記モード設定レジスターの設定値は、前記第２のプログラムを送信するホストからのコマンドを受けた前記ホストインターフェースにより設定される。
【００１６】
本態様によれば、上記の効果に加えて、１又は複数のモード設定端子を設けて第１のモードを設定する場合に比べて、より簡素な構成で、集積回路装置の各種設定の適切な保護が可能となる。
【００１７】
（６）本発明の第６の態様に係る集積回路装置では、第１の態様乃至第５の態様のいずれかにおいて、前記プログラム置換処理部は、前記第１のプログラム内の関数プログラム毎に書き換えが可能な先頭アドレスがテーブル化されたアドレステーブルと、前記第２のプログラムが記憶される揮発性メモリーとを含み、前記中央演算処理装置は、書き換え後の前記アドレステーブルを参照して、前記第２のプログラムを実行する。
【００１８】
本態様によれば、揮発性メモリーと中央演算処理装置により、第１のプログラムの少なくとも一部を第２のプログラムに置き換えることができるので、非常に簡素な構成で、集積回路装置における設定の適切な保護が可能となる。
【００１９】
（７）本発明の第７の態様に係る集積回路装置は、第１の態様乃至第６の態様のいずれかにおいて、前記第１のモードから前記第２のモードへの変更が可能に構成され、且つ、前記第２のモードから前記第１のモードへの変更が不可能に構成される。
【００２０】
本態様によれば、上記の効果に加えて、第２のモードにおける誤った設定により、機能的に重要な設定変更が可能な第１のモードに変更されないようにし、各種設定の適切な保護を可能にしている。
【００２１】
（８）本発明の第８の態様に係る集積回路装置は、第１の態様乃至第７の態様のいずれかにおいて、前記第２のプログラムを送信するホストとの間の通信設定を行うための通信設定レジスターを含み、前記第１のモードのとき、前記通信設定レジスターへの設定値の変更が可能に構成され、且つ、前記第２のモードのとき、前記通信設定レジスターへの設定値の変更が不可能に構成される。
【００２２】
本態様によれば、上記の効果に加えて、第２のモードにおける通信設定の誤った設定により、機能的に重要な設定変更が可能な第１のモードに変更されないようにし、各種設定の適切な保護を可能にしている。
【００２３】
（９）本発明の第９の態様は、処理システムが、第１の態様乃至第８の態様のいずれか記載の集積回路装置と、前記第２のプログラムを前記集積回路装置に対して送信するホストとを含む。
【００２４】
本態様によれば、プログラム等の変更をする際の誤った設定による誤動作を防止することができる処理システムを提供することができるようになる。
【００２５】
（１０）本発明の第１０の態様は、電子機器が、第１の態様乃至第８の態様のいずれか記載の集積回路装置を含む。
【００２６】
本態様によれば、プログラム等の変更をする際の誤った設定による誤動作を防止することができる集積回路装置が適用された電子機器を提供することができるようになる。
【００２７】
（１１）本発明の第１１の態様は、１又は複数のモード設定端子と、第１のプログラムを記憶する不揮発性メモリーと、中央演算処理装置とを有する集積回路装置のモード切替方法が、電源投入時において前記１又は複数のモード設定端子により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換える置換ステップと、前記第１のモードから第２のモードに変更後、前記中央演算処理装置が、前記置換ステップにおいて置き換えられた前記第２のプログラムを実行する実行ステップとを含む。
【００２８】
本態様においては、第１のモードにおいて、第１のプログラムの少なくとも一部を第２のプログラムに置き換え、第２のモードにおいて、中央演算処理装置が、第２のプログラムに一部を置き換えた第１のプログラムを実行する。第１のモードは、集積回路装置の電源投入時における１又は複数のモード設定端子により設定される。こうすることで、集積回路装置は、誤って第２のプログラムに置き換えられることに起因した誤動作を防止することができるようになる。即ち、機能的に重要な設定変更が可能な第１のモードを、第１のプログラムを実行する第２のモードとは別に設けるようにしたので、集積回路装置は、設定の適切な保護が可能となる。
【００２９】
（１２）本発明の第１２の態様は、モード設定レジスターと、第１のプログラムを記憶する不揮発性メモリーと、中央演算処理装置とを有する集積回路装置のモード切替方法であって、前記モード設定レジスターの設定値により第１のモードが設定されたとき、前記第１のプログラムの少なくとも一部を第２のプログラムに置き換える置換ステップと、前記第１のモードから第２のモードに変更後、前記中央演算処理装置が、前記置換ステップにおいて置き換えられた前記第２のプログラムを実行する実行ステップとを含む。
【００３０】
本態様においては、第１のモードにおいて、第１のプログラムの少なくとも一部を第２のプログラムに置き換え、第２のモードにおいて、中央演算処理装置が、第２のプログラムに一部を置き換えた第１のプログラムを実行する。第１のモードは、モード設定レジスターにより設定される。こうすることで、集積回路装置は、誤って第２のプログラムに置き換えられることに起因した誤動作を防止することができるようになる。即ち、機能的に重要な設定変更が可能な第１のモードを、第１のプログラムを実行する第２のモードとは別に設けるようにしたので、集積回路装置は、設定の適切な保護が可能となる。
【図面の簡単な説明】
【００３１】
【図１】第１の実施形態における集積回路装置が適用された処理システムの構成例を示す図。
【図２】第１の実施形態における集積回路装置の構成例のブロック図。
【図３】図２のＲＡＭの説明図。
【図４】第１の実施形態における集積回路装置の処理例のフロー図。
【図５】図４の起動モード処理の処理例のフロー図。
【図６】第１の実施形態における書き換え前のアドレステーブルの説明図。
【図７】第１の実施形態における書き換え後のアドレステーブルの説明図。
【図８】第１の実施形態における集積回路装置の動作例のシーケンス図。
【図９】第２の実施形態における集積回路装置のブロック図。
【図１０】第２の実施形態の第１の変形例における集積回路装置のブロック図。
【図１１】第２の実施形態の第２の変形例における集積回路装置のブロック図。
【図１２】本発明に係るいずれかの実施形態又はその変形例における集積回路装置が適用された電子機器の構成例のブロック図。
【発明を実施するための形態】
【００３２】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の課題を解決するために必須の構成要件であるとは限らない。
【００３３】
〔第１の実施形態〕
図１に、本発明の第１の実施形態における集積回路装置が適用された処理システムの構成例を示す。
【００３４】
第１の実施形態における処理システム１０は、ホスト中央演算処理装置（Central Processing Unit：以下、ＣＰＵ）２０（ホスト）と、集積回路装置１００とを備え、ホストＣＰＵ２０及び集積回路装置１００は、信号線２２を介して接続される。
【００３５】
集積回路装置１００は、ＲＯＭ（Read−Only Memory）、ＲＡＭ（Random Access Memory）及びＣＰＵを有し、ＲＯＭ又はＲＡＭに記憶されたプログラムを読み出したＣＰＵが該プログラムに対応した処理を実行する。ホストＣＰＵ２０は、信号線２２を介して、ＲＯＭに記憶されたプログラムを修正するための修正プログラムを集積回路装置１００に対して送信する。集積回路装置１００を構成するＣＰＵは、ＲＯＭに記憶されたプログラムに、ホストＣＰＵ２０からの修正プログラムを適用したプログラムを実行することができる。
【００３６】
具体的には、集積回路装置１００は、１又は複数のモード設定端子１０２を備え、電源投入時における１又は複数のモード設定端子１０２の状態により動作モードが設定される。集積回路装置１００は、設定可能な動作モードのうち第１のモードのときのみ、修正プログラムの適用が可能に構成される。また、集積回路装置１００は、第１のモードに設定されているときのみ、ホストＣＰＵ２０と集積回路装置１００との間の通信設定が可能に構成される。第１のモードから第２のモードに変更後、集積回路装置１００を構成するＣＰＵは、修正プログラムが適用されたプログラムを実行することができる。
【００３７】
このように、機能的に重要な設定変更が可能な動作モードを、通常のプログラムを実行する動作モードとは別に設けるようにしたので、集積回路装置１００は、設定の適切な保護が可能となる。従って、例えばホストＣＰＵ２０からの設定ミスに起因した集積回路装置１００の誤動作を防止することができるようになる。
【００３８】
以下、第１の実施形態における集積回路装置１００の構成例及び動作例について説明する。
以下では、集積回路装置１００が、動作モードとして、起動モード（第１のモード）又は通常モード（第２のモード）で動作するものとする。
【００３９】
図２に、第１の実施形態における集積回路装置１００の構成例のブロック図を示す。図２において、図１と同様の部分には同一符号を付し、適宜説明を省略する。なお、図２では、集積回路装置１００の他に、図１のホストＣＰＵ２０もあわせて図示している。
図３に、図２のＲＡＭ１３０の説明図を示す。図３において、図２と同様の部分には同一符号を付し、適宜説明を省略する。
【００４０】
集積回路装置１００は、１又は複数のモード設定端子１０２の他に、ＲＯＭ１１０（不揮発性メモリー）と、ＣＰＵ１２０と、ＲＡＭ１３０（揮発性メモリー）と、ホストインターフェース（InterFace：以下、Ｉ／Ｆ）１４０とを備えている。また、集積回路装置１００は、通信設定レジスター１４２と、汎用入出力（General Purpose Input／Output：ＧＰＩＯ）部１５０とを備えている。ＲＯＭ１１０、ＣＰＵ１２０、ＲＡＭ１３０、ホストＩ／Ｆ１４０、及びＧＰＩＯ部１５０は、バスＢＵＳを介して接続される。なお、図２では、通信設定レジスター１４２は、ホストＩ／Ｆ１４０に接続されているが、通信設定レジスター１４２は、ホストＩ／Ｆ１４０に内蔵されたり、バスＢＵＳに接続されたりしてもよい。
【００４１】
ＲＯＭ１１０は、アドレステーブル１１２と、起動プログラム１１４と、通常プログラム１１６（第１のプログラム）とを記憶している。アドレステーブル１１２は、通常プログラム１１６内の関数プログラム毎に書き換えが可能な先頭アドレスがテーブル化されたテーブルである。起動プログラム１１４は、起動モード時にＣＰＵ１２０により実行されるプログラムである。通常プログラム１１６は、通常モード時にＣＰＵ１２０により実行されるプログラムである。
【００４２】
ＲＡＭ１３０は、図３に示すように、ＲＡＭの記憶エリア（ＲＡＭエリア）として、アドレステーブルエリア１３２と、通常プログラムエリア１３４と、修正プログラムエリア１３６とを有する。アドレステーブルエリア１３２には、集積回路装置１００の起動時にＲＯＭ１１０から読み出されたアドレステーブル１１２が展開される。通常プログラムエリア１３４には、集積回路装置１００の起動時にＲＯＭ１１０から読み出された通常プログラム１１６が展開される。修正プログラムエリア１３６には、信号線２２を介してホストＣＰＵ２０によって送信された修正プログラムが格納される。
【００４３】
ＣＰＵ１２０は、バスＢＵＳを介して、ＲＯＭ１１０に記憶された起動プログラム１１４、又はＲＡＭ１３０に記憶された通常プログラムや修正プログラムを読み出し、読み出したプログラムに対応した処理を実行する。
【００４４】
ホストＩ／Ｆ１４０は、信号線２２を介して、ホストＣＰＵ２０との間のインターフェース処理を行う。ホストＩ／Ｆ１４０は、クロック同期式又は調歩同期式のインターフェース処理を行う。このとき、ホストＩ／Ｆ１４０は、通信設定レジスター１４２の設定値により指定された内容（データ長、スタートビット、ストップビット、パリティビット、ボーレート等）に従って、ホストＣＰＵ２０との間のインターフェース処理を行う。
【００４５】
通信設定レジスター１４２は、ホストＣＰＵ２０との間の通信設定を行うための設定レジスター（制御レジスター）である。通信設定レジスター１４２には、ホストＣＰＵ２０又はホストＣＰＵ２０からのコマンドを受けたＣＰＵ１２０が、ホストＣＰＵ２０により指定された設定値が設定される。起動モードのとき、通信設定レジスター１４２への設定値の変更が可能に構成され、且つ、通常モードのとき、通信設定レジスター１４２への設定値の変更が不可能に構成される。こうすることで、起動モードときのみ通信設定が可能となる。
【００４６】
ＧＰＩＯ部１５０は、１又は複数のモード設定端子１０２に接続される。ＣＰＵ１２０は、バスＢＵＳを介して、ＧＰＩＯ部１５０にアクセスすることで、１又は複数のモード設定端子１０２の各々がＨレベルに設定されているか、Ｌレベルに設定されているかを検出することができる。
【００４７】
このような構成において、電源投入時において１又は複数のモード設定端子１０２により起動モードが設定されたとき、ＣＰＵ１２０は、ＲＯＭ１１０から読み出された起動プログラム１１４を実行する。この起動プログラム１１４を実行することにより、ＣＰＵ１２０は、通常プログラム１１６を構成する関数プログラム単位で、ホストＣＰＵ２０からの修正プログラムに置き換えられる修正プログラム適用処理を行う。修正プログラム適用処理では、アドレステーブルエリア１３２に展開されたアドレステーブルにおいて、通常プログラム内の所定の関数プログラムの先頭アドレスが、修正プログラムの先頭アドレスに書き換えられる。
【００４８】
その後、例えばホストＣＰＵ２０により、集積回路装置１００の動作モードは、起動モードから通常モードに変更される。そして、ＣＰＵ１２０は、アドレステーブルにより指定された先頭アドレスに対応したプログラムを実行することで、通常プログラムの少なくとも一部が修正プログラムに置き換えられたプログラムを実行する。即ち、ＣＰＵ１２０及びＲＡＭ１３０が、通常プログラムの少なくとも一部を修正プログラムに置き換えるプログラム置換処理部として機能し、ＣＰＵ１２０が、通常モードにおいて修正プログラムを実行することができる。
【００４９】
図４に、第１の実施形態における集積回路装置１００の処理例のフロー図を示す。
図５に、図４の起動モード処理の処理例のフロー図を示す。
例えば図４及び図５の各ステップに対応するプログラムがＲＯＭ１１０等に記憶され、ＣＰＵ１２０がＲＯＭ１１０等から図４及び図５の各ステップに対応するプログラムを読み出して、実行する。
【００５０】
まず、集積回路装置１００は、外部電源の投入を監視している（ステップＳ１：Ｎ）。外部電源の投入が検出されたとき（ステップＳ１：Ｙ）、集積回路装置１００は、１又は複数のモード設定端子１０２により起動モードが設定されたか否かを判定する（ステップＳ２）。ステップＳ２では、ＣＰＵ１２０が、バスＢＵＳを介してＧＰＩＯ部１５０をアクセスすることで、１又は複数のモード設定端子１０２の状態を検出し、検出した状態に基づいて起動モードが設定された否かを判定する。
【００５１】
起動モードが設定されたと判定されたとき（ステップＳ２：Ｙ）、集積回路装置１００は、起動モード処理を行う（ステップＳ３）。ステップＳ３では、ＣＰＵ１２０が、ＲＯＭ１１０に記憶された起動プログラムを読み出し、該起動プログラムに対応した処理を行う。
【００５２】
ステップＳ３に続いて、又はステップＳ２において起動モードが設定されなかったと判定されたとき（ステップＳ２：Ｎ）、集積回路装置１００は、通常モード処理を行う（ステップＳ４）。ステップＳ４では、ＣＰＵ１２０が、ＲＯＭ１１０からＲＡＭ１３０に展開された通常プログラムを読み出し、該通常プログラムに対応した処理を行う。ステップＳ４において実行される通常プログラムは、例えばその少なくとも一部がホストＣＰＵ２０から受信した修正プログラムが適用されている。
【００５３】
その後、集積回路装置１００は、一連の処理を終了する（エンド）。
【００５４】
ステップＳ３では、ホストＩ／Ｆ１４０を介してホストＣＰＵ２０により行われる通信設定の内容を受けたＣＰＵ１２０が、対応する設定値を通信設定レジスター１４２に設定する（ステップＳ１０）。
【００５５】
続いて、ＣＰＵ１２０は、ＲＯＭ１１０に記憶されたアドレステーブル１１２を、ＲＡＭ１３０において予め決められたアドレステーブルエリア１３２に展開する（ステップＳ１１）。
【００５６】
次に、ＣＰＵ１２０は、ＲＯＭ１１０に記憶された通常プログラム１１６を、ＲＡＭ１３０において予め決められた通常プログラムエリア１３４に展開する（ステップＳ１２）。
【００５７】
ＣＰＵ１２０は、ホストＩ／Ｆ１４０を介して、ホストＣＰＵ２０からの修正プログラムの受信制御を行い（ステップＳ１３）、受信後の修正プログラムを、ＲＡＭ１３０において予め決められた修正プログラムエリア１３６に格納する（ステップＳ１４）。
【００５８】
続いて、ＣＰＵ１２０は、通常プログラム内の置き換え対象のプログラムの先頭アドレスを、ステップＳ１４において格納した修正プログラムの先頭アドレスに書き換える（ステップＳ１５）。
【００５９】
その後、ＣＰＵ１２０は、ホストＣＰＵ２０からの通常モードへの変更を指示するコマンドの入力を待つ（ステップＳ１６：Ｎ）。ホストＣＰＵ２０から該コマンドが入力されたとき（ステップＳ１６：Ｙ）、ＣＰＵ１２０は、図５のステップＳ４の通常モード処理を行う（エンド）。なお、ステップＳ１６では、ホストＣＰＵ２０からのコマンドの入力を待つことなく、そのまま起動モードから通常モードに変更するようにしてもよい。
【００６０】
ところで、図５のステップＳ４の通常モード処理では、起動モードへの変更を許可しないようになっている。即ち、集積回路装置１００は、起動モードから通常モードへの変更が可能に構成され、且つ、通常モードから起動モードへの変更が不可能に構成される。こうすることで、通常モードにおける誤った設定により、機能的に重要な設定変更が可能な起動モードに変更されないようにし、各種設定の適切な保護を可能にしている。
【００６１】
図６に、第１の実施形態における書き換え前のアドレステーブルの説明図を示す。
図７に、第１の実施形態における書き換え後のアドレステーブルの説明図を示す。
【００６２】
図６に示すように、アドレステーブルは、通常プログラムを構成する関数プログラム（Ｆ１，Ｆ２，・・・，Ｆｎ）毎に、ＲＡＭ１３０における先頭アドレス（Ａｄｄ１，Ａｄｄ２，・・・，Ａｄｄｎ）がテーブル化されている。図６では、ＲＡＭ１３０の通常プログラムエリア１３４における関数プログラムＦ１の記憶エリアの先頭アドレスがＡｄｄ１である。同様に、関数プログラムＦ２の記憶エリアの先頭アドレスがＡｄｄ２であり、関数プログラムＦｎの記憶エリアの先頭アドレスがＡｄｄｎである。
【００６３】
ここで、関数プログラムＦｎを修正プログラムＦｎ´に置き換えるものとすると、図５のステップＳ１５では、図７に示すように、図６の関数プログラムＦｎの先頭アドレスＡｄｄｎを、アドレスＡｄｄｎ´に書き換える。アドレスＡｄｄｎ´は、ＲＡＭ１３０の修正プログラムエリア１３６における修正プログラムの記憶エリアの先頭アドレスである。
【００６４】
従って、例えば図５のステップＳ１５は、置換ステップとして、起動モードが設定されたとき、通常プログラムの少なくとも一部を修正プログラムに置き換えられる。そして、図５の起動モード処理後の通常モード処理（図４のステップＳ４）では、実行ステップとして、ＣＰＵ１２０は、書き換え後のアドレステーブルを参照して、通常プログラムの少なくとも一部が修正プログラムに置き換えられたプログラムを実行することができる。
【００６５】
図８に、第１の実施形態における集積回路装置１００の動作例のシーケンス図を示す。
【００６６】
１又は複数のモード設定端子１０２により起動モードが指定された状態で集積回路装置１００に電源が投入されると、集積回路装置１００は、起動モードで動作を開始する。
【００６７】
ここで、ホストＣＰＵ２０は、集積回路装置１００に対し、信号線２２を介して通信設定を行う（ＳＱ１）。この通信設定に対応して、集積回路装置１００は、信号線２２を介してホストＣＰＵ２０に対して承認応答（ＯＫ）を行う（ＳＱ２）。
【００６８】
続いて、ホストＣＰＵ２０は、先立って行われた通信設定に従い、信号線２２を介して、修正プログラムを送信する（ＳＱ３）。これを受けた集積回路装置１００は、ＣＰＵ１２０において、ＲＡＭ１３０の修正プログラムエリア１３６に転送し、アドレステーブルエリア１３２のアドレステーブルの書き換えを行うことで、修正プログラムの適用処理を行う。この修正プログラムの送信に対応して、集積回路装置１００は、信号線２２を介してホストＣＰＵ２０に対して承認応答（ＯＫ）を行う（ＳＱ４）。
【００６９】
次に、ホストＣＰＵ２０は、信号線２２を介して、集積回路装置１００に対し、起動モードから通常モードに変更するためのコマンドを送信する（ＳＱ５）。このコマンドを受けた集積回路装置１００は、ＣＰＵ１２０においてコマンドを解釈し、通常モードに変更する。このコマンドの送信に対応して、集積回路装置１００は、信号線２２を介してホストＣＰＵ２０に対して承認応答（ＯＫ）を行う（ＳＱ６）。これ以降、ＣＰＵ１２０は、修正プログラムが適用された通常プログラムを実行する。
【００７０】
通常モードに変更された後、ホストＣＰＵ２０は、集積回路装置１００に対し、信号線２２を介して通信設定を行う（ＳＱ１０）。この通信設定に対応して、集積回路装置１００は、信号線２２を介してホストＣＰＵ２０に対して非承認応答（ＮＧ）を行う（ＳＱ１１）。即ち、集積回路装置１００において、通常モードでは通信設定ができないようになっている。
【００７１】
続いて、ホストＣＰＵ２０は、信号線２２を介して、修正プログラムを送信する（ＳＱ１２）。この修正プログラムの送信に対応して、集積回路装置１００は、信号線２２を介してホストＣＰＵ２０に対して非承認応答（ＮＧ）を行う（ＳＱ１３）。即ち、集積回路装置１００において、通常モードでは修正プログラムの適用処理ができないようになっている。
【００７２】
次に、ホストＣＰＵ２０は、信号線２２を介して、集積回路装置１００に対し、通常モードから起動モードに変更するためのコマンドを送信する（ＳＱ１４）。このコマンドの送信に対応して、集積回路装置１００は、信号線２２を介してホストＣＰＵ２０に対して非承認応答（ＮＧ）を行う（ＳＱ１５）。即ち、集積回路装置１００において、通常モードから起動モードへの変更ができないようになっている。
【００７３】
以上説明したように、第１の実施形態においては、通常プログラムを実行する通常モードとは別に、機能的に重要な設定変更が可能な起動モードを設けるようにしている。こうすることで、集積回路装置１００は、電源投入時に設定される起動モードでのみ、各種設定の適切な保護が可能となる。これにより、例えばホストＣＰＵ２０からの設定ミスに起因した集積回路装置１００の誤動作を防止することができるようになる。また、ＲＯＭ１１０を、高コストで低速のフラッシュメモリーではなく、低コストで高速なマスクＲＯＭとすることで、高速に修正プログラムの適用を可能にし、誤ってプログラムが書き換えられてしまうといった危険を回避することができるようになる。
【００７４】
〔第２の実施形態〕
第１の実施形態では、外部電源投入時において、１又は複数のモード設定端子により、起動モード又は通常モードを指定するものとして説明したが、これに限定されるものではない。
【００７５】
図９に、第２の実施形態における集積回路装置１００ａのブロック図を示す。図９において、図２と同様の部分には同一符号を付し、適宜説明を省略する。集積回路装置１００に代えて、集積回路装置１００ａを図１の処理システム１０に適用することができる。
【００７６】
集積回路装置１００ａは、ＲＯＭ１１０と、ＣＰＵ１２０と、ＲＡＭ１３０と、ホストＩ／Ｆ１４０ａと、通信設定レジスター１４２と、モード設定レジスター１６０とを備えている。ＲＯＭ１１０、ＣＰＵ１２０、ＲＡＭ１３０、及びホストＩ／Ｆ１４０ａは、バスＢＵＳを介して接続される。なお、図９では、モード設定レジスター１６０は、ホストＩ／Ｆ１４０ａに接続されているが、モード設定レジスター１６０は、ホストＩ／Ｆ１４０ａに内蔵されたり、バスＢＵＳに接続されたりしてもよい。
【００７７】
集積回路装置１００ａが図２の集積回路装置１００と異なる点は、１又は複数のモード設定端子１０２及びＧＰＩＯ部１５０が省略され、モード設定レジスター１６０が追加された点である。集積回路装置１００ａは、モード設定レジスター１６０の設定値に対応した動作モードで動作する。
【００７８】
第２の実施形態では、集積回路装置１００ａは、起動モードにおいて、ホストＣＰＵ２０からの指示により通常モードに動作モードを変更する。ホストＩ／Ｆ１４０ａはホストＩ／Ｆ１４０の機能に加えて、ホストＣＰＵ２０からのモード設定レジスター１６０の設定値をモード設定レジスター１６０に送る機能を有する。即ち、モード設定レジスター１６０の設定値は、ホストＣＰＵ２０により設定される。
【００７９】
このような集積回路装置１００ａにおいて、ＲＯＭ１１０は、通常プログラムを記憶する。この集積回路装置１００ａにおいて、プログラム置換処理部としてのＣＰＵ１２０及びＲＡＭ１３０は、モード設定レジスター１６０の設定値により起動モードが設定されたとき、通常プログラムの少なくとも一部を修正プログラムに置き換える。ＣＰＵ１２０は、起動モードから通常モードに変更された後、上記のプログラム置換処理部によって置き換えられた修正プログラムを実行することができる。
【００８０】
以上説明したように、第２の実施形態によれば、第１の実施形態と同様の効果を得ることができるようになる。また、第２の実施形態によれば、第１の実施形態と比較して、より簡素な構成で、集積回路装置１００ａの各種設定の適切な保護が可能となる。
【００８１】
〔第２の実施形態の第１の変形例〕
第２の実施形態では、ホストＣＰＵ２０がモード設定レジスター１６０をアクセスするものとして説明したが、これに限定されるものではない。
【００８２】
図１０に、第２の実施形態の第１の変形例における集積回路装置１００ｂの構成例のブロック図を示す。図１０において、図９と同様の部分には同一符号を付し、適宜説明を省略する。集積回路装置１００に代えて、集積回路装置１００ｂを図１の処理システム１０に適用することができる。
【００８３】
集積回路装置１００ｂは、ＲＯＭ１１０と、ＣＰＵ１２０と、ＲＡＭ１３０と、ホストＩ／Ｆ１４０ｂと、通信設定レジスター１４２と、モード設定レジスター１６０とを備えている。ＲＯＭ１１０、ＣＰＵ１２０、ＲＡＭ１３０、ホストＩ／Ｆ１４０ｂ及びモード設定レジスター１６０は、バスＢＵＳを介して接続される。
【００８４】
集積回路装置１００ｂが図９の集積回路装置１００ａと異なる点は、モード設定レジスター１６０がバスＢＵＳに接続され、ＣＰＵ１２０によりアクセス可能に構成される点である。集積回路装置１００ｂにおいても、集積回路装置１００ａと同様に、モード設定レジスター１６０の設定値に対応した動作モードで動作する。
【００８５】
第２の実施形態の第１の変形例では、集積回路装置１００ｂは、起動モードにおいて、ホストＣＰＵ２０からのコマンドにより通常モードに動作モードを変更する。このとき、ホストＩ／Ｆ１４０ｂは、ホストＣＰＵ２０からのコマンドを受信する機能を有し、ＣＰＵ１２０が、ホストＩ／Ｆ１４０ｂにおいて受信されたコマンドの内容を解釈する。そして、ＣＰＵ１２０が、解釈したコマンドに対応した設定値をモード設定レジスター１６０に設定する。即ち、モード設定レジスター１６０の設定値は、ホストＣＰＵ２０からのコマンドを受けたＣＰＵ１２０により設定される。
【００８６】
このような集積回路装置１００ｂにおいて、ＲＯＭ１１０は、通常プログラムを記憶する。この集積回路装置１００ｂにおいて、プログラム置換処理部としてのＣＰＵ１２０及びＲＡＭ１３０は、モード設定レジスター１６０の設定値により起動モードが設定されたとき、通常プログラムの少なくとも一部を修正プログラムに置き換える。ＣＰＵ１２０は、起動モードから通常モードに変更された後、上記のプログラム置換処理部によって置き換えられた修正プログラムを実行することができる。
【００８７】
以上説明したように、第２の実施形態の第１の変形例によれば、第２の実施形態と同様の効果を得ることができるようになる。
【００８８】
〔第２の実施形態の第２の変形例〕
第２の実施形態の第１の変形例では、ＣＰＵ１２０がモード設定レジスター１６０をアクセスするものとして説明したが、これに限定されるものではない。
【００８９】
図１１に、第２の実施形態の第２の変形例における集積回路装置１００ｃの構成例のブロック図を示す。図１１において、図１０と同様の部分には同一符号を付し、適宜説明を省略する。集積回路装置１００に代えて、集積回路装置１００ｃを図１の処理システム１０に適用することができる。
【００９０】
集積回路装置１００ｃは、ＲＯＭ１１０と、ＣＰＵ１２０と、ＲＡＭ１３０と、ホストＩ／Ｆ１４０ｃと、通信設定レジスター１４２と、モード設定レジスター１６０とを備えている。ＲＯＭ１１０、ＣＰＵ１２０、ＲＡＭ１３０、ホストＩ／Ｆ１４０ｃ及びモード設定レジスター１６０は、バスＢＵＳを介して接続される。
【００９１】
集積回路装置１００ｃが図１０の集積回路装置１００ｂと異なる点は、モード設定レジスター１６０がバスＢＵＳに接続され、ホストＩ／Ｆ１４０ｃによりアクセス可能に構成される点である。集積回路装置１００ｃにおいても、集積回路装置１００ｂと同様に、モード設定レジスター１６０の設定値に対応した動作モードで動作する。
【００９２】
第２の実施形態の第２の変形例では、集積回路装置１００ｃは、起動モードにおいて、ホストＣＰＵ２０からのコマンドにより通常モードに動作モードを変更する。このとき、ホストＩ／Ｆ１４０ｃは、ホストＣＰＵ２０からのコマンドを受信する機能を有し、ホストＩ／Ｆ１４０ｃが、バスＢＵＳを介して、受信したコマンドに対応した設定値をモード設定レジスター１６０に設定する。即ち、集積回路装置１００ｃは、ホストＣＰＵ２０との間の通信インターフェース処理を行うホストＩ／Ｆ１４０ｃを含み、モード設定レジスター１６０の設定値は、ホストＣＰＵ２０からのコマンドを受けたホストＩ／Ｆ１４０ｃにより設定される。
【００９３】
このような集積回路装置１００ｃにおいて、ＲＯＭ１１０は、通常プログラムを記憶する。この集積回路装置１００ｃにおいて、プログラム置換処理部としてのＣＰＵ１２０及びＲＡＭ１３０は、モード設定レジスター１６０の設定値により起動モードが設定されたとき、通常プログラムの少なくとも一部を修正プログラムに置き換える。ＣＰＵ１２０は、起動モードから通常モードに変更された後、上記のプログラム置換処理部によって置き換えられた修正プログラムを実行することができる。
【００９４】
以上説明したように、第２の実施形態の第２の変形例によれば、第２の実施形態の第１の変形例と同様の効果を得ることができるようになる。
【００９５】
〔電子機器〕
上記のいずれかの実施形態又はその変形例における集積回路装置は、次のような電子機器に適用することができる。
【００９６】
図１２に、上記のいずれかの実施形態又はその変形例における集積回路装置が適用された電子機器の構成例のブロック図を示す。図１２は、電子機器の一例として音声認識装置の構成例を表す。
【００９７】
電子機器としての音声認識装置２００は、ホスト２１０と、音声認識部２２０と、コーデック部２３０と、音入力部２４０と、音出力部２５０とを備えている。音声認識部２２０は、上記のいずれかの実施形態又はその変形例における集積回路装置により実現される。ホスト２１０は、コマンド制御により音声認識部２２０を制御する。音声認識部２２０は、内蔵するＣＰＵ又は専用ハードウェアにより、ホスト２１０からのメッセージデータに対して音声認識を実行して認識結果を返したり、音声データのデコードを行い、音声再生を開始する処理を行ったりする。コーデック部２３０は、音入力部２４０を介して入力された音声データをＡ／Ｄ変換して、Ａ／Ｄ変換後の音声データを音声認識部２２０に出力する。また、コーデック部２３０は、音声認識部２２０からの音声データをＤ／Ａ変換して、Ｄ／Ａ変換後の音声データを音出力部２５０に出力する。音入力部２４０の機能は、例えばマイクロフォンにより実現される。音出力部２５０の機能は、例えばスピーカーにより実現される。
【００９８】
このような音声認識装置２００によれば、上記の機能を実現するためのプログラムを修正する場合であっても、例えばホストＣＰＵからの設定ミスに起因した誤動作を防止することができるようになる。しかも、マスクＲＯＭを内蔵することにより、低コストで、設定ミスに起因した誤動作を防止することができる。
【００９９】
なお、上記のいずれかの実施形態又はその変形例における集積回路装置が適用された電子機器として、図１２に示すものに限定されるものではない。例えば、情報携帯端末（ＰＤＡ：Personal Digital Assistants）、デジタルスチルカメラ、テレビ、ビデオカメラ、カーナビゲーション装置、ページャー、電子手帳、電子ペーパー、電卓、ワードプロセッサー、ワークステーション、テレビ電話、ＰＯＳ（Point of sale system）端末、プリンター、スキャナー、複写機、ビデオプレーヤー、タッチパネルを備えた機器等が挙げられる。
【０１００】
以上、本発明に係る集積回路装置、処理システム、電子機器、及び集積回路装置のモード切替方法等を上記のいずれかの実施形態又はその変形例に基づいて説明したが、本発明は上記のいずれかの実施形態又はその変形例に限定されるものではない。例えば、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、次のような変形も可能である。
【０１０１】
（１）上記のいずれかの実施形態又はその変形例では、通常プログラムの少なくとも一部を修正プログラムに置き換える例を説明したが、本発明はこれに限定されるものではない。例えば、ＲＯＭに記憶された通常プログラムを、別機能を実現するためのプログラムに置き換えるようにしてもよい。こうすることで、非常に低コストで、全く別の機能を実現する集積回路装置を提供することができるようになる。
【０１０２】
（２）上記のいずれかの実施形態又はその変形例では、集積回路装置の動作モードとして起動モード及び通常モードのいずれかを設定できるものとして説明したが、本発明はこれに限定されるものではない。本発明に係る集積回路装置の動作モードとして、３以上の動作モードのいずれかを設定できるものであってもよい。
【０１０３】
（３）上記のいずれかの実施形態又はその変形例では、集積回路装置が内蔵するＲＯＭとして、マスクＲＯＭを前提に説明したが、本発明はこれに限定されるものではない。本発明に係る集積回路装置が内蔵する不揮発性メモリーとして、マスクＲＯＭの他に、フラッシュメモリー、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等の公知のメモリーを採用することができる。
【０１０４】
（４）上記のいずれかの実施形態又はその変形例において、集積回路装置、処理システム、電子機器、及び集積回路装置のモード切替方法等として説明したが、本発明はこれに限定されるものではない。
【符号の説明】
【０１０５】
１０…処理システム、  ２０…ホストＣＰＵ（ホスト）、  ２２…信号線、
１００，１００ａ，１００ｂ，１００ｃ…集積回路装置、  １０２…モード設定端子、
１１０…ＲＯＭ（不揮発性メモリー）、  １１２…アドレステーブル、
１１４…起動プログラム、  １１６…通常プログラム（第１のプログラム）、
１２０…ＣＰＵ、  １３０…ＲＡＭ（揮発性メモリー）、
１３２…アドレステーブルエリア、  １３４…通常プログラムエリア、
１３６…修正プログラムエリア、
１４０，１４０ａ，１４０ｂ，１４０ｃ…ホストＩ／Ｆ、
１４２…通信設定レジスター、  １５０…ＧＰＩＰ部、
１６０…モード設定レジスター、  ２００…音声認識装置、  ２１０…ホスト、
２２０…音声認識部、  ２３０…コーデック部、  ２４０…音入力部、
２５０…音出力部、  ＢＵＳ…バス
【図１】
2013077171.tif 000003
【図２】
2013077171.tif 000004
【図３】
2013077171.tif 000005
【図４】
2013077171.tif 000006
【図５】
2013077171.tif 000007
【図６】
2013077171.tif 000008
【図７】
2013077171.tif 000009
【図８】
2013077171.tif 000010
【図９】
2013077171.tif 000011
【図１０】
2013077171.tif 000012
【図１１】
2013077171.tif 000013
【図１２】
2013077171.tif 000014