0

关于投票
IIC简介

I2C(InterIntegrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
1 I2C
总线特点
I2C
总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering) 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
2 I2C
总线工作原理
2.1
总线的构成及信号类型
I2C
总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、ICIC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C
总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIPPIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。
3
总线基本操作
I2C
规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。
3.1
控制字节
在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。
3.2
写操作
写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。
3.3
读操作
读操作有三种基本操作:当前地址读、随机读和顺序读。图4给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是不关心。为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。

系统分类: 接口电路
用户分类: IIC相关
标签: IIC
来源: 无分类
发表评论 阅读全文(476) | 回复(2)

0

关于投票
I2C tHD;DAT

The IIC-Bus Specification电气特性里规定了SDA数据保持时间的最大值(标准模式3.47us,快速模式0.9us)为什么会有最大值这一规定呢?刚开始我觉的非常奇怪,后来在飞利浦的IIC 论坛上看到了有人提出相同的问题,原文如下

Hello,

I have two questions about the tHD;DAT parameter specified in the PCA9541 datasheet. Specifically, I'm wondering why there is a maximum value for it.

1) Say for instance that we run our I2C interface at 5 KHz. Won't we automatically fail the tHD,DAT max of 3.45us? It is not clear to me why there is a minimum AND maximum hold time specified for data.

2) Why is tHD,DAT (MAX) specified for the I2C muxes only? This parameter does not appear in the datasheet for other Philips I2C devices (LED dimmers/blinkers, EEPROMs, etc.). This leads me to believe that tHD,DAT (MAX) is either
a) a documentation error, or
b) specified because of some internal implication specific to the I2C mux parts

Any assistance in clearing up these questions would be greatly appreciated.

Thanks in advance for the help.

该问题没有看见回答,不过有一个相类似的回答,原文如下

The maximum Data hold time is a direct reflection of the data setup time and the maximum rising edge transition time. It comes from the requirement that the data change states only when the clock is low, because data transitions with the SCL high are defined as start or stop conditions.

If the slave stretches the clock low time it must complete the data line switching before it releases the SCL to satisfy the Data set up time.

The maximum Data hold time = SCL minimum pulse width low - ( Data set up time and rising transition time)

Maximum Data hold time = 4.7 us - (0.25 us + 1 us) = 3.45 us for standard mode parts.

Maximum Data hold time for fast mode = 1.3 us - (0.1 us + 0.3 us) = 0.9 us

IIC SPEC里其实有一条注释

The maximum tHD;DAT has only to be met if the device does not stretch the LOW period (tLOW) of the SCL signal.

这段话说的很清楚,如果你不延长SCL低电平时间的话,该最大值必须遵守,也就是说你如果延长SCL低电平时间,该最大值你可以不遵守。

系统分类: 汽车电子
用户分类: IIC相关
标签: IIC SDA hold time
来源: 原创
发表评论 阅读全文(429) | 回复(0)

2

关于投票
IIC Q&A sheet

IIC非常基础的知识,如果能够理解的话,那你对IIC可以算是入门了。以前从来没有研究过它的时序,

最近仔细看了一把,发觉IIC总线协议挺有意思的,所以贴出来大家共享一下。e文的,还有个中文的IIC

总线操作原理,解释得也很清楚。

看了觉得不错的朋友,不要忘了回复一下,偶谢谢了。icon

rar

doc

系统分类: 嵌入式
用户分类: IIC相关
标签: IIC QA IIC协议
来源: 整理
发表评论 阅读全文(1192) | 回复(11)
总共 , 当前 /