微机与接口技术综合设计课程讲义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章微型机系统的串行通信技术
4.1 串行通信概论
在微型机系统中,CPU与外部设备传送数据(或信息)的方法有两种:(1)并行通讯:数据的各位同时传送;(2)串行通讯:数据一位一位按顺序传送。图4.1表示这两种传送方式的示意图。
(a)并行通讯(b)串行通讯
图4.1 并行通讯与串行通讯
从图4.1中可以看出,在并行通讯中,数据有多少位就需要多少根数据总线,而串行通讯只需要一对传送线。因此,串行通讯在距离和位数比较多时,有着明显的优越性。但它的主要缺点是传送数据的速度比较慢。在这一节里,主要介绍有关串行通讯的基本概念。4.1.1 数据传送方式
在串行通讯中,数据传送有三种方式:单工方式、半双工方式和全双工方式。
1.单工方式(Simplex Mode)
在这种方式中,只允许数据按一个固定的方向传送,如图4.2(a)所示。图中A只能发送,称为发送器(Transfer),B只能接受,叫做接收器(Receiver)。而不能从B传向A。
2.半双工方式(Half-Dupiex Mode)
半双工方式的示意图如图4.2(b)所示。在这种方式下,数据既可以从A传向B,也可以从B传向A。因此,A方、B方既可作为发送器,又可作为接收器,通常称为收发器(Transceiver)。从这个意义上讲,这种方式似乎为全向工作方式,但是,由于A、B之间只有一根传输线,所以信号只能分时传送。即在同一时刻,只能进行一种传送,不能同时双向传输。因此,将其称为“半双工”方式。在这种工作方式下,要么A发送,B接收;要么B 发送,A接收。当不工作时,令A、B均处于接收方式,以便随时响应对方的呼叫。
图中的收发开关并不是实际的物理开关,而是由软件控制的电子开关,通讯线二端通过半双工通讯协议进行功能切换。
3.全双工方式(Full-Duplex-Mode)
虽然半双工方式比单工方式灵活,但它的效率依然比较低,主要原因是从发送方式切换到接收方式需要一定的时间,大约为数毫秒。重复线路切换所引起的延迟积累,是相当可观的。另一方面,也是更重要的,就是在同一时刻只能工作在一种方式下,这是半双工效率不高的根本原因所在。解决的方法是增加一条线,使A、B两端均可同时工作在收发方式,如图4.2(c)所示。将图(c)与图(b)相比,虽然对每个站来讲,都有发送器和接收器,但由于图(c)中有两条传送线,用不着收发切换,因而传送速率可成倍增长。
图4.2 数据传送方式示意图
值得说明的是,全双工与半双工方式比较,虽然信号传送速度大增,但它的线路也要增加一条,因此系统成本将增加。因此在实际应用中,特别是在异步通讯中,大多数都采用半双工方式。这样,虽然发送效率较低,但线路简单、实用,而且一般系统也基本够用。4.1.2 波特率和接收/发送时钟
1. 波特率
在数据传送方式确定后,到底以多大的速率发送/接收数据,这也是串行通信的重要问题之一。它不但取决于计算机本身的速率,更重要的是取决于串行通信接口芯片的速率。
如前所述,串行通信是一位一位传送的。衡量传送数据快慢的单位叫波特率。所谓波特率是指每秒钟传送的二进制数据的位数。单位是波特/秒(bit/s)。
1波特=1位/秒(1bps)
在实际应用中,波特率是可以选择的。常用的波特率用19200、9600、4800、2400、1200、600、300、150、100、50,一般来讲波特率越大,传送数据的速率越快。在某些应用中,波特率有时可达10Mbps或100Mbps。有时也用“位周期”来表示传送速度,位周期是波特率的倒数。
2. 收/发时钟
在串行通信中,无论发送或接收,都必须有时钟脉冲信号对数据进行定位和同步控制。通常它在发送端是由发送时钟的下降沿,使输入移位寄存器的数据串行一位输出。而接收端则是在接收时钟的上升沿作用下将传输线上的数据逐位移入移位寄存器。收/发时钟与二进制数据的关系如图4.3所示。
图4.3 收/发时钟与收/发数据的关系
从图4.3可以看出,收/发时钟不仅直接决定了数据线上传送数据的速度,而且直接关系到收/发双方之间的数据传输的同步问题。为此,一般采用倍频采样方法,即提高采样频率:
收/发时钟频率=n×波特率
一般n取1、16、32、64等等。对于异步通信,常采用n=16;对于同步通信,则必须取n=1。
4.1.3 异步和同步通信
根据在串行通信中数据定时、同步的不同,串行通信的基本方式有两种,异步通信(Asynchronous Communication)和同步通信(synchronous Communication)。
1. 异步通信
异步通信方式是字符的同步传输技术。在异步通信中,传输的数据以字符(Character)为单位。当发送一个字符代码时,字符前面要加一个“起始”信号,其长度为一位,极性为“0”,即空号(Space)状态。规定在线路不传送数据时全部为“1”,即传号(Mark)状态。字符后边要加一个“停止”信号,其长度为1、1.5或2位,极性为“1”。字符本身的长度为5~8位数据,视传输的数据格式而定。例如,当传送的数字(或字符)用ASCII码表示时,其长度为7位。在某些传输中,为了减少误码率,经常在数据之后还加一位“检验位”。由此可见,一个字符由起始位(0)开始,到停止位(1)结束,其长度为7~12位。起始位和停止位用来区分字符。传送时,字符可以连续发送,也可以断续发射,不发送字符时线路保持“1”状态。字符发送的顺序为先低位后高位。
综上所述,异步串行通信的格式如图4.4所示。
图4.4 异步串行通信格式
异步串行通信的优点是收/发双方不需要严格的位同步。也就是说,在这种通信方式下,每个字符作为独立的信息单元,可以随机地出现在数据流中,而每个字符出现在数据流中的相对时间是随机的。然而一个字符一旦发射开始,就必须连着出去。由此可见,在异步串行通信中,所谓“异步”是指字符与字符之间的异步,而在字符内部,仍然是同步发出。因此,这种通信的效率比较低。
尽管如此,由于异步通信电路比较简单,其链路协议也不难实现,所以,异步通信在串行通信中得到了广泛地应用。在后边讲的各种串行标准总线以及PC机中均采用这种通信方式。现在采用的异步通信的速率通常在9600bit/s以上。