I2C管理总线.docx

上传人:b****1 文档编号:3224556 上传时间:2023-05-05 格式:DOCX 页数:44 大小:65.26KB
下载 相关 举报
I2C管理总线.docx_第1页
第1页 / 共44页
I2C管理总线.docx_第2页
第2页 / 共44页
I2C管理总线.docx_第3页
第3页 / 共44页
I2C管理总线.docx_第4页
第4页 / 共44页
I2C管理总线.docx_第5页
第5页 / 共44页
I2C管理总线.docx_第6页
第6页 / 共44页
I2C管理总线.docx_第7页
第7页 / 共44页
I2C管理总线.docx_第8页
第8页 / 共44页
I2C管理总线.docx_第9页
第9页 / 共44页
I2C管理总线.docx_第10页
第10页 / 共44页
I2C管理总线.docx_第11页
第11页 / 共44页
I2C管理总线.docx_第12页
第12页 / 共44页
I2C管理总线.docx_第13页
第13页 / 共44页
I2C管理总线.docx_第14页
第14页 / 共44页
I2C管理总线.docx_第15页
第15页 / 共44页
I2C管理总线.docx_第16页
第16页 / 共44页
I2C管理总线.docx_第17页
第17页 / 共44页
I2C管理总线.docx_第18页
第18页 / 共44页
I2C管理总线.docx_第19页
第19页 / 共44页
I2C管理总线.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

I2C管理总线.docx

《I2C管理总线.docx》由会员分享,可在线阅读,更多相关《I2C管理总线.docx(44页珍藏版)》请在冰点文库上搜索。

I2C管理总线.docx

I2C管理总线

I2C管理总线:

(Intel-IntegratedCircuitbus)I2C总线是一种由飞利浦公司开发的串行总线,产生于80年代,最初为音频和视频设备开发,现主要在服务器管理中使用。

是两条串行的总线,用于连接微控制器及其外围设备。

I2C总线包括一个两端接口,通过一个带有缓冲区的接口,数据可以被I2C发送或接受。

利用I2C硬件总线技术可以对服务器的所有部件进行集中管理,可随时监控风扇、内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。

主要的优点是其简单性和有效性。

哈哈,时钟都是忽悠的,数据则是晕菜的,串行通讯一个模样

一般串行数据通讯都有时钟和数据之分,有异步和同步之别.

有单线,双线和三线等.

I2C肯定是2线的(不算地线).

I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了.

I2C的原则是:

在SCL=1(高电平)时,SDA千万别忽悠!

!

!

否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".

在SCL=0(低电平)时,SDA随便忽悠!

!

!

(可别忽悠过火到SCL跳高)

每个字节后应该由对方回送一个应答信号ACK做为对方在线的标志.

非应答信号一般在所有字节的最后一个字节后.一般要由双方协议签定.

SCL必须由主机发送,否则天下大乱.

首字节是"片选信号",即7位从机地址加1位方向(读写)控制.

从机收到(听到)自己的地址才能发送应答信号(必须应答!

!

!

)表示自己在线.

其他地址的从机不允许忽悠!

!

!

(当然群呼可以忽悠但只能听不许说话)

读写是站在主机的立场上定义的.

"读"是主机接收从机数据,"写"是主机发送数据给从机.

重复位主要用于主机从发送模式到接收模式的转换"信号",由于只有2线,

所以收发转换肯定要比SPI复杂,因为SPI可用不同的边沿来收发数据,而I2C不行.

在硬件I2C模块,特别是MCU/ARM/DSP等每个阶段都会得到一个准确的状态码,

根据这个状态码可以很容易知道现在在什么状态和什么出错信息.

7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址.

10位I2C总线可以挂接更多的10位I2C设备.

总之,只要掌握I2C的忽悠记,一般很容易掌控...

I2C总线原理及应用实例

 

 

 I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。

I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。

例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。

可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。

 1 I2C总线特点

 I2C总线最主要的优点是其简单性和有效性。

由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。

总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。

I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。

一个主控能够控制信号的传输和时钟频率。

当然,在任何时间点上只能有一个主控。

 2 I2C总线工作原理

 2.1总线的构成及信号类型

 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。

在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。

各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。

CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。

这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。

 I2C总线在传送数据过程中共有三种类型信号,它们分别是:

开始信号、结束信号和应答信号。

 开始信号:

SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

 结束信号:

SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。

 应答信号:

接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。

若未收到应答信号,由判断为受控单元出现故障。

 目前有很多半导体集成电路上都集成了I2C接口。

带有I2C接口的单片机有:

