目录
一.EEPROM简介
PROM:只能写一次数据;
ROM:只读不写;
EPROM:可写可擦除,但是需要固定编辑器对其改写。
EEPROM:(Electrically Erasable Programmable Read Only Memory)带电可擦可编程只读存储器。
本实验中用到的启明星开发板中所带的EEPROM是是 ATMEL 公司生产的 AT24C 系列的 AT24C64 这一型号,AT24C64 具有高可靠性,可对所存数据保存 100 年,并可多次擦写,擦写次数达一百万次。AT24C64 采用两线串行接口的双向数据传输协议——I2C 协议实现读写操作。
二.IIC协议
2.1物理层
I2C 即 Inter-Integrated Circuit(集成电路总线),是一种简单、双向、二线制总线标准,多用于主机和从机在数据量不大且传输距离短的场合下的主从通信。I2C 总线由数据线 SDA(双向) 和时钟线 SCL 构成通信线路,如下图所示。I2C 器件一般采用开漏结构与总线相连。开漏结构指的是低电平时照常拉低,高电平时由上拉电阻拉至高电平。
2.2协议层
2.2.1整体时序协议
SCL是时钟线,SDA是数据线。
当未传输数据时,SCL和SDA均为高电平,因为会被上拉电阻拉至高电平。
当传输数据时,当SCL中的CLK为高电平时,不允许SDA上的数据发生变化;当SCL中的CLK为低电平时,允许SDA上的数据发生变化。
2.2.2具体时序图
首先我们需要知道两点,第一:SCL,SDA未传输数据为高电平;第二:SCL为高电平的时候SDA数据不能发生变化,但是,两点除外,起始信号和停止信号。
当起始信号(低电平)来临时,在1~8个时钟的低电平处改变传输数据进行发送,当第9个clk的高电平下,SDA为低电平时代表1~8个clk下传输的8bit数据是有效完成的,随后发送停止信号。
2.3IIC器件地址
器件地址相当于从器件的专属ID号(这里假设这里EEPROM中的A2,A1,A0全为0)如2.1中的图所示,当主器件(ZYNQ)发出在某个从器件(EEPROM、RTC)读/写指令时,会指定器件地址,比如主器件指定器件地址为1010000,发送到从器件上,而EEPROM将A2,A1,A0传给IIC,IIC整合成1010000,回传给主器件的器件地址也为1010000,则此时主从器件就连接成功,下一步主器件就可以在从器件上进行读写数据了。
一句话,器件地址就是EEPROM的身份证,找到身份证就能指定这个人了 ,同理可以指定从器件。
EEPROM引脚图
2.4IIC读写操作种类
连续写操作(页写):例如指定从第32页开始写,从第一行写到第32行结束,若此时还没来停止信号,则会重新回到第32页的第1行开始写,一直循环到停止信号来临。
顺序读操作:例如EEPROM只有1000个地址,指定从第100个地址开始读,若停止信号没来,则继续读一直读到第1000行地址,然后返回第100行继续开始读。
2.5IIC读写时序
2.5.1单次写时序
起始信号:当SCL为高时,SDA来低电平,代表主机发送起始信号;