《毕业设计(论文)基于FPGA的微机原理与接口技术试验平台设计(8255和8253).doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于FPGA的微机原理与接口技术试验平台设计(8255和8253).doc(41页珍藏版)》请在三一办公上搜索。
1、 基于FPGA的微机原理与接口技术实验平台设计专业:计算机科学与技术 姓名: 指导老师:摘 要: 本文就基于FPGA微机与接口实验平台设计的问题,首先讲述了FPGA、VHDL以及Modelsim开发软件。其次构建了整个实验平台,包括FPGA核心板的设计。在FPGA基础上,以可编程计数器/定时器8253和可编程并行控制器8255为例,并介绍了8255和8253接口芯片,用VHDL语言设计了8255和8253的功能,最后在ModelSim SE开发软件上实现了编译、调试、仿真。关键词: FPGA核心板,8253芯片,8255芯片,ModelSim SEabstractAbstract: In th
2、is paper, based on the PC and the interface experimental platform FPGA design problem, first about the FPGA, VHDL and Modelsim software development. Secondly, the whole experiment platform was constructed, including the FPGA core board design. Based on the FPGA, programmable counter / timers and pro
3、grammable parallel controllers 8253 8255, for example, and introduced the 8255 and 8253 interface chip, using VHDL language design 8255 and 8253 function, the last in ModelSim SE Development the software compilation, debugging, simulation.Keyword: FPGA 8253chip 8255 chip ModelSim SE目录基于FPGA的微机原理与接口技
4、术实验平台设计1第一章 绪论11.1研究背景11.2研究现状21.3研究目的与意义31.4 本文的结构框架及要解决的问题3第二章FPGA、VHDL及开发环境简介42.1 FPGA简介42.1.1定义42.1.2工作原理42.1.3 FPGA芯片的内部结构52.2 VHDL概述52.2.1 VHDL的由来52.2.2 VHDL的特点52.2.3 VHDL的描述风格62.2.4 VHDL基本程序结构72.3 Modelsim SE72.3.1 版本类型72.3.2 仿真过程72.3.3 窗口组成8第三章 实验平台的构建83.1平台的需求分析83.1.1 微机型号的选择83.1.2平台的使用对象83
5、.1.3平台的仿真对象93.2 基于FPGA的整个实验平台的组成93.3 FPGA核心板设计103.3.1 外存储芯片113.3.2 时钟与电源系统123.3.3 扩展总线与调试元件123.4微机接口硬件实验123.4.1熟悉MUT型实验箱133.4.2 8253定时器的应用143.4.3 8255并行接口应用143.4.4 8250串口实验15第四章 IP核的设计以及实验设计164.1 8255芯片介绍164.1.1 8255接口芯片的主要技术指标164.1.2 8255接口芯片引脚功能174.1.3 8255接口芯片的内部结构184.2 8255可编程I/O接口芯片设计194.2.1 82
6、55的工作方式编程194.2.2控制寄存器的编程方法204.2.3 8255方式0的编程214.2.4 8255位操作224.3 8255IO芯片的程序设计234.3.1锁存器234.3.2三态缓冲器244.3.3组合控制逻辑及8255的VHDL语言描述244.4 8253芯片介绍254.4.1 定义254.4.2 8253接口芯片的主要技术指标254.4.3 8253接口芯片引脚功能264.4.4 8253接口芯片的内部结构274.5 8253可编程I/O接口芯片设计284.5.1 8253的工作方式编程284.5.2控制寄存器的编程方法284.5.3工作方式选择29第五章 编译、调试、仿真
7、30第六章 本文总结31参考文献32答 谢33第一章 绪论1.1研究背景世界上的第一个电子管式的计算机在1946年诞生,计算机从外部形状、计算速度到内部的结构使用材料等都发生变化,并且微电子技术对计算机的发展非常重要。在计算机对人类社会影响越来越大的同时,学习计算机的基础架构和相关接口技术,已成为十分基础和必要的要求,微机原理与接口技术也已成为当今大学本科计算机相关专业学生的必修课之一。随着计算机技术的快速发展,人们生活的世界正逐步走向数字化、网络化、信息化和智能化,计算机作为最重要的基础设备为整个社会的高速发展提供了有力的支撑,计算机作为当今社会一种最为常见的智能控制设备,已被几乎所有产业广
8、泛的使用,并不断扩展着它的应用前景。在微机原理与接口技术相关教学工作中,实验教学是一个十分重要的环节,尤其是在对相应应用型人才的培养过程中,实验教学的效果直接影响着教学质量。如果学生在实验这个环节上得不到足够的时间来进行实践和创新,就不能深刻地理解课本上的理论知识,还可能会对这门课程的学习缺乏兴趣。那么再想胜任之后更为复杂的工程项目就变得更加困难,甚至无法实现。与此同时,国内高校为了提高教学质量,也都在积极的寻求回避实验室的高成本支出。于是,基于计算机仿真技术的虚拟实验解决方案和虚拟实验室技术成为了教育界关注的焦点。1.2研究现状虚拟实验室这个概念虽然仅提出了二十年左右,但是拥有着广阔的发展前
9、景,世界各地的实验室都在着力进行相关的研究与开发工作。国外的很多大学都已经建立了远程虚拟实验室。国外虚拟实验室中典型成果有:美国linois大学的Nmrscope系统,任何拥有授权的用户都可以通过互联网来访问该系统,从而使用系统内的虚拟仪器。例如,某用户想使用该系统中的虚拟核磁共振仪,那么该用户首先需要获得该大学的授权,然后向Nmrscope系统提交一个实验样品,系统会返回一些仪器的设置表格和功能清单,用户按照实验步骤进行相关的实验操作后,就能够看到系统生成的实验结果,整个实验过程是通过远程虚拟实验实现的。VETL(Virtual Environment Technology Laborato
10、ry)实验室,在教育方面、训练方向和科学工程的数据可视化都能应用虚拟现实技术,并且该技术能用VETL实验室来完成。休斯敦大学与NASA/Jhnson航天中心合作,一起建立了该实验室。其研究成果主要为以下几个方面:科学教育领域中的虚拟现实技术,该虚拟实验室研究了生物分子、海洋、物理天体、原子核等多个科学领域。开发了一款虚拟三维环境工具,对使用者的要求很低,用户可使用该工具简单的创建多感知的、连接到特定硬件上的虚拟三维环境。国内虚拟实验与国际方面相比发展速度缓慢,为了紧跟国际虚拟实验室的发展,中国的许多大学逐渐开始注重相关方面实验室的建设,并引起了教育部的重视。例如,北邮与北京润尼尔网络科技有限公
11、司一起研究了网络模拟实验室OWVLab,该实验室在网络教学方面已经开始使用。因此我国的模拟实验室的研究、设计以及推广应用范围较窄还不成熟,技术方面需要需要想国外虚拟实验室深入学习与研究。1.3研究目的与意义微机原理与接口技术是一门理论与实践相辅相承的课程,除了通过教师在课堂上对理论层次的讲解,还需要学生通过实验环节来具体实践,以达到提高学生应用开发能力的教学目标。然而,由于我国各高校目前普遍存在扩招后学生人数不断增加,而绝大部分高校的资金成本预算又不足,造成了实验室的实验设备不能及时地补充和更新,且实验器材又是易损难修的设备。 如果学生在实验这个环节上得不到足够的时间来进行实践和创新,就不能深
12、刻地理解课本上的理论知识,还可能会对这门课程的学习缺乏兴趣。那么再想胜任之后更为复杂的工程项目就变得更加困难,甚至无法实现。与此同时,国内高校为了提高教学质量,也都在积极的寻求回避实验室的高成本支出。1.4 本文的结构框架及要解决的问题 首先研究FPGA的工作原理以及FPGA芯片的内部结构,以及VHDL硬件编程语言的由来、特点、描述风格和基本和基本程序结构,Modelsim主要版本类型、如何进行仿真以及窗口组成。其次构建了整个实验平台,主要包括FPGA核心板的设计与实现,微机接口IP核开发及实验设计,实验程序开发工具的设计与实现三个部分。解决了如下问题:(1)FPGA的核心板的功能分析、结构组
13、成以及核心器件的选用(2)外存储片的选用,电压的确定(3)扩展总线与调试元件的设计(4)各器件在实验平台上的布局最后以8255接口芯片的功能设计为例进行说明,包括工作方式的编程、控制寄存器的编程方法,8255芯片的程序设计包括锁存器、三态缓冲器、组合控制逻辑,8255接口芯片的VHDL言语描述。并解决了如下问题:(1)如何调用VHDL语言的IEEE库。(2)如何用ENYIYT对8255芯片的外部端口进行描述,即对输入、输出端口进行说明。(3)如何用ARCHITECTURE描述8255芯片的电路功能与结构,可分为:行为描述、逻辑(数据流)描述、结构描述。(4)用PROCESS语句对构造体的行为作
14、具体描述。 (5)用Modelsim SE软件进行仿真并对结果进行分析。第二章FPGA、VHDL及开发环境简介2.1 FPGA简介2.1.1定义FPGA即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。2.1.2工作原理 FPGA采用了逻辑单元阵列LCA,内部包括可配置逻辑模块CLB、输入输出模块IOB、和内部连线(Interconnect)三个部分。2.1.3 FPGA芯片的内部结构可编程输入输出单元(IOB)、可配置逻辑块(CLB)、 数字时钟管理模块(DCM)、嵌入式块RAM(BRAM)、丰富的布线资源(全局布线资源、长线资源、短线资源、分布式的布线
15、资源)、底层内嵌功能单元、内嵌专用硬核。2.2 VHDL概述2.2.1 VHDL的由来因为双方使用的硬件编程语言各不相同,兼容性非常差,研究的成果不能互相借鉴使用,致使公司开发硬件成本很高。为解决这个问题,1983年提出了硬件描述语言标准化的问题。经过IEEE组织的多年的修订,成立了很多VHDL版本如87版、93版等。要想完全学会VHDL语言,需要大量的时间来研究,并且要有C语言基础,会进行二进制数值计算,懂数字电路以及一些计算机基础知识。2.2.2 VHDL的特点 VHDL语言是一种硬件描述语言,和其他高级语言许多形似之处。该语言与硬件密切相关,在进行集成电路设计时,应特别注意节省硬件资源。
16、VHDL语言中的语句大部分是并行语句,但其语句格式和C语言有非常大的相似之处。具体特点如下:1、VHDL语言以行为描述为特点,对电子实体的各种功能,从非常抽象的角度进行描述,即行为描述。2、VHDL语言以结构化为特点,因而能从比较具体的角度描述电子实体的结构,即结构描述。3、VHDL语言以混合描述为特点,可以从抽象到具体全方位描述电子实体,以满足设计人员的需求。4、VHDL语言重复性好,其描述与具体的生产工艺没有关系,不同的生产工艺与不同的工作库相对应。只要设计合理,生产工艺进步,便可采用新的工作库。重新布版布图便能使用。5、VHDL语言可读性好,是一种高级语言描述电子实体,容易理解。VHDL
17、语言被认为既可以设计实现,有可以技术说明,集设计与说明之优点。2.2.3 VHDL的描述风格在VHDL结构体中,有3种不同的描述方法分别为:逻辑(数据流)描述、行为描述、结构描述。此三种方法相互配合共同完成VHDL结构体的设计。数据流描述,以电子实体的逻辑表达式、逻辑真值为依据,并对电子实体进行描述。逻辑描述用与:并行信号赋值语句及其其他表达形式,即条件赋值语句和选择信号赋值语句。逻辑描述特点鲜明即程序结构简单、容易逻辑综合、综合效果最优化。行为描述不包含电子实体内部的任何结构信息,故行为描述语句多种多样、各不相同。进程语句是构造体行为描述的最基本语句,它对硬件依赖程度较低而且程序结构简单。结
18、构描述是最常用的描述方法之一,就是把一个复杂的电子实体按电路功能不同划分成若干模块。2.2.4 VHDL基本程序结构如果需要完整的VHDL程序需要有以下几个方面组成:库:经编译后的数据集合,它存放包集合定义、实体定义、构造体定义和配置定义,总是放在设计单元的最前面。程序包:声明在设计中用到的数据类型、字程序包等。实体:定义输入输出端口。结构体:是一个基本设计单元的实体,它具体说明了该基本设计单元的行为、元件及内部结构的连接关系,也就是说它定义了设计单元的具体功能。配置:为实体选定某个特定结构体。2.3 Modelsim SE2.3.1 版本类型ModelSim PE:是用在windows平台下
19、面。ModelSim LE:是用在Linux平台下面ModelSim SE:在AIX, HP-UX, LINUX ,SOLARIS,windows平台下都可以用,另外SE版本比另外两种版本功能多一些。2.3.2 仿真过程(1)建立工程:File-New-Project(2)添加源文件和testbench并编译 :Add Exisiting File,将待访问的文件添加至工程。 (3)启动仿真并查看结果:在Project视图中右键单击,选择菜单-Compile-CompileAll。(4)调试:在源文件中设置断点,访问至断点时,会暂停。2.3.3 窗口组成ModelSim窗口众多,功能较复杂,其
20、中常用的窗口有7类窗口分别为:主窗口(main)、源代码窗口(source)、结构窗口(struct)、进程窗口(process)、波形列表窗口(wave)、数据流窗口(dataflow)、信号和变量窗口(signal&variable)。第三章 实验平台的构建3.1平台的需求分析在实验平台的设计之前,为了更好的实现微机接口实验平台的功能,满足实验要求以及使学生深入了解微机原理课程,要进行对实验平台需求的分析,主要从三个方面讲述包括微机型号的决定、什么对象可以用该平台和仿真对象。3.1.1 微机型号的选择 该实验平台配置8086微处理器,因大多数高校的微机原理与接口技术理论实用教程都是以808
21、6处理器为基础,所以配置8086处理器能够与微机接口这门课程更好的配合使用。3.1.2平台的使用对象本平台主要在教师资源不够、资金不充足以至于不能够维护实验室的大学。配有微机原理与接口实验室各种硬件,但是希望更加容易使用的设备以配合教学的高校。3.1.3平台的仿真对象总结微机接口实验室用到的各种硬件,本实验平台需要仿真的对象包括8086处理器、设备实验台(8255并行口、8259中断控制器、8253定时器、LED灯、数码管、单脉冲源、电源等)。3.2 基于FPGA的整个实验平台的组成本文所设计的实验平台主要有以下几个模块组成:(1) FPGA核心板:并且实现一个USB接口,便于与PC机连接。(
22、2) X86核心板:有一个RS232接口,与PC机连接并且用来下载实验程序。(3) 2个组模块:用于连接FPGA核心板和X86核心板,使2个核心板与外围接口芯片连接,这样可以大大节省底板空间。(4) PC机、X86核心板、底板、扩展总线接口:X86核心板实现了FPGA核心板与X86核心板的通信,并用扩展总线接口连接到底板。整个实验平台如图3.1所示:图3.1 实验平台结构3.3 FPGA核心板设计本文整个实验平台的硬件核心部分是FPGA核心板,下面就整个 FPGA核心板设计、功能分析,来介绍其主要的功能模块和完整的结构框架。其整体结构如图3.2所示图3.2 FPGA结构框架FPGA核心器件选用
23、的是Altera公司的Cydone11EPZC20芯片,该芯片处理效率高,而且逻辑单元非常多,并且价格低廉。该芯片主要有输入输出单元、乘法器、存储器、逻辑阵列块组成。因为微机接口实验所要传输的数据一般较小,所以其能满足实验的要求。其内部组成结构如图3.3所示图3.3 Cydone11EPZC20芯片内部结构3.3.1 外存储芯片本实验平台结合引脚的数目以及FPGA上要与外围存储部件兼容的要求,选用如下3种类型的存储芯片如图3.4所示,该三种芯片引脚总和为102,因此需要FPGA上的102个I/O引脚,所以FPGA核心板只剩下26个引脚。为了节省引脚资源,必须要采用复用的方法。并且接口芯片与FP
24、GA的工作电压均为3.3V。图3.4 存储芯片3.3.2 时钟与电源系统FPGA核心板需要提供3.3V和1.2V的供电,FPGA核心板采用4层PCB设计,中间两层为电源层和地层,3.3V和1.2V将电源层分割为两部分使用。共有16个引脚在CyclonellEpZCZOQ24OCS芯片上,并且配置2个晶振,共三方面的使用。一部分用于时钟信号的输入,另一部分用于连接FPGA芯片和下载电路,剩下的用于输入引脚和底板。3.3.3 扩展总线与调试元件 通过共用SRAM和Flash芯片的数据总线和地址总线,最终可以提供给底板的IO引脚有64个。为便于系统升级,FPGA核心板与底板之间的接口采用96脚插针。
25、FPGA核心板配有4个LED灯和4个按键,分别与FPGA的1/0引脚相连。3.4微机接口硬件实验微机原理与接口技术的教学实验内容十分丰富,可以很好的调动学生的学习热情,在感兴趣的情况下完成各项实验教学活动,微机原理与接口技术实验又分为软件实验和硬件实验,本节中的实验主要是指微机原理与接口技术硬件实验。微机接口硬件实验使用微型计算机搭配相应的实验箱/实验台来进行实验教学活动的特点,决定了其高可拓展性,因为微机型号和实验箱/实验台的型号繁多,其组合更是多种多样,在挑选过程中,微机和实验箱/实验台的搭配十分关键。由于微机原理与接口技术实验的高可拓展性,本节只能就其基础实验进行简单的介绍,硬件环境应用
26、的是8086处理器和MUT型实验箱,具体实验如下。3.4.1熟悉MUT型实验箱1、实验目的(1)通过该实验掌握端口的地址译码电路。(2)通过实验了解和熟悉MUT型实验箱,功能及使用方法。2、实验内容完成1/0端口地址译码电路的设计,能够译出Y0为230H-23IH,Yl为232H-233H,Y2为234H-235H,Y3为236H-237H.Y7为23EH-23FH的口地址译码电路。3、实验步骤步骤一、按提前画好的电路连接线路。步骤二、接好芯片电源(+3V)。步骤三、检查线路无误后,输入程序。4、实验器材(1)MUT型实验箱(2)微机一台(3)示波器一台(4)芯片74LS00、74LS138、
27、74LS1393.4.2 8253定时器的应用1、 实验目的(1)了解8253定时器的编程原理。(2)用示波器观察8253在不同工作方式下的的波形图。2、实验内容(1)观察8253定时器输出波形并检测门控信号(GATE)对波形的作用 步骤一、进行硬件连接 步骤二、定时器0为工作方式1并编程。 步骤三、定时器1为工作方式1(可编程单稳)。 步骤四、记录定时器0与定时器1的输出波形(2)利用实验台上8253计数器0的工作方式3做个实时时钟。3、 实验步骤(1)按图连线,经查无误后方可开启电源。(2)运行调试程序,程序无误,即应产生时钟显示。4、实验器材(1)PC机一台(2)MUT型实验箱(3)82
28、53芯片(实验箱上已有)(4)万用表,示波器,导线若干3.4.3 8255并行接口应用l、实验目的(1)掌握8255的功能及方式O、1的实现。(2)熟悉8255与CPU的接口。2、实验内容方式1的实现,实验步骤: 步骤一、首先连线8255中A端口地址218H,B端口地址219H,C端口地址21AH,控制地址21BH。 步骤二、在此调试程序,并按单次脉冲(发中断),观察LED是否与此时的开关Kl一KS状态一样。 步骤三、改变Kl一KS状态,重复2,进行观察。3、实验器材(1)PC机一台(2)MUT型实验箱(3)示波器(4)万用表3.4.4 8250串口实验1、实验目的 (1)了解串行通信的基本原
29、理和8250工作方法。 (2)了解RS-232串行接口的标准及怎么连接。 (3)掌握8250芯片的编程方法和原理。2、实验内容 当MUT型实验箱与PC机(上位机)能够串行通信时,主机每次下传一个字符,如通讯正常则下位机返回一个相同的字符,如果不正确,则无返回或者不相同。3、实验步骤 (1)实验接线 利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2)(2)编写程序 (3)在实验箱上配有编译系统,下载并运行实验程序。(4)实验箱退出系统。4、实验设备(1)PC机一台(2)MUT型实验箱(3)示波器第四章 IP核的设计以及实验设计 四个典型接口芯片IP核的设计,包括可编程串行控制器82
30、50,可编程计数器/定时器8253,可编程并行控制器8255,及相应的实验设计。下面以8255接口芯片和8253接口芯片为例进行说明4.1 8255芯片介绍4.1.1 8255接口芯片的主要技术指标8255是有美国Intel设计生产的多功能可编程I/O接口芯片,其主要技术指标如下:(1) 与Intel公司设计生产的微处理器和单片机完全兼容,也可以用于其他微处理器和单片机作I/O接口扩展。(2) 其输入输出接口逻辑电平与TLT系列集成电路兼容。(3) 时序特征进行了改进。读写采用异步操作,增强其兼容性。(4) 对控制寄存器的控制位(二进制位)可用直接置1或0进行操作,改善了对PC口的控制特征。(
31、5) 提高I/O口的电流驱动能力。(6) 简化硬件电路结构。(7) 采用40脚封装。4.1.2 8255接口芯片引脚功能8255芯片双列直插封装引脚排列如图4.1所示,每个引脚的功能定义如下:图4.1 8255引脚D0D7:8位三态双向数据总线,传送输入和输出8位数据 :读信号线,当该脚输入低电平时,允许微处理器或单片机读出8255相关寄存器的数据。:写信号线,当该脚输入低电平时,允许通过数据总线传送的数据写入8255对应的数据寄存器。 :片选线,当该脚输入低电平时,允许微处理器、单片机与8255进行数据传输。RESET:复位线,当该脚输入高电平时,所有内部寄存器清零,I/O口均被置为输入方式
32、。A0,A1:低位地址线,通过内部译码输出4条选择线与片选线(高位地址选择)组合,以确定内部4组寄存器的地址。PA0PA7:8条并行线输入输出线,称PA口。PB0PB7:8条并行线输入输出线,称PB口。PC0PC7:8条多功能I/O线,称为PC口。4.1.3 8255接口芯片的内部结构数据总线缓冲器有8位三态双向缓冲器组成,用于与外围进行8位并行数据传输。控制寄存器是8位只写锁存器,存储用于对8255的工作方式和位 操作编程的控制字。地址译码器有2输入(A1、A0)4输入译码器组成、译码器4条输出(低位地址)选择线与片选(CS)线(高位地址选择)组合,以确定内部4组寄存器的地址。I/O口控制逻
33、辑有A、B两组控制逻辑组成,实现I/O口的方式选择和输入等功能的控制。I/O口输入输出锁存器与缓冲器有3组8位锁存器和寄存器组成,其输入输出状态有A、B两组控制逻辑决定。读、写、片选、复位控制线完成读数据、写数据、地址选择、复位状态等操作。8255芯片的内核结构框图如图4.2:图4.2 8255内部结构4.2 8255可编程I/O接口芯片设计4.2.1 8255的工作方式编程8255共有3种工作方式:方式0、方式1和方式2,。3个IO口的工作方式有对应的控制寄存器编程实现。方式0基本输入输出方式,方式0常用于无条件查询传送。工作方式0的时序要求如图4.3:图4.3 工作方式0的时序方式1选通输
34、入输出方式,方式1常用于条件查询传送或中断传送。工作方式1的时序要求如图4.4:图4.4 工作方式1的时序方式2双向输入输出方式,方式2常用于条件查询传送或中断传送。工作方式2的时序要求如图4.5:图4.5 工作方式2的时序4.2.2控制寄存器的编程方法控制寄存器是8位可编程寄存器,其编程方法如下: Bit 7 6 5 4 3 2 1 0 控制寄存器: Bit 6 5 0 0 -PA 口、PC4PC7编为方式0 0 1 -PA口、PC4PC7编为方式1 1 X -PA口、PC4PC7编为方式2 4.2.3 8255方式0的编程8255方式0的编程方法如下:把控制寄存器的Bit7位置1,是825
35、5处于工作方式选择状态。Bit2=0 PB口,PC0PC3变为方式0。Bit6、5=00 PA口,PC4口PC7编为方式0。由Bit0编程决定PC口低四位(PC0PC3)输出(Bit0=0)和输入(Bit0=1)的方向。由Bit1编程决定PB口8位IO线的输出(Bit1=0)和输入(Bit0=1)的方向。由Bit3编程决定PC口4位(PC4PC7)输出(Bit3=0)和输入(Bit3=1)的方向。由Bit4 编程决定PA口8条IO线的输出(Bit4=0)和输入(Bit4=1)的方向。例如:把8255编为方式0,A编为输出,B口编为输入,C口的低4位编为输出,高4位变为输入。控制寄存器应设置为:
36、 Bit 7 6 5 4 3 2 1 0 100010104.2.4 8255位操作8255位控制寄存器的最高为 Bit7=1时,用Bit0、Bit1、Bit3、Bit4四个二进制编程,分别控制PC口的低4位、PB口8位、PC口高4位和PA口8位IO的输出、输入方向。其输出是按PA、PB、PC三个口分别输出8位二进制数,不能给每条I/O线单独编程,实现每条IO线的输出清零或置1。 位增加8255对IO线输出控制的灵活性,当最高位Bit7=0时,8255定义一种位操作方式,通过编程决定PC口每条IO线的清零或置1,但每次只能确定PC口一条IO线的输出值,其编程方法如下:控制寄存器: Bit 7
37、6 5 4 3 2 1 0 0XX XX Bit 3 2 1 PC口对应位 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC74.3 8255IO芯片的程序设计从8255的内部结构框图可知,该芯片有锁存器、三态输入器和组合逻辑电路组成。4.3.1锁存器在8255芯片中需要定义5个锁存器用于数据锁存。pa_latch:8位PA口输出锁存器;pb_latch:8位PA口输出锁存器;pcl_latch:PC口低4位输出锁存器;pch_latch: PC口高4位输出锁存器;ctrreg: PC口
38、高4位输出锁存器;4.3.2三态缓冲器在8255芯片中需要定义4个双向数据缓冲器:D:8位双向数据总线数据缓冲器;pa:PA口;pb:PB口;pc:PC口;4.3.3组合控制逻辑及8255的VHDL语言描述由片选CS与A1、A0组成的2输入(A1、A0)和4输出译码器,决定4组寄存器的地址。读、写、复位线的控制逻辑电路。8255接口芯片程序设计由3部分组成:(1) 库语句描述:调用IEEE标准资源库中的三个子程序包:std_logic_1164、std_logic_arith和std_logic_uniged子程序包,以满足设计的需要。 代码:LIBRARY IEEE; USE IEEE.st
39、d_logic_1164.ALL; USE IEEE.std_logic_arith.ALL; USE IEEE.std_logic_unsigned.ALL;(2)8255接口芯片实体描述。外部端口包括rd(读)、wr(写)、cs(片选)、reset(复位)、A1、A0(低2位地址线)、d(8位双向数据线)、pa(8位PA口IO线)、pb(8位PB口IO线)、pcl(低4位PC口IO线)和pch(高4位PC口IO线)等。 实体描述:ENTITY ppi IS PORT(reset,rd,wr,cs,a0,a1:IN std_logic; pa:INOUT std_logic_vector(7
40、 downto 0); pb:INOUT std_logic_vector(7 downto 0); pcl:INOUT std_logic_vector(3 downto 0); pch:INOUT std_logic_vector(3 downto 0); d:INOUT std_logic_vector(7 downto 0);END ppi;(3)8255接口芯片的构造描述。有读进程、写进程、PA口进程、PB口进程和PC口进程等5个进程组成。4.4 8253芯片介绍4.4.1 定义8253芯片是Intel公司生产的为其微处理器配套的通用课编程I/O接口芯片。这类芯片一般只能与本公司设计
41、的微处理器或单片机连接I/O接口扩展。4.4.2 8253接口芯片的主要技术指标8253是有美国Intel设计生产的多功能可编程I/O接口芯片,其主要技术指标如下:(8) 一个8253接口芯片共有3个16位的技术通道,它们是相互独立的,并且每个计数器由2个8位的计数器组成。(9) 技术频率为02.6MHz。(10) 计数格式为二进制或BCD。(11) 每个计数通道有6种工作方式。(12) 可有软件或硬件控制开始计数或停止计数。4.4.3 8253接口芯片引脚功能8253芯片双列直插封装引脚排列如图4.6所示,每个引脚的功能定义如下:(1)数据总线缓冲器(8位、三态、双向)。(2)读/写控制逻辑
42、。CS:片选信号,低电平有效。RD:读信号,低电平有效。WR:写信号,低电平有效。A1、A0:端口选择信号。(3)三个通道。(4)一个控制寄存器。(5)与外设的接口引线:CLK信号时钟输入、GATE信号门控输入、OUT计数输出端。图4.6 8253引脚4.4.4 8253接口芯片的内部结构8253内部结构如图4.7所示,包括数据总线缓冲器、读写逻辑电路、控制字寄存器和计数器。图4.7 8253内部结构 4.5 8253可编程I/O接口芯片设计4.5.1 8253的工作方式编程8253共有6种工作方式:方式0、方式1、方式2、方式3、方式4和方式5。4.5.2控制寄存器的编程方法控制寄存器是8位
43、可编程寄存器,其编程方法如图4.8图4.8控制寄存器(1) D7、D6:计数器选择位。8253芯片共有3个计数通道(通道0、通道1和通道2),它们相互独立,并且都有一个控制寄存器。具体分配如图4.9。SC1SC0所选计数器00110101计数器0计数器1计数器2无意义图4.9 计数器选位(2) D5、D4:读写指示位具体分配如图4.10。 RW1RW0读写格式00110101锁定当前计数值只读写低8位只读写高8位先读写低8位,再读写高8位图4.10 读写指示位4.5.3工作方式选择D3、D2、D1:工作方式选择位M2、M1、M0。8253接口芯片共有6种工作方式可供选择,具体选择哪种工作方式如
44、图4.11所示。D0:数值计数格式位,用来选择计数格式。D0=0,计数器按二进制格式进行计数;D0=1,计数器按BCD码格式进行计数。M2M1M0工作方式选择00xx11001100010101方式0方式1方式2方式3方式4方式5图4.11 工作方式选位第五章 编译、调试、仿真本文的所有模块均用VHDL语言编写,并在Modelsim开发环境下编译、调试、仿真、优化。8255接口芯片其仿真波形如图5.1所示。图5.1 8255仿真图开始先在RESET端设置高电平,使8255接口芯片复位,所以所有端口都处于输入方式。向数据总线D0D7输入FFH,再将数据写入C口,在写操作完成后C口变为FFH。然后再向控制寄存器写位控控制字02H。该字表明将PC1位清零。在写操作完成后,pcl变为DH,表明pcl位已经清零。再改变A口的输入数据,使其成为66H,并将该值写入B口,读A口将得到66H的值并从D0D7输出。改变D0D7数据上的值,使其成为99H,并将该值写入B口,那么在该操作完成后,在B口的输出端可以得到99H输出值。8253接口芯片计数器0工作方式5(硬件触通方式)的仿真波形如图5.2所示。先写入控制字00011010,当GATE为低时,写入计数初值00000110,此