《08第八章常用数字接口电路.ppt》由会员分享,可在线阅读,更多相关《08第八章常用数字接口电路.ppt(165页珍藏版)》请在三一办公上搜索。
1、1,第8章 常用数字接口电路,2,主要内容:,掌握常见可编程接口芯片的应用 了解串行通信的一般概念,3,8.1 接口电路概述,CPU与外设之间信息交换的通道信息缓冲、信息变换、电平转换、联络控制分类:8086系统中最常用的数字接口电路芯片:8253、8255A、8237A等,4,8.2 可编程定时/计数器8253,相关内容见 P219引线功能及计数启动方法6种工作方式及其输出波形8253的使用:芯片与系统的连接芯片的初始化编程,5,定时/计数器的用途,可以实现定时与计数两个功能,可用于系统时钟DRAM刷新定时定时采样实时控制脉冲的计数。,6,如何实现定时?,软件方法:用一段程序实现延时利用程序
2、循环延迟指定的时间缺点:CPU占用率?延时精度?兼容?硬件方法:定时/计数器电路利用脉冲计数在设定的时间输出定时信号,8253是一种硬件定时/计数器芯片,7,一、外部引线及内部结构,8253概貌3个16位的定时/计数器(通道)24引脚双列直插式最高计数频率2MHzTTL电平兼容单电源+5V供电,8,外部引线及内部结构,DB,D7-D0,8253,A1,A0,WR,RD,CS,通道2,通道1,通道0,CLK0GATE0OUT0,CLK1GATE1OUT1,CLK1GATE1OUT1,A1A0,IOWIOR片选信号,9,外部引线及内部结构,连接系统端的主要引线:D7D0CSRDWRA1,A0 用于
3、选择四个编址部件之一,A1 A0 选 择0 0 计数通道00 1 计数通道11 0 计数通道21 1 控制寄存器,10,外部引线及内部结构,计数通道的主要引线(每通道均相同):CLKn 时钟脉冲输入,计数器的计时基准。GATEn 门控信号输入,控制计数器的启停。OUTn 计数器输出信号,不同工作方式下 产生不同波形。(n=02),11,8253的内部结构,12,编程结构,计数器(3个)包括控制寄存器 存放控制命令字(只写)占用4个地址 3个计数器,1个控制寄存器,16位初值寄存器16位计数寄存器,(减法计数器),13,定时/计数的工作过程,1.设置8253的工作方式 2.设置计数初值到初值寄存
4、器 3.第一个CLK信号使初值寄存器的内容置入 计数寄存器 4.以后每来一个CLK信号,计数寄存器减1 5.减到0时,OUT端输出一特殊波形的信号注:以上计数过程中还受到GATE信号的控制,14,二、计数启动方式,软件启动过程硬件启动过程,GATE端保持为高电平写入计数初值后的第2个CLK脉冲的下降沿开始计数,GATE端有一个上升沿对应CLK脉冲的下降沿开始计数,程序指令启动软件启动外部电路信号启动硬件启动,15,三、工作方式,方式0计数结束中断方式1可重复触发的单稳态触发器方式2频率发生器方式3方波发生器方式4软件触发选通方式5硬件触发选通,16,工作方式,方式0,软件启动,不自动重复计数。
5、装入初值后OUT端变低电平,计数结束OUT输出高电平。,(计数结束中断),17,工作方式,方式1,硬件启动,不自动重复计数。装入初值后OUT端变高电平,计数开始OUT端变为低电平,计数结束后又变高。,(单稳态触发器),18,工作方式,方式2,软、硬件启动,自动重复计数。装入初值后OUT端变高电平,计数到最后一个CLK时OUT输出负脉冲,并连续重复此过程。,(频率发生器),19,工作方式,方式3,软、硬件启动,自动重复计数。装入初值后OUT端变高电平,然后OUT连续输出对称方波:,(方波发生器),前 N/2或(N+1)/2 个CLK,OUT为高,后N/2或(N-1)/2 个CLK,OUT为低。,
6、20,工作方式,方式4,软件启动,不自动重复计数。装入初值后输出端变高电平,计数结束输出一个CLK宽度的负脉冲,(软件触发选通),21,工作方式,方式5,硬件启动,不自动重复计数。OUT端波形与方式4相同,(硬件触发选通),22,各种工作方式特点,方式0(计数结束中断)计数过程中,GATE端应保持高电平。每写入一次初值计数一个周期,然后停止计数。OUT端输出是一个约(N+1)TCLK宽度的负脉冲。计数过程中可随时修改初值重新开始计数。方式1(单稳态触发器)门控信号GATE端的跳变触发计数,可重复触发。若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和。计数过程中写入新初值不
7、影响本次计数。,23,各种工作方式特点,方式2(频率发生器)GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。每个计数周期结束时(减到1时),OUT端输出一个TCLK宽度的负脉冲。计数过程自动重复进行。计数过程中修改初值不影响本轮计数过程。方式3(方波发生器)OUT输出方波,前半周期为高,后半周期为低。计数过程中修改初值不影响本半轮计数过程。其余的与方式2 类似。,24,各种工作方式特点,方式4(软件触发选通)计数过程中,GATE端应保持高电平。每写入一次初值,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个TCLK宽
8、度的负脉冲。计数过程中修改初值不影响本轮计数过程。方式5(硬件触发选通)写入初值时,GATE端应保持低电平。GATE每出现一次正脉冲,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。计数过程中修改初值不影响本轮计数过程。,25,8253工作方式一览表,26,四、控制字,用于确定各计数器的工作方式。8253必须先初始化才能正常工作。每个计数器都必须初始化一次。CPU通过OUT指令把控制字写入控制寄存器。,27,28,五、8253的应用,与系统的连接设置工作方式置计数初值,编程,29,与系统的连接示意图,CLK,GATE,OUT,D0D7,WR,R
9、D,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,高位地址A15-A2,8253,共三组,8253占用4个接口地址:计数器0 计数器1 计数器2 控制寄存器,(决定8253的基地址),30,初始化程序流程,写控制字,写计数值低8位,写计数值高8位,*,非必须,写入顺序:可按计数器分别写入控制字和初值。也可先写所有计数器控制字,再写入它们的初值,31,8253应用举例,采用8253作定时/计数器,其接口地址为0120H0123H。输入8253的时钟频率为2MHz。计数器0:每10ms输出1个CLK脉冲宽的负脉冲计数器1:产生10KHz的连续方波信号 计数器2:启动计数5ms后OUT
10、输出高电平。画线路连接图,并编写初始化程序。,32,8253应用举例(续),确定计数初值:CNT0:10ms/0.5us=20000 CNT1:2MHz/10KHz=200 CNT2:5ms/0.5us=10000确定控制字:CNT0:方式2,16位计数值 00 11 010 0 CNT1:方式3,低8位计数值 01 01 011 0 CNT2:方式0,16位计数值 10 11 000 0,33,8253应用举例(续),CLK0,GATE0,OUT1,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8253,CLK2,GATE1,GATE2,+5V,CLK1,
11、2MHz,OUT0,OUT2,?,线路连接图:,34,8253应用举例 初始化程序,CNT0:MOV DX,0123HMOV AL,34HOUT DX,ALMOV DX,0120HMOV AX,20000OUT DX,AL,MOV AL,AHOUT DX,ALCNT1:CNT2:,35,*如何读出当前计数值,第1种方法在计数过程中读计数值先锁存当前计数值,再用两条输入指令将16位计数值读出。第2种方法停止计数器再读用GATE信号使计数器停止,再规定RL1和RL0的读写格式,然后读出。,36,*扩展定时/计数范围,当定时长度不够时,可把2个或3个计数通道串联起来使用,甚至可把多个8253串联起来
12、使用。例如:CLK频率为1MHz,要求在OUT1端产生频率1Hz的脉冲。这时可将计数器0、1串联,工作方式都均为方式3,计数初值均为1000。连接方法见下页。,37,扩展定时/计数范围,8253,OUT1,GATE1,CLK1,OUT0,GATE0,CLK0,+5V,+5V,1MHz,1KHz,1Hz,38,8253小结,包含3个16位计数器通道4个编址部件:CNT0/1/2和控制寄存器每个计数器通道工作前必须初始化:控制字和计数初值6种工作方式每种工作方式:启动方式、输出波形、是否可重复计数等各不相同,39,8.3 并行接口8255A,特点:相关内容见p209含3个独立的8位并行输入/输出端
13、口,各端口均具有数据的控制和锁存能力可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。,40,一、引线,共40个引脚(1)数据总线缓冲器(2)读写控制逻辑(3)A组和B组(4)数据端口A、B、C,41,引线(续),连接系统端的主要引线:D0D7CS*RD*WR*A0,A1 RESET复位信号,接系统总线的RESET,A1 A0 选择0 0 端口A0 1 端口B1 0 端口C1 1 控制寄存器,42,引线(续),连接外设端的引脚:PA0PA7PB0PB7PC0PC7,分别对应A、B、C三个8位输入/输出端口,三个端口可通过编程分别指定为输入或输出口。其中,A口可双向通讯;C口即可用作
14、独立的输入/输出口,也可用作A、B口的控制信号输出或状态信号输入。,43,二、结构,A组B组,端口A端口C的高4位,端口B端口C的低4位,44,8255A与系统的连接示意图,45,三、8255A工作方式,基本输入/输出方式(方式0)选通输入/输出方式(方式1)双向输入/输出方式(方式2)(仅A口),某端口工作于哪一种方式,可通过软件编程来指定。即向8255A写入方式控制字来决定其工作方式,见下页。,46,方式控制字及位控字,可以利用软件编程确定8255A的3个端口工作于何种方式下;8255A的C端口可以按位操作。当其工作于方式0下且作为输出口时,对于那些作为输出的位需要设置初始状态(1/0)。
15、,47,方式控制字与位控字格式,控制字确定3个端口的工作方式位控字确定C口某一位的初始状态,或用于设置INTE位(方式1,2)。,48,工作方式0(基本输入/输出),8255A相当于三个独立的8位简单接口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能力。无联络信号。,49,工作方式0,50,方式0的应用:,用于连接简单外设。适用于:无条件输入输出方式。查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。,
16、51,工作方式1(带选通的输入/输出),利用一组选通控制信号控制A端口和B端口的数据输入输出。(只有A、B口可选)A、B口作输入或输出口,C口的部分位用作A、B口的选通控制信号。A口、B口在作为输入和输出时的选通信号不同。,52,工作方式1,1方式1的输入A口设定为方式1输入时,A口所用三条联络信号线是C口的PC3、PC4、PC5。B口设定为方式1输入时,B口所用三条联络信号线是C口的PC0、PC1、PC2。,53,方式1输入时的A口和B口,54,工作方式1(方式1的输入),各联络线的定义如下:STB:外设送来的输入选通信号,低电平有效。IBF:输入缓冲器满信号,高电平有效。INTR:8255
17、A送到CPU或系统总线的中断请求信号,高电平有效。INTE:中断允许信号。,55,工作方式1(方式1的输出),2方式1的输出A口与B口设为方式1输出时,也分别指定C口的三条线为联络信号A口三条联络信号线是C口的PC3、PC6、PC7B口三条联络信号线是C口的 PC0、PC1、PC2。,56,方式1输出时的A口和B口,57,工作方式1(方式1的输出),各联络线的定义如下:OBF*输出缓冲器满信号。ACK*外设响应信号,表示已从数据端口取走数据。此信号使OBF变高。INTRACK#上升沿产生,通知CPU输出下一个数据(通常接到8259)。INTE中断允许位,INTE=1和OBF#为高电平时,允许产
18、生INTR信号。,58,注意:,INTE的状态可利用C口的位控方式来设置:输入:A口的INTE:写入PC4B口的INTE:写入PC2输出:A口的INTE:写入PC6B口的INTE:写入PC2,59,方式1的应用:,主要用于中断控制方式下的输入输出。C口除部分位用作选通信号外,其余位可工作在方式0下,作为输入或输出线。特别是A、B均为方式1时仅使用C口的6条线,余下二条线可作为单独的输入输出线,用程序指定其数据传送方向。,60,工作方式2(带选通的双向输入/输出),双向方式既是输入口,又是输出口。利用C口的5条线提供传输联络信号。只有A口可工作在方式2下。,61,方式2下的引脚定义,62,工作方
19、式2,各联络信号的含义如下:INTR:中断请求信号,高电平有效。OBF*:输出缓冲器满,低电平有效。ACK*:来自外设的响应信号,低电平有效。INTE1:A口输出中断允许。STB*:来自外设的选通输入,低电平有效。IBF:输入缓冲器满,高电平有效。INTE2:A口输入中断允许。,63,方式2的应用:,可用于中断控制输入输出方式。当A口工作于方式2时,B口可工作于方式1(此时C口的剩余位都用作B口选通控制线);B口也可工作于方式0(此时C口的剩余位也只能用作方式0下的输入输出线)。,64,8255A的控制字,工作方式控制字,65,8255A的控制字,C口位控制字(1)仅C口可按位置位/复位,且只
20、对C口的输出状态进行控制(对输入无作用)。(2)一次只能设置C口1位的状态。(3)这个控制字应写入控制口,而不是C口。,66,8255A的控制字,C口按位置位/复位控制字,67,图示,设8255端口地址为2F80-2F83H,编程设置8255 A组、B组均工作于方式0,A口输出,B口输出,C口高4位输入,低4位输出。然后,读入开关K的状态,若S打开,则使发光二极管熄灭;若K闭合,则使发光二极管点亮。,8255A的编程,68,程序如下:MOVAL,88HMOVDX,2F83HOUTDX,ALMOVDX,2F82HINAL,DXMOVDX,2F81HANDAL,20HJZL1;条件成立时PC50,
21、S闭合MOVAL,0OUTDX,ALJMPEND1L1:MOVAL,40HOUTDX,ALEND1:HLT,8.4可编程串行通信接口,学习内容:相关内容见p342串行通信的一般概念工作方式、同步方式、数据格式、物理标准串行通信的接口标准EIA RS-232C可编程串行异步通信接口8250(UART)连接、编程、应用,70,8.4.1串行通信基本概念,串行通信:每个时间单位仅传送一位信息;每个字符(字节)的各位依次传送;字符之间的间隔不定。优点:传输线少,成本低,传输距离远,71,1.串行通信工作方式,单工通信只能由一方发送,例:广播半双工通信某一时刻只能由一方发送,例:对讲机全双工通信双方可同
22、时传输,例:电话,72,单工/双工操作,发送器,接收器,发送器/接收器,发送器/接收器,发送器/接收器,发送器/接收器,单工方式:,半双工方式:,全双工方式:,A站,B站,73,电话网络模拟信号,计算机数字信号。远距离通信时需要通过普通电话网络传输数字信号:频带宽电话网络:频带窄 要使数字信号在电话网络上传输,需要进行信号变换把数字信号承载到模拟信号上传输,这个模拟信号称为载波信号。调制把数字信号承载到载波信号上解调从载波信号中恢复出数字信号调制解调器:实现调制与解调的设备,2.调制与解调,74,三种调制方式,根据载波 Acos(t+)的三个参数:幅度、频率、相位,产生常用的三种调制技术:幅移
23、键控法 Amplitude-Shift Keying(ASK)频移键控法 Frequency-Shift Keying(FSK)相移键控法 Phase-Shift Keying(PSK)ASK(又称为调幅)用载波信号的不同幅度代表1和0FSK(又称为调频)用载波信号的不同频率代表1和0PSK(又称为调相)用载波信号的相位变化代表1和0(有变化为1,无变化为0),75,0,0,1,1,0,1,0,0,0,1,0,调幅,调频,调相,数字信号,数字数据,三种调制方式的调制波形图,76,串行通信主要用于远距离数据传输。问题:干扰、衰减,信号畸变解决方法:差错控制技术检测、纠正常用的数据校验方法:奇偶校
24、验循环冗余校验CRC,3.数据校验,77,4.同步通信与异步通信,所有串行通信都需要一个时钟信号来作为数据的定时参考。发送器和接收器用时钟来决定何时发送和读取每一个数据位。根据传输时采用的是统一时钟还是本地局部时钟,分为同步传输和异步传输两种。同步传输用一个时钟脉冲确定一个数据位,异步传输用多个时钟脉冲确定一个数据位(如16个)同步传输以数据块(当作“位流”看待)为单位传输,异步传输以字符为单位传输,但都称为帧(Frame),78,同步通信的时钟定时方法,数据(62H),0,1,1,0,0,0,1,0,同步传输先发送高位(MSB),发送方在时钟信号的下降沿发送字节,接收方在时钟信号的上升沿接收
25、字节,时钟(发送时钟与接收时钟完全同步),LSB,MSB,79,异步通信的时钟定时方法,数据(62H),0,0,0,0,1,1,停止位,异步传输先发送低位(LSB),发送方利用发送时钟来决定发送每个位的时刻,接收方检测起始位的下降沿,并用它来同步接收时钟,然后利用接收时钟从每一位的中间接收该位,1,起始位,LSB,MSB,0,奇偶校验位,0,0/1,1 1,接收/发送时钟,80,异步通信的一般格式,每个字符由起始位(为0)、数据位、校验位(无或1位)、停止位(1-2位)构成。起始位和停止位用于字符的同步。,81,8.4.2 串行通信的接口标准,机械特性:连接器的尺寸、引脚分布信号特性:信号电平
26、、通信速率功能特性:引脚功能、控制时序 最常见的串行通信标准是RS-232C。,82,RS-232C标准,外形为25针或9针的D型连接器通信速率:波特率Baud(符号数/s)100、300、600、1200、2400、4800 9600、19.2K、33.6K、56K 信号电平:逻辑“1”:-5V-15V逻辑“0”:+5V+15VTTL电平与RS232电平转换:TTLRS232:MC1488RS232TTL:MC1489RS232 TTL,RS232 TTL:TC232,Max232传输距离15m,83,主要引脚的功能,84,信号时序(接收),设备握手DTR:PCM(保持,表示PC已可以工作)
27、DSR:PCM(保持,表示M已可以工作)监视载波信号DCD:PCM载波(表示数据链已建立)接收数据RXD:PCM数据调制信号结束通信DCD消失、PC撤除DTR、Modem撤除DSR,85,信号时序(发送),设备握手DTR:PCM(保持)DSR:PCM(保持)请求发送RTS:PCM(保持),M载波,在对方产生DCDCTS:PCM(保持)发送数据TXD:PCM数据调制信号结束通信PC撤除RTS/DTRModem撤除CTS/DSR,停止发送载波,86,RS-232C接口连接方式,87,RS-232C接口连接方式(续),一种简化的连接方式(Null Modem)适用于双机直连,TDRDRTSCTSDC
28、DGNDDTRDSRRI,TDRDRTSCTSDCDGNDDTRDSRRI,88,8.4.3 通用异步通信接口芯片8250,主要内容:见p365 1)8250的引脚及功能 2)与系统的连接 3)内部结构与内部寄存器 4)8250的编程,89,8250与8088系统的连接,系统总线,D7-D0DISTRDOSTRINTRMRA0A1A2ADSDISTRDOSTRCS2CS1CS0,+5V,CS,D7-D0,#IOR,#IOW,INTR,RESET,A0,A1,A2,电平转换/驱动器14881489,到RS232接口,XTAL1XTAL2BAUDOUTRCLK,SOUTSINRTSDTRDSRDC
29、DCTSRI,8250,XTAL,90,1.8250 的引脚及功能,面向系统的引脚:D0D7 双向数据线。与系统数据总线DB相连接,用以传送数据、控制信息和状态信息。CS0,CS1,CS2 片选信号,当它们同时有效时,该8250芯片被选中。CSOUT 片选输出信号。当8250的CS0、CS1和CS2同时有效时,CSOUT为高电平。MR 主复位信号。,91,A0A2 8250内部寄存器的选择信号。不同的编码对应于不同的寄存器。ADS 地址选通信号。有效时可将CS0,CS1,CS2及A0-A2锁存于8250内部。不需要锁存时,ADS可直接接地。DISTR 读选通信号。通常与系统总线的IOR信号相连
30、接。DOSTR 写选通信号。通常与系统总线的IOW信号相连接。INTR 中断请求信号。当允许8250中断时,接收出错、接收数据寄存器满、发送数据寄存器空以及MODEM的状态均能够产生有效的INTR信号。,92,8250 的引脚及功能(续),面向通信设备的引脚信号SIN,SOUT:串行输入/输出端CTS,RTS,DTR,DSR:(同RS232标准中的信号)RLSD:即RS232C标准中的DCD信号RI:(同RS232标准中的信号)OUT1,OUT2:可由用户编程确定其状态的输出端BAUDOUT:波特率信号输出(频率=fCLK/分频值)XTAL1,XTAL2:接外部晶振,作为基准时钟fCLKRCL
31、K:接收时钟输入(可直接与BAUDOUT相连),93,4.3,94,2.8250的内部寄存器,共10个可编程(寻址)的寄存器线路控制寄存器(LCR)BASE+3线路状态寄存器(LSR)BASE+5 发送保持寄存器(THR)BASE+0(写)接收数据寄存器(RBR)BASE+0(读)除数锁存器低8位(DLL)BASE+0(DL=1)除数锁存器高8位(DLH)BASE+1(DL=1)中断允许寄存器(IER)BASE+1中断标志寄存器(IIR)BASE+2Modem控制寄存器(MCR)BASE+4Modem状态寄存器(MSR)BASE+6,95,8250的内部寄存器(续),除数锁存器(DLL,DLH
32、)BASE+0,1用来保存分频系数,以获得所需的波特率。波特率可以简单地看成每秒传送多少二进制位的数据。PC机中基准时钟频率fCLK=1.8432MHz,波特率因子K=16。所以,对于指定的波特率因子B 除数值=1843200/(B16)=115200/B例如,通信速率为9600波特时,除数值=12。注意:写除数前,必须把LCR的最高位(DL位)置1相关内容见P369例,96,8250的内部寄存器(续),线路控制寄存器(LCR)BASE+3决定传输时的数据帧格式(通信双方必须一致),DL位:0正常操作1写除数寄存器,0正常操作1SOUT强制为1(Break符号),000无校验001奇校验011
33、偶校验101奇偶位恒为1111奇偶位恒为0,01位停止位12位停止位,00=5位数据位01=6位数据位107位数据位118位数据位,97,8250的内部寄存器(续),线路状态寄存器(LSR)BASE+5反映传输时的通信线状态,发送移位寄存器空,发送保持寄存器空,检测到Break,接收缓冲寄存器就绪,溢出错,奇偶错,格式错(停止位个数不符),98,8250的内部寄存器(续),发送保持寄存器(THR)BASE+0要发送的数据写入此寄存器。当发送移位寄存器TSR空时,THR中的内容移入TSR被发送出去。只有THR空时,CPU才能写入下一个要发送的数据接收数据寄存器(RBR)BASE+0接收移位寄存器
34、RSR收到一个完整的数据后,就将其送入RBR中。CPU可从RBR中读取收到的数据。RBR只能缓冲一个数据,当CPU未能及时取走上一个数据,下一个数据又送入RBR时,会产生溢出错,99,8250的内部寄存器(续),中断允许寄存器(IER)BASE+1决定哪类中断可以产生(也可禁止所有中断产生),1允许接收器数据就绪中断,1允许发送器保持控制器空中断,1允许线路状态中断(溢出错、奇偶错、格式错、Break),1允许Modem状态中断,100,8250的内部寄存器(续),中断识别寄存器(IIR)BASE+2用于识别产生中断的原因,0无中断1有中断,00Modem状态中断(优先级最低)01发送保持寄存
35、器空中断10接收缓冲寄存器满中断11线路状态中断,101,8250的内部寄存器(续),Modem控制寄存器(MCR)BASE+4产生RTS、DTR信号产生OUT1、OUT2信号设置循环自检状态,102,8250的内部寄存器(续),Modem状态寄存器(MSR)BASE+6反映RS232接口的状态,CTS,DSR,RI,RLSD,CTS,RLSD,RI,DSR,反映4个引脚的当前状态(反相值),反映了自上次读MSR后这4个引脚是否发生了变化(1发生了变化),103,8250发送数据的工作过程,1)CPU(数据)8250的THR;2)TSR移空时,THR TSR,LSR中“数据发送保持寄存器空”状
36、态位置位;3)TSR根据LCR中规定的格式从低到高逐位发送数据;4)LSR中“数据发送保持寄存器空”状态位可用来产生中断,也可查询该状态位,以实现数据的连续发送。,TSR,THR,串行数据输出,并行数据,LSR,INT,LCR,数据,状态,1),2),3),2),4),4),104,8250接收数据的工作过程,1)SIN引脚上的串行数据逐位进入RSR;2)RSR根据LSR中规定的数据位数确定是否收到了一个完整的数据,收到后将数据RBR;3)RBR收到RSR的数据后,将LSR寄存器中“接收缓冲寄存器满”的状态位置位;4)LSR中“接收缓冲寄存器满”状态位可用来产生中断,也可查询该状态位,以实现数
37、据的连续接收。,RSR,RBR,串行数据输入,并行数据,LSR,INT,LCR,数据,状态,1),2),3),4),105,3.8250 的初始化流程,流程图,使LCR的最高位1,写除数寄存器,写LCR寄存器,同时使LCR的最高位0,写MCR寄存器,写IER寄存器,106,用BIOS功能初始化8250,PC机有两个串行接口:COM1(基地址3F8H),COM2(基地址2F8H)BIOS通过中断14H提供串行通信功能功能0:初始化串行接口功能1:发送一个字符功能2:接收一个字符功能3:读串行接口状态INT14H仅提供了查询方式的通信服务要使用中断方式进行发送和接收必须自行编程,107,用BIOS
38、功能初始化8250,功能0(初始化)的入口参数为:AH=0AL=初始化参数DX=串口编号(0=COM1,1=COM2)初始化参数定义如下:,波特率1001200101240011048001119600,奇偶校验x0无校验01奇校验11偶校验,数据位数005位016位107位118位,停止位01位12位,MOV AH,0MOV AL,初始化参数MOV DX,0INT 14H,108,8.4 DMAC 8237A,8.4.1 DMA技术概述 8.4.2 可编程DMA控制器8237A 8.4.3 DMA技术的应用,直接存储器存取,109,1.DMA(Direct Memory Access)的概念
39、DMA方式不用CPU干预完成M与I/O间数据传送。DMA期间系统总线由其它主模块控制(驱动)控制总线的主模块要提供系统的地址及控制信号。DMA控制器与处理器配合可实现系统的DMA功能。,8.4.1 DMA技术概述(见P228),110,2.DMA系统组成及工作过程 DMA系统组成,111,DMAC的基本功能,接收接口往DMAC发出DMA请求信号后,DMA控制器能向CPU发出总线请求信号HOLD(高电平)。当CPU向DMAC发出响应信号HLDA(高电平)以后,DMA能接管对总线的控制,进入DMA方式。能向地址总线发出内存地址信息,对其进行寻址及修改地址指针。,112,DMAC的基本功能,能向存储
40、器或I/O接口发相应的读写控制信号。能决定传送字节数,并判断DMA传送是否结束。DMA过程结束,能向CPU发出DMA结束信号,HOLD变低,将总线控制权还给CPU,CPU恢复正常工作。,113,I/O设备向DMAC发出DMA请求,DMAC向CPU发出总线请求,CPU在执行完当前指令的当前的总线周期后,向DMAC发出总线响应信号,CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制,DMAC向I/O设备发出的DMA响应信号,DMAC进行一个字节的传送,完成设定的字节数据传送,CPU恢复对系统总线的控制,DMA传送的过程,114,8.4.2 DMAC 8237A,8237A的主要特性(相关内
41、容见p228)1具有四个独立的DMA通道,每个通道都具有64K的存贮器寻址能力,即一次传送的最大长度为64K字节。2可实现内存与外设之间的高速大批量数据传送,也可实现内存两个不同区域之间的高速数据传送。3每个通道的DMA请求均可分别允许或禁止,且四个通道的DMA请求的优先权可由软件设置为固定的或循环的。,115,8237A的主要特性,4具有单字节传送、数据块传送、请求传送和级联传送四种工作方式。5可用级联方式扩展DMA通道数目。6DMA传送结束信号可由内部计数产生,也可由外部输入提供。7单一的+5V电源,40个引脚双列直插式封装。8采用5MHz时钟,传送速率可达1.6M字节/秒。,116,82
42、37A内部结构8237A有四个独立通道:通道0-通道3。每个通道可独立响应外部DMA请求,完成DMA传送。,117,控制寄存器,8位,117,四个通道共用,优先级编码电路-优先级裁决,118,8237A可编程DMA控制器框图,119,8237的引脚功能,119,120,请求/应答信号外设接口电路向8237的DMA请求信号:DREQ3DREQ08237A对外设接口电路的DMA应答信号:DACK3DACK08237A向CPU申请总线请求信号:HRQ(连至CPU的HOLD)CPU向8237A传送的总线应答信号:HLDA,CPU,DMA,外设,HRQ,DREQ,HLDA DACK,120,8237A的
43、引脚功能,121,地址信号CS*:CPU初始化8237A或读8237A状态时所需的片选信号。A3-A0(输入):CPU初始化8237A或读8237A状态时,用于寻址8237A内部寄存器。A7-A0(输出):8237A访问存储器的地址信号的低8位。,8237A的引脚功能,122,数据信号(双向):DB7DB0,CPU为主控时,可以通过I/O读命令查询8237A的状态寄存器的内容,或通过I/O写命令对8237A的内部寄存器进行编程,数据传送通过DB7DB0。8237A为主控时,DB7DB0输出要访问的内存地址的高8位,并通过ADSTB锁存到外部地址锁存器中,和A7A0输出的低8位地址一起构成16位
44、地址。,122,8237A的引脚功能,123,地址允许信号:AEN8237A作为主控时(8237A控制总线),输出AEN=1。8237A作为从控时(CPU控制总线),输出AEN=0。DMA传输结束信号:EOP*(双向)当DMAC内部任一通道传输结束,8237A发出EOP*。若由外部给DMAC送入有效的EOP*,则强制DMAC内部所有通道结束传输。,8237A的引脚功能,124,MEMR*/MEMW*:,8237A发出的存储器读/写信号,IOR*/IOW*:,8237A作为主控时,输出的I/O读/写信号。8237A作为从控时,CPU发出的I/O读/写信号,用于读/写8237A,124,8237A
45、的引脚功能,125,ADSTB:地址选通信号,用于启动地址锁存器,READY:存储器或I/O的就绪信号,125,8237A的引脚功能,126,8237A的工作方式,DMA传送方式 单字节传送方式 数据块传送方式 请求传送方式 级连方式DMA传送类型 DMA读 DMA写 DMA检验存储器到存储器的传送,127,(1)DMA传送单字节方式,每次DMA传送时仅传送一个字节传送一个字节之后,字节数寄存器减1,地址寄存器加1或减1,HRQ变为无效8237A释放系统总线,将控制权还给CPU若传送后使字节数从0减到FFFFH,则终结DMA传送或重新初始化特点:一次传送一个字节,效率略低DMA传送之间CPU有
46、机会重新获取总线控制权,DMA传送方式,128,(2)DMA传送数据块方式,由DREQ启动就连续地传送数据,直到字节数寄存器从0减到FFFFH终止计数,或由外部输入有效信号终结DMA传送DREQ只需维持有效到DACK有效特点:一次请求传送一个数据块,效率高整个DMA传送期间CPU长时间无法控制总线(无法响应其他DMA请求、无法处理中断等),129,(3)DMA传送-请求传送方式,DREQ信号有效就连续传送数据DREQ信号无效,DMA传送被暂时中止,8237A释放总线,CPU可继续操作DMA通道的地址和字节数的中间值仍被保持DREQ信号再次有效,DMA传送就继续进行如果字节数寄存器从0减到FFF
47、FH,或者由外部送来一个有效的信号,将终止计数特点:DMA操作可由外设利用DREQ信号控制传送的过程,130,(4)DMA传送-级连方式,用于通过多个8237A级连以扩展通道第二级的HRQ和HLDA信号连到第一级某个通道的DREQ和DACK上第二级芯片的优先权等级与所连通道的优先权相对应还可由第二级扩展到第三级等,131,8237A的级联,132,DMA读把数据由存储器传送到外设由MEMR*有效从存储器读出数据,由IOW*有效把这一数据写入外设DMA写把外设输入的数据写入存储器由IOR*有效从外设输入数据,由MEMW*有效把这一数据写入存储器。DMA检验空操作8237A不进行任何检验外设可以进
48、行DMA校验存储器和I/O控制线保持无效,不进行传送,DMA传送类型,133,固定使用通道0和通道1通道0的地址寄存器存源区地址通道1的地址寄存器存目的区地址,通道1的字节数寄存器存传送的字节数传送由设置通道0的软件请求启动每传送一字节需用8个时钟周期前4个时钟周期用通道0地址寄存器的地址从源区读数据送入8237A的临时寄存器后4个时钟周期用通道1地址寄存器的地址把临时寄存器中的数据写入目的区,存储器到存储器的传送,134,8237A的工作方式由写方式寄存器决定,存放相应通道的方式控制字选择某个DMA通道的工作方式其中用最低2位选择哪个DMA通道,请看方式字的格式,135,方式字格式,00 请
49、求方式01 单字节方式10 数据块方式11 级联方式,0 地址增量(加1)1 地址减量(减1),0 禁止自动初始化1 允许自动初始化,00DMA校验01DMA写10DMA读11非法若D7D611,00 通道001 通道110 通道211 通道3,136,DMA控制器8237A,自动初始化功能-D4:当设置为自动初始化时,每当DMA过程结束信号EOP*产生时(不论是内部终止计数还是外部输入该信号),用基地址寄存器和基字节数寄存器的内容,使相应的现行寄存器恢复为初始值,包括恢复屏蔽位、允许DMA请求作好下一次DMA传送的准备。,136,137,DMA控制器8237A,D3 D2:传输方式设定 写输
50、入:I/O设备往内存写入数据。读输入:将内存数据送往I/O设备。校验传输:用于对读传输和写传输功能进行校验,8237A此时只产生EOP信号和地址信号。,137,138,8237A的寄存器,8237A共有10种内部寄存器,对它们的操作有时需要配合3个软件命令8237A的“软件命令”不需要通过数据总线写入控制字直接由地址和控制信号译码实现,全部用地址A0A3区分,139,1.8237A 的命令寄存器,存放8237A的命令字设置8237A芯片的操作方式影响每个DMA通道复位时使命令寄存器清零设置D20使8237A可以作为DMA控制器,请看命令字的格式,8237A 的命令寄存器和状态寄存器,140,命