• UART串口通讯协议


    一、UART定义

            UART 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种通用的串行异步全双工数据收发传输器(总线)。

    二、UART作用

            UART的作用是:把“要传输的数据”在串行通信与并行通信之间转换。在嵌入式领域,作为把并行信号转成串行信号的硬件设备,UART通常被集成于MCU内部。

    三、UART与USART

              UART:universal asynchronous receiver and transmitter  通用异步收/发器,即串行异步全双工收发器。
              USART:
    universal synchronous asynchronous receiver and transmitter 通用同步/异步收/发器,即串行异步/同步全双工收发器。

              从名字上可以看出,USART在UART基础上增加了同步功能,即USART是UART的增强型。其实当我们使用USART在异步通信的时候,它与UART没有什么区别,但是用在同步通信的时候,区别就很明显了。大家都知道同步通信需要时钟来触发数据传输,也就是说USART相对UART的区别之一就是能提供主动时钟。

              UART管脚定义:TX、RX、GND; USART管脚定义:TX、RX、GND、SCLK。

    四、UART通信协议

           1、波特率:此参数容易和比特率混淆,其实他们是由区别的。具体可以百度更清楚。但是我认为uart中的波特率就可以认为是比特率,即每秒传输的位数(bit)。一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。

      2、起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。

      3、数据位:可以选择的值有5,6,7,8这四个值,可以传输这么多个值为0或者1的bit位。这个参数最好为8,因为如果此值为其他的值时当你传输的是ASCII值时一般解析肯定会出问题。理由很简单,一个ASCII字符值为8位,如果一帧的数据位为7,那么还有一位就是不确定的值,这样就会出错。

      4、校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。就比如传输“A”(01000001)为例。

                         (1)、当为奇数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。图-1的波形就是这种情况。

                         (2)、当为偶数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为0才能满足1的个数为偶数(偶校验)。

                           (3)、此位还可以去除,即不需要奇偶校验位。

      5、停止位:它是一帧数据的结束标志。可以是1bit、1.5bit、2bit的空闲电平。可能大家会觉得很奇怪,怎么会有1.5位~没错,确实有的。所以我在生产此uart信号时用两个波形点来表示一个bit。这个可以不必深究。。。

      6、空闲位:没有数据传输时线路上的电平状态。为逻辑1。

      7、传输方向:即数据是从高位(MSB)开始传输还是从低位(LSB)开始传输。比如传输“A”如果是MSB那么就是01000001(如图-2),如果是LSB那么就是10000010(如下图的图-4)

      8、uart传输数据顺序:刚开始传输一个起始位,接着传输数据位,接着传输校验位(可不需要此位),最后传输停止位。这样一帧的数据就传输完了。接下来接着像这样一直传送。在这里还要说一个参数。

      9、帧间隔:即传送数据的帧与帧之间的间隔大小,可以以位为计量也可以用时间(知道波特率那么位数和时间可以换算)。比如传送”A”完后,这为一帧数据,再传”B”,那么A与B之间的间隔即为帧间隔。

      简单描述UART通信协议

      图-1

      简单描述UART通信协议

      图-2

      上图是uart协议传输一个”A”字符通过示波器的uart解码而得到的波形示意图。根据此图来介绍一下uart的一些基本参数。

      

      简单描述UART通信协议

      图-3

      简单描述UART通信协议

      图-4

      上两图和下两图传送的数据和波特率都是一样的,但是有几个参数是故意设置反了从而形成对比。有助于更深入的理解UART。

  • 相关阅读:
    (1)前言——(10)jquery项目的历史(History of the jQuery project)
    JavaScript编程:使用DOM操作样式表
    机房收费系统总结之4——VB.NET 轻松解决判断文本框、组合框为空问题
    协同过滤及大数据处理
    Storm工作流程 vs. Spark Stream
    《大数据技术原理与应用》学习
    gdb的follow-fork-mode使用以及多线程操作
    回上海咯!继续学习计算广告
    美团技术博客
    这里面有一些关于依图工作的内容
  • 原文地址:https://www.cnblogs.com/Chuck-Yue/p/10179879.html
Copyright © 2020-2023  润新知