MCS51单片机的输入输出通道接口与中断_第1页
MCS51单片机的输入输出通道接口与中断_第2页
MCS51单片机的输入输出通道接口与中断_第3页
MCS51单片机的输入输出通道接口与中断_第4页
MCS51单片机的输入输出通道接口与中断_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 MCS-51单片机的输入/输出与中断,计算机基本输入/输出接口概述,计算机在实际应用中,程序、数据或从现场 采集到的各种信号要通过输入设备送到计算机中 去处理。计算机处理后的结果或各种控制信号要 输出到输出装置或执行机构,以便显示、打印或 实现各种控制动作。常用的输入装置有键盘和各 种现场采集装置;输出装置有打印机、显示器和 现场执行机构。,输入通道(前向通道):被测对象与单片机联系的信号通道。包括传感器或敏感元件、通道结构、信号调节、A/D转换、电源的配置、抗干扰等。 输出通道(后向通道):单片机与被控对象联系的信号通道。包括功率驱动、干扰的抑制、D/A转换等。,输入/输出通道简介,

2、计算机与外围设备间传送三种信息:数据 信息、状态信息和控制信息。如计算机与打印机 接口时,首先计算机将待打印的字符代码(数据信息)送入电路锁存,同时通过I/O电路送出控制信息启动打印机接收字符代码并打印一行字符。打印完后,打印机要通过I/O电路向计算机发出打印机“空闲”的状态信息,要求计算机再次输出数据。,5,定义 I/O接口是位于系统与外设之间、用来协助完成数据传送和控制任务的逻辑电路。即:把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之间的信息交换。 PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路,不同I/O设备对应I/O接口不同。,I/O接口受CPU控制

3、,I/O设备受I/O接口控制。,为增加通用性,I/O接口电路通常均具有可编程功能。,微机系统的应用与外设接口的设计、选用和连接。,I/O设备种类:有电子式、机械式及其它各种形式。 速度差异:有秒级、毫秒级、微秒级 信号类型:有数字量、模拟量、开关量。 数据的格式有串行、并行等。 因此,外围设备一般不能与计算机直接相连,必 须通过专门的中介电路接口,才能与CPU进行 信息交换。,I/O接口要解决的问题 速度匹配(Buffer) 信号电平和驱动能力(电平转换器、驱动器) 信号形式匹配(A/D、D/A) 信息格式(字节流、块、数据包、帧) 时序匹配(定时关系) 总线隔离(三态门),数据缓冲功能 缓解

4、接口与CPU工作速度的差异,通过接口中数据缓冲寄存器和锁存器实现. 联络功能 通过接口中状态寄存器,了解外设的工作状态. 寻址功能(I/O地址译码与设备选择) 把选中的与总线相接,未选中的与总线隔离(高阻态) 数据转换功能(信号电平与类型的转换) 形式、格式、电平、功率、码制等转换. 中断管理功能 通过接口中设置的中断控制器,实现中断I/O方式下数据传送。,I/O接口的功能,I/O接口电路的分类,按通用性分:专用接口、通用接口。 专用接口:CRT显示控制器、键盘、软盘、DMA控制器等。 通用接口:ISA、PCI接口,串口、并口、USB接口等。 按可编程分:可编程接口、不可编程接口 可编程接口:

5、在不改动硬件的情况下,用户只要修改初始化程序就可以改变接口工作方式。接口灵活性、可扩充性好。 可编程接口电路要用可编程接口芯片设计。常用可编程接口有并口8255、8253,串口8250、8251,中断8259等。 按与外设数据传送方式分:并行I/O接口、串行I/O接口。,I/O接口:用于连接CPU与I/O设备的所有接口统称为I/O接口。,某些通用集成电路芯片可以用作I/O接口, 如74LS373、74LS165等。 更大量的I/O接口芯片是专门为计算机设计 的,如ADC0809、MAX232、8279等。,I/O接口电路应有以下功能: 1)数据缓冲: 2)信号变换: 3)电平转换: 4)传送控

6、制命令和状态信息:,12,I/O接口的主要功能:同解决的问题 速度匹配(Buffer) 信号电平和驱动能力(电平转换器、驱动器) 信号形式匹配(A/D、D/A) 信息格式(字节流、块、数据包、帧) 时序匹配(定时关系) 总线隔离(三态门),14,I/O接口与I/O设备,15,简单的输入接口举例,接口电路图如下:,83FCH 83FFH,译码器,16,锁存器:由D触发器构成 通常一个器件包含8个D触发器 常用芯片:(教材图5.5、图5.6) 74LS273 74LS374(具有三态输出的锁存器,内部结构见图5.8) 应用例子:发光二极管接口,简单的输出接口举例,译 码 器,=1,=1,. . .

