第六章串并行通信接口技术串行通讯基础并行通讯基础可编程并行接口芯片8255A8255A的应用举例计算机与外设交换信息的过程中:并行通信:多位数据通过多条数据线同时传送。串行通信:多位数据通过同一条数据线按位传送。与串行通信(一位一位传输)相比,在相同传输率下,并行通信的信息实际传输速度快、信息率高。但并行通信比串行通信所用电缆多,随着距离的增加,电缆的开销会成为突出的问题。所以,并行通信总是用在数据传输率要求较高,而传输距离较短的场合。第一节串行通讯基础一、什么是串行通信1、概念:所谓串行通信是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。“串行”是指外设与接口电路之间的信息传送方式,CPU与接口之间仍按并行方式工作。2、一个典型的串行接口的结构主要有:控制寄存器状态寄存器数据输入/输出寄存器串入/并出移位寄存器并入/串出移位寄存器结构图如下:常用的可编程串行接口芯片:intel8251、INS8250、Z80SIO等。3、串行通信中需解决的问题1、首要问题:如何识别在一根线上既传送数据又传送联络信号。2、传送信号的格式要有固定要求。3、传送过程中的电平转换。4、通信双方必须约定传输速率。4、串行口的基本任务(1)进行串,并转换(2)实现串行数据格式化(3)可靠性检验(4)实施接口与DCE之间联络控制二、信息传输的检错和纠错(简介)•串行数据在传输过程中,由于干扰可能引起信息的出错如何发现传输中的错误,叫检错发现错误后,如何消除错误,叫纠错•最简单的检错方法是奇偶校验,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。奇校验:所有传送的数位(含字符的各数位和校验位)中,1的个数为奇数偶校验:所有传送的数位(含字符的各数位和校验位)中,1的个数为偶数奇偶校验能够检测出1位误码,但是不能纠错。三、串行数据传输方式1、全双工(FullDuplex)数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,选择的传送方式称为全双工制。发送器接收器接收器发送器A站B站图5.1全双工方式示意图特点:①每一端都有发送器和接收器②有二条传送线应用:交互式应用,远程监测控制2、半双工(HalfDuplex)使用同一根传输线,既可发送数据又可接收数据,但不能同时收送数据,这样的传送方式就是半双工(HalfDuplex)制,如图5.2所示发送器接收器发送器接收器A站B站图5.2半双工方式示意图特点:①每端需有一个收/发切换电子开关②因有切换,会产生时间延迟应用:打印机串口,单向传送设备,发送器→接收器3、单工方式发送接收特点:信息只能沿一个方向传送,使用一根传输线。应用:电视发射台四、传输速率1、波特率在串行通讯中,用波特率来描述数据的传输速率。波特率,即每秒钟传送的二进制位数,简写为bps。收、发双方的波特率必须一致。接收时钟/发送时钟频率是波特率的倍数,称为波特率因子。如常用的有:1、16、32、64。例:波特率=9600bps,波特率因子=16,则接收时钟和发送时钟频率=9600×16=153600Hz常用的标准波特率:110,300,1K,1.2K,2.4K,4.8K,9.6K,19.2K,56K2、字符速率:是指每秒所传输的字符数,这个概念使用少。字符速率与波特率的关系:1个字符:1个起始位+8个数据位+1个偶数位+2个终止位=12位如果波特率:12000则字符速率:12000/12=1000字符/s五、信号的调制和解调计算机的通信是要求传送数字信号,而在进行远程数据通信时,线路往往是借用现有的公用电话网,但是,电话网是为音频模拟信号的设计的。一般为300~3400Hz,不适合于数字信号。因此需要对二进制信号进行调制,以适合在电话网上传输相应的音频信号,在接收时,需要进行解调,还原成数字信号。计算机MODEMMODEM模拟信号数字信号数字信号CRT101010101010调制电话线1、什么叫调制?所调调制就是进行波形变换。或者说进行频谱变换,就是将基带数字信号的频谱变换成适合于在模拟信道中传输的频谱。2、作用:调制器(Modulator)是一个波形变换器,它将基带数字的波形变换成适合于模拟信道传输的波形。解调器是一个波形识别器,将模拟信号恢复成原来的数字信号。调制器解调器0100100100103.调制方法:最基本的调制方法有以下几种:(1)调幅(AM)即载波的振幅随基带数字信号而变化.“1”对应有载波“0”对应无载波(2)调频(FM)即载波频率随数字信号而变化“0”对应”f1”“1”对应“f2”(3)调相(PM)即载波初始相位随基带数字信号而变化.“0”对应相位0度“1”对应相位180度f1f2FMAM0100110度180度PM六、串行通信的类型按信息格式的不同约定将串行通信分为两种类型:同步通信、异步通信。1、异步通讯:以字符为单位进行传输,每个字符一位一位地传输,传输一个字符时,以起始位开始,然后传输字符本身的各位,接着可传输校验位,最后以停止位结束该字符的传输。一次传输的起始位、字符各位、校验位、停止位构成一组完整的信息,称为帧(Frame)。帧与帧之间可有任意个空闲位。起始位之后是数据的最低位。异步通信可以采用正逻辑或负逻辑。异步通信的信息格式:起始位逻辑01位数据位逻辑0或15位、6位、7位、8位校验位逻辑0或11位或无停止位逻辑11位、1.5位或2位空闲位逻辑1任意数量最低位最高位奇偶位停止位起始位数据位例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形为2、同步通讯同步通信是靠同步字符完成收发双方同步的。多个字符成组传送,在每组信息的开始,加上同步字符,字符组和同步字符以及需要的其他字符构成一个信息帧。不允许字符数据间有空隙,没有数据时可填充同步字符。同步字符字符1字符2……字符n校验字符数据块总结特点:①以数据流为单位进行传送,每个数据流(即每帧)中有成百上千个字符。②以同步字符作为传送的开始,同步字符可由用户确定。③每位占用时间相等。④数据流不允许有空隙,当来不及准备数据而无数据可发时,发送同步字符填充。⑤收/发时钟频率=收/发波特率。3、两者比较①同步通信的数据传输效率高。②同步通信的硬件电路复杂。说明:“同步“——通信过程中,要求字符与字符之间以及字符内部的位与位之间都必须同步。为达到这一目的,要求收、发双方必须使用同一时钟对被传输信息定位。“异步”——主要体现在通信过程中字符与字符之间没有严格的定时要求,通信双方是通过收/发双方事先约定的收/发波特率和字符格式、在收/发端各自的时钟信号作用下,实现被传送字符的位同步的。因此,要求收发端使用相同(相近)的时钟。七、串行通信的接口标准数据通信的整个过程可视作是通过一系列串行接口和传输信道将信息传送到目的地的过程。为使现这一过程的规范化及准确无误,有了许多接口的“标准”和接口信号的“推荐做法‘。接口标准主要有:RS—232、RS—422、RS—485、X·21、X·25它们都是根据不同的推荐标准而设计出来的接口标准。各接口标准均包含4个方面内容:①接口的机械性能②接口间的电气特性③接口各信号的功能④具体应用时接口信号的连接计算机通信中使用最普遍的是RS-232C标准,PC机上的COM1、COM2接口,就是RS-232C接口,使用9针和25针连接器。EIA-RS-232接口标准RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:0~20Kbps。RS—232的确切定义是:“数据DTE终端设备与数据通信设备采用串行二进制数据交换的接口。”RS—232标准接口的电气特性定义了有关电压、电流一些特殊的电气信号以及接口间的信号类型等标准。RS-232C采用负逻辑,且信号电平与TTL不兼容,规定逻辑“1”在-3V~-15V之间,逻辑“0”在+3V~+15V之间。RS-232C不是TTL电平的接口标准,当计算机与外设进行通信时,必须有相应的电平转换电路。通常采用的是MC1488和MC1489电平转换器。串行接口芯片8250、8251均使用TTL电平,应使用电平转换电路与RS-232C连接器连接。MC1488:TTL电平→RS232电平(用于发送方)MC1489:TTL电平←RS232电平(用于接收方)第二节并行通讯基础实现并行通信的接口就是并行接口。一个并行接口可以设计为只用来作为输出接口,也可以只用来作为输入接口,此外,还可以把它设计成既作为输入又作为输出的接口。并行接口是在多根数据线上,以字节/字为单位与I/O设备交换数据。在计算机内部数据是并行传送的。因此,并行接口电路相对简单,串行接口电路由于要进行串并行转换相对复杂。并行接口电路芯片常用的有两类:普通的8位锁存器及缓冲器可编程设置工作方式的并行接口下面看一个典型的并行接口电路图:CPU数据总线读出信号写入信号复位准备好中断请求地址译码地址控制寄存器输入缓冲寄存器输出缓冲寄存器状态寄存器片选A0A1输入设备输出设备数据输入准备好数据输出准备好数据输入回答数据输出回答数据输入数据输出第三节可编程并行接口芯片8255A8255A是INTEL系列的并行接口芯片,由于它是一种可编程的外部接口部件,通常作为微机系统总线与外部设备的接口控制部件,可通过软件来设置芯片的工作方式,用8255A连接外部设备时,通常不需要附加外部电路,给使用带来很大的方便。IBMPC就是采用8255A与键盘、扬声器等其他外设进行接口。40PIN、DIP封装,芯片体积大,设计简单的系统通常不用。在目前的主板中,功能已经集成在芯片组中,但使用和编程与8255A完全一致。一、8255A内部结构A组控制数据总线缓冲器读/写控制逻辑B组控制A组A口(8位)A组C口高位(4位)B组C口低位(4位)B组B口(8位)D0~D7WRRDA1A0RESETCSPA0~PA7PC4~PC7PC0~PC3PB0~PB78255A内部框图8255A内部组成(1):数据端口A,B,C8255有3个8位的I/O端口,可分别作为输入端口或输出端口。端口A:对应了1个8位的数据输入锁存器和1个8位的数据输出锁存/缓冲器。所以口A作为输入或输出时,数据均受到锁存。端口B:对应了1个8位的数据输入缓冲器和1个8位的数据输出锁存器/缓冲器。所以口B作为输入端口时,不会对数据进行锁存,而作为输出端口时,数据会受到锁存。端口C:与口B基本一致。在使用中,端口A和B通常作为独立的输入端口或输出端口,端口C则配合端口A和B的工作。具体讲,就是口C通过控制命令被分成2个4位端口,每个4位端口包含1个4位的输入缓冲器和1个4位的输出缓冲器,他们分别用来为端口A和B输出控制信号和输入状态信号。8255A内部组成(2):A组控制和B组控制这两组控制电路:一方面接收芯片内部总线上的控制字,一方面接收来自读/写控制逻辑电路的读/写命令,由此决定两组端口的工作方式和读写操作。A组控制电路控制端口A和口C的高4位(PC7~PC4)的工作方式和读/写操作。B组控制电路控制端口B和口C的低4位(PC3~PC0)的工作方式和读/写操作。8255A内部组成(3):读/写控制逻辑电路读/写控制逻辑电路负责管理8255的数据传输过程。它接收CS及来自系统地址总线A1,A0(8086系统中为A2,A1)和控制总线的输入信号RESET,WR,RD,将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发送给这两个部件,以完成对数据、状态信息和控制信息的传输。数据总线缓冲器8255的数据总线缓冲器是双向三态的8位数据缓冲器,通过它直接与系统的数据总线相连。输入数据、输出数据、CPU发给8255的控制字都是通过这个缓冲器传送的。说明:(1)A1A0端口口线00端口APA7~PA001端口BPB7~PB010端口CPC7~PC011对控制