硬件-协议|I2C总线结构的EEPROM

常用芯片AT24C02
AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节。AT24C02有一个8字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能 硬件-协议|I2C总线结构的EEPROM
文章图片

硬件-协议|I2C总线结构的EEPROM
文章图片

引脚
SCL 串行时钟
AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。
SDA 串行数据/地址
AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。
A0、A1、A2 器件地址输入端
这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C01被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss。
WP 写保护
如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss 或悬空允许器件进行正常的读/写操作
结构与寻址
AT24C02的存储容量为2Kb,内容分成32页,每页8B,共256B,操作时有两种寻址方式:芯片寻址和片内子地址寻址。
(1)芯片寻址:AT24C02的芯片地址为1010,其地址控制字格式为1010A2A1A0R/W。其中A2,A1,A0可编程地址选择位。A2,A1,A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。R/W为芯片读写控制位,该位为0,表示芯片进行写操作。
(2)片内子地址寻址:芯片寻址可对内部256B中的任一个进行读/写操作,其寻址范围为00~FF,共256个寻址单位。
I2C总线接口电路图如下图
硬件-协议|I2C总线结构的EEPROM
文章图片

I2C总线的器件分为主器件和从器件。主器件的功能是启动在总线上传送数据,并产生时钟脉冲,以允许与被寻址的器件进行数据传送。被寻址的器件,称为从器件。一般来讲,任何器件均可以成为从器件,只有微控制器才能称为主器件。主、从器件对偶出现,工作在接收还是发送数据方式,由器件的功能和数据传送方向所决定。
I2C总线允许连接多个微控制器,显然不能同时存在两个主器件,先控制总线的器件成为主器件,这就是总线竞争。在竞争过程中数据不会被破坏、丢失。数据只能在主、从器件中传送,结束后,主、从器件将释放总线,退出主、从器件角色。
I2C总线接口特性
传统的单片机串行接口的发送和接收一般都分别各用一条线,如MCS-51系列的TXD和RXD,而I2C总线则根据器件的功能通过软件程序使其工作于发送或接收方式。当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件)。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。I2C总线的控制完全由挂在总线上的主器件送出的地址和数据决定,在总线上,既没有中心机也没有优先级。
总线上主和从(即发送和接收)的关系取决于此时数据传送的方向。SDA 和SCL 都是双向线路,都通过一个电流源或上拉电阻连接到电源端。连接总线器件的输出级必须是集电极或漏极开路,以具有线“与”功能,当总线空闲时,两根线都是高电平。
【硬件-协议|I2C总线结构的EEPROM】下图是AT24C02与51单片机的一个连接示意图
硬件-协议|I2C总线结构的EEPROM
文章图片

其各种状态的时序图就不在这里介绍,各位可查询相关书籍与资料

    推荐阅读