您现在所在的是:

单片机论坛

回帖:2个,阅读:1139 [上一页] [1] [下一页]
912
sfmcu
文章数:44
年度积分:50
历史总积分:912
注册时间:2006/8/22
发站内信
08年优秀博客奖
发表于:2009/2/22 9:36:44
#0楼
 第一,名称
  spi(serial peripheral interface:串行外设接口);
    i2c(inter ic bus:意为ic之间总线)
    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要少。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=77914&Name=sfmcu
1815
qijg
文章数:693
年度积分:50
历史总积分:1815
注册时间:2009/1/29
发站内信
发表于:2009/2/22 12:48:34
#1楼
学习了,多谢
1392
lgx1213
文章数:249
年度积分:50
历史总积分:1392
注册时间:2003/9/4
发站内信
发表于:2009/2/23 21:34:27
#2楼
谢谢分享!
全球第一本<单片机技术应用>电子杂志,欢迎免费下载!
WWW.MCU-SYS.COM

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003