基于FPGA实现IIC接口(EEPROM)

1 IIC应用领域
在嵌入式系统开发过程中,IIC占据非常重要的地位。IIC通讯接口能到搭载较多的从设备,从而实现与多个从设备进行通讯,在板级通讯中是一种比较常用的通讯接口。笔者通过IIC接口实现FPGA对AT24C08的读写。AT24C08是一款内存为8Kbits的串行EEPROM,内部包含1024个8位字节,供电电源2.7V到5.5V,支持标准IIC通讯协议。对于FPGA来说,内部是许多逻辑单元,并没有集成IIC接口;因此 ,需要开发IIC逻辑模块。
2 IIC总线简介
串行总线广泛应用与板级间的通信,低速的三种串行总线接口协议有UART,SPI和IIC,笔者这里只描述IIC总线。IIC总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在处理器与被控IC之间,IC与IC之间进行双向传送,高速IIC总线一般可达400Kbps以上。
IIC总线在传输过程中有三种信号,分别是:开始信号,结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高定平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。处理器向受控单元发出一个信号后,等待受控单元发出一个应答信号,处理器接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,判断为受控单元出现故障。
3 IIC逻辑设计
基于FPGA实现IIC接口设计设计较为简单。根据读/写时序图编写Verilog代码即可。图1为写时序图,图2为读时序图,图3为开始和结束时序图。
在这里插入图片描述
图1 IIC写时序
在这里插入图片描述
图2 IIC写时序
在这里插入图片描述
图3 IIC开始和结束时序
4 IIC硬件测试
FPGA通过VIO虚拟按键控制EEPROM读写操作,测试流程为如下:
1)向EEPROM某一固定地址写入一个字节数据(01_55),然后掉电。
2)重新上电,读取EEPROM某一固定地址(01),该地址数据读出值为55。
4 IIC结束语
基于FPGA实现IIC接口控制EEPROM同一地址(01),通过调试波形对比读写数据一致,证明IIC逻辑功能正确且EEPROM掉电不丢数据。如果对IIC源代码或者仿真代码感兴趣,请发邮件沟通:[email protected]

猜你喜欢

转载自blog.csdn.net/m0_46498597/article/details/105392653