首页 理论教育 单片机控制:异步通信和同步通信

单片机控制:异步通信和同步通信

时间:2023-11-05 理论教育 版权反馈
【摘要】:由于数据块的位数较多,为防止错位,在发送数据时一般同时给出时钟信号,以保持接收与发送的同步,这就是同步串行通信。

单片机控制:异步通信和同步通信

串行通信按位顺序进行传输,它又分为异步传输(Asynchronous Transmission)和同步传输(Synchronous Transmission)两种方式,一般称为异步串行通信和同步串行通信。

1.波特率

波特率的定义为每秒钟传送二进制数码的位数,也称比特数,单位是bit/s即位/秒。波特率是串行通信的重要指标,用于表征数据传输的速度。波特率越高,数据传输速度越快,但和字符的实际传输速率不同。字符的实际传输速率是指每秒内所传字符帧的帧数,和字符帧格式有关。例如,一个字符帧包含11个字符,则字符的实际传输速率为(1200/11)帧/s=109.09帧/s。

每位的传输时间定义为波特率的倒数。例如,波特率为1200bit/s的通信系统,其每位的传输时间应为

978-7-111-44921-8-Chapter06-3.jpg

波特率还和信道的频带有关。波特率越高,信道频带越宽,因此波特率也是衡量通道频宽的重要指标。通常,异步通信的波特率在50~9600bit/s之间。波特率不同于发送时钟和接收时钟,它通常是时钟频率的1/16或1/64。

2.异步串行通信

在异步通信中,数据通常是以字符(或字节)为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,通过传输线被接收设备一帧一帧地接收。发送端和接收端可以有各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立、互不同步。

在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送及何时结束发送。平时,发送线为高电平(逻辑“1”),每当接收端检测到传输线上发送过来的低电平逻辑“0”(字符帧中起始位)时,就知道发送端已开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字符信息已发送完毕。图6-3所示为异步串行通信的帧格式。

978-7-111-44921-8-Chapter06-4.jpg

图6-3 异步串行通信的帧格式

异步串行通信的帧格式说明:

字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位四部分组成。各部分结构和功能分述如下。

①起始位:位于字符帧开头,只占1位,始终为逻辑“0”(低电平),用于向接收设备表示发送端开始发送一帧信息。

②数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前(左),高位在后(右)。若所传数据为ASCII码,则常取7位。(www.xing528.com)

③奇偶校验位:位于数据位后,仅占一位,用来表征串行通信中采用奇校验还是偶校验,由用户根据需要决定。

④停止位:位于字符帧末尾,为逻辑“1”(高电平),通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已发送完毕,也为发送下一帧字符作准备。

⑤位时间:一个格式位的时间宽度。

⑥帧(Frame):从起始位开始到停止位结束的全部内容称为一帧,帧是一个字符的完整通信格式。

异步串行通信是一帧接一帧进行的,传输可以是连续的,也可以是断续(间歇)的。连续的异步串行通信,是在一个字符格式的停止位之后立即发送下一个字符的起始位,开始一个新的字符传输,即帧与帧之间是连续的。而断续的异步串行通信,则是在一帧结束之后并不接着传输下一个字符,不传输时维持数据线的“1”(高电平)状态,使数据线处于空闲;其后,新的字符传输可以在任何时刻开始,并不要求整数倍的位时间。

3.同步串行通信

异步通信以字符为单位,为实现发送和接收双方的协调,需要有开始和结束标志,为此每个字符的帧格式中都要包含起始位和停止位。传送过程中,起始位和停止位的不断重复将会占用大量的通信时间。为提高传送速度,把数据传输按相等的时间间隔分块进行,在数据块的开始加一些特殊字符,作为发送和接收双方的同步标志。由于数据块的位数较多,为防止错位,在发送数据时一般同时给出时钟信号,以保持接收与发送的同步,这就是同步串行通信。同步串行通信的数据传送格式如图6-4所示。

978-7-111-44921-8-Chapter06-5.jpg

图6-4 同步串行通信的数据传送格式

与异步串行通信比较,同步串行通信的数据传输效率高,但其通信双方对同步的要求也高,因此,同步串行通信的数据格式有如下特点和要求:

①在数据块传输的开始使用同步字符串,作为发送和接收双方同步的标志,而在结束时不需要同步标志。

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

③数据块内各字符的格式必须相同。

显然,同步串行通信比异步串行通信的传送速度快,但同步串行通信要求收发双方在整个数据传输过程中始终保持同步,这将对硬件提出更高的要求,实现起来难度大一些;而异步串行通信只要求在每帧的短时间内保持同步即可,实现起来容易得多。所以同步串行通信适用于数据量大、对速度要求比较高的串行通信场合。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