基于VHDL语言的单片机设计

更新时间:2023-05-09 00:08:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

北京工业大学

硕士学位论文

基于VHDL语言的单片机设计

姓名:宋泽明

申请学位级别:硕士

专业:控制理论与控制工程指导教师:陈文揩

20040501

摘要

摘要

伴随着集成电路(Ic)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。EDA技术的发展始干70年代,至今经历了三个阶段。电子线路的CX'D(计算机辅助设计)是EDA发展的初级阶段,80年代初期,形成了CAE(计算机辅助工程)。也就是所谓的EDA技术中级阶段。90年代出现了以自动综合器和硬件描述语言为基础,全面支持电子设计自动化的ESDA(目g子系统设计自动化),即高级EDA阶段、也就是目前常说的EDA。使用EDA技术设计的结果既可以用FPGA/CPLD来实施验证,也可以直接做成专用集成电路(ASIC)。EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,诞生于1982年的VHDL语言是经IEEE确认的标准硬件描述语言,在电子设计领域受到了广泛的接受。本文首先综述了EDA技术和PLD器件的发展概况;然后对MCSS051单片机的原理进行介绍和分析;接着介绍使用FPGA进行开发设计的优点以及VHDL语苦和MAXPLUS软件的特点,也介绍了本文的设计方案;接下来介绍使用EDA技术,用VHDL语言完成了8051单片机的设计工作;最后介绍了EDA技术的前沿发展趋势及系统开发中的几点体会。

本文的难点在于CPU和数模转换器的设计,主要体现在算术逻辑单元ALU算术运算的算法实现和控制单元的状态机的设计;以及数模转换器的∑。△调制方法的实现。通过如上的算法实现,可以看出VHDL语言在算法级的设计上具有很多的优势和特点。

关键词电予设计自动化(EDA)VIjBL语言FPGA/CPLD8051单片机

Abstract

TheE1ectronicDesignAutomation(EDA)technologyhasbecomeanimportant

anddigitalcircuitsystemastheintegratedcircuit’8designmethodofanalog

connectedwiththeelectronicgrowing.TheEDAtechnology,whichisclosely

andcomputerscience,canbeusedintechnology,microelectronicstechnology

forwardedIndesigningelectronicproductautomatically.Itwasfirstlyput

