现代微机原理与接口技术.ppt

上传人:ga****84 文档编号:323238 上传时间:2018-09-22 格式:PPT 页数:87 大小:2.04MB
下载 相关 举报
现代微机原理与接口技术.ppt_第1页
第1页 / 共87页
现代微机原理与接口技术.ppt_第2页
第2页 / 共87页
现代微机原理与接口技术.ppt_第3页
第3页 / 共87页
现代微机原理与接口技术.ppt_第4页
第4页 / 共87页
现代微机原理与接口技术.ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

1、1,第9章 常用外设与通信接口,2,9.1 可编程并行接口芯片82C55,8255具有2个独立的8位I/O口(A口和B口)和2个独立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中,A口具有双向传输功能。8255有3种工作方式,方式0、方式1和方式2,能使用无条件、查询和中断等多种数据传送方式完成CPU与I/O设备之间的数据交换。B口和C口的引脚具有达林顿复合晶体管驱动能力,在1.5V时输出1mA电流,适于作输出端口。C口除用做数据口外,当8255工作在方式1和方式2时,C口的部分引脚作为固定的联络信号线。,9.1

2、.1 8255的基本功能,3,1. 内部结构,9.1.2 8255的内部结构和外部引脚,4,2. 外部引脚,5,8255的端口与操作选择表,6,9.1.3 8255的工作方式,1方式0,方式0提供两个8位口(A和B)和两个4位口(PC7PC4,PC3PC0),任何一个口都可用做输入或输出(单向),由CPU用简单的I/O指令来进行读/写。 一般用于无条件传送的场合,也可以用做查询式传送。 习惯上将A口和B口作为数据口,将C口作为控制输出和状态输入口。,7,8255A方式0输入时序和参数说明,8,8255A方式0输出时序和参数说明,9,2方式l (A口和B口有此方式,单向)(1)方式l的输入,A口

3、和B口方式l的输入组态,10,INTE为中断允许位,对应PC口寄存器(状态字)的D4位(INTEA)和D2位 (INTEB) ,可通过对PC口按位写方法设置;,PC2、PC4引脚作用:用作锁存数据口数据; 中断条件:STB#(引脚)=1(无效),IBF=1、INTE=1; PC6、7可作为数据线使用。,11,12,方式1下的输入过程:,13,(2)方式1的输出,8255方式1输出组态,14,INTE为中断允许位,对应PC口寄存器(状态字)的D6位(INTEA)和D2位 (INTEB) ,可通过对PC口按位写方法设置;,15,16,方式1下的输出过程:,17,3方式2,8255方式2组态,双向I

4、/O,只有A口有此方式,18,9.1.4 8255的控制字与初始化编程,1工作方式控制字(写,A1A011 ),8255工作方式控制字,19,例9.1 某系统要求使用8255的A口工作于方式1作输入,B口工作于方式0作输出,C口上半部输入,下半部输出。8255端口地址为60H-63H。, 控制字为:10111000B=0B8H 初始化程序为: MOVAL,0B8H OUT63H,AL,20,2C口按位置/复位控制字(写,A1A011 ),C口按位置/复位控制字,例9.2如上例,若A口工作于方式1作输入,要使用中断传送方式,则应当写PC4的按位置位字: MOVAL,00001001B OUT63

5、H,AL,21, 方式1下8255状态字中INTE位的置位和复位, 若禁止PA口输入中断请求 MOV DX,303H ;8255命令口 MOV AL,00001000B ;置PC4=0,禁止中断请求 OUT DX,AL, 若允许PA口输入中断请求 MOV DX,303H ;8255命令口 MOV AL,00001001B ;置PC4=1,允许中断请求 OUT DX,AL, 若允许PA口输出中断请求 MOV DX,303H ;8255命令口 MOV AL,00001101B ;置PC6=1,允许中断请求 OUT DX,AL,22, 若允许PB口输入中断请求 MOV DX,303H ;8255命令

6、口 MOV AL,00000101B ;置PC2=1,允许中断请求 OUT DX,AL, 若禁止PB口输入中断请求 MOV DX,303H ;8255命令口 MOV AL,00000100B ;置PC2=0,禁止中断请求 OUT DX,AL, 若允许PB口输出中断请求 MOV DX,303H ;8255命令口 MOV AL,00000101B ;置PC2=1,允许中断请求 OUT DX,AL,23,例9.3下图采用一个8255芯片和软盘控制器相连,箭头标明了I/O的方向,根据该图,试写出8255的初始化程序。设8255端口地址为0300-0303H。,8255用作软盘基本接口,24, A口工作

