基于FPGA的微机原理与接口技术试验平台设计 8255和8253.docx
《基于FPGA的微机原理与接口技术试验平台设计 8255和8253.docx》由会员分享,可在线阅读,更多相关《基于FPGA的微机原理与接口技术试验平台设计 8255和8253.docx(32页珍藏版)》请在冰豆网上搜索。
基于FPGA的微机原理与接口技术试验平台设计8255和8253
基于FPGA的微机原理与接口技术实验平台设计
专业:
计算机科学与技术姓名:
指导老师:
摘要:
本文就基于FPGA微机与接口实验平台设计的问题,首先讲述了FPGA、VHDL以及Modelsim开发软件。
其次构建了整个实验平台,包括FPGA核心板的设计。
在FPGA基础上,以可编程计数器/定时器8253和可编程并行控制器8255为例,并介绍了8255和8253接口芯片,用VHDL语言设计了8255和8253的功能,最后在ModelSimSE开发软件上实现了编译、调试、仿真。
关键词:
FPGA核心板,8253芯片,8255芯片,ModelSimSE
abstract
Abstract:
Inthispaper,basedonthePCandtheinterfaceexperimentalplatformFPGAdesignproblem,firstabouttheFPGA,VHDLandModelsimsoftwaredevelopment.Secondly,thewholeexperimentplatformwasconstructed,includingtheFPGAcoreboarddesign.BasedontheFPGA,programmablecounter/timersandprogrammableparallelcontrollers82538255,forexample,andintroducedthe8255and8253interfacechip,usingVHDLlanguagedesign8255and8253function,thelastinModelSimSEDevelopmentthesoftwarecompilation,debugging,simulation.
Keyword:
FPGA8253chip8255chipModelSimSE
第一章绪论
1.1研究背景
世界上的第一个电子管式的计算机在1946年诞生,计算机从外部形状、计算速度到内部的结构使用材料等都发生变化,并且微电子技术对计算机的发展非常重要。
在计算机对人类社会影响越来越大的同时,学习计算机的基础架构和相关接口技术,已成为十分基础和必要的要求,微机原理与接口技术也已成为当今大学本科计算机相关专业学生的必修课之一。
随着计算机技术的快速发展,人们生活的世界正逐步走向数字化、网络化、信息化和智能化,计算机作为最重要的基础设备为整个社会的高速发展提供了有力的支撑,计算机作为当今社会一种最为常见的智能控制设备,已被几乎所有产业广泛的使用,并不断扩展着它的应用前景。
在微机原理与接口技术相关教学工作中,实验教学是一个十分重要的环节,尤其是在对相应应用型人才的培养过程中,实验教学的效果直接影响着教学质量。
如果学生在实验这个环节上得不到足够的时间来进行实践和创新,就不能深刻地理解课本上的理论知识,还可能会对这门课程的学习缺乏兴趣。
那么再想胜任之后更为复杂的工程项目就变得更加困难,甚至无法实现。
与此同时,国内高校为了提高教学质量,也都在积极的寻求回避实验室的高成本支出。
于是,基于计算机仿真技术的虚拟实验解决方案和虚拟实验室技术成为了教育界关注的焦点。
1.2研究现状
虚拟实验室这个概念虽然仅提出了二十年左右,但是拥有着广阔的发展前景,世界各地的实验室都在着力进行相关的研究与开发工作。
国外的很多大学都已经建立了远程虚拟实验室。
国外虚拟实验室中典型成果有:
美国linois大学的Nmrscope系统,任何拥有授权的用户都可以通过互联网来访问该系统,从而使用系统内的虚拟仪器。
例如,某用户想使用该系统中的虚拟核磁共振仪,那么该用户首先需要获得该大学的授权,然后向Nmrscope系统提交一个实验样品,系统会返回一些仪器的设置表格和功能清单,用户按照实验步骤进行相关的实验操作后,就能够看到系统生成的实验结果,整个实验过程是通过远程虚拟实验实现的。
VETL(VirtualEnvironmentTechnologyLaboratory)实验室,在教育方面、训练方向和科学工程的数据可视化都能应用虚拟现实技术,并且该技术能用VETL实验室来完成。
休斯敦大学与NASA/Jhnson航天中心合作,一起建立了该实验室。
其研究成果主要为以下几个方面:
科学教育领域中的虚拟现实技术,该虚拟实验室研究了生物分子、海洋、物理天体、原子核等多个科学领域。
开发了一款虚拟三维环境工具,对使用者的要求很低,用户可使用该工具简单的创建多感知的、连接到特定硬件上的虚拟三维环境。
国内虚拟实验与国际方面相比发展速度缓慢,为了紧跟国际虚拟实验室的发展,中国的许多大学逐渐开始注重相关方面实验室的建设,并引起了教育部的重视。
例如,北邮与北京润尼尔网络科技有限公司一起研究了网络模拟实验室OWVLab,该实验室在网络教学方面已经开始使用。
因此我国的模拟实验室的研究、设计以及推广应用范围较窄还不成熟,技术方面需要需要想国外虚拟实验室深入学习与研究。
1.3研究目的与意义
微机原理与接口技术是一门理论与实践相辅相承的课程,除了通过教师在课堂上对理论层次的讲解,还需要学生通过实验环节来具体实践,以达到提高学生应用开发能力的教学目标。
然而,由于我国各高校目前普遍存在扩招后学生人数不断增加,而绝大部分高校的资金成本预算又不足,造成了实验室的实验设备不能及时地补充和更新,且实验器材又是易损难修的设备。
如果学生在实验这个环节上得不到足够的时间来进行实践和创新,就不能深刻地理解课本上的理论知识,还可能会对这门课程的学习缺乏兴趣。
那么再想胜任之后更为复杂的工程项目就变得更加困难,甚至无法实现。
与此同时,国内高校为了提高教学质量,也都在积极的寻求回避实验室的高成本支出。
1.4本文的结构框架及要解决的问题
首先研究FPGA的工作原理以及FPGA芯片的内部结构,以及VHDL硬件编程语言的由来、特点、描述风格和基本和基本程序结构,Modelsim主要版本类型、如何进行仿真以及窗口组成。
其次构建了整个实验平台,主要包括FPGA核心板的设计与实现,微机接口IP核开发及实验设计,实验程序开发工具的设计与实现三个部分。
解决了如下问题:
(1)FPGA的核心板的功能分析、结构组成以及核心器件的选用
(2)外存储片的选用,电压的确定
(3)扩展总线与调试元件的设计
(4)各器件在实验平台上的布局
最后以8255接口芯片的功能设计为例进行说明,包括工作方式的编程、控制寄存器的编程方法,8255芯片的程序设计包括锁存器、三态缓冲器、组合控制逻辑,8255接口芯片的VHDL言语描述。
并解决了如下问题:
(1)如何调用VHDL语言的IEEE库。
(2)如何用ENYIYT对8255芯片的外部端口进行描述,即对输入、输出端口进行说明。
(3)如何用ARCHITECTURE描述8255芯片的电路功能与结构,可分为:
行为描述、逻辑(数据流)描述、结构描述。
(4)用PROCESS语句对构造体的行为作具体描述。
(5)用ModelsimSE软件进行仿真并对结果进行分析。
第二章FPGA、VHDL及开发环境简介
2.1FPGA简介
2.1.1定义
FPGA即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
2.1.2工作原理
FPGA采用了逻辑单元阵列LCA,内部包括可配置逻辑模块CLB、输入输出模块IOB、和内部连线(Interconnect)三个部分。
2.1.3FPGA芯片的内部结构
可编程输入输出单元(IOB)、可配置逻辑块(CLB)、数字时钟管理模块(DCM)、嵌入式块RAM(BRAM)、丰富的布线资源(全局布线资源、长线资源、短线资源、分布式的布线资源)、底层内嵌功能单元、内嵌专用硬核。
2.2VHDL概述
2.2.1VHDL的由来
因为双方使用的硬件编程语言各不相同,兼容性非常差,研究的成果不能互相借鉴使用,致使公司开发硬件成本很高。
为解决这个问题,1983年提出了硬件描述语言标准化的问题。
经过IEEE组织的多年的修订,成立了很多VHDL版本如87版、93版等。
要想完全学会VHDL语言,需要大量的时间来研究,并且要有C语言基础,会进行二进制数值计算,懂数字电路以及一些计算机基础知识。
2.2.2VHDL的特点
VHDL语言是一种硬件描述语言,和其他高级语言许多形似之处。
该语言与硬件密切相关,在进行集成电路设计时,应特别注意节省硬件资源。
VHDL语言中的语句大部分是并行语句,但其语句格式和C语言有非常大的相似之处。
具体特点如下:
1、VHDL语言以行为描述为特点,对电子实体的各种功能,从非常抽象的角度进行描述,即行为描述。
2、VHDL语言以结构化为特点,因而能从比较具体的角度描述电子实体的结构,即结构描述。
3、VHDL语言以混合描述为特点,可以从抽象到具体全方位描述电子实体,以满足设计人员的需求。
4、VHDL语言重复性好,其描述与具体的生产工艺没有关系,不同的生产工艺与不同的工作库相对应。
只要设计合理,生产工艺进步,便可采用新的工作库。
重新布版布图便能使用。
5、VHDL语言可读性好,是一种高级语言描述电子实体,容易理解。
VHDL语言被认为既可以设计实现,有可以技术说明,集设计与说明之优点。
2.2.3VHDL的描述风格
在VHDL结构体中,有3种不同的描述方法分别为:
逻辑(数据流)描述、行为描述、结构描述。
此三种方法相互配合共同完成VHDL结构体的设计。
数据流描述,以电子实体的逻辑表达式、逻辑真值为依据,并对电子实体进行描述。
逻辑描述用与:
并行信号赋值语句及其其他表达形式,即条件赋值语句和选择信号赋值语句。
逻辑描述特点鲜明即程序结构简单、容易逻辑综合、综合效果最优化。
行为描述不包含电子实体内部的任何结构信息,故行为描述语句多种多样、各不相同。
进程语句是构造体行为描述的最基本语句,它对硬件依赖程度较低而且程序结构简单。
结构描述是最常用的描述方法之一,就是把一个复杂的电子实体按电路功能不同划分成若干模块。
2.2.4VHDL基本程序结构
如果需要完整的VHDL程序需要有以下几个方面组成:
库:
经编译后的数据集合,它存放包集合定义、实体定义、构造体定义和配置定义,总是放在设计单元的最前面。
程序包:
声明在设计中用到的数据类型、字程序包等。
实体:
定义输入输出端口。
结构体:
是一个基本设计单元的实体,它具体说明了该基本设计单元的行为、元件及内部结构的连接关系,也就是说它定义了设计单元的具体功能。
配置:
为实体选定某个特定结构体。
2.3ModelsimSE
2.3.1版本类型
ModelSimPE:
是用在windows平台下面。
ModelSimLE:
是用在Linux平台下面
ModelSimSE:
在AIX,HP-UX,LINUX,SOLARIS,windows平台下都可以用,另外SE版本比另外两种版本功能多一些。
2.3.2仿真过程
(1)建立工程:
File-New-Project
(2)添加源文件和testbench并编译:
AddExisitingFile,将待访问的文件添加至工程。
(3)启动仿真并查看结果:
在Project视图中右键单击,选择菜单-Compile-CompileAll。
(4)调试:
在源文件中设置断点,访问至断点时,会暂停。
2.3.3窗口组成
ModelSim窗口众多,功能较复杂,其中常用的窗口有7类窗口分别为:
主窗口(main)、源代码窗口(source)、结构窗口(struct)、进程窗口(process)、波形列表窗口(wave)、数据流窗口(dataflow)、信号和变量窗口(signal&variable)。
第3章实验平台的构建
3.1平台的需求分析
在实验平台的设计之前,为了更好的实现微机接口实验平台的功能,满足实验要求以及使学生深入了解微机原理课程,要进行对实验平台需求的分析,主要从三个方面讲述包括微机型号的决定、什么对象可以用该平台和仿真对象。
3.1.1微机型号的选择
该实验平台配置8086微处理器,因大多数高校的微机原理与接口技术理论实用教程都是以8086处理器为基础,所以配置8086处理器能够与微机接口这门课程更好的配合使用。
3.1.2平台的使用对象
本平台主要在教师资源不够、资金不充足以至于不能够维护实验室的大学。
配有微机原理与接口实验室各种硬件,但是希望更加容易使用的设备以配合教学的高校。
3.1.3平台的仿真对象
总结微机接口实验室用到的各种硬件,本实验平台需要仿真的对象包括8086处理器、设备实验台(8255并行口、8259中断控制器、8253定时器、LED灯、数码管、单脉冲源、电源等)。
3.2基于FPGA的整个实验平台的组成
本文所设计的实验平台主要有以下几个模块组成:
(1)FPGA核心板:
并且实现一个USB接口,便于与PC机连接。
(2)X86核心板:
有一个RS232接口,与PC机连接并且用来下载实验程序。
(3)2个组模块:
用于连接FPGA核心板和X86核心板,使2个核心板与外围接口芯片连接,这样可以大大节省底板空间。
(4)PC机、X86核心板、底板、扩展总线接口:
X86核心板实现
了FPGA核心板与X86核心板的通信,并用扩展总线接口连接到底板。
整个实验平台如图3.1所示:
图3.1实验平台结构
3.3FPGA核心板设计
本文整个实验平台的硬件核心部分是FPGA核心板,下面就整个FPGA核心板设计、功能分析,来介绍其主要的功能模块和完整的结构框架。
其整体结构如图3.2所示
图3.2FPGA结构框架
FPGA核心器件选用的是Altera公司的Cydone11EPZC20芯片,
该芯片处理效率高,而且逻辑单元非常多,并且价格低廉。
该芯片主要有输入输出单元、乘法器、存储器、逻辑阵列块组成。
因为微机接口实验所要传输的数据一般较小,所以其能满足实验的要求。
其内部组成结构如图3.3所示
图3.3Cydone11EPZC20芯片内部结构
3.3.1外存储芯片
本实验平台结合引脚的数目以及FPGA上要与外围存储部件兼容的要求,选用如下3种类型的存储芯片如图3.4所示,该三种芯片引脚总和为102,因此需要FPGA上的102个I/O引脚,所以FPGA核心板只剩下26个引脚。
为了节省引脚资源,必须要采用复用的方法。
并且接口芯片与FPGA的工作电压均为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芯片的数据总线和地址总线,最终可以提供给底板的I\O引脚有64个。
为便于系统升级,FPGA核心板与底板之间的接口采用96脚插针。
FPGA核心板配有4个LED灯和4个按键,分别与FPGA的1/0引脚相连。
3.4微机接口硬件实验
微机原理与接口技术的教学实验内容十分丰富,可以很好的调动学生的学习热情,在感兴趣的情况下完成各项实验教学活动,微机原理与接口技术实验又分为软件实验和硬件实验,本节中的实验主要是指微机原理与接口技术硬件实验。
微机接口硬件实验使用微型计算机搭配相应的实验箱/实验台来进行实验教学活动的特点,决定了其高可拓展性,因为微机型号和实验箱/实验台的型号繁多,其组合更是多种多样,在挑选过程中,微机和实验箱/实验台的搭配十分关键。
由于微机原理与接口技术实验的高可拓展性,本节只能就其基础实验进行简单的介绍,硬件环境应用的是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、74LS139
3.4.28253定时器的应用
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)8253芯片(实验箱上已有)
(4)万用表,示波器,导线若干
3.4.38255并行接口应用
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.48250串口实验
1、实验目的
(1)了解串行通信的基本原理和8250工作方法。
(2)了解RS--232串行接口的标准及怎么连接。
(3)掌握8250芯片的编程方法和原理。
2、实验内容
当MUT—Ⅲ型实验箱与PC机(上位机)能够串行通信时,主机每次下传一个字符,如通讯正常则下位机返回一个相同的字符,如果不正确,则无返回或者不相同。
3、实验步骤
(1)实验接线利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2)
(2)编写程序
(3)在实验箱上配有编译系统,下载并运行实验程序。
(4)实验箱退出系统。
4、实验设备
(1)PC机一台
(2)MUT—Ⅲ型实验箱
(3)示波器
第四章IP核的设计以及实验设计
四个典型接口芯片IP核的设计,包括可编程串行控制器8250,可编程计数器/定时器8253,可编程并行控制器8255,及相应的实验设计。
下面以8255接口芯片和8253接口芯片为例进行说明
4.18255芯片介绍
4.1.18255接口芯片的主要技术指标
8255是有美国Intel设计生产的多功能可编程I/O接口芯片,其主要技术指标如下:
(1)与Intel公司设计生产的微处理器和单片机完全兼容,也可以用于其他微处理器和单片机作I/O接口扩展。
(2)其输入输出接口逻辑电平与TLT系列集成电路兼容。
(3)时序特征进行了改进。
读写采用异步操作,增强其兼容性。
(4)对控制寄存器的控制位(二进制位)可用直接置1或0进行操作,改善了对PC口的控制特征。
(5)提高I/O口的电流驱动能力。
(6)简化硬件电路结构。
(7)采用40脚封装。
4.1.28255接口芯片引脚功能
8255芯片双列直插封装引脚排列如图4.1所示,每个引脚的功能定义如
下:
图4.18255引脚
D0~D7:
8位三态双向数据总线,传送输入和输出8位数据
:
读信号线,当该脚输入低电平时,允许微处理器或单片机读出8255相关寄存器的数据。
:
写信号线,当该脚输入低电平时,允许通过数据总线传送的数据写入8255对应的数据寄存器。
:
片选线,当该脚输入低电平时,允许微处理器、单片机与8255进行数据传输。
RESET:
复位线,当该脚输入高电平时,所有内部寄存器清零,I/O口均被置为输入方式。
A0,A1:
低位地址线,通过内部译码输出4条选择线与片选线(高位地址选择)组合,以确定内部4组寄存器的地址。
PA0~PA7:
8条并行线输入输出线,称PA口。
PB0~PB7:
8条并行线输入输出线,称PB口。
PC0~PC7:
8条多功能I/O线,称为PC口。
4.1.38255接口芯片的内部结构
数据总线缓冲器有8位三态双向缓冲器组成,用于与外围进行8位并行数据传输。
控制寄存器是8位只写锁存器,存储用于对8255的工作方式和位操作编程的控制字。
地址译码器有2输入(A1、A0)4输入译码器组成、译码器4条输出(低位地址)选择线与片选(CS)线(高位地址选择)组合,以确定内部4组寄存器的地址。
I/O口控制逻辑有A、B两组控制逻辑组成,实现I/O口的方式选择和输入等功能的控制。
I/O口输入输出锁存器与缓冲器有3组8位锁存器和寄存器组成,其输入输出状态有A、B两组控制逻辑决定。
读、写、片选、复位控制线完成读数据、写数据、地址选择、复位状态等操作。
8255芯片的内核结构框图如图4.2:
图4.28255内部结构
4.28255可编程I/O接口芯片设计
4.2.18255的工作方式编程
8255共有3种工作方式:
方式0、方式1和方式2,。
3个I\O口的工作方式有对应的控制寄存器编程实现。
方式0——基本输入输出方式,方式0常用于无条件查询传送。
工作方式0的时序要求如图4.3:
图4.3工作方式0的时序
方式1——选通输入输出方式,方式1常用于条件查询传送或中断传送。
工作方式1的时序要求如图4.4:
图4.4工作方式1的时序
方式2——双向输入输出方式,方式2常用于条件查询传送或中断传送。
工作方式2的时序要求如图4.5:
图4.5工作方式2的时序
4.2.2控制寄存器的编程方法
控制寄存器是8位可编程寄存器,其编程方法如下:
Bit76543210
控制寄存器:
Bit65
00--PA口、PC4~PC7编为方式0
01--PA口、PC4~PC7编为方式1
1X--PA口、PC4~PC7编为方式2
4.2.38255方式0的编程
8255方式0的编程方法如下:
把控制寄存器的Bit7位置1,是8255处于工作方式选择状态。
Bit2=0PB口,PC0~PC3变为方式0。
Bit6、5=00PA口,PC4口~PC7编为方式0。
由Bit0编程决定PC口低四位(PC0~PC3)输出(Bit0=0)和输入(Bit0=1)的方向。
由Bit1编程决定PB口8位I\