70s。AndtillnowtherehasbeenthreestagesoftheEDA.Thatisthecomputeraideddesign(CAD)ofelectroniccircuitin70s,thecomputeraidedengineering(CAE)in80sandtheelectronicsystemdesignautomation(ESDA)in90s.TheESDA,WhichiscalledEDAnOW,isbasedOntheautomaticsynthesizerandthehardwaredescriptionlanguage(HDL).ThedesignresultofEDACannotonlybeverifiedbyFPGA/CPLDbutalsobeimplementedthroughtheApplicationSpecificIntegratedCircuit(ASlC).OneimportantcharacteristicoftheEDAisthatthedesigndocumentsshouldbecompletedbytheHDL.TheVHDLisoneofthestandardhardwaredescriptionlanguagesvalidatedbyIEEE,whichwasfirmlyintroducedin1982.Anditwaswidelyusedbyelectronicdesignernow.WefirstlypresentsomebackgroundinformationofEDA,PLDdevicesin{histhesis.TheprincipleandanalyzeofIntel8051thenwasintroduced.andthenintroducedtheinformationabouttheFPGA/CPLD,VHDLlanguageandthesoftwareMAXPLUS,alsothedesignplanisintroduced.Thedesignofadigital8051system,whichisfulfilledbytheVHDL,isalsobediscussed.FinallythecUrrentdevelopmenttrendoftheEDAandmyseveralexperiencesaboutthedesigningofthesystemarerelated.

ThekeypointinthispaperisthemethodhowtodesigntheCPUandtheDAC.It’SmainlyfocusontherealizationofALU,themethodtodesigntheFinite

-Ⅱ?

StateMachineintllecontr01unitandtherealizationofthe∑.AmodulationarithmeticwithVHDL.Throughthedesignandrealizationofthearithmeticabove,wecanknowtheVHDLhavelotsofadvantageandcharacteristicinrealizingthedesignofarithmeticlevel.

Keywords:ElectronicDesignAutomation(EDA),VHDL,FPGAJCPLD,MCU8051

-IⅡ一

独创性声明

本人声明所里交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了感谢。

签名:盘聋鲴日期:21鲤垒』:丝

关于论文使用授权的说明

..本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有坚堡阜送李论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。

(保密的论文在解密后应遵守此规定)

签名:j眸盥导师签名:邀粒,日期.

第1章绪论

21世纪人类将全面进入信息化社会,对微电子信息技术和微电子VLSI基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之~。而集成电路(Ic)技术在微电子领域中占有重要的地位。且伴随着IC技术的发展,电子设计自动化(ElectronicDesignAutomation,EDA)已经逐渐成为重要的设计手段,其广泛应用于模拟与数字电路系统等许多领域。

1.1EDA技术发展概况

电子设计自动化(EDA,ElectronicDesignAutomation)是指利用计算机完成电子系统的设计。EDA技术是以计算机和微电子技术为先导,汇集了计算机图形学、拓扑、逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科最新成果的先进技术“1。

EDA技术以计算机为工具,代替^完成数字系统的逻辑综合、布局布线和设计仿真等工作。设计人员只需要完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果,而且修改设计如同修改软件一样方便,可以极大地提高设计效率。根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段“1:

1.1.10AD阶段(20世纪60年代中期—-20世纪80年代初期)第一阶段的特点是一些单独的工具软件,主要有PCB(PrintedCircuitBoard)粕线设计、电路模拟、逻辑模拟及版图的绘制等,通过计算机的使用,从而将设计人员从大量烦琐重复的计算和绘图工作中解脱出来。例如,目前常用的Protel早期版本Tango,以及用于电路模拟的SPICE软件和后来产品化的Ic版图编辑与设计规则检查系统等软件,都是这个阶段的产品。这个时期的EDA—般称为CAD(ComputerAidedDeMgn)。1.12CAE阶段(20世纪80年代初期—20世纪90年代初期)这个阶段在集成电路与电子设计方法学以及设计工具集成化方面取得了许多成果,各种设计工具,如原理图输入、编译与连接、逻辑模拟、测试码生成、版图自动布局以

北京工业大学工学硕士学位论义

及各种单元库己齐全。由于采用了统—数据管理技术,因而能够将各个工具集成为一个CAE(ComputerAidedEngineering)系统。按照设计方法学制定的设计流程,可以实现从设计输入到版图输出的全程设计自动化。这个阶段主要采用基于单元库的半定制设计方法,采用门阵列和标准单元设计的各种ASIC得到了极大的发展,将集成电路工业推入了ASIC时代。多数系统中集成了PCB自动布局布线软件以及热特性、噪声、可靠『生等分析软件,进而可以实现电子系统设计自动化。

113EDA阶段(20世纪90年代以来)

20世纪90年代以来,微电子技术以惊人的速度发展,其工艺水平达到了深亚微米级,在一个芯片上可集成数百万乃至上千万只晶体管,工作速度可达到GHz,这为制造出规模更大,速度更快和信息容量很大的芯片系统提供了条件,但同时也对EDA系统提出了更高的要求,并促进了EDA技术的发展。此阶段主要出现了以高级语言描述、系统仿真和综合技术为特征的第三代EDA技术,不仅极大地提高了系统的设计效率,而且使设计人员摆脱了大量的辅助性及基础性工作,将精力集中于御造性的方案与概念的构思上,下面简单介绍这个阶段EDA技术的主要特征:

(1)高层综合(HLS,HighLevelSynthesis)的理论与方法取得较大进展,将EDA设计层次由RT级提高到了系统级(又_酌亍为级),并划分为逻辑综合和测试综合。逻辑综合就是对不同层次和不同形式的设计描述进行转换,通过综合算法,以具体的工艺背景实现高层目标所规定的优化设计,通过设计综合工具,可将电子系统的高层行为描述转换到低层硬件描述和确定的物理实现,使设计人员无须直接面对低层电路,不必了解具体的逻辑器件,从而把精力集中到系统行为建摸和算法设计上。测试综合是以设计结果的性能为目标的综合方法,阻电路的时序、功耗、电磁辐射和负载能力等性能指标为综合对象。

(2)采用硬件描述语言HDL(HardwareDescriptionLanguage)来描述10万门以上的设计,并形成了ⅧDL(VeryHighSpeedIntegratedCircuitHI)L)和VeriIog皿L两种标准硬件描述语言。它们均支持不同层次的描述,使得复杂Ic的描述规范化,便于传递、交流、保存与修改,也便于重复使用。’副门多应用于FPGA/CPLD/EPLD的设计中。

(3)可测性综合设计。随着ASIC的规模与复杂性的增加,测试难度与费用急剧上

第1荦绪论

