单片机I2C总线介绍

发布者:太白山人最新更新时间:2016-01-12 来源: eefocus关键字:I2C总线  单片机 手机看文章 扫描二维码
随时随地手机看文章
I2C是一种串行总线的外设接口,它采用同步方式串行接收或发送信息,两个设备在同一个时钟下工作。I2C总线只用两根线:串行数据SDA(Serial Data)、串行时钟SCL(Serial Clock)。
由于I2C只有一根数据线,因此其发送信息和接收信息不能同时进行。信息的发送和接收只能分时进行。I2C串行总线工作时传输速率最高可达400K bit/s。
I2C总线上的所有器件的SDA线并接在一起,所有器件的SCL线并接在一起,且SDA线和SCL线必须通过上拉电阻连接到正电源。
I2C总线的数据传输协议要比SPI总线复杂一些,因为I2C总线器件没有片选控制线,所以I2C总线数据传输的开始必须由主器件产生通信的开始条件(SCL高电平时,SDA产生负跳变);通信结束时,由主器件产生通信的结束条件(SCL高电平时,SDA产生正跳变)。
SDA线上的数据在SCL高电平期间必须保持稳定,否则会被误认为开始条件或结束条件,只有在SCL低电平期间才能改变SDA线上的数据。I2C总线的数据传输波形图如下图所示。
I2C总线介绍
 I2C应用实例
AT24C系列为美国ATMEL公司推出的串行COMS型E2PROM,具有功耗小,宽电压范围等优点。下图为AT24C系列E2PROM的引脚图。图中A0、A1、A2为器件地址引脚,Vss为地,Vcc为正电源,WP为写保护,SCL为串行时钟线,SDA为串行数据线。AT24C系列E2PROM采用I2C总线,I2C总线上可挂接多个接口器件,在I2C总线上的每个器件应有唯一的器件地址,按I2C总线规则,器件地址为7位二进制数,它与一位数据方向位构成一个器件寻址字节。器件寻址字节的最低位(D0)为方向位(读/写),最高4位(D7~D4)为器件型号地址(不同的I2C总线接口器件的型号地址由厂家给定,AT24C系列E2PROM的型号地址都为1010);其余3位(D3~D1)与器件引脚地址A2A1A0相对应。器件地址格式:
1010  A2A1A0。
I2C总线介绍
对于E2PROM的片内地址,AT24C01和AT24C02由于芯片容量可用一个字节表示,故读写某个单元前,先向E2PROM写入一个字节的器件地址,再写入一个字节的片内地址。而AT24C04、AT24C08、AT24C16分别需要9位、10位和11位片内地址,所以AT24C04把器件地址中的A0作为片内地址的最高位,AT24C08把器件地址中的A1A0作为片内地址的最高两位,AT24C16把器件地址中的A2A1A0作为片内地址的最高三位。凡在系统中把器件的引脚地址用作片内地址后,该引脚在电路中不得使用,做悬空处理。AT24C32、AT24C64、AT24C128、AT24C256和AT24C512的片内地址采用两个字节。
AT24C系列E2PROM的读写操作原理
下列读写操作中SDA线上数据传送状态标记注释如下:
Start为启动信号(SCL为高电平,SDA产生负跳变),由主机发送。
Stop为结束信号(SCL为高电平,SDA产生正跳变),由主机发送。
AddressByte、AddreeeByte H、AddreeeByte L为地址字节,指定片内某单元地址,由主机发送。
data为数据字节,由数据发送方发送。
0 为肯定应答信号,由数据接收方发送。
1 为否定应答信号,由数据接收方发送。
主机控制数据线SDA时,在SCL高电平期间必须保持SDA线上的数据稳定,否则会被误认为对从机的起始条件或结束条件。主机只能在SCL低电平期间改变SDA线上的数据。主机写操作期间,用SCL的上升沿写入数据;主机读操作期间,用SCL的下降沿读出数据。
 
从AT24C系列AT24C01~AT24C16中读n个字节的数据格式:
I2C总线介绍
从AT24C系列AT24C32~AT24C512中读n个字节的数据格式:
I2C总线介绍
向AT24C系列AT24C01~AT24C16中写n个字节的数据格式(n<=页长,且n个字节不能跨页):
I2C总线介绍
向AT24C系列AT24C32~AT24C512中写n个字节的数据格式(n<=页长,且n个字节不能跨页):
I2C总线介绍
 
应答信号
I2C总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号。应答的器件在第9个时钟周期时将SDA线拉低,表示其已经收到一个8位数据。
I2C器件在接收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作,则在每接收一个8位字节之后响应一个应答信号。
I2C器件工作在读模式时,在发送一个8位数据后释放SDA线(SDA置为高电平)并监视一个应答信号,一旦接收到主器件的应答信号,I2C器件则继续发送数据,如果主器件没有发送应答信号(发送非应答信号,即SDA为高电平),器件停止传送数据且等待一个停止信号。
关键字:I2C总线  单片机 引用地址:单片机I2C总线介绍

上一篇:c51 c和汇编语言混合编程
下一篇:89c51 c语言软件防抖动按键

推荐阅读最新更新时间:2024-03-16 14:43

单片机测交流电流
  电流传感器的4-20ma输出如何转换?   两线制电流传感器的输出为4~20 ma,通过250ω的精密电阻转换成1~5v或2-10v的模拟电压信号.转换成数字信号有多种方法,如果系统是在环境较为恶劣的工业现场长期使用,因此需考虑硬件系统工作的安全性和可靠性。系统的输入模块采用压频转换器件lm231将模拟电压信号转换成频率信号,用光电耦合器件tl117进行模拟量与数字量的隔离。   同时模拟信号处理电路与数字信号处理电路分别使用两组独立的电源,模拟地与数字地相互分开,这样可提高系统工作的安全性。利用压频转换器件lm231也有一定的抗高频干扰的作用。   电流输出型与电压输出型有哪些优劣比较?   在单片机控制的许多应用场合,都要
