习题十一串行接口11.1 为什么串行接口部件中的4个寄存器可以只用1位地址来进行区分?【答】复位后第一次用奇地址端口写入的值送模式寄存器;然后写入同步字符;然后写控制字。
读奇地址则读状态寄存器。
所以奇地址对应模式、控制、状态寄存器,通过读写信号和时序来区分。
偶地址对应数据输入、输出缓冲器,通过读写信号来区分。
11.2在数据通信系统中,什么情况下可以采用全双工方式,什么情况下可用半双工方式?【答】如果一个数据通信系统中,有两个信道可以采用全双工方式,只有一个信道只能采用半双工方式。
11.3 什么叫同步通信方式?什么叫异步通信方式?它们各有什么优缺点?【答】串行通信以同步信息封装的帧为单位传输。
同步通信,一帧可包含多个字符,要求收发双方传输速率严格一致,帧之间填充同步信息以保证发收双方随时同步,通信效率高。
异步通信,一帧只包含一个字符,帧之间为空闲位,每一帧都同步一次,由于帧小,发收双方传输速率允许有一定误差,但通信效率低。
11.4 什么叫波特率因子?什么叫波特率?设波特率因子为64,波特率为1200,那么时钟频率为多少?【答】波特率指码元(波形)传输速率——单位时间内传输的码元个数,单位是Baud。
波特率因子是发送/接收时钟频率与波特率的比值。
时钟频率=64×1200=76800Hz11.5 标准波特率系列指什么?【答】标准波特率系列为110,300,600,1200,1800,2400,9600,1920011.6 设异步传输时,每个字符对应1个超始位、7个信息位、1个奇/偶校验位和1个停止位,如果波特率为9600,刚每秒能传输的最大字符数为多少个?【答】即9600/10=960个11.7 在RS-232-C标准中,信号电平与TTL电平不兼容,问RS-232-C标准的1和0分别对应什么电平?RS-232-C的电平和TTL电平之间通常用什么器件进行转换?【答】 RS-232-C将-5V—-15V规定为“1”,将+5V—+15V规定为“0”。
将TTL电平转换成RS-232-C电平时,中间要用到MC1488器件,反过来,用MC1489器件,将RS232-C电平转换成TTL电平。
11.8 从8251A的编程结构中,可以看到8251A有几个寄存器和外部电路有关?一共要几个端口地址?为什么【答】数据发送寄存器、数据接收寄存器,状态寄存器和命令寄存器。
一共2个端口地址。
数据发送寄存器(只写)和接收寄存器(只读)共用一个端口地址。
命令寄存器(只写)和状态寄存器(只读)共用一个端口地址。
11.9 8251A内部有哪些功能模块?其中读/写控制逻辑电路的主要功能是什么?【答】8251A有一个数据输入缓冲寄存器和一个数据输出缓冲寄存器,一个发送移位寄存器和一个接收移位寄存器,一个控制寄存器和一个状态寄存器,一个模式寄存器和两个同步字符寄存器等功能模块。
读/写控制逻辑电路用来配合数据总线缓冲器工作。
其主要功能有:1)接收写信号WR,并将来自数据总线的数据和控制字写入8251A;2)接收读信号RD,并将数据或状态字从8251A送往数据总线;3)接收控制/数据信号C/D,将此信号和读/写信号合起来通知8251A,当前读/写的是数据还是控制字、状态字;4)接收时钟信号CLK,完成8251A的内部定时;5)接收复位信号RESET,使8251A处于空闲状态。
11.10 什么叫异步工作方式?画出异步工作方式时8251A的TxD和RxD线上的数据格式。
【答】串行工作方式分为两种类型,一种叫同步方式,另一种叫异步方式。
异步工作方式时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数位来作同步。
在采用异步工作方式时,非数据信息比例比较大,而且,信息有效率比同步方式低,在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。
11.11 什么叫同步工作方式?什么叫双同步字符方式?外同步和内同步有什么区别?画出双同步工作时8251A的TxD线和RxD线上的数据格式。
【答】串行工作方式分为两种类型,一种叫同步方式,另一种叫异步方式。
同步方式时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。
在同步方式下,非数据信息比例比较小,要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每1位的位置,双同步方式,就是要在测得输入移位寄存器的内容和第一个同步字符寄存器的内容相同后,再继续检测此后的输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同,如果不相同,则重新比较输入移位寄存器和第一个同步字符寄存器的内容,如果相同,则认为同步已经实现。
外同步和内同步的区别:在外同步情况下,和内同步过程有所不同,因为这时是通过在同步输入端SYNDET加一个高电位实现同步的,SYNDET端一出现高电平,8251A 就会立刻脱离对同步字符的搜索过程,只要此高电位维持一个接收时钟周期,8251A便认为已经完成同步。
11.12 为什么8251A要提供DTR,DSR,RTS,CTS四个信号作为和外设的联络信号?平常使用时是否可以只用其中两个或者全部不用?要特别注意什么?说明CTS端的连接方法。
【答】DTR,DSR,RTS,CTS是RS-232接口标准中定义的联络控制信号,由于8251支持RS-232协议,所以提供这四个信号。
根据要求,可以不使用,也可部分或全部使用。
要特别注意8251只符合DTR,DSR,RTS,CTS的逻辑电平定义而不符合RS-232的电气特性,因此使用时需要进行逻辑电平转换。
CTS连接RTS。
11.13 8086系统中采取什么措施来实现8位接口芯片和低8位数据线的连接且满足对奇/偶端口地址的读/写?这样做的道理是什么?【答】将地址总线的最低位A0不连接到8251A这样的接口芯片上,而是将地址次地位A1做为地址最低位来用就行了。
在这种情况下,如果CPU这边给出连续的两个偶地址,到8251A 这边,由于地址次地位作为地址最低位来用,相当与将CPU给出的地址除以2,而两个连续的偶地址中,必定有一个能被4整除,另一个不能被4整除,于是,两个偶地址分别除以2后,就边成了一奇一偶两个地址。
这样一来,从CPU这边来说,端口地址都是偶地址,所以,传递信息时,信息总是出现在低8位数据线上;而从端口这边来说,端口地址中既有奇地址,也有偶地址,而且是连续的,这正好满足许多接口芯片对端口地址的要求。
11.14 对8251A进行编程时,必须遵守哪些约定?【答】对8251A进行编程时,必须遵守的约定主要有3个:1.芯片复位以后,第一次使用奇地址端口写入的操作为模式字进入模式寄存器。
2.如果模式字中规定了8251A工作的同步模式,那么,CPU接着往奇地址端口输入一个或两个字节就是同步字符,同步字符被写入同步寄存器。
如果有两个同步字符,则会按先后分别写入第一个同步寄存器和第二个同步寄存器。
3.这之后,只要不是复位命令,不管是同步模式还是异步模式,由CPU用奇地址端口写入的值将作为控制字送控制寄存器,而用偶地址端口写入的将作为数据送到数据输出缓冲寄存器。
11.15 8251A的模式字格式如何?参照教材上给定格式编写如下模式字:异步方式,1个停止位,偶校验,7个数据位,波特率因子为16。
【答】对8251A进行初始化时,模式字是按照模式寄存器的格式来设置的,8251A工作在同步模式和异步模式两种情况下。
当模式寄存器的最低两位为0时,8251A便进入同步模式,此时,最高位决定了同步字符的数目;如果模式寄存器的两个最低位不全为0,则8251A就进入异步模式。
按题意编写的模式字为:01111010模式字格式如下:异步方式,1个停止位,偶校验,7个数据位,波特率因子为16——模式字为01111010 11.16 8251A状态字格式如何?哪几位和引腿信号有关?状态位TxRDY和引腿信号TxRDY 有何区别?它们在系统设计中有什么用处?【答】状态字格式如下:其中DSR、SYNDET、TxEmpty、RxRDY是相应引脚的电平标志。
状态位TxRDY是发送缓冲器为空标志,WR前沿变为无效。
引脚TxRDY是在状态位TxRDY=1、命令位TxEN=1、引脚CTS=0情况下才有效。
11.17 参考初始化流程,用程序段对8251A进行同步模式设置。
奇地址端口地址为66H,规定用内同步方式,同步字符为2个,用奇校验,7个数据位。
【答】XOR AX,AXOUT 66H,ALMOV AL,40HOUT 66H,ALMOV AL,00011000BOUT 66H,AL11.18 设计一个采用异步通信方式输出字符的程序段,规定波特率因子为64,7个数据位,1个停止位,用偶校验,端口地址为40H、42H,缓冲区首地址为2000H:3000H,长度为20字节。
【答】XOR AX,AXOUT 42H,ALMOV AL,40HOUT 42H,ALMOV AL,01111011BOUT 42H,AL ;方式设置MOV AX,2000HMOV DS,AX ;缓冲区指针设置MOV BX,3000HMOV CX,20 ;缓冲区长度设置MOV AL,[BX] ;发送一个字节OUT 40H,ALINC BX ;指针变化DEC CX ;长度变化L1: IN AL,42H ;查询发送缓冲区TEST AL,01HJZ L1 ;不为空,继续查询MOV AL,[BX] ;发送下一个字节OUT 40H,ALINC BX ;指针变化LOOP L1EN。