7、在方式2,PC4-PC7作应答联络信号线,PC3用作A组中断请求,B口和PC0-PC2作输出,工作在方式0。 工作方式控制字为:11XXX000B, 初始化程序为: MOVDX,303H MOVAL,0C0H OUTDX,AL MOVAL,00001001B OUTDX,AL ;PC4置位,开放输入中断 MOVAL,00001101B OUTDX,AL ;PC6置位,开放输出中断,25,例9.4某应用系统以8255A作为接口,采集一组开关S7S0 的状态,然后通过一组发光二极管LED7LED0显示开关状态,(Si闭合,则对应LEDi亮,Si断开,则对应的LEDi灭)电路连接如下图,已知8255

8、A、B两组均工作在方式0。,写出8255四个端口的地址。写出8255工作方式控制字。写出实现给定功能的汇编语言程序。,26,LED7,LED0,S7,S0,PB7,PB0,PA7,PB0,8255A,D7D0,D7D0,WR#,RD#,IOW#,IOR#,Y0 #,G1,G2A#,G2B#,C,B,A,74LS138,CS#,A9,AEN,&,A8,A7,A6,A5,A4,A3,A2,A1,A0,A1,A0,27,答:,A口、B口、C口和控制口的地址分别是320H、321H、322H和323H。A口工作在方式0输出,B口工作在方式0输入,C口空闲,所以其控制字是10000010b82H程序如下

9、:,MOVAL, 82H;置方式字MOVDX, 323H;置控制端口地址OUTDX, ALL1:MOVDX, 321H;置B口地址INAL, DX;读开关状态(1断,0通)NOTAL;状态取反MOVDX, 320H;置A口地址OUTDX, AL;输出(1亮,0灭)JMPL1,28,思考题:如果上题要求修改成:不用查询方式,而是每50ms来一次中断,在中断中读B口,输出A口,请问电路和程序要怎么改动?假设系统提供一个2KHz的脉冲。,29,例9.5 假设利用8255的A口方式0与打印机相连,将内存缓冲区BUFF中的字符打印输出。,30,打印机时序,返回,31,8255与打印机接口,32,DATA

10、 SEGMENTBUFF DB HELLO,WORLD!,13,10,$PORTA EQU60HPORTB EQU61HPORTC EQU62HPORTCN EQU63HDATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUFFMOVAL,88H;8255初始化,A口方式0输出,C口上半部输入,33,OUTPORTCN,AL ;C口下半部输出 MOVAL,01H ;置位PC0,STB无效 OUTPORTCN,ALWAIT:INAL,PORTC ;读打印机状态,若“忙”则等待 TESTAL

11、,80H JNZWAIT MOVAL,SI CMPAL,$ JZPRINT_OVER,34,OUTPORTA, AL;数据送出MOVAL, 00H ;产生选通信号,打印机接收数据,开始打印。OUT PORTCN,AL MOV AL,01H OUT PORTCN,AL INC SI JMP WAITPRINT_OVER: MOV AH,4CH INT 21HCODE ENDSENDSTART,看图,35,9.2.1 串行通信的基本概念,串行通信是将数据的各个位一位一位地,通过单条1位宽的传输线按顺序分时传送,即通信双方一次传输一个二进制位。串行通信与并行通信是两种基本的数据通信方式。,发送方在发

12、送前要将并行数据转成串行数据,接收方接收后要完成串行数据到并行数据的转换。,1. 串行通信,9.2 串行接口,36,与并行通信相比,串行通信的优势,传输距离长,可达到数千公里,长距离内串行数据传送速率会比并行数据传送速率快,串行通信的通信时钟频率较并行通信容易提高。,抗干扰能力强,串行通信信号间的互相干扰完全可以忽略。,费用低。,37,2. 数据传送方式,单工方式,半双工方式,全双工方式,38,3. 波特率与收/发时钟,波特率:单位时间内传送的二进制数据的位数,以位/秒(b/s)表示,也称为数据位率。它是衡量串行通信速率的重要指标。,收/发时钟直接决定了通信线路上数据传输的速率,对于收/发双方

