I2C
来源:互联网 发布:索尼lt29i网络 编辑:程序博客网 时间:2024/06/07 04:13
一般串行数据通讯都有时钟和数据之分,有异步和同步之别.有单线,双线和三线等.
I2C
1.串行接口的发送和接收一般都各用一条线,如的TXD
2.在I2C
线与:在一个结点(线)上,连接一个上拉电阻到电源 VCC或 VDD和 n个 NPN 或 NMOS 晶体管的集电极 C或漏极 D, 这些晶体管的发射极 E 或源极 S 都接到地线上,只要有一个晶体管饱和,这个结点(线)就被拉到地线电平上.
4.半双工,仅需要两根线(所以又被称为2-wire总线)
5.SDA下降沿跟随一个SCL下降沿表示传输开始 SCL上升沿跟随一个SDA上升沿表示传输结束
6.I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,(否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".)只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
I2C
1.在I2C
(2)用户自定义地址码:D3-D1共3位。这是由用户自己设置的,所以同一IIC总线上同一型号的IC只能最多共挂8片同种类芯片
(3)最低一位就是R/W位。这位不用我多说了 读写是站在主机的立场上定义的.
2.
为了完成一个字节的传输,接收方应该向发送方发送一个ACK位。ACK应该发生在SCL线的第九个脉冲期间。当接受到ACK信号时,发送方应该释放SDA线使SDA线电平为高。接收方应该驱动SDA线为低。因此,在第九个SCL脉冲的高电平期间SDA保持为低(因为信号是“与”的)。ACK的传输可以由软件通过IICSTAT寄存器控制是否禁止,但它仍然是需要产生的。每个字节后应该由对方回送一个应答信号ACK做为对方在线的标志
I2C 总线数据传送过程
1.每次都是先传最高位,通常从器件在接收到每个字节后都会做出响应,即释放SCL线返回高电平,准备接收下一个数据字节,主器件可继续传送。
2.如果从器件正在处理一个实时事件而不能接收数据时,(例如正在处理一个内部中断,在这个中断处理完之前就不能接收I2C 总线上的数据字节)可以使时钟SCL线保持低电平,从器件必须使SDA 保持高电平,此时主器件产生1 个结束信号,使传送异常结束,迫使主器件处于等待状态。当从器件处理完毕时将释放SCL 线,主器件继续传送
读写操作:
在发送模式下,当一个数据传输时,IIC总线接口将等待直到IICDS寄存器收到一个新数据。在一个新数据写入IICDS寄存器前,SCL信号将保持为低。在数据被写入之后,信号线被释放(为高)。ARM需要保持中断信号来辨别当前数据发送完成。在ARM接到一个中断请求后,它将写一个新的数据到IICDS。
在接收模式下,当一个数据接收时,IIC总线接口将等待直到IICDS寄存器数据被读出。在新数据被读出之前,SCL信号保持为低。在数据被读出后,信号线被释放(为高)。ARM应保持中断信号以辨别接收数据操作完成。在ARM收到一个中断请求时,它将从IICDS读出数据。
§主设备传送一个字节到从设备
I2C 总线竞争和仲裁机制
1. 总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况。
2. I2C 总线具有多主控能力,可以对发生在SDA 线上的总线竞争进行仲裁。
3. 其仲裁原则为:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,这种情况下,侦测到总线上是低电平(线与),则发送低电平的设备获得总线控制权。如果两个设备都产生一个低电平为地址的第一位,则应该再仲裁第二个地址位,仲裁会一直继续直到最后一个地址位.
开始:信号表明传输开始。
地址:主设备发送地址信息,包含7
数据:根据指示位,数据在主设备和从设备之间传输。数据一般以8
停止:信号结束传输。
I2C总线的限制
§I2C总线设备都是OC/OD输出,所以高电平靠上拉电阻产生
§由于驱动能力和静态功耗限制,上拉电阻不能取太小值,导致电压上升率dV/dt受限
§I2C总线上总负载电容越小越有利于驱动
§I2C高速规范要求负载电容小于400pf
- I2C
- I2C
- i2c
- I2C
- I2C
- i2c
- i2c
- I2C
- I2C
- I2c
- I2C
- I2C
- I2C
- I2C
- I2C
- i2c
- I2C
- i2c
- DX9 实现天空盒出现缝隙
- AFNetWorking知识点总结
- 2001年畅销书 UML精粹———标准的面向对象建模语言简介(第2版)
- 哪本书是对程序员最有影响、每个程序员都该阅读的书?
- iOS 屏幕尺寸和分辨率
- I2C
- CR for vs2010
- HTTP协议
- [Phonegap+Sencha Touch] 移动开发(环境配置)
- 连连看算法
- Android蓝牙4.0的数据通讯
- AfxGetApp用法
- 吐槽蛋疼的工作
- MyEclipse快捷键大全 _转自 http://www.cnblogs.com/strivers/archive/2011/02/06/1949477.html