升,由此产生了将可测性电路结构制作在ASIC芯片上的想法,于是开发了扫描插入、BLST(内建自测试)、边界扫描等可测性设计(DFr)工具,并已集成到EDA系统中a(4)为带有嵌入IP模块的ASIC设计提供软硬件协同系统设计工具。协同验证弥补了硬件设计和软件设计流程之间的空隙,保证了软硬件之间的同步协调工作。

(5)建立并行设计工程CE(ConcurrentEngineering)框架结构的集魄化设计环境,以适应当今ASIC的如下一些特点:数字与模拟电路并存,硬件与软件设计并存,产品上市速度要快。在这种集成化设计环境中,使用统一的数据管理系统与完善的通讯管理系统,由若干相关的设计小组共享数据库和知识库,并行地进行设计,而且在各种平台之间可以平滑过度。

1.2PLD的发展概况

当今社会是数字化社会,数字电路应用非常广泛,其发展从电子管、晶体管、小规模集成电路SSI、MSl、LSI、VLSI(几万门以上)到超大规模集成电路ULSI和超位集成电路GSI,其规模几乎平均每卜2年翻—番。集成电路的发展大大促进了EDA的发展,先进的EDA已从传统的“自下而上”的设计方法改变为“自上而下”的设计方法。ASIC的设计与制造,已不再完全由半导体厂商独立承担,系统设计师在实验室罩就可以设计出合适的ASIC芯片,并且立即投入实际应用之中,这都得益于可编程逻辑器件PLD(ProgrammableLogicDevice)的出现。现在应用最广泛的PLD主要是现场可编程门阵列FPGA(FieldProgrammableC—ateArray)、复杂可编程逻辑期间CPLD(ComplexProgramnableLogicDevice)和可擦除可编程逻辑器件EPLD(ErasableProgrammable

Device)吐

Logic

ASIC是专门为某—应用领域或某一专门用户需要而设计制造的L51和VLSI电路,具有体积小、重量轻、功耗低、商陛能、高可靠性和高保密性等优点,ASIC的分类如图i-I所示。出图卜l可知PLD是ASIC的一个分支,也是现在应用最广的一个方面。它从属于数字ASIC的范畴,下面对PLD器件进行简单的介绍。

半定制ASIC是一种约束型设计方法,它是在芯片上帛蚱好~些具有通用性的单元元件和元件组的半成品硬件,用户仅需考虑电路逻辑功能和各功能模块之间的合理连接即可。这种设计方法灵活方便,性价比高,缩短了设计周期,提高了成品率。半定制AsIc

北京工业大学工学硕}学位论文

包括门阵列、标准单元和可编程逻辑器件三种。在这旱主要介绍一下可编程逻辑器件的发展历程。

图1—1ASIC的分类

Figurel一1ASICOrganization

可编程逻辑器件是ASIC的—个重要分支,是厂家作为—种通用性器件生产的半定制电路,用户可通过对器件编程实现所需要的逻辑功能。PLD是用户可配置的逻辑器件,它的成本比较低,使用灵活,设计周期短,而且可靠性高,风险小,因而很快得到普遍应用,发展非常迅速。

PLD从20世纪70年代发展到现在,已形成了许多类型的产品,其结构、工艺、集成度、速度和性能都在不断改进和提高。PLD又可分为简单低密度PLD和复杂高密度PLD。最早的PLD是1970年制成的PROM(ProgrammableReadOnlyMemory),即可编程只读存储器,它是由固定的与阵列和可编程的或阵列组成。PROM采用熔丝工艺编程,只能写一次,不能擦除和重写。主要用作存储器。其后又经历了可编程逻辑阵列PLA(ProgrammableLogicArray)、可编程阵列逻辑PAL(ProgrammableArrayLogic)、通用阵列逻辑器件GAL(GenericArrayLogic)等阶段。而PRⅢ、PLA、PAL和GAL都属于简单PED,结构简单,设计灵活,对开发软件的要求低,但规模小,难以实现复杂的逻辑功能。随着技术的发展,简单PLD在集成密度和性能方面的局限陛也暴露出来,其寄存器、I/O引脚、时钟资源的数目有限,没有内部互连,因此包括EPLD、CPLD和FPGA在内的复杂PLD迅速发展起来,并向着高密度、高速度、低功耗以及结构体系更灵活、适用范围更宽广的方向发展。

菇1章绪论

可擦除可编程逻辑器件EPLD是20世纪80年代中期Mtera公司推出的基于uvEPR。M和c}dos技术的PLD,后来发展到采用EgCMOS工艺制作的PLB。EPLD基本逻辑单元是宏单元。宏单元由可编程的与或阵列、可编程寄存器和可编程I/o三部分组成。

