Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12838650
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: LINUX

2011-04-24 17:20:42

1、IIC总线接口操作模式:

       主传送模式、主接收模式、从传送模式和从接收模式

2、起始和停止条件

    当I2C总线接口未被激活时,一般处于从模式,也就是说,在检测到SDA线上的启动条件之前,接口应处于从模式(SCL时钟信号保持高电平时,SDA线由高电平到低电平的转变产生启动条件)。当接口状态变为主模式时,SDA线上的数据传送被启动,且SCL信号产生。

     启动条件能够在SDA线上传送一个字节的连续数据,停止条件能够结束数据的传送。停止条件是当SCL为高电平时,SDA线上由低电平到高电平的转变启动和停止条件总是由主设备产生的。当启动条件产生时,I2C总线忙;停止条件产生后几个时钟,I2C总线又变为空闲。

     当主设备产生启动条件时,将发送一个从地址通知从设备。这一字节的地址包括7位地址和1位传送方向指示(读或写)。如果第8位是0,表明是写操作(发送操作),如果第8位是1,表明是读数据(接收操作)。

  主设备通过发送一个停止条件完成传送操作。如果主设备想继续传送数据到总线上,那么将产生另一个启动条件和另一个从地址,这样,读/写操作就能以不同的格式进行。

3、数据的有效性 

SDA 线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变。

4:总线空闲状态

SDASCL两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高; 

5:字节格式 

发送到SDA 线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位,首先传输的是数据的最高位MSB

5:响应 

数据传输必须带响应,相关的响应时钟脉冲由主机产生,在响应的时钟脉冲期间发送器释放SDA 线(高)。在响应的时钟脉冲期间接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低。

1):应答信号ACK

I2C总线的数据都是以字节(8位)的方式传送的,发送器件每发送一个字节之后,在时钟的第9个脉冲期间释放数据总线,由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。
2
):无应答信号NACK
         
在时钟的第9个脉冲期间发送器释放数据总线,接收器不拉低数据总线表示一个NACKNACK有两种用途:
     a
、一般表示接收器未成功接收数据字节;b、当接收器是主控器时,它收到最后一个字节后,应发送一个NACK信号,以通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP

阅读(3185) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~