同步串行与异步串行通信

转载:https://blog.csdn.net/u012160319/article/details/43486995

串行通信是微机接口的一个重要组成部分,有着极其广泛的应用。随着微机特别是单片机的发展,其应用已从单机逐渐转向多机或联网,而多机应用的关键又在微机通信。微机通信有串行和并行两种通信方式,并行通信可以提高数据交换速度而串行通信可以节省系统资源,降低系统成本。串行通信又分为同步串行通信和异步串行通信。本章将就串行通信进行详细讲述,末了还给出应用实例,力求反应目前串行通信的新技术和新发展。

 串行通信的概念

  并行通信和串行通信

在微机系统中,CPU 与外部的基本通信方式有两种:

并行通信——数据各位同时传送;

串行通信——数据一位位顺序传送。

图1 是这两种方式的示意图。一般快速设备之间采用并行通信,譬如CPU 与存储设备、存储器与存储器、主机与打印机等都采用并行通讯。并行通讯,有多少位数据就必须有多少根数据线,如下图是11 位数据就有11 根数据线。串行通信最少可以只需一根通信线,只发或只收。因而大大节省了系统资源,降低了系统成本。由于只用一根数据线,所以是以降低传送速度来换取资源的,它常用在传送距离远,速度要求不高的场合。

串行通信的传送方式

串行通信的传送方式通常有3 种:

一种为单向(或单工)配置,只允许数据向一个传送;

另一种是半双工配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站发送;

第三种传送方式是全双工配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备具有完整和独立的发送和接收能力。

图7-2 所示为串行通信中的数据传送方式。

异步通信和同步通信

串行通信进行数据传送时是将要传送的数据按二进制位,依据一定的顺序逐位发送到接收方。其有两种通信方式:

1、 异步通信

异步通信是我们最常采用的通信方式,我们后面的例子都是采用的异步通信方式。异步通信采用固定的通信格式,数据以相同的帧格式传送。如图7-3 所示,每一帧由起始位、数据位、奇偶校验位和停止位组成。

在通信线上没有数据传送时处于逻辑“1”状态。当发送设备发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据信号。因此,起始位所起的作用就是表示字符传送开始。

      起始位后面紧接着的是数据位,它可以是5 位、6 位、7 位、或8 位。数据传送时,低位在前。

奇偶校验位用于数据传送过程中的数据检错,数据通信时通信双方必须约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质。也有的不要校验位。

在奇偶校验位或数据位后紧接的是停止位,停止位可以是一位、也可以是1.5 位或2 位。接收端收到停止位后,知道上一字符已传送完毕,同时,也为接收下一字符作好准备。若停止位后不是紧接着传送下一个字符,则让线路保持为“1”。“1”表示空闲位,线路处于等待状态。存在空闲位是异步通信的特性之一。

2、 同步通信

同步通信时,通信双方共用一个时钟,这是同步通信区分于异步通信的最显著的特点。在异步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,以致占用了时间。所以在数据块传送时,为提高通信速度,常去掉这些标志,而采用同步通信。同步通信中,数据开始传送前用同步字符来指示(常约定1~2 个),并由时钟来实现发送端和接收端的同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到一块数据传送完毕。同步传送时,字符之间没有间隙,也不要起始位和停止位,仅在数据开始时用同步字符SYNC来指示,其数据格式见图7-4。

 

同步通信和异步通信相比有以下特点:

1. 以同步字符作为传送的开始,从而使收发双方取得同步。

2. 每位占用的时间相等。

3. 字符数据之间不允许有空位,当线路空闲或没字符可发时,发送同步字符。

同步字符的插入可以是单同步字符或双同步字符,如图7-4 所示同步字符也可以由用户约定,当然也可以采用ASCII 码中规定的SYN 代码,即16H。

在同步传送时,要求用时钟来实现发送端和接收端之间的同步。为了保证接收正确无误,发送方除了传送数据外,还要传送同步时钟。

同步通信虽然可以提高传送速度,可达56Kb/s 或更高,但实现起来颇为复杂,因此实际较少使用。

 波特率和接收发送时钟

1. 波特率(Baud rate)

波特率是指数据传送时,每秒传送数据二进制代码的位数,它的单位是位/秒(b/s)。1波特就是一位每秒。假设数据传送速率是每秒120 字符,而每个字符格式包括10 个代码位(1个起始位、一个终止位、8 个数据位),这时传送的波特率为:

10 × 120 = 1200b/s

位传送时间宽度Td=波特率的倒数,则上式中的Td=1/1200s=0.883ms。

在异步串行通信中,接收设备和发送设备保持相同的传送波特率,并以每个字符数据的起始位与发送设备保持同步。起始位。数据位。奇偶位和停止位的约定,在同一次传送过程中必须保持一致,这样才能成功的传送数据。

2.接收/发送时钟

二进制数据系列在串行传送过程中以数字信号波形的形式出现。不论接收还是发送,都必须有时钟信号对传送的数据进行定位。接收/发送时钟就是用来控制通信设备接收/发送字符数据速度的,该时钟信号通常由外部时钟电路产生。

在发送数据时,发送器在发送时钟的下降沿将移位寄存器的数据串行移位输出;在接收数据时,接收器在接收时钟的上升沿对接收数据采样,进行数据位检测,

接收/发送时钟频率与波特率有如下关系:

收/发时钟频率 = n × 收/发波特率

n=1,16,64

在同步传送方式,必须取n=1,即接收/发送时钟的频率等于收/发波特率。在异步传送方式,n=1,16,64,即可以选择接收/发送时钟频率是波特率的1,16,64 倍。因此可由要求的传送波特率及所选择的倍数n 来确定接收/发送时钟的频率。

例如,若要求数据传送的波特率为300Baud,则

接收/发送时钟频率=300Hz (n=1)

接收/发送时钟频率=4800Hz (n=16)

接收/发送时钟频率=19.2kHz (n=64)

接收/发送时钟的周期Tc 与传送的数据位宽之间的关系是:

Tc = Td / n

若取n=16,那么异步传送接收数据实现同步的过程如下:接收器在每一个接收时钟的上升沿采样接收数据线,当发现接收数据线出现低电平时就认为是起始位的开始,以后若在连续撤8 个时钟周期(因n=16,故Td=16Tc)内检测到接收数据线仍保持低电平,则确定它为起始位(不是干扰信号)。通过这种方法,不仅能够排除接收线上的噪声干扰,识别假起始位,而且能够相当精确的确定起始位的中间点,从而提供一个正确的时间基准。从这个基准算起,每隔16Tc 采样一次数据线,作为输入数据。一般来说,从接收数据线检测到一个下降沿开始,若其低电平能保持n/2Tc(半位时间),则确定为起始位,其后每隔nTc 时间(一个数据时间)在每个数据位的中间点采样。

由此可见,接收/发送时钟对于收/发双方之间的数据传输达到同步是至关重要的。

猜你喜欢

转载自blog.csdn.net/dongdongnihao_/article/details/82702578