复杂可编程逻辑器件CPLD是20世纪80年代末Lattice公司提出的在线可编程(ISP,InSystemProgrammability)技术以后于20世纪90年代初出现的。CPLD是在EPLD的基础上发展起来的,采用E'CMOS工艺制作,与EPLD相比,增加了内部连线,对逻辑宏单元和I/O单元也有重大的改进。CPLD至少包含三种结构:可编程逻辑宏单元、可编程I/o单元和可编程内部连线。

现场可编程门阵列FPGA器件是Xilinx公司1985年首家推出的,它是一种新型的高密度PLO,采用∞S—sRAM工艺卷鲥乍。FPGA的结构与门阵列PLB不同,其内帮由许多独立的可编程逻辑模块(CLB)组眈逻辑块之间可以灵活地相互连接。FPGA的结构一般分为三部分:可编程逻辑块、可编程I/O模块和可编程内部连线。CLB的功能很强,不仅能够实现逻辑函数,还可以配置成RAM等复杂的形式。配置数据存放在片内的SRAM或者熔丝图上,基于SRAM的FPGA器件工作前需要从芯片外部加载配置数据。配嚣数据可以存储在片外的EPROM或者计算机上,设计人员可以控制加载过程,在现场修改该器件的逻辑功能,即所谓现场可编程。

高密度PLD在生产工艺、器件编程和测试技术等方面都有了飞速发展。世界各著名半导体器件公司,如Altera、Xilinx、Lattice等公司均可提供不同类型的CPLD、FPGA产品。众多公司的竞争促进了可编程集成电路技术的提高,使其性能不断改善,产品日益丰富,价格逐步下降。可以预计,可编程逻辑器荆备在结构、密度、功能、速度和性能等方面得到进一步发展,结合EDA技术,PLD将在现代电子系统设计中得到非常广泛的应用。

1.3本课题的目的及意义

进入90年代,电予信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度女I:I深;二是开发产品的上市时限紧迫。所谓开发产品的复杂程度深是指设计者往往要将更多的功能、更高的性能和丰富的技术含量集成于所要开发的电子系统之中。目前的趋势是系统集成(Systemonchip或Chipinsystem)。所谓产品开发的时限性,是

北京工业大学工学硕士学位论文

指在产品的寿命期间应让产品早日上市。从市场的角度来看,开发应市的新产品应该做到无延误地投放市场。

图卜2表明了产品上市时间与其利润之间的关系。—个产品从开始上市到其从市场上被淘汰为止,其销售情况是—个三角形。这个三角形的面积便是此产品的总的利润,如果产品上市晚了,如图中t2时间较t1时间晚了时间△,则从t2开始的三角形的面积比从t1开始的三角形的面积将小得多,也就是所获得的总利润将小得多。这说明,一个企业如果能够比其竞争对手更快地推出新产品,更快地对市场做出反应,即可获取更大的市场份额和更大的利润。

而伴随着如上两个特点的产生,相应的出现了设计上的两个问题。其一,在电子系统日趋数字化、复杂化和大规模集成化的今天,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计日趋复杂。那么

时闻

图卜2产品的利润与其上市时间的关系

Figurel一2RelationbetweenProfitandTimetoMarket

如何去完成这些高复杂度的电子设计呢?其二,电子产品设计周期短和上市快是电子厂商们举持不懈的追求,那么面对日趋复杂的设计,又如何能够缩短开发时间呢?

解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作汹。由于电子系统复杂且具有上市的时限性,因此手工设计无法完成,只有并∈用EDA设计方式,从手工设计过渡到自动设计,将大量繁重、重复性的工作交_给计算机去完成。因而提高EDA方法的自动化程度,缩短整体EDA设计周期,具有十分重要的意义。

随着科学技术的发展,电子学进入了一个崭新的时代,其特征是电子技术的应用以

第1苹绪论

空前规模和速度渗透到各行各业。各行业对自己专用集成E潞(ASIC)的实际要求F1趋追切,使得ASIC设计成为了EDA设计的一个主要发展方向。而复杂可编程器件(FPGA/CPLD)的出现与应用,顺应了这—新需要,为各行业的电子系统设计工程师自行开发本行业专用的ASIC提供了技术和物质条件。

