单片机常用通信协议-UART和USART
Posted lengyan-chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机常用通信协议-UART和USART相关的知识,希望对你有一定的参考价值。
UART
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。
一、定义
UART是一种通用串行数据总线,用于异步通信。该总线实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信。
二、通信协议
UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接着一位传输。
传输一帧中格式为:起始位、数据位、奇偶校验位、停止位、空闲位
其中各位意义如下:
起始位:先发出一个逻辑“0”的信号,表示传输字符的开始。
数据位:紧接着从起始位后,数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
奇偶校验位:数据位加这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
停止位:是一个字符数据的结束标志。
空闲位:处于逻辑“1”状态,表示当前线路上没有数据传送。
波特率:是衡量数据传送速率的指标。表示每秒钟传送的符号数(symbol)。一个符号代表的信息量(比特数)与符号的阶数有关。例如传输使用256阶符号,每8bit代表一个符号,数据传送速率为120字符/秒,则波特率为120*8=960bit/s。
三、基本结构
①输出缓冲寄存器:它接收CPU从数据总线上送来的并行数据,并加以保存。
②输出移位寄存器:它接收从输出缓冲器送来的并行数据,以发送时钟的速率把数据逐位移出,即将并行数据转换位串行数据输出。
③输入移位寄存器:它以接收时钟的速率把出现在串行数据输入线上的数据逐位移入,当数据装满后,并行送往输入缓冲寄存器,即将串行数据转换成并行数据。
④输入缓冲寄存器:它从输入移位寄存器钟接收并行数据,然后由CPU取走。
⑤控制寄存器:它接收CPU送来的控制字,由控制字的内容,决定通信时的传输方式以及数据格式等。例如采用异步方式还是同步方式,数据字符的位数,有无奇偶校验,是奇校验还是偶校验,停止位的位数等参数。
⑥状态寄存器:存放着接口的各种状态信息,例如输出缓冲区是否空,输入字符是否准备好等。在通信过程中,当符合,某种状态时,接口种的状态检测逻辑将状态寄存器的相应位置“1”。
四、功能
在手机设计和测试阶段被用来控制CPU与其余部分的讯息传送。
时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。发送时钟引脚XCK仅用于同步发送模式下,
三、与UART兼容性
USART 在如下方面与AVR UART 完全兼容:
所有USART 寄存器的位定义;
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
同步是阻塞模式,异步是非阻塞模式。
以上是关于单片机常用通信协议-UART和USART的主要内容,如果未能解决你的问题,请参考以下文章
GD32从0开始学GD32单片机—— USART串口通信详解