第十章1.串行通信与并行通信的主要区别是什么?各有什么优缺点?答:计算机与外部的信息交换称为通信,基本的通信方式有两种,并行通信和串行通信。并行通信:数据各位同时传送,此方式传输数据的速度快,但使用的通信线多,若要并行传送8位数据,需要用8根数据线,另外还需一些控制信号线。随着传输距离的增加,通信线成本的增加将成为突出的问题,而且传输的可靠性随着距离的增加而下降。因此,并行通信适用于近距离传送数据的场合。串行通信:将要传送的数据或信息按一定的格式编码,然后在单根线上按一位接一位的先后顺序进行传送。发送完一个字符后,再发送第二个。接收数据时,每次从单根线上一位接一位的接收信息,再把它们拼成一个字符,送给CPU作进一步处理。适用于远距离通信,需要的通信线少和传送距离远等优点。2.在串行通信中,什么叫单工、半双工、全双工工作方式?答:串行通信时,数据在两个站A与B之间传送,按传送方向分成单工、半双工和全双工三种方式。单工数据线仅能在一个方向上传输数据,两个站之间进行通信时,一边只能发送数据,另一边只能接收数据,也称为单向通信。在半双工方式中,数据可在两个设备之间向任一个方向传输,但两个设备之间只有一根传输线,故同一时间内只能在一个方向上传输数据,不能同时收发。全双工:对数据的两个传输方向采用不同的通路,可以同时发送和接收数据。3.什么叫同步工作方式?什么叫异步工作方式?哪种工作方式的效率更高?为什么?答:串行通信有两种基本工作方式:异步方式和同步方式异步方式:不发送数据时,数据信号线总是呈现高电平,称为MARK状态,也称空闲状态。当有数据要发送时,数据信号线变成低电平,并持续一位的时间,用于表示字符的开始,称为起始位。起始位后,在信号线上依次出现待发送的每一位字符数据,昀低有效位D0昀先送出,根据不同编码,有效数据位可由5位、6位、7位或8位构成,数据位后面有一个奇偶校验位,校验位后至少有一位高电平表示停止位,用于指示字符的结束。由此可见,异步方式发送一个7位的ASCII码时,实际需发送10位、10.5位或11位信息,故影响传输效率。同步方式:没有数据传送时,传输线处于MARK状态,为了表示数据传输的开始,发送方式发送一个或两个特殊字符,称为同步字符。当发送法和接收方达到同步后,就可以一个字符接一个字符发送一大块数据,不再需要用起始位和停止位了,这样就可以明显的提高数据的传输速率。同步方式传送数据时,在发送过程中,收发双发还必须用同一个时钟进行协调,用于确定串行传输中每一位的位置。接收数据时,接受方可利用同步字符将内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。4.用图表示异步串行通信数据的位格式,标出起始位,停止位和奇偶校验位,在数字位上标出数字各位发送的顺序。答:5.什么叫波特率?什么叫波特率因子?常用的波特率有哪些?答:在串行通信中,波特率表示数据传送的速率,每秒钟内所传送数据的位数称为波特率,单位为波特bps(Bd)。在波特率指定后,输入移位寄存器/输出移位寄存器在接收时钟/发送时钟控制下,按指定的波特率速度进行移位。一般几个时钟脉冲移位一次。要求:接收时钟/发送时钟是波特率的16、32或64倍。波特率因子就是发送/接收1个数据(1个数据位)所需要的时钟脉冲个数,其单位是个/位。常用的波特率为110,300,600,1200,2400,4800,9600,19200,28800,36400,57600波特。6.若某一终端以2400波特的速率发送异步串行数据,发送1位需要多少时间?假设一个字符包含7个数据位、1个奇偶校验位、1个停止位,发送1个字符需要多少时间?答:1/2400=0.416ms,一个字符包含7个数据位、1个奇偶校验位、1个停止位,1个起始位,发送1个字符需要10/2400=4.16ms7.什么叫UART?什么叫USART?列举典型芯片的例子。答:仅用于异步通信的接口芯片,称为通用异步收发器UART(UniversalAsynchronousReceiver-Transmitter),典型芯片如INS8250。既可以工作于异步方式,又可工作于同步方式,称为通用同步异步收发器USART(UniversalSynchronous-AsynchronousReceiver-Transmitter),典型芯片如Intel8251A。8.什么叫MODEM?用标准电话线发送数字数据为什么要用MODEM?调制的形式主要有哪几种?答:能将数字信号转换成音频信号及将音频信号恢复成数字信号的器件称为调制解调器,即MODEM。标准电话线只能传送带宽为300Hz~3000Hz的音频信号,不能直接传送频带很宽的数字信号,为了解决此问题,在发送数据时,先把数字信号转换成音频信号后,称为调制,再利用电话线进行传输,接收数据时又将音频信号恢复成数字信号,称为解调。调制的形式主要有:幅度(Amplitude)调制或幅移键控ASK(Amplitude-ShiftKeying)简称“调幅”频率键移FSK(Frequency-ShiftKeying,简称“调频”)相位键移PSK(Phase-ShiftKeying,简称“调相”)多路载波(MultipleCarrier)9.若8251A以9600波特的速率发送数据,波特率因子为16,发送时钟TxC频率为多少?答:发送时钟TxC频率=9600*16=153600Hz10.8251A的SYNDET/BRKDET引脚有哪些功能?答:SYNDET/BRKDET(SynchronousDetect/BreakDetect)同步检测/断点检测,输出/输入,高电平有效。(1)8251A工作于同步方式该引脚表示SYNDET,内同步时该引脚为输出,有效状态(高电平)表示8251A已经检测到同步字符;外同步时该引脚为输入,由该引脚输入同步脉冲,上升沿启动8251A接收数据。(2)8251A工作于异步方式该引脚表示BRKDET,是输出信号,有效状态(高电平)表示接收端检测到间断点(编程规定长度的全“0”字符);恢复正常数据接收时该引脚被复位。11.如果系统中无MODEM,8251A与CPU之间有哪些连接信号?答:8251A和CPU之间的连接信号可以分为四类:(1)片选信号CS:片选信号,它由CPU的地址信号通过译码后得到。(2)数据信号D0~D7:8位,三态,双向数据线,与系统的数据总线相连。传输CPU对8251A的编程命令字和8251A送往CPU的状态信息及数据。(3)读/写控制信号RD:读信号,低电平时,CPU当前正在从8251A读取数据或者状态信息。WR:写信号,低电乎时,CPU当前正在往8251A写入数据或者控制信息。DC/:控制/数据信号,用来区分当前读/写的是数据还是控制信息或状态信息。该信号也可看作是8251A数据口/控制口的选择信号。(4)收发联络信号TXRDY:发送器准备好信号,用来通知CPU,8251A已准备好发送一个字符。TXE:发送器空信号,TXE为高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,说明一个发送动作已完成。RXRDY:接收器准备好信号,用来表示当前8251A已经从外部设备或调制解调器接收到一个字符,等待CPU来取走。因此,在中断方式时,RXRDY可用来作为中断请求信号;在查询方式时,RXRDY可用来作为查询信号。SYNDET:同步检测信号,只用于同步方式。12.在一个以8086为CPU的系统中,若8251A的数据端口地址为84H,控制口和状态口的地址为86H,试画出地址译码电路、数据总线和控制总线的连接图。答:D7~D0D7~D0A7A6A5A4M/IOG1G2AG2BCBAA3A2A0A1RESETRDWRC/DRESETRDWRY2CS74LS1388086CPU8251A13.设8251A的端口地址如题12,要求8251A工作于内同步方式,同步字符为2个,用偶校验,7个数据位,试对8251A进行初始化编程。答:MOVAL,0OUT86H,ALOUT86H,ALOUT86H,AL;向控制口写入三个0MOVAL,40HOUT86H,AL;写入复位字MOVAL,00111000BOUT86H,AL;写入方式字MOVAL,SYSN;同步字符OUT86H,ALOUT86H,AL;两个同步字符MOVAL,10010101BOUT86H,AL;送命令字14.若8251A的端口地址为FF0H,FF2H,要求8251A工作于异步工作方式,波特率因子为16,有7个数据位,1个奇校验位,1个停止位,试对8251A进行初始化编程。答:MOVAL,0MOVDX,0FF2HOUTDX,ALOUTDX,ALOUTDX,AL;向控制口写入三个0MOVAL,40HOUTDX,AL;写入复位字MOVAL,01011010BOUTDX,AL;写入方式字MOVAL,00010101BOUTDX,AL;写入命令字15.RS-232C的逻辑高电平与逻辑低电平的范围是多少?怎么与TTL电平的器件相连?规定用什么样的接插件?昀少用哪几根信号线进行通信?答:逻辑高电平:有负载时为-3V~-15V,无负载时为-25V逻辑低电平:有负载时为+3V~+15V,无负载时为+25V通常用±12V作为RS-232C的电平。计算机及其接口芯片多采用TTL电平,即0~0.8V为逻辑0,+2.0V~+5V为逻辑1,与RS-232C电平不匹配,必须设计专门的电路进行电平转换,常用的电平转换电路为MAX232和MAX233。RS-232C使用25芯的D型插头插座和9芯的D型接插件。常用的信号线有:TxD发送数据,RxD接收数据,RTS请求发送,CTS清除发送,DSR数据装备准备好等信号。16.某微机系统用串行方式接收外设送来的数据,再把数据送到CRT去显示,若波特率为1200,波特率因子为16,用8253产生收发时钟,系统时钟频率为5MHz,收发数据个数为COUNT,数据存放到数据段中以BUFFER为始址的内存单元中。8253和8251A的基地址分别为300H和304H。(1)画出系统硬件连线图。(2)编写8253和8251A的初始化程序。(3)编写接收数据的程序。答:(1)8251的接收时钟RxC=1200*16=19200Hz,用8253产生收发时钟,使用通道0产生频率为19200Hz的方波,故计数初值为n0=5MHz/19200Hz≈260D7~D0D7~D0RDRDWRWRRESETRESETC/DA0地址译码A1A9M/IOCS...CLKCLKCSCLK0OUT0RxCGNDRxD数据CPU8251A8253(2)8253的初始化程序MOVDX,303HMOVAL,00110111BOUTDX,AL;8253控制字,通道0,方式3,BCD计数MOVDX,300HMOVAL,60H;初值低字节OUTDX,ALMOVAL,02H;初值高字节OUTDX,AL8251A的初始化程序MOVAL,0MOVDX,305HOUTDX,ALOUTDX,ALOUTDX,AL;向控制口写入3个0MOVAL,40H;复位字OUTDX,ALMOVAL,01111010B;方式字,异步,1停止位,偶校验,7位数据OUTDX,ALMOVAL,14HOUTDX,AL;输出命令字,清错误标志,允许接收(3)接收数据的程序采用查询方式,异步传送LEADI,BUFFER;接收数据缓冲区MOVCX,COUNT;接收数据个数MOVDX,305HNEXT:INAL,DX;读入状态字TESTAL,02H;RxRDY有效吗JZNEXT;否,循环等待TESTAL,38H;是,检查是否有错JNZERROR;有错,转出错处理程序MOVDX,303H;数据端口INAL,DX;无错,读入一个数据MOV[DI],AL;送缓冲区INCDIMOVDX,305HLOOPNEXT;数据没传完则继续…..;完成ERROR:……;出错处理