5回答

0收藏

I2C总线忽悠记

其他 其他 4221 人阅读 | 5 人回复 | 2007-07-19

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

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的忽悠记,一般很容易掌控...
分享到:
回复

使用道具 举报

回答|共 5 个

倒序浏览

沙发

紫色湄澜池

发表于 2007-7-19 18:49:50 | 只看该作者

RE:I2C总线忽悠记

回复 支持 反对

使用道具 举报

板凳

tanoshimi-31870

发表于 2008-2-17 23:58:33 | 只看该作者

RE:I2C总线忽悠记

回复 支持 反对

使用道具 举报

地板

zzj0329

发表于 2008-3-5 16:16:21 | 只看该作者

RE:I2C总线忽悠记

楼主强人哪
PFPF
回复 支持 反对

使用道具 举报

5#

yachong001

发表于 2008-7-29 11:17:36 | 只看该作者

RE:I2C总线忽悠记

这个得顶!!!!!
回复 支持 反对

使用道具 举报

6#

zhhc000

发表于 2008-12-12 10:32:18 | 只看该作者

RE:I2C总线忽悠记


忽悠,接着忽悠,呵呵~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条