串行通信基本知识

一、串行通信基本知识

1.数据通信

一般把计算机与外界的信息交换称为通信。最基本的通信方法有串行通信和并行通信两种,如图5-10所示,通常根据信息传送的距离决定采用哪种通信方式。

图5-10 通信的两种基本方式

一次同时传送多位数据的通信方法叫做并行通信。其优点是传送速度高;缺点是数据有多少位,就需要多少根传送线。并行通信靠并行接口来实现。89C51有4个双向的并行I/O口,利用它们很容易实现并行通信。比如,向P1口写入数据时,指令“MOV P1,#data”是同时将8位数据送到P1口的端口锁存器,并经P1的8个引脚将8位数据输出到外围设备,这就是并行通信。

与并行通信相对,如果不是同时传送多位信号,而是将信号一位一位地传送,这种通信方式就称为串行通信。其优点是只需要一对传输线;缺点是传送速率较低。串行通信可通过串行接口来实现,一般电脑都会有两个外置的COM口,这就是串行接口。

2.串行通信的传送方式

按信息传送的方向,串行通信可以分为单工、半双工和全双工三种方式。单工是指数据传输仅能沿一个方向,不能实现反向传输;半双工是指数据传输可以沿两个方向,但需要分时进行;全双工是指数据可以同时进行双向传输,如图5-11所示。MCS-51有一个全双工串行口,即由P3.0和P3.1复用成的串行口。全双工串行通信需要两根线,一根线作为发送信号线,另一根线作为接收信号线。

图5-11 串行通信数据传送的三种方式

3.串行通信的通信方式

串行通信又分为同步通信和异步通信。

(1)同步通信时要保证发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。

1)面向字符的同步格式。面向字符的同步格式如图5-12所示,该方式中传送的数据和控制信息都必须由规定的字符集(如ASCII码)中的字符所组成。图中帧头为1个或2个同步字符SYN(ASCII码为16 H)。SOH为序始字符(ASCII码为01H),表示标题的开始,标题中包含源地址、目标地址和路由指示等信息。STX为文始字符(ASCII码为02 H),表示传送的数据块开始。数据块是传送的正文内容,由多个字符组成。数据块后面是组终字符ETB(ASCII码为17 H)或文终字符ETX(ASCII码为03 H),然后是校验码。典型的面向字符的同步规程如IBM的二进制同步规程BSC。

图5-12 面向字符的同步格式

2)面向位的同步格式。面向位的同步格式如图5-13所示,该方式将数据块看作数据流,并用序列01111110作为开始和结束标志。为了避免在数据流中出现序列01111110时引起的混乱,发送方总是在其发送的数据流中每出现5个连续的1就插入一个附加的0;接收方则每检测到5个连续的1并且其后有一个0时,就删除该0。典型的面向位的同步协议如ISO的高级数据链路控制规程HDLC和IBM的同步数据链路控制规程SDLC。

图5-13 面向位的同步格式

面向位的同步通信的特点是以特定的位组合“01111110”作为帧的开始和结束标志,所传输的一帧数据可以是任意位。所以传输的效率较高,但实现的硬件设备比异步通信复杂。

图5-14 串行异步传送的字符格式

(2)异步通信是按帧传送数据,如图5-14所示。它利用每一帧的起、止信号来建立发送与接收之间的同步,每帧内部各位均采用固定的时间间隔,但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个地发送和接收的。

在串行异步传送中,通信双方必须事先约定以下内容:

1)字符格式,包括字符的编码形式、奇偶校验形式及起始位和停止位等。例如,用ASCII码通信,有效数据为7位,加一个奇偶校验位、一个起始位和一个停止位共10位。当然停止位也可以大于1位。

2)波特率(Baud rate)。波特率表示数据的传送速率,即每秒钟调制信号变化的次数,单位是:波特(Baud)。比特率表示每秒钟传送的二进制位数,单位为bit/s(位/秒)。波特率和比特率不总是相同的,但对于将数字信号1或0直接用两种不同电压表示的所谓基带传输,比特率和波特率是相同的。所以,也经常用波特率表示数据的传输速率。

如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的波特率(比特率)为:10位×240个/s=2400bit/s。

串行异步通信时,要求发送端与接收端的波特率必须一致。

串行异步通信的传送速率一般为50~19200bit/s,常用于计算机到CRT终端和字符打印机之间的通信、直通电报以及无线电通信的数据传送等。

4.串行通信协议

通信协议用于规定数据传送方式,包括定义数据格式和数据位等。通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。在此只讨论异步串行通信协议和异步串行协议规定的字符集数据的传送格式。

(1)起始位。通信线上没有数据被传送时处于逻辑1状态。当发送设备要发送一个字符数据时,首先发出一个逻辑0信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。

(2)数据位。当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8。IBMPC中经常采用7位或8位数据传送,89C51串行口采用8位或9位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,数据位从最低有效位开始发送,依次在接收设备中被转换为并行数据。

(3)奇偶校验位。数据位发送完之后,可以选择发送奇偶校验位。奇偶校验用于有限差错检测,主要是供接收方判断数据传输正确与否的依据。若是奇校验,则接收方接收到的数据位和校验位中1的个数总和必须为奇数,才认为数据传输无误;若是偶校验,则接收方接收到的数据位和校验位中1的个数总和必须为偶数,才认为数据传输无误。为了遵循这个原则,发送数据时,校验位的状态应遵循以下规则:奇校验时,若A中为待发送的数据,则把P(PSW.0)的值取反后置于校验位。偶校验时,则把P(PSW.0)的值直接置于校验位。这样,如果数据正确传送,那么,奇校验时,接收方收到的数据位和校验位中1个数总和则为奇数,接收方认为传输无误;偶校验时,接收方收到的数据位和校验位中1个数总和则为偶数,接收方认为传输无误。

(4)停止位。在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位。停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。

(5)波特率设置。通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量的,称传送速度为波特率。如果数据以每秒300个二进制位在通信线上传送,那么传送速度为300波特,通常记为300bit/s。