【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

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机