7、,. . .,. . .,+5V,R,D0 D7,CP,Q0,Q7,. . .,D0D7,A0A15,IOW#,74LS273,R,输入/输出的编址方式,1I/O接口与存储器统一编址 2I/O接口单独编址,18,数据传送方式,程序控制下的数据传送通过CPU执行程序中的I/O指令来完成传送,又分为:无条件传送、查询传送、中断传送 直接存储器存取(DMA)传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送 I/O处理机CPU委托专门的I/O处理机来管理外设,完成传送和相应的数据处理,19,通常分类的I/O传送方式,主机与外设之

8、间数据传送的控制方式有以下四种: 无条件传送 查询式传送 中断方式传送 直接存储器存取(DMA, Direct Memory Access),输入/输出的工作方式,1、无条件传送方式 2、查询传送方式 3中断传送方式 4.直接数据信道传送(DMA)方式,21,无条件传送方式,适用于外设总是处于准备好状态 以下外设可采用无条件传送方式: 开关 发光器件(如发光二极管、7段数码管、灯泡等) 继电器 步进电机 优点:软件及硬件接口简单 缺点:仅适用于简单外设,适应范围较窄,22,例:无条件输入,MOV DX, 288H INAL, DX,0288H,23,例:无条件输入,MOV DX, 288H I

9、NAL, DX,74LS244,+5V,10K x 8,G1 G2,CS,RD,: : :,D7,D0,K0,K7,24,例:无条件输出,MOV DX, 288H MOV AL, BX OUT DX, AL,0288H,25,例:无条件输出,MOV DX, 288H MOV AL, BX OUT DX, AL,+5V,74LS373,300 x 8,LE OE,CS,WR,: : :,D7,D0,图5-3 查询方式输入接口电路,图54如何编程读取输入装置数据,MOV R0,#0FEH ;指向状态端口 TEST: MOVX A,R0 ;读取状态信息 JNB ACC.0,TEST ;输入装置准备好

10、吗? ;D0=0继续等待 DEC R0 ;数据准备好,指向数据端口 MOVX A,R0;读入数据,MCS-51系列单片机输入/输出端口控制,MCS-51系列单片机输入/输出概述 MCS-51系列单片机有4个8位双向并行输入/输 出(I/O)端口:P0、P1、P2和P3,共32位,P0口 为三态双向口,可驱动8个TTL电路,P1、P2、P3 口为准双向口(作为输入时,口线被拉成高电平)。 此四个端口都可以做为单独的输入或输出使 用,即每一支I/O脚位都可以做输入用,也可以做 为输出使用。当做为输出时,则每一只管脚可位编 程输出高电平“1”或低电平“0”驱动外部电路。,实际应用中,P0口用于输出外

11、部存储器 的低8位地址,并分时复用作为与外部存储 器连接的数据总线口;P2口用于输出高8位 地址;P3口常用于特殊功能寄存器。只有P1 口是留给用户使用的基本I/O口,供用户使 用。,MCS-51单片机输入输出(I/O)端口编程,P1口既可以做输入端口又可以做输出端口。 在我们所用的实验板中,P1口通过反向驱动电路 ULN2003控制数码管工作。 试根据实验板I/O控制端口原理图,设计通过 89S51单片机的P1口控制二极管发光(要求用软 件延时使其产生动态效果)。根据硬件原理,通 过P1口可控制发光二极管及蜂鸣器工作。I/O口 控制原理图如图5-5所示。,硬件电路分析:,图中反向驱动放大器U

12、LN2003接发光二极 管阴极,发光二极管阳极通过限流电阻接+5V电 源(限流电阻的计算应以发光二极管亮度满足要 求即可。电流小,亮度不够;电流大,耗电、影 响二极管寿命,一般二极管电流为15mA左右)。 J2为3列8行排针,排针的1、4、7、10、13、 16、19接ULN2003的输入,3、6、9、12、15、 18、21、24为排针的中间引脚,2、5、8、11、 14、17、20、23接89S51的P1口。,要由编程控制发光二极管发光,ULN2003必须 输出低电平,而ULN2003的输入必须接89S51的P1 口,才能通过软件编程控制二极管发光,所以应借 助短路环将J2中的(1、2)、

