0 引 言
在实际的应用中,为了保护现场,经常需要将系统断电之前的工作状态与重要运行数据保存在非易失存贮器中,以便在下次开机时,能恢复到原来的工作状态。针对这种保存的数据量不大和存储速度要求不高的特点,可采用“NiosⅡ+AT24C02"设计方案进行设计。本文在讨论了I2C通信协议的基础上,利用FPGA技术,设计了NiosⅡ与AT24C02”之间进行通信的接口电路。本接口电路能产生基于I2C通信协议的读写操作时序,成功实现了对AT24C02的读写功能。由于所有的时序,都是由硬件产生,因此,本设计具有控制简单、成本低廉等特点。
1 AT24C02A芯片简介
AT24C02A芯片,是由ATMEL公司生产的基于I2C总线型的串行电可擦除的可编程存储器(EEPROM),内部含有2Kbit的存储单元,是通过二根线(SDL与SCL)与外部I2C控制器交换数据。
AT24C02A芯片的主要特性如下:
低电压和标准电压操作
-2.7(VCC=2.7V至5.5V)
-1.8(VCC=1.8V至5.5V)
片内存储容量为256×8 bit(2K)
2线串行接口
施密特触发器,过滤输入的噪声抑制
双向数据传输协议
100 kHz(1.8V、2.5V、2.7V)和400 kHz(5V)兼容性
写保护引脚的硬件数据保护。
2 I2C通信协议
2.1 I2C通信协议简介
AT24C02A器件采用成本低廉的I2C(Inter integrat-ed Circuit)总线通信协议,即利用串行数据线(SDA)和串行时钟线(SCL)成功实现了主模块与从模块之间数据通信,图1为I2C通信协议的时序图。由图可知,完成一次数据的传输必须要经历启动、数据传输与停止三个基本的过程:当串行时钟线(SCL)为高电平时,串行数据线(SDA)从高电平变成低电平,“启动”I2C通信;当串行时钟线(SCL)为高电平时,串行数据线(SDA)从低电平变成高电平,“停止”I2C通信;在数据的传输过程中,串行数据线(SDA)上的数据的改变,只能在串行时钟线(SCL)为低电平期间完成。