(57)【特許請求の範囲】
【請求項１】
つぎの事項（１）〜（16）により特定されるシングルボードコンピュータ。
（１）ワンチップマイコンと、モード指定スイッチと、モード切替制御回路と、メモリマッピング変換回路と、外部メモリが１つの配線基板に実装されたシングルボードコンピュータであること
（２）ワンチップマイコンは、内蔵ＲＯＭにシステムプログラムを格納し、外部バスと、シリアルインタフェースと、Ｉ／Ｏポートを備えること
（３）外部バスは、配線基板上のモード切替制御回路・メモリマッピング変換回路・外部メモリに接続すること
（４）シリアルインタフェースは、配線基板外のホストコンピュータに接続可能とすること
（５）Ｉ／Ｏポートは、配線基板外の周辺回路に接続可能とすること
（６）モード指定スイッチは、内部モードで起動するのか外部モードで起動するのかを設定可能であること
（７）モード切替制御回路は、当該シングルボードコンピュータに電源が投入された際、モード指定スイッチの設定に従ってワンチップマイコンを内部モードまたは外部モードで起動すること
（８）ワンチップマイコンは、内部モードで起動された際、内蔵ＲＯＭに格納されているシステムプログラムを先頭から実行すること
（９）モード切替制御回路は、ワンチップマイコンを起動する際、起動モードに対応する制御信号をメモリマッピング変換回路に与えること
（10）メモリマッピング変換回路は、外部モード起動の際にモード切替制御回路から与えられる制御信号に応動し、内部モードではＣＰＵアドレス空間にて内蔵ＲＯＭが占めている基本空間に外部メモリの特定物理領域を配置すること
（11）メモリマッピング変換回路は、内部モード起動の際にモード切替制御回路から与えられる制御信号に応動し、外部メモリの特定物理領域を基本空間以外に配置すること
（12）システムプログラムは、ワンチップマイコンに、ユーザプログラム受信処理と、外部モード起動処理を可能とさせること
（13）ユーザプログラム受信処理は、ホストコンピュータと通信し、ホストコンピュータから受信したユーザプログラムを外部メモリの特定物理領域の先頭位置に先頭を合わせて格納し、外部モード起動処理に移行すること
（14）外部モード起動処理は、モード切替制御回路に所定信号を与えて外部モードフラグをセットするとともに、モード切替制御回路にリセット要求信号を与えること
（15）モード切替制御回路は、ワンチップマイコンからリセット要求信号を受けた際、ワンチップマイコンをリセットしてから外部モードで起動すること
（16）ワンチップマイコンは、外部モードで起動された際、内蔵ＲＯＭを無効とし、内部モードではＣＰＵアドレス空間にて内蔵ＲＯＭが占めている基本空間を外部メモリに解放するとともに、基本空間に配置されることとなった外部メモリの特定物理領域に格納されたユーザプログラムを先頭から実行すること
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ワンチップ・マイクロコンピュータ（略してマイコン）に簡単な回路を付加して構成される超小型コンピュータ装置に関し、特に、実装状態でユーザが自由にアプリケーション・プログラムを変更できる汎用性の高いシステムを構築可能なコンピュータ装置に関する。
【０００２】
【従来の技術】
［ワンチップ・マイコンのアーキテクチャの概要］
基本的なワンチップ・マイコンはＣＰＵ（中央演算処理部）とメモリ（ＲＯＭおよびＲＡＭ）とＩ／Ｏ（入出力部）などの回路を１個のＬＳＩに収めたもので、家電製品、ＡＶ機器、ＯＡ機器、産業用機器、自動車などに組み込まれて、コントローラとして大活躍している。ワンチップ・マイコンに内蔵すべき機能は用途によって異なるので、特定用途向けの性格が強く、各種の用途に応じてきわめて多品種の制御用ワンチップ・マイコンが作られている。また一方では、汎用性の高い高機能ＣＰＵコアにメモリおよび汎用的なＩ／Ｏや周辺回路を組み合わせてワンチップ化し、かつ外付けメモリや外付けＩ／Ｏによるシステムの拡張を可能にした高機能ワンチップ・マイコンも作られている。
【０００３】
いずれのタイプのワンチップ・マイコンにしても、パラレルＩ／Ｏ、シリアルＩ／Ｏ、コンパレータ付き入力ポート、カウンタ／タイマ、Ａ／Ｄ変換器、ＤＭＡコントローラ、割り込みコントローラ、バスコントローラなどの汎用的な回路機能の他、ＰＷＭコントローラ、ステッピングモータ・コントローラ、液晶表示器コントローラ、ＤＴＭＦ回路などの特定用途向けの周辺回路機能が必要に応じてＣＰＵおよびメモリとともにワンチップに組み込まれていることが最大の特徴である。ＣＰＵチップとメモリチップおよび複数の周辺回路チップを配線ボード上で組み合わせたボード・コンピュータと比較すると、ワンチップ・マイコンの方がはるかに小型で低価格の装置を実現できる。これがワンチップ・マイコンを使用することの最大の利点であると言える。
【０００４】
［ワンチップ・マイコンのプログラムメモリ］
ワンチップ・マイコンのプログラムは、通常、ＣＰＵと同一チップに収められた内蔵ＲＯＭ（プログラムメモリ）に格納され、電源投入とともにＲＯＭ内のプログラムが始動アドレスから順に実行される。民生機器などの量産品に組み込まれるワンチップ・マイコンはマスクＲＯＭ内蔵タイプであり、開発評価済みのプログラムがマスクＲＯＭの形でチップ製造時に固定化されている。
【０００５】
一方、開発評価段階ではプログラムＲＯＭの書き込みや消去が必要なので、ＥＰＲＯＭ内蔵タイプ（内蔵ＲＯＭの消去と書き込みが可能なワンチップ・マイコン）、またはＲＯＭレスタイプ（内蔵ＲＯＭを取り除き代替のＲＯＭを外付けするワンチップ・マイコン）を使用している。少量生産品の場合はマスクＲＯＭ化せずに、ＥＰＲＯＭ内蔵タイプやＲＯＭレスタイプのワンチップ・マイコンを最終製品として使用している。
【０００６】
ワンチップ・マイコンの供給メーカーは、多くの場合、マスクＲＯＭ内蔵タイプに付随したシリーズ製品として、ＥＰＲＯＭ内蔵タイプあるいはＲＯＭレスタイプの製品を用意している。プログラムメモリが内部にあるか外部にあるかに関わりなく、電源投入リセット時にプログラムメモリの始動アドレスがアクセスされ、そこにある先頭命令からプログラムが実行される。
【０００７】
［ワンチップ・マイコンの内部モードと外部モード］
主記憶を外部に拡張できる高機能ワンチップ・マイコンでは、起動時に内蔵ＲＯＭのプログラムを実行する通常の動作モード（内部モードと呼ぶ）の他に、外部モードと呼ぶ動作モードに切り替えられる機種がある（例えば日立製作所製のＨ８／５３４、Ｈ８／５３６）。外部モードを選択すると内蔵ＲＯＭが無効となり、内部モードでは内蔵ＲＯＭに割り付けられていたアドレス空間も外部メモリに解放される。つまり外部モードにして起動すると、前記ＲＯＭレスタイプと同様に、外付けされたプログラムメモリの始動アドレスがアクセスされ、そこにある先頭命令からプログラムが実行される。従って、外部モードでプログラムの開発評価を行い、プログラムが完成した段階でそれを内蔵ＲＯＭに固定化し内部モードで動作させる、といった使い方ができる。
【０００８】
［ワンチップ・マイコンのソフトウェア開発環境］
プログラミングはアセンブラ言語あるいはコンパイラ言語を使用して行われ、ソースプログラムは一般のパソコン上で動作するクロス・アセンブラあるいはコンパイラによって機種ごとのオブジェクトプログラムに変換される。開発したプログラムのテストおよびデバッグは、ホストコンピュータ（パソコン）の統括下においてエバキット、シミュレート・デバッガ、ＩＣＥ（インサーキット・エミュレータ）、高級言語デバッガなどを用いて行う。このような開発ツールは個々のワンチップ・マイコンの機種ごとにメーカーなどから提供されている。
【０００９】
ＭＳ−ＤＯＳなどのオペレーティング・システムを組み込んだパソコン用のアプリケーション・プログラムの開発と異なり、ワンチップ・マイコンの場合は、電源投入リセット時に実行される最初の命令から論理的に連続した形のメインプログラム全体を作成することになる。もちろんリロケータブル形式のサブルーチンを多数使用してメインプログラムを開発するが、最終的にはクロス・アセンブラまたはコンパイラにより各ルーチンがリンクされて、プログラムメモリの前記始動アドレスに先頭命令を合せたアブソリュート形式のメインプログラムが作成される。
【００１０】
【発明が解決しようとする課題】
［発明の目的］
この発明の基本的な目的は、豊富な周辺回路を含んだ超小型で安価なワンチップ・マイコンを応用機器に実装し、かつそのプログラムを固定化してしまうのではなくて、必要に応じてプログラムを随時書き換え可能にすることである。しかも、プログラム書き換えに際してはワンチップ・マイコンに一般的なパソコンをホストコンピュータとして接続し、データ伝送機能によりホストコンピュータからワンチップ・マイコンにプログラムを転送するシステムとする。また、プログラムメモリの拡張性を高めることも重要である。
【００１１】
さらに、前記の目的において特に重要視していることは、使用するワンチップ・マイコン専用の既存の開発ツールによって作成された前述のアブソリュート形式のメインプログラムをそのまま前記ユーザ・プログラムとして利用可能にすることである。このことが本発明の本質的な目的である。
【００１２】
［従来の方式で実現可能な類似システム］
前述した基本的な目的は、ワンチップ・マイコンの一般的な利用方式の延長上として、つぎのような形で容易に実現することができる。
【００１３】
まずハードウェアとしては、メモリやＩ／Ｏを外部に拡張可能な高機能ワンチップ・マイコンを使用し、これに相当容量のメモリを外付けして主記憶を拡張する（外付けした主記憶メモリを外部メモリと呼ぶ）。必要に応じて不揮発性で大容量のフラッシュメモリを外部メモリに用いる。
【００１４】
また、ワンチップ・マイコンの内蔵ＲＯＭにはいわゆるオペレーティング・システム（ＯＳ）のような機能のシステム・プログラムを格納しておく。ここでのＯＳ的な機能とは、所定のインタフェースで結合されたホストコンピュータ（一般のパソコン）とデータ伝送し、ホストコンピュータから転送されてくるユーザ・プログラムを前記外部メモリに書き込んでから、外部メモリ上のそのユーザ・プログラムにジャンプする機能である。この機能をユーザ・プログラム・レシーバーと呼ぶことにする。
【００１５】
以上の構成において、前記のワンチップ・マイコン装置をホストコンピュータに接続しておき、ワンチップ・マイコン装置に電源を投入すると、内蔵ＲＯＭの前記システム・プログラムが始動アドレス（０番地とする）から実行され、まず必要なイニシャライズ・ルーチンが実行される。その後ホストコンピュータからの指令信号に応答して前記ユーザ・プログラム・レシーバーが実行され、ホストコンピュータから送られてくるユーザ・プログラムが外部メモリに書き込まれる。その後、自動的または外部指令信号を待って、外部メモリ上のユーザ・プログラムにジャンプする。これでユーザ・プログラムが実行されることになる。ユーザ・プログラムには前記システム・プログラムに適時に復帰する機能を持たせておく。
【００１６】
［従来技術による類似システムの問題点］
前述した構成の従来システムでは、ＣＰＵアドレス空間における０番地（始動アドレス）から連続した一定の領域に内蔵ＲＯＭが配置されており、そのＲＯＭに前記システム・プログラムが格納されている（システム・プログラムの先頭命令が０番地にセットされている）。このシステム・プログラム中のユーザ・プログラム・レシーバーの実行によって外部メモリに書き込まれるユーザ・プログラムのＣＰＵアドレス空間上の位置は、当然ながらシステム・プログラムの格納領域（内蔵ＲＯＭ領域）ではなく、外部拡張領域（外部メモリ領域）である。つまり、ユーザ・プログラムは外部拡張領域のｘ番地以降に書き込まれ、ｘ番地にセットされている先頭命令にジャンプすることで当該ユーザ・プログラムが実行される。
【００１７】
従って、ユーザ・プログラムは、先頭命令を０番地に合せたアブソリュート形式ではなくて、主記憶上の位置を特定していないリロケータブル形式で作成されているか、０番地とは異なる特定のｘ番地に先頭命令を合せたアブソリュート形式で作成されていなければならない。このことは、ワンチップ・マイコンの各機種ごとに用意されている専用開発ツールで作成したユーザ・プログラムをそのまま利用できないことを意味している。
【００１８】
前述したように、各ワンチップ・マイコン専用の開発ツールにより作成されるプログラムは、先頭命令を０番地に合せたアブソリュート形式になる。このプログラムをｘ番地以降に置いて実行しても、正常に動作はしない。
【００１９】
任意のｘ番地以降に置いて正常に動作する任意のユーザ・プログラムを作成することはもちろん可能である。ただし、メーカーから供給されている各ワンチップ・マイコン専用の開発ツールで作成したプログラムはそのままでは使えない。あえて使おうとするのであれば、プログラム中のアドレス関連情報をすべて改変する必要がある。これを正確に行うことは非常に難しいし、膨大な作業時間を要し、まったく現実的ではない。また開発ツールを改変するか新規に作れば、任意のｘ番地に置いて正常に動作する形式のプログラムを作成できるが、ワンチップ・マイコンの１ユーザが開発ツール自体を作るなどということは、まったく現実的ではない。
【００２０】
さらに従来システムでは、既存の開発ツールで作成されて使用実績のあるワンチップ・マイコン用プログラムをライブラリー化しておき、それらを前記のユーザ・プログラムとして再利用することが、前記と同じ理由でできないのである。
【００２１】
［発明の本質的な目的］
この発明の目的は前述した従来システムの問題点を克服することにある。つまり、ワンチップ・マイコンの電源投入リセット時に起動される内蔵ＲＯＭのプログラムをシステム・プログラムとし、そのシステム・プログラムの管理下でホストコンピュータとデータ伝送し、ホストコンピュータから転送されてくるユーザ・プログラムを外部メモリに書き込んで実行するシステムであって、そのユーザ・プログラムとしては、先頭命令を０番地（始動アドレス）に合せたアブソリュート形式のプログラム、すなわち当該ワンチップ・マイコン専用の既存の開発ツールで作成したプログラムを利用できるようにする。これが本発明の本質的な目的である。
【００２２】
【課題を解決するための手段】
この発明の超小型コンピュータ装置は、ＣＰＵとメモリとＩ／Ｏなどをワンチップに収めたワンチップ・マイコンと、このワンチップ・マイコンにメモリマッピング変換回路を介して接続された拡張主記憶としての外部メモリと、前記ワンチップ・マイコンに対するモード選択信号およびリセット信号を発生するとともに前記メモリマッピング変換回路の制御信号を発生するモード切替制御回路とで構成され、以下の各要件▲１▼〜▲６▼を備えたことを特徴とする。
【００２３】
▲１▼前記ワンチップ・マイコンは、リセット時に内部モードが選択されている場合は内蔵ＲＯＭに格納されているプログラムが始動アドレスから実行され、リセット時に外部モードが選択されている場合は前記内蔵ＲＯＭが無効となり、前記内部モード時ではＣＰＵアドレス空間において前記内蔵ＲＯＭが占めていた基本空間も前記外部メモリに解放されて、前記外部メモリにおける前記基本空間に配置された領域に格納されているプログラムが前記始動アドレスから実行される。
【００２４】
▲２▼前記モード切替制御回路は、電源投入リセット信号および強制リセット信号に応動して前記ワンチップ・マイコンをリセットするとともに、そのときモード指示入力信号により指定されている内部モードまたは外部モードのいずれかのモードで起動する。
【００２５】
▲３▼前記モード切替制御回路は、内部モードで動作する前記ワンチップ・マイコンからのリセット要求信号に応動し、前記ワンチップ・マイコンをリセットして外部モードで起動する。
【００２６】
▲４▼前記モード切替制御回路は前記ワンチップ・マイコンが内部モードで起動するか外部モードで起動するのかに連動して前記メモリマッピング変換回路の制御信号を切り替え、この制御信号により前記メモリマッピング変換回路の動作が切り替わり、外部モードでは前記基本空間に配置された前記外部メモリの特定の物理領域が内部モードでは前記基本空間以外に配置される。
【００２７】
▲５▼外部モードでは前記基本空間に配置される前記外部メモリの特定の物理領域は電気的に書き換え可能なＥＥＰＲＯＭである。
【００２８】
▲６▼前記ワンチップ・マイコンは、所定のインタフェースで結合された外部のホストコンピュータとデータ伝送可能である。
【００２９】
以上の要件を備えたコンピュータ装置に最初に電源を投入する際は、前記ワンチップ・マイコンは内部モードで起動され、前記内蔵ＲＯＭに格納されているプログラム（システム・プログラムと呼ぶ）が始動アドレス（０番地とする）から実行される。このシステム・プログラムには、前記ホストコンピュータから伝送されてくるユーザ・プログラムを前記外部メモリの前記特定の物理領域を含む領域に書き込んでから前記モード切替制御回路に対してリセット要求信号を発する機能を持たせておく（この機能のことをここではユーザ・プログラム・レシーバーと呼ぶことにする）。ユーザ・プログラムを提供する前記ホストコンピュータを必要に応じて当該コンピュータ装置に接続し、ホストコンピュータからの指示で前記ユーザ・プログラム・レシーバーを実行させる。
【００３０】
ユーザ・プログラム・レシーバーの実行によりホストコンピュータからのユーザ・プログラムが外部メモリの前記特定の物理領域を含む領域に書き込まれ、その後で前記ワンチップ・マイコンがリセットされて外部モードで起動され、同時に前記メモリマッピング変換回路の動作が切り替えられる。すると、外部メモリの前記特定の物理領域がＣＰＵアドレス空間の基本空間（内部モードでは前記内蔵ＲＯＭが占めていた空間）に配置され、その基本空間の端にある前記始動アドレス（便宜上、０番地とする）、すなわち外部メモリの特定の物理領域の先頭位置がアクセスされて、そこにある命令からプログラムが実行されることになる。つまり外部モードにおいて、外部メモリの０番地にセットされている前記ユーザ・プログラムの先頭命令がまず最初に実行される。
【００３１】
前記外部メモリにおける少なくとも前記特定の物理領域は電気的に書き換え可能なＥＥＰＲＯＭなので、ここに転送された前記ユーザ・プログラムは当該コンピュータ装置の電源を切っても消えない。そこで、前記モード指示入力信号で外部モードを指定して再起動すれば、外部メモリの前記ユーザ・プログラムを何回でも実行できる。また、前記モード指示入力信号で内部モードを指定して再起動すれば、前記内蔵ＲＯＭのシステム・プログラムの実行動作に復帰することになる。なお、外部メモリのユーザ・プログラム中に前記ワンチップ・マイコン自身をリセットして内部モードで再起動するルーチンを設定しておいても、システム・プログラムの実行動作に復帰できる。
【００３２】
【発明の実施の形態】
［図１の実施例におけるワンチップ・マイコン］
第１の発明によるコンピュータ装置の全体的な概略構成を図１に示している。第１の発明では内部モード／外部モード切替式のワンチップ・マイコン１を用いる（例えば日立製作所製のＨ８／５３４、Ｈ８／５３６など）。ワンチップ・マイコン１は、ＣＰＵ２、ＲＯＭ３、ＲＡＭ４、各種のＩ／Ｏ回路５の他、割り込みコントローラ、タイマ／カウンタ、Ａ／Ｄ変換器などの各種の周辺回路（図示省略）が必要に応じてワンチップに組み込まれている。このワンチップ・マイコン１に印加されているリセット信号ＲＥＳが所定時間以上“１”になると当該マイコン１がリセットされ、そのリセット時にモード選択信号ＭＳが“０”であればマイコン１は内部モードで起動され、リセット時にモード選択信号ＭＳが“１”であればマイコン１は外部モードで起動される。
【００３３】
内部モードでは内蔵ＲＯＭ３がプログラムメモリとなる。つまり、ＣＰＵアドレス空間の０番地（始動アドレス）から連続した一定領域（これを基本空間と呼ぶ）にＲＯＭ３が配置され、起動時にまずＲＯＭ３の０番地がアクセスされて、プログラム実行動作が開始される。またＣＰＵアドレス空間の所定領域はデータメモリである内蔵ＲＡＭ４やＩ／Ｏ回路５に割り当てられている（それぞれ内蔵ＲＡＭ空間およびＩ／Ｏ空間と呼ぶ）。前記の基本空間と内蔵ＲＡＭ空間およびＩ／Ｏ空間以外のＣＰＵアドレス空間は、外部バスに接続する外付けメモリに解放されている。この空間を外部拡張空間と呼ぶ。
【００３４】
外部モードでは内蔵ＲＯＭ３が無効となり（使用されない）、ＣＰＵアドレス空間における前記の基本空間も外付けメモリに解放される。従って外部モード起動時には、まず外付けメモリの０番地がアクセスされて、プログラム実行動作が開始される。なお、前記の内蔵ＲＡＭ空間およびＩ／Ｏ空間のマッピングは内部モードと変わらない。
【００３５】
［図１のコンピュータ装置の全体構成］
前記の仕様のワンチップ・マイコン１の外部バスに拡張主記憶としての外部メモリ６が接続されている。ただし、外部メモリ６のアドレス入力にはメモリマッピング変換回路７が介在されている。また、モード切替制御回路８がワンチップ・マイコン１の外部バスに接続されている。
【００３６】
モード切替制御回路８は、ワンチップ・マイコン１のリセット信号ＲＥＳおよびモード選択信号ＭＳを発生するとともに、メモリマッピング変換回路７の制御信号ＴＣを発生する。当該コンピュータ装置の電源投入を検出するパワーオン検出回路１１およびリセットスイッチ１２からのマスターリセット信号ＭＲＳは、モード切替制御回路８に入力される。また、マスターリセット信号ＭＲＳによるリセット時に、ワンチップ・マイコン１を内部モードで起動するか外部モードで起動するのかを任意に指定するためのモード指定スイッチ９があり、このスイッチ９からのモード指定入力信号がモード切替制御回路８に入力される。
【００３７】
ワンチップ・マイコン１のシリアル・コミュニケーション・インターフェースには、ホストコンピュータ１３として一般的なパソコンを結合することができる。以下に詳述するように、ホストコンピュータ１３からワンチップ・マイコン１に任意のユーザ・プログラムを転送して実行させる。
【００３８】
以上はこの発明のコンピュータ装置の基本システム構成であるが、目的にかなった応用システムを構成するためには、センサ類やアクチュエータ類あるいはキーボードやディスプレイなど、必要に応じた周辺機器をＩ／Ｏポートや外部バスに接続することになる。このコンピュータ装置の具体的な形態としては、図１のワンチップ・マイコン１・外部メモリ６・メモリマッピング変換回路７・モード切替制御回路８をごく小さな配線基板に実装し、その基板に対してホストコンピュータ１３や、センサ類やアクチュエータ類あるいはキーボードやディスプレイなどの周辺機器を接続する構成とする。こうすれば当該コンピュータ装置の汎用性がきわめて高くなり、さまざまな用途・目的に利用できる。なお、つぎに詳しく構成を説明するメモリマッピング変換回路７とモード切替制御回路８とを１個のカスタムＩＣで構成しており、従って当該コンピュータ装置を超小型化できる。
【００３９】
［外部メモリ６とメモリマッピング変換回路７の具体例］
この部分の構成例を図２に示している。ここでは理解を容易にするために、外部メモリ６が一定容量の４個のメモリチップ６０、６１、６２、６３で構成されるものとし、ワンチップ・マイコン１の外部アドレスバスの上位２ビットＡ（ｎ）とＡ（ｎ−１）で４個のメモリチップ６０〜６３を択一的に能動化するチップセレクト信号を作り、下位ビットのアドレス信号Ａ（ｎ−２）〜Ａ（０）を各メモリチップ６０〜６３に共通に入力する。
【００４０】
また４個のメモリチップ６０〜６３は、一般にフラッシュメモリと呼ばれているＥＥＰＲＯＭからなる。つまりこの実施例では、外部メモリ６がすべて不揮発性として説明するが、本発明はこの構成に限定されるものではなく、外部メモリ６の一部の領域は通常の揮発性のＲＡＭでもよい。
【００４１】
メモリマッピング変換回路７はアドレスデコーダ７１と４個の論理ゲートＧ１〜Ｇ４から構成されるている。アドレスデコーダ７１は、アドレス信号の上位２ビットＡ（ｎ）およびＡ（ｎ−１）をデコードし、チップセレクト信号ＣＳ０、ＣＳ１、ＣＳ２、ＣＳ３を択一的に“１”にする。４個の論理ゲートＧ１〜Ｇ４は、デコーダ７１から出力されるチップセレクト信号ＣＳ０とＣＳ３、それに前述のメモリマッピング制御信号ＴＣを入力とし、メモリチップ６０と６３のチップセレクト信号を作る。デコーダ７１からのチップセレクト信号ＣＳ１とＣＳ２は直接に、メモリチップ６１と６２にそれぞれ印加される。
【００４２】
▲１▼外部モードの場合
ワンチップ・マイコン１の外部モード動作中は、後述のようにモード切替制御回路８からのメモリマッピング制御信号ＴＣは“１”に保たれている。この外部モードにおいて、アドレスバス上のアドレス信号が前記基本空間を指示するとき、Ａ（ｎ）＝“０”かつＡ（ｎ−１）＝“０”であり、このときチップセレクト信号ＣＳ０が“１”となり、その“１”信号がゲートＧ１およびＧ２を通過してメモリチップ６０に印加され、従ってメモリチップ６０がアクセスされる。つまりＣＰＵアドレス空間の前記基本空間にメモリチップ６０が配置される。
Ａ（ｎ）＝“０”かつＡ（ｎ−１）＝“１”であればチップセレクト信号ＣＳ１が“１”となり、メモリチップ６１がアクセスされる。
Ａ（ｎ）＝“１”かつＡ（ｎ−１）＝“０”であればチップセレクト信号ＣＳ２が“１”となり、メモリチップ６２がアクセスされる。
Ａ（ｎ）＝“１”かつＡ（ｎ−１）＝“１”であればチップセレクト信号ＣＳ３が“１”となり、その“１”信号がゲートＧ４を通過して（ゲートＧ３は不通過）メモリチップ６３に印加され、従ってメモリチップ６３がアクセスされる。
【００４３】
▲２▼内部モードの場合
ワンチップ・マイコン１の内部モード動作中は、後述のようにモード切替制御回路８からのメモリマッピング制御信号ＴＣは“０”に保たれている。前述したように内部モードではワンチップ・マイコン１の内蔵ＲＯＭ３がＣＰＵアドレス空間に配置され、アドレスバス上のアドレス信号が前記基本空間を指示するとき、内蔵ＲＯＭ３がアクセスされ、外部データバスは無効となる。つまり基本空間は外部に解放されない。ただし外部アドレスバス上ではＡ（ｎ）＝“０”かつＡ（ｎ−１）＝“０”となったときにチップセレクト信号ＣＳ０が“１”となるが、その“１”信号はゲートＧ１を通過しないので、４個のメモリチップ６０〜６３のいずれもアクセスされない。
Ａ（ｎ）＝“０”かつＡ（ｎ−１）＝“１”であればチップセレクト信号ＣＳ１が“１”となり、メモリチップ６１がアクセスされる。
Ａ（ｎ）＝“１”かつＡ（ｎ−１）＝“０”であればチップセレクト信号ＣＳ２が“１”となり、メモリチップ６２がアクセスされる。
Ａ（ｎ）＝“１”かつＡ（ｎ−１）＝“１”であればチップセレクト信号ＣＳ３が“１”となり、その“１”信号がゲートＧ３を通過して（ゲートＧ４は不通過）メモリチップ６０に印加され、従ってメモリチップ６０がアクセスされる。つまり、外部モードでは前記基本空間に配置されていたメモリチップ６０が、内部モードではＡ（ｎ）＝“１”かつＡ（ｎ−１）＝“１”となる別の領域に配置され、メモリチップ６３は無効になる（使用されない）。
【００４４】
以上のように、内蔵ＲＯＭ３が無効になる外部モードでは、アドレス信号の上位２ビットＡ（ｎ）とＡ（ｎ−１）が共に“０”であるアドレス空間上の基本空間にメモリチップ６０が配置される。そして内部モードでは前記基本空間に内蔵ＲＯＭ３が配置される。また、外部モードのときには基本空間に配置される前記メモリチップ６０が、内部モードになるとＡ（ｎ）＝“１”かつＡ（ｎ−１）＝“１”である別の領域（基本空間以外）に配置される。
【００４５】
［モード切替制御回路８の具体例］
図３にモード切替制御回路８の構成例を示している。ワンチップ・マイコン１に対する前記モード選択信号ＭＳはラッチ回路８１から出力され、メモリマッピング変換回路７に対する前記制御信号ＴＣはラッチ回路８２から出力される。この実施例ではモード選択信号ＭＳおよびメモリマッピング制御信号ＴＣをいずれも１ビットの信号として説明するが、後述するように、これらの信号が複数ビットからなる場合もある。
【００４６】
ワンチップ・マイコン１が所定の命令を実行することにより、レジスタ８３およびレジスタ８４に任意の信号が書き込まれる。同様に、ワンチップ・マイコン１が所定の命令を実行してリセット要求信号ＲＲＱを出力することにより、フリップフロップ８５がセットされる。なお、フリップフロップ８５はリセット要求信号ＲＲＱの立上がりエッジでセットされる。フリップフロップ８５のＱ出力が“１”に立上がると、レジスタ８３の出力がラッチ回路８１にラッチされ、レジスタ８４の出力がラッチ回路８２にラッチされる。
【００４７】
▲１▼電源投入時のリセットおよび強制リセット
前記パワーオン検出回路１１またはリセットスイッチ１２からマスターリセット信号ＭＲＳが発生したとき、モード指定スイッチ９の設定状態に応じてラッチ回路８１と８２がセットまたはリセットされるとともに（スイッチ９が“外部モード”になっていればセットされ、“内部モード”になっていればリセットされる）、オア・ゲート８８を通じてフリップフロップ８５がリセットされ、さらにオア・ゲート８９を通じてワンチップ・マイコン１がリセットされる。
【００４８】
モード指定スイッチ９が“内部モード”になっているとラッチ回路８１、８２がリセットされて、モード選択信号ＭＳおよびメモリマッピング制御信号ＴＣが共に“０”である。従ってリセット信号ＲＥＳが“０”に戻ると、ワンチップ・マイコン１は内部モードで起動され、外部メモリ６における前記メモリチップ６０が基本空間以外に配置される（メモリチップ６３が無効になる）。この状態で内蔵ＲＯＭ３のプログラムが実行されることになる。
【００４９】
モード指定スイッチ９が“外部モード”になっているとラッチ回路８１、８２がセットされて、モード選択信号ＭＳおよびメモリマッピング制御信号ＴＣが共に“１”である。従ってリセット信号ＲＥＳが“０”に戻ると、ワンチップ・マイコン１は外部モードで起動され、外部メモリ６における前記メモリチップ６０が前記基本空間に配置され（内蔵ＲＯＭ３が無効になる）、このメモリチップ６０に書き込まれているプログラムが０番地から実行される。
【００５０】
▲２▼自動モード切替とリセット
ワンチップ・マイコン１はつぎのような手順で自らをリセットして外部モードで再起動することができる。まず、モード切替制御回路８におけるレジスタ８３およびレジスタ８４にそれぞれデータ“１”を書き込み、その後モード切替制御回路８に対するリセット要求信号ＲＲＱを“１”にする。
【００５１】
すると、リセット要求信号ＲＲＱの立上がりエッジでフリップフロップ８５がセットされ、そのＱ出力が“１”に反転する。フリップフロップ８５のＱ出力が“１”に立上がるのに応動し、レジスタ８３の“１”信号がラッチ回路８１に読み込まれるとともに、レジスタ８４の“１”信号がラッチ回路８２に読み込まれる。従って、モード選択信号ＭＳが“１”になるとともに、メモリマッピング制御信号ＴＣが“１”になる。さらに同時に、フリップフロップ８５のＱ出力が  “１”に立上がるのに応動してタイマ回路８６がトリガされ、その後の一定時間だけタイマ回路８６の出力が“１”になる。このタイマ回路８６の“１”出力がオア・ゲート８９を介してワンチップ・マイコン１に対するリセット信号ＲＥＳとなる。
【００５２】
つまり、リセット信号ＲＥＳが一定時間“１”となってワンチップ・マイコン１がリセットされ、そのときモード選択信号ＭＳが“１”になっているので外部モードで起動され、また同時にメモリマッピング制御信号ＴＣが“１”になっているので前記メモリチップ６０が前記基本空間に配置される。従ってメモリチップ６０に書き込まれているプログラムが０番地から実行される。なお図３において、タイマ回路８６の出力が“０”に戻ってからフリップフロップ８５がリセットされるように、ディレイ回路８７が設けられている。
【００５３】
なお、外部モードで動作するワンチップ・マイコン１がレジスタ８３と８４にデータ“０”を書き込んでからリセット要求信号ＲＲＱを“１”にすれば、ワンチップ・マイコン１はリセットされて内部モードで起動される。この実施例ではモード選択信号ＭＳを１ビットとし、この信号で内部モードと外部モードとを切り替えているが、ワンチップ・マイコンの機種によってはさらに多くの動作モードを有するものがあり、その場合はモード選択信号は複数ビットとなるので、ラッチ回路８１およびレジスタ８３をそれに合せて複数ビットにすることもある。また、３種類以上のモードに合せてメモリマッピング変換回路７の動作も３種類以上に切り替える場合は、メモリマッピング制御信号ＴＣも複数ビットとなり、従ってラッチ回路８２およびレジスタ８４を複数ビットにすることがある。
【００５４】
［内蔵ＲＯＭ３に格納するシステム・プログラムの具体例］
以上が図１〜図３に示したコンピュータ装置のハードウェア構成の詳細である。つぎにこのコンピュータ装置の利用方法の基本形態を具体例をあげて説明する。図４のフローチャートには内蔵ＲＯＭ３に格納するシステム・プログラムの一例の概要を示している。
【００５５】
前述したように、モード指定スイッチ９を“内部モード”にして当該コンピュータ装置に電源を投入すると、ワンチップ・マイコン１は内部モードで起動され、内蔵ＲＯＭ３のシステム・プログラムが実行される。図４に示すように、まず必要なイニシャライズ・ルーチン４０１が実行される。つぎにステップ４０２に進み、ホストコンピュータ１３からなんらかの指令が入力されていないかをチェックする。ホストコンピュータ１３からの指令入力がなければ他の処理を実行する（ステップ４０３）。ホストコンピュータ１３からの指令入力があれば、それを解析してユーザ・プログラムの転送の指令かその他の指令かを調べ（ステップ４０４）、その他の指令であればそれに応じた処理を実行する（ステップ４０５）。
【００５６】
ホストコンピュータ１３からユーザ・プログラムの転送の指令が来ている場合はステップ４０６に進み、ホストコンピュータ１３と交信し、ホストコンピュータ１３から順次送信されてくるユーザ・プログラムを受け取って外部メモリ６に順次書き込む。このとき特に注意を要するのは、ユーザ・プログラムの先頭命令を外部メモリ６の前記特定の物理領域（メモリチップ６０）の先頭位置にセットするように設定しておくことである。また、ユーザ・プログラムは先頭命令を０番地に合わせたアブソリュート形式で作成しておく。
【００５７】
ユーザ・プログラムをすべて外部メモリ６に転送したならば、ステップ４０７からステップ４０８→４０９と進み、前述したように、モード切替制御回路８のレジスタ８３と８４にデータ“１”を書き込み、つぎにリセット要求信号ＲＲＱを“１”にする。するとワンチップ・マイコン１がリセットされて外部モードで起動される。同時にメモリマッピング変換回路７の動作も切り替わり、外部メモリ６の前記特定の物理領域（メモリチップ６０）が前記基本空間に配置される。ワンチップ・マイコン１はまず基本空間の０番地をアクセスするので、メモリチップ６０の先頭位置をアクセスすることになる。この位置には前記ユーザ・プログラムの先頭命令がセットされているので、先頭命令を０番地に合わせたアブソリュート形式のユーザ・プログラムが正しく実行されることになる。この後のワンチップ・マイコン１の動作はユーザ・プログラムの内容に従う。
【００５８】
［ユーザ・プログラムを外部メモリ６に転送した後の動作］
外部メモリ６は不揮発性なので、ここに転送したユーザ・プログラムはいったん電源を切ってからでも繰り返し実行できる。その場合はモード指定スイッチ９を“外部モード”にしておく。そうすれば電源投入時に外部モードで起動され、外部メモリ６上のユーザ・プログラムが実行される。
【００５９】
またモード指定スイッチ９を“内部モード”に切り替えてからリセットして再起動すれば、内蔵ＲＯＭ３のシステム・プログラムの実行動作に復帰することになる。あるいは、外部メモリ６上のユーザ・プログラム中にワンチップ・マイコン１自身をリセットして内部モードで再起動するルーチンを設定しておいても、内蔵ＲＯＭ３のシステム・プログラムの実行動作に復帰できる。システム・プログラムに復帰した状態では、随時、ホストコンピュータ１３から供給するユーザ・プログラムで外部メモリ６を書き換えて、その新しいユーザ・プログラムを実行できる。
【００６０】
もちろん、ユーザ・プログラムにもホストコンピュータ１３と通信する機能を組み込んでおき、ホストからの命令により一度内部モードに切り替えてから、それまで実行されていたユーザ・プログラムを書き換え、もう一度外部モードに戻って新たなユーザ・プログラムを実行するシステムも容易に実現できる。つまりこのシステムは、ホストコンピュータ１３からのリモート命令により、随時ユーザ・プログラムをダウンロードして実行するシステムであり、実行するプログラムを随時オンラインで変更できることになる。
【００６１】
【発明の効果】
以上詳細に説明したように、この発明の超小型コンピュータ装置によれば、ワンチップ・マイコンの電源投入リセット時に起動される内蔵ＲＯＭのプログラムをシステム・プログラムとし、そのシステム・プログラムの管理下で、ホストコンピュータから外部メモリに任意のユーザ・プログラムを転送して実行するシステムを構築し、しかも前記ユーザ・プログラムとして、先頭命令を始動アドレスに合せたアブソリュート形式のプログラム、すなわち当該ワンチップ・マイコン専用の既存の開発ツールで作成したプログラムをそのまま利用できる。
【００６２】
つまり、プログラムをＲＯＭに固定化するというワンチップ・マイコンの通常の使用形態に合せてつくられている開発ツールにはまったく手を加えずに、そのような開発ツールで作成された通常の形式の各種プログラムを、ホストコンピュータとワンチップ・マイコンとのデータ伝送機能によりワンチップ・マイコンの主記憶に受け渡して実行させるという画期的なシステムが本発明によって実現できる。
【００６３】
これにより、豊富な周辺回路を含んだ超小型で安価なワンチップ・マイコンをパソコンのような環境で動作させ、特定用途向けのコントローラとしてだけではなく、さまざまな応用システムとして活用することができる。
【００６４】
なお、前記のワンチップ・マイコンと外部メモリとメモリマッピング変換回路とモード切替制御回路とを小さな配線基板に実装し、この配線基板に対して前記ホストコンピュータや他の周辺機器を接続する構成とすれば、きわめて汎用性の高い超小型のコンピュータ装置を実現できる。
【００６５】
また、ワンチップ・マイコンの内蔵ＲＯＭにあらかじめシステム・プログラムを固定記憶しておき、そのシステム・プログラムにより、前記ホストコンピュータから伝送されてくるユーザ・プログラムを前記外部メモリの前記特定の物理領域を含む領域に書き込んでから前記モード切替制御回路に対してリセット要求信号を発する機能を持たせておけば、ユーザは利用目的に合せて試作・作成したユーザ・プログラムを一般的なパソコン（ホストコンピュータ）から当該コンピュータ装置に転送するだけで、ユーザ・プログラムを次々と書き換えと動作試験を行えるし、動作試験が完成すれば当該コンピュータ装置がそのまま実機となる。
【図面の簡単な説明】
【図１】この発明の一実施例による超小型コンピュータ装置の全体構成を示すブロック図である。
【図２】図１におけるメモリマッピング変換回路７の構成例を示すブロック図である。
【図３】図１におけるモード切替制御回路８の構成例を示すブロック図である。
【図４】図１における内蔵ＲＯＭ３に格納するシステム・プログラムの構成例を示すフローチャートである。
【符号の説明】
１  ワンチップ・マイコン
３  内蔵ＲＯＭ
６  外部メモリ
７  メモリマッピング変換回路
８  モード切替制御回路
９  モード指定スイッチ
ＭＲＳ  マスターリセット信号
ＲＥＳ  リセット信号
ＭＳ  モード選択信号
ＴＣ  メモリマッピング制御信号
３０  外部ＲＯＭ
【図１】
0003779758.tif 000002
【図２】
0003779758.tif 000003
【図３】
0003779758.tif 000004
【図４】
0003779758.tif 000005