13、之间数据传输的同步有十分重要的作用。,一般在发送端是由发送时钟的下降沿使送入移位寄存器的数据串行移位输出。而接收端则是在接收时钟的上升沿作用下将传输线上的数据逐位打入移位寄存器。,39,为了提高串行通信的抗干扰能力,往往用多个时钟调制一个二进制数据,调制一个二进制数据的收/发时钟个数称为波特率系数n。,收/发时钟频率与波特率之间的关系: 收/发时钟频率=n波特率一般n取1, 16, 32和64等。对于异步通信,常采用n=16;对于同步通信,则必须取n =1。,40,4. 信号调制解调,原因:如果数字信号直接在公用电话网的传输线上传送,高次谐波的衰减会很厉害,从而使信号到了接收端后将发生严重畸变

14、和失真。,解决:发送方使用调制器(Modulator),把要传送的数字信号调制转换为适合在线路上传输的音频模拟信号;接收方则使用解调器(Demodulator)从线路上测出这个模拟信号,并还原成数字信号。,41,调制方法:按照调制技术的不同分为调频(FM)、调幅(AM)和调相(PM)三种,根据传输数字信号的变化规律去调整载波的频率、幅度或相位,42,5. 信道复用,时分多路复用TDM(Time Division Multiplexing),就是将一条物理传输线路按时间分成若干时间片轮换地为多个信号所占用,每个时间片由复用的一个信号占用。,频分多路复用FDM(Frequency Division

15、 Multiplexing)就是利用频率调制原理,将要同时传送的多个信号进行频谱搬移,使它们互不重叠地占据信道频带的不同频率段,然后经发送器从同一信道上同时或不同时地发送出去。,计算机串行数据通信及其接口中使用时分多路复用系统。,43,6. 串行通信基本方式,异步串行通信 在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。然而,一旦传送开始,收/发双方则以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。,44,同步串行通信 数据流中的字符与字符之间和字符内部的位与位之间都同步。同步串行通信是以数据块(字符块)为信

16、息单位传送,而每帧信息包括成百上千个字符,因此传送一旦开始,要求每帧信息内部的每一位都要同步。,45,9.2.2 异步串行通信协议,46,比如ASCII 字符 A, 二进制是0100 0001(8位),它们在起始位和2位停止位之间传送,并使用了1位奇校验位。,Out,47,为了确保异步串行通信传输正确:,1)采用相反极性的起始位和停止位/空闲位提供准确的时间基准,3)接收器在每位的中心采样,以获得最大的收/发时钟频率偏差容限,2)接收器采用比传送波特率更高频率的时钟来控制采样时间,以提高采样的分辨能力和抗干扰能力。,48,例题: 异步传输7位ASCII码,如果需要数据传输速率为240字符/秒,

17、使用1位奇偶校验位和1位停止位,则:1)波特率应该是多少?2)有效数据位传输位是多少?3)传输效率是多少?,答:1)波特率是 (7位数据位+1位起始位+1位校验位+1位停止位)240 =2400b/s2)有效数据位传输位是 :7240=1680b/s3)传输效率是:1680/2400=70%,49,1. 串行通信系统,数据终端设备DTE数据源和目的地,数据通信设备DCE使数据符合线路要求,9.2.3 串行接口RS-232C标准,50,2. 常用的RS-232C信号线,51,3. 常用的RS-232C连接,1)使用MODEM,52,2)不使用MODEM,53,3) 简单连接,4)最简单连接(3线

18、连接),54,4. 电气特性,1) 应保证电平在(515)V之间,对于数据线:逻辑“1” (MARK)= -3V - 15V, 逻辑“0” (SPACE) = +3V+15V对于控制信号:接通状态(ON)即信号有效的电平 = +3V15V断开状态(OUT)即信号无效的电平= - 3 - 15V。,55,2) 必须进行电平转换,RS-232C接口采用的是负逻辑,其逻辑电平与TTL电平不一样,不能兼容。因此,为了实现与TTL电路的连接,必须进行电平转换。 目前可以使用新型电平转换芯片MAX232和MAX232A(高速)双组RS-232C发送/接收器,实现TTL电平与RS-232C电平双向转换。,5

19、6,3) 必须抗共模噪声干扰,RS-232C由于在发送器与接收器之间有公共信号地,不可能使用双端信号,因此共模噪声很容易引入信号系统中,且噪声幅度可高达好几伏,这是迫使RS-232C使用较高传输电压的主要原因。另一个原因是为了补偿传输线上的信号衰减和沿线附加电平的影响。,57,5. 机械特性,1) 连接器,58,59,在通信速率低于20Kb/s时,RS-232C所能直接连接的最大物理距离为15m(50ft)。,2) 电缆长度,使用特制的低电容电缆也能有效地提高电缆长度,可以达到150m(500ft)甚至更多。,RS-232C规定,若不使用MODEM,则码元的畸变要小于4%,驱动器的负载电容应该