13、(4、5)、(7、8)、 (10、11)、(19、20)短接。 将J15中的(1、2)、(4、5)用短路环短接。 硬件电路检测。线路接好后,用万用表电阻档检 测89S51的P10、P11、P12、P13、P14、P15、P16是 否与ULN2003的输入1、2、3、4、5、6、7接通。若 接通,硬件电路连接正常,若不通,应检查线路硬件 故障,直至接通为止(注意:不能测P10、P11、 P12、P13与ULN2003的输出端),软件编程分析: 1)通过置位指令或字节传送指令使P10P16输出 为“1”时,通过ULN2003输出为“0”,则LED亮、 蜂鸣器叫;当P1口输出为“0”时,LED熄灭、

14、蜂 鸣器停。 2)要让二极管发光,必使P1端口为高电平 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6,或 MOV P1,#7FH,软件延时子程序:入口参数R7、 R6, 出口:参数 无,DELAY:MOVR7,#0FH;2us DELA0:MOVR6,#20H;2us DELA1:NOP;1us DJNZ R6,DELA1;2us DJNZ R7,DELA0;2us RET;2us 软件延时子程序的执行时间计算:晶振选12MHZ 2+2+(1+2)*32+2*15+2=1504 us 若需要其它的延时

15、时间可在上述程序中再加循环层或减 少循环层。,37,接口电路的内部结构,1、 接口硬件,数据线,控制线,状态线,DB,CB,AB,数据输入寄存器 (or 三态门),数据输出寄存器 (锁存器),状态寄存器 (or 三态门),命令寄存器,译码 电路,控制 逻辑,接外设,接主机,38,接口功能,CPU与外设主要有数据、状态和控制信息需要相互交换,从应用角度看内部: 数据寄存器(端口地址) 保存外设给CPU和CPU发往外设的数据 状态寄存器(端口地址) 保存外设或接口电路的状态 控制寄存器(端口地址) 保存CPU给外设或接口电路的命令 (4)接口电路可含有多个端口地址,39,CPU侧引脚信号:,外设侧

16、引脚信号:,内部控制逻辑:,根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。,40,常见接口插槽,PS2鼠标,PS2键盘,千兆网,10/100M网卡,USB,并行口,MIDI/游戏接口,显示器接口,1394,1394a,麦克风/音箱/线入接口,串行口,41,2、 接口软件(设备驱动程序),42,3、接口电路芯片的分类,接口电路通常采用中大规模、超大规模集成电路接口芯片: 通用接口芯片 支持通用的数据I/O和控制的接口芯片 如:并行接口芯片、串行接口芯片等。 面向外设的专用接口芯片 针对某种外设设计接口 如:显示接口电路、磁盘驱动接口电路等。 面向微机系统的专用接口芯

17、片 与CPU和系统配套使用,以增强其总体功能 如:8259A、8237、8253、8251、8255等。,43,4、可编程接口,许多接口电路具有多种功能和工作方式,可以通过编程的方式设定。 接口电路需要与系统物理连接,及编写接口软件。 接口软件: 1、初始化程序段:设定芯片工作方式等 2、数据交换程序段:管理、控制、驱动外设,负责外设和系统间信息交换。,44,I/O端口的编址,接口电路占用的I/O端口的编址可分为两种方式 I/O端口单独编址 I/O地址空间独立于存储地址空间 如INTER系列80X86 I/O端口与存储器统一编址 它们共享一个地址空间 如MCS-51系列单片机,45,I/O端口

18、单独编址,优点: I/O端口的地址空间独立 控制和地址译码电路相对简单 专门的I/O指令使程序清晰易读 缺点: I/O指令没有存储器指令丰富,内存 空间,I/O 空间,FFFFF,0,FFFF,注:80 x86采用I/O端口独立编址,:,:,: :,46,I/O端口与存储器统一编址,优点: 不需要设计专门的I/O指令 I/O数据存取与存储器数据存取同样 缺点: I/O端口占用存储器地址空间 程序易读性差(不易分清访内存、访问外设),内存 部分,I/O 部分,存储器空间,00000,FFFFF,47,I/O地址的译码,I/O地址的译码方法与存储器地址的译码方法一样,但有它的特点: 部分译码时,通

19、常是中间地址线不连接 部分译码也有最低地址线不连接的情况 每个接口电路通常只占用几个I/O地址,这时可以利用基本逻辑门电路进行地址译码 除采用译码器、门电路进行译码外,I/O地址译码还经常采用可编程逻辑器件PLD 为了给系统一定的选择余地,有些接口电路利用比较器、开关或跨接器等进行多组I/O地址的译码,给几个 译码实例,48,逻辑门电路进行I/O地址译码,A9 A8 A7 A6 A5 A2 A4 A3 AEN A1 A0,74LS03,3E7H,49,I/O接口综合应用例子,根据开关状态在7段数码管上显示数字或符号 共阳极7段数码管结构见教材图5.10 用74LS273作为输出接口,把数据送到

