mysql与单片机串口_单片机常用通信协议-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与其余部分的讯息传送。

UART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。 而RS232、RS449、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的实体层(Physical Layer)的概念,与通信协议没有直接关系。而通信协议,是属于通信网络中的资料链接层(Data Link Layer)的概念。 COM是PC(个人计算机)上,异步串行通信口的简写。由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM均为RS232。若配有多个异步串行通信口,则分别称为COM1、COM2... 。

USART

通用同步/异步串行接收/发送器(Universal Synchronous/Asynchronous Receiver/Transmitter)。

一、主要特点

1. 全双工操作;

2. 同步操作时,可主机时钟同步,也可从机时钟同步;

3. 独立的高精度波特率发生器,不占用定时/计数器;

4. 支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构;

5. 由硬件支持的奇偶检验位发生和检验;

6. 数据溢出检测;

7. 帧错误检测;

8. 包括错误起始位的检测噪声滤波器和数字低通滤波器;

9. 三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成;

10.支持多机通信模式;

11.支持倍速异步通信模式。

二、结构组成

USART收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。控制寄存器为所有的模块共享。

时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。发送时钟引脚XCK仅用于同步发送模式下,

发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同帧结构的控制逻辑电路构成。使用写入缓冲器,实现了连续发送多帧数据无延时的通信。

接收器是USART模块最复杂的部分,最主要的是时钟和数据接收单元。数据接收单元用作异步数据的接收。除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。接收器支持与发送器相同的帧结构,同时支持帧错误、数据溢出和校验错误的检测。

三、与UART兼容性

USART 在如下方面与AVR UART 完全兼容:

所有USART 寄存器的位定义;

波特率发生器;

发送器操作;

发送缓冲器的功能;

接收器操作。

UART和USART的区别

USART在UART基础上增加了同步功能,即USART是UART的增强型。

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

同步是阻塞模式,异步是非阻塞模式。

其实当我们使用USART在异步通信的时候,它与UART没有什么区别,但是用在同步通信的时候,区别就很明显了:大家都知道同步通信需要时钟来触发数据传输,也就是说USART相对UART的区别之一就是能提供主动时钟。

你可能感兴趣的:(mysql与单片机串口)