• 二十三、uart串口协议


    一、概述

      通用异步收发传输器,通常称为UART,是一种异步收发传输器。将数据由串口通信与并行通信件做传输转换,作为并行输入称为串行输出的芯片。

    • 一种通用串行数据总线,用于异步通信
    • 总线双向通信,可以实现全双工传输。

    二、协议介绍

      UART作为异步串口通信协议的一种,工作原理是将传输数据的每一个字符一位一位的传输。其中每一位的意义属下:

    • 起始位:先发出一个逻辑“0”的信号,表示传输字符开始。
    • 数据位:紧接着起始位之后,数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始后传送,靠时钟定位。
    • 奇偶校验位:数据位加上这一位后,使得“1”的位数为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
    • 停止位:是字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率也就越慢。
    • 空闲位:处于逻辑"1"状态,表示当前线路上没有数据传输。

    时序图如下:

      

     三、工作原理

    1、发送数据过程

    • 空闲状态,线路处于高电平。
    • 当收到发送指令后,拉低线路的一个数据位的时间T,接着按低位到高位依次发送。
    • 数据发送完毕后,接着发送奇偶校验位和停止位,一帧数据发送完成。

    2、数据接收过程

    • 空闲状态,线路处于高电平。
    • 当检测到线路的下降沿时说明线路有数据传输,按照约定的波特率从低位到高位接收数据
    • 数据接收完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备接收 数据或存入缓冲。

      由于UART是异步传输,没有传输同步时钟,为了保证数据的正确性,UART采用16倍数据波特率的时钟进行采样。每个数据有16个时钟采样,取中间的采样值,以保证采样不会滑码或误码。一般UART一帧的数据位数为8,这样即使每个数据有一个时钟的误差,接收端也能正确的采样到数据。

    3、UART的接收数据时序

    • 当检测到数据的下降沿时,表明线路上有数据进行传输,这是计数器CNT开始计数,当计数器为24=16+8时,采样的值为第0位数据;
    • 当计数器的值为40时,采样的值为第一位数据,依次类推,进行后面6个数据的采样。如果需要进行奇偶校验,则当计数器的值为152时,采样的值即为奇偶位。
    • 当计数器的值为168时,采样的值为“1”表示停止位,数据接收完成。

      一个标准的10位异步串行通信协议(1个起始位、1个停止位和8个数据位)收发时序,如下图所示:

     

      

  • 相关阅读:
    hibernate常用查询语句动态生成类(包括条件和无条件查询)
    Eclipse常用插件更新下载地址列表
    IT相关网站列表
    /etc/目录下的passwd文件内容详解
    关于jfreechart创建web报表图片的流程初解
    博客地址列表
    java编码转换的详细过程 (转)
    偿债
    汽车变速器(自动挡)英文缩写
    Firefox 快捷键列表
  • 原文地址:https://www.cnblogs.com/yuanqiangfei/p/15830363.html
Copyright © 2020-2023  润新知