20、7段数码管 74LS273的地址假设为F0H 用74LS244作为输入口,读入开关K0K3的状态 74LS244的地址假设为F1H 当开关的状态分别为00001111时,在7段数码管上对应显示0F (7段码表见下页),50,51,O1 I1 O2 I2 O3 I3 O4 I4 #E1,K0K3,+5V,G G2A G2B C B A,1,74LS244,D0 Q0 | Q1 D7 Q2 Q3 Q4 CP Q5 Q6 Q7,a b c d e f g DP,7406,8个 反相器,74LS273,Rx8,1,74LS138,D0D7,IOW#,IOR#,Y0,Y1,F0H = 0000 0000

21、 1111 0000 F1H = 0000 0000 1111 0001,&,1,A7A4,A15A8,A3,A2,A1,A0,D0,D1,D2,D3,译码电路,52,查询传送方式,适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。 CPU在与外设交换数据前必须询问外设状态:“准备好没有?” 对外设的要求:应提供设备状态信息 对接口的要求:需要提供状态端口 优点:软件比较简单 缺点:CPU效率低,数据传送的实时性差, 速度较慢,53,查询方式的流程图,超时?,READY?,与外设进 行数据交换,超时错,读入并测试外设状态,Y,N,Y,N,传送完?,防止死循环,复位计时器,N,Y

22、,注:多个外设时,查询流程见教材图5.15,PK,54,DMA传送方式,无条件传送、查询传送、中断传送这几种方式都是通过CPU执行程序实现的,占用了CPU资源,传送速度慢(实际上是软件传送方式,最大速度约为几十KB/秒)。 为了实现高速外设与内存之间的数据交换,可采用直接存储器存取方式(DMA)。,DMA传送方式通常用来高速传送大批量的数据块。如:,硬盘和软盘I/O;,多处理机和多程序数据块传送; 在图像处理中,对CRT屏幕送数据;,快速数据采集; DRAM的刷新操作。,快速通信通道I/O;,55,DMA传送: 外设 内存 外设直接与存储器进行数据交换 ,CPU不再担当数据传送的任务,而由DM

23、A控制器控制总线(DMAC)进行数据传送。(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。,优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒),56,几个基本概念,总线控制权、mater、slave DMAC编程周期:slave DMAC控制总线进行数据传输周期:master DMA的数据传输形式: 基本的:MEMI/O 扩充的:MEMMEM I/O I/O,57,DMAC控制数据传送, 外设发出DMA请求 DMAC向CPU申请总线 CPU完成当前总线周期后响应,并释放总线控制权 DMAC得到总线控制权,并发出D

24、MA响应信号 由DMAC发出各种控制信号,控制外设与存储器之 间的数据传送 数据传送完后,DMAC撤销HOLD信号 CPU释放HLDA信号,并重新控制总线,58,DMAC的工作过程 1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出“DMA传送请求”信号(DRQ); 2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD,表示希望占用总线; 3)CPU在完成当前总线周期后会立即对HOLD信号进行响应。响应包括两个动作:一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面,CPU向DMA控制器发出“总线响应”信号(HLDA)。 4)

25、DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK;,59,5)DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送; 例如,向I/O接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和AEN信号,即可从外设向内存传送一个字节。 6)DMA控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。,DMA通道 工作过程,60,DMA的三种传送方式: 连续传送(块传送

26、) DMAC申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。 单次传送(每次传送一个字节) 每个DMA周期只传送一个字节就立即释放总线。 按需传送(猝发传送) 只要I/O接口的数据缓冲可用,就进行传送。 (注:I/O接口需要有一定大小的FIFO缓冲),61,数据块传送,62,每次传送一个字节,63,按需传送,64,可编程DMA控制器8237A,8237A是Intel86系列微处理器的配套芯片,可用来接管CPU对总线的控制权,在存储器与高速外设之间建立直接进行数据块传送的高速通路。 8237A必须与一个8位锁存器(8212或其他代用芯片)配套使用,才可形成完整的4通道DM

27、A控制器。各通道可分别完成3种不同的操作: (1) DMA读读存储器送外设。 (2) DMA写读外设写存储器。,65,(3) DMA校验:通道不传送数据,仅完成校验。任一通道进入DMA校验方式时,不产生对存储器和I/O设备的读/写控制信号,但是仍保持对系统总线的控制权,并且每一个DMA周期都将响应外部设备的DMA请求,发出DACKi信号,外设可使用这一响应信号对所得到的数据进行某种校验操作,因此,DMA校验操作并不是由8237A本身完成的。 8237A可处于两种不同的工作状态,在8237A未取得总线控制权以前,CPU处于主控状态,而8237A处于从属状态,一旦8237A取得总线控制权后,823

