《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之间的间隔即为帧间隔。

 

 

posted @ 2021-07-26 15:54  一个不知道干嘛的小萌新  阅读(484)  评论(0编辑  收藏  举报