第8章 可编程串行通信接口芯片8251A
- 格式:ppt
- 大小:2.40 MB
- 文档页数:47
可编程串行通信接口芯片8251A可编程串行通信接口芯片8251A2010-05-25 15:058251 A是一个通用串行输入/输出接口,可用来将86系列CPU以同步或异步方式与外部设备进行串行通信。
它能将主机以并行方式输入的8位数据变换成逐位输出的串行信号;也能将串行输入数据变换成并行数据传送给处理机。
由于由接口芯片硬件完成串行通信的基本过程,从而大大减轻了CPU的负担,被广泛应用于长距离通信系统及计算机网络。
8251A是一个功能很强的全双工可编程串行通信接口,具有独立的双缓冲结构的接收和发送器,通过编程可以选择同步方式或者异步方式。
在同步方式下,既可以设定为内同步方式也可以设定为外同步方式,并可以在内同步方式时自动插入一个到两个同步字符。
传送字符的数据位可以定义为5~8位,波特率0~64K可选择。
在异步方式下,可以自动产生起始和停止位,并可以编程选择传送字符为5~8位之间的数据位以及1、1/2位之中的停止位,波特率0~19.2K可选择。
同步和异步方式都具有对奇偶错、覆盖错以及帧错误的检测能力。
一、8251A内部结构及功能图8.5.1为8251A结构框图。
作为常用的通信接口,和8255A类似,8251A 的结构也可以归纳为以下三个部分:第一部分是和CPU或者总线的接口部分,其中包括数据总线缓冲器、读/写控制逻辑。
数据总线缓冲器用来把8251A和系统数据总线相连,在CPU执行输入/输出指令期间,由数据总线缓冲器发送和接收数据,此外,控制字,命令字和状态信息也通过数据总线缓冲器传输,读/写控制逻辑电路用来配合数据总线缓冲器工作。
CPU通过数据总线缓冲器和读写控制逻辑向8251A写入工作方式和控制命令字,对芯片初始化;向8251A写入要发送字符的数据代码,送到发送缓冲器进行并行到串行的转换,并且将接收的、已转换成并行代码的接收缓冲器中的字符数据读入CPU。
第二部分是数据格式转换部分,包括发送缓冲器、并行数据到串行数据转换的发送移位器,接收缓冲器和串行数据到并行数据转换的接收移位器,以及发送控制电路和接收控制电路。
可编程通信接口8251A(USART)1.8251A的基本结构8251A的基本结构包括5个功能模块(1)数据总线缓冲器——用于暂存接收,发送数据,CPU发来的命令及8251的工作状态。
(2)读/写控制逻辑——接收来自CPU控制总线的控制信号,控制数据的传送方向。
(3)接收器——从接收数据线RXD上接收串行数据,按指定方式将其转换成并行数据。
(4)发送器——接收CPU送来的并行数据,按指定方式将其转换成串行数据通过发送数据线TXD发送出去。
(5)调制解调器控制电路——提供4个通用的控制信号,即(数据终端准备好),(数据设备准备好),(请求发送)和(准许发送),以备8251A与外设联络。
2.8251A的工作过程(1)8251A发送数据的过程①当发送缓冲器为空时,信号TXRDY有效(或状态字的D0=1),以示发送器准备好,等待CPU送入数据。
②CPU将要发送的数据写入8251A的发送缓冲器;③发送的数据进行“并→串”转换;④插入起始位、奇/偶位和停止位或同步字符等,数据一位一位从TXD端串行输出。
(2)8251A接收数据的过程①在RXD端检测到起始位或同步字符;②开始在RXD线上采集数据;③将接收到的数据“串→并”转换,并进行奇偶校验和检查错误;④将采样到的、经过变换的8位数据由接收缓冲器送入数据总线缓冲器;⑤信号RXRDY有效(或状态字的D1=1),以示8251A已接收到一个数据,待CPU读取。
3.8251A的初始化在如前面已经强调过的,在使用可编程接口之前必须进行初始化,即在使用8251A进行数据传输前,对其进行编程,将相关方式指令字、命令指令字写入8251A。
8251A初始化的具体步骤如图7-3所示。
图7-3 8251A 初始化流程图4. CPU 对8251A 的操作和控制8251A 有两个端口地址,偶地址为输入/输出数据端口地址,奇地址为控制/状态端口地址。
引脚线C/与A 0连接:A 0=0,访问输入/输出数据端口A 0=1,访问控制/状态端口控制信号:、、C/、合成对8251A 的操作如表7-1所示。
第8章习题解3. 可编程并行接口芯片8255A有哪几个控制字?每个控制字各位含义是什么?答:可编程并行接口芯片8255A共有两个控制字:工作方式控制字和对C口置位/复位控制字。
(1)工作方式控制字各位含义:(2) 对C口置位/复位控制字各位含义:4. 可编程并行接口芯片8255A有哪几种工作方式?每种工作方式有何特点?答:可编程并行接口芯片8255A有3种工作方式:方式0:基本输入输出方式在这种工作方式下,可以通过CPU向控制端口写入方式控制字,决定各端口是输入数据还是输出数据。
传送数据的方法一般采用无条件传送方式或查询传送方式。
方式1:选通式输入/输出方式在这种工作方式下,端口A和端口B为数据传输口,可通过工作方式控制字设定为数据输入或数据输出。
端口C某些位作为控制位,配合A口和B口进行数据的输入和输出。
方式1通常用于查询方式或中断方式传送数据。
方式2:双向选通输入/输出方式仅A口可以采用这种工作方式。
在这种方式下,可以使外部设备利用端口A的8位数据线与CPU之间分时进行双向数据传送,也就是既可以输出数据给外部设备,也可以从外部设备输入数据。
输入或输出的数据都是锁存的。
工作时既可采用查询方式,也可采用中断方式传输数据。
5. 用8255A作为接口芯片,编写满足下述要求的三段初始化程序。
(1)将A组和B组置成方式0,A口和C口作为输入口,B口作为输出口。
(2)将A组置成方式2,B组置成方式1,B口作为输出口。
(3)将A组制成方式1且A口作为输入,PC6和PC7作为输出,B组置成方式1且B 口作为输入口。
答:设该芯片控制端口为05A6H(1)将A组和B组置成方式0,A口和C口作为输入口,B口作为输出口。
初始化程序:MOV DX,05A6HMOV AL,99HOUT DX,AL(2)将A组置成方式2,B组置成方式1,B口作为输出口。
初始化程序:MOV DX,05A6HMOV AL,0C6HOUT DX,AL(3)将A组制成方式1且A口作为输入,PC6和PC7作为输出,B组置成方式1且B 口作为输入口。