20、小于2500pF,则单位(1ft)长度的电容值为NpF的电缆的长度应该是:,60,PC微机异步通信适配器是微机与微机、微机与MODEM及微机与外设之间进行异步通信的接口。其核心是UART。,常见的UART主要有INS8250、PC16450和PC16550。此外,还有带更大缓冲的UART,称为PC16650和PC16750。,9.2.4 异步通信适配器INS8250与PC16550,61,1. INS8250外部引脚,62,1) 并行数据I/O及其控制线,D7D0 8位双向三态数据线。,CS0, CS1和 CS2# 片选线。,ADS# 地址选通线(锁存片选和内部寄存器选择),DISTR和DIS

21、TR#数据输入选通(读寄存器允许),DOSTR和DOSTR#数据输出选通(写寄存器允许),A0, A1和A2 内部寄存器选择。,CSOUT 片选输出。(为高表示该片被选中),DDIS 驱动器禁止。(禁止处理器和8250在数据线上的收发器动作),63,2) 串行数据I/O线,SOUT 串行数据输出。,SIN 串行数据输入。,XTAL1 外部时钟输入端。,XTAL2 基准时钟信号输出端。,BAUDOUT#工作时钟(发送时钟)输出。,F工作时钟=F基准时钟除数寄存器=传送波特率16,RCLK 接收时钟输入。可和BAUDOUT#相接,64,3)和MODEM的握手信号线,RTS#请求发送,输出线。,DS

22、R#数据设备就绪,输入线,DTR#数据终端就绪,输出线。,RI#振铃指示,输入线。,RLSD#接收线路信号检测,输入线。,CTS#清除发送,输入线。,65,4)中断请求,复位输入及其他信号线,INTPRT 中断请求输出。,MR 主复位输入。,OUT1#和OUT2#由用户指定的输出端。MODEM控制寄存器的第二、第三位决定。,66,2.UART内部结构,67,DLAB是线路控制寄存器的D7位。,68,1)线路控制寄存器LCR,D7 D6 D5 D4 D3 D2 D1 D0,WLS0,WLS1,PEN,STB,EPS,SP,SB,DLAB,字符长度选择005位016位107位118位,停止位选择0

23、1位11.5位(D1D0=00) 2位(D1D000),11偶校验01奇校验,附加奇偶标志位选择0不附加1附加1位,中止设置1中止0正常,除数寄存器访问允许0禁止1允许,A2A1A0=011,69,2)线路状态寄存器LSR,D7 D6 D5 D4 D3 D2 D1 D0,DR,OE,FE,PE,BI,THRE,TSRE,接收缓冲区满,接收重叠错,接收奇偶错,接收格式错(无正确的停止位),中止识别标志,发送保持器空,发送移位器空,FIFO中接收数据错误(16550),A2A1A0=101,70,3)发送保持寄存器THR 接收缓冲寄存器RBR,D7 D0,CPU来的8位数据并行进THR,THR,低

24、位到高位串行移位到SOUT引脚输出,D7 D0,接收移位寄存器,发送移位寄存器,RBR,低位到高位从SIN引脚串行移位进来,8位数据并行进CPU,发送方,接收方,DLAB=0,A2A1A0=000,71,4) 波特率除数锁存器,这是一个软件控制的分频器,输出的工作时钟频率为16倍的波特率。,除数寄存器值 = 基准时钟频率(16波特率),INS8250芯片输入的基准时钟频率为1.8432MHz,若波特率为4800b/s,则波特率除数为0018H,DLH中应填00H,DLL中应填18H 。,思考题: 使用INS8250异步传输7位ASCII码,如果需要数据传输速率为240字符/秒,使用1位奇偶校验

25、位和1位停止位,波特率除数锁存器的值是多少?,注意:PC16550的基准时钟一般为18.432MHz。,DLAB=1, A2A1A0=001(高)或000(低),72,5)中断识别寄存器IIR,D7 D6 D5 D4 D3 D2 D1 D0,IP,ID1,ID2,0,未决中断指示0-有1-无,中断类型标识,超时中断0-不超时1-超时,允许64字节FIFO(16750)0-禁止1-允许,FIFO使用指示(16550)01-允许FIFO但不可用11-允许FIFO,A2A1A0=010(读),73,74,6)中断允许寄存器IER,D7 D6 D5 D4 D3 D2 D1 D0,I2E,I1E,I3E

