串口通讯(USART)

对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。

物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。

协议层主要规定通讯逻辑,统一收发双方的数据打包、 解包标准。

1. 物理层

串口通讯(USART)_第1张图片

串口通讯(USART)_第2张图片

串口通讯(USART)_第3张图片

串口通讯(USART)_第4张图片

串口通讯(USART)_第5张图片

其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头

在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。

串口通讯(USART)_第6张图片

编号 引脚 定义
1 DCD 数据载波检测
2 RXD 数据接收
3 TXD 数据发送
4 DTR 数据终端准备好
5 GND 信号地
6 DSR 数据设备准备好
7 RTS 请求发送
8 CTS 清除发送
9 RI 振铃提示

串口通讯(USART)_第7张图片

 在目前的其它工业控制使用的串口通讯中,一般只使用RXD、TXD以及GND三条信号线,直接传输数据信号,而 RTS、CTS、DSR、DTR 及 DCD 信号都被裁剪掉了。

2. 协议层

串口通讯(USART)_第8张图片

波特率

异步通讯中由于没有时钟信号 (如前面讲解的 DB9 接口中是没有时钟信号的),所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,上图中用虚线分开的每一格就是代表一个码元,常见的波特率为 4800、9600、 115200 等。

起始位与停止位

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

有效数据

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

数据校验

在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。

校验方法有奇校验 (odd)、偶校验 (even)、0 校验 (space)、1 校验 (mark) 以及无校验 (noparity)。

3. STM32H750 USART

串口通讯(USART)_第9张图片

(1)引脚

A. USART双向通信

USART双向通信需要至少两个引脚:接收数据输入(RX)和发送数据输出(TX)。

RX (Receive Data Input)

RX是串行数据输入。数据恢复采用过采样技术区分有效的传入数据和噪声。

TX (Transmit Data Output)

当发射器被禁用时,输出引脚返回到它的I/O端口配置。

当发射器是启用的,没有数据需要传输,TX引脚是高电平。在单线和智能卡模式下,该I/O用于传输和接收数据。

B. RS232 硬件流控制模式

CTS和RTS引脚在USART RS232硬件流控制模式中使用。

CTS (Clear To Send)

如果使能RS232硬件流控制,发送器在发送下一帧数据之前会检测 nCTS 引脚。

如果为低电平,表示可以发送数据;

如果为高电平则在发送完当前数据帧之后停止发送。

该引脚只适用于硬件流控制。

RTS (Request T o Send)

如果使能RS232硬件流控制,当USART接收器准备好接收新数据时就会将 nRTS 变成低电平;当接收寄存器已满时,nRTS 将被设置为高电平。

该引脚只适用于硬件流控制。

C. RS485 硬件控制模式

DE (Driver Enable)

该信号激活外部收发器的传输模式。DE和RTS共用同一个引脚。

D. 同步主从模式和智能卡模式

CK

该引脚在同步主模式和智能卡模式下充当时钟输出;作为时钟输入是同步从模式。

NSS

该引脚在同步从模式下充当从选择输入。

(2)字符

串口通讯(USART)_第10张图片

 传输字长(world length)通过USART_CR1寄存器的12位和28位:M0和M1控制。

An Idle character is interpreted as an entire frame of “1”s (the number of “1”s includes the 
number of stop bits).
A Break character is interpreted on receiving “0”s for a frame period. At the end of the 
break frame, the transmitter inserts 2 stop bits. 

(3)FIFO

(4)USART发射器

根据M位的状态,发射机可以发送7位或8位或9位的数据字。

必须设置发送使能位(TE)才能激活发送功能。传输移位寄存器中的数据输出到TX引脚上,而相应的时钟脉冲输出到SCLK引脚上。

串口通讯(USART)_第11张图片

A. 字符发送

在USART传输过程中,数据首先移出TX引脚上的最低有效位(默认配置)。在这种模式下,USART_TDR寄存器由内部总线和传输移位寄存器之间的缓冲区(TDR)组成。 

串口通讯(USART)_第12张图片

在写入要传输到USART_TDR的数据之前,必须设置TE位。在数据传输过程中不能复位TE位。TE位使能时会发送一个空闲帧(idle frame)。

B. 停止位配置

串口通讯(USART)_第13张图片

C. 字符传送寄存器配置过程

串口通讯(USART)_第14张图片 D. 字符传送过程

串口通讯(USART)_第15张图片

当FIFO模式未使能时,

写入传输数据寄存器总是清除TXE位。TXE标志由硬件设置。

——数据已经从USART_TDR寄存器移动到移位寄存器,数据传输已经开始;

——USART_TDR寄存器为空;

——下一个数据可以写入USART_TDR寄存器,而不覆盖前一个数据。

如果设置了TXEIE位,该标志将产生一个中断。

当传输正在进行时,对USART_TDR寄存器的写指令将数据存储在TDR缓冲区中。然后将其复制到当前传输末尾的移位寄存器中。

当没有传输正在进行时,对USART_TDR寄存器的写指令将数据放在移位寄存器中,数据传输开始,并设置TXE位。

在将最后的数据写入USART_TDR寄存器后,必须等待TC设置好后才能禁用USART或导致微控制器进入低功耗模式(参见图571:传输时的TC/TXE行为)。

串口通讯(USART)_第16张图片

(5)USART接收器

A. 字符接收

串口通讯(USART)_第17张图片

 串口通讯(USART)_第18张图片

(6)波特率配置

接收机和发射机(Rx和Tx)的波特率都设置为USART_BRR寄存器中编程的值。

串口通讯(USART)_第19张图片 串口通讯(USART)_第20张图片 

串口通讯(USART)_第21张图片

 (7)校验控制

寄存器 名称 作用
USART_CR1 PCE 使能奇偶校验控制
USART_CR1 PS 设置奇校验或者偶校验

 接收时,如果奇偶校验失败,则在USART_ISR寄存器中设置PE标志,如果在USART_CR1寄存器中设置PEIE,则产生中断。通过软件向USART_ICR寄存器中的PECF写入1来清除PE标志。

如果在USART_CR1中设置了PCE位,那么写入数据寄存器的数据的MSB位将被传输,但是被奇偶位更改(如果选择偶偶校验位则为偶数个“1”(PS=0),如果选择奇偶校验位则为奇数个“1”(PS=1))。

 

 

你可能感兴趣的:(32,嵌入式硬件)