0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C总线的工作原理和应用

射频美学 来源:射频美学 2023-08-21 09:24 次阅读

在现代电子设备中,各种传感器芯片和模块之间的通信至关重要。而I2C(Inter-Integrated Circuit)总线作为一种简单、高效的串行通信协议,已经成为连接各种设备的首选之一。本文将深入探讨I2C总线的工作原理与应用,带您了解这个在电子领域中扮演着重要角色的通信技术

一、简介

I2C(Inter-Integrated Circuit)总线是一种由Philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频视频设备开发。

由于其简单性,如今方泛用于微控制器与各种功能模块的连接,可以说是学单片机的人,入门之后,必定要涉及到的。

I2C 总线实际上已经成为一个国际标准在超过100 种不同的IC 上实现,而且得到超过50 家公司的许可,正因为其简单和应用广泛,因此其功能也越来不满足人们的要求,其速度也从原来的100Kbit/S,增加了快速模式,其速度达400Kbit/S,再后来也增加了高速模式,其速度更达3.4Mbit/S。

二、功能和特点

I2C总线是一种用于IC器件之间连接的双向二线制总线,所谓总线它上面可以挂多少器件,并且通个两根线连接,占用空间非常的小,总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。

它的另一优点是多主控,只要能够进行接收和发送的设备都可以成为主控制器,当然多个主控不能同一时间工作。

I2C总线有两根信号线,一根为SDA(数据线),一根为SCL(时钟线),任何时候时钟信号都是由主控器件产生。

I2C总线在传送数据的过程中,主要有三种控制信号:起始信号,结不信号,应答信号。

起始信号:当SCL为高电平时,SDA由高电平转为低电平时,开始传送数据;

结束信号:当SCL为高电平时,SDA由低电平转为高电平时,结束数据传送;

应答信号:接收数据的器件在接收到8bit数据后,向发送数据的器件发出低电平信号,表示已收到数据。这个信号可以是主控器件发出,也可以是从动器件发出。总之由接收数据的器件发出。

这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。

三、基本操作

下面我们以ATMEL公司的AT24C02来介绍I2C的基本操作。

AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含256×8bit存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。他在系统中始终为从动器件。

对AT24C02的操作主要有:字节读,字节写,页面读,页面写

首先发送起始信号,如下图,起始信号后必须是控制字。

02eb14a0-3fa6-11ee-ac96-dac502259ad0.png

控制字格式如下,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,也就是三个地址位,最后一位为读写控制位,当为1(Input)时为读操作,为0(Output)时为写操作。

03138746-3fa6-11ee-ac96-dac502259ad0.png

控制字后就是相应的操作,读或写,一定不要结束,因为这个操作还没有完成,如果结束就等于放弃操作。

先来看写操作,写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同,AT24C02为8字节,每写一个字节后,地址自动加1。

关于页面写的地址、应答和数据传送的时序参见图3,字节写可以看成是只有一个字节的页面写,也就是写一个数据后停止。

注意:写一次需要一定时间,一般为10ms,要等侍这个操作完成,时序如下图。

033f46a6-3fa6-11ee-ac96-dac502259ad0.png

说明:对于AT24C02,在控制字后还必须写入地址,这个地址是以后读写的起始地址。

读操作有三种基本操作:当前地址读、随机读和顺序读。三种操作方法类似,只是读的数据个数不同,可连续读8个字节,图4给出的是顺序读的时序图,图中共读了四个数据,需要注意的是当前的地址,如果不是想要的,可以用写操作,重新写入地址。

非常重要的是,每读一个数据后,必须置低SDA,作为应答,否则,只能读一个数据,后面的数据,因为收到不应答信号,AT24C02就会认为出错,停止操作。

特别提醒的是,当SCL为低电平时,数据是可变的,因些只有SCL为高电平时,才能读数。

四、例程序(51汇编,测试单片机为AT89C51,12M晶振)

035d47a0-3fa6-11ee-ac96-dac502259ad0.png

电路连接如图5,其中A0,A1,A2为地址线,本例中全部接地,因此全部为0。由于SCL和SDA为漏极开路输出,所以在使用时,需加上拉电阻

五、结束语

在I2C总线的应用中应注意的事项总结为以下几点 :

严格按照时序图的要求进行操作;

若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻;

程序中为配合相应的传输速率,在对口线操作的指令后可用NOP指令加一定的延时;

为了减少意外的干扰信号将EEPROM内的数据改写可用外部写保护引脚(如果有),或者在EEPROM内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判断EEPROM是否被意外改写。

通过本文的介绍,我们对I2C总线的工作原理和应用有了更深入的了解。无论是在嵌入式系统物联网设备还是传感器网络中,I2C总线都发挥着至关重要的作用。它简单、高效的特点使得设备之间的通信变得更加便捷和可靠。随着技术的不断进步,我们相信I2C总线在未来的应用领域中将继续发挥着重要的作用,连接着各种智能设备,为我们创造更加便利和智能的生活。

