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。

转载于:https://www.cnblogs.com/Chuck-Yue/p/10179879.html

  • 9
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在STM32串口通讯协议的改进方面,可以考虑以下几个方向: 1. 提高传输速率:可以通过优化串口通讯协议的数据包格式,减少校验位或停止位的数量,从而提高传输速率。另外,也可以考虑使用更高速的串口通讯协议,如USB协议,来替代传统的RS-232、RS-485协议。 2. 增加数据安全性:可以引入更强大的数据校验机制,如CRC校验,来确保数据的完整性和准确性。此外,还可以考虑使用加密算法对数据进行加密,以提高数据的安全性。 3. 支持多种通讯方式:可以在STM32上实现多种串口通讯协议的支持,如UART、USART、I2C、SPI等,以满足不同应用场景的需求。 4. 降低功耗和成本:可以通过优化串口通讯协议的实现方式,减少功耗和成本。例如,可以采用低功耗的通讯模式,或者使用更简化的硬件电路设计。 需要注意的是,具体的改进方案需要根据实际应用需求和硬件平台的特性来确定。以上只是一些常见的改进方向,具体的实施需要根据具体情况进行评估和选择。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [STM32串口通信编程](https://blog.csdn.net/qq_53352654/article/details/127305609)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值