28、7A便上升为主控状态,完全在8237A控制下完成存储器和外设之间的数据传送功能,CPU不再参与数据传送的操作。,66,8237A芯片内部结构,8237A可编程DMA控制器由数据总线缓冲存储器、读写逻辑部件、工作方式寄存器、状态寄存器、优先选择逻辑及四个DMA通道组成,内部结构如图5.25所示。8237A芯片有40条引脚,采用双列直插式封装,其引脚信号功能如图5.26所示。,67,图5.25,68,图5.26,69,1. DMA通道0通道3 作为8237A芯片的主体是4个结构完全相同的DMA通道。每个通道内包含两个16位寄存器,它们是地址寄存器和终点计数寄存器,前者用来存放进行DMA操作的存储器

29、区域的首地址的偏移地址值;后者的低14位(D13D0)用来存放要求传送的字节数n-1,n为本次DMA操作所需要执行的DMA周期数,因此,一个数据块的最大容量为214=16KB。 在任何DMA操作周期内,这2位不允许修改,但是可在各个数据块传送之间进行修改。这就是说,一旦被定义,任何一个通道的DMA写、DMA读或DMA校验操作就一直进行到整个数据块操作完成为止。,70,每个通道各有一条DMA请求线和一条DMA认可线。DMA请求线DRQ0DRQ3,由请求传送数据的外部设备输入,高电平有效;DMA认可线DACK0DACK3,由8237A取得总线控制权后向发出请求的外部设备输出,低电平有效,它实际上是

30、DRQi的回答信号。 2. 数据总线缓冲存储器 这是一个双向三态8位缓冲存储器,是与系统数据总线的接口,当8237A处于从属状态时,CPU通过这个缓冲存储器对8237A进行读/写操作。当8237A处于主控状态时,在DMA周期内,8237A将所选通道的地址寄存器的高8位地址码(A15A8)经过这个缓冲存储器锁存到8212锁存器中,然后该缓冲存储器将处于浮空状态。,71,3. 读/写逻辑部件 当8237A处于从属状态时,用来接收由CPU输入的读/写控制信号和端口地址等信息;当8237A处于主控状态时,通过它发出读/写控制信号和地址信息。 (1) I/OR读信号,双向三态,低电平有效。当8237A处

31、于从属状态时, I/OR为输入线,是CPU向8237A发出的读命令,可读取8237A中某个通道内某个寄存器的内容。 当8237A处于主控状态时, I/OR为输出线,是8237A向外部设备发出的读命令,可从外部设备中读取数据。 (2) I/OW输入/输出写控制信号,双向、三态,低电平有效。,72,当8237A处于从属状态时, I/OW为输入线,是CPU向8237A发出的写命令,可向8237A写入控制字或通道数据。 当8237A处于主控状态时, I/OW为输出线,是8237A向外部设备发出的写命令,可向外部设备写入数据。 (3) A3A0输入/输出地址线。 当8237A处于从属状态时,这是由CPU

32、向8237A输入的低4位地址码,用来寻址8237A中的某个端口。 当8237A处于主控状态时,这是8237A向存储器输出的低4位地址码。,73,(4) CS:选片信号,输入,低电平有效。 当8237A处于从属状态时,由高位地址码(A15A2)译码得到对8237A的片选信号。 当8237A处于主控状态时,CS被自动禁止,以免8237A正在执行DMA传送期间重新被选。 (5) CLK:时钟输入,用来确定8237A的工作速率。(6) RESET:复位信号,由外部输入,高电平有效。 RESET有效时,清除所有寄存器的内容,控制线浮空,禁止DMA操作,复位之后,必须重新初始化,8237A才能工作。,74

33、,4. 控制逻辑部件 控制逻辑部件主要用来向CPU发出总线请求,得到CPU认可进入主控状态后,由它发出各种控制信号。 (1) HRQ(hold request)保持请求信号,向CPU输出,高电平有效。 当任一通道收到外部设备的DMA请求时,8237A立即向CPU发出HRQ,表示要求使用总线。 (2) HLDA(hold acknowledge)保持响应信号,由CPU输入,高电平有效。 CPU收到HRQ信号,待当前总线周期执行完,向8237A回送HLDA信号,表示将总线控制权交给8237A,此后,8237A进入主控状态,可开始DMA操作。,75,(3) READY:准备就绪信号,输入,高电平有效

