找回密码
 注册
搜索
查看: 1468|回复: 12

[讨论] I2C总线忽悠记

[复制链接]
发表于 2006-4-25 14:22:00 | 显示全部楼层 |阅读模式
一般串行数据通讯都有时钟和数据之分,有异步和同步之别.
有单线,双线和三线等.

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的忽悠记,一般很容易掌控...[br]<p align=right><font color=red>+3 RD币</font></p>
发表于 2006-5-17 19:22:00 | 显示全部楼层
<P>谢谢,有用</P>
点评回复

使用道具 举报

发表于 2006-5-18 19:13:00 | 显示全部楼层
写的很好!
点评回复

使用道具 举报

发表于 2006-5-19 00:12:00 | 显示全部楼层
very good[em01][em01][em01][em01][em01][em01]
点评回复

使用道具 举报

发表于 2006-5-23 11:32:00 | 显示全部楼层
<P>请问关于这些总线或传输协议之类的介绍资料,不管中英文,在哪里可以下载到啊?</P>
点评回复

使用道具 举报

发表于 2006-5-23 20:57:00 | 显示全部楼层
鞋都破了才找到这篇好东东啊[em14]
点评回复

使用道具 举报

发表于 2006-5-24 10:24:00 | 显示全部楼层
<P>顶起来,不错的东东</P>
点评回复

使用道具 举报

发表于 2006-6-4 18:12:00 | 显示全部楼层
<P>我也很喜欢使用IIC 和SPI相比IIC的优点是电平触发抗干扰能力强,节省了I/O资源,</P><P>但是速度上没有SPI快最快也只有400K而SPI可以有2M</P>
点评回复

使用道具 举报

发表于 2006-6-6 10:07:00 | 显示全部楼层
<P>但是可靠,方便</P>
点评回复

使用道具 举报

发表于 2006-9-3 13:11:00 | 显示全部楼层
很不错,说得很形象
点评回复

使用道具 举报

发表于 2006-9-4 23:44:00 | 显示全部楼层
就是,感觉i2c就是好用
点评回复

使用道具 举报

发表于 2006-9-6 14:15:00 | 显示全部楼层
同意, 认同
点评回复

使用道具 举报

发表于 2006-9-8 14:49:00 | 显示全部楼层
在21IC上就看过了。。。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-4 18:10 , Processed in 0.048690 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表