AT24C02数据存储I2C协议-串口通讯
- 格式:doc
- 大小:44.50 KB
- 文档页数:12
3.2.5 密码储存电路密码储存电路采用I2C总线at24c02存储芯片存放密码,可实现断电密码不消失,at24c02存储芯片可长期存储信息,可上百万次以上重新擦写。
图3-5 密码储存电路2.4.3 I2C总线密码存储芯片at24c02介绍图2-3 at24c02引脚图(1)引脚功能介绍及相关知识WP:写保护引脚,将该引脚接VCC E2PR0MI就实现写保护(只读)。
引脚接地或悬空,可以对器件进行读写操作。
SCL串行时钟引脚,串行输入输出时该引脚用于输入时钟。
SDA串行数据输入输出引脚,用来输入输出数据,该引脚为射极开路输出,需接上拉电阻。
(2)I2C总线协议只有总线非忙时才被允许进行数据传送,在传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。
时钟线为高电平时数据线的任何电平变化将被当作总线的启动或停止条件。
(3)起始条件起始调教必须在所有操作命令之前发送。
时钟线保持高电平期间,数据线电平从高到低跳变作为I2C总线的启动信号。
CAT24Cxx>一直监视SDA和SCL电平信号,直到条件满足时才响应。
(4)停止条件时钟线保持高电平期间,数据线电平从低到高跳变作为IC总线的停止信号。
(5)器件地址的约定主器件在发送启动命令后开始传送数据,主器件发送相应的从器件地址,8 位从器件地址的高四位固定为1010,接下来的 3 位用来定义存储器的地址,对2于,这三位无意义,对于,接下来的 2 位无意义,第三位是地址高位,中,第一位无意义,后两位表示地址高位。
最后一位为读写控制位,“1表”示对从器件进行读写操作,“0表”示写操作。
在主器件发送启动命令和一字节从器件地址后,如果与从器件地址吻合,CAT24C02各发送一个应答信号,然后再根据读/写控制为进行读或写操作。
(6)应答信号每次数据传送成功后,接收器件将发送一个应答信号。
当第九个时钟信号产生时,产生应答型号的器件将SDA下拉为低,通知已经接受到8位数据,接收到起始条件和从器件地址后,CAT24C02发送一个应答信号,如果为写操作,每接收到一个字节数据,CAT24C02发送一个应答信号。
第4章实验01-I2C串行AT24C02实验
一、实验目的:
1、了解I2C总线的工作原理;
2、学习I2C总线与单片机的接口方法;
3、学习串行E2PROM芯片24CXX系列的读写方法;
4、单片机I2C总线接口的编程方法。
二、实验内容:
1、向24C02写入数据,然后读出数据检验,检验正确,点亮8个发光二极管;检验错误,熄灭8个发光二极管。
原理图:
流程图:
子程序开始子程序开始开始
发送启动条件发送启动条件I/O端口初始化
I2C初始化送出器件地址,设为送出器件地址,设为
“写”模式;“写”模式;I2C写1个字节
送出写入地址;送出写入地址;
送出写入数据;I2C读出1个字节
送出重启条件否
发送停止条件读出=写入?
送出器件地址,设为“读”是延时10ms 接收24C02送出的数据
灯灭灯亮
返回发送非应答条件
发送停止条件踏步
返回
2、编制程序,分别按字节模式和页模式向24C02芯片写入数据,比较写入速度的差别。
原理图:
流程图:
字节子程序主程序
一个字节程序I/O端口初始化
N I2C初始化
是否8次定时初始化
Y
返回启动定时0
页模式程序
页模式子程序关闭定时0
发送启动条件启动定时1
送出器件地址,设置字节子程序
“写”模式;关闭定时1
送出写入地址;N
T0<T1
Y
送出写入数据灯亮灯灭
N
是否8次?
Y 踏步
返回
T0 为定时器0的定时时间;T1为定时器T1的定时时间。
IIC总线操作AT24C02芯片详解一IIC总线操作规范起始和终止信号:SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
数据传送格式: 每一个字节必须保证是8位长度。
数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。
如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。
二.AT24C02芯片定义和功能该芯片是一个有2K(256*8)存储单元的EEPROM.1010为固定,A0,A1,A2正好与芯片的1,2,3引角对应.对通过这三个引脚设定可编程地址.若这三个引脚都接地,则地址如下图片:在IIC总线上读写AT24C02要遵循以下规范三,程式实例void init() //初始化{SCL=1;delay();SDA=1;delay();}void start() //启动信号{SDA=1;delay();SCL=1;delay();SDA=0;delay();}void stop() //停止信号{SDA=0;delay();SCL=1;delay();SDA=1;delay();}void respons() //回应信号{uchar i=0;SCL=1;delay();while((SDA==1)&&(i<255))i ;SCL=0;delay();}void writebyte(uchar date)// 写一个字节{uchar i,temp;temp=date;for(i=0;i<8;i ){temp=temp<<1;SCL=0;delay();SDA=CY;delay();SCL=1;delay();}SCL=0;delay();SDA=1;delay();}uchar readbyte() //读一个字节{uchar i,j,k;SCL=0;delay();SDA=1;for(i=0;i<8;i ){SCL=1;delay();if(SDA==1)j=1;elsej=0;k=(k<<1)|j;SCL=0;delay();}delay();return k;}Void write_add(uchar address,uchar info) //指定地址写一个字节数据{start();writebyte(0xa0);respons();writebyte(address);respons();writebyte(info);respons();stop();}uchar read_add(uchar address) //指定地址读一个字节数据{uchar dd;start();writebyte(0xa0);respons();writebyte(address);respons();start();writebyte(0xa1);respons();dd=readbyte(); stop();return dd;}。
I2C总线AT24C02芯片运用1,I2C总线介绍:I2C总线(Inter IC Bus)由飞利浦公司推出,是近年来微电子控制领域广泛采用的一宗新型总线标准,它使同步通信的一种特殊形式,具有接口少、控制简单、器件封装形体小、通信速率较高等优点(可达400Kbps)。
在主从通信中,可以有多个I2C 总线器件同时接到I2C总线上,所有与I2C总线兼容的器件都具有标准的接口,通过地址来识别通信对象,是她可以经由I2C总线相互直接通信。
I2C总线由数据线和时钟线SDA和SCL两条线构成,可发送数据可接收数据。
于CPU 及被控IC间、IC与IC间均可双向传送,各器件均并于总线上,各自有唯一地址。
信息传输中,I2C总线上的各器件既是被控又是控制器件,既是发送器又是接收器。
CPU 发出的控制信号分为地址码和数据码两部分;地址码选址;数据码送数。
故而各IC虽同并于总线上但却各自独立。
I2C总线硬件结构图图中:ACL时钟,SDA数据接上拉电阻,故总线空闲是高电平,任一器件变低均将拉低电平故曰:各器件的时钟线及数据线乃“与”关系。
通信格式为时钟高时下跳开始寻地址发送一字节 8位中低位为数据方向 0为我党要向下面发指令形象的为“O”,俗称为蛋,如川蛋:“川O001”,陕蛋:“陕O001”都是当官的向下发指令,发飙的,当然,单片机哎平方C系统呢有点民主成分,从机可以向主机传信息,既发1,形象的成为“1”:咦你们小麻虾小老百信还要上方发信息呀??!!事实上是的 0为下蛋-----下传数据;1为上访-----上传数据。
记住了吧!时钟为高SCL=1时数据那得稳定俗称维稳期间当然时钟撤了 SCL=0时随便你虾子变化数据。
发送启动信号那得我们主机发了党外人士没这个权利在时钟为高警察在的时候主机发一个下跳沿信号表示开会了开始了既:SCL=1时 SDA 你们老百姓就等着查户口吧!当官的在警察在时下跳了于是衙门发令查户口高七位为你我家庭住址,最低一位为数据方向上面已表在此老子不说了。
I2C总线原理介绍AT24C02内部原理介绍I2C总线原理介绍:I2C (Inter-Integrated Circuit)总线是一种用于在集成电路之间进行通信的串行通信总线协议。
它最初由飞利浦半导体公司(现在的NXP半导体)开发,旨在解决多个IC之间的通信问题。
I2C总线协议包括了两种设备,即主设备和从设备。
主设备负责控制总线及发送和接收数据,而从设备则依从主设备的控制。
主设备通过发送一个起始条件开始通信,并通过发送地址和数据进行控制。
从设备则根据主设备发送的地址和数据进行相应的响应。
1.双向通信:I2C总线允许主设备和从设备之间双向通信,即主设备可以发送数据给从设备,也可以从从设备接收数据。
2.多主模式:I2C总线支持多个主设备同时驱动总线,这可以实现多个主设备之间的协同工作。
3.硬件地址和数据传输:I2C总线使用7位或10位地址来寻址从设备,并以字节为单位传输数据。
4.起始和停止条件:I2C总线使用起始和停止条件来控制通信的开始和结束。
5.错误检测:I2C总线通过校验和来检测传输过程中的错误。
6.时钟同步:I2C总线使用时钟信号来同步主设备和从设备之间的通信。
AT24C02内部原理介绍:AT24C02是一种常见的I2C EEPROM (Electrically Erasable Programmable Read-Only Memory)芯片,用于存储数据。
它的内部原理如下:1.存储单元:AT24C02由256个8位字节构成,每个字节具有一个唯一的地址。
地址范围从0到255,可以存储共计2048位的数据。
2.寻址和读写:AT24C02通过I2C总线进行寻址和读写操作。
主设备发送启始条件和设备地址,然后发送要读取或写入的数据的地址,最后发送或接收实际数据。
3.数据传输:AT24C02的数据以字节为单位被写入和读取。
写入操作通过I2C总线将字节数据写入到指定地址处。
读取操作通过I2C总线将字节数据从指定地址读出。
单片机IIC总线及AT24C02的应用一:IIC和24C02的关系IIC是一种通信协议,IIC总线:由时钟线和数据线构成。
IIC和24C02的关系:24C02是芯片,24C02和其他设备通信使用的是IIC总线。
二:24C02和EEPROM的关系24C02和EEPROM的关系:24C02是一款数据存储芯片,它的存储介质是EEPROM。
三:EEPROM是什么,有什么特点?EEPROM是一款存储介质,电可擦除,可编程的存储介质。
数据可读可写,数据掉电不丢失。
四:EEPROM和单片机的关系EEPROM和单片机的关系:24C02的存储介质是EEPROM,24C02通过IIC总线和单片机通信,单片机把需要掉电不丢失的数据存储在24C02的EEPROM里面。
ROM:程序存储器,数据可读不能写,掉电不丢失。
RAM:数据存储器,数据可读可写,掉电丢失。
EEPROM:数据存储器,数据可读可写,掉电丢失。
容量小,价格高,可以随机读写擦除。
FLASH:数据存储器,数据可读可写,掉电丢失。
快擦除,价格较低,容量较大。
出现坏掉的概率相对较高。
五:AT24C02怎么控制总线—启动,停止,读,写。
(时序图可得)1.启动总线:时钟线是高电平的时候,数据线上的电平由高到低的跳变。
2.停止总线:时钟线是高电平的时候,数据线上的电平由低到高的跳变。
3.正常传输数据要改变的话:时钟线处于低电平。
设备地址:每个硬件设备地址,设备地址可以理解为器件地址。
A0H(实际应用而定)字地址:芯片内部数据存放的地址,256字节空间。
00H~FFHA:写操作(根据写操作时序图)1.启动总线2.写芯片地址(写设备地址)等待应答3.应答有效后,写芯片内部地址(字地址)4.写数据,等待应答5.结束,B:读操作(根据读操作时序图)1.启动总线2.写芯片地址(写设备地址)等待应答3.应答有效后,写芯片内部地址(字地址)4.重启总线(根据读的时序图得:先写操作后才读操作(只有写操作才有读写))5.发送设备地址(目的是把写改为读),6.结束模块化模块的分割:一个.c配一个.h文件,.C文件用来写实体函数。
IIC总线协议及EEPROMAT24C02IIC总线协议及EEPROMAT24C02IIC总线协议是一种串行通信协议,用于在电子设备之间进行数据传输。
它也被称为I2C(Inter-Integrated Circuit)协议。
IIC总线协议由Philips(现在的NXP Semiconductors)在1982年开发,用于同一电路板上的集成电路芯片之间的通信。
IIC总线是一种主从式结构,其中一个设备作为主设备,其他设备作为从设备。
主设备负责控制数据传输和通信的时序。
每个从设备都有一个唯一的地址,主设备根据地址选择要与之通信的从设备。
从设备根据主设备发出的命令来执行特定的操作,例如读取数据或写入数据。
EEPROM是一种可擦写可编程只读存储器(Electrically Erasable Programmable Read-Only Memory),用于存储非易失性数据。
AT24C02是Microchip Technology公司制造的一种EEPROM芯片,具有容量为2Kbit的存储能力。
AT24C02采用了IIC总线协议,因此可以通过IIC总线与其他设备进行通信。
它有一个7位地址寄存器,可以设置其作为IIC总线上的从设备的地址。
在与主设备通信时,主设备发送一个启动条件,然后发送从设备地址,接下来是读写位和数据。
AT24C02根据主设备的指令来执行读取或写入操作。
AT24C02有一个内部的写保护电路,可以保护存储的数据被误写。
它还支持分页写入,即可以一次写入多个字节的数据,从而提高写入效率。
总结:IIC总线协议是一种用于串行通信的协议,适用于设备之间的数据传输。
AT24C02是一种采用IIC总线协议的EEPROM芯片,具有2Kbit的存储容量。
它通过主设备的控制来进行读写操作,同时具有写保护和分页写入等特性。
I2C详解I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。
I2C总线只有两根双向信号线:一根是数据线SDA,另一根是时钟线SCL。
I2C总线通过上拉电阻接正电源。
当总线空闲时,两根线均为高电平。
连到总线上的任一器件输出的低电平都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。
在有些情况下,可能没接上拉电阻I2C也能正常通信,但是建议读者最好接上拉电阻。
本文最后将给出有接上拉电阻和没接两种情况下的I2C通信波形,可以明显的看出来,接了上拉电阻波形更漂亮,通信也更稳定。
本文将以24C02来详细讲解I2C 协议。
因为本文的重点是讲解I2C,所以这里只简单的介绍24C02,有关24C02的更为详细的资料,读者可以查阅其数据手册,在这里就其必需的部分进行简单的讲解。
一、 AT24C02简介AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含256×8位(2K)存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。
它的典型应用电路如图1:图1 AT24C02典型应用电路图1中AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。
在本文都将其接地,表示其地址为000。
第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,第6脚SCL为串行时钟输入线。
当用单片机I/O 口模拟I2C通信时,这两个引脚可以接任意的I/O口。
SDA和SCL都需要接一个上拉电阻,其阻值一般为4.7K~10K。
第7脚是写保护引脚,可以接IO口也可以直接接地,接地就不再具有保护功能。
这里将其直接接地。
二、 I2C总线的构成及信号类型I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
IIC—24C02协议IIC(Inter-Integrated Circuit)是一种串行通信协议,也被称为I2C。
它是一种用于在芯片之间进行通信的简单而高效的协议,广泛应用于多种电子设备中的通信接口。
在这篇文章中,我们将深入探讨IIC协议在24C02 EEPROM芯片中的应用。
24C02是一种常见的EEPROM(Electrically Erasable Programmable Read-Only Memory)芯片,具有2K位的存储容量。
它被广泛应用于各种电子设备中,如电脑、手机、智能卡等。
在这些设备中,24C02 EEPROM芯片用来存储设备的配置信息、用户数据等。
IIC协议是通过两根线进行通信的,这两根线分别是SCL(串行时钟线)和SDA(串行数据线)。
SCL线由主设备控制,用于传输时钟信号。
SDA线用于传输数据,数据可以是指令、地址或实际存储数据。
24C02芯片中的数据存储以页为单位,每个页有8个字节。
每个字节都有一个地址,从0x00到0xFF。
因此,24C02芯片总共具有256个地址。
在读写24C02芯片之前,需要先发送一条起始信号,然后发送设备地址和读/写位,最后发送地址或数据,并在每个字节传输之后发送一个应答信号。
IIC协议的工作时序如下:1.主设备发送起始信号。
2.主设备发送设备地址和读/写位。
设备地址由7位组成,占用7个时钟信号。
3.24C02芯片发送应答信号。
如果芯片正确接收到了设备地址,它将发送一个低电平,对主设备表示接收到了应答。
4.主设备发送一个字节的地址或数据。
5.24C02芯片发送应答信号,与主设备进行握手。
如果芯片正确接收到了地址或数据,它将发送一个低电平,对主设备表示接收到了应答。
6.主设备发送停止信号,表示传输结束。
读取24C02芯片中的数据时,需要按照上述步骤进行操作。
写入数据时,需要先发送要写入的地址,然后再发送数据。
可以一次性写入一个字节或多个字节,但写入的数据不能超过页的容量。
AT24C02串行E2PROM的工作原理与读写串行EEPROM中,较为典型的有ATMEL公司的AT24CXX系列和AT93CXX等系列产品。
简称I2C总线式串行器件。
串行器件不仅占用很少的资源和I/O线,而且体积大大缩小,同时具有工作电源宽、抗干扰能力强、功耗低、数据不易丢失和支持在线编程等特点。
I2C总线是一种用于IC器件之间连接的二线制总线。
它通过SDA(串行数据线)及SCL (串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。
1.I2C总线的基本结构:采用I2C总线标准的单片机或IC器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。
CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制。
I2C总线接口电路结构如图1所示。
从图中可以看出:对于时钟及数据传送,串行数据I/O端SDA一般需要用外部上拉电阻将其电平拉高。
2.双向传输的接口特性:传统的单片机串行接口的发送和接收一般都分别用一条线,如MCS51系列的TXD和RXD,而I2C总线则根据器件的功能通过软件程序使其可工作于发送或接收方式。
当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件)。
主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。
I2C总线的控制完全由挂接在总线上的主器件送出的地址和数据决定。
总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于此时数据传送的方向。
SDA和SCL均为双向I/O线,通过上拉电阻接正电源。
当总线空闲时,两根线都是高电平。
连接总线的器件的输出级必须是集电极或漏极开路,以具有线“与”功能。