(Electrically Erasable and Programmable Read Only Memory)の略で、コンピュータなどの電子機器の設定情報など、電源をOFFしても保持しておきたいデータの記憶用に使用されます。
1.EEPROMとは
EEPROMは使う側が内容(データ)の書き換え可能です。印加電圧を読み込みの時よりも高電圧を印加する事で、書き込んだ(記憶している)内容(データ)を何回も記憶内容の消去・書込みが可能です。高電圧の発生は最近のEEPROMではチップ内で発生する回路を内蔵していますので専用の電源を用意する必要は無いです。
初期頃のEEPROMは1バイト単位での操作の為、非常に処理時間が遅かったですが、近年では多バイトページ操作が可能になったので処理時間を早くすることが可能になりました。また初期のEEPROMは書き換え可能回数が非常に少なく、数十回、数百回、数千回と徐々に書き換え可能回数が延びました。近年では百万回の書き込みが可能なとなっています。
制御機器などに内蔵するEEPROMが頻繁に書き換えられるような場合、このEEPROMの寿命は設計時に考慮すべき重要な問題となります。EEPROMが記憶内容の書き換えができ、電源を切っても内容が消えないという費用に便利なメモリですが、主記憶装置(俗にいうメインメモリ)には使われずに主に設定情報(パラメータ)などの格納などに使われているのは、応答速度と書き換え寿命の影響です。
1-1メモリの分類
コンピュータなどで使用する半導体のメモリは、RAMとROMに分かれます。
・RAMは一般的に揮発性ですので、RAMに保存されたデータはコンピュータやそのシステムがシャットダウンまたは再起動すると、メモリのデータは消えてしまいます。
コンピュータなどの一時的な作業用などの目的に使用されます。
・ROM(不揮発性)一般的にROMは読み出し専用メモリで不揮発性の特徴を持っています。不揮発性とは、メモリの電源を切っても内容が消えたりしないメモリの事です、すなわちコンピュータの電源を切っても内容を記憶させておきたい時に使用します。
1-2 ROMの種類
・マスクROM:読み出し専用メモリ。使う側で消去したり・書込みは出来ません。
・PROM:読み出し専用メモリ。使う側で消去したり・書込みする事が可能。
1-3 PROMの種類
・書込み可能なROMの総称を言います。
①OTP ROM:一度だけ書込みすることができ、消去や上書きする事が出来ません。
②EPORM:紫外線の照射でデータを消去する事が出来て、書き換えることが出来ます。
③EEPROM:電気的にデータを消去する事が出来て、書き換える事が出来ます。
④フラッシュメモリ:EEPROMの一種で、EEPROMを更に発展させたもので、ブロック単位 でデータを消去して書き換える事が出来ます。
*EEPROMは不揮発性メモリのPROMの一種です。
2.EEPROMの種類(タイプ)
仕様の違いでシリアルタイプ・パラレルタイプに分かれます。
2-1シリアルバスタイプ
シリアルバスタイプのEEPROMでよく採用されているバス規格としては、SPI、I2C、Microwire等があります。これらのバス規格の信号線は2本から4本でありますので、EEPROMチップも8端子程度で済むので小型のパッケージになります。
シリアルEEPROMは一般に【オペコード・フェーズ】【アドレス・フェーズ】【データ・フェーズ】の三つのフェーズで構成されます。
オペコードは通常はEEPROMチップの入力ピンに最初に入力される8ビットの信号です、次にそれに続いて8ビットから24ビット(チップの記憶容量で決まります)のアドレスを指定する信号、その後に(読み取った、あるいは書き込むべき)データ信号が制御バス上を流れます。
オペコードはEEPROMチップ毎に決まっており、それによって操作の種類を指定する。一例ですがSPIの場合、次のような命令が一般に使われます。
・書き込みイネーブル (Write Enable, WREN)
・書き込みディセーブル (Write Disable, WRDI)
・ステータスレジスタ読み取り (Read Status Register, RDSR)
・ステータスレジスタ書き込み (Write Status Register, WRSR)
・データ読み取り (Read Data, READ)
・データ書き込み (Write Data, WRITE)
・一部のEEPROMでは他に次のような命令をサポートしている。
・プログラム (Program)
・セクタ消去 (Sector Erase)
・全消去 (Chip Erase)
シリアルタイプの場合「データ読み取り」「書データき込み」を行う際に一定の手順を行う必要が有りますので、外的要因(外来ノイズ・電源電圧変動)などで一定の手順を行う事ができなければ「データ読み出しエラー」「データ書き込みエラー」とエラー処理になり、間違ったデータを書き込んだり、間違ったデータを読み出したりする確率が低くなる点は大きな利点です。
2-2 パラレルバスタイプ
パラレルEEPROMチップは一般には8個(8ビット)のデータ端子と記憶容量に対応したアドレス端子を持ちます。チップセレクト端子と書き込み保護端子も持っていることがほとんどです。一部のマイクロコントローラはパラレルEEPROMを内蔵しているものもあります。
パラレルEEPROMの操作はシリアルタイプに比べれば単純で高速ですが、端子数が多いので(24PINかそれ以上)チップの占める面積も大きくなり更に制御基板上での配線(パターン)の面積も大きくなります。このためシリアルタイプやフラッシュメモリに比べて敬遠される傾向にあるそうです。
パラレルタイプも「読み取り」「書き込み」の際に一定の手順が必要ですが、「読み取り」「書き込み」の際の「DATA」のセットの際に外的要因(外来ノイズ・電源電圧変動)をうけて本来とは違った「DATA」に化けると正しい「読み取り」「書き込み」が出来なくなる事が有ります。
2-3 シリアルバスの種類(代表的な方式について)
①I2C(アイツーシ)
I2Cの使用例として、図の様な構成で1個のマスター(コンピュータなど)と1個のスレーブ又は複数のスレーブを、SCLとSDAという2本の信号線で接続し、常にマスターからスレーブに対してクロック信号(SCL)を基準にした(クロック同期型)
データ信号(SDA)で信号(データ)のやり取りを行います。
図の様に複数のスレーブを使用する場合、それぞれのスレーブにはアドレスを割り付けて識別して使用します。 例えば図の様にスレーブ1(温度センサ)をアドレス01 スレーブ2(湿度センサ)をアドレス02の様に割り付けます。I2Cの場合SCL・SDAの2本の信号線で全ての通信を行います。すなわちSCL・SDAともに複数のスレーブと接続する事になるので各スレーブは自分のアドレスに対しての通信(信号)のみに応答し自分以外のアドレスの通信(信号)には応答しない仕様により、正しくデータのやり取りを行っています。
I2Cの出力端子はオープンドレインとなっているので、図の様にプルアップ抵抗を取り付ける必要があります。
②SPI(エスピーアイ)
使用例としてシリアル・クロック(SCLK)・データ入力(MOSI)・データ出力(MISO)・チップ・セレクト(CS)4本の図の様な構成で1個のマスター(コンピュータなど)と1個のスレーブ又は複数のスレーブを4本の信号線で接続します。
クロックの立ち上がり(立ち下がり)エッジに同期(クロック同期型)して通信を行います。
そして、通信をする場合には、マスターとスレーブというように役割を分けます。クロックは必ずマスターから出力され、入力と出力はクロックに同期して行われます。
マスター1つに対しスレーブは複数接続できますが、その場合、マスター側には接続するスレーブの数だけCSの信号線を用意する必要があるので配線数がふえます。
③Microwire(マイクロワイヤ)
ナショナル セミコンダクター社が定義した3Mbps [全二重] シリアル3線式インターフェイス規格です。 マイクロワイヤの仕様は、基本的にSPIの仕様のサブセットです。
SPI同様にスレーブの数だけのCSの信号線を用意する必要がある方式です。
(*)サブセット:ある全体的なものの一部。ソフトウエアの限定機能版や,ある規格を基にして設計された限定的な規格など。の意味として使われる用語です。