微机接口技术实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微机接口技术实验报告实验三:IO地址译码器编程实验四:简易中断优先权分析器编程系别:计算机科学与技术完成时间:2012-5-29实验三IO地址译码器编程一、实验内容使用一片74LS00(4X二输入与非门),一片74LS30(八输入与非门)和一片74LS138(3-8译码器)设计一个固定地址译码器:使用10位地址线(A0–A9);译码器地址段的CS信号:280H—287H,288H—28FH,290H—297H,298H—29FH2A0H—2A7H,2A8H—2AFH,2B0H—2B7H,2B8H—2BFH;控制信号AEN,IOR,IOW(三个信号均为低电平有效)参与译码,可实现对指定单元的读写。二、实验要求所有地址段的CS信号都必须通过仿真测试验证;验证控制信号AEN,IOW,IOR的作用。三、实验分析1、IO地址译码地址译码是指通过CPU发出的地址码来识别和确认与之交换信息的端口。译码电路的具体功能是,将CPU发出的地址码经过译码产生选择I/O接口的片选信号。只有当I/O端口所在的I/O接口与译码电路相连接的片选信号CS̅̅̅有效时,该接口电路上的I/O端口才能被CPU访问,从而实现CPU和I/O设备之间的信息交换。PC机I/O端口地址译码器的设计遵循以下两个设计原则:第一,正确识别I/O端口操作周期。由于PC机中I/O端口操作和DMA操作使用相同的地址线、数据线和读/写控制信号。区别这两种操作的信号是AEN。在DMA操作周期时,AEN有效,为高电平;而在I/O端口操作时,AEN无效,为低电平。第二,减少译码电路器件的延时。在系统中,IOR̅̅̅̅̅或者IOW̅̅̅̅̅̅信号的有效仅比端口地址有效落后半个时钟周期。如果译码电路过长将导致输出无效信号等等后果,这种情况下可采用的方法是减少译码电路门级数或者高速门电路。固定式端口地址译码器可以采用集成译码器辅以门电路译码来获得多个端口地址。最常用的3-8译码器74LS138,它有A,B,C共三个输入端和𝑌0̅~𝑌7̅共8个输出端,其输出端为低电平有效。3-8译码器的芯片引脚图和真值表如图1和表1.图1中A,B和C为输入端,𝐺3和𝐺2𝐴̅̅̅̅̅、𝐺2𝐵̅̅̅̅̅为控制端,其他的Y为输出端。真值表中,三个输入端共有8种组合,每一种情况对应于一个输出端为低电平,此外,还有三个控制端,只有G1为高电平,另两个控制信号为低电平时有效。图13-8译码器𝐺1𝐺2𝐴̅̅̅̅̅𝐺2𝐵̅̅̅̅̅CBA输出100100100100100100100100000001010011100101110111仅𝑌0为0仅𝑌1为0仅𝑌2为0仅𝑌3为0仅𝑌4为0仅𝑌5为0仅𝑌6为0仅𝑌7为0其他状态XXX全检出1表13-8译码器真值表2、固定地址译码器由74LS00和74LS30、74LS138组成的固定地址译码器的电路如图2所示。输出信号cs(0to7)由输入端信号A3-A5和控制信号控制,其他的4个输入信号A6-A9全为低时整个电路有效。当AEN为低时,整个电路可以进行片选,对应的输入信号(A3-5)与输出信号为000-11111110,001-11111101,010-11111011,011-11110111,100-11101111,101-11011111,110-10111111,111-01111111。读信号为上升脉冲时有效,可进行译码。当AEN为高时,整个电路不可以进行译码,输出信号均为111111111。图2固定地址译码器由上述逻辑电路,可以推导出以下逻辑表达式:𝐸2̅̅̅=AEN·IOR̅̅̅̅̅·IOW̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅即𝐸2̅̅̅=AEN̅̅̅̅̅̅+IOR̅̅̅̅̅·IOW̅̅̅̅̅̅。因此,只有当片选信号AEN为低时可以进行译码。四、实验步骤与截图1、ISE新建工程(1)启动ISE13.1软件;(2)新建工程,路径为file-newproject,在弹出的窗口中输入要新建工程的名字和地址,各个参数设置如下:family(AutomotiveSpartan3)device(XA3S200)package(PQG208)speed(-4Q)SynthesisTool(XST)Simulator(Isim)在PreferredLanguage中选择VHDL一栏,点击next可以查看工程信息,建立完毕;(3)给工程添加新的文件。右键单击工程,然后添加需要添加的文件,这里应该只需添加基本的文件和测试文件即可,或者先建立文件,再将代码修改在基本文件中即可;(4)在Synthesize中选择check进行编译,出现绿色对勾即可;(5)添加测试文件。路径为project-newsource,选择VHDLTest文件,然后编写测试文件;(6)双击process窗口的SimulatorBehavior可以查看仿真图形。2、实验截图。实验主要截图三张,分别为第一次实验时控制信号en循环结束不置0(如图3)与置0(如图4)的仿真图形,以及当片选信号AEN为高时的仿真图形(如图5)。图3循环置0后的仿真图形图4循环不置0后的仿真图形批注,上述截图好像出错了,应该是在上升沿阶段是没有其他的cs信号的,截图失误。正确的截图应该如下。图5片选信号为低时仿真图形五、实验代码1、VHDL基本文件------------------------------------------------------------------------------------Company:--Engineer:----CreateDate:13:21:5804/17/2012--DesignName:--ModuleName:ad-ad_Behavioral--ProjectName:--TargetDevices:--Toolversions:--Description:----Dependencies:----Revision:--Revision0.01-FileCreated--AdditionalComments:------------------------------------------------------------------------------------libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;----Uncommentthefollowinglibrarydeclarationifinstantiating----anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entityadisPort(addr:inSTD_LOGIC_VECTOR(3to9);aen,iow,ior:inSTD_LOGIC;cs:outSTD_LOGIC_VECTOR(7downto0));endad;architecturead_Behavioralofadissignalen:std_logic;signalout_temp:std_logic_vector(7downto0);beginout_temp(7downto0)=11111110whenaddr(3to5)=000else11111101whenaddr(3to5)=100else11111011whenaddr(3to5)=010else11110111whenaddr(3to5)=110else11101111whenaddr(3to5)=001else11011111whenaddr(3to5)=101else10111111whenaddr(3to5)=011else01111111whenaddr(3to5)=111;process(addr,aen,iow,ior)beginen=not((notaddr(6))andaddr(7)and(notaddr(8))andaddr(9)and(notaen)and(not(iowandior)));foriin7downto0loopcs(i)=out_temp(i)oren;endloop;en='0';endprocess;endarchitecturead_Behavioral;2、test文件主体代码aen=0;addr=”0000101”;ior=0;wait1ps;ior=1;iow=0;wait10ps;addr=”0010101”;ior=0;wait1ps;ior=1;iow=0;wait10ps;addr=”0100101”;ior=0;wait1ps;ior=1;iow=0;wait10ps;//依次设置其他的仿真信号,程序本来的时钟频率应该删除,为了保证ior有一个上升沿脉冲因此设置了一个1ps的脉冲信号实验四简易中断优先权分析器编程一、实验内容及要求用VHDL语言设计一个简易中断优先权分析器。1)参考教材8259A优先权分析器逻辑框图.2)不考虑IMR屏蔽功能,8路中断直接进入优先权分析器.3)ISR的内容以3位二进制编码,从外部输入比较器4)不考虑多重中断.既假定每次只有一个中断发生.要求仿真验证优先权分析器的实际效果。二、实验分析1、中断CPU在正常运行程序时,由于内部/外部事件或程序本身的原因等中断正在运行的程序,转到为中断事件服务的程序中去执行,而在服务完毕后再返回执行源程序,这一过程称为中断。现代微机的中断有外部硬件中断、非屏蔽中断、软件中断和内部中断与异常四种类型。系统对于中断按其优先级的高低依次提供服务。每个中断和异常都指定了一个类型号代表不同的优先级,类型0代表最高优先级的中断,类型255代表最低优先级的中断。优先级的重要性在于,如果已经启动了某些优先级的中断服务程序,那么只要更高优先级的中断请求才允许打断该服务程序的运行。低优先级的中断请求将等待,直到当前中断服务程序结束。出于这个原因,用户通常将不能经常被打断的任务指定较高优先级,而可以被打断的则指定较低优先级。IMR是中断屏蔽寄存器,它对中断请求IR起屏蔽作用,这里忽略它的影响。ISR是中断服务寄存器,在中断响应之后,第一个获准中断请求的中断级在相应的ISR中置1。ISR用来存放正在被服务的中断,包括尚未服务完而被优先级更高的中断打断的中断。2、中断优先权分析器8路中断直接进入优先权分析器,设定ISR值,如果进入优先权分析器的中断级别比ISR高,则将结果INT置为1,否则将INT置为0。例如,8路中断为0001100,ISR设置为011,显然不能发生中断响应,即INT的值为0;如果8路中断为00000010,那么优先级比ISR高,就会发生中断响应,同等优先级不能发生中断响应。参考教材的8259中断系统,可以编程实现中断优先权分析器。三、实验截图四、实验代码1、主体源代码------------------------------------------------------------------------------------Company:--Engineer:----CreateDate:20:37:3005/22/2012--DesignName:--ModuleName:MY8259A-Behavioral--ProjectName:--TargetDevices:--Toolversions:--Description:----Dependencies:----Revision:--Revision0.01-FileCreated--AdditionalComments:----------------------------------------------------

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功