【笔记】STM32 USART串行通信协议

一、通讯的基本概念

1.1串行通讯与并行通讯

通讯方式可分为串行通信与并行通信

串行通信的设备之间通过少量的数据信号线(一般为8根以下),地线及控制信号线进行通讯,按数据位的形式一位一位地传输数据,同一时刻只能传输一个数据位。

并行通信的设备则是使用8、16、32及64甚至更多的数据线进行数据传输,可以同时传输多个数据位的数据

并行通讯就像马路上的多车道行驶,而串行通讯则是单车道行驶。很明显,在传输速率相同的情况下,并行通讯一次可以传输多个数据,并行通讯传输的数据量比串行通讯传输的数据量大得多,但串行通讯则更节约数据线的硬件成本,两种方式各有优劣。

1.2 全双工、半双工及单工通讯

根据数据通讯的方向可分为全双工、半双工及单工。

全双工通信是指在同一时刻,两个设备之间可以同时收发数据,就像双向车道的车辆来往互不干扰。

半双工通信指两个设备之间可以收发数据,但不能同时收发数据,只能分时收发数据,就像双向的单车道,另一方要通过道路,只能等路上的车都空出来时才能经过。

单工通信是指,在任何时刻只能进行单方向的通讯,固定一个为发送设备,另一个为接收设备。

1.3 同步通讯与异步通讯

按照通讯数据的同步方式,还可分为同步通讯与异步通讯。我们可以根据通讯过程中是否使用时钟信号进行通信进行简单区分。

同步通信中,收发设备会使用一根信号线表示时钟信号,然后在时钟线的驱动下双方协调,同步数据。这时的通信双方会统一以时钟信号的上升沿或下降沿进行信号采集。

异步通信则不需要使用时钟信号进行数据同步,而是会在数据信号中穿插一些同步数据用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据。

二、STM32的USART简介

USART(Universal Synchronous Asynchronous Receiver and Transmitter)也叫通用同步异步收发器,是一个串行通信设备,同步、异步皆可的全双工通讯方式。
区别于USART的还有一个UART(Universal Asynchronous Receiver and Transmitter),也叫通用异步收发器,只有异步通讯,其他部分与USART相同。在STM32中,我们一般使用到的通信方式是异步通信,也就是UART。

三、UART协议

对于通讯协议,我们一般分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。

3.1 物理层

在UART通讯方式中,两个UART设备由发送设备通过自身的TXD接口传输到接收设备的RXD接口即可完成通讯。在这里插入图片描述
发送端的UART将来自于控制单元的并行数据转换为串行数据,以串行通讯的方式将数据发送到接收端,接收端将接收到的串行数据转换为并行数据传输到接收设备进行数据处理。

3.2 协议层

UART传输的数据被封装为数据包,数据包的内容由起始位、主体数据、校验位及停止位组成,通讯的双方数据包格式要规定一致才能正常收发数据。
在这里插入图片描述
空闲位:当总线处于空闲状态下时,空闲位为“1”,代表高电平,表示无数据传输

起始位:开始数据传输时发送端发送低电平(“0”),表示数据开始传输。因为数据在空闲状态下为高电平,当接收端UART检测到低电平时,开始以波特率的频率进行读取数据位中的每一位数据。

数据位:起始位后为需要传输的数据,一般为五到八位,如果不使用奇偶校验位的情况下,数据帧的长度可以到9位,一般情况下,数据先发送低八位再发送高八位,例如:发送端需要发送的数据为(0100 1111),则发送端发送的顺序为(1111 0010)

校验位:数据位的后一位,用一个值确保传输数据的逻辑高位(1)有奇数个或者偶数个,校验位为0代表有偶数个,校验位为1代表有奇数个。

停止位:发送端UART将数据传输线从低电平驱动到高电平至少持续两位数据的时间宽度来表示数据包的传输完成。

波特率:波特率表示串口数据的传输速率,即bit/s(bps,bits per second),常见的波特率有:9600,115200,38400等,这里不一一列举。
例如,波特率为9600,则传输一个比特的时间为

T= 1/9600 = 0.00010416666s 约为104.2us

那么传输一个字节(一个字节为八位),但在这里还要计算起始位跟停止位,则传输一个字节需要传输10bits,则为1.04ms.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值