(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサを搭載し、該マイクロプロセッサと少なくとも第１乃至第４の接続端子で電気的に接続可能であり、該マイクロプロセッサと協同で動作を実行する周辺デバイスを仕様に応じて搭載可能な半導体装置における周辺デバイスの識別方法において、
前記半導体装置は、前記周辺デバイスを識別する識別プログラムを格納可能な第１のメモリと、
前記第１及び前記第３の接続端子に信号をそれぞれ出力する第１の手段と、
前記第２及び前記第４の接続端子から出力される信号をそれぞれ受信する第２の手段と、
前記第１の接続端子から出力された信号と、前記第１の接続端子から出力されて前記第２の接続端子に入力された信号を比較し、さらに前記比較結果が一致しない場合のみ、前記第３の接続端子から出力された信号と、前記第３の接続端子から出力されて前記第４の接続端子に入力された信号を比較する比較手段と、
前記比較手段の比較結果に応答して前記周辺デバイスを識別する識別手段と、
前記識別手段の識別結果を格納する第２のメモリとを備え、
前記マイクロプロセッサは、前記周辺デバイスの識別が要求された時に、前記第１のメモリから前記制御プログラムを読み出し、該識別プログラムに従って、前記各手段を活性化させることを特徴とする周辺デバイスの識別方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサ（以下、ＭＰＵと称する）を有する半導体装置に関し、特に、この半導体装置の入／出力ポート（以下、Ｉ／Ｏポートと称する）に接続して使用する不揮発性メモリ等の周辺デバイスの仕様を識別する方法に関するものである。
【０００２】
【従来の技術】
近年のＭＰＵを搭載した半導体装置において、制御プログラムを格納しておくためのＲＯＭ（以下、ＲＯＭと称する）や処理データの書込みや読み出しのためのＲＡＭ（以下、ＲＡＭと称する）の他に、周辺デバイスを搭載して、ＭＰＵとの協同処理によりその処理動作の拡張等が可能である。周辺デバイスは、半導体装置のＩ／Ｏポートを介してＭＰＵ等と電気的な接続がなされるものである。周辺デバイスには様々な仕様があり、例えば、周辺デバイスの１つである不揮発性メモリでもＭＰＵと２つの接続端子で電気的な接続がされる２線式のものと、５つの接続端子で電気的な接続がされる５線式のものとがある。このように、半導体装置に搭載される周辺デバイスの仕様（その接続端子数）が異なるため、それぞれの周辺デバイスに対応した制御プログラムを用意する必要がある。また、周辺デバイスを搭載しないものもあり、そのための制御プログラムを用意する必要がある。
このような、制御プログラムは、ＭＰＵと共に半導体装置に内蔵されるＲＯＭに格納しておくか、ＭＰＵ内蔵のメモリに用意しておくものである。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記のような従来の場合、半導体装置が、周辺デバイスの搭載の有無、あるいは、周辺デバイスの仕様に対応した制御プログラムを格納したＲＯＭを個別に準備しなければならず、半導体装置の製造が煩雑になるという問題点があった。
特に、制御プログラムをＭＰＵの内蔵メモリに準備するような場合、ＭＰＵを製造するためのフォトマスクを、内蔵メモリに格納する制御プログラムの種類毎に用意しなければならず、製造が煩雑になるだけでなく、コスト面での増加が生ずるという問題点があった。
さらに、製造が煩雑になることに起因して、量産しずらいという問題点もあった。
【０００４】
本発明は、上記問題点に鑑みてなされたものであり、その目的は製造の煩雑さ、コストの増加及び量産の困難さを解消し、周辺デバイスの仕様に係わらず製造を共通に行える半導体装置を提供することにある。
さらに、本発明は、上記の目的を半導体装置に、特別な構成を追加することなく実現することにある。
【０００５】
【課題を解決するための手段】
この目的は、本発明にあっては、請求項１に記載されるように、マイクロプロセッサを搭載し、このマイクロプロセッサと少なくとも第１及び第2の接続端子で電気的に接続可能であり、マイクロプロセッサと協同で動作を実行する周辺デバイスを搭載可能な半導体装置において、この半導体装置は、周辺デバイスを識別する識別プログラムを格納可能な第１のメモリと、第１の接続端子に信号を出力する第１の手段と、第２の接続端子から出力される信号を受信する第２の手段と、第１の手段から出力した信号と第2の手段で受信した信号とを比較する比較手段と、比較手段の比較結果に応答して周辺デバイスを識別する識別手段と、識別手段の識別結果を格納する第２のメモリとを備え、マイクロプロセッサは、周辺デバイスの識別が要求された時に、第１のメモリから制御プログラムを読み出し、識別プログラムに従って、各手段を活性化させることで達成することができる。
【０００６】
また、この目的は、本発明にあっては、請求項２に記載されるように、第１の手段、第２の手段、比較手段及び識別手段はマイクロプロセッサであることとしても達成することができる。
【０００７】
また、この目的は、本発明にあっては、請求項３に記載されるように、マイクロプロセッサを搭載し、マイクロプロセッサと少なくとも第１乃至第４の接続端子で電気的に接続可能であり、マイクロプロセッサと協同で動作を実行する周辺デバイスを仕様に応じて搭載可能な半導体装置における周辺デバイスの識別方法において、半導体装置は、周辺デバイスを識別する識別プログラムを格納可能な第１のメモリと、第１及び前記第３の接続端子に信号をそれぞれ出力する第１の手段と、
第２及び第４の接続端子から出力される信号をそれぞれ受信する第２の手段と、第１の手段から出力した信号と第2の手段で受信した信号とを比較する比較手段と、比較手段の比較結果に応答して周辺デバイスを識別する識別手段と、識別手段の識別結果を格納する第２のメモリとを備え、マイクロプロセッサは、周辺デバイスの識別が要求された時に、第１のメモリから制御プログラムを読み出し、識別プログラムに従って、各手段を活性化させることで達成することができる。
【０００８】
また、この目的は、本発明にあっては、請求項４に記載されるように、比較手段は、第１の接続端子と第２接続端子との信号、及び第３の接続端子と第４の接続端子との信号を比較し、それぞれの比較結果により、識別手段は、搭載された周辺デバイスの種類を識別することでも達成することができる。
【０００９】
【発明の実施の形態】
以下、本発明の実施例について図面を用いて詳細に説明する。
図１は、第１の実施例における半導体装置の構成ブロック図である。図１において、１はＭＰＵ、３は制御プログラムや識別プログラム等を格納しておくＲＯＭ、５は半導体装置が処理するデータの書込みや読み出しを行うＲＡＭ、７はＭＰＵ１、ＲＯＭ３、ＲＡＭ５それぞれに接続され、これらの間で行われる信号の転送に用いられる複数のバス線、９はバス線７から転送されるデータを周辺デバイスへ出力あるいは、周辺デバイスからのデータを受信してバス線７へ伝達するためのＩ／Ｏポート、１０は周辺デバイスであり、この実施例では５線式の不揮発性メモリである。この不揮発性メモリ１０のデータ入力端子ＤＩはＩ／Ｏポート９の端子２１と接続され、データ出力端子ＤＯはＩ／Ｏポート９の端子２２と接続され、チップセレクト端子ＣＳはＩ／Ｏポート９の端子２３と接続され、レディ／ビジィ端子Ｒ／ＢはＩ／Ｏポート９の端子２４と接続されている。クロック端子ＣＬＫはＩ／Ｏポート９の端子２５と接続されている。このため、不揮発性メモリ１０はＩ／Ｏポート９を介してＭＰＵ１等とデータの授受が可能となっている。ここで、データとは、アドレスデータや演算等に用いられる処理データの他、各種動作制御のための制御信号を含めてここではデータと称している。
【００１０】
図２は、識別プログラム及び制御プログラムを格納したＲＯＭ３内のメモリ領域の概略図である。
ＲＯＭ３内において、例えば、図２のように、アドレス１００００〜アドレス１ＦＦＦＦには、周辺デバイスが５線式の不揮発性メモリである場合に対応した制御のための制御プログラム１が格納され、アドレス２００００〜アドレス２ＦＦＦＦには、後述する周辺デバイスが２線式の不揮発性メモリである場合に対応した制御のための制御プログラム２が格納され、アドレス３００００〜アドレス３ＦＦＦＦには、周辺デバイスが未搭載の場合に対応した制御のための制御プログラム３が格納され、アドレス４００００〜アドレス４ＦＦＦＦには、周辺デバイスの仕様を識別する識別プログラムが格納されている。この例では制御プログラムと識別プログラムとがアドレス１００００〜４ＦＦＦＦの連続した領域に格納しているが、読み出し制御できるのであれば、必ずしも、連続して格納する必要はない。
【００１１】
図３は、図２における識別プログラムの実行内容を示したフローチャートである。
この識別プログラムは、半導体装置の電源が投入された時や、ＭＰＵ１がリセットされた時に、ＲＡＭ５のイニシャライズ等の初期設定動作に応じて、ＭＰＵ１にてＲＯＭ３から読み出されて実行されるものである。
図３において、まず、ステップＳ１として、前記のように、ＭＰＵ１は識別プログラムの実行を開始し、ステップＳ２で、Ｉ／Ｏポート９の端子２１にデータ”１”を出力する。このＩ／Ｏポート２１からのデータは不揮発性メモリ１０の入力端子ＤＩに送られることとなる。ステップＳ３で、Ｉ／Ｏポート９の端子２２で受信しているデータが、端子２１から入力したデータと同じかを確認する。図１では、端子２２は不揮発性メモリ１０の出力端子ＤＯと接続されており、初期設定時のため、不揮発性メモリ１０は出力指示を受けていないので、不安定な出力、例えば、高インピーダンス状態、あるいは固定された出力、例えば、データ”０”を出力している。このため、ステップＳ３では、端子２２では高インピーダンス状態か、データ”０”なので、端子２１から入力したデータと一致しないため、ステップ１０の通り、周辺デバイスとして不揮発性メモリ１０が接続されていると認識し、その情報をＲＡＭ５の所定のアドレスに書込む。
【００１２】
上記では、Ｉ／Ｏポート９の端子２２で受信するデータが不揮発性メモリ１０の初期出力として”０”または高インピーダンス状態として説明したが、端子２２が受信しているデータが”１”の場合（不揮発性メモリ１０初期出力が”１”の場合）、端子２１から入力したデータと端子２２で受信しているデータが一致してしまうため、ステップ４に進むこととなる。ステップＳ４において、Ｉ／Ｏポート２１にデータ”０”を入力する。ステップＳ５で、Ｉ／Ｏポート９の端子２２で受信しているデータが、端子２１から入力したデータと同じかを確認する。端子２２はデータ”１”を受信しているため、端子２１から入力したデータ”０”と一致しないこととなり、前記したステップ１０の処理を行うこととなる。従って、周辺デバイスとして、不揮発性メモリ１０が接続されていることを認識することができる。
【００１３】
次に、周辺デバイスが未搭載の場合についてを説明する。図４は周辺デバイスが未搭載の半導体装置の概略ブロック図である。図４において、図１と同等のもには同じ符号を付けている。
図４において、特徴的なことはＩ／Ｏポート９の端子２１と端子２２、及び端子２３と端子２４を短絡して、それぞれの端子が電気的に接続された状態としている。このため、図３における識別プログラムを実行した場合、端子２１からデータ”１”及びデータ”０”を入力する（ステップＳ２、Ｓ４）と、そのデータは端子２２に与えられるので、端子２１から入力したデータと端子２２の受信するデータとは一致するようになる（ステップＳ３、Ｓ５）。この後、同様に、端子２３からデータ”１”を入力（ステップＳ６）し、端子２３から入力したデータと端子２４で受信するデータとの一致確認（ステップＳ７）し、さらに、端子２３からデータ”０”を入力（ステップＳ８）し、端子２３から入力したデータと端子２４で受信するデータとの一致確認（ステップＳ９）を行う。この一致確認においても一致が検出されるので、ステップ１１の処理、つまり、周辺デバイスが未搭載であると認識することができ、その情報をＲＡＭ５の所定のアドレスに書込む。
このように、認識プログラムを実行することで周辺デバイスの仕様（上記説明まででは周辺デバイスの有無）を確認してその情報を格納しておくことができる。
【００１４】
ここで、上記識別プログラムの実行においては、すくなくとも、端子２１及び端子２３にデータ”１”及び”０”を生成し出力する手段（ステップＳ２、Ｓ４、Ｓ６、Ｓ８）、端子２２及び端子２４から出力されるデータを受信し、端子２１及び端子２３から入力されたデータと比較する手段（ステップＳ３、Ｓ５、Ｓ７、Ｓ９）、比較結果に応じて周辺デバイスの仕様を識別し、その識別情報を出力する手段（Ｓ１０、Ｓ１１）、並びに、識別情報を所定のメモリへ書き込むように制御する手段（Ｓ１０、Ｓ１１）が必要となる。これらの手段は、特別な構成として用意してもよいが、ＭＰＵ１の機能を利用すれば、これら全ての動作を実現することが出来る。
【００１５】
図５にＭＰＵ１の構成概略図を示し、これを用いて説明する。５１は、識別プログラムや制御プログラム等の読み出されたプログラムをデコードし、他の構成の動作制御をする信号を発生するシーケンス制御部、５３は各種データを演算する演算部、５５はクロック信号等を受信して、各構成の動作タイミングを制御するタイミング制御部、５７は演算等で用いられるデータ等を格納する複数のレジスタを有するレジスタ部、５９は他の装置、例えば、図１のＲＯＭ３等とデータの授受を行うためバス線７と接続される入出力バッファ部、６１はこれらの各部間でのデータ転送に用いられる内部バス線である。
【００１６】
上記の構成からなるＭＰＵ１において、シーケンス制御部５１にて識別プログラムがデコードされ、このデコード結果によりそれぞれ各部が制御されるので、例えば、端子２１及び端子２３にデータ”１”及び”０”を生成し出力する手段としてはレジスタ部５７の２つのレジスタにそれぞれデータ”１”及びデータ”０”を格納しておき、それを、入出力バッファ部５９から端子２１あるいは端子２３に対応するバス線７に供給するようにすればよい。また、端子２１及び端子２３から入力されたデータと比較する手段は、演算部５３にて、例えば、上記実施例では、一致する場合は、加算結果が”２”または”０”となるので、加算をし、その加算結果を比較結果として用いることが出来る。さらに、比較結果に応じて周辺デバイスの仕様を識別し、その識別情報を出力する手段及び識別情報を所定のメモリへ書き込むように制御する手段は、例えば、レジスタ部のレジスタを用いて、シーケンス制御部５１がその加算結果に応じてそれぞれ制御信号を出力し、その制御信号に対応して読み出しが指示されるレジスタ部５７中のレジスタにおのおのの識別情報を格納しておけばよく、この制御信号の出力にしたがって、ＲＡＭ５に書込み指示を行うようにすればよい。この場合、ＲＡＭ５内の書込み先アドレスは予め所定のアドレスが指示されるように制御する必要がある。このアドレスもレジスタ等に格納しておくことは当然可能である。
上記のように、識別プログラムはそのための特別な構成を設ける必要なく実行することができる。また、上記のＭＰＵ１の各部における動作は、あくまで例示であり、これに限定されるものではない。
【００１７】
次に、第２の実施例として、仕様のことなる周辺デバイスが搭載されるものについて図６を用いて説明する。
図６において、特徴的なのは、周辺デバイスとして２線式の不揮発性メモリ２０がＩ／Ｏポート９と接続されていることである。つまり、この不揮発性メモリ２０では、シリアルクロック端子ＳＣＬＫとシリアルデータ端子ＳＤＡＴＡの２端子がＩ／Ｏポート９の端子２１及び端子２２とそれぞれ接続されるのみである。このため、端子２３と端子２４は短絡しておく。
【００１８】
この図６に基づく、識別処理について、図７のフローチャートを用いて説明する。ステップ３１〜ステップ３５は、図３のステップ１〜５と同様である。例えば、このステップ３５までは、図１の周辺デバイスとして５線式の不揮発性メモリ１０が接続されているものとの区別はつかない。この後、端子２３にデータ”１”あるいはデータ”０”を入力（ステップＳ３６、Ｓ３８）し、端子２３から入力したデータと端子２４で受信するデータとを比較して一致をみる（ステップＳ３７、Ｓ３９）ことにより、周辺デバイスの不揮発性メモリが５線式であるか２線式であるかの区別をすることが出来る。つまり、２線式の場合、端子２３と端子２４が短絡されているので、ステップＳ３７においても、ステップＳ３９においても一致という結果となる。従って、２線式の場合は、ステップＳ４２の処理を、５線式の場合は、ステップＳ４０の処理を、また、周辺デバイス未搭載の場合は、ステップＳ４１の処理を行うようになる。このステップＳ４０乃至ステップＳ４２の処理ではそれぞれその識別結果を示すデータをＲＡＭ５の所定のアドレスに書き込む。識別結果のデータとして例えば、５線式の不揮発性メモリならデータ”１１”、２線式ならデータ”０１”、未搭載ならデータ”００”を書き込むようにすればよい。
この第２の実施例の識別処理においても特別な構成を用意してもよいが、第１の実施例のものと同様な処理ステップから構成されているので、ＭＰＵ１が有する構成により実行可能であることは言うまでもない。
【００１９】
上記の識別結果を用いた制御プログラムの選択について。図８のフローチャートを用いて説明する。
この処理は、周辺デバイスへのアクセス等が必要な時にＭＰＵ１にて行われるものである。周辺デバイスへのアクセスが必要と判断された時（ステップＳ５１）、ＲＡＭ５から識別情報を読み出す（ステップＳ５２）。この識別情報がデータ”００”かデータ”０１”かを判断する（ステップＳ５３、Ｓ５４）。識別情報がデータ”００”なら、ＲＯＭ４のアドレス３００００〜３ＦＦＦＦに格納している制御プログラム３を読み出す（ステップＳ５５）。また、識別情報がデータ”０１”なら、ＲＯＭ４のアドレス２００００〜２ＦＦＦＦに格納している制御プログラム２を読み出す（ステップＳ５６）。また、識別情報がデータ”００”及び”０１”のどちらでもないなら、ＲＯＭ４のアドレス１００００〜１ＦＦＦＦに格納している制御プログラム１を読み出す（ステップＳ５７）。よって、周辺デバイスの仕様に対応した制御プログラムでＭＰＵ１は周辺デバイスとアクセスを行うことができる。なお、周辺デバイスとのアクセス要求があるにもかかわらず、周辺デバイスが未搭載の場合、例えば、周辺デバイスを搭載することなくＲＯＭ４で代行できる場合は、ＭＰＵ１はＲＯＭ４とアクセスを行うものである。
なお、この選択処理のためのプログラムも例えば、ＲＯＭ４内に格納しておけばよく、識別結果を用いた制御プログラムの選択動作も、識別プログラム同様に、比較機能や読み出し機能を有しているものであれば処理できるので、特別に処理手段を設けてもよいが、上記のように、ＭＰＵ１で代行できることは言うまでもない。
【００２０】
以上説明したように、第１の実施例及び第２の実施例ともに、半導体装置が有するＲＯＭに予め搭載が予想される（未搭載も含めて）周辺デバイスの制御プログラムを用意しておくとともに、周辺デバイスの仕様を識別する処理と、その識別結果から所定の制御プログラムを読み出す処理とを行うだけで対応することができる。よって、どの仕様の周辺デバイスが搭載されるにしても、それに対応した制御プログラムを格納するように管理する必要がないので、製造の煩雑さが解消される。
特に、制御制御プログラムをＭＰＵの内蔵メモリに準備するような場合、ＭＰＵを製造するためのフォトマスクが１種類で済むので、コスト面での増加をも低減化することができる。
以上の効果に起因して、量産化においても従来のような障害が解消されることとなる。
【００２１】
なお、本発明は、上記した実施例の動作や各半導体装置の機能に限定されるものではない。例えば、第１の実施例では、識別プログラムの実行を図３のように、ステップＳ１〜Ｓ１１にて行うが、周辺デバイスの搭載の有無だけを認識するのであれば、ステップＳ６〜Ｓ９を行わなくともよいことが理解されるはずである。また、ステップＳ６〜Ｓ９を用意しておくことで、Ｉ／Ｏポート９の接続端子２１〜２４と接続されるような周辺デバイスであれば、その周辺デバイスがＩ／Ｏポート９と正しく接続されているか否かの確認にも利用することができる。
【００２２】
【発明の効果】
以上説明したとおり、本発明の請求項１及び請求項３に記載される方法とした場合では、半導体装置が、周辺デバイスの搭載の有無に関わらず、対応した制御プログラムを選択するので、製造が煩雑とならないようにすることができる。
また、請求項２に記載されるようにした場合には、請求項１記載の動作を行うために、特別な回路構成を準備する必要がないので、半導体装置の大型化を抑制することができる。
また、請求項４に記載される方法とした場合では、半導体装置が、周辺デバイスの搭載の有無及び仕様に関わらず、対応した制御プログラムを選択するので、製造が煩雑とならないようにすることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施例として半導体装置の構成ブロック図である。
【図２】図２は、識別プログラム及び制御プログラムを格納したＲＯＭ３内のメモリ領域の概略図である。
【図３】図３は、第２図における識別プログラムの実行内容を示したフローチャートである。
【図４】図４は周辺デバイスが未搭載の半導体装置の概略ブロック図である。
【図５】図５は第１図のＭＰＵ１の構成概略図である。
【図６】本発明の第２の実施例として半導体装置の構成ブロック図である。
【図７】図７は本発明の第２の実施例における構成の識別をも可能な識別プログラムの実行フローチャートである。
【図８】図８は識別結果を用いた制御プログラムの選択のフローチャートである。
【符号の説明】
１    ＭＰＵ
３    ＲＯＭ
５    ＲＡＭ
７    バス線
９    Ｉ／Ｏポート
１０  周辺デバイス（５線式の不揮発性メモリ）
２０  周辺デバイス（２線式の不揮発性メモリ）
２１〜２５  端子
５１  シーケンス制御部
５３  演算部
５５  タイミング制御部
５７  レジスタ部
５９  入出力バッファ部
６１  内部バス線
【図１】
0003673015.tif 000002
【図２】
0003673015.tif 000003
【図３】
0003673015.tif 000004
【図４】
0003673015.tif 000005
【図５】
0003673015.tif 000006
【図６】
0003673015.tif 000007
【図７】
0003673015.tif 000008
【図８】
0003673015.tif 000009