版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理及接口技术第7章常用接口器件概述:微机应用系统的接口模型1微机应用系统的接口模型
一、单机接口模型接口的作用接口模型接口硬件设备驱动程序2微机应用系统的接口模型
一、单机接口模型单机系统中的接口模型3微机应用系统的接口模型
二、多机接口模型微机接口:用于实现一台主机与多台前端机间的连接,它实际解决的是一个多机通信的问题。常规的解决方案:采用点-点通信方式采用多端口存贮器方式4微机应用系统的接口模型
二、多机接口模型多机系统中的
接口模型典型的主从式多机系统结构;点—点通信方式的微机接口示意图;多端口存贮器方式的微机接口5微机应用系统的接口模型
三、网络接口模型网络设备网络电缆网络接口卡(适配器)PIO方式共享内存方式DMA方式智能控制方式网络操作系统(NOS)6微机应用系统的接口模型
三、网络接口模型网络基本模型①②③④7微机原理及接口技术第7章常用接口器件典型接口芯片7.1
8255:可编程并行接口7.2
8253:可编程定时器7.38250/16550:可编程串行通信接口87.1可编程并行接口8255
一、内部结构及外部引线9图7.28255的内部结构框图输入、输出、双向输入、输出输入、输出、控制/状态信号复位后,A、B、C口均为输入D0~D7有锁存能力无锁存能力有锁存能力有锁存能力10控制字控制字117.1可编程并行接口8255
二、8255的工作方式工作方式0:基本输入输出方式A口(PA0~PA7):输入或输出B口(PB0~PB7):输入或输出C口(PC4~PC7):输入或输出C口(PC0~PC3):输入或输出无锁存能力有锁存能力可按位置位/复位控制字127.1可编程并行接口8255
二、8255的工作方式工作方式1:选通输入输出方式A口(PA0~PA7):输入或输出
C口(PC3、PC4、PC5/PC6、PC7):
控制、状态信号B口(PB7~PB0):输入或输出
C口(PC0、PC1、PC2):控制、状态信号C口(不用作控制/状态信号的位):输入或输出137.1可编程并行接口8255
二、8255的工作方式工作方式1:选通输入输出方式方式1下A口、B口均为输出148255→外设CPU→82558255→CPU外设→82558255→外设PC6PC20控制字157.1可编程并行接口8255
二、8255的工作方式工作方式1:选通输入输出方式方式1下A口、B口均为输入16外设→8255CPU→82558255→CPU外设→82558255→外设PC4PC2控制字17方式1下,A口、B口一个为输入,另一个为输出:控制字187.1可编程并行接口8255
二、8255的工作方式工作方式2:双向输入输出方式(仅A口)
PC3~PC7:A口方式2下的控制线
PC0~PC2:输入
或
输出
或
B口方式1下的控制线
B口:方式0
或
方式119PC6PC4PA7~PA0为三态输出,受ACKA控制控制字20IOW在ACK之前发出,STB在IOR之前发出A口在STB锁存数据后,外设即可撤除A口的数据A口在ACK有效时输出数据217.1可编程并行接口8255
三、8255的方式控制字及状态字控制字22图7.98255的控制字格式(方式选择字)图7.10C口的按位操作
控制字格式10AB237.1可编程并行接口8255
三、8255的方式控制字及状态字状态字
当8255的A口、B口工作在方式1或A口工作在方式2时,通过读C口的状态,可以检测A口和B口的状态。24A组B组A组B组A组B组图7.11A、B口均为方式1输入时的状态字图7.12A、B口均为方式1输出时的状态字图7.13A口在方式2工作时的状态字方式1输出方式1输入方式2257.1可编程并行接口8255四.8255的寻址及连接使用图7.14PC机中8255的连接267.1可编程并行接口8255
五、8255的初始化及应用举例:方式0-打印机接口图7.16方式1下8255
与打印机的连接
数据STROBEBUSYACK图7.17
打印机的工作时序
277.1可编程并行接口8255
五、8255的初始化及应用举例:方式0-打印机接口8255地址:380H~383H初始化程序:
INIT55: MOV DX,0383H MOV AL,10000011B ;方式选择 OUT DX,AL MOV AL,00001101B ;C口位操作 OUT DX,AL28PRINT: MOV AL,BLAK MOV CL,AL ;循环次数 MOV SI,OFFSETDATAGOON: MOV DX,0382H ;C口地址PWAIT:IN AL,DX AND AL,02H ;测试PC1是否为1 JNZ PWAIT ;等待不忙 MOV AL,[SI] MOV DX,0380H ;A口地址 OUT DX,AL ;送数据 MOV DX,0382H ;C口地址 MOV AL,00H OUT DX,AL ;PC6=0 CALLDelay_1us ;延时1μs MOV AL,40H OUT DX,AL ;送STROBE脉冲(PC6=1) INC SI DEC CL JNZ GOON RET忙?(Busy=1?)
则等待297.1可编程并行接口8255
五、8255的初始化及应用举例:方式1-打印机接口图7.188255与打印机的另一种连接方式1-输出打印机时序307.1可编程并行接口8255
五、8255的初始化及应用举例:方式1-打印机接口8255地址:380H~383H初始化程序:
MOVDX,0383H MOVAL,10100000B ;方式选择 OUTDX,AL MOVAL,00001101B ;C口位操作 OUTDX,AL方式1-输出控制字格式1010
0
00
0 00001101A口方式1、输出B口方式0、输出C口高4位C口低4位(输出)PC6置1317.1可编程并行接口8255
五、8255的初始化及应用举例:方式1-打印机接口利用8255方式1以程序控制(查询)方式
实现打印机接口:32POLLPRINT:MOVAL,BLAKMOVCL,ALMOVSI,OFFSETDATAGOON:MOVDX,0382HPWAIT:INAL,DXANDAL,80H ;检测 JZPWAITMOVAL,[SI]MOVDX,0380HOUTDX,AL ;送数据INCSIDECCLJNZGOONRET电路图337.1可编程并行接口8255
五、8255的初始化及应用举例:方式1-打印机接口利用8255方式1以中断方式实现打印机接口:将图7.18中8255的PC3(INTRA)引脚接至图6.36中8259的IR0,采用与6.5.4节中相同的对8259及中断向量表进行初始化的程序,则当8255的INTRA有效时,在中断允许的情况下,CPU将执行以下中断处理程序(设要打印输出的数据存于SI指针指示的存储单元中,CL中记录将要输出的数据个数,执行一次中断,输出一个数据到打印机):34OUTPRINT:PUSHDXPUSHAXMOVDX,0380HMOVAL,[SI]OUTDX,ALINCSIDECCLMOVDX,0FF00H ;8259的地址A0=0MOVAL,20H ;设置一般EOI命令OUTDX,AL ;写OCW2(Page280) POPAXPOPDXIRET电路图35微机原理及接口技术第7章常用接口器件典型接口芯片7.18255:可编程并行接口7.2
8253:可编程定时器7.38250/16550:可编程串行通信接口367.2可编程定时器8253
一、外部引线及功能功能:①计数;②产生定时信号;③外部可控图7.20可编程定时器8253内部结构框图16bit16bit16bit377.2可编程定时器8253
一、外部引线及功能写读高阻内部寄存器寻址:381.方式0:计数结束产生中断7.2可编程定时器8253
二、工作方式39计数结束禁止计数允许计数允许计数402.方式1:可编程单稳7.2可编程定时器8253
二、工作方式41计数结束启动计数423.方式2:频率发生器7.2可编程定时器8253
二、工作方式不影响当前计数初始化计数禁止计数并置OUT为高允许计数434.方式3:方波发生器GATE为低电平:禁止计数,强迫OUT输出高电平;GATE为上升沿:初始化计数;GATE为高电平:允许计数(OUT输出对称方波)。7.2可编程定时器8253
二、工作方式445.方式4:软件触发选通7.2可编程定时器8253
二、工作方式45禁止计数允许计数允许计数466.方式5:硬件触发选通7.2可编程定时器8253
二、工作方式计数结束启动计数47的6种工作方式时序图825348二进制计数:0000H~FFFFH
BCD计数:0000~9999计数初值为0000时,对应最大计数值计数值寄存器
减1计数器
计数锁存器7.2可编程定时器8253
三、8253的控制字CPU发锁存命令×减149图7.228253的控制字格式50写计数值:根据控制字中RL1和RL0的编码。读计数值:在计数器停止计数(可利用GATE信号控制)时读计数值。在计数过程中读计数值:写入控制字(锁存命令):SC1SC0
00xxxx读计数器:两条输入指令。7.2可编程定时器8253
四、8253的寻址及连接1.
寻址512.连接7.2可编程定时器8253
四、8253的寻址及连接52图7.238253与8088系统总线的连接01000011……FF04H~FF07H53图7.24PC机中8253的连接简图A9A8A7A6A5A4A3A2A1A000010XXX040H~043H54图7.24PC机中8253的连接简图A9A8A7A6A5A4A3A2A1A000010XXX040H~043H55初始化顺序:【方法1】
逐个对计数器进行初始化。【方法2】
先写所有计数器的方式字,再装入各计数器的计数值。7.2可编程定时器8253
五、8253的初始化及应用56图7.26另一种初始化编程顺序图7.25一个计数器的初始化顺序57在IBM公布的软件BIOS中,对8253初始化的程序:MOV AL,36H ;计数器0,双字节,方式3,二进制计数OUT 43H,AL ;写入控制寄存器,00
11
011
0MOV AL,0OUT 40H,AL ;写低字节OUT 40H,AL ;写高字节 ;计数值:65536 ;输出对称方波7.2可编程定时器8253
五、8253的初始化及应用电路图ver1控制寄存器电路图ver258在IBM公布的软件BIOS中,对8253初始化的程序:MOV AL,54H ;计数器1,只写低字节,
;方式2,二进制计数OUT 43H,AL ;写入控制寄存器,01
01
010
0MOV AL,18OUT 41H,AL ;写低字节 ;计数值:18
;频率发生器PCLK经二分频后,频率为1.19318MHz,则负脉冲间隔时间:18×(1/1.19318)μs=15μs →DRAM刷新7.2可编程定时器8253
五、8253的初始化及应用电路图ver1控制寄存器电路图ver259在IBM公布的软件BIOS中,对8253初始化的程序:MOV AL,0B6H ;计数器2,写双字节,方式3,二进制计数OUT 43H,AL ;写入控制寄存器,10
11
011
0MOV AX,533HOUT 42H,AL ;写低字节MOV AL,AHOUT 42H,AL ;写高字节 ;计数值:533H
;方波发生器 ;OUT2经驱动和滤波,接扬声器7.2可编程定时器8253
五、8253的初始化及应用电路图ver1控制寄存器电路图ver260MOV DX,0FF07HMOV AL,36H ;控制字00110110OUT DX,AL ;Timer0,双字节,方式3,二进制计数MOV AL,71H ;控制字01110001OUT DX,AL ;Timer1,双字节,方式0,BCD计数MOV AL,0B5H ;控制字10110101OUT DX,AL ;Timer2,双字节,方式2,BCD计数MOV DX,0FF04HMOV AL,0A8HOUT DX,ALMOV AL,61HOUT DX,AL ;Timer0,61A8HMOV DX,0FF05HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,AL ;Timer1,0200HMOV DX,0FF06HMOV AX,0050HOUT DX,ALMOV AL,AHOUT DX,AL ;Timer2,0050HSET8253:图7.26控制寄存器61【例】电源掉电检测。我们目前使用的220V电源为50Hz交流电(国外通常使用110V、60Hz交流电),它通常作为微机系统的系统电源。当系统电源因各种原因出现故障时,为了保护系统的工作状态,需要在备用电源的支持下对重要信息进行保护等处理,以便系统恢复正常供电后能够继续原来的工作,这就需要进行电源掉电检测。7.2可编程定时器8253
五、8253的初始化及应用62【例】电源掉电检测。利用8253实现电源掉电检测的设计思想:利用电源信号经检波、整流生成8253的GATE,这样GATE信号每20ms/16.67ms(对应50Hz/60Hz)产生一次脉冲。使计数值N取得足够大,在方式1下,使得计数器在20ms(16.67ms)内始终不能减到0,这样,不断出现的GATE脉冲上升沿就会使8253计数器不断被重启计数,使OUT输出一直维持为0,从而不能对8086CPU产生NMI。当电源出现故障时,GATE信号不再产生,计数器最终会计数到0,从而使OUT输出为1,产生对8086CPU的掉电中断NMI。7.2可编程定时器8253
五、8253的初始化及应用63【例】电源掉电检测7.2可编程定时器8253
五、8253的初始化及应用电源掉电检测电路
64【例】电源掉电检测若CLK为2.4576MHz,GATE在20ms内产生一个触发信号,即GATE信号周期为49152个时钟周期(0.02s×2457600Hz),则应取计数值N>49152(C000H)。8253初始化程序:(设8253的I/O地址为200H~207H中的偶地址)7.2可编程定时器8253
五、8253的初始化及应用65【例】电源掉电检测8253初始化程序:(设8253的I/O地址为200H~207H中的偶地址)7.2可编程定时器8253
五、8253的初始化及应用MOVDX,0206HMOVAL,00110010B;选计数器0,16位计数长度,
;方式1,二进制计数OUTDX,ALMOVDX,0200HMOVAL,02H;取计数值N=C002HOUTDX,ALMOVAL,C0HOUTDX,AL66计数器2初始化为频率发生器,其输出作为计数器1的时钟输入构建32位计数器:67微机原理及接口技术第7章常用接口器件典型接口芯片7.18255:可编程并行接口7.28253:可编程定时器7.38250/16550:可编程串行通信接口68串行通信的特点:使用的传输线数少传送距离远传送速率低串行通信的方式:同步通信异步通信7.3可编程串行通信接口8250/16550
一、异步串行通信及数据格式691)同步通信:在约定波特率下,发送端和接收端频率保持一致(同步)。7.3可编程串行通信接口8250/16550
一、异步串行通信及数据格式通常一次通信传送几十到几百个字节。发送器、接收器复杂,成本高。70常见的几种同步通信格式(a)单同步格式;(b)双同步格式;(c)SDLC格式;(d)外同步格式;(e)HDLC格式712)异步通信:在约定波特率下,发送端和接收端不需要严格的同步。→两边的频率差别在1/10以内7.3可编程串行通信接口8250/16550
一、异步串行通信及数据格式每传送一个字符,要增加约20%的附加信息位→降低了传送速率可靠,易实现。图7.28异步串行通信数据格式7216550是8250的改进型,与8250的结构基本相同。16550内部具有的接收和发送FIFO:16450:1字节FIFO,与8250结构相同,仅传输速率更高16550:16字节FIFO16650:32字节FIFO16750:64字节FIFO16950:128字节FIFO速度8250:最大9600b/s16550:最大1.5Mb/s7.3可编程串行通信接口8250/16550
二、串行通信接口8250/1655016550与8250之比较:功能描述737.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550(一)引线及功能82501655074fsig_in×16串行in(RxD)串行out(TxD)锁存fsig_out×16外部时钟输入或
外接晶体振荡器IOWIOR中断产生条件:1.8250/16550中断允许2.接收错误或接收数据寄存器满或发送数据寄存器空或
MODEM状态或DB驱动器方向控制通用输出
端口,
由用户
编程指定复位数据载波检测振铃指示请求发送清除发送DTE就绪DCE就绪片选输出RXRDYTXRDY(16550)(16550)RDRDWRWRXINXOUTFIFO错75发送数据接收数据7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (二)工作过程76可编程串行通信接口8250的内部结构框图发送数据77可编程串行通信接口8250的内部结构框图接收数据787.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器线路控制寄存器:LineControlRegister,LCR波特率产生器:BaudRateGenerator,BRG线路状态寄存器:LineStatusRegister,LSRFIFO控制寄存器:FIFOControlRegister,FCR中断控制(允许)寄存器:InterruptControlRegister/InterruptEnableRegister,ICR/IER中断标识(状态)寄存器:InterruptIdentificationRegister/InterruptStatusRegister,IIR/ISR调制解调器控制寄存器:ModemControlRegister,MCR调制解调器状态寄存器:ModemStatusRegister,MSR发送保持寄存器:TransmitHoldingregister,THR接收缓冲寄存器:ReceiveBufferRegister,RBR高速暂存寄存器:ScratchPadRegister,SPR79高速暂存寄存器又称便笺式寄存器,用作一个便笺本,即一个临时存储寄存器,可以让主机存储一个8位数据字节。7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器80FIFO控制寄存器
811.
线路控制寄存器LineControlRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器P327,图7.30822.
线路状态寄存器
LineStatusRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器P329,图7.318250/16550发线路状态错中断ERFIFO无错FIFO有错ERFIFO错(16550专用)833.
发送数据寄存器TransmitterHoldingRegister4.
接收数据寄存器ReceiverBufferRegister5.
除数锁存器(16位)DivisorLatchRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器外部时钟频率8250要求的波特率写入顺序:在通信控制字中将D7置1;先写低8位,后写高8位。输入时钟频率1.8432MHz,要使用1200波特率传送数据,则除数=1843200÷(1200×16)=96
=60H,因此DLL =01100000DLM =00000000(波特率产生器)846.
中断控制寄存器InterruptEnableRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器图7.33中断控制寄存器857.
中断标识寄存器InterruptIdentificationRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器图7.34中断标识寄存器825016550867.
中断标识寄存器InterruptIdentificationRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器8250877.
中断标识寄存器InterruptIdentificationRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器16550888.
MODEM控制寄存器MODEMControlRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器图7.35MODEM控制寄存器SOUT SINRTS CTSDTR DSROUT1 DCDOUT2 RI899.
MODEM状态寄存器MODEMStatusRegister7.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (三)内部寄存器图7.36MODEM状态字变化变化变化907.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (四)寻址及连接0123456017通信控制字D7,除数锁存位91图7.37
5250与8088系统的连接3F8F~(DCD)92图7.37
16550与8088系统的连接3F8F~937.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550 (四)寻址及连接0123456017通信控制字D7,除数锁存位3F83F83F93FA3FB3FC3FD3FE3F83F93FF3FA947.3可编程串行通信接口8250/16550
二、串行通信接口8250/16550
(五)初始化及应用图7.38初始化顺序82501655095INT50: MOV DX,3FBH MOV AL,80H OUT DX,AL ;将线路控制寄存器 ;D7=1即DLAB=1 MOV DX,3F8H MOV AL,60H OUT DX,AL ;锁存除数低8位 INC DX MOV AL,0 OUT DX,AL ;锁存除数高8位,除数:0060H,即96 MOV DX,3FBH MOV AL,0AH ;00001
0
10 OUT DX,AL ;初始化线路控制寄存器 MOV DX,3FCH MOV AL,03H ;00000011 OUT DX,AL ;初始化MODEM控制寄存器 MOV DX,3F9H MOV AL,0 ;不允许中断 OUT DX,AL ;写中断允许寄存器
寄存器寻址奇校验1位停止位7位数据线路控制寄存器RTS低电平DTR低电平Modem
控制
寄存器引脚中断允许寄存器1843200/(16×96)=1200OUT2高电平,禁止中断图7.37初始化FIFO96初始化程序:MOV DX,3FAHMOV AL,07HOUT DX,AL;初始化FIFO控制寄存器16550在初始化时,与8250比较,需增加初始化FIFO控制器部分:…………寄存器寻址FIFO控制寄存器图7.3797采用查询方式发送数据,且要发送数据的字节数放在BX中,要发送的数据顺序存放在以SEDATA为首地址的内存区中。 MOV DX,3FDH ;通信状态寄存器 LEA SI,SEDATA IN AL,DX TEST AL,20H ;发送数据寄存器空? JZ WAITSE PUSH DX MOV DX,3F8H ;发送数据寄存器(写) MOV AL,[SI] OUT DX,AL POP DX ;通信状态寄存器地址 INC SI DEC BX JNZ WAITSESEDPG:WAITSE:线路状态寄存器寄存器寻址98采用查询方式接收数据:REVPG: MOV DX,3FDH ;线路状态寄存器WAITRE: IN AL,DX TEST AL,1EH ;00011110 JNZ ERROR ;有错?→ERROR TEST AL,01H ;接收数据寄存器满? JZ WAITRE MOV DX,3F8H ;接收数据寄存器(读) IN AL,DX AND AL,7FH ;去奇偶校验位线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论