26、,0,类型2中断(接收缓冲器满)1-允许0-屏蔽,类型1中断(发送保持器空)1-允许0-屏蔽,类型3中断(接收出错)1-允许0-屏蔽,进入低功耗模式(16550),进入睡眠模式(16750),DLAB=0,A2A1A0=001,I0E,0,类型0中断(MODEM状态改变)1-运行0-屏蔽,75,7)MODEM控制寄存器MCR,A2A1A0=100,D7 D6 D5 D4 D3 D2 D1 D0,DTR,RTS,OUT1,0,数据终端就绪,请求发送,辅助输出1,自动流量控制(16750),环路检测(内部自循环),OUT2,0,辅助输出2,PC用做中断允许,LOOP,注意这里的OUTi位极性和OU

27、Ti引脚相反。,76,8)MODEM状态寄存器MSR,A2A1A0=110,D7 D6 D5 D4 D3 D2 D1 D0,CTS,DSR,TERI,RLSD,CTS位发生改变,DSR位发生改变,收到“振铃指示”后沿(下降沿),收到“数传机就绪”,收到“清除发送”,RLSD,RI,RLSD位发生改变,CTS,DSR,收到“振铃指示”,收到“接收线载波检测”,77,9)FIFO控制寄存器(FCR),A2A1A0=010(写)16550后才有,D7 D6 D5 D4 D3 D2 D1 D0,允许FIFO缓冲器工作,清除接收FIFO缓冲器,清除发送FIFO缓冲器,允许64字节FIFO(16750),

28、保留,DMA方式选择,接收端中断触发器水平(LSB),接收端中断触发器水平(MSB),78,触发器水平即是指示在中断产生之前,接收缓冲器应该装满多少个字节。,79,常用UART比较,80,3. IA-32微机总的串行接口,1.PC机的串行口,81,4. INS8250初始化,通过写除数寄存器(端口0和端口1)设置波特率通过写线路控制寄存器(端口3)设置通信数据格式。通过写MODEM控制寄存器MCR(端口4)设置MODEM控制字。通过写中断允许寄存器(端口1)设置中断允许控制字。,82,movdx,3fbh;线路控制寄存器地址moval,80houtdx,al;使DLAB=1,以便下面写除数;寄

29、存器movdx,3f8h;低位除数寄存器moval,0ch;9600波特率的除数低8位outdx,almoval,00incdx;高位除数寄存器outdx,al,83,mov al, 00011011b ;偶校验、1位停止位;8位数据位mov dx,3fbh;线路控制寄存器地址out dx,almov al,03h;数据终端就绪、请求发送mov dx,3fch;MODEM控制寄存器地址out dx,almov al,0;禁止中断mov dx,3f9h;中断允许寄存器地址out dx,al,84,1. 查询方式发送,初始化8250,读LSR,D5=1?,发送一个字符,发完?,结束,Y,Y,N,N

30、,9.2.5 查询方式串行通信程序设计,85,2. 查询方式接收,初始化8250,读LSR,D0=1?,接收一个字符,收完?,结束,Y,Y,N,N,有错?,N,Y,错误处理,86,1. 通信中断初始化,修改中断向量,按使用的端口COM1或COM2,接管中断0CH或中断0BH。确定INS8250操作方式,设置中断允许寄存器相应位的允许或禁止,并允许中断操作(置MCR的D3=1)。确定起止式通信协议,设置通信波特率及数据帧传输格式。开放通信中断,对8259A中断控制器的屏蔽寄存器编程(OCW1),允许中断IRQ4或IRQ3。,9.2.6 中断方式串行通信程序设计,87,2. 通信中断服务程序,首先读取中断识别寄存器,判断中断源,然后转向对应的处理子程序。判断中断源,应该按照中断优先级别次序进行。当中断识别寄存器D2D1=11时,表明接收出错中断,需要再读取线路状态寄存器,分析错误原因,再进行错误处理。,可能出现多个中断源同时引发中断。因此,每处理完一种中断源后,应继续读取中断识别寄存器,检测D0是否为“0”,当D0=0时,表明还有未决中断,应该继续分析中断源并进行中断处理。从中断程序返回的条件是中断识别寄存器的D0=1。,

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。