1、第章,可编程接口芯片,I/O接口概述,定时/计数器8253,并行接口8255A,串行接口8251A,掌握微机接口的作用和功能,掌握可编程并行接口芯片8255A的连接与编程,掌握串行通信接口适配器8251A的连接与编程,掌握可编程定时计数芯片8253的连接与编程,I/O接口的典型结构与接口芯片的分类,1. 内部结构,下图为I/O接口面向用户的典型结构。,I/O接口的典型结构,I/O接口内部一般由数据、状态、控制三类寄存器组成。,状态寄存器保存状态信息,CPU可从状态口读取当前状态; 控制寄存器用来保存CPU写入的控制字。,2. 外部特性,接口电路的外部特性由其对外的引出信号体现。,对于面向CPU
2、一侧的信号: 需要弄清面向的是什么样的CPU 数据宽度(8/16/32位) 地址总线宽度(16/20/24/32位) 控制线是电平有效还是边沿有效,对于面向外设一侧的信号: 要弄清外设工作原理与工作特点 正确理解信号的意义 外设种类繁多, 信号差异较大,3. 接口电路芯片分类,支持通用的输入/输出及控制的接口芯片。例如: 并行接口芯片8212、8255A、Z80PIO等,以及串行接口芯片8250、8251、Z80SIO等。,按功能分类:,通用接口芯片:,(2) 面向微机系统的专用接口芯片: 例如:中断控制器8259A, DMA控制器8237/8257, Z80DMA, 定时/计数器8253/8
3、254。,(3) 面向外设的专用接口芯片: 例如:CRT控制器MC6845、8257;软盘控制器PD765、FD8271/FD8272;键盘/显示器接口芯片8279。,(4) 接口电路的可编程性,可编程-接口芯片的功能和工作方式可通过程序设定。 初始化程序-为设定芯片工作方式而编写的程序段称为该接口芯片的初始化程序。,8253定时计数控制器,微机对外部事件进行定时控制或对外部事件发生的次数进行记录有两种方法: 软件编程控制的方式 采用软件硬件相结合的方式 可编程定时/计数电路8253具有多种工作方式,定时值和定时范围可用程序确定。PC机中的定时器主要用于系统日时钟计时.,一、8253的内部结构
4、及引脚,8253具有3个独立的16位计数通道,用24脚DIP封装,其主要功能如下:,* 1片上有3个独立的16位计数器通道,最大计数范围为065535;,* 每个计数器都可以按照二进制或二十进制计数;,* 每个计数器的计数速度可高达2MHZ;,* 每个通道有6种工作方式,可通过程序设置来改变;,* 所有的输入和输出都与TTL兼容。,8253内部可分为6个模块,如图所示。,8253的内部结构,从系统总线接收输入信号,经过译码产生对8253各部分的控制。,* 计数通道,8253有3个相互独立的同样的计数电路。计数器的结构如图所示。,* 数据总线缓冲器,数据总线缓冲器通过8条数据线D7D0接收CPU
5、向控制寄存器写入的控制字和向计数器写入的计数初值。,* 读/写控制逻辑,计数器内部结构,* 8253的方式控制字,方式控制字的格式如下:,* 8253的引脚,8253的引脚图,二、8253的工作方式,8253有6种工作方式,通过对8253写入方式控制字来编程。,1. 方式0计数结束中断,该方式下,门控信号决定计数的停止或继续,装入初值决定计数过程重新开始。,方式0计数结束产生中断,高,2. 方式1可重触发的单稳态触发器,该方式是在门控的作用下开始计数,图 8-23 分频器,3. 方式2分频器,用门控信号达到同步计数的目的,4. 方式3方波发生器,方式3的工作过程同方式2,只是输出的脉宽不同,5
6、. 方式4软件触发选通方式,用方式4工作时,GATE门控信号只是用来允许或不允许定时操作的,定时的执行过程由装入的初值决定。,软件触发的选通信号发生器,软件触发选通方式,硬件触发选通方式,6. 方式5硬件触发选通方式,方式5为硬件触发选通方式,完全由GATE端引入的触发信号控制定时和计数,波形图如图所示。,硬件触发的选通信号发生器,8253初始化方法: 控制字 计数初值:已知:CLK 的频率fc与定时的时间t.计数初值: n= fc t 例1: fc=1MHZ,最大计数初值:65536一个定时器最大定时时间:N/fc=65536/ 106 =0.065536s,8253应用举例,例2:设定时器
7、0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5ms产生一个脉冲,定时器0每5s产生一个脉冲。 1). 一个定时器的最大定时时间:65536/(2*106)=0.032768 s=32.768ms 2). 将定时器1的CLK1接2MHZ时钟,计数初值:3).将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值:,例3:计数器2输出600HZ方波,送扬声器。工作于模式3.,发声子程序:,SSP PROC NEAR ;8253初始化: MOV AL,10110110B ;计数器2,模式3,初值16位,二进制 OUT 43H, AL MOV AX, 198
8、3 ; 计数初值=1.19MHZ600HZ=1983 OUT 42H,AL ;送计数初值低位字节 MOV AL,AH OUT 42H,AL次 ;送计数初值高位字节,8255控制程序:IN AL,61H ;读8255的PB口原输出值MOV AH,AL ;保留到AHOR AL,03H ;使PB0PB1均为1OUT 61H,AL ;打开GATE2门,输出方波到扬声器SUB CX, CX ;CX为循环次数,最大为216 L: LOOP L ;延时DEC BL ;BL为子程序入口条件JNZ L ;BL=6,发长声(3S),BL=1发短声(0.5S)MOV AL,AH ;取回8255的PB口原输出值OUT
9、 61H, AL ; 恢复8255PB口,停止发声RET SSP ENDP,例4:定时/计数器 8253与 8086/8088CPU 相连构成完整的定时、计数或脉冲发生器系统。要求能完成的功能是: 1)利用通道0完成对外部事件计数功能,计满100次向CPU发中断请求。 2)利用通道1产生频率为1KHz的方波。 3)利用通道2作标准时钟,定时1秒,输出接IR2。,(1)8253的数据线(D7D0)与CPU的高8位数据线(D15-D8)相连,所以8253的端口地址必须是奇地址(A0=1)。 (2)通道0定义为工作方式0,完成计数.通道0的计数初值应为: n0= 100控制字: 00 01 0000
10、=10H (3)将通道1定义为工作方式3,控制字=0111 0110=76H,从CLK1输入2.5MHz的时钟脉冲, OUT1输出频率为1KHz的方波,而输出方波的周期1ms。通道1的计数初值:n1= f1*t1= 2.5106 1 10-3 =2500=09C4H。,(4)通道2应定义为方式0,控制字=1011 0001=0B1H,每秒钟利用OUT2向CPU发出一次中断请求,由于输入时钟频率为1KHz,计数初值应为:n2=f2*t2=1000*1=1000。 8253的控制端口地址:66H 通道0的端口地址:60H 通道1的端口地址:62H 通道2的端口地址:64H 8253-0 EQU 6
11、0H8253-1 EQU 62H8253-2 EQU 64H8253-C EQU 66H,STT: MOV DX,8253-C ;8253控制口地址MOV AL,10HOUT DX,AL ;通道0工作在方式0MOV DX,8253-0 ;8253通道0地址MOV AL,64HOUT DX,AL ;给通道0送计数值MOV DX,8253-CMOV AL,76HOUT DX,AL ;通道1工作在方式3MOV DX,8253-1 ;8253通道1地址MOV AX,09C4H OUT DX,AL ;给通道1送计数初值低8位MOV AL,AHOUT DX,A ;给通道1送计数值高位MOV DX,8253
12、-CMOV AL,0B1HOUT DX,AL ;通道2工作在方式0,MOV DX,8253-2 ;通道2地址 MOV AX,1000H ;1000的BCD数1000H OUT DX,AL ;给通道2送计数初值的低8位 MOV AL,AH OUT DX,AL ;给通道2送计数值的高8位 MOV DX,8259A偶 MOV AL,13H OUT DX,AL ;设ICW1,边缘触发,需ICW4 MOV DX,8259A奇 MOV AL,50H ;设ICW2, 0通道中断类型码为50H OUT DX,AL ; 通道2的中断类型码为52H MOV AL,03 OUT DX,AL ;设ICW4,非自动EO
13、I方式 MOV AL,0FAH ;OCW1,屏蔽IR0,IR1以外的输入 OUT DX,AL STI FF: HLTJMP FF,并行接口和可编程并行接口芯片8255A,并行接口传输数据通常以8位、16位或32位为传输单位,一次传送一个字长的数据。,并行接口电路: *不可编程的并行接口电路 (如74LS244/254三态缓冲器,74LS273/373锁存器) *可编程接口电路 (如 Intel8255A),一个控制寄存器 ,用来接收CPU对它的控制命令。 一个状态寄存器,提供各种状态位供CPU查询。 输入缓冲寄存器和输出寄存器,实现实现输入和输出。,1.输入过程,2.输出过程,可编程接口电路通
14、常应具有以下功能: 1. 两个或两个以上的具有锁存器或缓冲器的数据端口;,2. 每个数据端口都具有与CPU用应答方式交换信号所必须的控制和状态信息,也有与外设交换信息所必须的控制和状态信息;,3. 通常每个数据端口有能用中断方式与CPU交换信息所必须的电路;,4. 片选和控制电路;,5. 可用程序选择数据端口、选择端口的数据传送方向,选择与CPU交换信息的方法。,一、8255A的内部结构和引脚信号,1. 8255A内部结构,8255A可编程外围设备接口(programmable peripheral interface, 简写为PPI) ,其内部结构如图所示。,8255A内部结构框图,8255
15、A包括四大部分:数据总线缓冲器、读写控制逻辑、A组和B组控制电路、端口A、B、C。,(1) 数据端口A、B、C,端口A包含一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器,输入输出数据均受到锁存。,端口B和C: 都包含一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲器,输出数据能锁存,输入数据不锁存。 端口C:可分成两个4位端口,分别定义为输入或输出端口,还可定义为控制、状态端口,配合端口A和端口B工作。,(2) A组和B组,A组,B组的控制寄存器,接收来自数据总线的控制字,并根据控制字确定各端口的工作状态和工作方式。,(3) 数据总线缓冲器,(4) 读/写控制逻辑,接收来自CPU
16、地址总线信号和控制信号,并发出命令到两个控制组 (A组和B组)。,2. 8255A的引脚,8255A采用40线双列直插封装,引脚图如图所示。,8255A引脚定义,* PA7PA0:A端口数据信号引脚,* PB7PB0:B端口数据信号引脚,* PC7PC0:C端口数据信号引脚,* D7D0: 8255A的8位数据线,* A1A0: 端口选择信号,当A1A0=00时 选择端口A,当A1A0=01时 选择端口B,当A1A0=10时 选择端口C,当A1A0=11时 选择控制端口,二、8255A的控制字,8255A共有两个控制字:即工作方式控制字和对C口置位/复位控制字。,1. 工作方式控制字,控制字和
17、各位的含义如图所示。,工作方式控制字,2. 端口C的置位/复位控制字,控制字的格式如图所示。,置位/复位控制字,关于控制字要说明几点:,(1) 设置方式控制字时,A口、B口作为整体设置,而C口要分成上、下两部分分别设置。三个端口的工作方式由一个控制字规定。,(2) C口按位置位/复位控制字不是送到C口地址,而是送到控制寄存器地址;且一个控制字只能使C口一位置位或复位。,(3) 方式控制字和按位置位/复位控制字均写入同一个控制寄存器地址,二者通过最高位D7来区别。D7=1为方式控制字,D7=0为按位置位/复位控制字。,例:设8255A的地址为04A0H04A3H,按下述要求对8255A进行初始化
18、。要求A口、B口均设置成方式1,均为输入,PC6和PC1为输出。,MOV DX,04A3H ; 控制口地址MOV AL,B6H ;工作方式控制字OUT DX,AL ; 控制字送到控制口,例:设8255A的地址为04A0H04A3H,要求通过8255A芯片C口的PC2位产生一个方波脉冲。,MOV DX,04A3H ;控制口地址 AA:MOV AL,05H ;对PC2置位的控制字 OUT DX, AL CALL DELAY ;延时程序 MOV AL,04H ;对PC2复位的控制字 OUT DX,AL JMP AA,三、8255A的工作方式,1. 方式0 基本输入/输出方式,方式0是一种基本输入输出
19、工作方式,它的24条I/O线全部都用作传送数据,不设置应答信号线,常用于无条件传送,输出有锁存,输入只有缓冲能力而无锁存功能。,方式0的方式控制字:,* 任何一个端口都可由CPU用简单的输入或输出指令来进行读写 * 8255A可作为查询方式的接口电路,这时A口和B口分别作为数据端口 * C口的高4位和低4位能分别作为输入或输出用来传送控制外设的控制信息和采集外设的状态信息。,选同信号输入端,低电平有效,输入缓冲区满信号,低电平有效,它是8255送往CPU的中断请求 信号,高电平有效。,中断允许信号,INTE由STB(PC4)置“1”,INTR有效,A口方式1输入有关信号的规定,RD,INTEB
20、,PC2,PC1,PC0,PB7PB0,STBB,IBFB,INTRB,图1:B口方式1输入有关信号的规定,选同信号输入端,低电平有效,输入缓冲区满信号,低电平有效,它是8255送往CPU的中断请求 信号,高电平有效。,中断允许信号,INTE由STB(PC2)置“1”,INTR有效,2. 方式1选通式输入/输出方式,(1) 方式1选通输入,方式1操作使端口A或端口B作为锁存输入设备工作。端口C也可按方式1操作使用但不是对数据,而是对控制信号,或当端口A或端口B为选通输入端口时的握手信号。,下图示出8255A方式1选通输入时的内部结构和时序图。,图:A口方式1输出有关信号的规定,输出缓冲区满信号
21、,低电平有效,外设响应信号,是外设送给8255A的,中断请求信号,中断允许信号,INTE由PC6(ACKA)置“1”,INTR有效,中断允许信号,INTE由ACKB(PC2)置“1”,INTR有效,输出缓冲区满信号,高电平有效,外设响应信号,是外设送给8255A的,中断请求信号,B口方式1输出有关信号的规定,IBF:输入缓冲器满是一个输出信号,表明输入缓冲器已装入信息。,INTE:中断允许信号既不是输入也不是输出,它是通过端口PC4(端口A)或PC2(端口B)的位来编程的内部位。,PC7和PC6:端口C的引脚7和6是通用I/O引脚。,INTE:它是允许或禁止INTR引脚的一个内部位。INTEA
22、位被编程为PC6,INTEB位被编程为PC2。,PC5和PC4:通用I/O引脚,它们具有置位/复位功能。,3) 方式2双向选通输入/输出方式,方式2只允许A组采用,此时端口A变为双向,允许数据在同一组8条线上发送和接收。,下图示出方式2操作内部结构和时序图。,方式2的控制信号,输出缓冲区满信号,外设收到数据,发响应信号,外设准备好数据,发选通信号,8255A收到数据,向外设 发输入缓冲区满信号,INTR:中断请求是一个输出信号,用于在输入和输出情况下中断微处理器。,IBF:输入缓冲器满是一个输出信号,表明输入缓冲器已包含外部双向总线的数据。,INTE:中断允许是允许INTR引脚的内部位 (IN
23、TE1和INTE2)。,PC2、PC1和PC0:通用I/O引脚,可由置位/复位命令控制。,例:通过双向端口A发送AH寄存器中的内容。,;通过A口双向总线传送AH的过程 BITT EQU 80H PortC EQU 62H PortA EQU 60H Trans proc near IN AL,PortC ;获得OBF TEST AL, BITT ;测试OBF JZ TAB ;如果OBF=1 MOV AL, AH ;取得数据 OUT Port A, AL ;发送数据 TAB: RET ENDP,4) 端口C的状态字,(1) 未被A口和B口征用的引脚:将从定义为输入的端口读到引脚的输入信息;将从定
24、义为输出的端口读到输出锁存器的信息。,(2) 被A口和B口征用做为联络线的引脚:将从C口读到反映8255A状态的状态字。,在读C口时,读到的数据有两种情况:,方式1输入:,方式2输出:,方式2:,端口C读出内容,例: 设8255A的端口地址为344H347H。由16个按键组成44矩阵式键盘,编写程序读取按键(定义键值为0F)将键值写入输出口,在数码管上显示,以观察输入的键位。,电路图如图所示。,8255A与键盘和LED连接电路,程序流程如下:,流程图,相应程序如下:,DATA SEGMENT disc DB 0BBH, 0A0H, 097H, 0B5H, 0ACH, 3DH DB 3FH, 0
25、A1H, 0BFH, 0BDH, 0AFH, 3EH, 0B6H DB 1FH, 0FH ; 0f 显示段码表 DISO DB Press any of the keys to quit !. 24H ; 提示信息 DQQ DB 0 DATA Ends,CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE DS:DATA START: MOV AL, 3 ; 清屏幕 MOV AH, 0 INT 10HMOV AX, DATA ;显示提示信息 MOV DS, AX MOV AH, 2 ;光标定位 MOV BH, 0 MOV DX, 0614H INT 10H MOV
26、 DX, OFFSET DISO;显示:“Press”,QWE: MOV DX, 347H ;8255A控制寄存器初始化 MOV AL, 80H ;B口、C口设为输出 OUT DX, ALMOV DX, 345H ; 345H为8255A的B口地址 MOV BL, DQQ MOV BH, 0 MOV DI, BX MOV AL, DI ;取0F显示字形码 OUT DX, AL ;将显示字形码送B口MOV DX,346H ;8255A C口地址 MOV AL,0E0H OUT DX,AL ;,MOV BX,DLYC1 LPO:MOV CX,DLYC2 ;延时 LP1:LOOP LP1 DEC B
27、X JNZ LPO KS: MOV DX,350H ;指示灯显示 MOV AL,DQQ ;按下键的二进制值 OUT DX,AL MOV DX,347H ;8255A初始化,写控制字88H MOV AL,88H ; PC0PC3为输出,PC4PC7为输入 OUT DX,AL ; B口输出,方式0,A口输出。,KSLP: MOV DX,346H ; 读键盘 IN AL,DX AND AL,0F0H CMP AL,0F0H JNE KP ;有键按下,转处理判别 MOV DX,350H ;若键未按,查S1S4键是否退出 IN AL,DX AND AL,0F0H CMP AL,0F0H JNE KPR
28、;S1S4任一健按下,则转KPR退出 JMP KSLP,KP: MOV CX,0F000H ;扫描键盘 KP0: LOOP KP0 ;消抖延时 MOV DX,346H IN AL,DX AND AL,0F0H CMP AL,0F0H JE KSLP ;消抖后无键按下,则转回,视作干扰 MOV CX,0004H ;扫描4行 MOV DX,346H MOV BX,0F700H ;BH扫描输出行码,先扫第0行(PC3=0) ;BL键值,KP1: MOV AL, BH ; 行扫描 OUT DX, AL IN AL, DX AND AL, 0F0H CMP AL, 0F0H JNE KP2 ; 是这一行
29、的键按下,转出判断列 ADD BL, 04H ; 键值加4 ROR BH, 1 ; 准备扫描下一行 LOOP KP1 JMP QWE ;4行扫完未找到,转显示,KP2: MOV CX,0004H ;扫描4列 KP3: ROL AL,1 ;列扫描 TEST AL,01 JZ KP4 ;AL=0,即是此列,转出 INC BL ;键值加1 LOOP KP3,KP4: MOV DQQ,BL ;键盘送显示缓存 KS5: MOV DX,346H ;等待键释放 IN AL,DX AND AL,0F0H CMP AL,0F0H JNE KS5 ;仍按下,继续等待 MOV CX,0F000H,KP6: LOOP
30、 KP6 ;消抖延时 MOV DX,346H IN AL,DX AND AL,0F0H CMP AL,0F0H JNE KS5 JMP QWE ;键处理结束,KPR: MOV AL,0 ;退出 MOV DX,0350H ;关所有的LED灯 OUT DX,AL MOV AX,4C00H INT 21H Main ENDP CODE ENDS END START,9.4 串行接口和可编程串行接口芯片8251A,一、通信,计算机与外部设备之间、计算机之间的信息交换。,在串行通信时,数据和联络信号使用同一条信号线来传送,收发双方应注意以下几点:,* 双方约定以何种速率进行数据的发送和接收(波特率),*
31、 约定采用何种数据格式 (帧格式),如果包含控制信息,其定义是什么,二、串行通信基本概念,* 接收方如何得知一批数据的开始和结束 (帧同步),* 接收方如何从位流中正确地采集到位数据 (位同步),* 接收方如何判断收到数据的正确性 (数据校验),* 收发出错时如何处理 (出错处理),1. 异步通信,异步传送方式中,数据以字符为单位进行传送,每个字符传送时均需起始位和停止位。其通信协议是起止式异步通信协议。,数据传输的字符格式如下:,字符发送之前: 先发送一个起始位,低电平,宽度为1位. 字符发送结束时: 发一个停止位,高电平,宽度为1位,1.5位或2位. 数据位: 占58位,可在数据位内设1位
32、奇偶校验位, 字符之间: 可有空闲位,它们都是高电平. 传送时: 数据的低位在前,高位在后。,例:若采用连续发送方式,数据位长度为7位,选择奇校验,停止位为1位,传送一个字符E的ASCII码。,字符E的ASCII码为45H,波形如下:,字符E传送波形,2. 同步通信,同步通信: 即位同步方式,利用编码机制把时钟信息和数据放在一起发送给接收端。 数据以数据块方式传送,仅在数据块开始处用同步字符来指示。 其同步传送的数据格式如下:,同步传送的数据格式,同步 字符,数据1,数据2,数据N,检验字符 CRC1,检验字符 CRC2,同步字符,1帧,下1帧,数据场,同步 字符,同步 字符,数据1,数据N,
33、检验字符 CRC1,检验字符 CRC2,同步字符,1帧,数据1,数据N,检验字符 CRC1,检验字符 CRC2,(c) 外同步,(a) 单同步,(b) 双同步,3. 传输制式,在串行通信中,根据数据传送的方向分为:单工传送、半双工传送和全双工传送。,单工传送:数据只在一个方向上传送。,半双工传送:在同一时刻只能在一个方向上传送。,全双工传送:在两个方向可同时传送。,串行通信电路示意图,4. 波特率,每秒钟传送的二进制位数称为波特率。,例:在某个异步串行通信系统中,数据传送率为960字符/秒,每个字符包括一个起始位,8个数据位和一个停止位,则波特率为10960=9600(波特),三、串行通信总线
34、标准,一是计算机与外设之间要共同遵守的某种约定,这种约定称为物理接口标准。(包括电缆的机械特性、电气特性、信号功能及传送过程的定义),二是按接口标准设置计算机与外设之间进行串行通信的接口电路。,在进行串行通信的线路连接时,通常要解决两个问题:,RS232C 标准是美国电子工业协会EIA (Electronic Industries Association)与Bell等公司一起开发的1969年公布的通信协议。,1. RS232C 接口标准,字母RS表示Recommanded Standard (推荐标准),232是识别代号,C是标准的版本号。,RS-232C引脚分配图,各信号线说明如下:,TXD
35、:发送数据线,输出。,RXD:接收数据线,输入。,RTS:请求发送信号,输出,RTS=1,表示终端要发送数据。,CTS:清除发送信号,输入。当外设已准备好接收数据时,使CTS=1,通知终端可以开始发送数据。,DTR:数据终端准备就绪信号,输出,高电平有效。DTR=1,表示终端准备好接收外设的数据。,DSR:数据装置准备就绪信号,输入,高电平 有效,它表示外设准备好发送数据。,DCD:接收信号检出,输出,高电平有效。,RI:振铃指示,输入,高电平有效。RI=1,表明Modem收到交换台送来的振铃信号,用它来通知终端。,RS422A 标准是一种以平衡方式传输的标准。所谓平衡,是指双端发送和双端接收
36、。发送端和接收端分别采用平衡发送器和差动接收器。,2. RS422A 标准,如图所示:,RS-422A标准传输线连接,当AA线电平比BB线电平低2V时,表示逻辑“1”;,当AA线电平比BB线电平高+2V时,表示逻辑“0”。,由于RS-422A标准采用了双线传输,大大增强了抗共模干扰的能力,因此最大数据传输率可达10MB/秒(传送距离为15m)。若传输速率降到90KB/秒,则最大距离可达1200m。此标准只允许有一个发送器,但可有多个接收器。,3. RS485标准,三、串行接口芯片8251A,Intel 8251A是一种通用的同步/异步接收/发送器芯片。其功能为:,* 进行串一并,并一串转换,*
37、 设置通讯的协议,包括字符格式及波特率,* 检测通讯错误,设置出错标志,1. 8251A内部结构,8251A内部结构图,* I/O缓冲器:暂存接收、发送数据、CPU发来的命令及8251A的工作状态。,*读/写控制逻辑:接收CPU控制总线的控制信号,控制数据的传送方向。,*接收器:从接收数据线引脚RXD接收串行数据,按指定方式把它变为并行数据。,* 发送器:接收CPU的并行数据,加上成帧信号,变换成串行数据,从发送数据端引脚TXD发送出去。,* 调制解调控制器:提供控制信号,实现与Modem的连接、8251A的工作有异步方式和同步方式。,2. 8251A的引脚,8251A共有28个引脚,采用双列
38、直插式封装,如图所示。,8251A的引脚图,各引脚的功能如下:,D0D7:8条数据线,Reset:芯片复位信号,TxD:数据发送端,输出串行数据并送往外部设备,TXRDY:发送器准备好信号,TXEmpty:发送器空闲信号,RXD: 数据接收端,接收由外设输入的串行数据。,RXRDY:接收器准备好信号。,SYNDET/BRKDET:双功能检测信号.对于同步方式,SYNDET是同步检测信号对于异步方式,BRKDET为间断检出信号。,DTR:数据终端准备好信号,输出,表示接收方准备好接收数据,通知发送方。,3. 8251A的控制字,(1) 工作方式控制字,(2) 操作命令控制字,(3) 状态控制字,
39、(4) 8251A的初始化,在传送数据前要对8251A进行初始化,以确定发送方与接收方的通信格式以及通信的时序。 由于三个控制字没有特征位,且工作方式控制字和操作命令控制字放入同一个端口,因而要求按一定顺序写入控制字。,正确写控制字的顺序如图所示。,8251A初始化流程,例:8251A采用同步传送方式,有2个同步字符,内同步,偶校验,有7位数据位且同步字符为16H,试编写初始化程序。,假设8251A数据口地址为04A0H,控制口地址为04A2H。,MOV DX,04A2H ;控制口地址 MOV AL,38H ;工作方式控制字 OUT DX,AL MOV AL,16H ;同步字符 OUT DX,AL OUT DX,AL ;输出两个同步字符 MOV AL,97H ;操作命令控制字 OUT DX,AL ,