【51单片机入门记录】IIC总线协议 EEPROM存储器AT24C02概述

本文主要是介绍【51单片机入门记录】IIC总线协议 EEPROM存储器AT24C02概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、IIC总线协议概述

(1)IIC(Inter-IntegratedCircuit)总线

  • 是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器以及其外围设备。
  • IIC也被成为I2C/I²C,其实两者是完全相同的,只是名词不一样而已
  • 它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据

(2)IIC总线的物理层和协议层

  • 物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输
  • 协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准

(3)特点

  1. 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个I2C通讯总线中,可连接多个I2C通讯设备,支持多个通讯主机及多个通讯从机
  2. 一个I2C总线只使用两条总线线路,一条双向串行数据线(SDA),一条串行时钟线(SCL)。数据线即用来表示数据,时钟线用于数据收发同步
  3. 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。
  4. 总线通过上拉电阻接到电源。当I2C设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。
  5. 多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线
  6. 具有三种传输模式:标准模式传输速率为100kbit/s,快速模式为400kbit/s,高速模式下可达3.4Mbit/s,但目前大多12C设备尚不支持高速模式。

二、IIC总线通讯的数据帧格式

(1)IIC总线通讯的数据帧格式:写操作

S为起始信号,SLAVEADDRESS从机地址(7bit)+W(0)一共8位,有阴影的部分是主机发送的,而没有阴影部分是从机发送到主机的,A/A(0/1),P代表停止信号

主机I2C接口产生传输起始信号S→广播从机地址→传输方向选择→接受到应答信号ACK→向从机传输数据DATA→等待从机的应答信号ACK→重复之前过程→发送停止传输信号P。

(2)IIC总线通讯的数据帧格式:读操作

S为起始信号,SLAVEADDRESS从机地址(7bit)+R(1)一共8位,有阴影的部分是主机发送的,而没有阴影部分是从机发送到主机的,A(应答)/A(0/1),P代表停止信号。

注意:假如主机一直返回应答信号,那么从机可以一直发送数据,也就是图中的(nbyte+应答信号)情况,直到主机发出非应答信号,从机才会停止发送数据。

主机I2C接口产生传输起始信号S→广播从机地址→传输方向选择→接受到应答信号ACK←从机向主机返回数据DATA←等待主机的应答信号ACK←重复之前过程←停止传输P。

(3)IIC总线通讯的数据帧格式:读和写数据

除了基本的读写,IIC通讯更常用的是复合格式,该传输过程有两次起始信号(S)

一般在第一次传输中,主机通过SLAVE_ADDRESS寻找到从机设备后,发送一段“数据”,这段数据通常用于表示从设备内部的寄存器或存储器地址;

在第二次的传输中,对该地址的内容进行读或写。也就是说,第一次通讯是告诉从机读写地址,第二次则是读写的实际内容。

三、IIC总线通讯时序

(1)I2C数据的有效性(数据的传输)

  1. 使用SDA信号线来传输数据
  2. 使用SCL信号线进行数据同步
  3. SDA数据线在SCL的每个时钟周期传输一位数据。传输时,SCL为高电平的时候,SDA表示的数据有效,即此时的SDA为高电平时表示数据“1”,为低电平表示数据“0”。
  4. 当SCL为低电平时,SDA的数据无效,一般在这个时候进行电平切换,为下一次表示数据做好准备。

(2)I2C通讯的起始和停止信号

  • 当SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示通讯的起始。
  • 当SCL现是高电平时,SDA线由低电平向高电平切换,表示通讯的停止。
  • 起始和停止信号一般由主机产生。

(3)I2C通讯的响应

  • 传输时,主机产生时钟,在第九个时钟时,数据发送端会释放SDA的控制权,由数据接收端控制SDA,若SDA为高电平,表示非应答信号(NACK),低电平表示应答信号(ACK);
  • 当设备(无论主从机)接收到I2C传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发生“应答(ACK)”信号;若接收端希望结束数据传输,则向对方发生“非应答(NACK)”信号,发送方接收到该信号后会产生一个停止信号,结束信号传输。

四、基于IIC总线的E2PROM-AT24C02

(1)E2PROM概述:
 

EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器,是一种掉电后数据不丢失的存储芯片,EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。

(2)AT24C02简介

AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节。该器件通过IIC总线接口进行操作,且有一个专门的写保护功能。

