串行通信的基本概念
串行通信是指两个功能模块只通过一条或两条数据线进行数据交换。
发送方需要将数据分解成二进制位,一位、一位地分时经过单条数据线传送。
接受方需要一位一位地从单条数据线上接收数据,并且将它们重新组装成一个数据。
串行通信数据线路少,在远距离传送时比并行通信的造价低。
但是一个数据只有经过若干次以后才可以传送完,速度较慢。
串行通信时,需要解决以下问题:
●双方约定的发送与接受速率(波特率)。
●约定采用的数据格式(贞格式)。
●接受方怎样知道一批数据的开始、结束(贞同步)。
●接受方怎样从数据流中采样每位数据(位同步)。
●接受方怎样判断接收数据的正确性(数据校验),如何处理收发错误。
解决这些问题的方法大体有同步通信与异步通信两种。
(1)异步通信
异步通信以字符为单位传送,为了解决贞同步,每个字符都附加了一些控制信息,由4部分组成一位起始位(低电平)、5——8位数据位、一位奇偶校验位、1——2位停止位(高电平)。
两个字符之间的间隔是任意的,中间可以填充空闲位(高电平)。
只要接受方检测到数据线上出现了由高电平向低电平的跳变,并且低电平能持续一段时间,就表明已经就收到一桢数据的开始。
这时可以按照接受时钟从数据线上采样数据,直到接收到了停止位表明接受完一桢数据。
接收方还可以通过奇偶校验位判断数据传送过程中是否出现错误。
异步传送控制比较简单,对发送与接收时钟要求不很严格,不会造成错误累积,但是由于每个数据在传送时都要附加控制信息,约有20%的冗余,传送效率并不高,为50——9600波特之间。
(2)同步通信
同步通信以数据块为单位进行传颂,为了解决贞同步,在每一批数据流之前,附加同步信息(1——2个同步字符),最后以校验字符结束。
如果在数据传送过程中,发生数据断流(即发送方没有数据可发送)应以同步字符填充。
接收方检测到协议要求的1——2个同步字符后,就可以认为双方已经取得一致,之后就可以在严格的时钟控制下采样数据线接收数据。
当然同步通信可以根据校验字符判断所接收的一批字符是否在传送过程中出现错误。
同步通信的传送速率较高,在1——2个同步字符的带领下,就可以源源不断的发送接收。
但是同步通信对双方的时钟要求很严格,并且容易造成错误累积。
串行通信中的常用术语
(1)传送机制
穿行传送有单工、半双工、全双工三种传送方向。
单工是指发送方与接收方只有一条数据线路,而且这条数据线路永远只能进行余个方向的传输。
半双工是指发送方与接收方也只有一条数据线路,但这条数据线路可以在不同时刻进行两个方向的传输。
全双工是指发送方与接收方有两条数据线路,同一时刻可以利用这两条数据线路进行不同方向的数据传输。
(2)调制与解调
计算机内使用的是数字信号,要求的频带很宽,而一般的通信线路如电话线路的频带只有
300HZ——3400HZ。
为了能通过电话线传送数据,必须要把数字信号变成符合线
路要求的模拟信号,这就是调制。
常用的调制方法有调频、调相、调幅。
而将电话线路上的模拟信号变为计算机可以接受的数字信号就是解调。
(3)传输率
传输率是指每秒传送的二进制位的个数,通常与波特率相同。
但是严格地讲波特率是指每秒传送的离散信号的个数。
二者的概念不尽相同。
当采用调幅方式使二者在数值上相等。
计算机中常用的一些标准波特率系列为:110,150,300,600。
1200。
2400,4800,9600,19200。
通信是根据传送的波特率来确定发送和接收时钟的。
时钟频率和波特率之间的关系为:
时钟频率=N*波特率
这里的N为波特率系数,常为1,16,32,64。
一定的波特率系数可以避免假启动和噪声干扰。
串行通信过程中常见的错误
串行通信中常见的错误有奇偶校验错、溢出错、桢格式错。
奇偶校验错是指:接收方接受到的数据中1的个数与奇偶校验位不符,通常是由噪声干扰引起的,发生这种错误时接收方应该要求发送方重新发送。
溢出错是指接收方与发送方的速率不匹配,接受方没有来得及处理接受来的数据,发送方已经发送来下一个数据,造成数据丢失。
可以通过降低发送方的发送速率或者在接受方设置多机缓冲结构等方法来减少这种错误。
桢格式错是指接收方接阿收的字符格式与协议不符,这种错误多半是由双方协议不明确或噪声干扰引起的。