I2C总线接口详解
- 格式:ppt
- 大小:1.05 MB
- 文档页数:31
I2C总线接口一、 I2C总线协议I2C总线是一种串行数据传输总线,连接master(主机)和slave(从机),在两者间进行数据传输。
I2C总线有两根传输线,一根是时钟线SCL,一根是数据线SDA。
其中时钟线由主机控制,数据线是双向工作总线,传输数据,数据传输格式为每传输一个字节后传输一位应答位(应答位低电平有效);两者均通过上拉电阻与电源连接,保持高电平。
+VccSCLSDAI2C总线连接I2C总线在主机和从机之间传输数据时可以分为主机向从机写入数据和从机由主机读取数据两种工作模式。
1、主机向从机写入数据在这种工作模式下主机作为发送器,发送数据;从机作为接收机,接收数据。
2、主机由从机读取数据在这种工作模式下从机作为发送器,发送数据;主机作为接收机,接收数据。
I2C 总线的工作原理:I2C 总线在传输数据时首先要判断其是否启动,启动后对从机进行寻址和读写判断,随后根据是否应答来传输数据,最后再判断总线是否停止。
I2C 总线启动判断:当SCL 处于高电平时,SDA 由高电平变为低电平,标志着总线启动。
I2C 总线停止判断:当SCL 处于高电平时,SDA 由低电平变为高电平,标志着总线停止。
当I2C 总线启动后且未停止时,SDA 在SCL 的低电平发生跳变,在SCL 高电平时保持稳定,保证数据能够被采集。
主机首先发送一个字节的数据对从机进行寻址和读写判断;其中数据的传输先发送最高位,第一个发送字节的高7位是从机地址,最低位是数据读写判断位。
当从机接收到地址后判断是否为其地址,然后对主机应答或非应答。
当主机接收到应答以后开始向从机写入数据或由从机读取数据。
主机向从机写入数据时,每完成一个字节,从机都向主机应答;主机由从机读取数据时,每完成一个字节,主机都对从机应答,当主机读完最后一个字节时主机对从机应答取反。
二、 模块数据流I2C总线接口模块设计图i2c_ctrl 模块:从机读写状态机模块i2c_shift模块:从机控制信号、应答等产生模块i2c_intf_ctrl模块:写串并转换、读数据存储模块主机向从机写入数据:主机首先向从机发送地址和写标志,当从机判断主机发送的地址为其地址时对主机应答,然后主机开始发送数据。
I2C总线简介1.概述:I²C是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or"eye-two-cee", 它是一种两线接口。
I²C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。
SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。
(边沿触发)SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。
2.输出级每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。
其中输出为漏极开路的场效应管,输入缓冲为一只高输入阻抗的同相器,这种电路具有两个特点:1)由于SDA、SCL为漏极开路结构(OD),因此它们必须接有上拉电阻,阻值的大小常为1k8, 4k7 and 10k ,但1k8 时性能最好;当总线空闲时,两根线均为高电平。
连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线"与"关系。
2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致,为"时钟同步"和"总线仲裁"提供了硬件基础。
3.主设备与从设备系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型,由生产厂家制定,低3位为器件引脚定义地址,由使用者定义。
主控器件通过地址码建立多机通信的机制,因此I2C总线省去了外围器件的片选线,这样无论总线上挂接多少个器件,其系统仍然为简约的二线结构。
终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在同一总线上同一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容 400pF的限制。
一. I2C总线简介I2C管理总线:(Intel-Integrated Circuit bus)I2C总线是一种由飞利浦Philip公司开发的串行总线,产生于80年代,最初为音频和视频设备开发,现主要在服务器管理中使用。
是两条串行的总线,它由一根数据线(SDA)和一根时钟线(SDL)组成。
◆I2C总线的数据传输过程基本过程为:●主机发出开始信号。
●主机接着送出1字节的从机地址信息,其中最低位为读写控制码(1为读、0为写),高7位为从机器件地址代码。
●从机发出认可信号。
●主机开始发送信息,每发完一字节后,从机发出认可信号给主机。
●主机发出停止信号。
I2C数据传输图◆I2C总线上各信号的具体说明:●开始信号:在时钟线(SCL)为高电平其间,数据线(SDA)由高变低,将产生一个开始信号。
●停止信号:在时钟线(SCL)为高电平其间,数据线(SDA)由低变高,将产生一个停止信号。
●应答信号:既认可信号,主机写从机时每写完一字节,如果正确从机将在下一个时钟周期将数据线(SDA)拉低,以告诉主机操作有效。
在主机读从机时正确读完一字节后,主机在下一个时钟周期同样也要将数据线(S DA)拉低,发出认可信号,告诉从机所发数据已经收妥。
(注:读从机时主机在最后1字节数据接收完以后不发应答,直接发停止信号)。
注意:在I2C通信过程中,所有的数据改变都必须在时钟线SCL为低电平时改变,在时钟线SCL为高电平时必须保持数据SDA信号的稳定,任何在时钟线为高电平时数据线上的电平改变都被认为是起始或停止信号。
◆I2C总线数据格式:I2C数据格式图I2C支持两种数据格式:_ 7-bit/10-bit 寻址数据格式_ 7-bit/10-bit 寻址和重复开始信号的数据格式✧S ―I2C 开始标识✧Slava address ―从设备地址。
有两种从地址类型:1)固定的从地址,I2C总线只能接一个同类型的固定的从地址设备。
2)半固定的从地址,前半部分地址是固定的,后半部分地址是可编程的,I2C总线只能接多个同类型的半固定的从地址设备。
串口和I2c总线简介串口和2I C总线1.串口串口是串行接口(Serial Interface)的简称,是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。
串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。
串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。
同步串行是指SPI(Serial Peripheral interface)的缩写,顾名思义就是串行外围设备接口。
SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,TRM450是SPI接口。
异步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送。
UART是一个并行输入成为串行输出的芯片,通常集成在主板上。
UART包含TTL电平的串口和RS232电平的串口。
TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平,MDS2710、MDS SD4、EL805等是RS232接口,EL806有TTL接口。
串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS485等。
RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。
2. 2I C总线2I C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
是微电子通信控制领域广泛采用的一种总线标准。
I2C总线接口S3C44B0X I2C总线概述I2C是一种双向两线制的串行数据传输标准总线。
S3C44B0X RISC微处理器支持多主I2C串行接口。
专用串行数据线SDA和串行时钟线SCL在总线控制器和外围设备之间传送信息,它们都连在I2C总线上。
SDA和SCL线都是双向的。
在多主I2C模式下,多个S3C44B0X RISC微处理器可以从设备接收数据或传送数据到设备。
启动数据传送给I2C总线的主设备也负责终止数据的传送。
S3C44B0X中的I2C总线使用了标准的优先级仲裁过程。
为了控制多主I2C操作,必须为以下寄存器赋值:多主I2C控制寄存器(IICCON)、多主I2C控制/状态寄存器(IICSTAT)、多主I2C Tx/Rx数据移位寄存器(IICDS)和多主I2C 地址寄存器(IICADD)。
当I2C空闲时,SDA和SCL线都处于高电平。
SDA由高电平到低电平的转变能够产生启动条件;当SCL在高电平保持稳定时,SDA由低电平到高电平的转变能够产生停止条件。
启动和停止条件一般由主设备产生。
启动条件产生后,被放到总线上的第一个数据字节的7位地址值能够决定总线主设备所选择的从设备,第8位决定了传送的方向(读或写)。
放到SDA线上的每一个数据字节都是8位。
在总线传送操作中被发送或接收的字节数是无限的,数据总是从最高位MSB开始发送,并且每个数据之后应紧跟着一个应答位ACK。
图7.35所示为I2C总线框图。
数据线图7.35 I2C总线框图需要注意下面几点:●I2C数据保持时间tSDAH最短为0ns。
●检查FC设备的保持时间(FC规格v2.1中,在标准/快速总线模式下,FC数据保持时间最短为0ns)。
●I2C控制器只支持I2C总线设备(标准/快速总线模式),不支持C总线设备。
S3C44B0X I2C总线接口操作S3C44B0X I2C总线接口有4种操作模式:主传送模式、主接收模式、从传送模式和从接收模式。
I2C详解1 I2C接口简介I2C全称:Inter-Integrated Circuit,是一种同步、半双工的通信总线。
同步:发送接收端要严格同步,一般有同步时钟线。
半双工:I2C只有一条数据线,所以master发数据与收数据不能同时进行。
I2C通信速率:模式速率标准模式100 kbps快速模式400 kbps高速模式3.4 MbpsI2C诞生的背景:最初的嵌入系统是使用内存映射(memory-mapped I/O)的方式来互连微控制器和外围设备的。
要实现内存映射,设备必须并行连入微控制器的数据线和地址线,也就意味着:如果要连接一款新的外围设备,需在设计芯片时候确定好。
所以很不灵活并且成本高。
1982年,Philips实验室开发了I2C,方便CPU与外设之间通信。
1.1 I2C原理简介我理解的是:I2C设计时的理念是:信号线尽量少并且速率要尽量高。
信号线少,可以减少引脚占用,这对早期的芯片(引脚很少)的很重要。
当然,如果单纯说减少信号线,1-wire总线只使用1根线通信(比如DS18B20、DHT11等都是使用这种协议),但是1-wire总线是异步通信,所以1-wire总线速率不可能太高(1-wire总线传输速率一般为16.3Kbit/s,最大可达142 Kbit/s,通常情况下采用100Kbit/s 以下的速率传输数据)。
标准的I2C需要两根信号线:SCL(Serial Clock):时钟线,时钟都是有master提供的SDA(Serial Data):双向数据线,发数据或者收数据(收发不能同时)I2C多master多slave示意图:图中是2个master+2个slave的示意,同一时刻只有一个master 与一个slave通信。
若想实现这个效果:1 多个master-slave 时钟、数据线连在一起,需要实现信号的“线与”逻辑(所以SDA、SCL 被设计为漏极开路结构,外加上拉电阻实现“线与”)2 需要实现“时钟同步”和“总线仲裁”,引脚在输出信号的同时还能对引脚上的电平进行检测,检测是否与刚才输出一致,为“时钟同步”和“总线仲裁”提供硬件基础。
CANI2SI2CSPI总线接口总结CAN(Controller Area Network)是一种面向实时通信的串行总线标准。
它最初是由Bosch公司开发,主要用于汽车电子系统中的控制和通信。
CAN总线采用差分信号传输,拥有较高的抗干扰能力和可靠性,可实现在复杂电气环境下的快速数据传输。
CAN总线可以支持多个设备的分布式通信,通过先进的协议机制实现高效的数据传输和数据帧的优先级设置。
CAN总线的通信速率通常为1 Mbps,可以满足实时性要求较高的应用场景,如汽车电子、工业控制和航空航天等。
I2S(Inter-IC Sound)是一种串行音频接口标准。
它由飞利浦(Philips)公司提出,用于在音频设备之间传输音频数据。
I2S接口采用三线制的同步通信方式,包括一个时钟线、一个数据线和一个帧同步线。
I2S接口支持双向通信,可以同时传输音频数据和控制信号。
I2S接口的主要特点是高保真音频传输和灵活的系统集成能力。
它广泛应用于消费电子产品,如音频解码器、音频处理器、音频放大器等。
I2C(Inter-Integrated Circuit)是一种串行通信总线标准。
它由Philips公司开发,用于连接集成电路之间的通信。
I2C总线采用双线制的同步通信方式,包括一个时钟线和一个数据线。
I2C总线可以支持多个设备的串行连接,每个设备都有一个唯一的地址,可以通过该地址进行单独访问。
I2C总线具有简单、低功耗和可靠的特点,适用于连接存储器、传感器、显示器和其他外设等。
它的通信速率通常在100 kbps到3.4 Mbps之间,适用于中等速度的数据传输。
SPI(Serial Peripheral Interface)是一种串行外设接口标准。
它最早由Motorola公司提出,用于连接微控制器和外设之间的通信。
SPI总线采用四线制的同步通信方式,包括一个时钟线、一个主从选择线、一个主机输出从机输入线和一个主机输入从机输出线。
I2C 总线接口逻辑分析1 前言I2C总线I2C总线" target="_blank">I2C总线是具备多CPU系统所需的包括仲裁和高低速设备同步等功能的高性能串行总线。
它以两根连线实现完善的全双工数据传送,是各种总线中使用信号线根数最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。
目前世界上采用的I2C总线有两种规范,它们分别是由荷兰飞利浦公司和日本索尼公司提出的。
现在广泛采用的是飞利浦公司的I2C总线技术规范,它已成为被电子行业认可的总线标准。
由于I2C总线具有标准的规范及众多带I2C接口的外围器件,使得使用I2C总线设计计算机系统变得十分方便、灵活,体积也小,因此在各类实际应用中得到广泛使用。
2 I2C总线的基本原理2.1 I2C总线基本结构I2C总线系统结构灵活,易于模块化、标准化设计。
I2C总线只有两根信号线,一根是数据线SDASDA,另一根是时钟线SCLSCL。
所有进入I2C总线系统中的器件都带有I2C总线接口,符合I2C总线电气规范的特性;而且采用纯软件寻址方法,无需器件片选线的连接。
CPU不仅能通过指令将某个功能器件挂靠或摘离总线,还可对其工作状况进行检测,从而实现对硬件系统即简单又灵活的扩展与控制。
各器件供电可不同,但需共地。
另外,SDA、SCL需分别接上拉电阻。
SDA、SCL都是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。
当总线空闲时,两根线都是高电平。
连接总线的器件的输出端电路必须是集电极开路输出或开漏输出,以具有线“与”功能。
I2C总线的数据传送速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下则可达3.4Mbit/s。
I2C总线接口电路接口电路结构。
2.2 I2C总线数据传送I2C总线数据传输时必须遵循规定的数据传送格式,为一次完整的数据传送格式。
单片机中的I2C总线接口设计原理及应用I2C(Inter-Integrated Circuit)是一种串行通信协议,广泛应用于单片机系统中的外设设备间的通信。
本文将介绍I2C总线接口的设计原理及应用,包括原理介绍、硬件设计要点、软件实现以及应用案例等。
一、I2C总线接口的原理介绍I2C总线是由飞利浦(Philips)公司于上世纪80年代提出的一种串行通信协议,它使用两根线(SDA和SCL)进行数据和时钟的传输。
其中,SDA线用于数据传输,SCL线用于时钟同步。
I2C总线接口的原理非常简洁,主要分为两个角色:主设备(Master)和从设备(Slave)。
主设备负责控制总线的访问和数据的传输,而从设备则响应主设备的指令,并将数据发送给主设备。
在I2C总线上,每个设备都有一个唯一的7位或10位地址。
主设备通过发送起始信号和目标设备的地址来选择与之通信的从设备。
通信的开始由主设备发送起始信号(Start),结束由主设备发送停止信号(Stop)。
数据传输过程中,起始信号和停止信号的边沿触发时机非常重要。
起始信号是在时钟高电平时,数据线由高电平转为低电平,而停止信号则是在时钟高电平时,数据线由低电平转为高电平。
数据传输是在时钟低电平时进行,每个时钟周期传输一个bit的数据,传输的顺序是从高位到低位,同时每传输完一个bit,需要由接收端发送应答信号。
二、I2C总线接口的硬件设计要点1. 电平转换器:由于I2C总线的工作电平是标准的3.3V或5V,因此需要使用电平转换器来适应不同的设备电平要求。
常用的电平转换器有双向电平转换器和单向电平转换器两种,选择合适的电平转换器可以提高系统的稳定性和兼容性。
2. 上拉电阻:I2C总线上的数据线(SDA)和时钟线(SCL)都需要连接上拉电阻,以确保在传输过程中电平稳定。
通常选择2.2kΩ到10kΩ的上拉电阻,使总线电平维持在高电平状态。
3. 保持电容:为了提高I2C总线的稳定性,可以在每个从设备的SDA和SCL线上连接一个保持电容。
I2C介绍I2C总线是两线式串行总线。
I2C总线最主要的优点是其简单性和有效性,支持多主控(multimastering)。
占用空间小,芯片管脚数量少。
总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
最高传送速率100kbps。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
若未收到应答信号,由判断为受控单元出现故障。
I2C规程运用主/从双向通讯。
器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。
主器件和从器件都可以工作于接收和发送状态。
总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。
SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。
I2C总线是一种用于IC器件之间连接的二线制总线。
它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。
1.I2C总线的基本结构采用I2C总线标准的单片机或IC器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。
CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制。
I2C 1.8V上拉电阻一、I2C接口概述I2C(Inter-Integrated Circuit)是一种串行通信协议,它允许在微控制器(MCU)和其他数字器件之间进行高速、双向通信。
I2C总线由数据线(SDA)和时钟线(SCL)两根线组成,所有设备都连接在这两根线上。
通过这两根线,设备之间可以交换数据和控制信号。
二、为何需要使用1.8V上拉电阻在I2C通信中,当总线空闲时,SDA和SCL线需要被拉高到高电平,以避免数据冲突和保证总线的稳定性。
传统的做法是将SDA和SCL线直接连接到电源电压,但是由于各种原因(如电源电压波动、电磁干扰等),这种方式可能会导致数据传输的不稳定性。
为了解决这个问题,引入了1.8V上拉电阻的概念。
使用1.8V上拉电阻的优点如下:1.提高稳定性:1.8V上拉电阻可以确保SDA和SCL线在空闲状态下被稳定地拉高到1.8V,避免了直接连接到电源电压可能带来的数据冲突问题。
2.减小功耗:由于 1.8V上拉电阻的分压作用,总线上电压被降低,从而减小了总线的功耗。
这对于需要长距离传输或连接多个设备的I2C总线来说尤为重要。
3.增强抗干扰能力:通过降低总线电压,1.8V上拉电阻可以减小电磁干扰(EMI)的影响,增强了总线的抗干扰能力。
三、使用1.8V上拉电阻的优点1.稳定通信:使用1.8V上拉电阻可以确保SDA和SCL线在空闲状态下保持在一个稳定的电压水平,避免了由于电源电压波动或电磁干扰导致的通信错误。
2.延长器件寿命:由于 1.8V上拉电阻降低了总线的功耗,从而延长了连接在总线上的器件的寿命。
3.简化电路设计:使用 1.8V上拉电阻可以简化电路设计,因为不需要额外的电路来稳定SDA和SCL线的电压。
4.提高兼容性:使用1.8V上拉电阻符合I2C总线的标准规范,因此可以确保与其他遵循相同规范的设备兼容。
四、如何选择适当的上拉电阻值选择适当的上拉电阻值是确保I2C总线稳定性的关键因素之一。
I2C接⼝I2C是⼀种多向控制总线,它是由PHILIPS公司在⼆⼗世纪⼋⼗年代初设计出来的,利⽤该总线可实现多主机系统所需的裁决和⾼低速设备同步等功能,是⼀种⾼性能的串⾏总线。
I2C总线只⽤两根双向传输线就可以将128个不同的设备互连到⼀起。
这两根线⼀根是时钟线SCL,⼀根是数据线SDA。
外部硬件只需要接两个上拉电阻,每根线上⼀个。
所有连接到总线上的设备都有⾃⼰的地址。
I2C总线上传输的数据是通过在时钟线(SCL)⾼电平期间所对应的数据线(SDA)上的电平来判别的。
在SCL线拉⾼期间对应到SDA线的电平,如果为⾼则这位数据为1,反之则为0。
只有在SCL线为低电平期间,SDA线才可以更新下⼀位数据。
除了传送的数据以外,I2C总线在每⼀帧数据传送之前,还会有⼀个启动信号,以通知从机准备接收数据。
在数据传送结束之后,也会有⼀个停⽌信号,以通知从机数据传输结束。
在SCL为⾼电平期间,若对应的SDA线上有⼀个由⾼变低的电平下降沿,表⽰这是⼀个启动信号。
同样,在SCL为⾼电平期间,若对应的SDA线上有⼀个由低变⾼的电平上升沿,表⽰这是⼀个停⽌信号。
当已经有⼀个启动信号之后,在没有停⽌信号出现之前若再次出现启动信号,则表⽰该信号是⼀个重新启动信号,它主要⽤于在主机不放弃总线控制的情况下启动新的传送。
在启动信号之后紧接着的是地址帧,所有的地址包均为9位,包括7位地址位、1位READ/WRITE控制位(即⽅向位,表明是主机写从机还是从机写主机)与1位应答位。
如果READ/WRITE为1,则执⾏读(从机写主机)操作;否则执⾏写(主机写从机)操作。
从机被寻址后,必须在第九个SCL(ACK)周期通过拉低SDA 作出应答。
地址帧发送后,紧接着就要发送数据帧。
所有在I2C总线上传送的数据包长度为9位,包括8位数据位及1位应答位。
在数据传送中,主机产⽣时钟及START与STOP状态,接收器响应接收。
应答是由从机在第9个SCL周期拉低SDA实现的,如果接收器在第9个SCL周期使SDA为⾼,则发出的是NACK信号。