当前位置:首页 > 单片机 > 单片机
[导读]I2C(Inter-Integrated Circuit)总线是Philips公司推出的一种双向二线制同步串行总线,仅用两根线即可实现器件之间的数据传送。目前很多芯片集成了I2C总线接口,如CYGNAL公司的C805IF0XX系列单片机、实时日历时钟芯片PCF8563及数字温度传感器LM75等。本节将首先介绍I2 C总线的引脚功能和时序;然后,介绍I2 C总线接口的实时时钟芯片PCF8563的引脚功能和使用方法;最后,给出AT89C51单片机扩展PCF8563的实例。

I2C(Inter-Integrated Circuit)总线是Philips公司推出的一种双向二线制同步串行总线,仅用两根线即可实现器件之间的数据传送。目前很多芯片集成了I2C总线接口,如CYGNAL公司的C805IF0XX系列单片机、实时日历时钟芯片PCF8563及数字温度传感器LM75等。

I2C总线的引脚功能时序

1.I2C总线的引脚功能

如图6-7所示,I2C总线通过两根线将多个芯片(包括MCU)连接在一起,其中,SDA和SCL都是双向传输线,分别用于传输数据和时钟信号。这两个引脚必须经过上拉电阻与正电源相接,如图6-8所示。另外,在总线空闲时,SDA和SCL都是高电平。

图6-7 I2C总线接口扩展示意图

图6-8 I2C总线接口电气结构图

需要注意,在图6-7中并没有指出从机或主机,这是因为I2C是一种多主机的总线,可以有多个主机,且主从关系可以根据任务要求而更改。当有个多个主机时,I2C总线可以通过内部的竞争检测和仲裁电路进行仲裁处理,以保证数据正确传输。另外,主机是产生时钟信号并初始化数据传输的器件,只有带CPU的器件才能成为主机。每个器件都有一个唯一的地址编号,被主机通过地址编号寻址访问的器件是从机。

2.I2C总线的引脚时序

I2C总线的数据传输过程由主机控制。在该过程中,主机的操作可以分为以下几个步骤:①发送启动信号;②传输从机地址,并确认数据传输方向(主机输出从机输入,或主机输入从机输出);③与从机之间进行数据传输(发送或读取);④发送停止信号。I2C总线信号的时序由主机产生和控制,下面分别进行介绍。

(1)启动信号和停止信号的时序

启动信号和停止信号分别用于确定数据传输的开始和结束。如图6-9所示,当SCL为高电平时,若SDA引脚出现下降沿,则产生启动信号;反之,当SCL为高电平,而SDA引脚出现上升沿时,则产生停止信号。

图6-9启动信号与停止信号的引脚时序

a)启动信号b)停止信号

(2)数据传送时序

数据传送过程中,如图6-10所示,当SCL为高电平时,SDA引脚上的信号是被传送的数据位(低电平为“0”,高电平为“1”),必须保持稳定;若要更改被传送的数据位,则必须先令SCL为低电平。可见,I2C总线仅在SCL为高电平时传送数据。

图6-10数据传输过程中的引脚时序

(3)响应信号时序

I2C总线以字节为单位传送数据和地址。传送时高位在前、低位在后。每发送完一个字节后,发送方都要求接收方返回一个响应信号。响应信号有两种,分别是应答信号ACK和非应答信号ACK,其时序如图6-11所示,下面分析该时序。

图6-11响应信号的引脚时序

a)应答信号ACK b)非应答信号ACK

1)若主机为发送方,则发送完一个字节后,需要从机进行应答。此时,主机在SCL引脚产生一个时钟脉冲(高电平),并将SDA引脚设置为高电平(即释放对总线的控制)。接收方若需继续接收下一个数据,则主动将SDA引脚设置为低电平。即产生如图6-11a所示的ACK信号。主机检测到ACK信号后将继续发送下一个数据。若接收方不需要接收下一个数据,则不更改SDA引脚状态,使其保持高电平。即产生如图6-11b所示的ACK信号。主机检测到ACK信号后,将产生如图6-9b所示的停止信号,并结束发送。

2)若主机为接收方,则接收完一个字节数据后,主动产生一个应答信号。如果主机希望接收新数据,则该应答信号为ACK信号。检测到ACK信号的从机将发送下一个数据。如果主机不需要接收新数据,则应答信号为ACK信号。从机检测到ACK信号后,将停止发送、释放SDA线(即使其为高电平)。之后,主机可以发送停止信号,结束本次数据传输。

3.I2C总线的数据帧格式

如前所述,I2C总线传输数据之前除了发送启动信号外,还要发送从机地址,并确认数据传输方向。具体方法是,主机发送启动信号后,接着再向从机发送一个字节数据。如图6-12所示,该数据的高7位是从机的地址;最低位(第0位)R W代表数据的传输方向,0表示主机是发送方(向从机写数据),1表示主机是接收方(读从机的数据)。

没有I2C总线接口的单片机,如MCS-51单片机等,可以利用自身的并行I/O引脚模拟产生I2C总线时序,以实现对I2C总线接口器件的扩展。例如,在图6-13中,8051单片机用P1.0和P1.1模拟I2C总线的SDA和SCL引脚。

图6-12 I2C总线的从机地址格式

图6-13引脚模拟I2C总线

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单总线(1-Wire)是DALLAS公司推出的一种单线双向串行总线,仅用一根线即可实现多个器件间的数据传输。目前,常用的单总线接口芯片有数字温度传感器DS18B20、单总线控制器DSIWM和D-A转换器DS2450等。本...

关键字: 单总线 引脚功能 时序

8255A芯片 Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条...

关键字: 并行接口芯片 8255A 引脚功能

单片机与片外程序存储器、数据存储器或I/O接口之间进行数据交换时所产生的总线操作被称为总线周期(Bus Cycle)。单片机向外传输数据的总线周期是写总线周期,反之是读总线周期。在总线周期中,单片机总线引脚的状态将按照一...

关键字: 单片机 片外存储空间 时序

时序就是 CPU 总线信号在时间上的顺序关系。CPU 的控制器实质上是一个复杂的同 步时序电路,所有工作都是在时钟信号控制下进行的。每执行一条指令,CPU 的控制器都要发出一系列特定的控制信号,这些控制信号在时间上的相互...

关键字: 单片机 时序 CPU

(全球TMT2022年6月28日讯)2022年6月28日,国微思尔芯面向全球客户正式发布芯神瞳自动原型编译软件Player Pro-7(PPro-7)。新版本针对大规模芯片设计提供了有效的解决方案,拥有更高的编译效率和...

关键字: PLAYER 编译软件 时序 BSP

(全球TMT2022年4月22日讯)新思科技(Synopsys, Inc.)近日宣布与Ansys联合开发的电压时序签核解决方案已获三星采用,用以加速开发其具有理想功耗、性能和面积(PPA)的高能效比设计。该联合解决方案...

关键字: 三星 时序 电压 新思科技

从功能上来看,数字集成电路内部可以分为数据通路(Data-path,也称为数据路径)和控制逻辑两大部分。这两大部分都是由大量的时序逻辑电路集成的,而且绝大部分都是同步的时序电路,因为时序电路被多个触发器或寄存器分成若干节...

关键字: 时序 电路 触发器

1.需要对原有架构、规格、关键电路非常熟悉。多次实践证明不清楚原有设计的情况下做出的方案,往往只会越改越烂。判断是否熟悉的标准是能够讲清楚整个模块代码->能够自己画出整个微架构->能够提出有效的PPA优化方案。其实这一条...

关键字: 时序

来源:电子电路设计一、前言I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。二、I2C总线开发设计需要注意点1、总线容量及驱动能力I2C总线的外围...

关键字: I2C总线

点击上方「嵌入式云IOT技术圈」,选择「置顶公众号」第一时间查看嵌入式笔记!前面我们介绍了一些MIPILCD的基础知识以及LCD初始化序列的配置:LinuxMIPIDSILCD设备驱动开发调试细节学习笔记(一)Linux...

关键字: MIPI 调试 时序
关闭