34、。 8237A在主控状态下进行DMA的操作过程中,若存储器或外部设备来不及完全读/写操作,要求延长 读/写操作周期时,可使READY线无效,8237A将在DMA周期中增设等待周期,直到READY有效为止。 (4) MEMR和MEMW:读/写存储器控制信号,三态输出,低电平有效。 这是8237A处于主控状态时,向存储器输出的读/写控制信号。当MEMR有效时,必然I/OW有效,完成从存储器向外部设备的数据传送。反之,MEMW有效时,必然I/OR有效,完成读外部设备写存储器的数据传送。,76,(5) A7A4地址输出线。 8237A处于主控状态时,在DMA周期中通过这条线输出的是16条存储器地址的A

35、7A4位。 (6) TC(terminal count)终点计数信号,输出,高电平有效。 当所选通道的终点计数寄存器中的计数值为0时,TC输出有效,表示当前正在传送的是最后一个数据字节,可用来通知外设结束数据传送操作,使DRQi信号无效。 (7) MARK(modulo 128 MARK)模128标记,输出,高电平有效。 MARK有效可用来通知被选的外部设备,当前是上一次输出MARK有效后的第128个DMA周期。,77,MARK总是在距数据块结束每隔128周期产生。至于第一个MARK距数据块开始是多少周期,取决于数据块的长度。如果数据块总字节数能被128整除,那么MARK可用来供外部设备记录已

36、传送的字节数。 (8) ADSTB地址选通信号,输出,高电平有效。 ADSTB有效,表示8237A输出的存储器地址的高8位(A15A8)从双向数据总线(D7D0)锁存到8212锁存器,用作8212STB的选通信号。 (9) AEN地址允许信号,输出,高电平有效。 AEN有效,表示在上述传送地址过程中,它用作8212的选择信号DS2,同时可用它去封锁CPU使用低8位数据总线和控制总线。,78,5. 工作方式寄存器及状态寄存器 工作方式寄存器是一个8位只可写寄存器,由CPU对8237A初始化时写入,用来定义8237A中各通道的工作方式。状态寄存器是一个8位只可读寄存器,用来描述当前各通道所处的状态

37、。 (1) 工作方式寄存器: 其各位的定义如图5.27所示。,79,图5.27,80,低4位中任一位置“1”,表示相应通道被启动投入操作。 RP(rotating priority)位是优先权旋转位。若RP=0,表示各通道的请求具有固定的优先权级别,通道0具有最高优先级(6级),通道3具有最低优先级(3级),其他通道的优先级类推。若RP=1,表示采用旋转优先权策略,总是使刚刚结束操作的通道具有最低优先级,把最高优先级赋给原来比它低一级的中断。 显然,采用旋转优先权方式,可防止优先级别高的通道长时间独占DMA传送数据,而使连接在各个通道上的外设对于DMA资源具有基本上相同的使用概率。,81,EW

38、(extened write)位是写扩展位。EW=1,表示将写存储器信号MEMW和写I/O设备信号I/OW提前有效,收到该写信号的存储器或外设应提前使READY信号有效,以免8237A在DMA周期内插入不必要的SW等待状态。 TCS(TC stop)位是终点计数停止位。TCS=1,即终点计数TC有效时,该通道便结束DMA操作,如果要求该通道继续传送别的数据块,必须重新启动。TCS=0,即TC有效时,并不复位相应通道,表示该通道传送的数据还未结束,可继续传送下一数据块,而不需要重新启动该通道,或者是由外部设备停止发出DMA请求来结束DMA操作。,82,AL(auto load)位是自动装入位。当

39、AL=1时,允许通道2连续传送多个重复数据块或者传送相互链接的多个不同数据块。 这种情况下,需要使用两个通道。系统规定使用通道2和通道3来完成。如果是传送相互链接的数据块,初始化时应将第1个数据块的参数(存储器起始地址、终点计数值和DMA传送方式)置入通道2的有关寄存器中,而将第2个数据块的参数置入通道3中,并使通道2的TCS位置“0”,待通道2传送完第1个数据块时,并不结束通道2的操作,而是在修改周期内,将通道3中存放的参数传送给通道2,于是通道2可继续传送第2个数据块。如果还有第3个数据块需要继续传送,则应将第3个数据块的参数置入通道3暂存。这样,通道2可连续传送多个不同的数据块。,83,

40、如果需要通道2传送的是多个重复的数据块,则只要AL=1,将数据块参数同时对通道2和通道3进行初始化即可。于是通过通道2传送的将是多个相同的数据块。在上述操作过程中,通道3实际上是作为通道2的缓冲存储器使用,而并不需要启动通道3投入操作。 (2) 状态寄存器: 其各位定义如图5.28所示。,84,图5.28,85,TC3TC0是各通道的终点计数位,用来标志相应通道当前是否达到终点计数状态。当某个通道进入数据块的最后一个DMA周期,即终点计数器的计数值为0时,相应的TCi状态位被置“1”,并且一直保持到该通道被复位或CPU读完状态寄存器为止。显然,TC3TC0中任何一位置“1”时,终止计数端TC将

