JP4083474B2 - メモリ装置の制御方法およびそのプログラムならびに記録媒体 - Google Patents
メモリ装置の制御方法およびそのプログラムならびに記録媒体 Download PDFInfo
- Publication number
- JP4083474B2 JP4083474B2 JP2002173127A JP2002173127A JP4083474B2 JP 4083474 B2 JP4083474 B2 JP 4083474B2 JP 2002173127 A JP2002173127 A JP 2002173127A JP 2002173127 A JP2002173127 A JP 2002173127A JP 4083474 B2 JP4083474 B2 JP 4083474B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- memory device
- address
- slave
- eeprom
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、EEPROMのアクセス形態の種類の判別に関するものである。
【0002】
【従来の技術】
シリアルEEPROMの制御方法は大きく分けて2種類あり、2線式タイプと3線式タイプとがある。以下、2線式によるシリアルEEPROMの制御方法を簡単に説明する。
【0003】
2線式によるシリアルEEPROMの制御方法に使用されるインタフェースとしてI2C(Inter IC Communication)バスがある。現在、I2Cバスに対応したシリアルEEPROMは小型で基板実装面積をとらないという利点、単価が安いという利点がある反面、アドレスビットが8ビットであるため、I2Cバス上での最大接続数である8個のメモリを搭載しても最大メモリ空間は16Kビットしかない。
【0004】
シリアルEEPROMとの通信においては、後述する図4に示すように、チップセレクト信号(A0,A1,A2)がTRUEのときにシリアル同期用クロック(SCL)に同期してインストラクション用コマンド、アドレス、データを連続で送ることになる。通常のシステム設計による通信形態では、CS(チップセレクト信号)、SDA(データ信号)、SCL(シリアルクロック信号)に対応して設けられているI/Oレジスタを操作して各信号のビット値を操作するか、もしくは、1本のレジスタにライト、リードなどのオペレーションコマンドとアドレス、さらにはデータの書き込みのときは書き込みデータを、レジスタにセットしてクロックに同期させて1ビットずつデータを出力している。
8ビット(=以下1バイトとする)アドレスのEEPROMの場合、伝送フォーマット(EEPROMにデータを書き込む場合)は図7(c)のようになる。伝送においては、スタート・コンディションビットからストップ・コンディションビットまでが1つの伝送動作の単位となる。伝送開始後、スタート・コンディションに続いてスレーブアドレスとリード/ライトコマンドビットとで構成される8ビットデータがホストからEEPROMに送信される。続く2バイト目がアドレス、3バイト目がデータとなる。
【0005】
上述の通り、アドレスが1バイトの場合、I2Cバス上の最大メモリ空間は16Kビットとなる。しかし、これでは容量不足になるケースが増えてきたため、アドレス・フィールドを2バイトにして16Kを超える容量のEEPROMが使われるようになってきた。
【0006】
なお、EEPROMにはシリアルEEPROMよりも容量が大きくてピン配置が異なるパラレルEEPROMがある。特開平10−320267には、開発設計の途中で容量不足になった場合に対処するため、最初はシリアルEEPROMでメモリシステムを構成していたものを、途中でパラレルEEPROMで構成するように切り替えるようにする際、切り替え前と切り替え後とで同一のソフトにより制御可能とするメモリ制御装置および方法が提案されている。
【0007】
これに対して、1バイトアドレスのシリアルEEPROMと2バイトアドレスのシリアルEEPROMとは、ピン配置が全く同じである。従って、メモリシステムの設計上、1バイトアドレスのシリアルEEPROMと2バイトアドレスのシリアルEEPROMとは、互いに同じ実装箇所やソケットに対して差し替えることができる。しかし、1バイトアドレスのEEPROMと2バイトアドレスのEEPROMとでは通信タイミングが異なるため、互いに同じ実装箇所やソケットに対して差し替えを行って両者の制御切り替えを行いたい場合、システム設計後に対処するのは困難となる。例えば、設計段階で1バイトアドレスのEEPROMでは容量不足が発覚して、2バイトアドレスのEEPROMに変更を要する場合でも、再度2バイトのリード、ライト処理方法を設計しなければならなかった。
【0008】
従って、両タイプのシリアルEEPROMの一方から他方へ使用を切り替える際に、両者のそれぞれを制御するプログラムを切り替える行程として、従来では、以下のようなことが考えられる。
(a)特開平10−320267号公報のように、両タイプのシリアルEEPROMをハードウェアの相違から区別することができるように、I2Cバスを1バイトアドレス用と2バイトアドレス用とにそれぞれ用意して、EEPROMがいずれに装着されているかを判定し、判定結果に従ってプログラムを切り替える。
(b)EEPROMを差し替えたことを人が判定して、タイプに応じたプログラムを人が切り替える、または入れ替える。
【0009】
【発明が解決しようとする課題】
しかしながら、上記(a)の方法では、1バイトアドレスのEEPROMと2バイトアドレスのEEPROMとが同じ実装箇所やソケットに対して差し替えて使用することができるにも関わらず、両タイプのそれぞれに専用のI2Cバスを備える必要がある。従って、余分なハードウェアを追加しなければならないという問題点がある。
【0010】
また、上記(b)の方法では、EEPROMを差し替える際に、人がBIOSプログラムを入れ替えたり、DIPスイッチを予め設けて人が切り替えたりする必要があって容易な切り替えができないという問題点がある。
【0011】
本発明は、上記従来の問題点に鑑みなされたものであり、その目的は、余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルEEPROMを差し替えるだけで、そのEEPROMのアクセス形態の種類を自動的に判別し、制御プログラムをそのEEPROM用の制御プログラムに切り替えることのできるメモリ装置の制御方法、およびそのプログラム、ならびに記録媒体を提供することにある。
【0012】
【課題を解決するための手段】
本発明のメモリ装置の制御方法は、上記課題を解決するために、ピン配置が同じで互いにアクセス形態の種類が異なるシリアルEEPROMを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルEEPROMへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、上記メモリ装置に装着された上記シリアルEEPROMの上記アクセス形態の種類を、上記シリアルEEPROMに所定のアクセスを行ってシーケンス違反が起るか否かについての上記シリアルEEPROMから得られる応答内容に基づいて判別し、上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定することを特徴としている。
【0013】
上記の発明によれば、ピン配置が同じでアクセス形態の種類が異なるシリアルEEPROMが同じ箇所に装着されていても、装着されたシリアルEEPROMに所定のアクセスを行ってどのような応答内容が得られるかによって、アクセス形態の種類を判別する。そして、その判別結果に従って、装着されたシリアルEEPROMへのアクセスを制御するために予め用意された制御プログラムを有効に設定する。
【0014】
従って、余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルEEPROMを差し替えるだけで、そのEEPROMのアクセス形態の種類を自動的に判別し、制御プログラムをそのEEPROM用の制御プログラムに切り替えることのできるメモリ装置の制御方法を提供することができる。
【0015】
また、上記のようにアクセス形態の種類の判別を行って、その判別結果に基づいてアクセス条件を設定するようにすれば、メモリ装置の製品出荷時にアクセス条件を固定する必要がないので、シリアルEEPROMの制御プログラムを汎用性のある仕様にすることができ、コストダウンにもつながる。さらに、制御プログラムの設定ミスなどによる不具合が発生する危険性もなくなる。さらに、将来的にシリアルEEPROMのメモリ拡張が行われても、新たにソフトウェアの対応を行う必要がなくなる。
【0016】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記所定のアクセスは、上記シーケンス違反が起るか否かに応じて上記シリアルEEPROMのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴としている。
【0017】
上記の発明によれば、所定のアクセスによってシリアルEEPROMのワードアドレスサイズを判別することによりアクセス形態の種類を判別するので、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【0018】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルEEPROMへのリードを試み、上記シリアルEEPROMから上記シーケンス違反が起らないことを示す応答内容として、エラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定することを特徴としている。
【0019】
上記の発明によれば、ワードアドレスサイズの小さい順にスレーブであるシリアルEEPROMへのリードを試みて、エラーが発生しないときのワードアドレスサイズに対応するアクセス形態の種類を、装着されたシリアルEEPROMのアクセス形態の種類とする。エラーが発生するのは、スレーブであるシリアルEEPROMの本来のワードアドレスサイズより小さいサイズのワードアドレスしか出力されなかった場合である。
【0020】
従って、正しいアクセス形態の種類を判別する途上で、正しいアクセス形態の種類に対応するワードアドレスサイズよりも大きなワードアドレスサイズに対応するアクセス形態の種類によるアクセスによって、既に書き込まれているデータが上書きされてしまうことがなく、シリアルEEPROMのデータが保護された状態でアクセス形態の種類を判別することができる。
【0021】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、スレーブとしての上記シリアルEEPROMへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルEEPROMから所定時間以内に返らなければ上記エラーが発生したと判定することを特徴としている。
【0022】
上記の発明によれば、アクノリッジ信号の所定時間以内での有無によりエラーの発生の有無を判定するので、エラーの発生の有無を容易に判定することができる。
【0023】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、正しい上記アクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認することを特徴としている。
【0024】
上記の発明によれば、正しいアクセス形態の種類を判別した後に有効なビット数を確認するので、シリアルEEPROMの容量が判明し、シリアルEEPROMを利用する際に正しくアクセスを行うことができる。
【0025】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合に上記シリアルEEPROMの装着エラーと判定して報知することを特徴としている。
【0026】
上記の発明によれば、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかすればシリアルEEPROMの装着エラーであるので、全スレーブアドレスについてのワードアドレスサイズまたはワードアドレスの有効ビット数の判定からこの装着エラーを判定して報知することにより、誤って装着されたシリアルEEPROMの交換を促すことができる。
【0027】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記所定のアクセスは、さらに、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴としている。
【0028】
上記の発明によれば、シリアルEEPROMの差し替えによってワードアドレスで参照できるアドレス空間、すなわち有効なスレーブアドレスも変化するため、所定のアクセスによってスレーブアドレスの有効および無効を判別することによりアクセス形態の種類を判別する。すなわち、指定したスレーブアドレスに対応するデバイスまたはページの存在の有無を判別することにより、アクセス形態の種類を判別する。従って、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【0029】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記シリアルEEPROMの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定することを特徴としている。
【0030】
上記の発明によれば、アクノリッジ信号の所定時間以内における有無によってスレーブアドレスの有効および無効を判別するので、有効および無効の判別を容易に行うことができる。
【0031】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記メモリ装置の起動時に上記アクセス形態の種類の判別を行って判別結果を記憶させ、上記メモリ装置の使用時には上記判別結果に従って上記制御プログラムを有効に設定することを特徴としている。
【0032】
上記の発明によれば、メモリ装置の起動時に得たシリアルEEPROMのアクセス形態の種類の判別結果に従って制御プログラムを有効にするので、シリアルEEPROMにアクセスを行うたびにアクセス形態の種類を判別せずに済む。
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記メモリ装置はI 2 Cバスインタフェースを備えており、上記シリアルEEPROMは上記I 2 Cバスインタフェースのスレーブとして備えられていることを特徴としている。
【0033】
また、本発明のプログラムは、上記課題を解決するために、前記のいずれかのメモリ装置の制御方法をコンピュータに実行させることを特徴としている。
【0034】
上記の発明によれば、メモリ装置の制御方法を汎用性の高いものとすることができる。
【0035】
また、本発明の記録媒体は、上記課題を解決するために、上記プログラムをコンピュータ読取可能に記録したことを特徴としている。
【0036】
上記の発明によれば、メモリ装置の制御方法を実行させるプログラムをコンピュータに供給しやすくなる。
【0037】
【発明の実施の形態】
本発明の実施の形態について、図1ないし図11を用いて説明すれば、以下の通りである。
【0038】
図2に、本実施の形態に係るメモリ装置を含むコンピュータシステム1の構成を示す。コンピュータシステム1は、CPU2、メモリ装置3、フラッシュROM4、RAM5、およびASIC6を備えている。
【0039】
CPU2はコンピュータシステム1の全体を制御する。メモリ装置3はI2Cバスインタフェース3a、I2Cバス3b、およびEEPROM3cを備えている。I2Cバスインタフェース3aはマスタとして、I2Cバス3bに接続されたICチップであるスレーブとしてのEEPROM3cに対する通信を制御する。(以後、I2Cバスインタフェース3aをマスタ3aと称する)フラッシュROM4、RAM5、およびASIC6はコンピュータシステム1の動作に必要なICあるいはLSIとして適宜設けられたものである。特に、RAM5は後述するようにEEPROM3cのアクセス形態の種類を判別した結果を、メモリ装置3の動作時に蓄えるようになっている。
【0040】
図3に、EEPROM3cのチップ形態の外観図を示す。EEPROM3cはI2Cバス3bのような2線式のバスに対応したシリアルEEPROMであり、8本のピンを備えている。ピンA0・A1・A2はそれぞれEEPROM3cのデバイスアドレスを決定するため各ビット値に応じた接続が行われるピン、ピンSDAはシリアルデータの入出力が行われるピン、ピンSCLはシリアルクロックが入力されるピン、ピンWPはライトプロテクト用の信号が入力されるピン、ピンVCCは1.8V〜6Vの範囲の電源電圧に接続されるピン、ピンVSSはGNDに接続されるピンである。
【0041】
図4に、上記EEPROM3cの内部構成を示す。前記ピンの名称で各ピンに入力される信号を表すものとすれば、信号SCLおよび信号A0・A1・A2はステートカウンタ/スレーブアドレス比較回路31に入力される。ステートカウンタ/スレーブアドレス比較回路31はクロック情報をコントロール回路32に送出する。また、信号A0・A1・A2は前述したように固定であり、コントロール回路32から送られてくる信号SDAに含まれるデバイスアドレスおよびページアドレスを含むスレーブアドレスが内部に備えたスレーブアドレスと一致するか否かを、信号A0・A1・A2を用いた比較演算を行って確認する。コントロール回路32はスタート/ストップ回路33によって信号SDAのスタートビット、ストップビット、スレーブアドレス、ワードアドレスの各ビット情報を信号SCLのタイミングで取り込ませ、また、スタート/ストップ回路33からスタートビットやストップビットの入力情報を得て、データリードやデータライトを制御する。
【0042】
スタート/ストップ回路33によって取り込まれたワードアドレスはワードアドレスバッファ34に送られ、ワードアドレスバッファ34はワードアドレスをロウとコラムとに分割し、Xデコーダ35がロウのデコードを行い、コラムデコーダ36がコラムのデコードを行う。また、信号WPはコントロール回路32に入力されるようになっており、ライトプロテクトがかかっていないときは、データライトにおいて信号SDAのデータはデータレジスタ37に蓄えられ、データレジスタ37はワードアドレスに従ってデータをEEPROMセルアレイ39に書き込む。同図では、一例としてEEPROMセルアレイ39を128×256または256×256のセルアレイとして図示している。また、書き込みに際してはコントロール回路32の制御により高電圧/タイミングコントロール回路38が高電圧を発生させてデータレジスタ37に送出するようになっている。
【0043】
また、データリードにおいては、コラムデコーダ36がデータの読み出しバッファとなり、コラムデコーダ36は取り込んだデータをセンスアンプ/シフトレジスタ40へ送出し、センスアンプ/シフトレジスタ40はデータの増幅とシリアル化とを行って出力回路41に送出する。出力回路41はこのような読み出されたデータや、マスタとの通信応答に用いられるアクノリッジ信号をコントロール回路32の制御によってI2Cバス3bへ出力する。出力回路41の出力部はオープン・ドレイン出力になっており、外部に設けられた抵抗Rによりプルアップされるようになっている。
【0044】
次に、図5を用いて、メモリ装置3に1バイトアドレスのEEPROM3cを装着した場合のスレーブアドレスについて説明する。
【0045】
図5ではメモリ装置3に1バイトアドレスのEEPROM3cを2つ装着する場合を示しており、それぞれをEEPROM31c・32cとしている。EEPROM31cについてはピンA0・A1・A2はいずれもGNDに接続されており、EEPROM32cについてはピンA0・A1はいずれもGNDに接続されており、ピンA2は電源Vddに接続されている。これにより、EEPROM31cのデバイスアドレスは“0”、EEPROM32cのデバイスアドレスは“4”となる。
【0046】
そして、EEPROM31c・32cは内部にそれぞれ、256×8ビットの容量を1ページ分として4ページ備えている。各ページアドレスは(P1,P0)=‘00’、‘01’、‘10’、‘11’となる。信号SDAでスレーブアドレスを指定するときには、A2のビットと、A1・A0のビットの代わりとしてのP1,P0とを指定する。すなわち、信号SDA上でのデバイスアドレスを構成するA1・A0は無効となる。これにより、1バイトアドレスのEEPROM3cを装着したメモリ装置3ではスレーブアドレスは000〜111の8通りあることになる。1つのI2Cバスではスレーブアドレスは8通りまでなので、このバスには同種のEEPROMをこれ以上増設できないということになる。
【0047】
次に、図6を用いて、メモリ装置3に2バイトアドレスのEEPROM3cを装着した場合のスレーブアドレスについて説明する。
【0048】
図6では図5の1バイトアドレスのEEPROMを2バイトアドレスのEEPROMに置き換えた場合を示しており、それぞれをEEPROM33c・34cとしている。すなわち、1バイトアドレスのEEPROM3cと2バイトアドレスのEEPROM3cとは互いに同じ箇所に差し替えて装着することができるようになっている。EEPROM33cについてはピンA0・A1・A2はいずれもGNDに接続されており、EEPROM34cについてはピンA0・A1はいずれもGNDに接続されており、ピンA2は電源Vddに接続されている。これにより、EEPROM33cのデバイスアドレスは“0”、EEPROM34cのデバイスアドレスは“4”となる。
【0049】
そして、EEPROM33c・34cは内部にそれぞれ、2k(または4k,8k)×8ビットの容量を備えていてページは備えていない。従って、信号SDAでスレーブアドレスを指定するときには、A2・A1・A0の各ビットを指定する。これにより、2バイトアドレスのEEPROM3cを装着したメモリ装置3ではスレーブアドレスは100と000との2通りあることになり、その他のスレーブアドレスは無効となる。
【0050】
次に、図7に、上記のメモリ装置3データリードおよびデータライトにおける通信手順を示す。
【0051】
図7(a)は、2バイトアドレスのEEPROM3cに対するランダムリードの手順を示す。マスタ3aから出力された信号SDAでは、スタートビットに続いて1・0・1・0の後にスレーブアドレスがA2・A1・A0の形態で指定され、その後にライトコマンドが続く。このスレーブアドレスを確認したEEPROM3cはアクノリッジ信号をマスタ3aに返すと、次の1バイトでワードアドレスの上位ビット側の情報(1stワードアドレス)を取り込んでアクノリッジ信号をマスタ3aに返す。そして次の1バイトでワードアドレスの下位ビット側の情報(2ndワードアドレス)を取り込んでアクノリッジ信号をマスタ3aに返す。すると、マスタ3aからスタートビットとそれに続くスレーブアドレスとリードコマンドとが出力される。アクノリッジ信号をマスタ3aに返すと、EEPROM3cは読み出した8ビットのデータをマスタ3aに向けて出力し、ノーアクノリッジとなった後に、マスタ3aはストップビットを出力してランダムリードが終了する。
【0052】
図7(b)は、1バイトアドレスのEEPROM3cに対するランダムリードの手順を示す。マスタ3aから出力された信号SDAでは、スタートビットに続いて1・0・1・0の後にスレーブアドレスがA2・P1・P0の形態で指定され、その後にライトコマンドが続く。このスレーブアドレスを確認したEEPROM3cはアクノリッジ信号をマスタ3aに返すと、次の1バイトでワードアドレスの情報を取り込んでアクノリッジ信号をマスタ3aに返す。すると、マスタ3aからスタートビットとそれに続くスレーブアドレスとリードコマンドとが出力される。アクノリッジ信号をマスタ3aに返すと、EEPROM3cは読み出した8ビットのデータをマスタ3aに向けて出力し、ノーアクノリッジとなった後に、マスタ3aはストップビットを出力してランダムリードが終了する。
【0053】
図7(c)は、1バイトアドレスのEEPROM3cに対するバイトライトの手順を示す。マスタ3aから出力された信号SDAでは、スタートビットに続いて1・0・1・0の後にスレーブアドレスがA2・P1・P0の形態で指定され、その後にライトコマンドが続く。このスレーブアドレスを確認したEEPROM3cはアクノリッジ信号をマスタ3aに返すと、次の1バイトでワードアドレスの情報を取り込んでアクノリッジ信号をマスタ3aに返す。すると、EEPROM31cはマスタ3aから出力されたデータを書き込み、アクノリッジ信号をマスタ3aに返すと、マスタ3aがストップビットを出力してバイトライトが終了する。
【0054】
もし、1バイトアドレスのEEPROMに対して図7(a)の2バイトアドレス用のランダムリードを行うと、2ndワードアドレスの送信までが図7(c)の1バイトアドレス用のバイトライトと同じ手順になるため、記憶されているデータが書き替えられるおそれがある。EEPROMが1バイトアドレスか2バイトアドレスか判定する場合には、このような意図しないデータの書き込みが起こらないようにする必要がある。
【0055】
次に、図1を用いて、メモリ装置3に装着されているEEPROM3cのアクセス形態の種類として、1バイトアドレスであるか2バイトアドレスであるかを判別する方法について説明する。
【0056】
まず、スレーブアドレスのループで、取り得る全てのスレーブアドレス(000〜111の8通り)に対して、1バイトアドレスのEEPROM3cに対するランダムリードを試みる。このループでは、マスタ3aはまずS1でスタートビットの出力を行うと、S2で8通りのスレーブアドレスのいずれかをライトコマンドを指定した状態で出力する。S3でアクノリッジ信号が返ってくればS4へ進み、アクノリッジ信号が返ってこなければS11へ進む。アクノリッジ信号が返ってくるのは、例えば図5の場合には全てのスレーブアドレスに対してであり、図6の場合にはスレーブアドレスが‘0’と‘4’とに対してである。これにより、どのスレーブアドレスに対応するEEPROMが存在するかが判る。スレーブアドレスに応答するEEPROMがなければS11へ分岐して、S4以降の1バイトアドレスか2バイトアドレスかの判定処理をスキップすることになる。
【0057】
S4では1バイト分のワードアドレスを任意に出力してアクノリッジ信号が返ってくるのを確認する。S5でスタートビットを出力し、S6でスレーブアドレスをリードコマンドを指定した状態で出力する。続くS7で、アクノリッジ信号が返ってくればS8へ進み、アクノリッジ信号が返ってこなければS13へ進む。S7でアクノリッジ信号が返ってくるのはEEPROM3cが1バイトアドレスのものである場合であり、2バイトアドレスのものである場合にはワードアドレスの下位ビット側に対して上記スタートアドレスとスレーブアドレスとが不適切な情報となるので、アクノリッジ信号は返ってこない。従って、このステップでアクノリッジ信号が返ってくるスレーブは1バイトアドレスのEEPROM3cであり、アクノリッジ信号が返ってこないスレーブは1バイトアドレスのEEPROM3cでないことが分かる。
【0058】
S8では、継続してデータリードを行い、ノーアクノリッジとなったらS9へ進んでストップビットを出力して一定時間待つ。これにより、S10ではEEPROM3cが1バイトアドレスであることを判別し、図2のRAM5にEEPROM3cが1バイトアドレスであることを設定すれば、1つのスレーブアドレスに対する判定が終了する。
【0059】
一方、S3から分岐したS11では、指定したスレーブアドレスが無効であることを設定し、続くS12で一定時間待てば、1つのスレーブアドレスに対する判定が終了する。
【0060】
また、S7から分岐したS13以降では、2バイトアドレスのEEPROM3cに対するランダムリードを試みる。S13で一定時間待った後、S14でスタートビットを出力し、S15でスレーブアドレスをライトコマンドを指定した状態で出力し、アクノリッジ信号が返ってくるのを確認する。S16では1バイト分を用いてワードアドレスの上位ビット側の出力を行ってアクノリッジ信号が返ってくるのを確認し、S17では1バイト分を用いてワードアドレスの下位ビット側の出力を行ってアクノリッジ信号が返ってくるのを確認する。そして、S18でスタートビットを出力し、S19でスレーブアドレスをリードコマンドを指定した状態で出力する。続くS20で、アクノリッジ信号が返ってくればS21へ進み、アクノリッジ信号が返ってこなければS26へ進む。
【0061】
S21ではデータリードを行ってノーアクノリッジとなったら、S22でストップビットを出力して場合によっては一定時間待つ。これにより、S23ではEEPROM3cが2バイトアドレスであることを判別し、図2のRAM5にEEPROM3cが2バイトアドレスであることを設定する。そして、S24でワードアドレスを表すビットにおける有効ビット数を確認し、S25で有効ビット数をRAM5に設定する。S24については後述する。これにより、1つのスレーブアドレスに対する判定が終了する。一方、S20から分岐したS26ではこのメモリ装置3でアクセス形態の種類の候補となっている1バイトアドレスおよび2バイトアドレスのいずれでもないEEPROM3c(例えば故障したEEPROM)が装着されているとして、ワードアドレスサイズが判定不能であることをRAM5に設定する。S26の次にはS12へ進む。いずれにしても、このスレーブアドレスは使用できないので、S26はS11に統合してもよい。
【0062】
こうして8通りのスレーブアドレスの全てについて、上記のようなステップを繰り返し行う。このループの次にはS27へ進み、有効なスレーブアドレスのスレーブの容量の合計が、メモリ装置3に対して必要であると定めた容量に対して不足しているか否かを判定する。容量不足でなければS28へ進み、容量不足であればS30へ進んでEEPROM3cの装着エラーであると判定する。S28では、1バイトアドレスのEEPROM3cと2バイトアドレスのEEPROM3cとが混在しているか否かを判定する。混在していなければS29へ進み、混在していればS30へ進んでEEPROM3cの装着エラーであると判定する。S29ではEEPROM3cの装着は全て正常であると判定する。
【0063】
このようなワードアドレスサイズの判別はメモリ装置3の起動時ごと、すなわちコンピュータシステム1の起動時ごとに行われる。図8に、コンピュータシステム1の起動時におけるワードアドレスサイズの判別のフローを示す。起動したならば、S41ではメモリ装置3にとって必用な記憶容量を指定する。S42では、上述した図1のフローを行ってEEPROM3cの構成を判定する。S43ではS42の結果にエラーがあるか否かを、RAM5への設定結果から判定し、エラーがなければそのままメモリ装置3の通常処理に移行し、エラーがあればS44へ進んでエラー表示を行い、メモリ装置3の使用を停止するようにする。
【0064】
また、図9に、図8の通常処理におけるリード処理のフローを示す。
【0065】
S51でデータを読み出すスレーブアドレスを算出し、S52でワードアドレスサイズが1バイトであるか2バイトであるかを、RAM5の設定から判断する。1バイトであればS53へ進んで1バイトアドレスのEEPROM3cに対するリード処理の制御プログラムを設定してリード処理を行う。2バイトであればS54へ進んで2バイトアドレスのEEPROM3cに対するリード処理の制御プログラムを設定してリード処理を行う。
【0066】
また、図10に、図8の通常処理におけるライト処理のフローを示す。
【0067】
S61でデータを書き込むスレーブアドレスを算出し、S62でワードアドレスサイズが1バイトであるか2バイトであるかを、RAM5の設定から判断する。1バイトであればS63へ進んで1バイトアドレスのEEPROM3cに対するライト処理の制御プログラムを設定してライト処理を行う。2バイトであればS64へ進んで2バイトアドレスのEEPROM3cに対するライト処理の制御プログラムを設定してライト処理を行う。
【0068】
次に、図1のフローチャートのS24で行うワードアドレスの有効ビット数の確認処理について説明する。
【0069】
ワードアドレスの有効ビット数を確認するには、まず、そのスレーブがワードアドレスに使用することのできるビットを用いたときに取り得る最も大きいワードアドレスを指定して所定のデータを格納する。このデータは、実際に使用されている最も大きいワードアドレスに、実際に使用されていない上位ビットを無視した状態で格納されている。従って、スレーブ内に上記データが格納されているワードアドレスを調べれば、そのワードアドレスがスレーブで実際に使用されているワードアドレスの最大値であるから、ワードアドレスの有効ビット数を確認することができる。
【0070】
図11に、この一例を示す。同図(a)はスレーブが2k×8ビットの容量を有しており、同図(b)はスレーブが4k×8ビットの容量を有しており、同図(c)はスレーブが8k×8ビットの容量を有していることを示している。このとき、ライト処理により2バイトアドレスを16進でFFFFHとして所定のデータを書き込んだ場合、同図(a)では07FFHに、同図(b)では0FFFHに、同図(c)では1FFFHに上記所定のデータが格納されることとなる。そして、所定のデータと一致しているデータを探し、このデータが格納されているワードアドレスを求める。2バイトアドレスの場合は有効ビット数は11ビット以上となる。
【0071】
なお、所定のデータのライト処理のときに、取り得る最大のワードアドレス以外にも、実際に使用されているワードアドレスの最大値以上であることが分かっているワードアドレスであれば、そこに所定のデータを格納しても、実際に使用されているワードアドレスの最大値に該データが格納されるので、こちらを利用してもよい。例えば、図11(b)において、指定するワードアドレスが、FFFFH、EFFFH、…、2FFFH、1FFFH、0FFFHのいずれであっても、データは0FFFHに格納される。
【0072】
以上のように、本実施の形態におけるメモリ装置3の制御方法では、メモリ装置3に装着されたEEPROM3cのアクセス形態の種類を、EEPROM3cに1バイトアドレス用のランダムリードという所定のアクセスを行ってEEPROM3cから得られる応答内容に基づいて判別し、アクセス形態の種類の判別結果に従って、予め用意された制御プログラムを有効に設定する。
【0073】
すなわち、ピン配置が同じでアクセス形態の種類が異なるEEPROM3cが同じ箇所に装着されていても、装着されたEEPROM3cに所定のアクセスを行ってどのような応答内容が得られるかによって、アクセス形態の種類を判別する。そして、その判別結果に従って、装着されたEEPROM3cへのアクセスを制御するために予め用意された制御プログラムを有効に設定する。
【0074】
従って、アクセス形態の種類ごとに対応したI2Cバスなどの余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるEEPROM3cを差し替えるだけで、そのEEPROM3cのアクセス形態の種類を自動的に判別し、制御プログラムをそのEEPROM用の制御プログラムに切り替えることができる。
【0075】
また、上記のようにアクセス形態の種類の判別を行って、その判別結果に基づいてアクセス条件を設定するようにすれば、メモリ装置3、あるいはコンピュータシステム1の製品出荷時にアクセス条件を固定する必要がないので、EEPROM3cの制御プログラムを汎用性のある仕様にすることができ、コストダウンにもつながる。さらに、制御プログラムの設定ミスなどによる不具合が発生する危険性もなくなる。さらに、将来的にEEPROM3cのメモリ拡張が行われても、新たにソフトウェアの対応を行う必要がなくなる。
【0076】
また、本実施の形態では、上記の所定のアクセスは、図1のS7で行ったように、EEPROM3cのワードアドレスサイズを判別することによりアクセス形態の種類を判別することができるアクセスである。従って、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【0077】
また、本実施の形態では、上記所定のアクセスにおいては、1バイトアドレスのように最も小さいワードアドレスサイズから、次に2バイトアドレスというように順次ワードアドレスサイズが大きくなる順で、候補となる各アクセス形態の種類に対応する任意のワードアドレスでスレーブとしてのEEPROM3cへのリードを試みる。そして、EEPROM3cからエラーが発生しない応答内容、すなわちノーアクノリッジとならずにアクノリッジ信号が返ってくるという応答内容が得られるワードアドレスサイズに対応するアクセス形態の種類を、正しいアクセス形態の種類と判定する。
【0078】
すなわち、ワードアドレスサイズの小さい順にスレーブであるEEPROM3cへのリードを試みて、エラーが発生しないときのワードアドレスサイズに対応するアクセス形態の種類を、装着されたEEPROM3cのアクセス形態の種類とする。エラーが発生するのは、スレーブであるEEPROM3cの本来のワードアドレスサイズより小さいサイズのワードアドレスしか出力されなかった場合である。
【0079】
従って、正しいアクセス形態の種類を判別する途上で、正しいアクセス形態の種類に対応するワードアドレスサイズよりも大きなワードアドレスサイズに対応するアクセス形態の種類によるアクセスによって、既に書き込まれているデータが上書きされてしまうことがなく、EEPROM3cのデータが保護された状態でアクセス形態の種類を判別することができる。
【0080】
また、本実施の形態では、スレーブとしてのEEPROM3cへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、特にアクノリッジ信号がEEPROM3cから所定時間以内に返らなければエラーが発生したと判定するようにしている。このように、アクノリッジ信号の所定時間以内での有無によりエラーの発生の有無を判定するので、エラーの発生の有無を容易に判定することができる。
【0081】
また、本実施の形態では、正しいアクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認する。従って、EEPROM3cの容量が判明し、EEPROM3cを利用する際に正しくアクセスを行うことができる。
【0082】
また、本実施の形態では、全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合にEEPROM3cの装着エラーと判定して報知する。従って、全スレーブアドレスについてのワードアドレスサイズまたはワードアドレスの有効ビット数の判定からこの装着エラーを判定して報知することにより、誤って装着されたシリアルEEPROM3cの交換を促すことができる。
【0083】
また、本実施の形態では、所定のアクセスであるスレーブアドレス出力に対する応答によって、図1のS3で行ったようにスレーブアドレスの有効および無効を判別することによりアクセス形態の種類を判別することができる。
【0084】
このように、EEPROM3cの差し替えによってワードアドレスで参照できるアドレス空間、すなわち有効なスレーブアドレスも変化するため、所定のアクセスによってスレーブアドレスの有効および無効を判別することによりアクセス形態の種類を判別する。すなわち、指定したスレーブアドレスに対応するデバイスまたはページの存在の有無を判別することにより、アクセス形態の種類を判別する。従って、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【0085】
またこの場合、EEPROM3cの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返ればスレーブアドレスが有効であると判定し、所定時間以内に返らなければスレーブアドレスが無効であると判定する。従って、スレーブアドレスの有効および無効の判別を容易に行うことができる。
【0086】
また、本実施の形態では、図8を用いて説明したように、メモリ装置3の起動時にアクセス形態の種類の判別を行って判別結果をRAM5に記憶させ、メモリ装置3の通常使用時には判別結果に従って制御プログラムを有効に設定する。従って、EEPROM3cにアクセスを行うたびにアクセス形態の種類を判別せずに済む。
【0087】
なお、本実施の形態では、メモリ装置3の制御方法は、コンピュータに実行させるためのプログラムによって実現することができる。これにより、メモリ装置3の制御方法を汎用性の高いものとすることができる。また、このプログラムをコンピュータに読み取り可能な記録媒体に格納することもできる。これにより、メモリ装置3の制御方法を実行させるプログラムをコンピュータに供給しやすくなる。
【0088】
この記録媒体としては、マイクロコンピュータで処理が行われるために図2に示したフラッシュROMを初めとするコンピュータシステム1内のメモリそのものがプログラムメディアであってもよいし、また、図示していないが外部記憶装置としてプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なプログラムメディアであってもよい。
【0089】
いずれの場合においても、格納されているプログラムはマイクロプロセッサがアクセスして実行させる構成であってもよいし、あるいは、いずれの場合もプログラムを読み出し、読み出されたプログラムは、マイクロコンピュータの図示されていないプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であってもよい。このダウンロード用のプログラムは予め本体装置に格納されているものとする。
【0090】
ここで、上記プログラムメディアは、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フロッピーディスクやハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD等の光ディスクのディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROM等による半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【0091】
また、本実施の形態においては、インターネットを含む通信ネットワークを接続可能なシステム構成であることから、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用のプログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであってもよい。
なお、メモリ装置の制御方法は以下のものでもよい。
(1)ピン配置が同じで互いにアクセス形態の種類が異なるシリアルEEPROMを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルEEPROMへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、上記メモリ装置に装着された上記シリアルEEPROMの上記アクセス形態の種類を、上記シリアルEEPROMに所定のアクセスを行って上記シリアルEEPROMから得られる応答内容に基づいて判別し、上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定することを特徴とするメモリ装置の制御方法。
上記の発明によれば、ピン配置が同じでアクセス形態の種類が異なるシリアルEEPROMが同じ箇所に装着されていても、装着されたシリアルEEPROMに所定のアクセスを行ってどのような応答内容が得られるかによって、アクセス形態の種類を判別する。そして、その判別結果に従って、装着されたシリアルEEPROMへのアクセスを制御するために予め用意された制御プログラムを有効に設定する。
従って、余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルEEPROMを差し替えるだけで、そのEEPROMのアクセス形態の種類を自動的に判別し、制御プログラムをそのEEPROM用の制御プログラムに切り替えることのできるメモリ装置の制御方法を提供することができる。
また、上記のようにアクセス形態の種類の判別を行って、その判別結果に基づいてアクセス条件を設定するようにすれば、メモリ装置の製品出荷時にアクセス条件を固定する必要がないので、シリアルEEPROMの制御プログラムを汎用性のある仕様にすることができ、コストダウンにもつながる。さらに、制御プログラムの設定ミスなどによる不具合が発生する危険性もなくなる。さらに、将来的にシリアルEEPROMのメモリ拡張が行われても、新たにソフトウェアの対応を行う必要がなくなる。
(2)上記所定のアクセスは、上記シリアルEEPROMのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴とするメモリ装置の制御方法。
上記の発明によれば、所定のアクセスによってシリアルEEPROMのワードアドレスサイズを判別することによりアクセス形態の種類を判別するので、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
(3)上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルEEPROMへのリードを試み、上記シリアルEEPROMからエラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定することを特徴とするメモリ装置の制御方法。
上記の発明によれば、ワードアドレスサイズの小さい順にスレーブであるシリアルEEPROMへのリードを試みて、エラーが発生しないときのワードアドレスサイズに対応するアクセス形態の種類を、装着されたシリアルEEPROMのアクセス形態の種類とする。エラーが発生するのは、スレーブであるシリアルEEPROMの本来のワードアドレスサイズより小さいサイズのワードアドレスしか出力されなかった場合である。
従って、正しいアクセス形態の種類を判別する途上で、正しいアクセス形態の種類に対応するワードアドレスサイズよりも大きなワードアドレスサイズに対応するアクセス形態 の種類によるアクセスによって、既に書き込まれているデータが上書きされてしまうことがなく、シリアルEEPROMのデータが保護された状態でアクセス形態の種類を判別することができる。
(4)スレーブとしての上記シリアルEEPROMへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルEEPROMから所定時間以内に返らなければ上記エラーが発生したと判定することを特徴とするメモリ装置の制御方法。
上記の発明によれば、アクノリッジ信号の所定時間以内での有無によりエラーの発生の有無を判定するので、エラーの発生の有無を容易に判定することができる。
(5)正しい上記アクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認することを特徴とするメモリ装置の制御方法。
上記の発明によれば、正しいアクセス形態の種類を判別した後に有効なビット数を確認するので、シリアルEEPROMの容量が判明し、シリアルEEPROMを利用する際に正しくアクセスを行うことができる。
(6)全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合に上記シリアルEEPROMの装着エラーと判定して報知することを特徴とするメモリ装置の制御方法。
上記の発明によれば、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかすればシリアルEEPROMの装着エラーであるので、全スレーブアドレスについてのワードアドレスサイズまたはワードアドレスの有効ビット数の判定からこの装着エラーを判定して報知することにより、誤って装着されたシリアルEEPROMの交換を促すことができる。
(7)上記所定のアクセスは、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴とするメモリ装置の制御方法。
上記の発明によれば、シリアルEEPROMの差し替えによってワードアドレスで参照できるアドレス空間、すなわち有効なスレーブアドレスも変化するため、所定のアクセスによってスレーブアドレスの有効および無効を判別することによりアクセス形態の種類を判別する。すなわち、指定したスレーブアドレスに対応するデバイスまたはページの存在の有無を判別することにより、アクセス形態の種類を判別する。従って、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
(8)上記シリアルEEPROMの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定することを特徴とするメモリ装置の制御方法。
上記の発明によれば、アクノリッジ信号の所定時間以内における有無によってスレーブアドレスの有効および無効を判別するので、有効および無効の判別を容易に行うことができる。
(9)上記メモリ装置の起動時に上記アクセス形態の種類の判別を行って判別結果を記憶させ、上記メモリ装置の使用時には上記判別結果に従って上記制御プログラムを有効に設定することを特徴とするメモリ装置の制御方法。
上記の発明によれば、メモリ装置の起動時に得たシリアルEEPROMのアクセス形態の種類の判別結果に従って制御プログラムを有効にするので、シリアルEEPROMにアクセスを行うたびにアクセス形態の種類を判別せずに済む。
(10)上記メモリ装置はI 2 Cバスインタフェースを備えており、上記シリアルEEPROMは上記I 2 Cバスインタフェースのスレーブとして備えられていることを特徴とするメモリ装置の制御方法。
(11)また、前記(1)〜(10)のいずれかのメモリ装置の制御方法をコンピュータに実行させることを特徴とするプログラムも可能である。
上記の発明によれば、メモリ装置の制御方法を汎用性の高いものとすることができる。
(12)また、上記(11)のプログラムをコンピュータ読取可能に記録したことを特徴とする記録媒体も可能である。
上記の発明によれば、メモリ装置の制御方法を実行させるプログラムをコンピュータに供給しやすくなる。
【0092】
【発明の効果】
本発明のメモリ装置の制御方法は、以上のように、ピン配置が同じで互いにアクセス形態の種類が異なるシリアルEEPROMを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルEEPROMへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、上記メモリ装置に装着された上記シリアルEEPROMの上記アクセス形態の種類を、上記シリアルEEPROMに所定のアクセスを行ってシーケンス違反が起るか否かについての上記シリアルEEPROMから得られる応答内容に基づいて判別し、上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定する構成である。
【0093】
それゆえ、余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルEEPROMを差し替えるだけで、そのEEPROMのアクセス形態の種類を自動的に判別し、制御プログラムをそのEEPROM用の制御プログラムに切り替えることのできるメモリ装置の制御方法を提供することができるという効果を奏する。
【0094】
また、上記のようにアクセス形態の種類の判別を行って、その判別結果に基づいてアクセス条件を設定するようにすれば、メモリ装置の製品出荷時にアクセス条件を固定する必要がないので、シリアルEEPROMの制御プログラムを汎用性のある仕様にすることができ、コストダウンにもつながるという効果を奏する。さらに、制御プログラムの設定ミスなどによる不具合が発生する危険性もなくなるという効果を奏する。さらに、将来的にシリアルEEPROMのメモリ拡張が行われても、新たにソフトウェアの対応を行う必要がなくなるという効果を奏する。
【0095】
さらに本発明のメモリ装置の制御方法は、以上のように、上記所定のアクセスは、上記シーケンス違反が起るか否かに応じて上記シリアルEEPROMのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスである構成である。
【0096】
それゆえ、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になるという効果を奏する。
【0097】
さらに本発明のメモリ装置の制御方法は、以上のように、上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルEEPROMへのリードを試み、上記シリアルEEPROMから上記シーケンス違反が起らないことを示す応答内容として、エラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定する構成である。
【0098】
それゆえ、正しいアクセス形態の種類を判別する途上で、正しいアクセス形態の種類に対応するワードアドレスサイズよりも大きなワードアドレスサイズに対応するアクセス形態の種類によるアクセスによって、既に書き込まれているデータが上書きされてしまうことがなく、シリアルEEPROMのデータが保護された状態でアクセス形態の種類を判別することができるという効果を奏する。
【0099】
さらに本発明のメモリ装置の制御方法は、以上のように、スレーブとしての上記シリアルEEPROMへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルEEPROMから所定時間以内に返らなければ上記エラーが発生したと判定する構成である。
【0100】
それゆえ、エラーの発生の有無を容易に判定することができるという効果を奏する。
【0101】
さらに本発明のメモリ装置の制御方法は、以上のように、正しい上記アクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認する構成である。
【0102】
それゆえ、シリアルEEPROMの容量が判明し、シリアルEEPROMを利用する際に正しくアクセスを行うことができるという効果を奏する。
【0103】
さらに本発明のメモリ装置の制御方法は、以上のように、全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合に上記シリアルEEPROMの装着エラーと判定して報知する構成である。
【0104】
それゆえ、誤って装着されたシリアルEEPROMの交換を促すことができるという効果を奏する。
【0105】
さらに本発明のメモリ装置の制御方法は、以上のように、上記所定のアクセスは、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスである構成である。
【0106】
それゆえ、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になるという効果を奏する。
【0107】
さらに本発明のメモリ装置の制御方法は、以上のように、上記シリアルEEPROMの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定する構成である。
【0108】
それゆえ、スレーブアドレスの有効および無効の判別を容易に行うことができるという効果を奏する。
【0109】
さらに本発明のメモリ装置の制御方法は、以上のように、上記メモリ装置の起動時に上記アクセス形態の種類の判別を行って判別結果を記憶させ、上記メモリ装置の使用時には上記判別結果に従って上記制御プログラムを有効に設定する構成である。
【0110】
それゆえ、シリアルEEPROMにアクセスを行うたびにアクセス形態の種類を判別せずに済むという効果を奏する。
【0111】
また、本発明のプログラムは、以上のように、前記のいずれかのメモリ装置の制御方法をコンピュータに実行させる構成である。
【0112】
それゆえ、メモリ装置の制御方法を汎用性の高いものとすることができるという効果を奏する。
【0113】
また、本発明の記録媒体は、以上のように、上記プログラムをコンピュータ読取可能に記録した構成である。
【0114】
それゆえ、メモリ装置の制御方法を実行させるプログラムをコンピュータに供給しやすくなるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るメモリ装置の制御方法を説明するフローチャートである。
【図2】メモリ装置およびそれを備えるコンピュータシステムの構成を示すブロック図である。
【図3】シリアルEEPROMの外観を示す平面図である。
【図4】図3のシリアルEEPROMの内部構成を示すブロック図である。
【図5】1バイトアドレスのシリアルEEPROMのスレーブアドレスを説明するブロック図である。
【図6】2バイトアドレスのシリアルEEPROMのスレーブアドレスを説明するブロック図である。
【図7】(a)ないし(c)は、シリアルEEPROMへのアクセス状態を説明する信号図である。
【図8】メモリ装置の起動時に行う処理を説明するフローチャートである。
【図9】メモリ装置のリード処理を説明するフローチャートである。
【図10】メモリ装置のライト処理を説明するフローチャートである。
【図11】(a)ないし(c)は、シリアルEEPROMの有効ビット数を確認する状態を説明するメモリマップ図である。
【符号の説明】
3 メモリ装置
3c EEPROM(シリアルEEPROM)
31c、32c、33c、34cEEPROM(シリアルEEPROM)
Claims (14)
- ピン配置が同じで互いにアクセス形態の種類が異なるシリアルEEPROMを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルEEPROMへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、
上記メモリ装置に装着された上記シリアルEEPROMの上記アクセス形態の種類を、上記シリアルEEPROMに所定のアクセスを行ってシーケンス違反が起るか否かについての上記シリアルEEPROMから得られる応答内容に基づいて判別し、
上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定することを特徴とするメモリ装置の制御方法。 - 上記所定のアクセスは、上記シーケンス違反が起るか否かに応じて上記シリアルEEPROMのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴とする請求項1に記載のメモリ装置の制御方法。
- 上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルEEPROMへのリードを試み、上記シリアルEEPROMから上記シーケンス違反が起らないことを示す応答内容として、エラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定することを特徴とする請求項2に記載のメモリ装置の制御方法。
- スレーブとしての上記シリアルEEPROMへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルEEPROMから所定時間以内に返らなければ上記エラーが発生したと判定することを特徴とする請求項3に記載のメモリ装置の制御方法。
- 正しい上記アクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認することを特徴とする請求項2ないし4のいずれかに記載のメモリ装置の制御方法。
- 全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合に上記シリアルEEPROMの装着エラーと判定して報知することを特徴とする請求項2ないし5のいずれかに記載のメモリ制御方法。
- 上記所定のアクセスは、さらに、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴とする請求項1ないし6のいずれかに記載のメモリ装置の制御方法。
- 上記シリアルEEPROMの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定することを特徴とする請求項7に記載のメモリ装置の制御方法。
- 上記メモリ装置の起動時に上記アクセス形態の種類の判別を行って判別結果を記憶させ、上記メモリ装置の使用時には上記判別結果に従って上記制御プログラムを有効に設定することを特徴とする請求項1ないし8のいずれかに記載のメモリ装置の制御方法。
- ピン配置が同じで互いにアクセス形態の種類が異なるシリアルEEPROMを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルEEPROMへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、
上記メモリ装置に装着された上記シリアルEEPROMの上記アクセス形態の種類を、上記シリアルEEPROMに所定のアクセスを行って上記シリアルEEPROMから得られる応答内容に基づいて判別し、
上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定し、
上記所定のアクセスは、上記シリアルEEPROMのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスであり、
上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルEEPROMへのリードを試み、上記シリアルEEPROMからエラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定し、
スレーブとしての上記シリアルEEPROMへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルEEPROMから所定時間以内に返らなければ上記エラーが発生したと判定することを特徴とするメモリ装置の制御方法。 - ピン配置が同じで互いにアクセス形態の種類が異なるシリアルEEPROMを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルEEPROMへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、
上記メモリ装置に装着された上記シリアルEEPROMの上記アクセス形態の種類を、上記シリアルEEPROMに所定のアクセスを行って上記シリアルEEPROMから得られる応答内容に基づいて判別し、
上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定し、
上記所定のアクセスは、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスであり、
上記シリアルEEPROMの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定することを特徴とするメモリ装置の制御方法。 - 上記メモリ装置はI 2 Cバスインタフェースを備えており、
上記シリアルEEPROMは上記I 2 Cバスインタフェースのスレーブとして備えられていることを特徴とする請求項1ないし11のいずれかに記載のメモリ装置の制御方法。 - 請求項1ないし12のいずれかに記載のメモリ装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
- 請求項13に記載のプログラムをコンピュータ読取可能に記録したことを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002173127A JP4083474B2 (ja) | 2002-06-13 | 2002-06-13 | メモリ装置の制御方法およびそのプログラムならびに記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002173127A JP4083474B2 (ja) | 2002-06-13 | 2002-06-13 | メモリ装置の制御方法およびそのプログラムならびに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004021421A JP2004021421A (ja) | 2004-01-22 |
JP4083474B2 true JP4083474B2 (ja) | 2008-04-30 |
Family
ID=31172507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002173127A Expired - Fee Related JP4083474B2 (ja) | 2002-06-13 | 2002-06-13 | メモリ装置の制御方法およびそのプログラムならびに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4083474B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4974650B2 (ja) | 2006-11-10 | 2012-07-11 | ペンタックスリコーイメージング株式会社 | 交換レンズ及びレンズデータ通信方法 |
KR101014573B1 (ko) * | 2007-06-21 | 2011-02-16 | 주식회사 코아로직 | 메모리 액세스 장치, 방법 및 그 방법을 실행하기 위한프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 |
JP2017034486A (ja) | 2015-07-31 | 2017-02-09 | ソニー株式会社 | 情報処理装置、および情報処理方法、固体撮像素子および固体撮像素子の動作方法、プログラム、並びに電子機器 |
JP7273641B2 (ja) * | 2019-07-20 | 2023-05-15 | シャープ株式会社 | 変換ソケット、誤挿入検出装置及び誤挿入検出方法 |
-
2002
- 2002-06-13 JP JP2002173127A patent/JP4083474B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004021421A (ja) | 2004-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5535547B2 (ja) | セキュアメモリインターフェース | |
KR100375217B1 (ko) | 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러 | |
US7890690B2 (en) | System and method for dual-ported flash memory | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
US7908424B2 (en) | Memory card and data rewriting method | |
US20090019325A1 (en) | Memory device, supporting method for error correction thereof, supporting program thereof, memory card, circuit board and electronic apparatus | |
JP3519954B2 (ja) | チップイネーブル信号生成回路及びメモリ装置 | |
US8914602B2 (en) | Display controller having an embedded non-volatile memory divided into a program code block and a data block and method for updating parameters of the same | |
JP3943277B2 (ja) | マイクロコンピュータ及び電子機器 | |
US20030084232A1 (en) | Device and method capable of changing codes of micro-controller | |
JP4083474B2 (ja) | メモリ装置の制御方法およびそのプログラムならびに記録媒体 | |
JP2002015584A (ja) | 不揮発性メモリのリードプロテクト回路 | |
JP4471947B2 (ja) | データ処理装置及びデータ処理方法 | |
US20080114901A1 (en) | Serial peripheral interface (spi) control device, spi system and method of determining a spi device | |
US20070208929A1 (en) | Device information managements systems and methods | |
WO1996038790A1 (en) | A system and method for patching microcode during the debugging of a processor | |
JPH06266614A (ja) | メモリ制御方法 | |
US6889299B1 (en) | Semiconductor integrated circuit | |
JP4324149B2 (ja) | エミュレータ及びそれを用いた開発支援システム | |
JP2002366433A (ja) | キャッシュメモリ制御装置およびプロセッサ | |
JP3912447B2 (ja) | メモリシステムおよび外部不揮発メモリの使用方法 | |
TWI406175B (zh) | 記憶卡以及用於記憶卡之方法 | |
JPH11328089A (ja) | Pciバスインタフェース用デバイスにおけるid情報書き込み回路 | |
CN116361233A (zh) | 一种微控制器 | |
US20050278466A1 (en) | Conversion apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070306 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070424 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070904 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080213 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |