• 嵌入式之总线协议:1、UART


    嵌入式之总线协议:1、UART

    目录
    第一章 UART 帧格式讲解
    第二章 UART 寄存器讲解
    第三章 UART 编程
    第四章 输出重定向
    第五章 RS232、RS485协议原理与应用



    前言

    串口认知


    一、UART简介

    通用异步首发器(Universal Asynchronous Receiver Transmitter),是一种通用的串行 、异步通信总线,该总线有两条数据线,可以实现全双工的发送和接收。
    在嵌入式系统中常用于主机和辅助设备之间的通信。

    下面对关键概念进行解析:

    1、串行/并行

    通信
    在这里插入图片描述

    1.1 并行

    并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。
    计算机或PLC各种内部总线就是以并行方式传送数据的。

    在这里插入图片描述
    总线在传递数据的时候传递的是高低电平的信号。
    并行数据传输:

    1.2 串行

    UART:通用异步首发器(Universal Asynchronous Receiver Transmitter),是一种通用的串行、异步通信总线。
    在这里插入图片描述

    2、异步

    基本过程;
    数据发送和接收,不是同一个时钟;

    3、单工和双工通信

    3.1 单工通信

    在这里插入图片描述

    3.2 半双工

    可以双向发送;但是不能同时双向发送数据;

    半双工

    3.3 全双工

    通用异步首发器(Universal Asynchronous Receiver Transmitter),是一种通用的串行、异步通信总线。
    双向发送数据,并可以同时发送。
    全双工

    4、波特率

    波特率用于描述UART通信时的通信速度,单位:bps(bit per second),即每秒传输的bit数据量。
    1 byte=8 bit;

    二、UART帧格式

    空闲位:空闲时候数据线上为高电平
    起始位:串行通信时候需要先发低电平信号。用于区别空闲状态的信号。
    数据位:数据位可以发送5-8位,发送顺序为:先发低位,后发高位;(大小端)
    校验位:遵循奇偶校验,即1的个数是偶数就置1,奇数置0。校验位可有可无,根据需求,如果要求发送的速度快准确性不要求,可以不用校验位;如果要确保数据准确性,那要使用校验位。;
    停止位:表示一次通信的结束,数据线上为高电平,可以为1位、1.5位、或者2位;

    在这里插入图片描述
    假定有一个char类型的数据:
    char的定义为 8 位 :0X55
    转换为 二 进 制 为 :0101 0101

    在这里插入图片描述
    如何区分上图:
    波特率:每秒种传输的二进制位的个数;
    通过掐时间,去确定一个0,或者两个0;
    通过统计时间来区分发送了几个0几个1,因为波特率规定了通信速度;如波特率为1bps,那么发送 1位 需要 1s ;如果时间用了2s,那么一定是发送了 2位 ;

    为了避免累积误差,所以规定一次性最多发送1字节(byte)即8个位(bit)。
    异步通信:

    三、硬件连接

    交叉连接:
    在这里插入图片描述

    四、UART控制器

    一般情况处理器都会集成UART控制器,方便在使用UART进行通信时候只需要对其内部的相关寄存器进行设置即可。
    在这里插入图片描述

  • 相关阅读:
    Git面试题整理(对比)
    【Leetcode】top 100 贪心算法
    14:00面试,14:06就出来了,问的问题有点变态。。。
    版税激励错配下,创作者如何可持续地盈利?
    FPGA之旅设计99例之第十例-----串口上位机模拟OLED屏
    数据结构 | 树与二叉树
    AMD GPU 内核驱动分析(三)-dma-fence 同步工作模型
    jvm的jshell,学生的工具
    202 - Repeating Decimals (UVA)
    MQ进阶面试题
  • 原文地址:https://blog.csdn.net/yechen1/article/details/128135790