发表于: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
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