(57)【要約】【課題】  記憶手段に記憶された複数のプログラムの秘密保持をプログラム作成業者の相互間で達成することができるマイクロコンピュータのデータ記憶方法を提供する。【解決手段】  マイクロコンピュータ１０の処理を実行するとともにその処理の一つとしてＲＯＭ１の各領域のデータ読出し動作を禁止する処理を行う複数のプログラムを、Ａ社およびＢ社により、それぞれ作成する。そして、Ａ社およびＢ社により作成された各プログラムを、別のＣ社により、ＲＯＭ１の各領域に記憶する。【選択図】      図３
2006092495.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数の領域に区分され、かつ他の領域からのデータ読出し動作を禁止することが可能な記憶手段を有するマイクロコンピュータのデータ記憶方法であって、
複数の第１業者によりそれぞれ作成された前記マイクロコンピュータの処理を実行する複数のプログラムを、前記第１業者以外の第２業者に集める工程と、
前記第２業者が、前記各第１業者により作成された各プログラムを、前記他の領域からのデータ読出し動作を禁止して前記各領域に記憶する工程と、
を備えたことを特徴とするマイクロコンピュータのデータ記憶方法。
【請求項２】
記憶領域が複数の領域に区分され、他の領域からのデータ読出し動作の禁止をその領域に記憶するプログラムによって設定可能で、かつ各領域ごとにデータを順次記憶可能な記憶手段を有するマイクロコンピュータのデータ記憶方法であって、
前記マイクロコンピュータの処理を実行するとともにその処理の一つとして前記他の領域からのデータ読出し動作の禁止を設定する処理を行う複数のプログラムを、複数の業者により、それぞれ作成する工程と、
前記各業者により作成された各プログラムを、その業者ごとに、順次前記各領域に記憶する工程と、
を備えたことを特徴とするマイクロコンピュータのデータ記憶方法。
【請求項３】
前記複数の記憶領域は、各領域ごとに記憶禁止が設定可能なことを特徴とする請求項２に記載のマイクロコンピュータのデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶領域が複数の領域に区分された記憶手段を有するマイクロコンピュータのデータ記憶（書き込み）方法に関する。
【背景技術】
【０００２】
各種機器にはマイクロコンピュータが搭載され、そのマイクロコンピュータの処理を実行するためのプログラムが同マイクロコンピュータの記憶手段たとえばＲＯＭ（リード・オンリ・メモリ）に記憶（書き込み）されている。このプログラムには、機器の全体の動作を決定し処理するプログラム、およびその決定された動作内容に従って機器の各種アクチュエータを制御するプログラム（いわゆるドライバー）などがある。
【０００３】
これら複数のプログラムが、複数の業者によってそれぞれ作成される場合、それぞれの業者にとっては、自分のところで作成したプログラムの内容を別の業者に知られたくないのが普通である。
【０００４】
しかしながら、従来のマイクロコンピュータでは、ＲＯＭデータの外部読出しに対してプロテクト機能がない。このため、いずれかの業者が、自分のところで作成したプログラム中に、ＲＯＭデータに対する外部出力プログラムを隠して入れておけば、他の業者が作成したプログラムを入手できてしまうという問題がある。
【０００５】
なお、メモリ内のデータの秘密保持を目的として、メモリのアドレスバス及びデータバスのバス権に関しＣＰＵと外部のいずれかが選択的に優先権を持つマイクロコンピュータがある。このマイクロコンピュータでは、外部がバス権を持つときに、メモリ内のデータの外部読み出しや書き込みを禁止するための禁止領域（アドレス）を設けることができる（例えば特許文献１）。すなわち、メモリ内の特定領域については、外部がバス権を持つ場合にはアクセスができず、読み出しや書き込みができなくなり、その特定領域のデータの外部読み出しは禁止され、データやプログラムの秘密性が維持される。
【特許文献１】特開平１１−１１０２９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記のように外部にバス権を持たせることのできるマイクロコンピュータの場合、外部からマイクロコンピュータ内のメモリヘのアクセスを禁止することはできても、マイクロコンピュータ内のメモリに記憶された複数のプログラムの秘密保持をそれぞれのプログラム作成業者の相互間でどのように達成するかについては何も考慮されていない。
【０００７】
この発明は、上記の事情を考慮したもので、記憶手段に記憶された複数のプログラムの秘密保持をプログラム作成業者の相互間で達成することができるマイクロコンピュータのデータ記憶方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
請求項１に係る発明のマイクロコンピュータのデータ記憶方法は、記憶領域が複数の領域に区分され、かつ他の領域からのデータ読出し動作を禁止することが可能な記憶手段を有するマイクロコンピュータのデータ記憶方法であって、複数の第１業者によりそれぞれ作成された上記マイクロコンピュータの処理を実行する複数のプログラムを、上記第１業者以外の第２業者に集める工程と、上記第２業者が、上記各第１業者により作成された各プログラムを、上記他の領域からのデータ読出し動作を禁止して上記各領域に記憶する工程と、を備えている。
【０００９】
請求項２に係る発明のマイクロコンピュータのデータ記憶方法は、記憶領域が複数の領域に区分され、他の領域からのデータ読出し動作の禁止をその領域に記憶するプログラムによって設定可能で、かつ各領域ごとにデータを順次記憶可能な記憶手段を有するマイクロコンピュータのデータ記憶方法であって、上記マイクロコンピュータの処理を実行するとともにその処理の一つとして上記他の領域からのデータ読出し動作の禁止を設定する処理を行う複数のプログラムを、複数の業者により、それぞれ作成する工程と、上記各業者により作成された各プログラムを、その業者ごとに、順次前記各領域に記憶する工程と、を備えている。
【発明の効果】
【００１０】
この発明のマイクロコンピュータのデータ記憶方法によれば、記憶手段に記憶された複数の業者が作成した複数のプログラムの秘密保持が達成される。
【発明を実施するための最良の形態】
【００１１】
［１］以下、この発明の第１の実施形態について図面を参照して説明する。  
図１に、空気調和機に搭載されたマイクロコンピュータ１０の概要を示している。１は記憶手段であるＲＯＭ（リード・オンリ・メモリ）で、記憶領域が複数の領域たとえば第１領域、第２領域、第３領域に区分されている。
【００１２】
第１領域には、初期設定プログラムおよび総合制御プログラムからなるエアコン制御プログラムが記憶されている。初期設定プログラムは、アドレスＷ１〜Ｗｎに記憶されたデータやコマンドからなり、電源投入時に起動して、ＲＯＭ１の第２領域、第３領域、あるいはＲＡＭ２からのアクセスに基づく当該第１領域における読出し・書き込み動作を禁止もしくは許可する初期設定の処理を行う。禁止するか許可するかについては、当該エアコン制御プログラムの作成業者により、プログラム中に設定される。コマンドとしては、第２領域のアドレスＡ１に対するコール命令がある。総合制御プログラムは、アドレスＸａ〜Ｘｙに記憶されたデータやコマンドからなり、当該マイクロコンピュータ１０が搭載されている機器の全体の制御動作を決定し処理する。コマンドとしては、第２領域のアドレスＢ１，Ｃ１，Ｄ１に対するコール命令がある。
【００１３】
第２領域には、初期設定プログラム、起動制御プログラム、回転数制御プログラム、および停止制御プログラムからなるモータ制御プログラムが記憶されている。初期設定プログラムは、アドレスＡ１〜Ａｎに記憶されたデータやコマンドからなり、電源投入時に起動する第1領域の初期設定プログラムからコールされて起動し、第１領域あるいはＲＡＭ２からのアクセスに基づく当該第２領域における読出し・書き込み動作を禁止もしくは許可する初期設定の処理を行う。禁止するか許可するかについては、当該モータ制御プログラムの作成業者により、プログラム中に設定される。  
第３領域は、ユーザによる自由なデータの読出し・書き込み動作が可能である。
【００１４】
上記起動制御プログラムは、空調機の起動を制御するもので、アクセスの禁止が初期設定されるアドレスＢ１〜Ｂｎに記憶されている。最後アドレスＢｎには、総合制御プログラムのアドレス“Ｘｉ＋１”への戻り命令が記憶されている。上記回転数制御プログラムは、空調機における圧縮機モータの回転数Ｆを制御するもので、アクセスの禁止が初期設定されるアドレスＣ１〜Ｃｎに記憶されている。最後アドレスＣｎには、総合制御プログラムのアドレス“Ｘｎ＋１”への戻り命令が記憶されている。上記停止制御プログラムは、空調機の停止を制御するもので、アクセスの禁止が初期設定されるアドレスＤ１〜Ｄｎに記憶されている。最後アドレスＤｎには、総合制御プログラムのアドレス“Ｘｙ＋１”への戻り命令が記憶されている。
【００１５】
上記ＲＡＭ（ランダム・アクセス・メモリ）２は、データの一時記憶用として使用される。  
このＲＯＭ１およびＲＡＭ２に、監視部３を介してＣＰＵ４が接続されている。そして、監視部３およびＣＰＵ４に、プログラムカウンタ（ＰＣ）５およびプロテクト切換部（切換手段）６が接続されている。
【００１６】
監視部３は、ＲＯＭ１における第１領域、第２領域、第３領域の相互間のアクセス、あるいは第１領域および第２領域に対するＲＡＭ経由のアクセスによるデータの読出し・書き込み動作の許容・禁止を監視および管理するもので、とくにデータの読出し動作を禁止する読出禁止手段、およびデータの書き込み動作を禁止する書込禁止手段の機能を有している。具体的には、監視部３は読出し及び書き込みの命令に対し、その命令の発生元のアドレスと読出しまたは書き込み先のアドレスが同じ領域かどうかによって読込み、書き込みの許可、禁止を決定する。なお、ＲＯＭ１として、データの読出しと書き込みが可能なＲＯＭを採用した場合を例に説明しているが、データの書き込みが不可能なＲＯＭを採用している場合には、書き込み処理がないため、監視部３は、読出禁止手段の機能のみを持ち、書込禁止手段の機能は持たない。
【００１７】
プロテクト切換部６は、ＲＯＭ１における第１領域の初期設定プログラムおよび第２領域の初期設定プログラムのそれぞれの実行に伴うＣＰＵ４からの指令に応じて、監視部３の読出禁止手段の処理および書込禁止手段の処理をそれぞれ有効とするか無効とするかを切換指定する。すなわち、プロテクト切換部６において禁止が設定されたならば、監視部３は読出し及び書き込みの命令に対し、その命令の発生元のアドレスと読出しまたは書き込み先のアドレスが同じ領域かどうかを判別して読込み、書き込みの許可、禁止を決定する。
【００１８】
つぎに、上記の構成の作用を説明する。  
電源が投入されると、ＲＯＭ１における第１領域の初期設定プログラムが起動し、続いて第２領域の初期設定プログラムが起動する。第１領域の初期設定プログラムは、第１領域に対してのアクセスによるデータの読出し・書き込み動作を禁止するか許可するかの初期設定の処理を行う。第２領域の初期設定プログラムは、第２領域に対してのアクセスによるデータの読出し・書き込み動作を禁止するか許可するかの初期設定の処理を行う。
【００１９】
この初期設定において、第１領域および第２領域における自身以外の領域からのアクセスによるデータの読出し・書き込み動作が禁止されたとする。  
この場合、図２のフローチャートに示すように、第２領域のデータを読出す命令が第１領域から発生すると、監視部３により、読出し対象が第２領域であることが判別され、かつ読出し命令の発生元のアドレスが第１領域であることがプログラムカウンタ５の内容から判別され、これら判別結果に基づいて第１領域内のプログラムが停止される。第１領域内のプログラムが停止することにより、第２領域に対する第１領域からのアクセスが不可能となり、第２領域内のデータを読出すことはできない。例えば、第２領域の全てのプログラム内容を外部出力するためのプログラムを第１領域に入れておいた場合には、第２領域のアドレスの内容を読出そうとする処理が実行された時点で、第１領域内のプログラムが停止して、以後の動作を実行しなくなり、第２領域のプログラム内容を外部出力することができなくなる。よって、第１領域内のプログラムの作成者に対し、第２領域内のプログラムの秘密が保持される。つまり、ＲＯＭ１に記憶されたプログラムの秘密保持を当該マイクロコンピュータ１０内で達成することができる。
【００２０】
第１領域のデータを読出す命令が第２領域から発生した場合は、監視部３により、読出し対象が第１領域であることが判別され、かつ読出し命令の発生元のアドレスが第２領域であることがプログラムカウンタ５の内容から判別され、これら判別結果に基づいて第２領域内のプログラムが停止される。第２領域内のプログラムが停止することにより、第１領域に対する第２領域からのアクセスが不可能となり、第１領域内のデータを読出すことはできない。よって、第２領域内のプログラムの作成者に対し、第１領域内のプログラムの秘密が保持される。
【００２１】
各初期設定プログラムによる初期設定において、仮に、読出し・書き込み動作が許可されていれば、ＣＰＵ４からプロテクト切換部６へ許可が指令され、プロテクト切換部６から監視部３への操作により、第１領域および第２領域の自身以外からのアクセスによるデータの読出し・書き込み処理の禁止が無効にされる。これにより、ＲＯＭ１の第１領域および第２領域の全てのアドレスに対するデータの読出し・書き込み処理が可能となる。
【００２２】
なお、ここでは監視部３の動作を図２のフローチャートに基づき説明したが、実際には監視部３はマイクロコンピュータ１０内のハード論理回路で形成される。
【００２３】
すでに説明したように、データの読出し・書き込み動作を禁止するか許可するかの初期設定は、第１領域および第２領域のプログラム作成業者のみがそれぞれ初期設定プログラムによって設定できる。一方の領域のプログラム作成業者が、人為的な操作などで他方の領域のプログラム作成業者になりきることはできない。したがって、ＲＯＭ１内のプログラムに対する機密性を確実に保つことができる。
【００２４】
読出し・書き込み動作が禁止されれば、ＲＡＭ２を経由したアクセスによる読出し・書き込み動作も同じく禁止される。これは、ＲＯＭ１のプログラムがＲＡＭ２に一旦移された場合に、移されたプログラムの処理が可能となってしまう点に対処したもので、その場合のＲＡＭ２を経由した読出し・書き込み処理を防止している。
【００２５】
ＲＡＭ２に移されたプログラムに基づく読出し・書き込み動作が行われた場合に、その動作の元になっているプログラムの出所(アドレス)がＲＯＭ１の第１領域および第２領域のいずれであるかをプログラムカウンタ５のデータから判別し、判別した領域と読出し・書き込み動作の対象領域とが同じであれば、ＲＡＭ２を経由した読出し・書き込み動作を許容するように構成しても良い。
【００２６】
本実施形態のように書き込み可能なＲＯＭ１に対しては、読出し動作と同時に書き込み動作が禁止される。これは次の不具合を防ぐためである。すなわち、一方の領域から他方の領域へのアクセスによって他方の領域へのプログラムの書き込みが可能になると、他方の領域に「読出し」命令を書き込むことができる。他方の領域にとって、書き込まれた「読出し」命令は自身の領域内の命令となるため、読出禁止手段では読出し処理を禁止することができない。その結果、他方の領域の内容が読出し可能となる不具合を生じてしまう。
【００２７】
ＲＯＭ１の第１領域および第２領域におけるプログラム作成を同一のプログラム作成業者が担当する場合には機密性の保持は不要であるため、ＲＯＭ１の各領域における読出し・書き込み動作の許可を初期設定プログラムにより設定しておくことにより、ＲＯＭ１の各領域が制限なく使用可能となり、ＲＯＭ１を、従来の全アドレスに対する読出し・書き込み動作が可能な単一領域のＲＯＭと同等に取り扱うことができ、マイクロコンピュータ１０に汎用性を持たせることができる。
【００２８】
一方、このような構成を有するマイクロコンピュータ１０は、図３に示す手順によりデータ記憶されて市場に出荷される。この実施形態は、マスクＲＯＭを用いた例、すなわち、一旦データを記憶した場合、書き込みや書き換えが不可能なＲＯＭを使用した場合で説明する。
【００２９】
まず、エアコン制御プログラムは、プログラム作成業者であるＡ社（第１業者）により作成される。作成されたエアコン制御プログラムは、コンパイルされて記憶媒体２１に書込まれる。記憶媒体２１は、郵送等により、Ｃ社（第２業者）に送られる。もう１つのモータ制御プログラムは、プログラム作成業者であるＢ社（第１業者）により作成される。作成されたモータ制御プログラムは、コンパイルされて記憶媒体２２に書込まれる。記憶媒体２２は、郵送等により、Ｃ社に送られる。なお、Ａ社の作成したエアコン制御プログラム及びＢ社の作成したモータ制御プログラムにおいては、いずれも読出し禁止の処理が内部に含まれている。
【００３０】
Ｃ社は、Ａ社およびＢ社から見て秘密保持義務を負った信頼できる業者であり、Ａ社から調達したエアコン制御プログラムおよびＢ社から調達したモータ制御プログラムをマスクデータに変換し、そのマスクデータをマイクロコンピュータ１０のＲＯＭ１に焼付ける作業を行う。この焼付けにより、エアコン制御プログラムがＲＯＭ１の第１領域に記憶され、モータ制御プログラムがＲＯＭ１の第２領域に記憶される。作業が完了したマイクロコンピュータ１０は、Ｃ社から市場に出荷される。
【００３１】
このように、Ａ社で作成されたエアコン制御プログラムとＢ社で作成されたモータ制御プログラムを、信頼できる第三者のＣ社によってＲＯＭ１の各領域にデータとして記憶することにより、両プログラムは、関連して一連の動作が処理できる。しかも各プログラムにはＲＯＭ１の各領域の相互間のデータ読出し動作を禁止する処理が含まれているため、ＲＯＭ１内の各プログラムの秘密保持がＡ社およびＢ社の相互間で確実に達成できる。
【００３２】
なお、この実施形態において、後から書き込み可能なＲＯＭを使用することも可能であり、この場合、プログラムの記憶時点で各プログラムの記憶領域での読み出し禁止と同時に新規の書き込み禁止の設定する必要がある。
【００３３】
［２］この発明の第２の実施形態を図４により説明する。  
マイクロコンピュータ１０の構成については、ＲＯＭ１が後から書き込みが不可能なマスクＲＯＭでなく部分的に書き込み、書き換えが可能なＲＯＭ（フラッシュＲＯＭ等）となっている点が異なるだけで、ほかは第１の実施形態と同じである。よって、マイクロコンピュータ１０の構成についての説明は省略する。
【００３４】
マイクロコンピュータ１０は、図４に示す手順によりデータ記憶されて市場に出荷される。  
まず、モータ制御プログラムは、プログラム作成業者であるＢ社により作成される。作成されたモータ制御プログラムは、同じＢ社のフラッシュデータ書き込み装置３１により、マイクロコンピュータ１０のＲＯＭ１の第２領域にデータとして書き込まれ、記憶される。この際、Ｂ社は、以後の読出し・書き込みの両方を禁止して書き込みを行う。書き込みが済んだマイクロコンピュータ１０は、Ｂ社から別のプログラム作成業者であるＡ社に販売される。
【００３５】
Ａ社では、Ｂ社の作成したモータ制御プログラムと連携して一連のエアコン制御動作を行うエアコン制御プログラムが作成されている。作成されたエアコン制御プログラムは、同じＡ社のフラッシュデータ書き込み装置３２により、マイクロコンピュータ１０のＲＯＭ１の第１領域にデータとして書込まれる。この際、Ｂ社と同様に、以後の読出し・書き込みの両方を禁止して書き込みを行う。書き込みが済んだマイクロコンピュータ１０は、Ａ社から直接またはエアコンに組み込まれて市場に出荷される。
【００３６】
このように、Ｂ社で作成されたモータ制御プログラムおよびＡ社で作成されたエアコン制御プログラムを、その業者ごとに、順次ＲＯＭ１の各領域にデータとして記憶することにより、しかも各プログラムにはＲＯＭ１の各領域のデータ読出し・書き込み動作を禁止する処理が含まれていることにより、ＲＯＭ１内の各プログラムの秘密保持がＡ社およびＢ社の相互間で確実に達成される。
【００３７】
［３］なお、この発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、各実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００３８】
【図１】各実施形態におけるマイクロコンピュータの構成を示すブロック図。
【図２】各実施形態におけるマイクロコンピュータの作用を説明するためのフローチャート。
【図３】第１の実施形態のマイクロコンピュータのデータ記憶手順を示す図。
【図４】第２の実施形態のマイクロコンピュータのデータ記憶手順を示す図。
【符号の説明】
【００３９】
１…ＲＯＭ（記憶手段）、２…ＲＡＭ、３…監視部、４…ＣＰＵ、５…プログラムカウンタ、６…プロテクト切換部（切換手段）、１０…マイクロコンピュータ、２１，２２…記憶媒体、３１，３２…フラッシュデータ書き込み装置
【図１】
2006092495.tif 000003
【図２】
2006092495.tif 000004
【図３】
2006092495.tif 000005
【図４】
2006092495.tif 000006