审核编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信技术
    +关注

    关注

    20

    文章

    1055

    浏览量

    91600
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3434

    浏览量

    128229
  • 物联网
    +关注

    关注

    2870

    文章

    41649

    浏览量

    358419
  • 总线
    +关注

    关注

    10

    文章

    2713

    浏览量

    87225
  • I2C总线
    +关注

    关注

    8

    文章

    357

    浏览量

    60409
  • 总线协议
    +关注

    关注

    0

    文章

    80

    浏览量

    14736

原文标题:浅谈I2C总线工作原理与应用

文章出处:【微信号:射频美学,微信公众号:射频美学】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一文理解I2C总线工作原理

    I2C总线是一种十分流行并且强大的总线,其多用于一个(或多个)主机与单个或多个从设备通讯的场景。图1表明了多种不同的外设可以共享这种只需要两根线便可以连接到处理器的总线,相对于其他接口
    发表于 02-06 14:20 1321次阅读

    I2C总线工作原理和功能特点

    I2C(Inter-Integrated Circuit)总线是一种由Philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C
    发表于 08-17 10:19 653次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的<b class='flag-5'>工作原理</b>和功能特点

    I2C总线工作原理、优缺点和应用

    I2C总线I2C结合了SPI和UART的优点。使用I2C,您可以将多个从设备连接到单个主设备上(如SPI),并且可以让多个主器件控制单个或多个从器件。当您希望有多个微控制器记录数据到
    发表于 07-31 12:30

    求一种IC总线应用下的EEPROH的测试方法?

    分析了I2C总线工作原理及其特点提出一种在I2C总线应用下的EEPROM测试方法
    发表于 04-09 06:09

    I2C总线具有什么特点?工作原理是什么?

    I2C总线特点是什么?I2C总线工作原理是什么?USB2I2C功能特点是什么?
    发表于 05-20 06:27

    I2C总线在规格书中一些要点总结

    I2C总线是什么?I2C总线工作原理是什么呢?
    发表于 01-24 06:34

    浅析I2C总线工作原理与使用注意事项

      I2C总线工作原理  I2C是Inter-IntegratedCircuit的缩写,它是一种向两个或更多可编程设备提供一种低速数据传输方法的总线
    发表于 03-08 14:06

    i2c总线ppt(I2C总线器件应用)

    I2C总线器件应用第一节 I2C总线器件应用概述I2C总线
    发表于 08-13 17:34 0次下载

    I2C总线工作原理与应用

    I2C总线工作原理与应用     I2C(Inter-Integrated Circuit)总线
    发表于 03-02 01:20 4395次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的<b class='flag-5'>工作原理</b>与应用

    SPI总线I2C总线工作原理

    SPI总线I2C总线工作原理,本内容详细介绍了SPI总线I2C
    发表于 12-08 16:55 0次下载

    使用数字隔离器设计隔离式I2C总线®接口

    本文首先简要介绍 I2C 总线工作原理,然后介绍如何通过给数字电容隔离器添加一些外部组件来设计一种隔离式 I2C 接口。
    发表于 12-14 17:44 56次下载
    使用数字隔离器设计隔离式<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>®接口

    单片机的I2C总线工作原理和应用等详细资料说明

    1. I2C串行总线的组成及工作原理 采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。常用的串行扩展
    发表于 07-30 17:35 4次下载
    单片机的<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的<b class='flag-5'>工作原理</b>和应用等详细资料说明

    I2C总线工作原理及使用方法详细分析

    电机、温度传感器等资源,体会到了学习板的易用性与易学性,看了前几期实例,当你实验成功后一定很兴奋,很有成就感吧!现在我们就趁热打铁,再向上跨一步,一起来学习一下I2C 总线工作原理及使用方法,这样
    的头像 发表于 06-30 10:34 2w次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的<b class='flag-5'>工作原理</b>及使用方法详细分析

    I2C总线工作原理解析

    I2C是一种双线双向接口,包括一个时钟信号和一个数据信号(SCL和SDA)。在不增加任何其他信号的情况下,一条I2C总线就可以支持多达12个设备。I2C接口规范包括三种
    发表于 08-23 15:55 6158次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的<b class='flag-5'>工作原理</b>解析

    I2C总线工作原理以及优缺点解析

    如果您正在使用OLED显示器,气压传感器或陀螺仪/加速度计模块的项目,您可能会发现正在使用I2C总线I2C总线简介 I2C结合了SPI和
    发表于 11-28 09:13 1.4w次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的<b class='flag-5'>工作原理</b>以及优缺点解析