另一方面,单片机自20世纪80年代引入我国以来,学习和应用单片机的热潮始终不减,特别是gI[]SSl系列。实际上,从应用通用数字集成电路系统,到广泛应用单片机,是我国电子设计在智能化应用水平上质的飞跃。据统计分析,单片机的销量到目前为止依然逐年递增,而且在很长一段时间内,单片机依然会是电子设计的主角,不过这一地位已经受到了复杂PLD器件FPGA/CPLD的挑战。虽然单片机长期稳定的发展和使用使得单片机的性价比非常高,而且积累了大量的资料并拥有大量的工程技术人员,这一点是复杂PLD器件目前难以达到的。但是,单片机的缺点也是有目共睹:首先是速度低。即使是高速度单片机也只能工作在us级,这是由单片机串行工作的特点所决定的。其次是低可靠性。虽然目前有很多器件与设计在一定程度上解决了部分问题,如看门狗的广泛应用,但在某些隋况下瞬间的复位也会造成严重的后果。而当前流行的复杂PLD器件FPGA/CPLD,不但克服了单片机的缺点,而且由于可采用ttDL等硬件描述语言编程,进一步打破了软硬件工程师的界限,加速了产品的开发过程,使纯数字电路的设计变得简单,人们甚至讨论用C语言作为下一代硬件描述语言。所以有专家指出,电子设计的单片机时代即将过去,而以PLD为核心的EDA将是未来设计的方向。由于超大规模集成电路技术的发展,单片PLD芯片上已经可以集成E百万门,就系统规模而言,将单片机设计在内也没什么问题。美国的可编程器件厂商已经用软核和硬核嵌入两种形式为设计人员提供帮助。PLD器件取代单片机是早晚的事。但是,在我国目前的普遍应用中,单纯依靠PLD器件还有点早。主要原因如下:由于历史原因,我国的电子设计人员大部分应用的是MCS51系列单片机,而让这么多人改学其它PLD器件的使用;h-tf还需要一段时间,而且原有的程序更使人不愿改动,这是其一;其二,单片机价格低廉,而PLD器件如果增加单片机内核的话,至少在目前的形势下价格会比较昂贵。

不过,有鉴于当前FPGA/CPLD器件的发展速度可见,在FPGA中嵌入单片机的软核或硬核是一种必然趋势,所以,本课题要在这方面做一种尝试,用FPGA来实现单片机的设计,希望能为FPGA的迸一步应用和快速的发展提供一种借鉴和方法。

北京工业大学工学硕士学位论文

1.4本文主要工作

本文以Intel8051为原型,通过使用VHDL语言来实现该8051的各相应功能,并与FPGA内部结构相结合,开发出能够应用于FPGA中的8051模块。本文除实现8051的相应功能外,还加入了先入先出存储器(FIFO)模块和数模转换器(DAC)模块。使得本文实现的单片机的功能有所改进和提高。

本文在介绍了EDA和PLD的发展概况以及本课题的目的和意义后,着重从如下几个方面来介绍本课题的内容:

1.单片机的基本原理和内部结构。从单片机的内部结构入手,对单片机的基本原理和功能进行介绍和分析,进而提出可改进之处。

2EDA的开发中离不开EDA工具的使用,好的开发工具会使设计更加便捷与高效,且会提高设计的效率与效果,本设计的过程中所用到的相应工具和语言也会在后续章节中进行介绍。

3.课题设计方案的设定也是很重要的一个环节,本文也将对此进行相应的阐述和论证,以期达至0更好的设计效果。

4本文重点介绍了基于FPGA和VHDL语言的开发过程,对设计方案中的各模块进行详细介绍和验证,并对整体性能进行分析。

第2章MCS8051单片机原理与分析

第2章MOS8051单片机原理与分析

单片机是大规模集成电路技术发展的产物,属第四代电子计算机。单片机是把中央处理器CPU(CentralProcessingUnit)、随栅存取存储器RAM(RandomAccessMemory)、只读存储器ROM(ReadOnlyMemor7)、定时器/计数器以及I/0(Input/Output)接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机,它的特点是:赢眭能、高速度、体积小、价格低廉、应用广泛嘲。

MCS~51是美国Intel公司的八位单片机系列,是在MCS一48系列基础上发展而成的,也是我国目前应用最广的—种单片机系列…。在这个系列里,有多种机型,本章以8051为目标来叙述MCs一51的内部结构、引脚功能、工作方式和时序,并对其进行分析,提出可改进之处。

2.18051单片机内部结构

8051单片机内部包含了作为微型计算机所必需的基本功能部件,各功能部件相互独立而融为一体,集成在同—块芯片上。8051内部结构如图2-1所示。如果把图中ROM这部分电路移走,则它和8031的内部结构相同,为了进一步介绍8051的内部结构和工作原理,现把图中各功能部件划分为CPU、存储器、I/O端口、定时器/计数器和中断系统等五部分加以介绍。

I外部定时元件l'

L.1定时器斛数器L