41、输出有效,待这最后一个DMA周期结束。是否要将相应通道复位,则取决于工作方式寄存器中终点计数停止位(TCS)是否置“1”。 UP是修改标志位,它是专为通道2连续传送多个数据块而设置的。UP=1,表示当前处于修改周期,即数据块的最后一个DMA周期,当自动装入位AL=1时,表示在修改周期内将通道3中暂存的参数,86,置入通道2中,于是通道2可以继续传送下一个数据块。在通道2传送下一数据块的第一个DMA周期内,又可将新的参数置入通道3中。修改标志只在修改周期内有效。,87,8237A芯片的通道操作过程,8237ADMA操作周期时序图如图5.29所示。,图5.29,88,8237A处于从属状态时保持为

42、空闲状态S1。当任一通道检测到一个DMA请求时,8237A将在下一个S1状态时向CPU发出总线请求信号HRQ,于是8237A进入准备状态S0。CPU在当前总线周期结束时,向8237A回送总线认可信号HLDA,将总线控制权交给8237A,8237A开始进入主控状态。DMA周期从S1状态开始,至少包含4个状态S1S4,必要时可在S3和S4之间插入SW。在S1状态期间,通过数据总线D7D0将高位地址线锁存到8212锁存器中,低8位地址直接从A7A0输出,形成访问存储器的16位地址码,到S3状态期间发出读存储器(MEMR)或读外设(I/OR)命令可将需要传送的数据读出,在随后产生的写外设(I/OW)或

43、写存储器(MEMW)命令控制下可完成传送一,89,个数据字节的功能,需要传送多少个字节,就需要执行多少个这样的DMA周期。待整个数据块传送结束,在最后一个DMA周期的S4状态上升沿,8237A的总线请求HRQ将无效,CPU将HLDA置成无效,收回总线控制权,8237A重新回到空闲状态S1。 8237A在每一个DMA周期的S4状态查询DRQi如果同时有多个DRQi有效,8237A将为优先级最高的通道服务,而且允许高级的请求打断低级的请求而被优先服务。只要较低优先级的通道能保持它的请求有效,待较高优先级的通道传送结束,控制将自动转到较低优先级的通道去服务。8237A的整个操作流程可用图5.30来描

44、述。,90,图5.30,91,8237A控制器的编程及应用,8237A共包含4个通道,每个通道占用2个端口地址,再加上工作方式寄存器和状态寄存器合用一个端口,因此整个8237A芯片共包含9个端口地址,可用最低4位地址码(A3A0)来对它们寻址。 高位地址码(A15A4)经译码后,可用来形成8237A的片选信号,使CS有效,与I/OW,I/OR和地址码A3配合可完成对有关寄存器的读写操作。 某8086微机系统中,利用8237A DMA控制器的0通道为某台外设与存储器之间构成直接数据传送通道的系统配置结构如图5.31所示。,92,图5.31,93,中断传送方式,CPU无需查询外设状态,外设在需要进

45、行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。即CPU 与外设并行工作,有请求时才去传输数据,从而大大提高了CPU的利用率。 优点:CPU效率高,实时性好,速度快。 缺点:程序编制较为复杂。 须保护断点、保护现场等。,94,中断传送方式,断点,CPU:主程序,中断服务程序,中断请求,处理外设 事件,继续执行,返回断点,CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序,传送流程,95,中断系统其他功能:,支持多中断源和多种中断源。,支持中断屏蔽处理。,支持中断嵌套处理。,支持中断优先级修改。,支持中

46、断结束方式选择。,中断处理的隐操作:程序状态及程序断点地址的进栈及出栈。,96,中断传送与接口,中断传送是一种效率更高的程序传送方式 进行传送的中断服务程序是预先设计好的 中断请求是外设随机向CPU提出的 CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚 中断除了在输入和输出方面的应用,中断还有着非常广泛的应用,97,中断传送与接口,D0D7,+5V,8D 锁存器,8位 三态 缓冲器,R,Q,译码,288H,中断向量号,D0D7,INTR,D,输入 设备,中断允许触发器,A0A15,中断请求触发器,计算机中的中断请求与控制,1、CPU中断请求与控制 当CPU