CYGNAL的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。

很多外围器件如存储器、监控芯片等也提供I2C接口。

 3 总线基本操作

 I2C规程运用主/从双向通讯。

器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。

主器件和从器件都可以工作于接收和发送状态。

总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。

SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。

参见图1。

 

图1串行总线上的数据传送顺序

 3.1控制字节

 在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。

如图2所示。

图2控制字节配置

 3.2写操作

 写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。

关于页面写的地址、应答和数据传送的时序参见图3。

 

图3页面写

3.3读操作

 读操作有三种基本操作:

当前地址读、随机读和顺序读。

图4给出的是顺序读的时序图。

应当注意的是:

最后一个读操作的第9个时钟周期不是“不关心”。

为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。

图4顺序读

 4 实例:

X24C04与MCS-51单片机软硬件的实现

 X24C04是XICOR公司的CMOS4096位串行EEPROM,内部组织成512×8位。

16字节页面写。

与MCS-51单片机接口如图5所示。

由于SDA是漏极开路输出,且可以与任何数目的漏极开路或集电极开路输出“线或”(wire-Ored)连接。

上拉电阻的选择可参考X24C04的数据手册。

下面是通过I2C接口对X24C04进行单字节写操作的例程。

流程图及源程序如下:

 

图5X24C04与51单片机接口

;名称:

BSENT

;描述:

写字节

;功能:

写一个字节

;调用程序:

;输入参数:

A

;输出参数:

BSEND:

MOVR2,#08H;1字节8位

SENDA:

CLRP3.2   ;

RLCA            ;左移一位

MOVP3.3,C        ;写一位

SETBP3.2

DJNZR2,SENDA     ;写完8个字节?

CLRP3.2          ;应答信号

SETBP3.3

SETBP3.2

RET

图6流程图

 5 结束语

 在I2C总线的应用中应注意的事项总结为以下几点:

 1)严格按照时序图的要求进行操作,

 2)若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻。

 3)程序中为配合相应的传输速率,在对口线操作的指令后可用NOP指令加一定的延时。

 4)为了减少意外的干扰信号将EEPROM内的数据改写可用外部写保护引脚(如果有),或者在EEPROM内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判断EEPROM是否被意外改写。

                    

基于I2C总线的ZLG7290与AVR单片机接口技术及应用

作者:

张琴琴,兰金虎,孙 勇  发布日期:

2006-06-2614:

19  查看数:

0

中文摘要:

  文中介绍了ZLG7290I2C接口键盘及LED驱动器的特性、工作原理及I2C的传输通讯协议。

该芯片具有I2C串行接口,可驱动8位共阴级数码管或64只独立LED和64个按键,AVR单片机具有较为优越的性能。

给出了ZLG7290I2C接口键盘及LED驱动器与ARV系列单片机AT90S2313的接口技术及其应用实例。

英文摘要:

  Thecharacteristics,principlesandtransactionresolutionofI2C-wireZLG7290interfacekeyboardwithLEDdriverswereintroduced.I2C-wirecandrive8bitsLEDwhichwereconnectedwithcathodcommonly,andcanalsodrive64LEDSandkeyswhichwereunattached,andAVRsingle-chiphasbetterperformance.TheprogrammableresolutionwasalsogivenbasedonAVR.

1 I2C总线概述

    I2C总线是INTER-IC串行总线的缩写。

这种串行总线上的各单片机或集成电路模块通过一条串行数据线(SDA)和一条串行时钟线(SCL)进行信息传送。

I2C总线作为2线串行接口,在标准模式下,数据传输可达到100kbit/s,在快速方式下,数据传输可达到400kbit/s,在高速模式下,数据传输可达314Mbit/s.而且它有极低的电流消耗,可抗高噪声干扰,其电源电压范围宽,工作的温度范围广。

同时,由于其占用硬件资源少,传输速度快,目前有50多家公司的1000多种产品支持该协议,所以,大量的I2C总线应用在视频、音像以及各种设备间的通讯中。

而且其本身具有一定的总线协议、时序、数据传输传送格式,以及数据传送的起始和终止信号等。

同时I2C总线也是一个多主机总线,当两个或多个主控器同时想占用总线时,就会产生总线竞争。

I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争产生仲裁过程。

4 硬件设计原理

    系统硬件电路结构如图1所示,系统中温度传感器DS18B20的数据端DQ接到AT90S2313的PD.0口,AT90S2313的D口是一个带内部上拉电阻的7位双向I/O,口,用于实现数据的双向传输。

通过编写单总线初始化、读、写子程序以及温度转换函数即可实现温度的测量。

当温度被读到单片机内时,再通过AT90S2313与ZLG7290的通讯电路即可实现温度值的显示。

ZLG7290的I2C总线接口(通讯接口)的数据线(SDA)和时钟线(SCL)分别与AVR单片机AT90S2313的PB6(ISO)(主输入从输出)端、PB7(SCK)(时钟端)端口相连。

这样PB6(ISO)和PB7(SCK)将会根据I2C总线上时钟线和数据线的时序关系输出相应的高低电平信号。

同时ZLG7290芯片能提供键盘中断信号,方便与处理器接口,所以可利用其段、位寄存器直接驱动LED显示器。

该系统Dig7~Dig0位用于选通某位共阴极的数码管,SegA~SegH位,外经200Ω的上拉电阻后,直接与LED显示器的某一段相连。

6 结论

    文中介绍了基于I2C总线的AVR单片机与其外围设备ZLG7290之间的通讯的软硬件的设计。

该系统已经成功的应用到到与单总线数字温度传感器相连接来实现的对温度的测量。

它可以把实际检测到的温度值显示出来,还可以与其他检测设备连接来显示测量值。

由于I2C总线传输速度快,数据传输的有效性好、可靠性高,使得该系统通讯良好。

而且ZLG7290接口芯片的体积小,使得电路布置灵活、简捷、方便,降低了生产成本。

统通讯良好。

而且ZLG7290接口芯片的体积小,使得电路布置灵活、简捷、方便,降低了生产成本。

I2C总线-24系列

 

常用型号及基本参数见下表:

型号

擦写

次数

容量/结构

写入

时间

最高传输

时钟速率

工作电压

特征

封装

24COO

100万

1Kbits(x8)

4ms

400kHz

4.5Vto5.5V

超小型封装SOT-23-5

P.SN.ST.OT

24LC0O

100万

1Kbits(x8)

4ms

400kHz

2.5Vto6.0V

P.SN.ST.OT

24AA0O

100万

1Kbits(x8)

4ms

400kHz

1.8Vto6.0V

P.SN.ST.OT

24CO1C

100万

1Kbits(x8)

1ms

400kHz

4.5Vto5.5V

写入时间短有地址选择线

P.SN.ST

24CO2C

100万

2Kbits(x8)

1ms

400kHz

4.5Vto5.5V

P.SN.ST

24CO1B

100万

1Kbits(x8)

10ms

100kHz

4.5Vto5.5V

温度范围宽:

-40℃~+125℃

P.SN

24CO2B

100万

2Kbits(x8)

10ms

100kHz

4.5Vto5.5V

P.SN

24CO8B

100万

8Kbits(x8)

10ms

100kHz

4.5Vto5.5V

P.SN

24C16B

100万

16Kbits(x8)

10ms

100kHz

4.5Vto5.5V

P.SN

24LCO1B

100万

1Kbits(x8)

10ms

400kHz

2.5Vto5.5V

硬件写保护

P.SN.OT.ST

24LCO2B

100万

2Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN.ST

24LCO4B

100万

4Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN.ST

24LCO8B

100万

8Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN.ST

24LC16B

100万

16Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN.ST.MS

24AA01

100万

1Kbits(x8)

10ms

400kHz

1.8Vto5.5V

硬件写保护

P.SN

24AA02

100万

2Kbits(x8)

10ms

400kHz

1.8Vto5.5V

P.SN.ST

24AA04

100万

4Kbits(x8)

10ms

400kHz

1.8Vto5.5V

P.SN.ST

24AA08

100万

8Kbits(x8)

10ms

400kHz

1.8Vto5.5V

P.SN.ST

24AA16

100万

16Kbits(x8)

10ms

400kHz

1.8Vto5.5V

P.SN.ST

24LC32A

100万

32Kbits(x8)

5ms

400kHz

2.5Vto5.5V

32BYTE/页有地址选择线

P.SN.SM

24AA32A

100万

32Kbits(x8)

5ms

100kHz

1.8Vto5.5V

P.SN.SM

24LC64

100万

64Kbits(x8)

5ms

400kHz

2.5Vto5.5V

32BYTE/页有地址选择线

P.SN.SM.ST

24AA64

100万

64Kbits(x8)

10ms

100kHz

1.8Vto5.5V

P.SN.SM.ST

24FC128

10万

128Kbits(x8)

5ms

1MHz

2.5Vto5.5V

64BYTE/页有地址选择线

P.SN.SM.14ST

24LC128

10万

128Kbits(x8)

5ms

400kHz

2.5Vto5.5V

24AA128

10万

128Kbits(x8)

10ms

100kHz

1.8Vto5.5V

24FC256

10万

256Kbits(x8)

5ms

1MHz

2.5Vto5.5V

64BYTE/页有地址选择线

P.SN

24LC256

10万

256Kbits(x8)

5ms

400kHz

2.5Vto5.5V

24AA256

100K

256Kbits(x8)

10ms

100kHz

1.8Vto5.5V

24CO1SC

100万

1Kbits(x8)

10ms

400kHz

2.5Vto5.5V

DIE用于IC卡

S.W.WF

24CO2SC

100万

2Kbits(x8)

10ms

400kHz

2.5Vto5.5V

S.W.WF

24LC16SC

100万

16Kbits(x8)

10ms

400kHz

2.5Vto5.5V

S.W.WF

24LC32ASC

100万

32Kbits(x8)

5ms

400kHz

2.5Vto5.5V

S.W.WF

24LC64SC

100万

64Kbits(x8)

5ms

400kHz

2.5Vto5.5V

S.W.WF

24LC128SC

10万

128Kbits(x8)

5ms

400kHz

2.5Vto5.5V

S.W.WF

24LC256SC

10万

256Kbits(x8)

5ms

400kHz

2.5Vto5.5V

S.W.WF

24LC21

100万

1Kbits(x8)

10ms

400kHz

2.5Vto5.5V

符合DDC1&DDC2接口标准

P.SN

24LCS21

100万

1Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN

24LC21A

100万

1Kbits(x8)

10ms

400kHz

2.5Vto5.5V

同上;并具有恢复DDC1状态功能

P.SN

24LCS21A

100万

1Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN

24LC024

100万

2Kbits(x8)

10ms

400kHz

2.2Vto5.5V

有地址选择线。

024硬件写保护;S52软、硬件写保护

P.SN.ST

24LC025

100万

2Kbits(x8)

10ms

400kHz

2.2Vto5.5V

P.SN.ST

24LCS52

100万

2Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN.ST

24LCS61

100万

1Kbits(x8)

10ms

400kHz

2.5Vto5.5V

软件设定器件地址,软件写保护

P.SN.ST

24LCS62

100万

2Kbits(x8)

10ms

400kHz

2.5Vto5.5V

P.SN.ST

在微控制器的控制系统和家用电器(如电视机等)中,近年来采用了I2C总

线。

什么是I2C总线呢?

I2C就是IIC,是inter-Integrated-Circuit三个英

文单词取第一个字母构成的缩写。

I2C总线用两条线(SDA和SCL)在总线和装

置之间传递信息,在微控制器和外部设备之间进行串行通讯或在主设备和从

设备之间的双向数据传送。

其结构如附图所示。

两条通讯线通过上拉电阻被

拉升至+5V。

在控制系统中的每个集成电路可以通过一个CMOS缓冲器来读每

一条线路,也可以通过一个栅极开路的FET管将每一条线的电平下拉。

因此,

对每个芯片说来,每条线既是输入线,又是输出线。

I2C总线遵从同步串行

传输协议,即各位串行(一位接一位)发送,由时钟(clock)线过渡(边沿)指

示读数据(data)线的时刻。

每个数据包前有一个地址,以指示由哪个器件来

接收该数据。

I2C总线是1980年由Philips公司推出的,现有很多I2C专用芯

片可资应用,其中包括时钟—日历(clock-calendar)芯片和LCD显示驱动器。

此外,I2C协议很容易由微处理器或PC机和并行口来仿真。

有关I2C总线的详

情可参阅Philips公司的数据手册IC12(I2C Peripherals,I2C外设);也可

在因特网上处查阅。

 

//-------------虚拟i2c软件包头文件  iic.h  -----------------------//

//****************************************************************//

sbitSDA=P1^7;                       //定义IIC数据线//

sbitSCL=P1^6;                      //定义IIC时钟线//

#defineucharunsignedchar

#defineuintunsignedint

externvoiddelay(uintx);         //延时子程序//

externvoidsta();          //启动IIC总线//

externvoidstop();         //停止IIC总线//

externvoidmack();         //发送应答位//

externvoidmnack();        //发送非应答位//

externvoidcack();       //应答位检查//

externvoidwrbyt(ucharshu);       //发送1 个字节//

externviod  wrbyt0();                  

externvoidwrbyt1();

externucharrdbyt();                    //读取 1 个字节//

externvoidwrnbyt(ucharslaw,ucharnumber,ucharff[]);   //发送N个字节//

externvoidrdnbyt(ucharslar,uch

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2