全球旧事资料 分类
SPI、I2C、UART、USB串行总线协议的区别
SPI、I2C、UART三种串行总线协议的区别第一个区别当然是名字:SPISerialPeripheralI
terface:串行外设接口I2CINTERICBUSUARTU
iversalAsy
chro
ousReceiverTra
smitter:通用异步收发器第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟SCLK、串行数据输出SDO、串行数据输入SDI。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备Master,其他设备为SPI从机或从设备Slave。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。如果用通用IO口模拟SPI总线,必须要有一个输出口SDO,一个输入口SDI,另一个口则视实现的设备类型而定,如果
f要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。I2C总线是双向、两线SCL、SDA、串行、多主控(multimaster)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口SDA,另外还需一个输出口SCL。(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器产生的波特率等于传输波特率的16倍、UART接收器、UART发送器组成,硬件上由两根线,
f一根用于发送,一根用于接收。显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wuda
yu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
fUARTUARTU
iversalAsy
chro
ousReceiverTra
smitter,通用异步接收发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。因为计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异r
好听全球资料 返回顶部