微机原理与接口技术4

上传人:gb****c 文档编号:243359004 上传时间:2024-09-21 格式:PPT 页数:79 大小:1.20MB
返回 下载 相关 举报
微机原理与接口技术4_第1页
第1页 / 共79页
微机原理与接口技术4_第2页
第2页 / 共79页
微机原理与接口技术4_第3页
第3页 / 共79页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章 输入与输出(,I/O),接口,4.1,I/O,接口基础,4.2 82,C54,的功能和结构,4.3 82,C55 PPI,4.4 8250/16450,UART,1,本章学习目标,I/O,接口的基本概念,82C54,的结构、功能和应用程序,82C55,的结构、功能和应用程序,串行通信及,RS-232,接口标准,8250,的结构、功能和应用程序,2,接口是介于主机和外设之间的缓冲电路和相应软件,。,I/O,接口的功能包括数据缓冲、接收和执行,CPU,的命令、信号转换、设备选择、中断管理、数据宽带交换和可编程等。,4.1,I/O,接口基础,CPU,接口,外设,数据,控制信号,控制信号,状态信号,状态信号,数据,可能是单向的,3,常见接口插槽,PS2,鼠标,PS2,键盘,千兆网,10/100M,网卡,USB,并行口,显示器接口,1394,1394a,麦克风,/,音箱,/,线入接口,MIDI/,游戏接口,串行口,4,CPU,对,I/O,端口的编址方式分为端口统一编址和端口独立编址。,4.1,I/O,接口基础,5,4.2 82,C54,的功能和结构,1.82,C54,的功能,(1)计数,。有3个独立的计数器通道,每个可按二进制或,BCD,码进行计数,工作方式有6种。,(2)定时,。,提供的时间基准。,6,4.2 82,C54,的功能和结构,2 82,C54,的结构,7,82,C54,的四个端口选择,4.2 82,C54,的功能和结构,CS,RD,WR,A1,A0,寄存器选择和操作,0,1,0,0,0,写入计数器,0,0,1,0,0,1,写入计数器,1,0,1,0,1,0,写入计数器,2,0,1,0,1,1,写入控制寄存器,0,0,1,0,0,读计数器,0,0,0,1,0,1,读计数器,1,0,0,1,1,0,读计数器,2,0,0,1,1,1,无操作(三态),1,禁止(三态),0,1,1,无操作(三态),8,控制字,寄存器,控制,逻辑,状态锁存,状态寄存器,CRm,CRl,计数部件,CE,OLm,OLl,CLK,n,GATE,n,OUT,n,内部总线,计数器内部结构图,控制字,寄存器,控制,逻辑,CRl,CRm,计数部件,CE,OLl,OLm,状态寄存器,状态锁存,9,4.2.2 82,C54,控制字,1.控制字,10,(1),写工作方式控制字,(2),设置计数初值,例,:,MOV AL, 01110101B;,CNT,1,先低后高字节,方式,2,BCD,OUT,43H, AL,MOV,AX, 2000H ;,计数初值为,2000,OUT,41H, AL ;,MOV AL, AH,OUT,41H,,,AL ;,MOV AL,,,00010110B;,CNT,0,只低字节,方式,3,二进制,OUT,43H,,,AL,OUT,40H,,,50H ;,计数初值为,50H,(,80,),注意:,(1),每个使用的,CNT,均要初始化;,(2),计数初值的设置与,CNT,的,CLK,密切相关;,(3),计数初值的设置方法由控制字决定。,CNT,初始化,11,2.,当前计数值的读取,(1),读取当前计数值方法,1,工作方式控制字,(A1A0=11)D7D6,00,01,,,D5D4=00,(a),锁存当前计数值或禁止计数,(b),读取当前计数值,例:,MOV AL,,,01,00,0101B,;,CNT,1,锁存,;先低后高字节,方式,2,BCD,OUT,43H,,,AL,IN AL,,,41H,MOV AH,,,AL,IN AL,,,41H,XCHG AH,,,AL,;,AX,为,T/C,1,当前计数值,4.2.2,12,4.2.2,读回命令:,CS=0,A1A0=11,RD=1,WR=0,D7 D6 D5 D4 D3 D2 D1 D0,特征值 计数值 状态,CNT2 CNT1 CNT0,特征位,1 1 0 0 1 1 1 0,锁存计数值 锁存状态 选择其中一个或多个,(2),读取当前计数值方法,2,使用读回命令,2.,当前计数值的读取,特点:,控制字同时只能锁存单个通道,,读回命令可同时锁存多个通道。,功能选择:,锁存状态,D5D4=10,;,锁存计数值,D5D4=01,;,锁存状态与计数值,D5D4=00,。,(,先读状态再读计数值),13,例:,MOV AL,,,11,010100B,;,CNT,1,锁存计数值,OUT 43H,,,AL,IN AL,,,41H,;,MOV AH,,,AL,IN AL,,,41H,XCHG AH,,,AL,;,AX,为当前计数值,MOV AL,,,11,011010B,;,CNT,0,、,CNT,2,锁存计数值,OUT 43H,,,AL,IN AL,,,40H,;,MOV AH,,,AL,IN AL,,,40H,XCHG AH,,,AL,;,AX,为,CNT,0,当前计数值,IN AL,,,42H,;,MOV AH,,,AL,IN AL,,,42H,XCHG AH,,,AL,;,AX,为,CNT,2,当前计数值,14,3.状态寄存器,4.2.2,例:,MOV AL,,,11100100B; CNT,1,锁存状态值,OUT 43H,,,AL,IN AL,,,41H,;若,AL=00110101,,表示,CNT,1,;,为方式,2,BCD,码,先低后高,;,读,/,写,当前,OUT,为低电平,MOV AL,,,11100010B;CNT,0,锁存状态值,OUT 43H,,,AL,IN AL,,,40H,;若,AL=00010110,,表示,T/C,0,;,为方式,3,,二进制码,只有低,;字节,当前,OUT,为低电平,15,4.2.3 82,C54,工作方式,1.工作方式与时序(方式0、方式4,),GATE,方式0:,OUT,方式4:,OUT,写,CW,1,CLK,CRCE,CRCE,CLK,CR,写2,写3,3,2,2,2,1,2,1,0,16,2.,工作方式与时序(方式1、方式5),写3,方式5,:,OUT,1,CLK,CR,CRCE,CRCE,CR,写3,CLK,GATE,方式1,:,OUT,4.2.3,写,CW,3,2,1,3,2,1,0,17,3.,工作方式与时序(方式2、方式3),方式2,:,方式3:,OUT,CLK,GATE,写,CW,写3,3 2 2 3 2 1 2,1 2 1,CR,CRCE,CRCE,CR,写2,GATE,EVEN,4 2 4 2 4 2 4,2 4 2,5 4 2 5 2 5 4,2 5 2,ODD,GATE,CRCE,写4,写5,4 2 4 2 2 2 4,2 4 2,OUT,4.2.3,18,方式 2:,方式 3:,软件启动:,GATE=1,,软件启动。,硬件启动:写计数值后,GATE,启动。,自动重计数。,连续工作:每(,N-1)CLK,减到1时输出1,CLK,低电平。,GATE=0,,停止计数,,GATE,后下一个,CLK,重计数。,改变计数值是计数到1有效或,GATE,触发有效。,两种启动,,自动重计数。,偶计数:,N/2,高,,N/2,低。,奇计数:(,N+1)/2,高,(,N-1)/2,低,,当,OUT=0,GATE=0,OUT,停止计数,,GATE,后下一个,CLK,重计数。,改变计数值是计数到0有效或,GATE,触发有效。,4.2.3,3.,工作方式与时序(方式2、方式3),19,(1)82,C54,写操作,先写控制字,后写计数值,控制字确定写低/高8位,然后送计数初始值低/高8位,16位数先低后高,在计数过程中可按控制字重写计数值,计数值,CRCECE,减1,初始化顺序灵活,先写3个,CNT,的控制字,再写3个,CNT,的计数值;,写一个,CNT,的控制字,再写该,CNT,的计数值 ,所有计数器初始化,82,C54,读写操作,下一,CLK,再下一,CLK,20,82,C54,读写操作,(2)82,C54,读操作,只能读计数值,不能读控制字,按控制字格式读,16位计数值先低后高读,先停止计数,后用,IN,读,GATE=0,或停止,CLK,输入,先锁存计数值,后用,IN,读,方式控制字,SC,1,SC,0,RW,1,RW,0,M,2,M,1,M,0,BCD,0010 0 0 x x x x,00H、40H、 80H,锁存,CNT,0,、CNT,1,、CNT,2,计数值用,IN,读。,读回命令 1 1 0 0 1/0 1/0 1/0 0,21,82,C54,工作方式比较,方式,启动条件,重复条件,改变计数值,0,写计数值,写计数值,写计数值后下一个,CLK,立即有效,1,GATE,上升沿,GATE,触发,GATE,触发后有效,2,写计数值/,GATE,连续计数,计数到1后有效,3,写计数值/,GATE,连续计数,GATE,触发/计数到0后有效,4,写计数值,写计数值,写计数值后下一个,CLK,立即有效,5,GATE,上升沿,GATE,触发,GATE,触发后有效,22,典型计数器定时器比较,计数器/定时器,个数,位数,时钟(,MHz),计数制,中断功能,输出,Z80-CTC,Z80A-CTC,Z80B-CTC,4,8,2.5,4,6(内),B,优先链、向量,频率可变,8253-,PIC,8254-PIC,8254-2-PIC,3,16,2,5,10(外,),B/BCD,无、可编程,频变、方波、单脉冲、软硬触发,HC6810-PIM,MC68A40,ML68B40,3,16,1,1.5,2,(内、外,),B,编程、查询,单脉冲、方波、各种占空比脉冲、输出可屏蔽、可进行频率比较和脉冲宽度的测量,23,4.2.4 可编程定时器/计数器的应用,1.8254在系统中的连接,24,2.8254初始化编程,;对,CNT0,初始化,MOV AL,36H ;CNT0,控制字,OUT 43H,AL ;,写入控制字寄存器,MOV AL,0 ;,计数器初值为65536,OUT 40H,AL ;,写入初值低位,OUT 40H,AL ;,写入初值高位,;CNT1,初始化,MOV AL,54H ;CNT1,控制字,OUT 43H,AL ;,MOV AL,18 ;,计数器初值,OUT 41H,AL ;,对应16.12,us,;CNT2,初始化并让扬声器发声,MOV AL, 0B6H ; CNT2,控制字,OUT 43H, AL;,MOV AX, 0533H ;,计数器初值,OUT 42H, AL;,MOV AL, AH;,对应896,Hz,的发声频率,OUT 42H, AL;,IN AL, 61H;,取8255,PB,口,MOV AH, AL;,保护,OR AL, 03;,设,PB1=PB0=1,OUT A1H, AL;,使扬声器发声,.,MOV AL, AH;,恢复8255,PB,口,OUT 61H, AL;,25,2.分频器设计,用8254(地址40,H43H),将5,MHz,的脉冲变为1,Hz,的脉冲。,初值=,f,CLK,/f,OUT,=510,6,65536,,怎么办?,需要2个,CNT,级联,,CNT,0,采用方式3产生连续分频方波,做,CNT,1,的,CLK,CNT,1,采用方式2产生1,Hz,脉冲。两个,CNT,的,GATE,统一控制。,应用举例,26,CLK0,GATE0,OUT0,CLK1,GATE1,OUT1,CLK2,GATE2,OUT2,D0D7,A1,A0,RD,WR,CS,5,MHz,1,Hz,MOV AL,00110111B;T/C,0,OUT,43H,,AL,MOV AX, 5000H,OUT,40H,,AL,MOV AL, AH,OUT,40H,,AL,MOV AL,01110101B;T/C,1,MOV AX, 1000H,OUT,41H,,AL,MOV AL, AH,OUT,41H,,AL,27,应用举例,某产品的包装流水线中,一个包装箱能装24罐饮料。装箱时希望流水线上每通过24罐饮料,流水线要停4秒以等待包装箱封口,然后继续通过下一箱的24罐。流水线就是这样周而复始的运作。试利用一片8254来完成流水线控制中的定时和计数功能。假设8254的端口地址为8,CH8FH,,采用的时钟频率是2,KHz。,3.包装流水线控制,28,思路,:用8254的计数通道1作为计数器,用于24个罐的计数;计数通道2作为定时器,定时为4,S。,当计数通道1的,OUT,脚出现0到1的跳变的时候,将启动计数通道2开始定时,而计数通道2定时阶段将控制计数通道1停止计数,只有其定时结束并停止定时阶段才可再次启动计数通道1开始计数。,计数通道1工作在方式2,计数初值24,计数通道2工作在方式1,计数初值8000,CLK0,GATE0,OUT0,CLK1,GATE1,OUT1,CLK2,GATE2,OUT2,D0D7,A1,A0,RD,WR,CS,流水线信号,f,CLK,控制流水线停和运行的信号,29,;初始化程序,;计数通道1初始化,MOVAL,01010100B,OUT8FH,AL,MOVAL,24,OUT8DH,AL,;,初始化计数通道2,MOVAL,10110010B,OUT8F,AL,MOVAX,8000,OUT8EH,AL,MOVAL,AH,OUT8EH,AL,30,4.3 82,C55 PPI,4.3.1 8255的功能和结构,31,A1,A0,RD,WR,CS,功能,0,0,0,1,0,端口,A-,数据总线,输入,0,1,0,1,0,端口,B-,数据总线,1,0,0,1,0,端口,C-,数据总线,0,0,1,0,0,数据总线,-,端口,A,输出,0,1,1,0,0,数据总线,-,端口,B,1,0,1,0,0,数据总线,-,端口,C,1,1,1,0,0,数据总线,-,控制字寄存器,1,数据总线为第三态,断开,1,1,0,1,0,非法状态,1,1,0,数据总线为第三态,82,C55,端口的选择,32,1、8255控制字,(1)方式控制字,4.3.2 8255控制字及工作方式,33,(2),C,口位设置字,4.3.2 8255控制字及工作方式,34,2、8255工作方式,(1)方式0,直接,I/O,方式,状态驱动,I/O,接口,仅,I/O、,无联络信号。,2个8位端口,2个4位端口;,任一端口都可,I/O,输入输出,,,输出有锁存,输入缓冲,不能同时,I/O,。,(2)方式1,选通,I/O,方式,中断驱动,I/O,接口,A,组:,PA7PA0,数据,PC5PC3,控制,B,组:,PB7PB0,数据,PC2PC0,控制,PC7PC6,方式0的,I/O,4.3.2 8255控制字及工作方式,35,方式1输入,4.3.2 8255控制字及工作方式,36,方式1输出,4.3.2 8255控制字及工作方式,37,(3)方式 2,A,口双向选通传送,,I/O,口均锁存,中断和查询方式。,A,口双向,,PC,7,PC,3,作联络,,PC,2,PC,0,方式0的,I/O,或,B,口方式1联络,A,口方式2时,,B,组可以工作于方式0,,PB,7,PB,0,、PC,2,PC,0,作,I/O,B,组可以工作于方式1的,I/O,PC,2,PC,0,作联络信号,4.3.2 8255控制字及工作方式,38,82,C55,的三个端口、三种工作方式可以相互组合,其数据输入、输出以及控制联络信号如下。,39,82C55,的状态字,82,C55,通过读端口,C,的状态可以了解,3,个端口在三种不同的工作方式下的状态,如同工作方式的组合一样,工作状态也是组合的。,40,82,C55A,的应用举例,以甲乙两台微机并行通信为例。,双方端口地址设定为:300,H303H,发送、接受数据长度为1,KB,,数据存放起点甲机为:0030:0000,H;,乙机为:0040:0000,H。,41,MOV DX, 303H,MOV AL, 10100000B,OUT DX, AL,MOV AL, 0DH,OUT DX, AL,MOV AX, 030H,MOV ES, AX,MOV BX, 00H,MOV CX, 3FFH,MOV DX, 300H,MOV AL, ES:BX,OUT DX, AL,INC BX,DEC CX,L:MOV DX, 302H,IN AL, DX,AND AL, 08H,JZ L,MOV DX, 300H,MOV AL, ES:BX,OUT DX,AL,INC BX,DEC CX,JNZ L,MOV AX, 4C00H,INT 21H,甲机发送程序,42,乙机接收程序,MOV DX, 303H,MOV AL, 10011000B,OUT DX, AL,MOV AL, 01H,OUT DX, AL,MOV AX, 040H,MOV ES, AX,MOV BX, 00H,MOV CX, 3FFH,L1:MOV DX, 302H,IN AL, DX,AND AL, 10H,JNZ L1,MOV DX,300H,IN AL, DX,MOV ES:BX, AL,MOV DX, 303H,MOV AL, 00H,OUT DX, AL,NOP,NOP,MOV AL, 01H,OUT DX, AL,INC BX,DEC CX,JNZ L1,MOV AX, 4C00H,INT 21H,43,4.4 8250/16450,UART,串行通信,是将数据的各个位一位一位地,通过单条1位宽的传输线按顺序分时传送,即通信双方一次传输一个二进制位。串行通信与并行通信是两种基本的数据通信方式。,发送方在发送前要将并行数据转成串行数据,接收方接收后要完成串行数据到并行数据的转换。,4.4.1 串行通信概述,44,(1) 异步串行通信, 发收双方允许没有共同时钟,但频率必须一致,双方同步方法是在字符格式中设置起始位和停止位,称为起止同步控制方式。, 以字符作为数据传输单位,字符间是异步的,同一字符内是同步的。,传输格式,ASYNCASYNChronous Communications,4.4.1,1.同步通信与异步通信,45,(2) 同步串行通信, 发收双方使用同一时钟源,同步字符间和字符内各位用同步字符或同步信号进行同步:软件和硬件同步方式。, 面向字符的通信规程,BSCBinary Synchronous Communication IBM,字符流,BISYNBinary SYNchronous Communication IBM,SYNC SYNC SOH,标题,STX,数据块,ETB/ETX CRC,1,CRC,2,同步字符 序始符 文始符 组终符/文终符,数据透明:能将特殊字符当作数据字符处理,利用12个转义字符,DLE(Data Link Escape),1.同步通信与异步通信,4.4.1,46,(2) 同步串行通信(续), 面向比特的通信规程,位流,SDLCSynchronous Data Link Control IBM,HDLCHighLevel Data Link Control ISO,ADCCPAdvanced Data Communications Procedure ANSI,01111110,A,场,C,场,I,场,FC,场 01111110,标志 地址 控制 信息,CRC,1,CRC,2,标志,没有传输控制字符,用某些比特组合来实现传输控制,每帧数据,可以是任意位,即不是字符的整数倍。,“0” 比特的插入/删除技术 0 1 1 1 1 1 0 1 0,异常结束字符,1.同步通信与异步通信,4.4.1,47,单工(,Simplex),单向传送,发收固定,半双工(,Halfduplex),单线,非同时双向,全双工(,Fullduplex),双线,同时双向,A,B,B,A,B,A,2.工作方式,4.4.1,48,基波传输,利用数字信号直接进行近距离传输。由于线路电阻、电感、电容、漏电电导及漏感分布参数的影响,矩形波会发生畸变和延迟,所以基带传输速率与距离成反比关系。,载波传输,利用调制器可以将数字信号调制成模拟信号,能够进行远距离传输,然后再用解调器把模拟信号变换为数字信号。调制常用的方法有调幅、调频和调相,利用幅移键控,ASK,、,频移键控,FSK,和相移键控,PSK,使正弦波的幅值、频率和相位随着数字信号,1,和,0,变化。,3.基波传输和载波传输,4.4.1,49,数字传输率,,又称比特率,为单位时间内传送的二进制位数,单位是,b/s,,,用,C,表示。,调制速率,,又称波特率,为单位时间内信号(或线路)状态变化数量,单位是,baud,,,用,B,表示。,当用,N,表示调制信号(或线路)状态数,比特率与波特率的关系为,C=Blog,2,N,。,若单位时间内调制或解调,1,个信号(,2,种状态),则两种速率在数值上是相等的。,调制1个信号2种状态:,Log,2,2=1,C=B,调制3个信号8种状态:,C=B,Log,2,8=3B,Example: C=1200b/s ,B=12003=400 baud,4.数据传输速率和调制速率,4.4.1,50,时分多路复用,TDM(Time Division Multiplexing),,就是将一条物理传输线路按时间分成若干时间片轮换地为多个信号所占用,每个时间片由复用的一个信号占用。,频分多路复用,FDM(Frequency Division Multiplexing),就是利用频率调制原理,将要同时传送的多个信号进行频谱搬移,使它们互不重叠地占据信道频带的不同频率段,然后经发送器从同一信道上同时或不同时地发送出去。,计算机串行数据通信及其接口中使用时分多路复用系统。,5 .信道复用,4.4.1,51,4.4.2,RS-232,串行接口标准(,EIA),RS-232,是与,CCITT,的系列建议基本相似的数据终端设备,DTE,和数据通信设备,DCE,之间的接口。,按位串行传输的机械、电气、功能和规程特性。,DTE,与,DCE,之间的接口(,Computer,与,Modem),1.,机械规程,R,S-232,使用,25,针,D,型插头座,DB-25,。,其它使用,DB-9,或,DB-15,的插头座可用连接器转换,。,52,主信道15线,辅信道及未定义10线,如,P185,表4.6,2.功能特性,引脚1,2,3,4,5,6,7,8,20,22,23用于异步通信,4.4.2,53,+3,-3,输入,输出,+3,15,V,H,-15,-3,V,L,+5,15,V,H,-15,-5,V,H,“,0,”,“,1,”,逻辑0,逻辑1,RS-232,按负逻辑工作,逻辑0为+3,V,或+5,V,到+15,V,之间的任一电压,逻辑1为-3,V,或-5,V,到-15,V,之间的任一电压。,RS-232,使用的,EIA,电平与计算机使用的,TTL,电平需要用集成电路芯片或分立元件电路进行转换。,3.电气特性,4.4.2,54,(1)计算机通过,RS-232,接口与,Modem,连接,4.规程特性和连接方式,4.4.2,55,(2)两台,DTE,设备的正规连接;,4.规程特性和连接方式,4.4.2,56,(3)两台,DTE,设备的简单连接,4.规程特性和连接方式,4.4.2,57,4.4.3 8250/16450的结构及功能,1.8250的引脚,除,Vcc,和,GND,外,其他信号可分成对系统和对通信设备,58,2.8250的内部结构,4.4.3,59,通过跳线,COM1:3F8H3FFH、IRQ4(,如,INT 0CH),选择串口,COM2:2F8H2FFH、IRQ3(,如,INT 0BH),地址信号,A2A1A0,标记位,DLAB,COM1/COM2,地址,寄存器,000,0,3,F8/2F8,THR/RBR,000,1,3,F8/2F8,除数锁存器低字节(,DLL),001,1,3,F9/2F9,除数锁存器高字节(,DLH,),001,0,3,F9/2F9,中断允许寄存器,010,x,3,FA/2FA,中断识别寄存器,011,x,3,FB/2FB,线路控制寄存器,100,x,3,FC/2FC,Modem,控制器,101,x,3,FD/2FD,线路状态寄存器,110,x,3,FE/2FE,Modem,状态寄存器,111,x,3,FF/2FF,不用,60,2 8250的内部寄存器及编程,(1) 线路控制与状态,LCR,串行通信数据格式,,W/R,4.4.3,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,DLAB,Set break,SPB,Stick Parity,EPS,PEN,STB,WLS,1,WLS,0,0,RBR,0-正常,0-无,0-奇,0-无,0 1位,00,5位,THR,1-间断,1-有,1-偶,1-有,1 1.5位,01,6位,IER,逻辑 0,XX0,无奇偶,2位,10,7位,1,DLL,低电平,001 奇,6、7、8,11,8位,DLH,中止符,011 偶,位长,101 附加位为1,111 附加位为0,61,LSR,串行数据收发状态,,R,/W(D,6,除外),D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,TSRE,THRE,BI,FE,PE,OE,DR,0,不用位,0:,TSR THR,1:TSR,数据发送完,0:THRCPU,1:TSR THR,1:接收的空号大于1字符时间,1:停止位为0或未取到奇偶位,1:奇偶错,0:未错,读,LSR,1:,RBR,中数据未读,被冲,0:读,LSR,1:,RBR RSR,LSR,0, CPU,0:CPU RBR,LSR,0, CPU,只读位,THRE=1IER,1,=1,发送中断,(,BIFE PE OE=1) IER,2,=1,接收线路状态中断,LSR,0,=1 IER,0,=1,接收数据就绪中断,2 8250的内部寄存器及编程,4.4.3,62,2 8250的内部寄存器及编程,(2) 波特率控制,除数=,工作频率,16波特率,=,1.8432,MHz,16波特率,见对照表,置,LCR71,(3F9H) ,除数高8位,(3F8H) ,除数低8位,设置,LSR (DLAB=0),4.4.3,63,2 8250的内部寄存器及编程,(3),Modem,控制与状态, MCR W,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,0,0,0,LOOP,OUT2,OUT1,RTS,DTR,不用位,0:正常,1: ,L,1: ,L,1: ,L,1: ,L,1:回送,0: ,H,0: ,H,0: ,H,0: ,H,S,OUT,为高,,S,IN,断开,RSRTSR,RLSD,RI,CTS,DSR,此4位中任一位的改变引起,RLSD、,RI、,CTS、,RSR,置1,在,IER3=1,时,可产生,Modem,状态变化中断,4.4.3,64,在回送方式下,8250的发送、接收和,Modem,的中断仍然工作,但,Modem,中断源为,MCR,低4位、非状态输入端,并受,IER,控制。改变,MCR,低4位,可产生,Modem,变化中断。,8250中断系统测试方法:向,LSR,低6位、,MSR,低4位写入适当值(写1),中断允许时,可产生中断。,Loop,方式返回正常工作时,重新编程8250,并将,MCR,置成全0。,2 8250的内部寄存器及编程,4.4.3,65, MSR R/W,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,RLSD,RI,DSR,CTS,RLSD,RI,RSR,CTS,1,1,1,1,1,1,1,1,=,L,=,L,=L,=L,1:,上次读后输入状态发生了变化,RI=1,Modem,上,RI,信号由“1”(接通)变为“0”(断开),0:,无变化/读时复位,当,IER,3,=1,时,任一位为1、产生,Modem,状态变化中断,4.4.3,2 8250的内部寄存器及编程,66, IER DLAB=0 W/R,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,0,0,0,0,Modem,状态变化,接收数据错,THRE,接收数据就绪,1,允许中断 0禁止中断,优先级,四,一,三,二,2 8250的内部寄存器及编程,(4)中断允许与标识,4.4.3,67, IIR R,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,0 有中断,1,无中断,0,0,0,0,0,ID,1,ID,0,IP,优先级,中断复位,Ins 8250,及异步通信卡存在标识,0,0,0,最低,Modem,状态变化,读,MSR,0,1,0,次低,THRE,读,IIR,写,THR,1,0,0,次高,DR,读,RBR,1,1,0,最高,BI/FE/PE/OE,读,LSR,4.4.3,2 8250的内部寄存器及编程,68, RBR、RSR DLAB=0,只读,MSB,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,LSB,串行接收第1位数据,S,IN,停止 奇偶 数据 起始,RSR,奇偶校验,RBR,CPU,LSR.DR=1 IER,0,=1 INTRPT=1 LSR.DR=0,D,4,D,3,D,2,D,1,为0,MCR.OUT,2,=1 IF=1,(5)数据收发,4.4.3,数据,数据,69,THR、TSR DLAB=0,只写,数据,数据,停止 奇偶 数据 起始,THRE=0,THRE=1,IF=1,IRE,1,=1,MCR.OUT2=1,INTRPT=1,MSB,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,LSB,串行发送第1位数据,CPU,THR,TSR,S,OUT,(5)数据收发,70,测试8250/适配器存在?,IIR,高5位为全0。, 设置波特率除数:,LCR.DLAB=1,DLL,和,DLM,。,设置通道线路控制:,LCR.DLAB=0,LCR,各位。,设置,Modem,控制:,MCR,中,DTR、RTS、OUT1、OUT2 (,中断输出),LOOP,。,设置中断允许:,LCR.DLAB=0,IER,。,(6)8250初始化,4.4.3,71,(7)采用中断方式的异步通信驱动程序编程要点,修改中断向量表中,COM,1,/COM,2,对应的0,CH/0DH,的向量指向中断程序,初始化8250:置,IER,相应位,,MCR.OUT,2,=1 =0 WPRPT,信号能送到8259的,IR,3,或,IR,4,根据通信规程,设置数据帧格式;根据波特率设置分频除数,开放异步中断:清除8259,OCW,中 的,D,3,或,D,4,位允许,IR,3,或,IR,4,上请求,中断初始化,中断主程序(根据应用自行编制,),中断子程序,辨别发生中断的中断源:读,IIR,,根据其中,D2D1D0,和状态转入相应子程序。,72, 中断处理:,IIR,的,D,2,D,1,D,0,表示,ID,1,、,ID,2,、,IP,,,当,D,2,D,1,D,0,110,,,接收数据出错,读,LSR,中,D,4,D,3,D,2,D,1,,,判断是间断还是何种错误,转相应处理子程序。,D,2,D,1,D,0,100,,,接收数据就绪,从,RBR,中读数据存接收缓冲区。,D,2,D,1,D,0,010,,,发送保持寄存器空,从发送缓冲区取数据送,THR,。,D,2,D,1,D,0,000,,,Modem,状态变化,读,MSR,中,D,3,D,2,D,1,D,0,,,判断是哪些,Modem,引脚改变了状态,转相应处理子程序。,判断有无尚未处理的中断请求:每种中断源的中断处理完之后,再次读取,IIR,的,D,2,D,1,D,0,位,,D,0,0,,,根据,D,2,D,1,转入相应子程序;若,D,0,1,,,说明,8250,所有中断处理结束,对,8259,发,EOI,命令返回被中断的程序。,4.4.3,中断子程序,73,3 8250/16450的编程,两台微机通过各自的异步通信口,COM1,按三线连接法通信,通信波特率为2400。,1、初始化程序,MOV DX, 3FBH,MOV AL, 80H,OUT DX, AL,MOV DX, 3F9H,MOV AL, 0,OUT DX, AL,MOV DX, 3F8H,MOV AL, 30H,OUT DX, AL,MOV DX, 3FBH,MOV AL, 1AH ;,数据长7位,,1个停,OUT DX, AL ;,止位。 偶校验,MOV DX, 3FCH,MOV AL, 03H,OUT DX, AL,MOV DX, 3F9H,MOV AL, 0,OUT DX, AL,74,2、通信工作程序,用查询方式进行通信,KEEP-TRY:MOV DX, 3FDH,IN AL, DX,TEST AL, 1EH,JNZ ERROR-ROUTINE,TEST AL, 1,JNZ RECEIVE,TEST AL, 20H,JZ KEEP-TRY,MOV DX, 3F8H,MOV AL, CL,OUT DX, AL,JMP SHORT KEEP-TRY,RECEIVE:MOV DX, 3F8H,IN AL, DX,75,3、综合举例,在,IBM PC,机上按查询方式编写发送程序,按中断方式编写接收程序。该程序能连续符号“*”从串口,COM1,发送出去并在,CRT,上显示;同时能把从串口,COM1,上接收到的字符显示在,CRT,上显示出错标志“#”,START:CLI,MOV AX, 0,MOV ES, AX,MOV DI, 4*12,MOV AX, OFFSET PRINT,CLD,STOSW,MOV AX, CS,STOSW,IN AL, 21H,AND AL, 0EFH,OUT 21H, AL,MOV DX, 3F8H,MOV AL, 0CH,OUT DX, AL,MOV AL, 0,76,OUT DX, AL,MOV AL, 0BH,MOV DX, 3F8H,OUT DX, AL,MOV DX, 3FCH,MOV AL, 0BH,OUT DX, AL,MOV DX, 3F9H,MOV AL, 01H,OUT DX, AL,STI,TR:MOV DX, 3FDH,IN AL, DX,TEST AL, 20H,JZ TR,MOV AL, *,MOV DX, 3F8H,OUT DX, AL,MOV AH, 02,MOV DL,AL,INT 21H,JMP TR,77,RINTPROC,STI,PUSH DX,PUSH AX,MOV DX, 3FDH,IN AL, DX,TEST AL, 1EH,JNZ RERR,MOV DX, 3F8H,IN AL, DX,MOV DL, AL,MOV AH,02,INT 21H,REND:MOV AL, 20H,OUT 20H, AL,POP AX,POP DX,IRET,PERR:MOV DX, 3F8H,IN AL, DX,MOV DL,#,MOV AH, 2,INT 21H,JMP REND,RINT ENDP,78,作 业 题,教材203页:,4.11,1.12,4.13,4.15,4.16,4.17,4.18。,79,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!