I2C只用两条线(SDA和SCL)在连接到总线上的设备之间传送数据.每一个设备都由唯一的地址来识别(不管是微处理器、LCD驱动器、存储器或者键盘接口),并且可以依照设备的功能作为发送器或者接收器使用.LCD驱动器可能只是个接收器,而存储器可以发送和接受数据.除了发送器和接收器,当传送数据时设备还可以作为主机或者从机.主机就是初始化数据传输和产生时钟信号的设备,在那个时刻,任何被寻址的设备都是从机.
I2C总线是一个多主机总线.意味着可以连接多个可以控制总线的设备到总线上.主机通常是微控制器,我们可以考虑以下两个连接到总线上的微处理器之间的数据传输的情况.
这个例子中突出了I2C总线中的主从和接收器-发送器之间的关系.注意这些关系不是固定的,仅依赖于当前时刻数据传输的方向.数据传输的过程如下:
1.假定微控制器A向微控制器B发送数据
微控制器A(主机)寻址微控制器B(从机)
微控制器A(主机-发送器)发送数据到微控制器B(从机-接收器)
微控制器A结束数据传输
2.假定微控制器A从微控制器B接收数据
微控制器A(主机)寻址微控制器B(从机)
微控制器A(主机-接收器)从微控制器B(从机-发送器)接收数据
微控制器A结束数据传输
甚至在这种情况下,主机(微控制器A)产生时序并终止传输.
在多个微控制器连接到I2C总线上时意味着可能有多个主机尝试初始化数据传输.为了避免由此引发的混乱,设计了一个仲裁机制.它依靠线与逻辑连接所有I2C接口道I2C总线.
如果有多个主机尝试发送信息到总线上,在其它产生"0"的情况下,首先产生"1"的主机会丢掷仲裁.仲裁时的时钟信号是用线与连接到SCL线的主机产生的时钟的同步结合.
I2C总线上的主机设备通常负责产生时钟,当传输数据时每个主机产生自己的时钟信号.只有在低速从设备控制时钟线或者仲裁发生时,主机的总线时钟才会被改变.
下表总结了I2C总线中的一些配置选择:
[1]这里也指被当作从机的主机
[2]时钟拉伸是部分从机的特性.如果在系统中没有从机可以拉伸时钟(将SCL拉低),主机一定需要设计处理程序
[3]'Bit banging'(软件模拟)多个主机系统应该考虑START字节
SDA和SCL信号
SDA和SCL都是双向线路,通过电流源或者上拉电阻连接到一个正向电压.(见下图)当总线空闲时,两条线都是高电平.连接到总线的设备的输出级必须是OD(漏极开路)或者OC(集电极开路)门才能执行线与功能.在标准模式下I2C总线传输数据可以达到100kb/s的速度,而在快速模式下达到400kb/s的速度,快速plus模式下是1Mb/s的速度,告诉模式下是3.4Mb/s的速度.总线的电容限制连接到总线上的接口数量.
对于一个单一主机的应用,如果总线上没有设备可以拉低时钟那么主机的SCL输出应该是push-pull(推挽)驱动设计.
SDA和SCL的逻辑电平
由于有各种不同的工艺的设备(CMOS NMOS 双极性)可以连接到I2C总线,低电平和高电平不是固定的而是依赖于相对应的VDD的电平.
数据有效性
在时钟为高期间SDA线上的数据必须稳定.只有在SCL线上的时钟信号低时数据线才可以改变高低状态.每个数据位传输都需要一个时钟产生.
开始和终止条件
所有的传输都由一个START(S)开始,有一个STOP(P)终止.
START条件是当SCL高时SDA从高到低
STOP条件是SCL高时SDA从低到高
开始条件和终止条件一直由主机产生.在开始条件后总线就处于忙状态.在终止条件后隔上一个固定时间总线就处于空闲状态.如果没有终止条件产生,而是一个重复的开始条件(Sr),那总线依旧是忙状态.这种情况下S和Sr在功能上是一样的.
如果连接到总线的设备包含了必须的接口硬件那么开始条件和终止条件的检测时很容易的.但是没有这样接口的微控制器在每个时钟周期内至少要采样两次SDA线来识别有没有电平变化.
关键字:I2c总线 SDA SCL
引用地址:
(2)I2c总线SDA\SCL以及开始终止条件
推荐阅读最新更新时间:2024-11-08 15:37
基于MAX1069的单片机数据采集系统的设计
1 概述
在MCS-51系列不具备I2C总线接口的单片机组成的智能仪器和工业测控系统中,当数据传输速度要求不太高时通过模拟I2C总线可以增加应用系统的接口器件的种类,提高应用系统的性能。
I2C总线,即IC与IC之间沟通的总线,是一种双向二进制总线,即串行时钟线SCL和串行数据线SDA两条线路组成,提高了硬件的效率和简化电路设计。I2C总线接口已经集成在片上,不需要单独设计总线接口和译码电路,电路的互连减少。MAX1069采用单电源供电,利用内部4MHz时钟对其单端模拟输入进行单极性转换。具有自动关断、内部+4.096V基准和兼容于I2C、提供快速及高速模式的2线串行接口。对于不带I2C串行总线接口的MCS-51系列单
[单片机]
uart,spi,i2c总线的区别
I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于I2C的数据线是双向的,所以隔离比较复杂,SPI则比较容易。所以系统内部通信可用I2C,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是I2C和SPI都不适合长距离传输。长距离时就要用485了。 第一: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS);UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上:
[嵌入式]
I2C总线通信接口的CPLD实现
摘要: 介绍采用ALTERA公司的可编程器件,实现I2C总线的通信接口的基本原理;给出部分VHDL语言描述。该通信接口号专用的接口芯片相比,具有使用灵活,系统配置方便的特点。
关键词: I2C总线 CPLD VHDL
I2C总线是PHILIPS公司开发的一种简单、双向二线制同步串行总线。它只需要两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。该总线是具备多主机系统所需要的包括裁决和高低速设备同步等功能的高性能串行总线,应用极为广泛。
目前,虽然市场上有专用I2C总线接口芯片,但是地址可选范围小,性能指标固定,功能单一,而且使用不方便。针对I2C总线的电气特性及其通信协
[应用]
可编程数字电位器在AVR单片机中的应用
1 引言 AVR 嵌入式单片机具有丰富的硬件、软件资源,其中的串行I2C接口能满足很多应用场合的要求,两个 AVR 单片机通过I2C总线直接连接就可实现单片机相互通信; AVR 单片机还可以和任何具有I2C总线接口的外设直接连接而无须其它硬件电路支持。而X9221系列可编程数字电位器在智能测试设备上应用非常广泛,通过I2C总线可以简单地构成单片机与各种外设之间乃至与计算机之间的通信,建立友好的人机界面联系。硬件设计简单、灵活,只需要将所有设备的SDA和SCL信号线分别并联在一起并加上拉电阻即可,有助于提高设备的自动化水平、可靠性、稳定性及电气装配的工艺性。 AVR 单片机和X9221系列可编程数字电位器都有内置的E2ROM
[单片机]
基于UniSpeech-SDA80D51的车载音响声控系统
现代电子技术的发展,使得越来越多的车载电器加入到汽车电子行列中,在改善汽车性能的同时,也增加了汽车驾驶操作的复杂度,给行车过程带来了不安全隐患。随着语音识别算法的改进和新一代专用语音处理芯片的问世,使得语音控制代替了手动控制车载电器,从而减轻了驾驶员手动操作负担,大大提高了行车安全性。 目前我国的车身电子语音控制主要集中在汽车导航系统的应用上,语音识别技术在车身电子中的应用没有充分发挥。本文首次提出了一种以专用语音处理芯片UniSpeech-SDA80D51为核心组成的非特定人车载音响语音控制系统的设计方案,并实现了系统样机的研制。 1 车载音响语音控制系统 系统由语音采集、语音识别、控制驱动和车载音响等模
[嵌入式]
I2C总线中上拉电阻、电源电压、总线电容三者之间的函数关
在我们的实际设计中,需要清楚I2C的总线的两个特征: 1、串行数据SDA和串行时钟SCL线都是双向线路,通过一个电流源或上拉电阻Rp 连接到正的电源电压+VDD,当总线空闲时这两条线路都是高电平。连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。I2C 总线上数据的传输位速率,在标准模式下可达100kbit/s,快速模式(F/S)下可达400kbit/s,高速模式(Hs)下可达3.4Mbit /s。
2、连接到相同总线的IC数量只受到总线的最大电容400pF限制。如果总线线路的负载电容升高,位速率将逐渐下降。 总线规定使用非标准电源电压,不遵从I2C 总线系统电平规定的器件,必须将输入电平连接到有上拉电阻Rp
[嵌入式]
在P87LPC764单片机I2C总线系统中扩展LCD显示器
1 引言 I2C总线是Philips公司推出的芯片间串行传输总线。它仅用串行数据线(SDA)和串行时钟线(SCL)两根连线便实现了完善的全双工同步数据传送,并可很方便地构成多机系统和外围器件扩展系统。 本文介绍在P87LPC764单片机中利用I2C总线系统中典型的LCD驱动控制器件PCF8577C来扩展256段静态LCD的电路设计方法。 2 硬件电路设计 2.1 P87LPC764单片机的I2C总线接口 P87LPC764是Philips公司生产的一种小封装、低成本、高性能的单片机(具体内容见参考文献2)。它采用80C51加速处理器结构,片内带有支持I2C总线的硬件接口。当激活I2C总线时,P87LPC764端
[单片机]
I2C总线实现TMS320VC5509A引导装载设计
1 引言 DSP芯片的Bootloader程序用于上电时将用户程序从外部非易失性、慢速存储器或外部控制器中装载到片内高速RAM中,保证用户程序在DSP内部高速运行,TI公司的C55x系列DSP芯片提供多种装载模式,主要包括HPI引导装载、串行E2ROM引导装载、并行引导装载、串行口引导装载、I2C总线E2ROM引导装载等,通常使用的是并行引导装载模式,该方式引导速度快实现简单,但是体积和功耗也较大,随着串行接口存储设备容量的提高,串行引导方式体积小、功耗低的优势便显现出来了,所以使用ARM的串行接口对DSP进行引导装载,不仅能省去存储芯片,而且利用ARM的ISP功能,可以根据需要改变用户程序,有利于系统的维护和升级。 本文以TM
[嵌入式]