串行E2PROM的类型及应用(上)
作者:万 琳
串行E2PROM是可在线电擦除和电写入的存储器,具有体积小、接口简单、数据保存可靠、可在线改写、功耗低等特点,而且为低电压写入,在单片机系统中应用十分普遍。
串行E2PROM按总线形式分为三种,即I2C总线、Microwire总线及SPI总线三种。本文将以Microchip公司的产品为例对以上三种串行E2PROM进行介绍。
一、I2C总线型
I2C总线,是INTER INTEGRATED CIRCUIT
BUS的缩写,即“内部集成电路总线”。I2C总线采用时钟(SCL)和数据(SDA)两根线进行数据传输,接口十分简单。Microchip公司的24XX系列串行E2PROM存储容量从128位(16×8)至256k位(32k×8),采用I2C总线结构。24XX中,XX为电源电压范围。
1?引脚
图1是24AA00/24LC00/24C00型128位I2C总线串行E2PROM的引脚图。
SDA是串行数据脚。该脚为双向脚,漏极开路,用于地址、数据的输入和数据的输出,使用时需加上拉电阻。
SCL是时钟脚。该脚为器件数据传输的同步时钟信号。
SDA和SCL脚均为施密特触发输入,并有滤波电路,可有效抑制噪声尖峰信号,保证在总线噪声严重时器件仍能正常工作。
在单片机系统中,总线受单片机控制。单片机产生串行时钟(SCL),控制总线的存取,发送STRAT和STOP信号。
2?总线协议
仅当总线不忙(数据和时钟均保持高电平)时方能启动数据传输。在数据传输期间,时钟(SCL)为高电平时数据(SDA)必须保持不变。在SCL为高电平时数据线(SDA)从高电平跳变到低电平,为开始数据传输(START)的条件,开始数据传输条件后所有的命令有效;SCL为高电平时,数据(SDA)从低电平跳变到高电平,为停止数据传输(STOP)的条件,停止数据传输条件后所有的操作结束。开始数据传输START后、停止数据传输STOP前,SCL高电平期间,SDA上为有效数据。字节写入时,每写完一个字节,送一位传送结束信号ACK,直至STOP;读出时,每读完一个字节,送一位传送结束信号ACK,但STOP前一位结束时不送ACK信号。
3?器件寻址
START后,单片机发送一个控制字,该控制字包括Start位(S)、受控地址(7位,对24XX00来说前四位为1010,后三位无关系)、读写(R/W)选择位(“1”为读,“0”为写)及传送结束位ACK。24XX00的控制字格式如下:
S 1 0 1 0 X X X R/W ACK
24XX00随时监视总线上是否为有效地址,若受控地址正确且器件未处在编程方式下,则产生传送结束位ACK。
4?写操作
单片机送出开始信号后,接着送器件码(7位)、R/W位,表示ACK位后面为待写入数据字节的字地址和待写入数据字节,然后结束一个字节的写入。即S+写控制字(R/W位为+ACK+字地址+ACK+写入数据+ACK+STOP。
5?读操作
读操作有三种,读当前地址的内容、读指定地址的内容、读指定起始地址后的若干字节的内容。
读当前地址的内容为:S+读控制字(R/W位为+ACK+读出数据+no ACK+STOP
读指定地址的内容为:S+写控制字(R/W位为+ACK+写入数据+ACK+读控制字(R/W位为+ACK+读出数据+no
ACK+STOP
读指定起始地址后的若干字节的内容为:S+写控制字(R/W位为+ACK+写入数据+ACK+读控制字(R/W位为+ACK+读出数据(1)+ACK+……+读出数据(n+x)+noACK+STOP
24XX系列串行E2PROM存储芯片与单片机硬件接口只有SCL和SDA两根线,非常简单。