1、串行输入输出,天津工程师范学院电子工程系 电路微机学科组孙秀强第12教学楼313房间,在计算机领域内,有两种数据传输方式:串行传输和并行传输。串行传输又称为串行通信。,并行和串行数据传输 并行数据传输数据在多条并行1位(比特)宽的传输线上同时由源传到目的地。例如,l字节的数据通过8条并行的传输线同时由源传到目的地。这种传送方式称为比特并行或字节串行。 串行数据传输数据在单条1位宽的传输线上,一比特接一比特地按顺序传送。例如,要把1字节的数据采用串行方式由源传送到目的地,则1字节数据要通过同一条传输线分8次由低位到高位,按顺序一位接一位传输。,串行数据通信要解决两个关键技术问题,一个是数据传送,
2、另一个是数据转换。所谓数据传送,就是指数据以什么形式进行传送。所谓数据转换,就是指微机在接受数据时,如何把接收到的串行数据转化为并行数据,微机在发送数据时,如何把并行数据转换为串行数据进行发送。,串行传送的基本概念,串行传送是在一根传输线上一位一位地传送,这根线既作数据线又作联络线,也就是说要在一根传输线上既传送数据信息,又传送联络控制信息,这就是串行传送的第一个特点。,那么,如何来识别在一根线上串行传送的信息流中,哪一部分是联络信号,哪一部分是数据信号。为解决这个问题,就引出了串行通信的数据格式的约定。因此,串行传送的第二个特点是它的数据格式有固定的要求(即固定的数据格式),分异步和同步数据
3、格式,与此相应,就有异步通信和同步通信两种方式。,第三个特点是串行通信中对信号的逻辑定义与TTL不兼容,因此,需要进行逻辑关系和逻辑电平转换。第四个特点是串行传送信息的速率需要控制,要求双方约定通信传输的波特率。,串行传送的特点,所用的传输线少,适于远距离传送 数据信息和控制信息可在同一条线上传送 使用的信号电平与TTL不兼容 双方需约定传输的波特率,串行通信的数据格式,在串行传输中,通信双方都按通信协议进行。所谓通信协议是指通信双方的一种约定。约定中包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题,作出统一规定,通信双方必须共同遵守。因此,也叫做通信控程;或者称
4、为传输控制规程。目前,采用的通信协议有两类:异步和同步协议。同步协议又有面向字符(Character-Oriented)和面向比特(BitOriented)以及面向字节计数等。,起止式异步通信数据格式,这种通信方式是把一个字符看作一个独立的信息单元,并且字符出现在数据流中的相对时间是任意的,而每一个字符中的各位是以固定的时间传送。因此,这种传送方式在同一字符内部是同步的,而字符间是异步的。发送器和接收器之间可以允许没有共同的时钟,因此,在异步通信中收发双方取得同步的方法,是采用在字符格式中设置起始位和停止位的办法。在一个有效字符正式发送之前,先发送一个起始位,而在字符结束时再发送一个停止位。当
5、接收器检测到起始位时,便能知道接着是有效的字符位,便开始接收字符,检测到停止位时,就知道字符结束了。,同步通信规程,以数据块(或字符)块为单位进行传送 收发双方时钟要求严格同步 需要界定符 无数据传送时,传送同步字符,同步通信的发送器和接收器通常使用同一时钟源来同步。该时钟不仅对一个字符中的各位之间进行定时,而且也对字符之间进行定时。同步传送的字符没有起始位和停止位。它不是用起始位来表示字符的开始,而是用特定称为同步字符的二进制序列,来表示开始发送数据。即发送端总是在正式发送数据信息之前,先发送同步字符去通知接收器,接收器在收到同步字符之后,便开始按双方事先约定的速率接收数据。也就是说,同步传
6、送是用同步字符来做为信息开始传送的标志和启动信号。,同步通信数据格式,面向字符的同步通信数据格式规定10个特殊字符作为控制字符 在数据块中的传送的数据如果与控制字符相同,采用字符填充方式。DLE为转义字符。 例:数据中若有ETX,则转义为DLE ETX;数据中若有DLE,则转义为DLE DLE。,同步通信数据格式(续),面向比特的同步通信数据格式典型协议有SDLC,HDLC,LAPD,LAPB等 比特填充技术(“0”插入/删除技术),并行通信中,传输速率是以每秒传送多少字节(B/S)来表示。而串行通信中,传输速率是用波特率来表示。所谓波特率,是指单位时间内传送二进制数据的位数,其单位是位/秒(
7、b/s)。它是衡量串行数据速度快慢的重要指标。有时也用“位周期”来表示传输速率。位周期是波特率的倒数。最常用的标准波特率是110、300、600、1200、2400、4800、9600和19200b/s。,通信线上所传输的字符数据(代码)是逐位传送的,1个字将由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。在串行通信中,所说的传输速率是指波特率,而不是指字符速率,它们两者的关系是:假如在异步串行通信中,传送一个字符,包括12位(其中有1个起始位,8个数据位,l个偶校验位,2个停止位),其传输速率是1200b/s,那么,每秒所能传送的字符数是1200/(1+8+l+2)=1
8、00个。,波特率与发送/接收时钟,波特率:单位时间内传送的二进制信号数 16倍波特率收/发时钟的采样过程如下图所示,数据传送方式,单工方式 数据只能从甲方单方向地传送到乙方或者相反,就称为单工方式。在这种情况下甲、乙两方只需一方设置一个发送器而另一方设置一个接收器即可实现通信。,A,B,发方,收方,数据传送方式(续),半双工方式在同一条通信线路上,数据既可以从甲方传送到乙方,又可以从乙方传送到甲方,但这两种传送不能同时进行。半双工方式要求甲、乙方分别设置一套发送器和接收器,通过切换选择使之用同一线路实现“甲发乙收”或“乙发甲收”的传送,A,B,数据传送方式(续),全双工方式要求甲、乙双方既可同
9、时发送数据又可同时接收数据,这种方式则称为全双工方式。此种情况下甲乙双方需分别设置一套发送器和接收器,并需要使用两条独立的通信线路。,A,B,调制解调器与远程数据通信,为实现远距离数据通信和远程计算机网络等远程数据传送,通常利用现有的电话线网络作为数据传送的载体。但由于电话线原为传送话音设计的,其传输频带很窄,在300HZ到340HZ之间,用它传送方波的数字信号,必将引起波形畸变,从而影响传输的可靠性。,为此,在发送时需要将二进制信号调制成相应的音频信号,以适合在电话网上传输。在接收时,需要对音频信号进行解调还原成数字信号。采用调制器(Modulator)把数字信号转换为模拟信号,送到通信链路
10、上去,而用解调器(Demodulator)再把从通信链路上收到的模拟信号转换成数字信号。 大多数情况下,通信是双向的,调制器和解调器合在一个装置中,这就是调制解调器MODEM,调制解调器的类型比较多,有振幅键控(ASK),频移键控(FSK)和相移键控(PSK)。当波特率小于300时,一般采用频移键控(FSK)调制方式,或者称为两态调制。 它的基本原理是把“0”和“1”两种数字信号分别调制成不同频率的两个音频信号,其原理如图9.4所示。,信息的检错与纠错,串行数据在传输过程中,由于干扰而引起误码是难免的,这直接影响通信系统的可靠性,所以,对通信中差错控制能力是衡量一个通信系统的重要指标。我们把如
11、何发现传输中的错误,叫检错。发现错误之后,如何消除错误,叫纠错。在基本通信规程中一般采用奇偶校验或方阵码检错,以反馈重发方式纠错。在高级通信控制规程中一般采用循环冗余码(CRC)检错,以自动纠错方法来纠错。,方阵码检错技术是奇偶校验与“检验和”的综合。例如,7单位编码的字符后附1位奇偶位,以使整个字节的“1”的个数为偶数或者为奇数。若干个字符组成一个数据块,列成方阵,再纵向按位加产生一个单字节的检验字符并附加到数据块末尾。这一检验字符实际是所有字节“异或”的结果,反映了整个数据块的奇偶性。,异步串行接口标准,RS-232C接口标准 RS-422接口标准 RS-485接口标准 20mA电流环,R
12、S-232C信号线定义,共有25根信号线,9根主要信号线定义如下: TxD 发送数据线 RxD 接收数据线 RTS 请求发送。DTE请求DCE发送数据。 CTS 清除发送。是DCE对RTS信号的响应。 DSR 数据设备准备好。表示Modem可用 SG 信号地 DCD (RLSD) 载波检测信号。本地Modem已检测到远端Modem送出的载波信号 DTR 数据终端准备好。表示DTE可用 RI 振令指示,具有Modem设备的远距离通信数据终端设备(如计算机)通过RS232C接口和数据通信设备(如调制解调器)连接起来,再通过电话线和远程的设备进行通信、即电话线的两端都是数据通信设备,即Modem设备
13、。,DTE,DCE (Modem),TxD,RxD,RTS,CTS,DTR,DSR,RI,DCD,SG,电话线,2,3,4,5,20,6,22,8,7,零Modem连接方式 近距离通信时,由于通信双方距离较近,直接将数据终端设备连接起来即可、最简单的一种连接方法只用3根线,其他和Modem有关的线,可以不连接,DTE,TxD 2,RxD 3,RTS 4,CTS 5,DTR 20,DSR 6,RI 22,DCD 8,SG 7,DTE,2,3,4,5,20,6,22,8,7,电气特性,逻辑“1” 为-3V -15V 逻辑“0” 为+3V +15V EIA电平与TTL电平之间需进行转换。,UART,
14、DB25 插座,MC1488,MC1489,TTL,TTL,EIA,EIA,RS232C的逻辑电平与TTL完全不同,采用负逻辑,它规定“1”的逻辑电平为-3V-15V,“0”的逻辑电平为3V15V,此电平称为EIA电平。因此,为了能够同计算机接口的TTL集成电路连接,必须在EIA电平和TTL电平之间进行电平和逻辑的变换。,有握手线的零Modem连接方式,DTE,SG,DTE,2,3,4,5,20,6,22,8,7,TxD 2,RxD 3,RTS 4,CTS 5,DTR 20,DSR 6,RI 22,DCD 8,SG 7,机械特性,DTE,DCE,15m,DB25/M(针),DB25/F(孔 )
15、,通信线路),RS-422接口标准,平衡传送方式逻辑“1” AA与BB的电位差大于200mv逻辑“0” AA与BB的电位差小于200mv 能有效抑制共模干扰,最大传输率可达10M b/s,串行接口芯片,串行接口的基本任务,数据格式的自动生成 串并变换 传输速率控制 错误检测 电平转换,为了实现数据的转换,应使用串行接口芯片。这种接口芯片也称之为通用异步接收发送器(UART),典型UART的基本组成如下图所示。,UART的三个基本组成部分是接收器、发送器和控制器。尽管UART芯片的型号不同,但它们的基本组成和主要功能却大致相同 。,数据的串行化反串行化所谓串行化处理就是把并行数据变换为串行数据。
16、所谓反串行化就是把串行数据变换为并行数据。在UART中,完成数据串行化的电路属发送器,而实现数据反串行化处理的电路则属接收器。 格式信息的插入和滤除格式信息是指异步通信格式中的启始位、奇偶位和停止位等。在串行化过程中,按格式要求把格式信息插入,和数据位一起构成串行数据位串,然后进行串行数据传送。在反串行化过程中,则把格式信息滤除而保留数据位。 错误检验错误检验的目的在于检验数据通信过程是否正确。在串行通信中可能出现的错误包括奇偶错和帧错等。对于微型计算机,为了进行串行数据通信,就需要使用UART,但也不要以为串行接口芯片的功能很强,只要有一片串行接口芯片就可以实现串行数据通信了。实际情况是不管
17、串行接口芯片的功能有多么强,要完成串行数据通信都要软件配合。,MCS 51的串行口及控制寄存器,对于单片机来说,为了进行串行数据通信,同样也需要有相应的串行接口电路。只不过这个接口电路不是单独的芯片,而是集成在单片机芯片的内部,成为单片机芯片的一个组成部分。MCS51系列单片机有一个全双工的串行口,这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。,MCS51单片机串行口中寄存器的基本结构如图所示,图中SBUF是串行口的缓冲寄存器。它是一个可寻址的专用寄存器,其中包括发送寄存器和接收寄存器,以便能以全双工方式进行通信。这两个寄存器具有同一地址(99H)。串行发送时
18、,向SBUF写入数据;串行接收时,从SBUF读出数据。此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,以避免在数据接收过程中出现帧重叠错误。与接收数据情况不同,发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路就不需双重缓冲结构。,与串行通信有关的控制寄存器共有三个。 1串行控制寄存器SCON SCON是MCS51的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址98H,位地址9FH98H。寄存器内容及位地址表示如下:,各位功能说明如下: SM0、SM1串行口工作方式选择位其状态组合所对应的工作方式为:SM0 SM1 工作方式0 0 00 1 11
19、 0 21 1 3 SM2多机通信控制位因多机通信是在方式2和方式3下进行,因此SM2位主要用于方式2和方式3。当串行口以方式2或方式3接收时,如SM21,则只有当接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则,将接收到的前8位数据丢弃。而当SM20时,则不论第九位数据为0还是为1,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。,REN允许接收位REN位用于对串行数据的接收进行控制:REN=0禁止接收REN=1允许接收该位由软件置位或复位。,TB8发送数据位8在方式2和方式3时,TB8是要发送的第9位数据。在多机通
20、信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0为数据,TB8=1为地址。该位由软件置位或复位。 RB8接收数据位8在方式2或方式3时,RB8存放接收到的第九位数据,代表着接收数据的某种特征,故应根据其状态对接收数据进行操作。,TI发送中断标志当方式0时,发送完第8位数据后,该位由硬件置位。在其它方式下,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束,其状态既可供软件查询使用,也可请求中断。TI位由软件清0。 RI接收中断标志当方式0时,接收完第8位数据后,该位由硬件置位。在其它方式下,当接收到停止位时,该位由硬件置位。因此RI=1,表示帧接收结束。其状态既可供软件查询使用,也可以请求中断。RI位由软件清0。,链接,