STM32常用协议之串口通信详解

您所在的位置:网站首页 通信协议有什么 STM32常用协议之串口通信详解

STM32常用协议之串口通信详解

2024-06-05 22:21| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 前言一、相关理论概念1.1 通信基本概念1.1.1 串行/并行1.1.2 单工/半双工/全双工1.1.3 同步/异步通信 1.2 UART1.2.1 UART协议1.2.2 UART硬件层1.2.3 UART标准的问题 1.3 RS232协议1.3.1 定义1.3.2 性质1.3.3 不足 1.4 RS485协议1.4.1 定义1.4.2 信号1.4.3 端口图1.4.4 接线图 二、相关实验证明2.1 串口中断实现的流程示意图2.2 实验过程及难点分析2.2.1 实验过程2.3实验结果展示【示波器和逻辑分析仪】 3.总结

前言

STM32常用协议系列文章

串口逻辑框图

一、相关理论概念 1.1 通信基本概念 1.1.1 串行/并行

通过数据传送的方式,可将通信的方式分为串行通信和并行通信两种。

串行通信与并行通信示意图 传输方式示意图

串行通信并行通信定义利用单一传输线,按数据位形式一位一位地传输数据利用多条传输线,将数据的各位同时传送传输方式传输一个字节(8个位)的数据时,串口将这8个位进行排队,然后逐个地在一条连接线上进行传输传输一个字节时(8个位)的数据时,并口将这8个位一字排开,分别在8条连接线上同时传输比喻串行通信就像单车道公路,同一时刻只能传输一位数据并行通信就像多车道公路,同一时刻可传输多位数据特点硬件资源耗费少、成本低、抗干扰能力强和传输距离远的优点,但存在传输速度慢的缺点有着传输速度快的优点,但存在硬件资源耗费高、成本高、抗干扰能力弱和传输距离近的缺点 1.1.2 单工/半双工/全双工

在这里插入图片描述

通信方式说明全双工在同一时刻,两个设备之间可以同时收发数据半双工两个设备之间可以收发数据,但不能在同一时刻进行单工在任何时刻都只能进行一个方向的通信,即一个固定为发送设备,另一个固定为接收设备 1.1.3 同步/异步通信

根据通信中的数据同步方式,又分为同步和异步两种,可以根据通信过程中是否使用时钟信号进行简单的划分。

同步通信: 在这里插入图片描述 在同步通信中,收发设备双方会使用一根信号表示时钟信号,在时钟信号的驱动下,双方进行协调,同步数据。通信中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。上图所示的就是在上升沿对数据线进行采样。

异步通信: 在这里插入图片描述 在异步通信中,不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些信号位用于同步信号,或者把主题数据进行打包,以数据帧的格式传输数据。同时,收发双方需要约定数据的传输速率,以便正确地解码数据。

1.2 UART 1.2.1 UART协议

UART定义:

全称:Universal Asynchronous Receiver and Transmitter 通用异步收发器定义:属于异步串行通信协议,将每个二进制位一位接一位地传输

UART帧格式 在这里插入图片描述 串口通信的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口。在串口通信的协议层中,规定了数据包的内容,它由起始位、主体数据、校验位【可选】和停止位,通信双方的数据包格式统一是正常收发数据的必要条件之一。

波特率 UART是串口异步通信,因此没有时钟信号,所以两个通信设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码。常用的波特率为4800、9600以及115200等。这里要注意区分:比特率和波特率。

通信的起始信号和终止信号 串口通信的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑0的数据位表示,而数据包的停止信号可由0.5、1、1.5或2个逻辑1的数据位表示,前提是双方要约定一致。

有效数据 在数据包的起始位之后紧接着就是要传输的主体数据内容,亦称为有效数据。其长度常被约定为5、6、7或8位长。

数据校验 在有效数据之后,有一个可选的校验位。为避免通信过程中,受外界干扰而导致数据传输出现偏差的问题,可以通过在传输过程中加上校验位来解决该问题。校验方法有:奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)和无校验(noparity),共计5种方法。 奇校验: 要求有效数据和校验位中"1"的个数为奇数,比如一个8位长的有效数据为01101001,此时总共有4个"1",为达到奇校验效果,校验位为"1",最后传输的数据将是8位的有效数据加上1位的校验位,总共9位。 偶校验: 其要求刚好与奇校验的要求相反,要求有效数据和校验位中的“1”的个数为偶数,比如一个8位长的有效数据为01101001,此时总共有4个"1",为达到偶校验效果,校验位为"0",最后传输的数据将是8位的有效数据加上1位的校验位,总共9位。 0校验: 不管有效数据的内容是什么,该校验位总为"0" 1校验 不管有效数据的内容是什么,该校验位总为"1" 无校验 不选择校验位

1.2.2 UART硬件层

在这里插入图片描述

符号名称方向说明TxD发送数据DTE->DCE数据发送信号,即输出。由DTE【数据终端设备(计算机、路由)】向DCE【调制调解器】方向传输RxD接收数据DTEDCERequest To Send,请求发送,DTE请求DCE设备,向DCE端发送数据CTS允许发送DTE


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3