r{竺P1ROMI?_串行I/0Jl11II

型?-1竺竺#、r=叫RAM

困’型。图扣l8051单片机内部结构框图

Figure2—1MCU8051InternalArchitecture

一9一T

Tjo&d、

北京J:业大学L学硕士学位论文

2.1.1OPU结构

805i内部CPU是一个字长为八位二进制的中央处理单元,也就是说它对数据的处理是按字节为单位进行的。8051内部CPU是由运算器(ALu)、控制器(定时控制部件等)和专用寄存器组三部分电路组成。

1.算术逻辑单元ALU

8051的ALU是一个性能极强的运算器,它既可进行加、减、乘、除四则运算,也可进行与、或、非、异或等逻辑运算,还具有数据传送、移位、判断和程序转移等功能。8051ALU为用户提供了丰富的指令系统和极快的指令执行速度,大部分指令的执行时间为1us,乘法指令可达4uS。8051时钟频率可达12Ⅲz。

2.定时控制部件

定时控制部件起着控制器作用,由定时控制逻辑、指令寄存器IR和振荡器0¥C等电路组成。指令寄存器IR用于存放从程序存储器中取出的指令码,定时

控制逻辑用于对IR中指令码译码,并在OSC配合下产生指令的时序脉冲,以完成相应指令的执行。

3.专用寄存器组

专用寄存器组主要用来指示当前要执i亍手旨令的内存地址、存放操作数和指示指令执行后的状态等等。它是刚可一台计算机的CPU不可缺少的组成部分,其寄

存器的多寡因机器型号不同而已。专用寄存器组主要包括程序计数器PC、累加器A、程序状态寄存器Psw、堆栈指示器SP、数据指针DPTR和通用寄存器B。各

寄存器的详细介绍可参考文献[4]。

2.1.2存储器结构

8051的存储器有片内和片外之分。片内存储器集成在芯片内部;片外存储器又称外部存储器,是专门的存储器芯片,需要通过印刷电路板E的三总线和8051连接的。片外和片内存储器中,又有ROM和RAM之分。

l-片内ROM存储器

8051内部有4KBROM存储器,地址范围为0000H-OFFFH。且可外接外部ROM,

一10一

第2章MCS8051单片机原理与分析

但片内和片外之和不能超过64KB。8051有64K的寻址区,其中0000H-000FH的4K地址可以为片内ROM和片外ROM公用,1000H-FFFFH的60K地址区为片外所专用。在0000H-OOOFH的4K地址区,片内ROM可以占用,片外ROM也可占用,但不能为两者同时所用。为了指示机器的这种占用,器件设计者为用户提供了一条专用的控制引脚砑,若砑接+5v高电平,则机器使用片内4KROM;若五i接地电平,则机器使用片外R。M。

2.片内RAM存储器

RAM存储器主要用来存放数据,故它又称为数据存储器。8051的RAM存储器有片内和片外之分:片内RAM共128个字节,地址范围为00卜7F}{:片外RAM共有64K,地址范围为0000H-FFFFH。片内RAM的128个字节可分为工作寄存器区(00H-]FH)、位寻址区(zoH-zFH)和便笺区(30H-TFH)。

3.特殊功能寄存器SFR(SpecialFunctionRegister)

特殊功能寄存器是指有特殊用途的寄存器集合。SFR的实际个数和单片机型号有关:8051的SFR有21个。每个SFR占用—个RAM单元,它们离散的分布在80H-FFH地址范围内,不为SFR占用的RAM单元实际并不存在。

2.1.3I/O端口

I/O端口又称为I/O接口,也叫做I/O通道或I/O通路。I/o端口是单片机对外部实现控制和信息交换的必经之路,是一个过渡的集成电路,用于信息传送过程中的速度匹配和增强它的负载能力。I/0端口有串行和并行之分,串行端口一次只能传送—位二进制信息,并行I/O端口一次可以传送~组二进制信息。

l'并行I/0端口

8051有四个并行的I/O端口,分别命名为P0、Pl、P2、P3,在这四个翔亍ilO端口中,每个端口都有双向I/0功能。即:CPU即可以从四个并行I/o端口中的倒可一个输出数据,又可以从’宦沸稠B里输入数据。每个I/o端口内部都有一个八位数据输出锁存器和—个八位数据输入缓冲器,四个数据输出锁存器和端口号P0、Pl、P2和P3同名,皆为特殊功能寄存器SFR中的—个。因此,CPU数据从并行I/O端口输

北京工业大学工学硕士学位论文

出时可以得到锁存,数据输入时可以得到缓冲。

2.串行i/o端口