[单片机]
STM32系列单片机在进入main函数前都在干些什么?
在刚开始学习单片机的时候,一直以为程序启动后就直接进入到了main函数,但是随着学习的深入才发现,程序在进入main函数前其实还要干好多事情。现在就来分析一下,STM32系列单片机程序在进入main函数前都在干些什么? 单片机上电后,程序首先跳转到地址0处,此时主堆栈指针MSP的初值也为0。然后单片机产生了复位信号,主堆栈指针加1,由于单片机内核为32位,所以地址增加一位,实际上是增加了32位,也就是增加了4个字节。此时MSP指针就指向了复位向量。而Cortex-M内核处理器的向量表可以重新定位,所以此时程序就会跳转到复位向量重新映射的地址处。 通过上面的两个图可以看到,通过复位向量的重映射后,MSP指针就会跳转到复位
[单片机]
STM32系列<font color='red'>单片机</font>在进入main函数前都在干些什么?
MSP430单片机低功耗结构原理
当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1: 复位,使能SMCLK;置位,禁止SMCLK。 SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且L
[单片机]
嵌入式学习笔记7——51单片机之独立键盘
1. 51单片机的P1、P2、P3口自有上拉电阻,P0口要想当做I/O口使用,必须也加个上拉电阻。 2. 如果用51单片机的I/O口用于输入,必须先将I/O口输出1,即置1。 3. 单片机组成的系统中,用的最多的是非编码键盘,其又分为独立式非编码键盘和行列式非编码键盘。 4. 数字电路中线与、线或的概念: 如上图,线与两端电平做与运算,即当一端为高电平,另一端为低电平时,开关闭合,整个电路为低电平。 线或,Z为高阻态,当另一端为高电平时,开关闭后,整个电路为高电平;若另一端为低电平,开关闭后,整个电路为低电平。 5. 按键消抖(软件方法和物理方法),本文只介绍软件方法:按键按下的实际波形如下图 整个
[单片机]
嵌入式学习笔记7——51<font color='red'>单片机</font>之独立键盘
STM32单片机/485通信详解
在了解485通信之前,需要先了解几个概念,以免一会儿晕头转向。我们在 【通信专栏】一:STM32串口通信(usart) 这篇文章中介绍了一点关于 通信分类 的内容: 串行通信与并行通信 串行通信 是指一比特一比特的收发数据,相对于 并行通信 可一次性收发N比特而言。所以串行或者并行通信都是一种概念,是理论层面的。 并行接口: 串行接口:串行接口必须的为GND,RXD,TXD三条线,其余几条作为握手用,可有可无。 串行接口 串口 ,全称 串行接口 ,也称串行通信接口(通常指COM接口),是 采用串行通信方式的扩展接口 ,乃是物理层面的,常见的有一般电脑应用的RS-232(使用 25 针或 9 针连接器)和工业电脑
[单片机]
STM32<font color='red'>单片机</font>/485通信详解
基于MODEM的单片机与PC机间的远程通信研究
 随着计算机技术、通信技术的发展和成熟,数据通信已经成为一种广泛应用的通信方式,它是利用通信系统将数字、字母及字符等以二进制形成在计算机之间进行传输、交换和处理。数据通信可以在两台及以上PC 机之间、PC机与单片机之间以及单片机之间进行,通过通信通道如公用电话网、载波通道、光绺通道、微波通道、卫星通道将两机联结。目前,单片机以其高性能价格比、高可靠性广泛用于自动监视、测量、控制等技术领域。单片机主要用作从机,安装在监视、测量和控制现场,而PC机则用作主机,安装在条件优越的环境(如温度和温度适合、几乎无干扰源)中。单片机与PC机之间利用公共电话网通过调制解调器MODEM实现远程数字通信,其原理框图如图1所示。在实际中,PC机和单片机
[单片机]
基于MODEM的<font color='red'>单片机</font>与PC机间的远程通信研究
51单片机LED流星雨拖尾灯程序
流星雨就是几个亮度不同的灯一起滚动,亮度依次更暗,像流星雨拖着尾巴。 控制全彩(三色)led也可以用同样的概念编程。 用的是51的单片机pwm实现的拖尾效果 程序的解说以及视频演示请打开http://www.51hei.com/bbs/dpj-22524-1.html 里面有详细的说明. 程序源码: #include reg52.h #define uint unsigned int #define uchar unsigned char uchar abit=16; //流到哪位 uchar atimer0_n; uchar code abit8 ={1,2,4,8,16,32,64,128,0}; uchar nn; c
[单片机]
51<font color='red'>单片机</font>LED流星雨拖尾灯程序
意法推出STM32WBA5系列微控制器:强化物联网连接与安全
意法半导体(ST)近日宣布推出全新的STM32WBA5系列微控制器,该系列不仅继承了STM32家族在性能、能效及易用性方面的优良传统,更在无线连接与安全性方面进行了显著的提升,以满足日益增长的物联网设备需求。 STM32WBA5系列微控制器内置了Arm Cortex-M33内核,运行频率高达100MHz,配备了丰富的外设接口和高达1MB的闪存、128kB的静态RAM(SRAM)。此外,该系列还支持Arm TrustZone安全隔离架构,为物联网设备提供了硬件级别的安全保障。 在无线连接方面,STM32WBA5系列整合了蓝牙5.4低功耗(BLE)、Zigbee、Thread和Matter等多种网络协议,实现了与各类物联网设备
[物联网]
意法推出STM32WBA5系列<font color='red'>微控制器</font>:强化物联网连接与安全
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved