原创 I2C-BUS

2010-11-13 10:20 2528 7 8 分类: MCU/ 嵌入式

I2C-BUS

I2C总线是由原Philips公司[如今的NXP]所开发的,最开始是开发用于的控制电池的一个总线。

I2C总线标准包含:电气层和协议层。

总线包含两个信号Serial Clock Line [SCL] 和 Serial Data Lines [SDA]。电气连接时,会在SCL和SDA信号线上接一个上拉电阻Rp[Pull],有时考虑静电保护[ESD],会在设备和总线直接加接一个保护电阻Rs。总线上的每个设备都可以发送或接收数据,也都可以作为主设备[Master]或从设备[Slave] 。总线上的时钟由主设备提供,并且总线上可以有多个从设备,但是只能有一个主设备。从设备可以和主设备进行数据的交换,而不能在从设备之间进行数据传输。

I2C总线数据传输速率

*低速模式[Low Speed]:10Kb/s[10kbps]

*标准模式[Standard Mode]:100Kb/s

*快速模式[Fast Mode]:400Kb/s

*快速模式+[Fast Mode Plus]:1Mb/s

*高速模式[High Speed Mode]: 3.4Mbps

I2C总线通信模式:

因为只有一个数据线和一个时钟线,所以只能进行半双工通信[同一时刻只能有一个发送和一个接收]。

I2C总线的最大负载电容有400pF,这决定了总线上最多可挂载的设备数和最远的传输距离。

通信时,采用8bit一个单元进行传输,先发送最高有效位[bit[7..0],先发送bit7],并且总线上的每个设备都有一个独立的设备地址。

-数据:

*发送数据的时候,在时钟SCL为低电平时改变SDA上的数据;

*数据格式:数据长9bits,其中8bits的数据加1bit的响应位[响应位是监听总线数据的设备发出的,发送‘1’表示响应]。

*响应方式:有两种响应方式

1. 接受设备发送‘1’[相应位],然后发送‘0’表示准备好接收下一组数据;

2. 接受设备发送‘1’[相应位],然后发送‘1’表示结束接收。

Note:响应位发送时的时钟同样由主设备提供

-控制模式:

*开始位:在时钟SCL为高时,SDA上出现一个下降沿,表示数据发送的起始位;

*结束位:在时钟SCL为低时,SDA上出现一个上升沿,表示数据发送的结束位;

-设备地址和读写控制:

*总线上的每个设备会有一个7bits的地址,发送时会增加一个读写控制位[1,读;0,写]。

*通信时,主设备先给总线上发送要访问的从设备的设备地址,然后再进行数据的交换。

一个完整的读写控制如下图:

1ae6c954-2259-41a9-9334-9510ce603e3a.GIF

NXP的I2C总线协议标准2007年版本:





文章评论1条评论)

登录后参与讨论

用户1701686 2013-7-21 22:56

博主的这个表述有问题 结束位:在时钟SCL为低时,SDA上出现一个上升沿,表示数据发送的结束位 原文是A LOW to HIGH transition on the SDA line while SCL is HIGH defines a STOP condition. 你这里应该是SCL为高电平时SDA由低到高变化代表STOP
相关推荐阅读
用户1460054 2016-05-09 23:19
变压器
在实际电路中,磁场强度是由励磁电流通过变压器初级线圈产生的,所谓的励磁电流,就是让变压器铁芯进 行充磁和消磁的电流。...
用户1460054 2016-05-03 22:15
蓝牙PCB天线
...
用户1460054 2016-04-17 12:58
Zigbee等相关协议内存空间需求
转自:http://www.ti.com.cn/general/cn/docs/gencontent.tsp?contentId=52864 图 6 以 MSP4304618 MCU 和 CC...
用户1460054 2016-04-14 18:23
cc26XX 片上Flash读、写、擦除操作
以CC2650为例: 因为其内部存储结构的特性,如下图 可见VIMS有四中工作模式。 GPRAM CACHE off ...
用户1460054 2016-03-28 22:44
CC2630_CONTIKI RF相关代码分析三
14. 那么如何完成数据发送呢,所有相关函数都在IEEE_MODE.C文件中,系统中采用函数实现。 static int send(const void *payload, unsigned ...
用户1460054 2016-03-28 22:27
CC2630_CONTIKI RF相关代码分析一
1. contiki-master\cpu\cc26xx-cc13xx\rf-core\ieee-mode.c文件为其相关的函数,改文件只有.C文件,没有.h文件 2. 跳过文件前面的内容,直...
我要评论
1
7
关闭 站长推荐上一条 /2 下一条