原创 SPI、I2C、UART三种串行总线协议的区别 转

2009-9-12 10:50 2970 11 12 分类: 消费电子
第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。 如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备) UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。 显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。 第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行; 第四,看看牛人们的意见吧! wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。 quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1725465 2016-4-14 10:54

书生遇见兵,有利说不清!国家不强,人民不硬。

挺吴总!

用户1725465 2015-6-1 12:02

上周在国际电子商情30周年年会上再次见到您的影像资料,得知您已自由,深受感动。祝驰创业务恒发! 为中国半导体强大加油!

用户1588142 2013-6-26 15:31

了解了

wuyeqing_363494696 2011-2-21 22:33

顶吴先生

用户1026636 2011-2-14 14:51

祝好人一生平安

用户1039176 2011-2-10 10:39

祝福你!

nios_ii_590084553 2011-1-31 16:48

政府官员现在做的事情,就是整天琢磨着制定什么样的规定,来尽最大可能限度地榨取纳税人的血汗,推高百姓生活成本。这个才是政府最想干的事情。

用户1173460 2011-1-31 15:19

政府为啥不出面保释自己的公民呢?
相关推荐阅读
用户1313082 2008-04-26 12:29
一个电子工程师的经验之谈
“工程师是科学家;工程师是艺术家;工程师也是思想家。”一位伟大的工程师曾经提出过这样的一段感言。不错,工程师是利用自然科学来创造工程的人。工程既是物质的也是思想上的。许多不朽的工程,伟大的发明以及出神...
EE直播间
更多
我要评论
1
11
关闭 站长推荐上一条 /3 下一条