二线制I2C CMOS串行EEPROM

2018-04-27  本文已影响0人  li_li_li_1202

二线制I2C CMOS串行EEPROM是一种采用CMOS工艺制成的串行可用电擦除可编程随机读写存储器。

1、I2C总线特征介绍

I2C(Inter Integrated Circuit)双向二进制总线,简而言之就是有两根线。一根是数据线(sda),另一根是时钟线(scl)。

1.1 EEPROM的写入和读出方式

串行EEPROM一般具有两种写入方式:一种是字节写入方式;一种是页写入方式。允许在一个写周期内对一个字节到一页的若干个字节进行编程写入。
为了程序的简单起见,我们这里只讨论串行EEPROM的一个字节的写入和读出方式。

1.2 写操作

EEPROM的写操作(字节编程方式):通过读写控制器把一个字节数据发送到EEPROM中指定地址的存储单元。过程如下:EEPROM读写控制器发出启动信号,紧跟着是8位的控制字,然后接收到一个应答信号,接着是EEPROM存储单元的地址,然后接收到一个应答信号,接着是要写入的8位数据,然后接收到一个应答信号,便产生停止信号。


字节写入帧格式.png 8bit的控制字.png

在这里我还是想再次强调一下,sda上的应答信号有效时是低电平,非应答信号是高电平。sda是双向的,在进行数据的写入时,应答信号是接收到的,是输入信号;在进行控制字、地址和数据的写入时,是输出信号。深入理解sda上的数据是怎样来的是十分重要的,必须要彻底理清自己的思路才能着手写代码,要不然会十分混乱!

1.3 读操作

EEPROM的读操作:通过读写控制器读取EEPROM中指定地址的存储单元中的一个字节数据。串行EEPROM的读操作分为两步进行,读写控制器发送一个启动信号,紧接着是控制字,然后接收到一个应答信号,接着是EEPROM存储单元指定地址,然后接收到一个应答信号,再接着发送一个启动信号,紧接着是控制字,接收应答信号,读出数据,接收非应答信号,最后发出停止信号。

读指定地址存储单元的数据帧格式.png
这里要强调一下,在读操作进行时,在读出数据时,sda是输出端口并且接收一个非应答信号。
小结:充分了解I2C总线协议是很必要的,特别是对sda这个双向端口,何时是输出端何时是输入端更是对设计有着重要的影响。把握住全局,理清设计思路才能写出优秀的代码。下面,我们就EEPROM 的Verilog HDL程序进行一个专题的系列介绍。参照了夏宇闻老师的《Verilog 数字系统设计教程》。
上一篇 下一篇

猜你喜欢

热点阅读