构建基于24XX系列存储器通用函数库的研究

2015-04-24 07:49唐玉兵秦祖铭
时代农机 2015年4期
关键词:低电平高电平存储器

唐玉兵,秦祖铭

(泸州职业技术学院 电子工程系,四川 泸州 646005)

构建基于24XX系列存储器通用函数库的研究

唐玉兵,秦祖铭

(泸州职业技术学院 电子工程系,四川 泸州 646005)

24XX系列EEPROM存储器是目前电子产品开发中使用频率较高的存储设备,文章通过构建基于该存储器的驱动函数和应用函数库,既可以提高产品开发速度,又可以提升存储器的读写稳定性。

i2c EEPROM;存储器;函数库

24系列EEPROM存储器是现代电子产品中使用非常广泛的一种基于I2C协议的存储器。24XX系列存储器容量多种多样,从24C01的128字节到24C512的64K都有,可以满足不同产品的需要。笔者产品开发时也经常用到24系列存储器,本文旨在构建通用的24XX系列存储器函数库,不管程序大小,均可方便使用,以节约下次用到该类存储器时的开发时间。

函数库构建主要包括两部分内容,一部分为存储器的基本I2C驱动函数,另一部分则为使用存储器时的应用函数。

1 24XX系列存储器通用I2C驱动函数的构建

(1)24XX存储器的I2C协议时序图。I2C驱动程序的编写需要仔细阅读I2C协议的时序图,如下图1所示。根据时序图,按照时序要求把SCL和SDA分别置高电平或者低电平,即可完成存储器的操作,语言用汇编语言或者C语言均可。时序中包含了启动时序,读写时序和结束时序。

(2)I2C开始函数i2c_start。参见图1中的start condition部分,先置SCL和SDA信号为高电平,延时一段时间后SDA置低电平,SCL再置低电平即可。根据时序,可以写出下列启动函数,I2C结束函数也类似。函数操作流程内容如下:

SDA=1;SCL=1;SDA=0;SCL=0;

(3)I2C写入函数i2c_sendbyte。参见图1中的SDA INPUT部分,此时需要数据SDA处于稳定状态,当SCL信号由高电平变为低电平时,把SDA信号的电平状态写入I2C存储器。根据时序可以写出下列写入一个字节的函数,读取函数的写法参见时序图也类似。函数操作流程内容如下:

2 24XX系列存储器通用应用函数库的构建

该存储器的应用函数库构建,主要为了满足不同产品开发的需求,根据读写方向,一般有以下几种情况:从存储器读取到内存;从内存写入存储器;从存储器一个地址写入存储器的另一个地址。根据数据类型,读写操作的数据可以是字节、字、双字、字符串和任意用户自定义数据类型。

基于这种用途,该应用函数库主要构建下列几个核心函数,即:字节读取函数i2c_readbyte,字节写入函数i2c_writebyte,字读取函数i2c_readword,字写入函数i2c_writeword,字符串读取函数i2c_readstr,字符串写入函数i2c_writestr,存储器存储区域初始化函数i2c_setn,存储器块数据读出到内存函数i2c_copytomem内存块写入存储器函数i2c_copyfrommem,存储器片内复制函数i2c_copy。下面选取部分函数构建情况作以说明。

(1)读取字节函数。24系列存储器的读取包括顺序读取和随机读取两种。按照容量不同,读取有区别,24C02和24C01容量不大于256字节,操作的地址为8位;24C04及其以上,容量大于256字节,无法用8位地址,用的是16位地址操作。根据读取存储器的操作流程,可以写出24C04以上类型的读取函数。函数操作流程内容如下:

图1 I2C协议时序图

24C04以下类型采用8位地址操作,在编写随机读取函数时,只需要把函数中分两次8位写入的地址,改为写入一次8位地址即可。

(2)存储器的页操作,为了提升存储器的读写速度,24xx系列大容量存储器支持页操作,一次可以操作64或者128字节。存储器页写入函数,对于写入大量数据可以大大地提高操作速度。对于一片存储区域,分三段,开始和结束时的不满64字节直接写入,中间部分按照每次64字节写入。函数操作流程内容如下:

3 结语

24系列eeprom存储器在产品开发时使用率很高,通过对24系列函数库的构建,可以大大提升开发速度,而且可以提升存储器读写稳定性。对该产品应用编程有一定的指导意义。

A Research on the Establishment of the Universal Function Library of the Memory of 24XX series

TANG Yu-bing,QIN Zhu-ming
(Department ofElectronic Engineering,Luzhou Vocational and Technical College,Luzhou,Sichuan 646005,China).

EEPROM memory of 24XX series is a memory device frequently applied in the development of electronic products,in this paper,the driving function library and application function library directing at this memory were created, which would not only enhance the development speed,but also improve memory’s read-write stability.

i2c EEPROM;memory;function library

TP333

A

2095-980X(2015)04-0043-02

2015-02-15

唐玉兵(1979-),男,四川宜宾人,大学本科,讲师,主要研究方向:嵌入式开发。

猜你喜欢
低电平高电平存储器
一种基于FPGA的PWM防错输出控制电路
静态随机存储器在轨自检算法
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
浅谈物理电路与数字电路
PDM 1kW中波广播发射机保护电路分析
15-MeV电子直线加速器的低电平系统
存储器——安格尔(墨西哥)▲
基于Nand Flash的高速存储器结构设计
集成电路静态参数测试