版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第三章:存储器及可编程接口器件,2,第三章: 存储器及可编程接口器件,3.1 半导体存储器简介 3.2 可编程并行接口8255A 3.3 可编程定时器/计数器接口8253 3.4 可编程串行接口8251A 3.5 可编程中断控制器接口8259A,3,3.1 半导体存储器简介,存储器的分类,存储器是计算机用来存储信息的部件。按存取速度和用途可把存储器分为两大类:内存储器和外存储器。 把通过系统总线直接与CPU相连、具有一定容量、存取速度快的存储器称为内存储器,简称内存。 内存是计算机的重要组成部分,CPU可直接对它进行访问,计算机要执行的程序和要处理的数据等都必须事先调入内存后方可被CPU读
2、取并执行。 把通过接口电路与系统相连、存储容量大而速度较慢的存储器称为外存储器,简称外存,如硬盘、软盘和光盘等。 外存用来存放当前暂不被CPU处理的程序或数据,以及一些需要永久性保存的信息。,3.1.1 半导体存储器概述,3.1 半导体存储器简介,4,半导体存储器的分类,从应用角度可将半导体存储器分为两大类 随机读写存储器RAM (Random Access Memory) RAM是可读、可写的存储器,CPU可以对RAM的内容随机地读写访问,RAM中的信息断电后即丢失。 只读存储器ROM (Read Only Memory) ROM的内容只能随机读出而不能写入,断电后信息不会丢失,常用来存放不
3、需要改变的信息(如某些系统程序),信息一旦写入就固定不变了。,3.1 半导体存储器简介,5,根据制造工艺的不同,随机读写存储器RAM主要有双极型和MOS型两类。 双极型存储器具有存取速度快、集成度较低、功耗较大、成本较高等特点,适用于对速度要求较高的高速缓冲存储器; MOS型存储器具有集成度高、功耗低、价格便宜等特点,适用于内存储器。 MOS型存储器按信息存放方式又可分为静态RAM (StaticRAM,简称SRAM) 和动态RAM (Dynamic RAM,简称DRAM)。SRAM存储电路以双稳态触发器为基础,状态稳定,只要不掉电,信息不会丢失。其优点是不需要刷新,控制电路简单,但集成度较低
4、,适用于不需要大存储容量的计算机系统。DRAM存储单元以电容为基础,电路简单,集成度高,但也存在问题,即电容中的电荷由于漏电会逐渐丢失,因此DRAM需要定时刷新,它适用于大存储容量的计算机系统。,3.1 半导体存储器简介,6,掩膜式ROM(MROM):用户不可对其编程,其内容已由厂家设定 好,不能更改。 可编程ROM (Programmable ROM,简称PROM):用户只能对其进行一次编程,写入后不能更改。 可擦除的PROM(Erasable PROM,简称EPROM ),其内容可用紫外线擦除,用户可对其进行多次编程。 电擦除的PROM(Electrically Erasable PROM
5、,简 称EEPROM或E2PROM),能以字节为单位擦除和改写。,只读存储器ROM在使用过程中,只能读出存储的信息而不能用通常的方法将信息写入存储器。,3.1 半导体存储器简介,7,3.1 半导体存储器简介,8,半导体存储器的主要技术指标,(1)存储容量 (A) 用字数位数表示,以位为单位。常用来表示存储芯片的容量,如1K4位,表示该芯片有1K个单元(1K=1024),每个存储单元的长度为4位。 (B) 用字节数表示容量,以字节为单位,如128B,表示该芯片有 128个单元,每个存储单元的长度为8位。现代计算机存储容量很大,常用KB、MB、GB和TB为单位表示存储容量的大小。其中,1KB210
6、B1024B;1MB220B1024KB;1GB230Bl024MB;1 TB240B1024 GB。显然,存储容量越大,所能存储的信息越多,计算机系统的功能便越强。,3.1 半导体存储器简介,9,(2)存取时间 存取时间是指从启动一次存储器操作到完成该操作所经历 的时间。例如,读出时间是指从CPU向存储器发出有效地 址和读命令开始,直到将被选单元的内容读出为止所用的 时间。显然,存取时间越小,存取速度越快。 (3)存储周期 连续启动两次独立的存储器操作(如连续两次读操作)所需 要的最短间隔时间称为存储周期。它是衡量主存储器工作 速度的重要指标。一般情况下,存储周期略大于存取时间。 (4)功耗
7、 功耗反映了存储器耗电的多少,同时也反映了其发热的程 度。,3.1 半导体存储器简介,10,(5)可靠性 可靠性一般指存储器对外界电磁场及温度等变化的抗干扰能 力。存储器的可靠性用平均故障间隔时间MTBF (Mean Time Between Failures)来衡量。MTBF可以理解为两次故障之间 的平均时间间隔。MTBF越长,可靠性越高,存储器正常工 作能力越强。 (6)集成度 集成度指在一块存储芯片内能集成多少个基本存储电路,每 个基本存储电路存放一位二进制信息,所以集成度常用位/片 来表示。 (7)性能/价格比 性能/价格比(简称性价比)是衡量存储器经济性能好坏的综合 指标,它关系到存
8、储器的实用价值。其中性能包括前述的各 项指标,而价格是指存储单元本身和外围电路的总价格。,11,3.2 可编程并行接口芯片8255A,12,3.2 可编程并行接口芯片8255A,A、B、C三个端口各有8条端口I/O线:PA7PA0,PB7PB0和PC7PC0,共32个引脚,用于8255A与外设之间的数据(或控制、状态信号)的传送。 D7D0:8位三态数据线,接至系统数据总线。CPU通过它实现与8255之间数据的读出与写入,控制字的写入,以及状态字的读出等操作。 A1A0:端口选择信号。A1和A0经片内译码产生四个有效地址分别对应A、B、C三个独立的数据端口以及一个公共的控制端口。在实际使用中,
9、A1、A0端接到系统地址总线的 A1、A0。当A1A0=00,选择端口A;当A1A0=01,选择端口B;当A1A0=10,选择端口C;当A1A0=11,选择公共的控制端口;,3.2 可编程并行接口芯片8255A,13,-CS:片选信号,低电平有效,由CPU输入,通常由高位地址码(A15A2)译码得到。 -CS有效表示该8255A被选中。 读写控制信号-RD和-WR:低电平有效,由CPU输入,用于决定CPU和8255A之间信息传送的方向:当-RD=0时,由8255A向CPU传送数据或状态信息;当-WR=0时,由CPU向8255A写控制字或数据。 RESET:复位信号,由CPU输入,高电平有效,R
10、ESET有效时,清除8255A中所有控制寄存器内容,并将A、B、C三个端口都置为输入方式。,3.2 可编程并行接口芯片8255A,14,3.2 可编程并行接口芯片8255A,15,CPU,外设,3.2 可编程并行接口芯片8255A,16,3.2.2 8255A的工作方式与控制字 8255A的工作方式 8255A在使用前要先写入一个工作方式控制字,以指定A、B、C三个端口各自的工作方式。8255A共有三种工作方式: 方式0基本输入输出方式,即无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。 方式1选通输入输出方式,此时8255A的A口和B口与外设之间进行输入或输出操作时,需要C口
11、的部分I/O线提供联络信号。 方式2双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有A口可工作于方式2。,端口A可处于三种工作方式(方式0,方式1,方式2),端口B可处于两种工作方式(方式0,方式1 ),端口C常常被分成高4位和低4位两部分,可分别用来传送数据或控制信息。,3.2 可编程并行接口芯片8255A,17,8255A的控制字(定义工作方式控制字和C口置位/复位控制字) (1) 工作方式选择控制字 8255A的工作方式可由CPU写一个工作方式选择控制字到 8255A的控制端口实现。可以分别选择端口A、端口B和 端口C上下两部分的工作方式。注意8255A工作方式选择控 制
12、字的最高位D7(特征位)应为1。,3.2 可编程并行接口芯片8255A,例:两片8255A(J1,J2)接口芯片初始化,1)如果要求J1的各个端口处于如下工作方式: 端口A 方式0,输出; 端口B 方式0,输入; 端口C的高四位 输出; 端口C的低四位 输入。 于是,J1的方式选择控制字代码如图所示,方式选择控制字为83H。,3.2 可编程并行接口芯片8255A,2)要求J2的各个端口处于如下工作方式: 端口A 方式0,输入; 端口B 方式1,输出; 端口C的高四位 输出; 端口C的低四位 配合端口B工作(已由方式1决定),可任意为1或0,此处设为0. 于是,J2的方式选择控制字应如图所示,即
13、J2的方式选择控制字为94H。,例:两片8255A(J1,J2)接口芯片初始化,3.2 可编程并行接口芯片8255A,利用下面6条指令就可以为J1,J2这两个8255A的设置方式选择控制字(它们的控制口地址分别为00E6H和00EEH)。 MOV AL,83H MOV DX,00E6H ;对第1片8255A设置方式选择控制字 OUT DX,AL MOV AL,94H MOV DX,00EEH ;对第2片8255A设置方式选择控制字 OUT DX,AL,例:J1,J2 8255A接口芯片的端口名称,端口地址如表所示。,3.2 可编程并行接口芯片8255A,21,(2) C口置位/复位控制字,82
14、55A的C口按位置位/复位控制字的最高位D7(特征位)应为0。,无关位,D3,D1,D5 ,D0 位操作,D2 PC口位选择,D7 特征位,D6 ,D4 ,D7=0标明是C口位操作控制字,例如: 使端口C的PC4置 位的控制字为 00001001B(09H) 使PC4复位的控制 字为 00001000B(08H),当端口A定义为方式1或方式2或将端口B定义为方式1时,要求使用端口C的某些位作控制用,这时需要一个置位/复位控制字对控制端口C的各位进行置位/复位操作。,3.2 可编程并行接口芯片8255A,例如: 要求对端口C的PC7位置1,则控制字为00001111B,即0FH;而端口C的PC3
15、要求置0,则控制字为00000110B,即06H。 设8255A的控制口地址为00EEH 则下面的程序段可以实现上述要求。 MOV AL,0FH ;对PC7置1的控制字 MOV DX,00EEH MOV DX,AL MOV AL,06H ;对PC3置0的控制字 MOV DX,AL,3.2 可编程并行接口芯片8255A,23,3.2.3 各种工作方式的功能 方式0基本输入输出方式 方式0无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。它适用于无须应答(握手)信号的简单的无条件输入/输出数据的场合,即输入/输出设备始终处于准备好状态。 在此方式下,A口、B口、C口的高4位和低4位可
16、以分别设置为输入或输出,即8255A的这四个部分都可以工作于方式0。 输入或输出的定义是相对于8255A芯片而言的。当数据从外设送往8255A时为输入,反之,数据从8255A送往外设则为输出。,3.2 可编程并行接口芯片8255A,24,3.2.3 各种工作方式的功能 方式0基本输入输出方式,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合。此时,CPU与三个端口之间交换数据可以直接由CPU执行IN或OUT指令来完成。,3.2 可编程并行接口芯片8255A,25,方式1选通输入输出方式:这种工作方式下,数据输入输出操作要在选通信号控制下完成 与方式0相比,它的主要特点
17、是当A口、B口工作于方式1时,C口的某些I/O线被定义为A口和B口在方式1下工作时所需的联络信号线,这些线已经定义,不能由用户改变。,3.2 可编程并行接口芯片8255A,8255A中的端口A和B工作在方式1时,可构成8种不同的状态,端口C的低四位总是作控制用,而高四位中总是保持有两位仍然可作数据输入/输出用,因此控制字中的D0位可为任意值,由D1,D3,D4位的不同取值构成八种不同的状态组合方式。(也允许A/B口为方式0,与另一端口的方式1配合工作),3.2 可编程并行接口芯片8255A,27,3.2 可编程并行接口芯片8255A,例:编一初始化程序,使8255A的PC5端输出一个负跳变。如
18、果要求PC5端输出一个负脉冲程序又怎样的?控制口地址为83H。,D3,D1,D5 ,D0 位操作,D2 PC口位选择,D7 特征位,D6 ,D4 ,1 0 1,29,3.2 可编程并行接口芯片8255A,3.2 可编程并行接口芯片8255A,30,00:A口;01:B口;10:C口;11:控制口,3.2 可编程并行接口芯片8255A,31,利用8255A对按键进行查询输入 设图中8255A的A口和控制寄存器的地址分别为80H和 83H,试编写8255A的初始化程序。,3.2 可编程并行接口芯片8255A,32,3.3 可编程定时器/计数器芯片8253,33,实现定时的方法有三种:软件定时、不可
19、编程的硬件定时和可编程的硬件定时。 软件定时是通过让机器执行一段没有具体操作目的的程序来实现的。由于CPU执行每条指令都需要一个确定的时间,因此,只要选择适当的指令和安排适当的循环次数就很容易实现软件定时,但软件定时占用CPU资源,降低了CPU的利用率; 不可编程的硬件定时尽管定时电路并不很复杂,但这种定时电路在硬件连接好以后,定时值和定时范围不能由程序来控制和改变,使用不灵活; 可编程定时器/计数器是为方便计算机系统的设计和应用而研制的,定时值及其范围可以很容易地由软件来控制和改变,能够满足各种不同的定时和计数要求,因此得到了广泛的应用。,34,3.3 可编程定时器/计数器芯片8253,3.
20、3 可编程定时器/计数器芯片8253,35,(1) 数据引脚D7D0:数据线,双向三态,与系统数据总线连接。 (2) 片选信号 -CS:输入信号,低电平时选中此片。由CPU输出的地址经地址译码器产生。 (3) 地址线A0,A1:这两根线接到系统地址总线的A0,A1上,当 -CS为低电平,且8253被选中时,用它们来选择8253内部的四个寄存器。当A1A0=00时,选中通道0;当A1A0=01时,选中通道1;当A1A0=10时,选中通道2;当A1A0=11时,选中控制字寄存器。,3.3 可编程定时器/计数器芯片8253,36,24,3.3 可编程定时器/计数器芯片8253,37,3.3 可编程定
21、时器/计数器芯片8253,38,(2) 控制寄存器 控制寄存器用来保存来自CPU的控制字。每个计数器都有一个控制命令寄存器,用来保存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,亦决定如何装入计数初值。8253的3个控制寄存器只占用一个地址号,而靠控制字的最高两位来确定将控制信息送入哪个计数器的控制寄存器中保存。控制寄存器只能写入,不能读出。 (3) 数据缓冲器 数据缓冲器是三态、双向8位缓冲器。它用于8253和系统数据总线的连接。CPU通过数据缓冲器将控制命令字和计数值写入8253计数器,或者从8253计数器中读取当前的计数值。 (4) 读/写逻辑 读/写逻辑的任务是
22、接收来自CPU的控制信号,完成对8253内部操作的控制。这些控制信号包括读信号-RD、写信号-WR、片选信号-CS以及用于片内寄存器寻址的地址信号A0和A1。当片选信号有效,即-CS=0时,读写逻辑才能工作。该控制逻辑根据读/写命令及送来的地址信息,决定三个计数器和控制寄存器中的哪一个工作,并控制内部总线上数据传送的方向。,3.3 可编程定时器/计数器芯片8253,39,8253的读写操作状态操作,3.3 可编程定时器/计数器芯片8253,40,8253共占用4个I/O地址。当A1A0=00时,为计数器0中的CR(计数初值寄存器)和OL(输出锁存寄存器)寄存器的共用地址,至于是将计数初值写入C
23、R,还是从OL中读出当前计数值,则由控制信号-WR和-RD决定,这两个信号同时只能有一个有效。当A1A0=01和10时,分别为计数器1和计数器2的CR和OL的共用地址。当A1A0=11时,是3个计数器内的3个控制寄存器的共用地址,至于CPU是给哪个计数器送控制字,则由控制字中的最高两位的编码决定。 8253计数器在工作之前,用户必须对其进行初始化编程:首先CPU用输出指令向控制寄存器送控制字,然后再用输出指令向计数初值寄存器CR预置计数/定时的初值。启动工作后,CR中的初值就送入减1计数器CE对CLK输入的计数/定时脉冲信号进行减1计数。当CE中的内容减为0,表示计数/定时到,则OUT端输出信
24、号。输出信号的波形形式由工 作方式决定。,3.3.2 8253的编程 8253在工作之前,用户首先要为某一计数器(计数器02)写入控制字以确定其工作方式;写入定时/计数初值;在定时/计数工作过程中,有时还需要读取某计数器当前的计数值。 8253的控制字格式:定义各通道的工作方式,3.3 可编程定时器/计数器芯片8253,41,3.3 可编程定时器/计数器芯片8253,42,8253的读/写操作 (1) 写操作 写操作是指CPU对8253写入控制字或写入计数初值。 8253在开始工作之前,CPU要对其进行初始化编程(写入控制字和计数初值) : 对每个计数器,必须先写控制字,后写计数初值。因为后者
25、的格式是由前者决定的。 写入的计数初值必须符合控制字(D5D4两位)决定的格式。16位数据应先写低8位,再写高8位。 当给8253中的多个计数器进行初始化编程时,其顺序可以任意,但对每个计数器进行初始化时必须遵循规定原则。,3.3 可编程定时器/计数器芯片8253,43,(2) 读操作 读操作是指读出某计数器的当前计数值到CPU中。有两种读取当前计数值的方法: 先使计数器停止计数(在GATE端加低电平或关闭CLK脉冲):根据送入的控制字中的D5D4位的状态,用一条或两条输入指令读减1计数器CE的内容。实际上,CPU是通过输出锁存器OL读出当前计数值的,因为在计数过程中,OL的内容是跟随CE内容
26、变化的。此时由于CE不再计数,故可稳定地读出OL(即CE)的内容。 在计数的过程中不影响CE的计数而读取计数值:为达此目的,应先对8253写入一个具有锁存功能的控制字,即D5D4位应为00,这样就可以将当前的CE内容锁存入OL中,然后再用输入指令将OL的内容读到CPU中。当CPU读取了计数值后,或对计数器重新进行初始化编程后,8253会自动解除锁存状态,OL中的值又随减1计数器CE值变化。,3.3 可编程定时器/计数器芯片8253,44,计数器0的初始化程序,3.3 可编程定时器/计数器芯片8253,45,写入一个具有锁存功能的控制字,即D5D4位应为00,这样就可以将当前的CE内容锁存入OL
27、中,然后再用输入指令将OL的内容读到CPU中,计数器1工作在方式2,计数初值为18H,二进制计数。,3.3 可编程定时器/计数器芯片8253,46,3.3.3 8253的工作方式 8253有六种不同的工作方式。在不同的工作方式下,计数过程的启动方式不同,OUT端的输出波形不同,自动重复功能、GATE的控制作用以及更新计数初值对计数过程的影响也不完全相同。同一芯片中的三个计数器,可以分别编程选择不同的工作方式。 (1) 方式0计数结束中断方式 这是一种软件启动、不能自动重复的计数方式。 写入方式0的控制字(CW)后,其输出端变低。再写入计数初值N,在写信号-WR以后经过CLK的一个上升沿和一个下
28、降沿,初值进入减1计数器CE。计数器减到0后,OUT成为高电平。此信号通常接至8259A的IR端作为中断请求信号。,47,写入方式0的控制字CW后,输出端变低。,INTR,INTR,GATE=0,禁止减1操作继续,待GATE重新有效后,减1操作继续进行,3.3 可编程定时器/计数器芯片8253,48,在计数过程中,随时可以写入新的计数值初值,计数器使用新的初值重新开始计数(若新初值是16位,则在送完第一字节后中止现行计数,送完第二个字节后才重新开始计数),计数值为0时,OUT输出从低到高的跳变,可用它向CPU发中断请求INTR。 计数初值一次有效。 门控信号GATE=1,允许减1操作; GAT
29、E=0,禁止减1操作继续,待GATE重新有效后,减1操作继续进行。 方式0主要用于单次计数,计数到时,利用OUT信号作为查询信号或中断请求信号。由于8253内部没有中断控制管理电路,故用OUT作为中断请求信号时,需要通过中断优先级控制电路(如8259)向CPU申请中断。 方式0既可完成计数功能,也可完成定时功能。,3.3 可编程定时器/计数器芯片8253,49,(2) 方式1可编程单脉冲发生器 一种硬件启动、不能自动重复但通过GATE的正跳变可使计数过程重新开始的计数方式。 在写入方式1的控制字后OUT成为高电平,在写入计数初值后,要等GATE信号出现正跳变时才能开始计数。在下一个CLK脉冲到
30、来后,OUT变低,将计数初值送入CE并开始减1计数,直到计数器减到0后OUT变为高电平。,50,计数过程一旦启动,GATE变成低电平也不会使计数中止。计数完成后若GATE再来一个正跳变,计数过程又重复一次。对应GATE的每一个正跳变,都输出宽度为N*TCLK的负脉冲,因此称这种方式为可编程单脉冲发生器。,3.3 可编程定时器/计数器芯片8253,51,(3) 方式2分频工作方式/速率波发生器 写入控制字后,OUT信号变为高电平,若计数初值为N,启动计数后,以CLK信号的频率进行减1计数,OUT输出高电平保持不变;待计数值减到“1”和“0”之间时,OUT输出宽度为一个CLK周期的负脉冲。 当减到
31、1时,OUT输出一个宽度为一个CLK时钟周期的负脉冲,OUT恢复成高电平后,计数器又重新开始计数。可以看出,OUT输出信号的频率为CLK信号频率的1/N,即N次分频,故称这种工作方式为分频工作方式。,方式2需要GATE信号保持高电平。当GATE变为低电平时,停止计数。GATE由低变高后,CR中的计数初值又重新装入减1计数器CE中开始计数。 方式2在计数过程中若写入新的计数初值,并不影响当前的计数过程。在本次计数结束后,才以新的计数初值开始新的分频工作方式。,3.3 可编程定时器/计数器芯片8253,52,写入控制字后,OUT信号变为高电平,1,0,3,3,4,1,OUT,WR CLK GATE
32、,CW,N4,TOUTN*TCLK,(4) 方式3方波发生器 工作于方式3时,在计数过程中其输出前一半时间为高电平,后一半时间为低电平。其输出是可以自动重复的周期性方波,输出的方波周期为N*TCLK。 在写入方式3控制字后,计数器OUT端立即变高。若GATE信号为高,在写完计数初值N后,开始对CLK信号进行计数。计数到N/2时,OUT端变低,计完余下的N/2,OUT又变高,如此自动重复,OUT端产生周期为N*TCLK的方波。,3.3 可编程定时器/计数器芯片8253,53,2,4,2,3.3 可编程定时器/计数器芯片8253,54,若计数初值为偶数,则计数的前半周期为N/2,计数的后半周期为N
33、/2,输出重复周期为N,占空比为1:1的方波形。若计数初值为奇数,则计数的前半周期为(N+1)/2,计数的后半周期为(N1)/2,近似方波。,(5) 方式4软件触发方式 方式4是一种软件启动、不自动重复的计数方式。 在写入方式4的控制字后,OUT变为高电平。当写入计数初值后立即开始计数(这就是软件启动)。当计数到0后,OUT输出变为低电平,持续一个CLK脉冲周期后恢复为高电平,计数器停止计数。故这种方式是一次性的。只有CPU再次将计数初值写入计数初值寄存器CR后才会启动另一次计数过程。,2,1,0,3,4,OUT,WR CLK GATE,CW,N4,3.3 可编程定时器/计数器芯片8253,5
34、5,(6) 方式5硬件触发方式 方式5是一种硬件启动、自动重复的计数方式。 在写入方式5控制字后,OUT变高,写入计数初值时即使GATE信号为高电平,计数过程仍不启动,而是要求GATE信号出现一个正跳变,然后在下一个CLK信号到来后才开始计数。计数器减到0时,OUT输出负脉冲,宽度为一个CLK周期,表示定时时间到或计数次数到。,0,4,3,1,2,OUT,WR CLK GATE,CW,N4,3.3 可编程定时器/计数器芯片8253,56,3.3 可编程定时器/计数器芯片8253,57,由于方式5是由GATE的上升沿启动计数,同方式1一样,计数启动后,即使GATE变成低电平,也不影响计数过程的进
35、行。但若GATE信号产生了正跳变,则不论计数是否完成,计数初值将被置入计数器,重新开始新一轮计数。 若在计数过程中给计数器写入新的计数初值,此时只是将计数初值保存到计数初值寄存器CR中,并不影响当前的计数过程,在GATE产生正跳变时新的计数初值才被置入减1计数器CE开始计数。,3.3 可编程定时器/计数器芯片8253,58,3.3.4 8253应用举例 使用8253计数器2产生频率为40kHz的方波,设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2MHz。试设计8253与8086总线的接口电路,并编写产生方波的程序。,分析:8253端口地址分配:0040H,计数
36、器0;0041H,计数器1;0042H,计数器2;0043H,控制字寄存器,59,8253与8086总线的连接,3.3 可编程定时器/计数器芯片8253,地址译码器产生8253的片选信号;A1,A0产生通道选择信号,由CPU输入。,D7D0,A0 A1,译 码,A2 A15,3.3 可编程定时器/计数器芯片8253,60,;对计数器2送控制字 ;控制字端口地址 ;送计数初值50 ;计数器2端口地址,MOV MOV OUT MOV MOV OUT,AL,10010111B DX,0043H DX,AL AL,50 DX,0042H DX,AL,为了使计数器2产生方波,应使其工作于方式3,输入的2
37、MHz的CLK2时钟信号进行50次分频后可在OUT2端输出频率为40 kHz的方波,因此,对应的控制字应为10010111B,计数初值为十进制数50。程序如下:,计数器2;只读/写低字节;方式3产生方波;十进制计数50,分析:8253端口地址分配:0040H,计数器0;0041H,计数器1;0042H,计数器2;0043H,控制字寄存器,练习,某8086系统中包含一片8253芯片,要求完成如下功能: 1)利用通道0完成对外部事件计数功能,计满50次向CPU发中断请求; 2)利用通道1产生频率为1KHz的方波,其中CLKi端输入2.5MHz的时钟脉冲。 请写出8253的初始化程序。通道0通道2和
38、控制字的端口号分别为1FF0H1FF3H,分析: 通道0应定义为工作方式0,完成计数功能,计数初值为3CH(50); 通道1应定义为工作方式3,1KHz方波,周期为1ms,2.5MHz,其重复周期为0.4us,所以,计数初值为2500=09C4H;,MOV DX,1FF3H;8253控制端口地址 MOV AL,10H;通道0方式0, OUT DX,AL MOV DX,1FF0H;通道0端口地址 MOV AL,3CH;50次,计数初值 OUT DX,AL,MOV DX,1FF3H;8253控制端口地址 MOV AL,76H;通道1方式3, OUT DX,AL MOV DX,1FF1H;通道1端口
39、地址 MOV AX,09C4H;计数初值, OUT DX,AL;先送低字节 MOV AL,AH;再送高字节 OUT DX,AL,00,01,000,0,01,11,011,0,通道0,工作方式0,计数初值为3CH(50),通道1,工作方式3,计数初值为2500=09C4H;,3.4 可编程串行接口芯片8251A,63,3.4.1 串行通信的基本概念,串行通信与并行通信,0,计 算 机,计 算 机 (或 外 设),0 1 0 0 1 0 0 1 8T,计 算 机 (或 外 设),0 1 0 0 计 1 算 0 机 1,0 1 0 0 1 0 0 1,D0 D1 D2 D3 D4 D5 D6 D7
40、,控制(选通),状态,T,串行通信,并行通信,并行通信是把一个字符的各数位用几条线同时进行传输,传输速度快,信息率高,但用电缆多,常用在传输距离较短(几米至几十米),数据传输率较高的场合。 串行通信是数据一位一位依次传输,每个数据占据一个固定的时间长度。这种方式用电缆少,但通信速度比较慢。,3.4 可编程串行接口芯片8251A,64,串行通信中的数据传送模式 单工(Simplex)通信模式。仅能进行一个方向的数据传送。如A作为发送器,B能作为接收器。 半双工(Half Duplex)通信模式。它能够在设备A和设备B之间交替地进行双向数据传送。即数据可以在一个时刻从设备A传送到设备B,而另一时刻
41、也可以从设备B传送到设备A,但不能同时进行。 全双工(Full Duplex)通信模式。通信设备A或B均能在发送的同时又能接收数据。即设备A向设备B发送数据的同时,设备B也可以向设备A发送数据。,3.4 可编程串行接口芯片8251A,65,比特率与波特率 比特率是数字信号的传输速率,比特率是指每秒能传输的二进制代码的比特(bit)数,单位为 bps (bit per second)或kbps(千比特/秒)。 波特率(Baudrate):调制速率(又称为波形速率),波特指每秒能传输的符号(也称离散状态)数。 若每个符号所含信息量等于1比特,则波特率等于比特率。 在计算机中,一个“符号”的含义为高
42、电平或低电平,即符号所含信息量刚好等于1比特。 因此,在计算机数据传输中常将比特率称为波特率。,串行通信数据的收发方式-(异步)与(同步)通信方式 异步通信方式,3.4 可编程串行接口芯片8251A,异步通信所采用的数据格式是一组不定“位数”数组组成。第一位称为起始位,宽度为1bit,低电平;接着传送一个8位的数据,其中,高电平为1,低电平为0;最后是停止位。在两个数据组之间可有空闲位。,67,3.4 可编程串行接口芯片8251A,串行通信数据的收发方式-异步与同步通信方式 同步通信方式,同步通信时所使用的数据格式分为:面向字符型和面向比特的两种,(1)面向字符型的数据格式,面向字符型的同步通
43、信数据格式可采用单同步(一个同步字符)、双同步(两个同步字符)及外同步(无同步字符,通过控制线实现同步)三种数据格式。信息结束均用两个字节的循环控制码CRC为结束。,SYNC,数据字节1,数据字节2,数据字节n,CRC1,CRC2,SYNC,SYNC,数据字节1,数据字节n,CRC1,CRC2,数据字节1,数据字节2,数据字节2,数据字节n,CRC1,CRC2,单同步,双同步,外同步,68,3.4 可编程串行接口芯片8251A,同步通信方式,(2)面向比特型的数据格式,根据同步数据链路控制规程(SDLC),面向比特型的数据以帧为单位传输,每帧由六个部分组成。第一部分是开始标志“7EH”,第二部
44、分是一 个字节的地址场;第三部分是一个字节的控制场,第四部分是需要传输的数据;第五部分是两个字节的循环控制码CRC;最后又是“7EH”作为结束标志。,通常,异步通信速率要比同步通信的低。,3.4 可编程串行接口芯片8251A,例子:串行通信的传输率,例:异步传输过程: 设每个字符对应1个起始位、7个信息位、1个奇偶校验位和1个停止位,如果波特率为1200bps,那么,每秒钟能传输的最大字符数为(一个空闲位也没有): 1200/10120个。,3.4 可编程串行接口芯片8251A,70,信号的调制和解调 在计算机系统中,主机与外设之间所传送的是用二进制“0”和“1”表示的数字信号。数字信号的传送
45、要求占用很宽的频带,且还具有很大的直流分量,因此数字信号仅适用于在短距离的专用传输线上传输。 在进行远距离的数据传输时,一般是利用电话线作通信线路。由于电话线不具备数字信号所需的频带宽度,如果数字信号直接用电话线传输,信号将会出现畸变,致使接收端无法从发生畸变的数字信号中识别出原来的信息。因此必须采取一些措施,在发送端把数字信号转换成适于传输的模拟信号,而在接收端再将模拟信号转换成数字信号。前一种转换称为调制,后一种转换称为解调。完成调制、解调功能的设备叫做调制解调器(Modem)。,3.4.3 8251A 8251A的结构及基本功能,3.4 可编程串行接口芯片8251A,发送器,接收器,82
46、51A是通用串行输入/输出接口,它能将并行输入的8位数据变换成逐位输出的串行信号;也能将串行输入数据变换成并行数据,一次传给CPU。,3.4 可编程串行接口芯片8251A,72,8251A可用于串行的异步或同步两种通信方式,8251A的控制字及其工作方式 8251A使用前必须初始化,以确定它的工作方式,传送速率,字符格式以及停止位长度等,可使用的控制字如下:,同步方式,0 1 0 1,内同步 外同步 双同步字 单同步字,同步方式,Y,N,D7 D6 D5,D4,D3,D2,D1,D0,停止位,00 无效 01 1位 10 1位半 11 2位,校验方式,0 不校验 01 奇校验 11 偶校验,数
47、据位数,00 5位 01 6位 10 7位 11 8位,方式及波特率因子,00 同步方式 01 异步(1) 10 异步(16) 11 异步(64),D1D0=00时, 8251A处于同步工 作方式。否则为异,步工作方式,且当 D1D0=01、10和11 时,RXC和TXC引 脚上加载的时钟的,频率应分别为波特,率的1倍、16倍和,64倍。,(1) 方式选择控制字。用来确定8251A的通信方式(同步或异步)、校验方式(奇校验、偶校验或不校验)、数据位数(5、6、7或8位)及波特率参数等,方式控制字应该在复位后写入,且只需写入一次。,3.4 可编程串行接口芯片8251A,73,(2)操作命令控制字
48、。使8251A进入规定的工作状态以准备发送或接收数据。应该在写入方式控制字后写入,用于控制8251A的工作,可多次写入。,方式控制字和命令控制字本身无特征标志,也没有独立的端口地址,8251A是根据写入先后次序来区分这两者的:先写入者为方式控制字,后写入者为命令控制字。所以对8251初始化编程时必须按一定的先后顺序写入方式控制字和命令控制字。,3.4 可编程串行接口芯片8251A,74,1:发断缺字符;0:正常工作,EH位只对同步方式有效,对于同步方式,允许接收,必须使EH=1,D7,DSR SYNDET FE,OE,PE,TXE,RXRDY TXRDY,D6,D5,D4,D3,D2,D1,D
49、0,(3)状态控制字:CPU可在8251A工作过程中利用IN指令读取当前8251A 的控制状态字。,同引脚定义 1存在奇偶校验错 1溢出错 1帧校验错 当FE=1时,出现帧格式错,就是指在异步方式下当一个字符终了而没有检测到规定的停止位时的差错。此标志位不禁止8251A的工作,可由控制命令字中的ER来复位。 当OE=1时,出现溢出错误,就是指CPU没来得及将上一字符取走,下一字符又来到RXD端。但发生这种错误时,上一个字符将丢失。,3.4 可编程串行接口芯片8251A,75,DSR:调制解调器或外设的数据已经准备好。,TXRDY:发送准备好信号,通知CPU当前8251A已做好发送准备,CPU可
50、以向8251A传送一个字符; RXRDY :接收器准备好信号。RXRDY=1时,表明8251A已经从串行输入线接收了一个字符,正等待CPU将此数据取走; TXE :发送器空信号SYNDET:同步检测信号,8251A初始化编程 8251A初始化过程,8251进行初始化编程,必须在系统复位之后; 首先写入方式控制字,以决定通信方式、数据位数、校验方式等。若是同步方式则紧接着送入一个或两个同步字符,若是异步方式则这一步可省略,后送入命令控制字,就可以发送或接收数据了。 初始化过程的信息全部写入控制端口,特征是C/-D=1,即地址线A0=1(因为C/-D接至A0)。 由于各控制字没有特征位,因而写入的
51、顺序不能出错。,3.4 可编程串行接口芯片8251A,3.4 可编程串行接口芯片8251A,77,3.5 可编程中断控制器8259A,78,3.5.1 8259A的功能,8259A是可编程中断控制器芯片,用于管理和控制80 x86的外部中断请求,可实现中断优先级判定,提供中断类型号,屏蔽中断输入等功能。,8259A采用28脚 双列直插封装形式;,单片8259A可管理8级中断,若采用级联方式,最多可以用9片8259A(一片主片,8片从片)构成两级中断机构,管理64级中断。 8259A是可编程器件,它所具有的多种中断优先级管理方式可以通过主程序在任何时候进行改变或重新组织。,主片,从1,从2,3.
52、5.2 8259A的内部结构及外部引脚 (1) 8259A的内部结构(八部分),80,3.5 可编程中断控制器8259A,81,中断请求寄存器IRR (Interrupt Request Register): 8位,接受并锁存来自IR0IR7的中断请求信号,当IR0IR7上出现某一中断请求信号时,IRR对应位被置1; 中断屏蔽寄存器IMR (Interrupt Mask Register): 8位,若IRR中记录的各级中断中有任何一级需要屏蔽,只要将IMR的相应位置1即可,未被屏蔽的中断请求进入优先权判别器; 中断服务寄存器ISR (In-Service Register): 8位,保存当前正
53、在处理的中断请求,例如,如果ISR的D2=1,表示CPU正在为来自IR2的中断请求服务; 优先权判别器PR (Priority Resolver): 能够将各中断请求中优先级最高者选中,并将ISR中相应位置1。由PR通过控制电路向CPU发出中断申请INT。,3.5 可编程中断控制器8259A,82,CPU收到中断请求后,若IF=1(STI指令可将中断允许标志IF置1),则CPU响应中断,执行两个中断响应总线周期,在-INTA引脚上发出两个负脉冲。 8259A收到第一个负脉冲后,使IRR锁存功能失效,不接受IR0IR7上的中断请求信号;直到第二个负脉冲结束后,才又使IRR锁存功能有效,并清除IR
54、R的相应位,使ISR的对应位置1,以便为优先级裁决器以后的裁决提供依据。 收到第二个负脉冲后,8259A把当前中断的中断类型码送到D7D0,CPU根据此类型号进入相应的中断服务程序。 在中断服务程序结束时向8259A发中断结束命令,该命令将ISR寄存器的相应位清0,中断处理结束。,3.5 可编程中断控制器8259A,CPU处理外设的INTR请求的过程,83,数据总线缓冲器是8259A与系统之间传送信息的数据通道,是一个双向八位三态缓冲器。 读/写控制逻辑包含了初始化命令字寄存器和操作命令字寄存器。用来接收来自CPU的读/写控制命令和片选控制信息。 功能是确定数据总线缓冲器中数据的传输方向,选择
55、内部的各命令字寄存器。 一片8259A只占两个I/O端口地址,可用末位地址码A0来选端口,其他高位地址作为片选信号-CS输入。 级联缓冲/比较器用来存放和比较在系统中用到的所有8259A的级联地址。 主控8259A通过CAS0、CAS1和CAS2发送级联地址,选中从控8259A。对于主8259A, CAS2CAS0是输出信号;对于从8259A, CAS2CAS0是输入信号。,3.5 可编程中断控制器8259A,84,CAS0CAS2:级联总线,输入或输出,用于区分特定的从控制器件。8259A作为主控制器时,该总线为输出,作为从控制器时,为输入。 A0 :地址输入信号,用于对8259A内部寄存器
56、端口的寻址。每片8259A对应两个端口地址,一个为偶地址,一个为奇地址,且偶地址小于奇地址。,3.5 可编程中断控制器8259A,85,3.5.3 8259A的工作方式 中断优先级管理方式:中断优先级管理是中断管理的核心问题,(1) 完全嵌套方式 也称固定优先级方式。在这种方式下,由IRi端引入的中断请求具有固定的优先级,IR0最高,IR7最低。在对8259A初始化后若没有设置其他优先级方式,则默认为完全嵌套方式。 (2) 特殊全嵌套方式 在主从结构的8259A系统中,将主片设置为特殊全嵌套方式,可以在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许同级的中断请求进入。,3.5 可编
57、程中断控制器8259A,86,(3) 优先级自动循环方式 采用这种方式,各中断源优先级是循环变化的,主要用在系统中各中断源优先级大致相同的情况下。一个设备的中断服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低一级的中断请求。例如:开始时,优先级队列还是IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7(IR0最高,IR7最低);若此时出现了IR0请求,响应IR0并处理完成后(IR1最高),队列变为IR1,IR2,IR3,IR4,IR5,IR6,IR7,IR0;若又出现了IR4请求,处理完IR4后(IR5变为最高优先级) ,队列变为IR5,IR6,IR7,IR0,IR1
58、,IR2,IR3,IR4。 (4) 优先级特殊循环方式 该方式与优先级自动循环方式相比,不同之处在于可以设置开始的最低优先级。例如,最初设定IR4为最低优先级,那么IR5就是最高优先级,而优先级自动循环方式中,最初的最高优先级一定是IR0。,中断优先级管理方式,3.5 可编程中断控制器8259A,87,(5) 查询方式 这种方式下,CPU的IF位为0,禁止外部的中断请求。外设仍然向8259A发中断请求信号,要求CPU服务,此时,CPU需要用软件查询方法来确认中断源,从而实现对外设的服务。CPU首先向8259A发查询命令,紧接着执行一条输入指令(IN),从8259A的偶地址读出一个字节的查询字,
59、CPU读入查询字后,判断其最高位,若最高位为1,说明8259A的IR端已有中断请求输入,此时该查询字的最低三位组成的代码表示了当前中断请求的最高优先级,CPU据此转入相应的中断服务程序。,中断优先级管理方式,3.5 可编程中断控制器8259A,查询字格式,=1表示有中断请求; =0表示无中断请求。,给出当前处理的最高优先级,88,(1) 普通屏蔽方式 通过对中断屏蔽寄存器(IMR)的设定,实现对中断请求的屏蔽。 (2) 特殊屏蔽方式 当CPU正在处理某级中断时,要求仅对本级中断进行屏蔽,而允许优先级比它高或低的中断进入系统。,中断屏蔽方式,3.5 可编程中断控制器8259A,89,中断结束方式 (1) 一般中断结束方式/普通EOI方式 该方式用于完全嵌套方式下的中断结束。CPU在中断服务程序结束时,向8259A发常规中断结束命令EOI,8259A收到这个EOI命令后,自动将中断服务寄存器ISR中最高优先级的置“1”位清“0”。 (2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西职教高考三套语文模拟试卷信度、效度、难度、区分度四维实证分析
- Agent测试用例设计课程设计
- OpenCV人脸识别实战方案课程设计
- 菜籽油课程设计
- UART通信模块FPGA设计实战课程设计
- 北京鼎石学校课程设计
- 常微分课程设计摘要
- 基于RAG的知识问答系统设计课程设计
- 基于NLP的情感分析工具在介绍课程设计
- 深度强化学习游戏AIAtari深度优化课程设计
- 市场培训之地推基础培训
- 课堂管理的方法和技巧
- 出版从业考试财务知识点及答案解析
- 耳鼻喉科感染预防综合措施
- 喷漆设备租借合同范本
- 2025年斗轮机司机题库及答案(可下载)
- 食品生产车间三级安全培训课件
- (2024版)人教版 小学体育与健康 一年级全一册 教学设计
- 2024版2025秋季新人教版三年级上册数学全册核心素养教案教学设计
- 红细胞计数课件
- 二手手机回收协议合同
评论
0/150
提交评论