IIC、SPI、UART的区别
2015-06-02 11:09
836 查看
一. 简介
I2C (Inter IC bus):Philips公司开发的两线式串行总线
SPI (Serial Peripheral Interface:串行外设接口):Motorola公司开发的全双工同步串行总线
UART (Universal Asynchronous Receiver Transmitter:通用异步收发器)
二. 电气信号线的区别
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
三. 工作方式的区别
I2C无法实现全双工
SPI和UART可以实现全双工
四.
[b]传输速度与距离[/b]
I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它有时钟协议。
I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
I2C (Inter IC bus):Philips公司开发的两线式串行总线
SPI (Serial Peripheral Interface:串行外设接口):Motorola公司开发的全双工同步串行总线
UART (Universal Asynchronous Receiver Transmitter:通用异步收发器)
二. 电气信号线的区别
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
三. 工作方式的区别
I2C无法实现全双工
SPI和UART可以实现全双工
四.
[b]传输速度与距离[/b]
I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它有时钟协议。
I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
相关文章推荐
- SQL查询初学者指南读书笔记(二)创建SQL查询
- 获取Enum枚举值描述的几法方法
- linux网址
- 导数练习8
- Contains DuplicateII
- 怎么样调整FreeBSD时区问题
- 关于导包,报极光出错的问题,java.lang.IllegalArgumentException
- 如何克服SAT考试阅读难关?
- 【iOS知识学习】_iOS下SQLite的使用
- 基础模拟栈
- Android屏幕适配(二)
- Tiny快速入门之Web界面快速开发实践
- 多线程NSthread
- linux 脚本 data命令
- android系统架构及源码目录结构
- 用异或实现交换,可不用中间变量
- solr特点三: 基于Solr实现排序定制化参考
- UIKit 框架之UICollectionViewController
- JTAG与SWD对比
- git工具使用