(57)【要約】【課題】  各プログラム作成者の相互の連絡を不要としながら、これによりプログラム作成にかかる負担を軽減しながら、エラーのない適正かつ迅速なプログラム作成を可能とするマイクロコンピュータおよび電気機器を提供する。【解決手段】  ＲＯＭ１の記憶領域が、第１領域と第２領域とに区分されている。第２領域にはプログラムが記憶されており、そのプログラムへのジャンプ命令が同じ第２領域の特定アドレスに記憶される。そして、第２領域の特定アドレスに対するコール命令が、第１領域に記憶される。【選択図】      図１
2006004280.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数に区分された記憶手段を備え、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止する機能を備えたマイクロコンピュータにおいて、前記他方の記憶領域にプログラムを記憶し、記憶したプログラムへのジャンプ命令を前記他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を前記一方の記憶領域に記憶する構成としたことを特徴とするマイクロコンピュータ。
【請求項２】
モータを有する電気機器において、記憶手段の記憶領域が複数に区分され、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止するマイクロコンピュータを備え、前記モータに関わる制御プログラムを前記他方の記憶領域に記憶し、記憶した制御プログラムへのジャンプ命令を前記他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を前記一方の記憶領域に記憶する構成としたことを特徴とする電気機器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶領域が複数に区分された記憶手段を備えたマイクロコンピュータ、およびそのマイクロコンピュータを備えた電気機器に関する。
【背景技術】
【０００２】
従来、各種電気機器は、マイクロコンピュータを備え、そのマイクロコンピュータの記憶手段たとえばＲＯＭ（リード・オンリ・メモリ）に記憶されたプログラムによって動作する。このような電気機器の制御系は、搭載される機器の全体の制御動作を決定し処理する部分と、その決定された動作内容に従って機器の各種アクチュエータを制御する駆動処理（ドライバー）部分とで構成される。アクチュエータが簡単なリレーやスイッチであれば、ドライバー部分は簡単に構成できるが、容量の大きい直流モータ等を駆動する場合は、ドライバー部分にとってかなりの負荷となり、その駆動用のプログラムも大きな容量となる。
【０００３】
たとえば、空調機の場合、モータ回転数などを決定し処理する機器制御用マイクロコンピュータ（制御用ＭＣＵ）と、その決定された動作内容に従ってモータを駆動するモータ駆動用マイクロコンピュータ（駆動用ＭＣＵ）と、が設けられる。これらマイクロコンピュータは、それぞれ１つのチップからなり、それぞれのチップには、プログラムやデータを記憶するＲＯＭ、一時的にデータを記憶するＲＡＭ、プログラムの実行やデータ処理を行うＣＰＵなどが設けられている。
【０００４】
モータ駆動用マイクロコンピュータのＲＯＭには、モータ駆動に必要なアルゴリズムが記述されたプログラムが記憶され、機器制御用マイクロコンピュータのＲＯＭには機器の制御に必要なプログラムが記憶される。これらマイクロコンピュータは通信線により接続され、機器制御用マイクロコンピュータはモータ駆動用マイクロコンピュータに対してモータの回転数を指示し、モータ駆動用マイクロコンピュータは機器制御用マイクロコンピュータに実際のモータ回転数のデータを送信する。
【０００５】
このようなシステムにおいて、各マイクロコンピュータの相互間では通信規約に応じた指示や回答が行われるだけで、それぞれのマイクロコンピュータのＲＯＭに記憶されているプログラムは各々のマイクロコンピュータ内のみで実行される。したがって、一方のマイクロコンピュータから他方のマイクロコンピュータのＲＯＭにアクセスすることはできず、それぞれのマイクロコンピュータのプログラム内容は秘密に保持される。しかしながら、このシステムでは、マイクロコンピュータが２つ必要となり、システム自体も大型化してしまうという問題がある。
【０００６】
この問題に対し、１つのマイクロコンピュータでモータ駆動と機器制御の両方を実行できれば、機器の小型化、コストダウン等の様々なメリットが得られる。そこで、１つのマイクロコンピュータのＲＯＭに両方のプログラムを記憶させて使用することが考えられる。ただし、この場合、従来のマイクロコンピュータの構成ではＲＯＭに記憶された全てのプログラムに対してアクセスが可能になるという新たな問題がある。たとえば、モータ制御プログラムと機器制御プログラムを別々の会社が作成する場合には、それぞれ相手方の制御プログラムを読み出すことが可能となり、両者間での機密が保てない。
【０００７】
一方、メモリ内のデータの秘密保持を目的として、メモリのアドレスバス及びデータバスのバス権に関しＣＰＵと外部のいずれかが選択的に優先権を持つマイクロコンピュータがある。このマイクロコンピュータでは、外部がバス権を持つときに、メモリ内のデータの外部読み出しや書き込みを禁止するための禁止領域（アドレス）を設けることができる（例えば特許文献１）。すなわち、メモリ内の特定領域については、外部がバス権を持つ場合にはアクセスができず、読み出しや書き込みができなくなり、その特定領域のデータの外部読み出しは禁止され、データやプログラムの秘密性が維持される。
【０００８】
しかしながら、外部にバス権を持たせることのできるマイクロコンピュータの場合、外部からマイクロコンピュータ内のメモリヘのアクセスを禁止することはできても、マイクロコンピュータ内の同じメモリに記憶されたプログラムの秘密保持をマイクロコンピュータ内でどのように達成するかについては何も考慮されていない。
【特許文献１】特開平１１−１１０２９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、メモリの記憶領域を複数に区分し、各記憶領域の相互間のアクセスに基づくデータ読出し処理を禁止する機能を備えたマイクロコンピュータが考えられる。このマイクロコンピュータであれば、ある会社のプログラム作成者が作成してＲＯＭの所定の記憶領域に記憶したプログラムを、ＲＯＭの他の記憶領域に記憶するプログラムを作成する他の会社のプログラム作成者が読出すことは不可能であり、１つのＲＯＭに記憶される複数のプログラム間での機密を保持することができる。
【００１０】
しかしながら、このようなマイクロコンピュータにおいては、メモリの所定の記憶領域に記憶されるプログラムと、メモリの他の記憶領域に記憶されるプログラムとの間には、連携した処理を実現するために、各プログラムのアドレス（最初に実行する命令が記憶されたアドレス）をプログラム作成者の相互間で事前に公開しておく処置が必要となる。すなわち、一方のプログラム作成者が作成した第１のプログラムが、他方のプログラム作成者が作成した第２のプログラムを呼び出す場合、第２のプログラムの呼び出しに必要なアドレスを指定してコールすればよいが、第２のプログラムにおいて、複数の機能がそれぞれ異なるサブルーチンとして作られる場合、そのサブルーチンの先頭アドレスを予め第１のプログラムの作成者に連絡しておかねばならない。
【００１１】
しかしながら、第１および第２のプログラムが同時並行して作成される場合には、第２のプログラムの作成途中で各サブルーチンの先頭プログラムのアドレスに変更が生じることがある。この場合、変更となった新たなアドレスを第１のプログラムの作成者に逐次連絡しなければならない。一方、第１のプログラムの作成者は、第２のプログラムの作成者がサブルーチンの先頭アドレスを変更するたびにプログラム中のコール先アドレスを変更しなければならず、煩雑な作業になるとともに、アドレス変更を忘れた場合、プログラムが異常な制御を実行してしまうおそれもあった。
【００１２】
この発明は、上記の事情を考慮したもので、各プログラム作成者の相互の連絡を不要としながら、これによりプログラム作成にかかる負担を軽減しながら、エラーのない適正かつ迅速なプログラム作成を可能とするマイクロコンピュータおよび電気機器を提供することを目的としている。
【課題を解決するための手段】
【００１３】
請求項１に係る発明のマイクロコンピュータは、記憶領域が複数に区分された記憶手段を備え、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止する機能を備えたものであって、他方の記憶領域にプログラムを記憶し、記憶したプログラムへのジャンプ命令を他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を一方の記憶領域に記憶する構成としている。
【００１４】
請求項２に係る発明の電気機器は、モータを有するものであって、記憶手段の記憶領域が複数に区分され、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止するマイクロコンピュータを備え、上記モータに関わる制御プログラムを他方の記憶領域に記憶し、記憶した制御プログラムへのジャンプ命令を他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を一方の記憶領域に記憶する構成としている。
【発明の効果】
【００１５】
この発明によれば、各プログラム作成者の相互の連絡を不要としながら、これによりプログラム作成にかかる負担を軽減しながら、エラーのない適正かつ迅速なプログラム作成が可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、この発明の一実施形態について図面を参照して説明する。  
図１は電気機器たとえば空調機に搭載されたマイクロコンピュータの概要である。１は記憶手段であるＲＯＭ（リード・オンリ・メモリ）で、記憶領域が複数の領域たとえば第１領域と第２領域とに区分されている。
【００１７】
第１領域には、初期設定プログラムおよび総合制御プログラムが記憶されている。初期設定プログラムは、アドレスＷ１〜Ｗｎに記憶されたデータやコマンドからなり、電源投入時に起動して、当該第１領域の全アドレスに対し、第２領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行う。コマンドとしては、第２領域の特定アドレスＡ０に対するコール命令が含まれる。総合制御プログラムは、空調機の各種制御動作を統合的に扱う部分で、アドレスＸａ〜Ｘｙに記憶されたデータやコマンドからなり、電源投入により起動して、当該マイクロコンピュータが搭載されている機器の全体の制御動作を決定し処理する。コマンドとしては、第２領域の特定アドレスＡ１，Ａ２，Ａ３に対するコール命令が含まれている。
【００１８】
第２領域には、コマンドおよび初期設定プログラムが記憶されているとともに、総合制御プログラムに応じて空調機の圧縮機モータに関わる各機能を個別に制御するサブルーチンプログラムとして、起動制御プログラム、回転数制御プログラム、停止制御プログラムが記憶されている。コマンドとして、初期設定プログラムの先頭アドレスＢ１、起動制御プログラムの先頭アドレスＣ１、回転数制御プログラムの先頭アドレスＤ１、停止制御プログラムの先頭アドレスＥ１のそれぞれに対するジャンプ命令が、特定アドレスＡ０，Ａ１，Ａ２，Ａ３にそれぞれ記憶されている。第２領域の初期設定プログラムは、アドレスＢ１〜Ｂｎに記憶されたデータやコマンドからなり、第１領域の初期設定プログラムからアドレスＡ０がコールされるとアドレスＢ１にジャンプして起動し、当該第２領域における全アドレスに対し、第１領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行う。
【００１９】
起動制御プログラムは、圧縮機モータの起動を制御するもので、アドレスＣ１〜Ｃｎに記憶されている。最後アドレスＣｎには、このプログラムをコールしてきた総合制御プログラム側のアドレスに対するリターン命令が記憶されている。回転数制御プログラムは、圧縮機モータの回転数Ｆを制御するもので、アドレスＤ１〜Ｄｎに記憶されている。最後アドレスＤｎには、総合制御プログラムへのリターン命令が記憶されている。停止制御プログラムは、圧縮機モータの停止を制御するもので、アドレスＥ１〜Ｅｎに記憶されている。最後アドレスＥｎには、総合制御プログラムへのリターン命令が記憶されている。
【００２０】
一方、ＲＡＭ（ランダム・アクセス・メモリ）２は、データの一時記憶用として使用される。このＲＡＭ２およびＲＯＭ１に、監視部３を介してＣＰＵ４が接続されている。そして、監視部３およびＣＰＵ４には、プログラムカウンタ５およびプロテクト切換部（切換手段）６が接続されている。
【００２１】
監視部３は、ＲＯＭ１の第１領域と第２領域の相互間のアクセスに基づくデータ読出し処理の許容・禁止を監視および管理する。プロテクト切換部６は、ＣＰＵ４からの指令に基づき、第１領域と第２領域の相互間のアクセスに基づくデータ読出し処理の禁止を有効とするか無効とするかを監視部３を通して切換指定する。
【００２２】
つぎに、上記の構成の作用を説明する。  
電源が投入されると、ＲＯＭ１における第１領域の初期設定プログラムが先ず起動する。起動した初期設定プログラムは、第１領域における全てのアドレスに対し、第２領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行うとともに、第２領域の特定アドレスＡ０をコールする。コールされた第２領域の特定アドレスＡ０には、コマンド“Ｂ１へジャンプ”が記憶されており、そのジャンプ命令に基づいて、第２領域のアドレスＢ１〜Ｂｎに記憶されている初期設定プログラムが起動する。この初期設定プログラムは、第２領域における全アドレスに対し、第１領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行う。
【００２３】
続いて、ＲＯＭ１における第１領域の総合制御プログラムが起動する。総合制御プログラムは、種々の総合制御プログラム処理の途中の必要な部分で第２領域の特定アドレスＡ１，Ａ２，Ａ３をそれぞれコールし、これら特定アドレスＡ１，Ａ２，Ａ３に記憶されたジャンプ命令を橋渡しにして、第２領域内の初期設定プログラム、起動制御プログラム、回転数制御プログラム、停止制御プログラムを指定することが可能となる。
【００２４】
総合制御プログラムのアドレスＸｉが指定されると（圧縮機モータの起動が必要な状態）、その指定されたアドレスＸｉのコマンド“Ａ１をコール”に基づいて、第２領域のアドレスＡ１に記憶されているコマンド“Ｃ１へジャンプ”が指定される。このジャンプ命令に基づき、第２領域のアドレスＣ１〜Ｃｎに記憶されている起動制御プログラムが起動し、圧縮機モータの起動が制御される。起動制御プログラムの最終アドレスＣｎにはリターン命令が記憶されており、そのリターン命令に基づいて第１領域内の総合制御プログラムのアドレス“Ｘｉ＋１”へ移行し、ここからの処理が実行される。
【００２５】
この場合、総合制御プログラムのアドレスＸｉが指定された時点で、そのアドレスＸｉがＲＡＭ２に記憶され、その後のリターン命令により、ＲＡＭ２内のアドレスＸｉに“１”加算したアドレス“Ｘｉ＋１”へと、処理が自動的に移行する。
【００２６】
総合制御プログラムのアドレスＸｎが指定されると（圧縮機モータの回転数制御が必要な状態）、その指定されたアドレスＸｎのコマンド“Ａ２をコール”に基づいて、第２領域のアドレスＡ２に記憶されているコマンド“Ｄ１へジャンプ”が指定される。この回転数制御プログラムに関するデータ処理の経過を図２に示している。アドレスＡ２のジャンプ命令に基づき、第２領域のＤ１〜Ｄｎに記憶されている回転数制御プログラムが起動し、圧縮機モータの回転数Ｆが制御される。この場合、目標回転数ＦｔがＲＡＭ２の所定のアドレスに記憶され、圧縮機モータの回転数Ｆがその目標回転数Ｆｔとなるように圧縮機モータが駆動制御される。回転数制御プログラムの最終アドレスＤｎにはリターン命令が記憶されており、そのリターン命令に基づいて第１領域内の総合制御プログラムのアドレス“Ｘｎ＋１”からの処理が実行される。
【００２７】
データ処理に際しては、ＲＯＭ１の第２領域に記憶されている各種制御パラメータが読出され、読出された各種制御パラメータが制御に逐次に使用される。この読出しは、同じ第２領域内での命令に基づく処理であり、他の領域からのデータ読出しではないため、初期設定にて第１領域からのアクセスに基づくデータ読出し処理を禁止設定しても禁止はされない。
【００２８】
総合制御プログラムの処理が進み、アドレスＸｙが指定されると（圧縮機モータの停止が必要な状態）、その指定されたアドレスＸｙのコマンド“Ａ３をコール”に基づいて、第２領域のアドレスＡ３に記憶されているコマンド“Ｅ１へジャンプ”が指定される。このジャンプ命令に基づき、第２領域のＥ１〜Ｅｎに記憶されている停止制御プログラムが起動し、圧縮機モータの停止が制御される。停止制御プログラムの最終アドレスＥｎにはリターン命令が記憶されており、そのリターン命令に基づいて第１領域内の総合制御プログラムのアドレス“Ｘｙ＋１”からの処理が実行される。
【００２９】
ＲＯＭ１の第１領域における全てのアドレスに対し、第２領域からのアクセスに基づくデータ読出し処理を禁止することにより、第１領域の内容を第２領域内のプログラムによって読出すことはできない。よって、第２領域内のプログラム作成者に対し、第１領域内のプログラムの秘密が保持される。同様に、ＲＯＭ１の第１領域からの第２領域に対するデータ読出し処理を禁止することにより、第２領域の内容を第１領域内のプログラムによって読出すことはできない。よって、第１領域内のプログラム作成者に対し、第２領域内のプログラムの秘密が保持される。すなわち、ＲＯＭ１に記憶されたプログラムの秘密保持を当該マイクロコンピュータ内で達成することができる。
【００３０】
ここで、第２領域における初期設定プログラム、起動制御プログラム、回転数制御プログラム、停止制御プログラムのそれぞれ作成に際し、各プログラムの先頭アドレスＢ１，Ｃ１，Ｄ１，Ｅ１に変更が生じることがある。変更となった新たな先頭アドレスは、第２領域のプログラム作成者自身により、特定アドレスＡ０，Ａ１，Ａ２，Ａ３のジャンプ命令のジャンプ先アドレスに更新される。この結果、第１領域のプログラム作成者は、各制御プログラムの先頭アドレスの変更について考慮する必要はまったくなく、当初からのコール先である特定アドレスＡ０，Ａ１，Ａ２，Ａ３のみを固定的に把握しておくだけでよい。
【００３１】
したがって、ＲＯＭ１の第１領域および第２領域におけるプログラム作成に際し、各プログラム作成者の相互間の連絡は不要である。つまり、第１領域のプログラム作成者は、第２領域のプログラム作成に関与することなく、あくまでも第１領域のプログラム作成に専念することができる。第２領域のプログラム作成者は、第１領域のプログラム作成に関与することなく、あくまでも第２領域のプログラム作成に専念することができる。よって、プログラム作成にかかる負担が大幅に軽減されるとともに、エラーのない適正かつ迅速なプログラム作成が可能となり、制御の信頼性も向上する。
【００３２】
一方、初期設定において、禁止解除の命令を入れておけばＣＰＵ４からプロテクト切換部６へ禁止解除指令が送られ、プロテクト切換部６が監視部３を操作することにより、第１領域および第２領域に対するデータ読出し処理の禁止が無効となる。ただし、この場合の禁止解除指令は、それぞれの領域のプログラム作成者のみが設定できるものであり、ＲＯＭ１内の一方の領域のプログラム作成者等による人為的な操作によって他方の領域のプログラム作成者が意図的に設定できるものではない。これにより、ＲＯＭ１内のプログラムに対する機密性を確実に保つことができる。例えば、第２領域の全てのプログラム内容を外部に読出すプログラムを第１領域に入れておいた場合には、第２領域に対して読出し処理のアクセスがあった際に、第１領域内のプログラムが停止して以後の処理を実行しなくなり、プログラム内容を外部出力することはできなくなる。
【００３３】
単一のプログラム作成者がすべての領域を使用する場合には機密性の保持は不要であるため、ＲＯＭ１の全領域に対してデータ読出し処理の禁止を解除に設定しておけば、ＲＯＭ１の全領域が制限なく使用可能となり、ＲＯＭ１を、通常の単一領域のＲＯＭと同等に取り扱うことができ、マイクロコンピュータに汎用性を持たせることができる。
【００３４】
なお、上記実施形態では、空調機に搭載されるマイクロコンピュータを例に説明したが、他の電気機器に搭載されるマイクロコンピュータにも同様に適用が可能である。また、ＲＯＭ１を２つの領域に区分する場合を例に説明したが、３つ以上の領域に区分する場合にも同様に実施できる。さらに、データ読出し禁止が特定の領域のみに設定可能としたマイクロコンピュータでも少なくともその設定可能な領域のプログラムの機密保持は可能である。
【００３５】
その他、この発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、各実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態の構成を示すブロック図。
【図２】同実施形態におけるデータ処理の経過を示す図。
【符号の説明】
【００３７】
１…ＲＯＭ（記憶手段）、２…ＲＡＭ、３…監視部、４…ＣＰＵ、５…プログラムカウンタ、６…プロテクト切換部
【図１】
2006004280.tif 000003
【図２】
2006004280.tif 000004