• 串行通信简介(SPI, IIC, UART)


    一 串行通信与并行通信

    主机与外设或主机与主机之间通过一条(极少数)线路将数据按位顺序传输的方式实现数据的传输与共享。

    另外与之相对的还有并行通信,即多个数据通过多条线路同时传输。

    通俗的理解:主机与外设就像城镇,传输的线路就像车道,车流量即数据流量。

    城市之间路途远,车流量小,只有一条车道,城市内部因车流量大,需要多车道并行。

    延伸到通信的应用场合也是如此,串行通信节省传输线,在远距离传输成本更低;

    而并行通信传输速度快、效率高,多用在实时、快速的场合。

    二 串行通信的通信方式

    • 同步通信:根据时钟信号同步传输,即一个时钟信号,传输一个位;常见的有 SPI,IIC。 
    • 异步通信:不带时钟同步信号;常见的有UART,单总线。

      其中异步通信是通过约定相同的波特率(发送二进制数据位的速率)进行传输,

      发送端通过一定的波特率进发送,接收端按照该波特率进行数据的解析

    三 串行通信的传送方式

    1. 单工:只允许数据在一个方向上传输。                     //单向单车道
    2. 半双工:允许数据在不同时刻在任一方向上传输。   //潮汐车道
    3. 全双工:允许数据同时在两个方向上传输。              //双向单车道

    四 常见的串行通信接口

    通信标准 引脚说明 通信方式 通信方向
    UART

    TXD:发送端  

    RXD:接受端  

    GND:公共地

    异步通信 全双工
    单总线 DQ:发送/接受端 异步通信 半双工
    SPI

    SCK:同步时钟  

    MISO:主机输入,从机输出  

    MOSI:主机输出,从机输入

    同步通信 全双工
    I2C

    SCL:同步时钟  

    SDA:数据输入/输出端

    同步通信 半双工

     

  • 相关阅读:
    45
    布里斯班初体验
    走出你的舒适区
    Homebrew- MAC上的包管理利器
    Java经典类库-Guava中的函数式编程讲解
    使用WebDriver遇到的那些坑
    CheckStyle, 强制你遵循编码规范
    利用php的register_shutdown_function来记录php的输出日志
    PHP-redis中文文档
    php中set_time_limit()函数运用
  • 原文地址:https://www.cnblogs.com/Gimiracle/p/13492641.html
Copyright © 2020-2023  润新知