• 《UART串口通讯协议》


    1.UART定义

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

    2.UART作用

      UART的作用是:把“要传输的数据”在串行通信与并行通信之间转换。在嵌入式领域,作为把并行信号转成串行信号的硬件设备,UART通常被集成于MCU内部。(MCU内部传输数据可能是并行,串口出来的因为只有一条线(TX),因此是串行)

    3.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。

    4.UART通讯协议

    4.1 波特率

      一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。

    4.2 起始位

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

    4.3 数据位

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

    4.4 校验位

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

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

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

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

    4.5 停止位

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

    4.6 空闲位

      没有数据传输时线路上的电平状态。为逻辑1。

    4.7 传输方向  

      从低位在前,高位在后的传输方式。

      发送的数据是0x21。0b0010,0001,实际发送应该是1000 0100

    4.8 uart传输数据顺序

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

    4.9 帧间隔 ?

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

     

  • 相关阅读:
    ASPNET下的路径辅助类
    分析函数计算起始,结束日期.
    Debugging SQL Server 2005 Stored Procedures in Visual Studio
    Storing Binary Files Directly in the Database Using ASP.NET 2.0
    Fw:Managing View State in ASP.NET 4 Using the New ViewStateMode Property
    Using ASP.NET 3.5's ListView and DataPager Controls: Displaying Data with the ListView
    Passing Information Between Content and Master Pages .
    转:Querying a Hierarchical ParentChild Structure in LINQ
    续上篇:比较彻底的清除"代理木马下载器"的方法
    面向过程和面向对象--从C到C#
  • 原文地址:https://www.cnblogs.com/zhuangquan/p/15061819.html
Copyright © 2020-2023  润新知