I2C总线的工作原理和应用

在现代电子设备中,各种传感器、芯片和模块之间的通信至关重要。而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的操作主要有:字节读,字节写,页面读,页面写
首先发送起始信号,如下图,起始信号后必须是控制字。
控制字格式如下,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,eeprom一般应为1010),接着三位为片选,也就是三个地址位,最后一位为读写控制位,当为1(input)时为读操作,为0(output)时为写操作。
控制字后就是相应的操作,读或写,一定不要结束,因为这个操作还没有完成,如果结束就等于放弃操作。
先来看写操作,写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同,at24c02为8字节,每写一个字节后,地址自动加1。
关于页面写的地址、应答和数据传送的时序参见图3,字节写可以看成是只有一个字节的页面写,也就是写一个数据后停止。
注意:写一次需要一定时间,一般为10ms,要等侍这个操作完成,时序如下图。
说明:对于at24c02,在控制字后还必须写入地址,这个地址是以后读写的起始地址。
读操作有三种基本操作:当前地址读、随机读和顺序读。三种操作方法类似,只是读的数据个数不同,可连续读8个字节,图4给出的是顺序读的时序图,图中共读了四个数据,需要注意的是当前的地址,如果不是想要的,可以用写操作,重新写入地址。
非常重要的是,每读一个数据后,必须置低sda,作为应答,否则,只能读一个数据,后面的数据,因为收到不应答信号,at24c02就会认为出错,停止操作。
特别提醒的是,当scl为低电平时,数据是可变的,因些只有scl为高电平时,才能读数。
四、例程序(51汇编,测试单片机为at89c51,12m晶振)
电路连接如图5,其中a0,a1,a2为地址线,本例中全部接地,因此全部为0。由于scl和sda为漏极开路输出,所以在使用时,需加上拉电阻。
五、结束语
在i2c总线的应用中应注意的事项总结为以下几点 :
严格按照时序图的要求进行操作;
若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻;
程序中为配合相应的传输速率,在对口线操作的指令后可用nop指令加一定的延时;
为了减少意外的干扰信号将eeprom内的数据改写可用外部写保护引脚(如果有),或者在eeprom内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判断eeprom是否被意外改写。
通过本文的介绍,我们对i2c总线的工作原理和应用有了更深入的了解。无论是在嵌入式系统、物联网设备还是传感器网络中,i2c总线都发挥着至关重要的作用。它简单、高效的特点使得设备之间的通信变得更加便捷和可靠。随着技术的不断进步,我们相信i2c总线在未来的应用领域中将继续发挥着重要的作用,连接着各种智能设备,为我们创造更加便利和智能的生活。


丰田加入特斯拉基于视觉开发自动驾驶技术 蔚来ET7达成5G-V2X与激光雷达融合
晶丰明源净利大增3456%后,决定打击炒货经销商
搭建PCB产业采购直通车,CS Show 2016深圳展8月30日盛大开幕
要想安全吸氧就要选对制氧机!如何选购家用制氧机?
中国将加强新能源汽车的安全排查
I2C总线的工作原理和应用
二手iPhone市场崛起 且看最全的二手iPhone验机指南
U5251-001005-300PG压力传感器的功率和信号
熔喷无纺布瑕疵在线检测系统介绍
半导体巨头聚焦汽车电子市场,IC设计忙翻天
拾得“自信感”华为旗舰:6寸大屏+全金属+光学防抖+超强续航
腾讯对外开放混元大模型
自制焦耳小偷教程
中兴通讯与国动集团签署了5G战略合作协议将共同探索5G市场
压敏电阻的通流量确定
减速机的故障诊断与处理方式
TLC770X与TL770X的比较和替换
中国联通混改谈判又停牌 网易第一季度净利润增长59.4%
Mobile WIMAX省电模式概述
Fluke ScopeMeter® 120B系列手持示波器工业现场排障,一手掌握