发送器输出 D0D1??Dn 由8251A产生 TxD 启动位 数 据 位 校验位 停止位 接收器输入 D0D1??Dn 不出现在数据总线上 RxD 启动位 数 据 位 校验位 停止位 2.异步工作方式时8251A的TxD和RxD线上的数据格式为:
6.17 什么叫同步工作方式?什么叫双同步字符方式?外同步和内同步有什么区别?画出双同步工作方
式时8251A的TxD线和RxD线上的数据格式。
答:1.在同一时钟控制下需用同步字符同步的信息按组传送的方式叫同步工作方式。
2.需用2个同步字符的同步工作方式叫双同步字符方式。
3.外同步只能工作于同步接收方式,而内同步即适用于同步接收,也适用于同步发送。外同步是由外设来搜索同步字符,一旦搜索成功,立即给串行接口的同步输入端送来一个高电平,表示同步已实现,串行接收端开始接收数据。而内同步由串行接口本身来搜索同步字符而实现同步的。
4.双同步工作时8251A的TxD和RxD线上的数据格式为:
6.18 8251A 和CPU之间有哪些连接信号?其中C/D和RD、WR如何结合起来完成对命令、数据的写
发送格式 TxD线上的串行输出同步字符1 同步字符2 数 据 字 符 接收格式 RxD线上的串行输入同步字符1 同步字符2 数 据 字 符 入和状态、数据的读出?
答: 1.8251A 和CPU之间的连接信号有:片选信号—CS,数据信号—D7~D0,读/写控制信号—RD、
WR、C/D,收发联络信号—TxRDY、TxE、RxRDY、SYNDET。
2.C/D=0、RD=0、WR=1时CPU从8251A输入数据; C/D=0、RD=1、WR=0时CPU往8251A输出数据; C/D=1、RD=0、WR=1时CPU读取8251A的状态; C/D=1、RD=1、WR=0时CPU往8251A写入控制命令。
6.19 8086/8088系统中,8251A的C/D端应当和哪个信号相连,以便实现状态端口、数据端口、控制端
口的读/写?
答:8251A的C/D端应与地址总线的A1相连。 6.20 8251A与外设之间有哪些连接信号?
答:收发联络信号—DTR、DSR、RTS、CTS,数据信号—TxD、RxD。
6.21 为什么8251A要提供DTR、DSR、RTS、CTS四个信号作为和外设的联络信号?平常使用时是否
可以只用其中两个或者全部不用?要特别注意什么?说明CTS端的连接方法。
答:1.8251A的这四个信号是提供给CPU和外设进行联络用的,因为CPU不能和外设直接相连。
这样CPU对外设的控制信号DTR和RTS及外设给CPU的状态信号DSR和CTS必须由接口(此处为8251A)来传递。所以要提供此4个信号作为和外设的联络信号。 2.平常使用时可以只用其中两个或者全部不用。
3.要特别注意的是在某个时候CTS要输入一个低电平。否则CPU不能往8251A发送数据。 4. CTS一般接地,以确保不用它作联络信号时也维持低电平输入。
6.22 8086系统中采取什么措施来实现8位接口芯片和低8位数据线的连接且满足对奇/偶端口的读/写?
这样做的道理是什么?
答:1.将系统总线的A1与接口的A0相连接即可。软件上采用连续的偶地址代替端口的奇/偶地址。
2.因为这样连接,从CPU这边来说,端口地址都是偶地址,传输信息时,信息总是出现在CPU的低8位数据总线上;而从端口这边来说,端口地址中既有奇地址也有偶地址,且是连续的,这又满足了许多8位接口芯片对端口地址的要求。
6.23 对8251A进行编程时,必须遵守哪些约定?
答:① 芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。
② 若模式字中规定了8251A工作在同步模式,则CPU接着往奇地址端口输出的1个或2个字
节就是同步字符被写入同步字符寄存器。若有两个同步字符,则会按先后分别写入第一个同步字符寄存器和第二个同步字符寄存器。
③ 此后,只要不是复位命令,不管是在同步模式还是在异步模式下,由CPU用奇地址端口写
入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。
6.24 8251A的模式字格式如何?参照教材上给定格式编写如下模式字:异步方式,1个停止位,偶校验,
7个数据位,波特率因子为16。
答:1.8251A的模式字格式为:(含义见书240页图6.11所示) S2 S1 EP PEN L2 L1 B2 B1
SCS ESD EP PEN L2 L1 0 0 异步模式字 同步模式字
2.因是异步方式,波特率因子为16:B2B1=10;1个停止位:S2S1=01;偶校验:EP=1,PEN=1;7个数据位:L2L1=10。所以模式字为01111010B=7AH。
6.25 8251A的控制字格式如何?参照教材上列出的格式给出如下控制字:发送允许,接收允许, DTR端
输出低电平,TxD端发送空白字符, RTS端输出低电平,内部不复位,出错标志复位。 答:1.8251A的控制字格式为:(含义见书241页图6.12所示)
EH IR RTS ER SBRK RxE DTR TxEN 2.发送允许:TxEN=1,接收允许:RxE=1,DTR端输出低电平:DTR=1,TxD端发送空白字符SBRK=1; RTS端输出低电平:RTS=1,内部不复位:IR=0,出错标志复位ER=1。EH=0/1则控制字为00111111B或10111111B =3FH或0BFH。
6.26 8251A的状态字格式如何?哪几位和引腿信号有关?状态位TxRDY和引腿信号TxRDY有什么区
别?它们在系统设计中有什么用处?
答:1.8251A的状态字格式为:(含义见书242页图6.13所示)
DSR SYNDET FE OE PE TxE RxRDY TxRDY 2.DSR、SYNDET、TxE、RxRDY四个状态位与其对应的引腿信号有关。
3.状态位TxRDY只要数据输出缓冲器为空就置1。而引腿TxRDY为1的条件是:数据输出缓冲器为空、CTS为有效低电平、TxEN为1才可以,缺一不行。
4.能让CPU随时了解当前8251A的工作状态,而执行相应的操作。对查询方式的设计非常方便。
6.27 参考初始化流程,用程序对8251A进行同步模式设置。奇地址端口的地址为66H,规定用内同步方
式,同步字符为2个,用奇校验,7个数据位。
答:模式字为:00011000B=18H。两个同步字符取16H,控制字为97H,它使8251A对同步字符进
行检索;同时使状态寄存器中的3个出错标志复位;使8251A的发送器启动,接收器也启动;CPU当前已准备好进行数据传输。具体程序段如下:
MOV OUT MOV OUT OUT MOV OUT
AL,18H
;设置模式字
66H,AL
;发送两个同步字符
AL,16H
66H,AL 66H,AL
;设置控制字
AL,97H
66H,AL
6.28 设计一个采用异步通信方式输出字符的程序段,规定波特率因子为64,7个数据位,1个停止位,
用偶校验,端口地址为40H、42H,缓冲区首址为2000H:3000H。 答:模式字为:01111011B=7BH。控制字为:00110101B=35H。
MOV OUT OUT OUT MOV OUT MOV
AL,0
;为发复位命令作准备
42H,AL 42H,AL 42H,AL
; 发复位命令
AL,40H
42H,AL
;设置模式字,异步方式,规定波特率因子为64 ;7个数据位,1个停止位,偶校验
AL,7BH
OUT MOV
42H,AL
;设置控制字,使发送器和接收器启动,并清除 ;出错标志
AL,35H
OUT PUSH MOV MOV MOV MOV
BEGIN:
IN TEST
DS
42H,AL
BX,2000H DS,BX BX,3000H CX,100H AL,42H AL,01H
;DS:BX指向输出缓冲区首址
;缓冲区指针初始化 ;发送100H个字节
;读取状态字,测试TxRDY是否为1
JZ MOV OUT INC LOOP POP
┆
BEGIN AL,[BX]
;为0表示外设还未取走字符 ;从输出缓冲区取数
;发送字符
40H,AL
BX ;修改缓冲区指针 ;则再发送下一个字符
BEGIN DS
6.29 并行通信和串行通信各有什么优缺点?
答:并行通信的优点是信息实际传输速度快,信息率高。缺点是需多条通信线。串行通信的优点是
只用1至2条通信线,但信息传输速度较慢。
6.30 在输入过程和输出过程中,并行接口分别起什么作用?
答:简单说,并行接口只起着桥梁和联络的作用。具体如下:
① 输入过程:外设将数据送给接口,并使状态线“输出准备好”成为高电平。接口把数据接
收到数据输入缓冲寄存器的同时,使“数据输入回答”线变为高电平,作为对外设的响应。外设接到此信号,便撤消数据和“数据输入准备好”信号。数据到达接口后,接口便在状态寄存器中设置“输入准备好”状态位,并发中断请求,CPU可用查询方式或中断方式来设法读取接口中的数据。CPU读取数据后,接口会自动清除状态寄存器中的“输入准备好”位,并使数据总线处于高组状态。此后又可以开始下一个输入过程。
② 输出过程:当外设从接口取走一个数据后,接口就会将状态寄存器中的“输出准备好”状
态位置1,并发中断请求,以表示CPU当前可以通过查询方式或中断方式往接口中输出数据。当CPU输出的数据到达接口的输出缓冲器中后,接口会自动清除“输出准备好”状态位,并将数据送往外设,同时,接口往外设发送一个“驱动信号”来启动外设接收数据。外设被启动后,开始接收数据,并往接口发一个“数据输出回答”信号。接口收到此信号,便将状态寄存器中的“输出准备好”状态位重新置1,以便CPU输出下一个数据。
6.31 8255A的三个端口在使用时有什么差别?
答:端口A和端口B常常作为独立的输入端口或者输出端口,端口C则配合端口A和端口B工作。
6.32 当数据从8255A的端口C往数据总线上读出时,8255A的几个控制信号CS、A1、A0、RD、WR分别是什么电平?
答:CS=0、A1=1、A0=0、RD=0、WR=1。“0”为低电平,“1”为高电平。