47、正在处理某件事情时,发生了 更紧急的事件请求CPU处理,此时,CPU 暂停当前工作,转去处理紧急事件即响应 中断服务程序。中断服务程序处理完后, CPU回到原工作地点继续原来的工作,这 一过程称为中断。如图5-6所示,图5-6 中断响应过程,2、中断的优点,1)计算机与其他设备多任务同时工作、分 时操作,提高了计算机的利用率; 2)实时处理控制系统中的各种信息,提高 了计算机的灵活性; 3)使计算机及时处理故障等突发事件,提 高了可靠性。,图5-6 中断系统的结构框图,中断系统有五个中断源,外部中断源 1)INT0(入口地址0003H) ,外部中断0。 由P3.2端口线引入,低电平或下降沿引起

48、。 2) INT1 (入口地址0013H) ,外部中断1。 由P3.3端口线引入,低电平或下降沿引起。,内部中断源 3)T0 (入口地址000BH):定时/计数器0 中断,由T0回零溢出引起。 4)T1 (入口地址001BH) :定时/计数器1 中断,由T1回零溢出引起。 5)TI/RI (入口地址0023H) :串行I/O中 断,完成一帧字符发送/接收引起。,中断控制所涉及的寄存器,1、 定时控制寄存器TCON 每一种工作方式的启动、计数、停止及溢出标志由TCON控制。定时器控制字TCON的格式如下:,触发方式:边沿触发、电平触发,IT0=1 INT0为边沿触发 IT0=0,INT0为电平触

49、发 IT1=1 INT1为边沿触发 IT1=0,INT1为电平触发 IE0=0, INT0无中断请求 IE1=0, INT1无中断请求 IE0=1, INT0有中断请求 IE1=1, INT1有中断请求,(1)边沿(跳变)触发方式:,根据具体硬件电路设计, 在P3.2管脚有一 由高到低电平变化, 看边沿触发的电平变化。,CPU 响应外部中断的过程: CPU检测到INT0电平由高到低变化 时,自动置位IE0=1,并响应外部中断0的 申请,首先自动清除IE0(即使IE0=0), 并到外部中断0的入口地址:0003H执行中 断服务程序。,(2)电平触发方式:,电平触发方式,看图 硬件电路设计,软件

50、CLR IT0,2、中断允许寄存器IE(A8H),IE在特殊功能寄存器中,字节地址A8H,位地址分别是 A8HAFH。IE控制CPU对中断源总的开放或禁止以及每个 中断源是否允许中断。其格式如图所示。,3、SCON串行口寄存器,SCON串行口寄存器的位状态锁存发送 TI、接收RI中断标志,TI(SCON.1):串行口发送中断标志位。当CPU将一 个数据写入串行口发送缓冲区SBUF时,就启动发送。每发 送完一个串行帧,由硬件置位TI。此时,若ES=1、EA=1 (中断允许),CPU响应串口发送中断服务。若EA、ES某 一个不为1,则不允许中断,此时只能通过查询方式判断发 送结束。 RI(SCON

51、.0):串行口接收中断标志位。当允许串行 口接收数据时,每接收完一个串行帧,由硬件置位,若 EA=1、ES=1,CPU响应串口接收中断服务。若EA、ES某 一个不为1,则不允许中断,此时只能通过查询方式判断接 收结束。,4、中断优先寄存器IP(B8H),IP在特殊功能寄存器中,字节地址为B8H,位地址分 别是B8HBFH,IP用来锁存各中断源优先级的控制 位,其格式如图所示。,中断优先级顺序,最高 最低 INT0 T0 INT1 T1 串行口 中断优先原则 A)几个中断同时请求时,响应高优先级。 B)正在处理低级中断时,有高级请求即停止低级中断,响应高级中断。 C)正在进行的中断不响应同级或低

52、级中断。,中断响应过程,单片机在每个机器周期的S5P2期间,顺序采样每个中 断源,CPU在下一个机器周期S6期间按优先级顺序查询 中断标志,如查询到某个中断标志为1,将在再下一个机 器周期S1期间按优先级进行中断处理。 中断得到响应后自动清除中断标志,由硬件自动生成 一条长调用指令LCALL addr16将程序计数器PC内容 压入堆栈保护,然后将对应的中断入口地址装入程序计 数器PC,使程序转向中断矢量地址单元中去执行相应的 中断服务程序。,P1,P2,S1,机器周期,机器周期,指令周期,XTAL2 (OSC),S2,S3,S4,S5,S6,S1,S2,S4,S5,S3,S6,P1,P1,P1,P1,P1,P1,P1,P1,P1,P1,P1,P2,P2,P2,P2,P2,P2,P2,P2,P2,P2,P2,响应中断请求的条件,1)CPU开中断,即IE寄存器的中断允许位EA=1 2)该中断源发出中断请求,即中断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论