説明

マイクロコンピュータおよび電気機器

【課題】 各プログラム作成者の相互の連絡を不要としながら、これによりプログラム作成にかかる負担を軽減しながら、エラーのない適正かつ迅速なプログラム作成を可能とするマイクロコンピュータおよび電気機器を提供する。
【解決手段】 ROM1の記憶領域が、第1領域と第2領域とに区分されている。第2領域にはプログラムが記憶されており、そのプログラムへのジャンプ命令が同じ第2領域の特定アドレスに記憶される。そして、第2領域の特定アドレスに対するコール命令が、第1領域に記憶される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、記憶領域が複数に区分された記憶手段を備えたマイクロコンピュータ、およびそのマイクロコンピュータを備えた電気機器に関する。
【背景技術】
【0002】
従来、各種電気機器は、マイクロコンピュータを備え、そのマイクロコンピュータの記憶手段たとえばROM(リード・オンリ・メモリ)に記憶されたプログラムによって動作する。このような電気機器の制御系は、搭載される機器の全体の制御動作を決定し処理する部分と、その決定された動作内容に従って機器の各種アクチュエータを制御する駆動処理(ドライバー)部分とで構成される。アクチュエータが簡単なリレーやスイッチであれば、ドライバー部分は簡単に構成できるが、容量の大きい直流モータ等を駆動する場合は、ドライバー部分にとってかなりの負荷となり、その駆動用のプログラムも大きな容量となる。
【0003】
たとえば、空調機の場合、モータ回転数などを決定し処理する機器制御用マイクロコンピュータ(制御用MCU)と、その決定された動作内容に従ってモータを駆動するモータ駆動用マイクロコンピュータ(駆動用MCU)と、が設けられる。これらマイクロコンピュータは、それぞれ1つのチップからなり、それぞれのチップには、プログラムやデータを記憶するROM、一時的にデータを記憶するRAM、プログラムの実行やデータ処理を行うCPUなどが設けられている。
【0004】
モータ駆動用マイクロコンピュータのROMには、モータ駆動に必要なアルゴリズムが記述されたプログラムが記憶され、機器制御用マイクロコンピュータのROMには機器の制御に必要なプログラムが記憶される。これらマイクロコンピュータは通信線により接続され、機器制御用マイクロコンピュータはモータ駆動用マイクロコンピュータに対してモータの回転数を指示し、モータ駆動用マイクロコンピュータは機器制御用マイクロコンピュータに実際のモータ回転数のデータを送信する。
【0005】
このようなシステムにおいて、各マイクロコンピュータの相互間では通信規約に応じた指示や回答が行われるだけで、それぞれのマイクロコンピュータのROMに記憶されているプログラムは各々のマイクロコンピュータ内のみで実行される。したがって、一方のマイクロコンピュータから他方のマイクロコンピュータのROMにアクセスすることはできず、それぞれのマイクロコンピュータのプログラム内容は秘密に保持される。しかしながら、このシステムでは、マイクロコンピュータが2つ必要となり、システム自体も大型化してしまうという問題がある。
【0006】
この問題に対し、1つのマイクロコンピュータでモータ駆動と機器制御の両方を実行できれば、機器の小型化、コストダウン等の様々なメリットが得られる。そこで、1つのマイクロコンピュータのROMに両方のプログラムを記憶させて使用することが考えられる。ただし、この場合、従来のマイクロコンピュータの構成ではROMに記憶された全てのプログラムに対してアクセスが可能になるという新たな問題がある。たとえば、モータ制御プログラムと機器制御プログラムを別々の会社が作成する場合には、それぞれ相手方の制御プログラムを読み出すことが可能となり、両者間での機密が保てない。
【0007】
一方、メモリ内のデータの秘密保持を目的として、メモリのアドレスバス及びデータバスのバス権に関しCPUと外部のいずれかが選択的に優先権を持つマイクロコンピュータがある。このマイクロコンピュータでは、外部がバス権を持つときに、メモリ内のデータの外部読み出しや書き込みを禁止するための禁止領域(アドレス)を設けることができる(例えば特許文献1)。すなわち、メモリ内の特定領域については、外部がバス権を持つ場合にはアクセスができず、読み出しや書き込みができなくなり、その特定領域のデータの外部読み出しは禁止され、データやプログラムの秘密性が維持される。
【0008】
しかしながら、外部にバス権を持たせることのできるマイクロコンピュータの場合、外部からマイクロコンピュータ内のメモリヘのアクセスを禁止することはできても、マイクロコンピュータ内の同じメモリに記憶されたプログラムの秘密保持をマイクロコンピュータ内でどのように達成するかについては何も考慮されていない。
【特許文献1】特開平11−110294号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
そこで、メモリの記憶領域を複数に区分し、各記憶領域の相互間のアクセスに基づくデータ読出し処理を禁止する機能を備えたマイクロコンピュータが考えられる。このマイクロコンピュータであれば、ある会社のプログラム作成者が作成してROMの所定の記憶領域に記憶したプログラムを、ROMの他の記憶領域に記憶するプログラムを作成する他の会社のプログラム作成者が読出すことは不可能であり、1つのROMに記憶される複数のプログラム間での機密を保持することができる。
【0010】
しかしながら、このようなマイクロコンピュータにおいては、メモリの所定の記憶領域に記憶されるプログラムと、メモリの他の記憶領域に記憶されるプログラムとの間には、連携した処理を実現するために、各プログラムのアドレス(最初に実行する命令が記憶されたアドレス)をプログラム作成者の相互間で事前に公開しておく処置が必要となる。すなわち、一方のプログラム作成者が作成した第1のプログラムが、他方のプログラム作成者が作成した第2のプログラムを呼び出す場合、第2のプログラムの呼び出しに必要なアドレスを指定してコールすればよいが、第2のプログラムにおいて、複数の機能がそれぞれ異なるサブルーチンとして作られる場合、そのサブルーチンの先頭アドレスを予め第1のプログラムの作成者に連絡しておかねばならない。
【0011】
しかしながら、第1および第2のプログラムが同時並行して作成される場合には、第2のプログラムの作成途中で各サブルーチンの先頭プログラムのアドレスに変更が生じることがある。この場合、変更となった新たなアドレスを第1のプログラムの作成者に逐次連絡しなければならない。一方、第1のプログラムの作成者は、第2のプログラムの作成者がサブルーチンの先頭アドレスを変更するたびにプログラム中のコール先アドレスを変更しなければならず、煩雑な作業になるとともに、アドレス変更を忘れた場合、プログラムが異常な制御を実行してしまうおそれもあった。
【0012】
この発明は、上記の事情を考慮したもので、各プログラム作成者の相互の連絡を不要としながら、これによりプログラム作成にかかる負担を軽減しながら、エラーのない適正かつ迅速なプログラム作成を可能とするマイクロコンピュータおよび電気機器を提供することを目的としている。
【課題を解決するための手段】
【0013】
請求項1に係る発明のマイクロコンピュータは、記憶領域が複数に区分された記憶手段を備え、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止する機能を備えたものであって、他方の記憶領域にプログラムを記憶し、記憶したプログラムへのジャンプ命令を他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を一方の記憶領域に記憶する構成としている。
【0014】
請求項2に係る発明の電気機器は、モータを有するものであって、記憶手段の記憶領域が複数に区分され、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止するマイクロコンピュータを備え、上記モータに関わる制御プログラムを他方の記憶領域に記憶し、記憶した制御プログラムへのジャンプ命令を他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を一方の記憶領域に記憶する構成としている。
【発明の効果】
【0015】
この発明によれば、各プログラム作成者の相互の連絡を不要としながら、これによりプログラム作成にかかる負担を軽減しながら、エラーのない適正かつ迅速なプログラム作成が可能となる。
【発明を実施するための最良の形態】
【0016】
以下、この発明の一実施形態について図面を参照して説明する。
図1は電気機器たとえば空調機に搭載されたマイクロコンピュータの概要である。1は記憶手段であるROM(リード・オンリ・メモリ)で、記憶領域が複数の領域たとえば第1領域と第2領域とに区分されている。
【0017】
第1領域には、初期設定プログラムおよび総合制御プログラムが記憶されている。初期設定プログラムは、アドレスW1〜Wnに記憶されたデータやコマンドからなり、電源投入時に起動して、当該第1領域の全アドレスに対し、第2領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行う。コマンドとしては、第2領域の特定アドレスA0に対するコール命令が含まれる。総合制御プログラムは、空調機の各種制御動作を統合的に扱う部分で、アドレスXa〜Xyに記憶されたデータやコマンドからなり、電源投入により起動して、当該マイクロコンピュータが搭載されている機器の全体の制御動作を決定し処理する。コマンドとしては、第2領域の特定アドレスA1,A2,A3に対するコール命令が含まれている。
【0018】
第2領域には、コマンドおよび初期設定プログラムが記憶されているとともに、総合制御プログラムに応じて空調機の圧縮機モータに関わる各機能を個別に制御するサブルーチンプログラムとして、起動制御プログラム、回転数制御プログラム、停止制御プログラムが記憶されている。コマンドとして、初期設定プログラムの先頭アドレスB1、起動制御プログラムの先頭アドレスC1、回転数制御プログラムの先頭アドレスD1、停止制御プログラムの先頭アドレスE1のそれぞれに対するジャンプ命令が、特定アドレスA0,A1,A2,A3にそれぞれ記憶されている。第2領域の初期設定プログラムは、アドレスB1〜Bnに記憶されたデータやコマンドからなり、第1領域の初期設定プログラムからアドレスA0がコールされるとアドレスB1にジャンプして起動し、当該第2領域における全アドレスに対し、第1領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行う。
【0019】
起動制御プログラムは、圧縮機モータの起動を制御するもので、アドレスC1〜Cnに記憶されている。最後アドレスCnには、このプログラムをコールしてきた総合制御プログラム側のアドレスに対するリターン命令が記憶されている。回転数制御プログラムは、圧縮機モータの回転数Fを制御するもので、アドレスD1〜Dnに記憶されている。最後アドレスDnには、総合制御プログラムへのリターン命令が記憶されている。停止制御プログラムは、圧縮機モータの停止を制御するもので、アドレスE1〜Enに記憶されている。最後アドレスEnには、総合制御プログラムへのリターン命令が記憶されている。
【0020】
一方、RAM(ランダム・アクセス・メモリ)2は、データの一時記憶用として使用される。このRAM2およびROM1に、監視部3を介してCPU4が接続されている。そして、監視部3およびCPU4には、プログラムカウンタ5およびプロテクト切換部(切換手段)6が接続されている。
【0021】
監視部3は、ROM1の第1領域と第2領域の相互間のアクセスに基づくデータ読出し処理の許容・禁止を監視および管理する。プロテクト切換部6は、CPU4からの指令に基づき、第1領域と第2領域の相互間のアクセスに基づくデータ読出し処理の禁止を有効とするか無効とするかを監視部3を通して切換指定する。
【0022】
つぎに、上記の構成の作用を説明する。
電源が投入されると、ROM1における第1領域の初期設定プログラムが先ず起動する。起動した初期設定プログラムは、第1領域における全てのアドレスに対し、第2領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行うとともに、第2領域の特定アドレスA0をコールする。コールされた第2領域の特定アドレスA0には、コマンド“B1へジャンプ”が記憶されており、そのジャンプ命令に基づいて、第2領域のアドレスB1〜Bnに記憶されている初期設定プログラムが起動する。この初期設定プログラムは、第2領域における全アドレスに対し、第1領域からのアクセスに基づくデータ読出し処理を禁止する初期設定を行う。
【0023】
続いて、ROM1における第1領域の総合制御プログラムが起動する。総合制御プログラムは、種々の総合制御プログラム処理の途中の必要な部分で第2領域の特定アドレスA1,A2,A3をそれぞれコールし、これら特定アドレスA1,A2,A3に記憶されたジャンプ命令を橋渡しにして、第2領域内の初期設定プログラム、起動制御プログラム、回転数制御プログラム、停止制御プログラムを指定することが可能となる。
【0024】
総合制御プログラムのアドレスXiが指定されると(圧縮機モータの起動が必要な状態)、その指定されたアドレスXiのコマンド“A1をコール”に基づいて、第2領域のアドレスA1に記憶されているコマンド“C1へジャンプ”が指定される。このジャンプ命令に基づき、第2領域のアドレスC1〜Cnに記憶されている起動制御プログラムが起動し、圧縮機モータの起動が制御される。起動制御プログラムの最終アドレスCnにはリターン命令が記憶されており、そのリターン命令に基づいて第1領域内の総合制御プログラムのアドレス“Xi+1”へ移行し、ここからの処理が実行される。
【0025】
この場合、総合制御プログラムのアドレスXiが指定された時点で、そのアドレスXiがRAM2に記憶され、その後のリターン命令により、RAM2内のアドレスXiに“1”加算したアドレス“Xi+1”へと、処理が自動的に移行する。
【0026】
総合制御プログラムのアドレスXnが指定されると(圧縮機モータの回転数制御が必要な状態)、その指定されたアドレスXnのコマンド“A2をコール”に基づいて、第2領域のアドレスA2に記憶されているコマンド“D1へジャンプ”が指定される。この回転数制御プログラムに関するデータ処理の経過を図2に示している。アドレスA2のジャンプ命令に基づき、第2領域のD1〜Dnに記憶されている回転数制御プログラムが起動し、圧縮機モータの回転数Fが制御される。この場合、目標回転数FtがRAM2の所定のアドレスに記憶され、圧縮機モータの回転数Fがその目標回転数Ftとなるように圧縮機モータが駆動制御される。回転数制御プログラムの最終アドレスDnにはリターン命令が記憶されており、そのリターン命令に基づいて第1領域内の総合制御プログラムのアドレス“Xn+1”からの処理が実行される。
【0027】
データ処理に際しては、ROM1の第2領域に記憶されている各種制御パラメータが読出され、読出された各種制御パラメータが制御に逐次に使用される。この読出しは、同じ第2領域内での命令に基づく処理であり、他の領域からのデータ読出しではないため、初期設定にて第1領域からのアクセスに基づくデータ読出し処理を禁止設定しても禁止はされない。
【0028】
総合制御プログラムの処理が進み、アドレスXyが指定されると(圧縮機モータの停止が必要な状態)、その指定されたアドレスXyのコマンド“A3をコール”に基づいて、第2領域のアドレスA3に記憶されているコマンド“E1へジャンプ”が指定される。このジャンプ命令に基づき、第2領域のE1〜Enに記憶されている停止制御プログラムが起動し、圧縮機モータの停止が制御される。停止制御プログラムの最終アドレスEnにはリターン命令が記憶されており、そのリターン命令に基づいて第1領域内の総合制御プログラムのアドレス“Xy+1”からの処理が実行される。
【0029】
ROM1の第1領域における全てのアドレスに対し、第2領域からのアクセスに基づくデータ読出し処理を禁止することにより、第1領域の内容を第2領域内のプログラムによって読出すことはできない。よって、第2領域内のプログラム作成者に対し、第1領域内のプログラムの秘密が保持される。同様に、ROM1の第1領域からの第2領域に対するデータ読出し処理を禁止することにより、第2領域の内容を第1領域内のプログラムによって読出すことはできない。よって、第1領域内のプログラム作成者に対し、第2領域内のプログラムの秘密が保持される。すなわち、ROM1に記憶されたプログラムの秘密保持を当該マイクロコンピュータ内で達成することができる。
【0030】
ここで、第2領域における初期設定プログラム、起動制御プログラム、回転数制御プログラム、停止制御プログラムのそれぞれ作成に際し、各プログラムの先頭アドレスB1,C1,D1,E1に変更が生じることがある。変更となった新たな先頭アドレスは、第2領域のプログラム作成者自身により、特定アドレスA0,A1,A2,A3のジャンプ命令のジャンプ先アドレスに更新される。この結果、第1領域のプログラム作成者は、各制御プログラムの先頭アドレスの変更について考慮する必要はまったくなく、当初からのコール先である特定アドレスA0,A1,A2,A3のみを固定的に把握しておくだけでよい。
【0031】
したがって、ROM1の第1領域および第2領域におけるプログラム作成に際し、各プログラム作成者の相互間の連絡は不要である。つまり、第1領域のプログラム作成者は、第2領域のプログラム作成に関与することなく、あくまでも第1領域のプログラム作成に専念することができる。第2領域のプログラム作成者は、第1領域のプログラム作成に関与することなく、あくまでも第2領域のプログラム作成に専念することができる。よって、プログラム作成にかかる負担が大幅に軽減されるとともに、エラーのない適正かつ迅速なプログラム作成が可能となり、制御の信頼性も向上する。
【0032】
一方、初期設定において、禁止解除の命令を入れておけばCPU4からプロテクト切換部6へ禁止解除指令が送られ、プロテクト切換部6が監視部3を操作することにより、第1領域および第2領域に対するデータ読出し処理の禁止が無効となる。ただし、この場合の禁止解除指令は、それぞれの領域のプログラム作成者のみが設定できるものであり、ROM1内の一方の領域のプログラム作成者等による人為的な操作によって他方の領域のプログラム作成者が意図的に設定できるものではない。これにより、ROM1内のプログラムに対する機密性を確実に保つことができる。例えば、第2領域の全てのプログラム内容を外部に読出すプログラムを第1領域に入れておいた場合には、第2領域に対して読出し処理のアクセスがあった際に、第1領域内のプログラムが停止して以後の処理を実行しなくなり、プログラム内容を外部出力することはできなくなる。
【0033】
単一のプログラム作成者がすべての領域を使用する場合には機密性の保持は不要であるため、ROM1の全領域に対してデータ読出し処理の禁止を解除に設定しておけば、ROM1の全領域が制限なく使用可能となり、ROM1を、通常の単一領域のROMと同等に取り扱うことができ、マイクロコンピュータに汎用性を持たせることができる。
【0034】
なお、上記実施形態では、空調機に搭載されるマイクロコンピュータを例に説明したが、他の電気機器に搭載されるマイクロコンピュータにも同様に適用が可能である。また、ROM1を2つの領域に区分する場合を例に説明したが、3つ以上の領域に区分する場合にも同様に実施できる。さらに、データ読出し禁止が特定の領域のみに設定可能としたマイクロコンピュータでも少なくともその設定可能な領域のプログラムの機密保持は可能である。
【0035】
その他、この発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、各実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【0036】
【図1】本発明の一実施形態の構成を示すブロック図。
【図2】同実施形態におけるデータ処理の経過を示す図。
【符号の説明】
【0037】
1…ROM(記憶手段)、2…RAM、3…監視部、4…CPU、5…プログラムカウンタ、6…プロテクト切換部

【特許請求の範囲】
【請求項1】
記憶領域が複数に区分された記憶手段を備え、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止する機能を備えたマイクロコンピュータにおいて、前記他方の記憶領域にプログラムを記憶し、記憶したプログラムへのジャンプ命令を前記他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を前記一方の記憶領域に記憶する構成としたことを特徴とするマイクロコンピュータ。
【請求項2】
モータを有する電気機器において、記憶手段の記憶領域が複数に区分され、一方の記憶領域から他方の記憶領域のデータ読出し処理を禁止するマイクロコンピュータを備え、前記モータに関わる制御プログラムを前記他方の記憶領域に記憶し、記憶した制御プログラムへのジャンプ命令を前記他方の記憶領域の特定アドレスに記憶するとともに、その特定アドレスに対するコール命令を前記一方の記憶領域に記憶する構成としたことを特徴とする電気機器。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2006−4280(P2006−4280A)
【公開日】平成18年1月5日(2006.1.5)
【国際特許分類】
【出願番号】特願2004−181416(P2004−181416)
【出願日】平成16年6月18日(2004.6.18)
【出願人】(399023877)東芝キヤリア株式会社 (320)
【Fターム(参考)】