Coo1Runner-Ⅱ器件I2C接口协议

时间:2008-09-18
  这里将说明I2C的主要通信协议,更详细的说明和时序图请参考I2C规范文档。
  I2C总线包括两个信号线,即SDA和SCL。所有通信都发生在这两个信号线上,连接到同一条总线上的设备数目受限于的总线电容。SDA和SCL都是双向的,通过上拉电阻连接到系统电源。总线空闲时,这两个总线保持高电平。在总线上的I2C设备的输出数据阶段,必须是漏极开路或是集电极开路以实现线与功能。
  每个设备都有的地址,可以工作在发送模式或接收状态,也可以被配置为主设备或从设务。方设备启动总线数据传输,并产生时钟信号,总线上任何其他设备都会被视为从设备。I2C协议同时还具有仲裁机制,如果多台主设备同时申请控制总线,只有一台设备成功获取总线而不会丢失数据。
  数据传输开始于一个START命令,结束于一个STOP命令。SDA在时钟SOL低电平时变化,高电平时保持稳定。START被定义为当SOL为高电平时,SDA由高到低的跳变;STOP被定义为当SOL为高时,SDA由低到高的跳变,如图所示。

I2C总线的—次数据传输


          
  如图 I2C总线的—次数据传输
  每个数据包包含8位数据,后跟一个ACK位。因此数据传输共需要9个SOL,首先传输MSB。发送设备在ACK周期释放SDA,接收设备必须在过程中驱动SDA为低。如果从设备没有将SDA驱动为低,则表明其不能够接收数据,主设备将产生一个STOP状态以退出本次传输;如果主设备没有将SDA驱动为低,则表明从设备发送的是一个字节。标准I2C通信包含4部分,即起始位、从地址、数据传输和停止位。I2C协议规定了两种地址格式,即7位和10位,本设计为7位。起始位之后是7位地址,第8位是读写位,“0”为写;“1”为读。仅仅与地址相匹配的从设备在第9个SOL发一个ACK到SDA,将SDA拉低。
 
  一旦地址匹配成功,主从之间数据传输就会建立,读/写位决定数据传输方向。主设备发一个STOP命令终止传输。然而,主设备在没有发出STOP之前也可能产生一个START信号,此情况被定义为重复开始(Repeat START)。
  

  
上一篇:SPI原理
下一篇:LabVIEW的设计程序框图时应遵循的原则

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料