805I有一个全双工的可编程串行I/o端口。这个串行i/o端口既可以在程序控制下把CPU的八位并行数据变成串行数据—位—位地从发送数据线TxD发送出去,也可以把串行接收到的数据变成八位并行数据传给CPU,而且这种串行发送和串行接收可以单独进行,也可以同时进行。

2.1.4定时器/计数器

8051内部有N#-16位可编程序的定时器/计数器,命名为To和Tl。TO由两个八位寄存器Tm和TL0拼装而成,其中TH0为高八位,TL0为低八位。和T0类同,T1也由THl和TLl拼装而成,其中THl为高八位,TLl为低八位。TH0、TL0、THl和TLl均为SFR特殊功能寄存器中的一个,用户可以通过指令对它们存取数据。

T0和T1有计数器和定时器两种工作模式,在每种模式下又分为若干工作方式。在定时器模式下,TO和T1的计数脉冲可以由单片机时钟脉冲经12分频后提供,故定时时间和单片机时钟频率有关。在计数器模式下,,rO和T1的计数脉冲可以从P3.4和P3.5引脚上输入。TO和Tl有两个八位的特殊功能寄存器:一个称为定时器方式选择寄存器TMOD,用于确定定时器还是计数器工作模式:另一个叫定时器控制寄存器TcON,可以决定定时器或计数器的启动、停止以及进行中断控制。TMOD和TCON也是21个特殊功能寄存器SFR中的两个,用户也可以通过指令确定它们的状态。

2.1.5中断系统

计算机中的中断是指cPU暂停原程序执行转而为外部设备服务(执行中断服务程序),并在服务完后回到原程序执行的过程。中断系统是指能够处理上述中断过程所需要的那部分电路。

中断源是指能产生中断请求信号的源泉。8051共可处理五个中断源发出的中断请求,可以对五个中断请求信号进行排队租腔制,并响应其中优先权最高的中断请求。8051的五个中断源有内部和外部之分:外部中断源有两个,通常指外部设备;

内部中断源有三个,两个定时器/计数器中断源和一个串行口中断源。外部中断源产

一12—

第2章MCS8051单片机原理与分析

!!!!!!!!!!!!!!10==!!!!!!!!=!==!!!一生的中断请求信号可以从P3.2和P3.3(即丽而年D—IN—T1)引脚上输入,有电平或边沿两种引起中断的触发方式。内部中断源TO和TI的两个中断是在它们从全“l”变为全…0’溢出时自动向中断系统提出的,内部串行口中断源的中断请求是在串行口每发送完一个八位二进制数据或接收到一组输入8位数据后自动向中断系统提出的。

8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制五个中断源@II些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制五个中断源的中断青求的优先级,以确定哪个中断请求可以被CPU最先处理。

2.28051单片机引脚功能

8051有40条引脚线,共分为端口线、电源线和控制线三类。其中端口线32根,主要分成四个8位的输出愉^端口。四个并行i/o端口在结构上并不相同,因此它们在功自酐口用途上的差异较大。Po口和I)2口内部均有—个受控制器控制的二选一选择电路,故它们除可以用作通用ilO口外还具有特殊的功能,主要是作为片外存储器的地址使用;p1口常用做通用I/O口使用,为CPU传送用户数据;P3口除可以作为通用I/O口使用外,还具有第二功能,如表2—1所示:

表2一lP3口各位的第二功能

Table2-1SecondFunctionofPortP3

P3口的位第二功能注释

P3.0RxD串行数据接收口

P3.1TxO串行数据发送口

P3.2n伊O外中断0输入

P3.3正V丁l外中断1输入

P3.4TO计数器0计数输入.

P3.5T1计数器l计数输入

P3.6WR外部RAM写选通信号

外部RAM读选通信号

P3.7

只D

北京工业大学工学硕士学位论文

电源线2根,其中Vcc为+5v电源线,Vss为接地线。控制线6根ALE/葡丽地址锁存允许/编程线,配合PO口引脚的第二功能使用;EA/vpp:允许访问片外存储器/编程电源线,可以控制8051是用片内RcM还是片外ROM;户凶:)991.R。M选通线,用于为片外RDM芯片的选通:RST/‰:复位/备用电源线,可以使805J处于复位工作状态;x1ALl和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用柬连接8051片内OSC的定时反馈回路。

2.38051单片机的工作方式

单片机工作方式是进行系统设计的基础,也是单片机应用工作者必须熟悉的问题。8051单片机的工作方式包括:复位方式和程}芋j舶亍方式。

1.复位方式:

单片机在歼机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并砂这个状态开始工作。单片机复位后,其片内各寄存器状态如表2—2所示:

表2—2复位后的内部寄存器状态

Table2—2SFRStateafterReset

寄存器名寄存器初值寄存器名寄存器初值PcOOOOHTLoOoH

ACCOOHTHl00H

BOOHTLlOaH

PSW00HSBUF不定

SP07H㈣OoH

DPTR0000HSCoNOOH

PO-P3FFFFHPCONO×××××XXBIP×××00000BIEO××00000B

TCONoc蚪

THOOOH

—14

第2章MCS8051单片机原理与分析

2.程序执行方式

程f芋执行方式是单片机的基本工作方式,通常可以分为单步执行和连续执行两种工作方式。

(1)单步执行方式是指单片机在控制面板上某个按钮控制下一条~条执行用户程序中指令的方式,即按一次单步执行键就执行一条用户指令的方式。单

步执行方式常常用于用户程序的调试。

(2)连续执行方式是所有单片机都需要的—种工作方式,被执行程序可以放在片内或片外RaM中,由于单片机复位后程序{千数器FC=0000H】因此机器在加

电或按钮复位后总是到0000H处执行程序,这就可以预先在0000H处放一

条转移指令,以便跳转到0000H-FFFFH中的任何地方执行指令。

2.48051单片机的时序

单片机时序就是CPU在执行指令时所需控制信号的时问顺序,因此微型计算机中的CPU实质上就是—个复杂的同步时序电路,这个时序电路是在时钟脉冲推动下工作的。在执行指令时,CPU首先要到程序存储器中取出需要执行指令的指令码,然后对指令码译码,并由时序部件产生一系列控制信号去完成指令的执行,这些控制信号在时间上的相互关系就是CPO时序。

为了对CPU时序进行分析,首先要定义一种能自多度量各时序信号出现时削的尺度。8051中有时钟周期、机器周期和指令周期之分。

1.时钟周期

时钟周期T又称为振荡周期,由单片机片内振荡电路OSC产生,常定义为时钟脉冲频率的倒数,是时序中最小的时间单位。

2.机器周期

8051的机器周期时间是固定不变的,均由12个时钟周期T组成,分为六个状态(S卜S6),每个状态又分为Pl和P2两拍。因此,—个机器周期中的12个振荡周期可以表示位S1P1,SIP2,S2PI,¥2P2,…S8P2。

3.指令周期

指令周期是时序中的最大时间单位,定义为执j亍一条指令所需的时间。由于机

一15一

北京工业大学工学硕十学位论文

器执行不同指令所需时间也不同,因此不同指令所包含的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令,等等。指令的运算速度和指令所包含的机器周期数有关,机器周期数越少的指令执行速度趱陕。8051单片机通常可分为单周期指令、双周期指令和四周期指令三种。

2.58051单片机原理分析

通过本章前面四节有关单片机的内部结构、引脚功能、工作方式和时序介绍,莸们对8051的整体和细节有了一个深入的了解,本节在前面介绍的基础上进行分析,提出本文使用VHDL语言实现单片机功能的一些方法以及对传统的8051的改进方法。

2.5.18051单片机内部结构分析

通过2.1节的介绍,我们知道8051单片机主要可以分为如下几个单元:CPU单元、存储器单元、I/0单元、定时器/计数器单元和中断系统单元。所以本课题在设计过程中,基本上按照如上的单元分配来划分各个设计模块。但本文的设计是基于Vi仍L语言和FPGA器件为开发手段,又有其特殊的开发特点和设计优势,因此本文的主要设计模块划分为:CPU模块、存储器模块、串13UART模块、定时器/计数器模块。第三章还会进一步介绍此内容。

2.5.28051的引脚功能分析

B051的管脚麸40个。其中很多管脚具有多功能复用功能,而本设计中并役有采用管脚多功能复用的设计方法。主要从以下方面考虑,管脚的多功能复用会增加设计的复杂度,对于初次使用vHDL语言来进行8051设计者来说,会使设计难度更大,所以考虑不采用管脚功能复用的设计方法,这是其一:其二,从FPGA器件的角度出发来看,FPGA有丰富的管脚资源,且管脚的利用率越高,FPGA器件的效率越好,所以使用FPGA器件进行设计时,在保证管脚数够用的情况下,可以尽量使用更多的管脚,而减少管脚复用;其三,本设计的管脚数并不是很多,与能满足整个设计的FPGA的管脚资源来说,本设计中的非复用方式的管脚数还是很小的,所以决定采用非复用的管脚功能设计方法。

一】6一

本文来源:https://www.bwwdw.com/article/szte.html

Top