论文部分内容阅读
1引言
电可擦除、可编程只读存储器(Elec-ricallyErasableProgrammableRead-OnlyMemory,以下简称为EEPROM),具有存取速度快,可以随机访问,并在掉电时,不会丢失任何信息等优点。对EEPROM进行编程时,无须将它从原插座中取出,擦除信息方便,不需任何条件。由于它本身所具有的普通存储芯片没有的优点,因此,有一定应用前景。
2EEPROM的硬件分析
EEPROM的擦除不需要借助于其他设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入。EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。借助于EEPROM芯片的双电压特性,可以使BIOS具有良好的防毒功能,可以方便地升级和控制。
3EEPROM设计原理与指令
(1)起始条件:如果CS和DI引脚在CLK出现首个上升沿的时候同时为高电平,器件就视之为起始位。
(2)数据输入/数据输出(DI/DO):数据输入引脚和数据输出引脚可以连接在一起。驱动器电流源输出能力越强,数据输出引脚上的电压就越高。为了限制电流,应该在DI引脚和DO引脚之间串接一个电阻。
(3)数据保护:如果VCC低于1.5V的典型电压值或3.8V的典型电压值,所有的操作模式都将被禁止。在正常操作过程中,EWEN和EWDS命令可以提供额外保护以避免发生意外编程操作。
(4)擦除(ERASE):ERASE指令使指定地址的所有数据位都强行设置为逻辑1状态。DO引脚为逻辑0表明编程仍在进行。DO引脚为逻辑1表明指定地址的寄存器已被清空,器件准备好执行下一条指令。
(5)全部擦除(ERAL):全部擦除(ERAL)指令会把整个存储器阵列清空,即设置为逻辑1状态。
(6)擦写禁止和使能(EWDS/EWEN):93XX系列器件上电后处于擦写禁止(EWDS)状态。执行EWEN指令,将一直保持编程使能,直至执行EWDS指令或器件不连接VCC信号。EWDS指令可用来禁止所有的擦写功能。
(7)读(READ):READ指令把所寻址的存储单元中数据串行输出到DO引脚。在CS保持高电平期间可进行连续读取操作。存储器上的数据将会自动周期性地转移到下一个寄存器中,然后依次输出。
(8)写(WRITE):WRITE指令执行完后,将在指定的地址内写入8位(如果ORG为低电平或A版器件)或16位数据(如果ORG为高电平或B版器件)
(9)全部写(WRAL):全部写(WRAL)指令将会在整个存储器阵列中写入命令中所指定的数据。
4EEPROM的设计过程
该EEPROM占用4个端口:
(1)SK310
(2)CS311
(3)DI312
(4)DO313
本驱动是运行在用户空间的,实现了EEPROM提供的6个功能:读一个单元、写一个单元、擦除一个单元,擦除所有单元、擦除/写使能、擦除/写禁止。
(1)读:先串行地向EEPROM的DI端口写入读的命令代码110,接着写入想读的单元的地址,再使用inb()函数就可以读出相应单元中的数据。
(2)写:先串行地向EEPROM的DI端口写入写的命令代码,接着写入想写的单元的地址,最后,写入想写的数据,接着使用outb()向EEPROM中写数据。由于EEPROM的速度一般比较慢,不能立即写下一个数据,必须等待设备已经写完一个数据才能继续写下一个数据。可以通过读取端口DO来判断比较设备是处于就绪还是忙状态。在写之前必须先使擦除/写使能打开。
(3)擦除:擦除有两种情况,一种是擦除某一个具体的单元,擦除的过程是先向EEPROM写入ERASE的命令代码,接着写入要擦除的单元地址,EEPROM就会执行擦除的动作,单元擦除后的值默认为0xFF。另一种情况是擦除所有的单元,只需要向设备发出ERAL的命令就可以了,设备会自动地擦除所有单元。
(4)用户接口:给用户提供了六个功能函数:
a.读
提供了两个读函数,分别实现读取一个字节的数据和多个连续单元的数据。
intread_eeprom_b(intindex,unsignedchar*value)
intread_eeprom_a(intstart,intcount,unsignedchar*buf)
b.写
与读一样,同样有两个接口函数,分别实现写一个字节数据和多个字节数据。
intwrite_eeprom_b(intindex,unsignedcharvalue)
intwrite_eeprom_a(intstart,intcount,unsignedchar*buf)
c.擦除
擦除也有两个函数接口,一个为擦除某个单元,一个为擦除所有单元。
interase_eeprom_b(intindex)
interase_eeprom_all()
5EEPROM的测试
通过debug的d命令可以很方便地观测到存入到EEPROM中的数据。在C:dos622目录下直接调用Debug程序(命令格式为:-dd000:0000,ffff)就可以观测到EEPROM中各单元的值。
电可擦除、可编程只读存储器(Elec-ricallyErasableProgrammableRead-OnlyMemory,以下简称为EEPROM),具有存取速度快,可以随机访问,并在掉电时,不会丢失任何信息等优点。对EEPROM进行编程时,无须将它从原插座中取出,擦除信息方便,不需任何条件。由于它本身所具有的普通存储芯片没有的优点,因此,有一定应用前景。
2EEPROM的硬件分析
EEPROM的擦除不需要借助于其他设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入。EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。借助于EEPROM芯片的双电压特性,可以使BIOS具有良好的防毒功能,可以方便地升级和控制。
3EEPROM设计原理与指令
(1)起始条件:如果CS和DI引脚在CLK出现首个上升沿的时候同时为高电平,器件就视之为起始位。
(2)数据输入/数据输出(DI/DO):数据输入引脚和数据输出引脚可以连接在一起。驱动器电流源输出能力越强,数据输出引脚上的电压就越高。为了限制电流,应该在DI引脚和DO引脚之间串接一个电阻。
(3)数据保护:如果VCC低于1.5V的典型电压值或3.8V的典型电压值,所有的操作模式都将被禁止。在正常操作过程中,EWEN和EWDS命令可以提供额外保护以避免发生意外编程操作。
(4)擦除(ERASE):ERASE指令使指定地址的所有数据位都强行设置为逻辑1状态。DO引脚为逻辑0表明编程仍在进行。DO引脚为逻辑1表明指定地址的寄存器已被清空,器件准备好执行下一条指令。
(5)全部擦除(ERAL):全部擦除(ERAL)指令会把整个存储器阵列清空,即设置为逻辑1状态。
(6)擦写禁止和使能(EWDS/EWEN):93XX系列器件上电后处于擦写禁止(EWDS)状态。执行EWEN指令,将一直保持编程使能,直至执行EWDS指令或器件不连接VCC信号。EWDS指令可用来禁止所有的擦写功能。
(7)读(READ):READ指令把所寻址的存储单元中数据串行输出到DO引脚。在CS保持高电平期间可进行连续读取操作。存储器上的数据将会自动周期性地转移到下一个寄存器中,然后依次输出。
(8)写(WRITE):WRITE指令执行完后,将在指定的地址内写入8位(如果ORG为低电平或A版器件)或16位数据(如果ORG为高电平或B版器件)
(9)全部写(WRAL):全部写(WRAL)指令将会在整个存储器阵列中写入命令中所指定的数据。
4EEPROM的设计过程
该EEPROM占用4个端口:
(1)SK310
(2)CS311
(3)DI312
(4)DO313
本驱动是运行在用户空间的,实现了EEPROM提供的6个功能:读一个单元、写一个单元、擦除一个单元,擦除所有单元、擦除/写使能、擦除/写禁止。
(1)读:先串行地向EEPROM的DI端口写入读的命令代码110,接着写入想读的单元的地址,再使用inb()函数就可以读出相应单元中的数据。
(2)写:先串行地向EEPROM的DI端口写入写的命令代码,接着写入想写的单元的地址,最后,写入想写的数据,接着使用outb()向EEPROM中写数据。由于EEPROM的速度一般比较慢,不能立即写下一个数据,必须等待设备已经写完一个数据才能继续写下一个数据。可以通过读取端口DO来判断比较设备是处于就绪还是忙状态。在写之前必须先使擦除/写使能打开。
(3)擦除:擦除有两种情况,一种是擦除某一个具体的单元,擦除的过程是先向EEPROM写入ERASE的命令代码,接着写入要擦除的单元地址,EEPROM就会执行擦除的动作,单元擦除后的值默认为0xFF。另一种情况是擦除所有的单元,只需要向设备发出ERAL的命令就可以了,设备会自动地擦除所有单元。
(4)用户接口:给用户提供了六个功能函数:
a.读
提供了两个读函数,分别实现读取一个字节的数据和多个连续单元的数据。
intread_eeprom_b(intindex,unsignedchar*value)
intread_eeprom_a(intstart,intcount,unsignedchar*buf)
b.写
与读一样,同样有两个接口函数,分别实现写一个字节数据和多个字节数据。
intwrite_eeprom_b(intindex,unsignedcharvalue)
intwrite_eeprom_a(intstart,intcount,unsignedchar*buf)
c.擦除
擦除也有两个函数接口,一个为擦除某个单元,一个为擦除所有单元。
interase_eeprom_b(intindex)
interase_eeprom_all()
5EEPROM的测试
通过debug的d命令可以很方便地观测到存入到EEPROM中的数据。在C:dos622目录下直接调用Debug程序(命令格式为:-dd000:0000,ffff)就可以观测到EEPROM中各单元的值。