SPI、I2C、串口、我相信如果你是从事的是嵌入式开发,一定会用到这三种通信协议,串口的话因为和波特率有关,所以一般的CPU或者MCU只会配有两个或者三个串口,而数据的传输,的话SPI和I2C用得会比较多

区别:

1、UART 需要 RX 、TX、GND 俗称232,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步、按照标准波特率完成双向通讯传输的,对双方的时序要求比较严格,通信速度也不是很快。在多机通信上面用的最多。

2、SPI接口和上面UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)组成;对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。

3、I2C接口两线接口,双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离数据通信,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。一般单片机系统里主要用来和24C02等小存储器连接。

总结一下:

1、UART 通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART发送器、UART接收器组成,硬件上两线,一收一发。

2、SPI 高速同步串行口,高速,可全双工,收发独立,同步接口,可实现多个SPI设备互联,硬件4条线。

3、I2C 双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间近距离经常性数据通信,可实现设备组网。

通信速率比较:SPI > I2C > UART;

SPI和UART可以实现全双工,但I2C不行;

422器件与lvds接收器的区别_SPI、I2C、UART三种串行总线的原理、区别相关推荐

  1. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  2. SPI、I2C、UART三种串行总线的原理、区别及应用

    SPI协议解析,链接如下 https://blog.csdn.net/weiqifa0/article/details/82765892 I2C协议解析,链接如下 https://blog.csdn. ...

  3. 三种串行总线协议的区别(SPI、I2C和UART)

    SPI.I2C跟UART三种串行总线协议的区别: (如果想了解SPI和I2C更多详细内容,可看 SPI总线(一):基本原理篇, SPI总线(二):驱动分析篇,SPI总线(三):驱动实例,i2c总线(基 ...

  4. 422器件与lvds接收器的区别_一文读懂RS232与RS422及RS485三者之间的特性与区别

    好多人说,现在都网络时代了,咋还谈到了什么这个话题呢?其实想想很简单,这个是建立在原来工业控制网络基础上. 凡是从业安防十几年以上的基本上都用过485传输设备,那时候云台是需要单独控制线的.即使是在N ...

  5. 422器件与lvds接收器的区别_RS232/485/422光纤转换器是啥?

    RS232/485/422光纤转换器实现一路RS-232 或RS-485 或RS-422 通过单模光纤上进行长距离传输,该产品具有RS-485/422 接口支持多机通信.组网方便的特点.同时,由于采用 ...

  6. 422器件与lvds接收器的区别_51系列单片机的区别与特点介绍

    奥科远电器点击左上角奥科远电器加关注 8031/8051/8751是Intel公司早期的产品. 8031 8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存 ...

  7. 典型的计算机串行和并行总线,串行总线和并行总线的区别

    描述 并行通信传输中有多个数据位,同时在两个设备之间传输.发送设备将这些数据位通过 对应的数据线传送给接收设备,还可附加一位数据校验位.接收设备可同时接收到这些数据,不需要做任何变换就可直接使用.并行 ...

  8. python三种导入模块的方法和区别

    方法一: import modname 模块是指一个可以交互使用,或者从另一Python 程序访问的代码段.只要导入了一个模块,就可以引用它的任何公共的函数.类或属性.模块可以通过这种方法来使用其它模 ...

  9. 同步、异步 与 串行、并行的区别

    同步.异步: 指的是能否开启新的线程.同步不能开启新的线程,异步可以. 串行.并行: 指的是任务的执行方式.串行是指多个任务时,各个任务按顺序执行,完成一个之后才能进行下一个.并行指的是多个任务可以同 ...

最新文章

  1. 3行Python代码就能获取海量数据?
  2. PHP生成CSV之内部换行
  3. 修改Mysql表中自增字段的初始值
  4. html 模板配置,模板文件配置
  5. [Usaco2007 Demo][BZOJ1628] City skyline
  6. asp.net 之高速缓存
  7. html5同心圆代码,HTML5/Canvas 鼠标跟随的同心圆
  8. 模拟真实环境之内网漫游
  9. 度量时间差和jiffies计数器
  10. 官方揭晓iQOO 9正反面宣传照:挖孔直屏+巨型三摄相机模组
  11. c语言divide error,Python numpy.corrcoef()RuntimeWarning:在true_divide中遇到无效值c / = stddev [:,None]...
  12. macOS -- 如何通过终端开启/关闭SSH
  13. 河南工业大学2017校赛题解
  14. 5款 Linux 常用远程连接工具,总有一款适合你
  15. F2FS源码分析-1.1 [F2FS 元数据布局部分] F2FS文件系统的总体结构
  16. Java 开发之微信(支付宝)扫码支付的小总结
  17. springdata jpa in查询
  18. Win10 安装NASM
  19. C# 名称空间的别名
  20. 防火墙——防火墙基础知识

热门文章

  1. 2018年机器学习趋势与Apache Kafka生态系统相结合
  2. java ee cdi_Java EE CDI处理程序方法示例
  3. GWT的渐进式Web应用程序配方
  4. 容器中Java RAM的使用:不会丢失内存的5大技巧
  5. 执行器的Spring启动和安全性事件
  6. 类加载器 jboss_JBoss AS 7类加载说明
  7. jmc线程转储_如何分析线程转储– IBM VM
  8. java 更新订单状态_Java 8状态更新
  9. tp框架 db::name_玩! 框架:为什么我会爱上它
  10. 如何优化Hibernate EllementCollection语句