UART协议就应该这么理解 您所在的位置:网站首页 iic为什么是全双工 UART协议就应该这么理解

UART协议就应该这么理解

2024-01-13 00:48| 来源: 网络整理| 查看: 265

一. UART概念

UART:Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工和接收!

1.并且/串行的概念

首先我们来说下并行跟串行的概念:按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用 8、 16、 32 及 64 根或更多的数据线进行传输的通讯方式,并行通讯就像多个车道的公路,可以同时传输多个数据位的数据,而串行通讯,而串行通讯就像单个车道的公路,同一时刻只能传输一个数据位的数据。

通过上图我们可以看出,并行就是在特定个数的数组总线个数上同时发送数据,串行就是在一根数据总线上串行发送数据!所以我们很容易能想到串行并且的优缺点,对比如下:

2.单工/双工的概念

数据通信中,数据在线路上的传送方式可以分为单工通信、半双工通信和全双工通信三种。

单工通信:是指消息只能单方向传输的工作方式。例如遥控、遥测(一部分),就是单工通信方式。单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。通信双方采用“按——讲”(PushToTalk,PTT)单工通信属于点到点的通信。根据收发频率的异同,单工通信可分为同频通信和异频通信。如图所示:

半双工通信:是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向传送,因此又被称为双向交替通信。(信息在两点之间能够在两个方向上进行发送,但不能同时发送的工作方式。)半双工方式要求收发两端都有发送装置和接收装置。由于这种方式要频繁变换信道方向,故效率低,但可以节约传输线路。半双工方式适用于终端与终端之间的会话式通信。方向的转变由软件控制的电子开关来控制的。例如:无线对讲机就是一种半双工设备,在同一时间内只允许一方讲话。如图所示:

全双工:是指在通信的任意时刻,线路上可以同时存在A到B和B到A的双向信号传输。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。比如,电话机则是一种全双工设备,其通话双方可以同时进行对话。

3.数据格式

说到数据格式,我们来介绍下UART的常用配置需要用到的数据格式

① 起始位

开始进行数据传输时发送方要先发出一个低电平’0’来表示传输字符的开始。因为空闲位一直是高电平所以开始第一次通讯时先发送一个明显区别于空闲状态的信号即为低电平。

② 数据位

起始位之后就是要传输的数据,数据可以是5,6,7,8,9位,构成一个字符,一般都是8位。先发送最低位最后发送最高位。

③ 校验位

数据位传送完成后,要进行奇偶校验,校验位其实是调整个数,串口校验分几种方式:

无校验(no parity)奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。即:如果传输字节中1的个数是偶数,则校验位为“1”,奇数相反。以发送字符:10101010为例。

偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。即:如果传输字节中1的个数是偶数,则校验位为“0”,奇数相反。还是以发送字符:10101010为例。

④ 停止位

数据结束标志,可以是1位,1.5位,2位的高电平。

⑤ 空闲位

UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平

4.数据速率

通常我们是用串口工具或者写UART驱动或者应用的时候,无可避免的要配置串口速率,在蓝牙中常用的有115200,921600,3M等。

我们一般用波特率(baud rate)这个名词来代表UART的数据速率,单位是bps(bit per second),也就是每秒传输的bit的个数!

在这里我们提几个QA来更深刻的理解下!

Q1:那我们真实的传输user数据速率是多少呢?

A1:这个要取决于数据位/校验位/停止位各自配置了多少,比如我们数据位配置为8,校验位无,停止位位1,那么速率应该是115200/(1+8+1)=11520 Byte/S

Q2:为什么UART没有时钟,是怎么采集数据的,为什么双方可以互相识别

A2:也是取决于波特率的,假设波特率是115200,那么传输1个bit的时间是1/115200,双方各自维护一个时钟,在开始位的时候每隔1/11520时间点内采集一个数据,这样大家就互相认识对方发送的数据了!

Q3:为什么每个user data都要经历一遍开始位,校验位,停止位这个过程呢?

A3:这个我个人觉得是因为因为双方没有一个基准时钟,各自维护自己的时钟,那么时钟的精准度肯定不是那么精确的匹配到,哪怕有很小个ppm的误差,那么数据量一大,数据量就错乱了,导致后续的全部数据都错乱,而发送少的数据位就经历一遍这个过程,即使时钟有ppm,总能匹配上,而且下次start后又重新开始计时,那么就避免了这个问题!

5.流控

一般UART传输数据只是通过TX/RX就行了,但是如果要硬件流控,那么就需要CTS/RTS,一般在蓝牙H4 transport需要硬件流控的,如图:

整个接线如图:

我们来说明下RTS,CTS的概念以及工作原理:

RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。

CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。

设备A给设备B发送数据工作模型如图所示:

如果设备A要给设备B发送数据,那么设备A应该先检测Local CTS(也就是Remote RTS)是否位低电平,如果是低电平,代表可以像Remote发送数据,然后再发送数据!

设备A接收来自设备B的数据工作模型如图所示:

如果设备A要接收B的数据,那么设备A应该先拉低Local RTS代表我可以接收数据啦,然后设备B发送数据给A

大概说明完了UART的概念,你如果细想协议,那么可能会发现UART有弊端或者定义不完善的地方,如下:

接口不统一,协议只是规定的线的名称,但是没有一个接口标准,比如USB的type A/B/C,Mini/Micro接口等。电平不固定,协议只是用逻辑0,1代表低电平,高电平,但是并没有说高低电平应该是多少伏。他是采用TTL电平(Transistor-Transistor Logic),也就是板子自己的电平,一般是3.3V或者5V。 通信距离短,抗干扰能力差,这两个是互相关系的,抗干扰能力差决定了通信距离短。

基于以上,美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)以及制定并发布RS-485标准,并经通讯工业协会(TIA)修订后命名为TIA/EIA-485-A,习惯地称之为RS-485标准。这就是后来大名鼎鼎的RS232,RS485!

二. RS232 1.概念

RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。一般有25线以及9线的,只不过9线的比较常用,成为后来默认的RS232标准!我们来回顾下UART的缺陷,然后看看RS232怎么解决的!

接口不统一,协议只是规定的线的名称,但是没有一个接口标准,比如USB的type A/B/C,Mini/Micro接口等。

-》RS232常用采用DB9的头,统一了接口标准,我们在后面再介绍!

电平不固定,协议只是用逻辑0,1代表低电平,高电平,但是并没有说高低电平应该是多少伏。

-》规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离。RS -232的噪声容限为2V,接收器将能识别高至+3V的信号作为逻辑“0”,将低到-3 V的信号作为逻辑“1”,电平对比图是:

通信距离短,抗干扰能力差,这两个是互相关系的,抗干扰能力差决定了通信距离短。

-》由于RS -232采用串行传送方式,并且将微机的TTL电平转换为RS-232C电平,其传送距离一般可达30 m。若采用光电隔离20 mA的电流环进行传送,其传送距离可以达到1000 m。另外,如果在RS-232总线接口再加上Modem,通过有线、无线或光纤进行传送,其传输距离可以更远。

注意:不管RS232怎么定义,对于UART SW编程是不变的,另外RS232是一对一的通信!

2.DB9引脚

我们来看下DB9的引脚

引脚编号

引脚定义

传输方向

说明

1

DCD-Data Carrier Detect

DTE告诉DCE准备就绪

5

GND

/

/

6

DSR-Data Set Ready

请求发送-DTE向DCE发送数据请求

8

CTS-Clear to Send

----->

清除发送-DCE通知DTE可以传数据

9

RI-Ring Indicator



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有