(3)基于IIC总线的E2PROM-AT24C02的特性

  • 与400KHz IIC 总线兼容
  • 1.8到6.0伏工作电压范围
  • 低功耗CMOS技术
  • 写保护功能,当WP为高电平时进入写保护状态
  • 页写缓冲器
  • 自定时擦写周期
  • 1,000,000编程/擦除周期
  • 可保存数据100年
  • 8脚 DIP SOIC或TSSOP封装
  • 温度范围商业级工业级和汽车级。
  • (4)基于IIC总线的E2PROM-AT24C02的管脚描述

  • 管脚名称

    功能

    A0、A1、A2

    器件地址选择

    SDA

    串行数据、地址

    SCL

    串行时钟

    WP

    写保护

    VCC

    +1.8V~6.0V工作电压

    GND

WP 保护:如果WP管脚连接到Vcc所有的内容都被写保护,只能读;当WP管脚连接到Vss或悬空,允许器件进行正常的读/写操作。

(5)IIC地址及数据方向

I2C总线上的每个设备都有自己的独立地址,主机发起通讯时,通过SDA信号线发送设备地址(SLAVE_ADDRESS)来查找从机。

12C协议规定设备地址可以是7位或10位,实际中7位的地址应用比较广泛。紧跟设备地址的一个数据位用来表示数据传输方向,它是数据方向位,第8位或第11位。数据方向位为“1”时表示主机由从机读数据,该位为“0”时表示主机向从机写数据

(6)AT24C02设备地址


 

因为单片机上的管脚均接地,所以地址为1K/2K代表的地址。

五、AT24C02数据读写操作

(1)字节写

  • 写操作需要在设备地址字确认之后有一个8位的数据字地址
  • 一旦收到这个地址,EEPROM将输出一个响应,然后接收到8位数据字后,EEPROM将输出一个响应。
  • 如果需要停止数据传输,主机必须用一个停止条件终止写序列。
  • 数据写入后,EEPROM进入一个内部计时的写周期,将数据写入到到非易失性存储器。在这个写周期中,所有输入都被禁用,EEPROM直到写完成才会响应。

Figure 8. Byte Write:

(2)页写入

  • 1K/2K EEPROM能够进行8字节的页写入;
  • 页写的初始化过程与字节写的初始化过程相同。但是微控制器在第一个数据字被写入后并没有发送一个停止条件。相反,在EEPROM 承认接收到第一个数据字之后。该微控制器可以再传输7个数据字。EEPROM在接收到每个数据字后将回一个零响应。“微控制器必须用一个停止条件终止页写序列。当内部生成的字到达页面边界时,下面的字节被放置在同一页面的开头。
  • 如果有超过8个数据字传输到 EEPROM,数据字地址将“翻转”,先前的数据将被覆盖。

(3)任意地址读取

  • 随机读需要一个“虚拟”字节写序列来加载数据字地址。一旦设备地址字和数据字地址被输入并且被EEPROM 确认微控制器必须产生另一个启动条件,微控制器现在通过发送带读设备地址来启动当前读地址。令EEPROM 确认设备地址并报出数据字。微控制器后跟随停止条件结束。

(4)读写时间周期范围

符号

参数

1.8 V,2.5V

4.5V~5.5V

单位

最小

最大

最小

最大

FscL

时钟频率

100

400

KHz

T1

SCL,SDA输入的噪声抑制时间

200

200

ns

tAA

SCL 变低至SDA数据输出及应答信号

3.5

1

us

tBUF

新的发送开始前总线空闲时间

4.7

1.2

μs

LHD:STA

起始信号保持时间

4

0.6

μs

tLow

时钟低电平周期

4.7

1.2

μs

LHIGH

时钟高电平周期

4

0.6

us

tSU:STA

起始信号建立时间

4.7

0.6

μs

tHD:DAT

数据输入保持时间

0

0

ns

tsut:DAT

数据输入建立时间

50

50

ns

tR

SDA及SCL上升时间

1

0.3

μs

tF

SDA及SCL下降时间

5

300

300

ns

tsu:STO

停止信号建立时间

4

0.6

μs

DH

数据输出保持时间

100

100

ns

(5)任意地址读取总结

  • 1、主控器发出起始信号
  • 2、主控器发出寻址字节(写);
  • 3、被控器做出应答后;
  • 4、主控器发出地址字节(写);
  • 5、被控器做出应答后;
  • 6、主控器发出停止信号
  • 7、主控器发出起始信号;
  • 8、主控器发出寻址字节(读);
  • 9、被控器做出应答后;
  • 10、主控器从被控器读出数据字节,主控器发出应答;
  • 11、主控器发出停止信号:

这篇关于【51单片机入门记录】IIC总线协议 EEPROM存储器AT24C02概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/865178

相关文章

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.