zoukankan      html  css  js  c++  java
  • UART、I2C、SPI三种协议对比

    学嵌入式需要打好基础

    下面我们来学习下计算机原理里的3种常见总线协议及原理

    协议:对等实体之间交换数据或通信所必须遵守规则或标准的集合

    1、UART(Universal Asynchronous Receiver/Transmitter):

    通用异步接收发送器,也就是通常所说的串口,基本都用于调试

    三根线:RX、TX、GND

    如果甲是PC机,B是单片机,两者还要接一块电平转换芯片,用于将TTL / CMOS(单片机电平)转换为RS232(PC机电平)。因为TTL / CMOS电平范围是0〜1.8 / 2.5 / 3.3 / 5V(不同单片机范围不同),高电压表示1,低电压表示0而RS232逻辑电平范围-12V〜12V,-5〜-12表示高电平,+ 5〜+ 12V表示低电平(对你没有听错!)为什么这么设置这就要追溯到调制解调器出生时代了,有兴趣自己去查资料

     

    开发板想发数据时,RXD0由1变为0,保持T时间

    PC感觉到RXD0由0变1.知道2440即将发数据

     有起始位和停止位,就说明这是个异步通信

    2、I^2C协议(Inter Integrated Circuit)

    两条线 SCL(时钟)、SDA(数据)只有一条数据线,所以是半双工同步通信,

    在传送数据过程中共有3种类型信号:开始信号、结束信号和相应信号。

    (1)开始信号(S):SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据

    (2)结束信号(P):SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据

    (3)响应信号(ACK):接收器在接收到8位数据后,在第9个时钟周期,拉低SDA电平

     

    可以接有多个设备,启动一个设备,主机先发出S信号,然后发出8位数据。前7位为从机的地址(所以能接2^7=128个设备),第8位表示传输的方向(0表示写操作,1表示读操作),有这个设备,发出ACK响应信号,开始读/学操作

     

     3、SPI(Serial Peripheral Interface,同步外设接口),全双工同步串行总线,

    该总线大量用于与EEPROM,ADC,FRAM和显示驱动器之类的慢速外设器件通信。

    3条线

    SCK:时钟信号

    SDI:输入信号

    SDO:输出信号

    CS:片选信号,决定了唯一的与主设备通信的从设备,片选信号低电平有效,不同于I^2C用的地址选择从机

    对比:

    UART是全双工,异步传输,对时序要求比较严格,速度较慢

    SPI相比UART多了一条同步时钟线,通信速度快

    I2C一根数据线,速度不高,结构简单

  • 相关阅读:
    用MobaXterm_Personal_12.0远程连接ubuntu虚拟机,并解决报错connection refused
    二叉树图解以及二叉树的递归原理
    Source Insight 4.0 安装使用简单粗暴教程
    VScode配置嵌入式linux开发环境,代替source insight
    linux系统下部署DNS正向解析
    【剑指Offer】面试题47. 礼物的最大价值
    【LeetCode】1371. 每个元音包含偶数次的最长子字符串
    【LeetCode】680. 验证回文字符串 Ⅱ
    【剑指Offer】面试题46. 把数字翻译成字符串
    【剑指Offer】面试题45. 把数组排成最小的数
  • 原文地址:https://www.cnblogs.com/cyyz-le/p/10929920.html
Copyright © 2011-2022 走看看