基于ARM7的仿真实验系统.docx
- 文档编号:30222364
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:72
- 大小:955.71KB
基于ARM7的仿真实验系统.docx
《基于ARM7的仿真实验系统.docx》由会员分享,可在线阅读,更多相关《基于ARM7的仿真实验系统.docx(72页珍藏版)》请在冰豆网上搜索。
基于ARM7的仿真实验系统
摘要
随着人们生活水平的不断提高,大家也对生活的快捷化、简单化、智能化和人性化提出了更高的要求,而嵌入式系统正是实现人们这一需求的重要推手。
当今的嵌入式设备多采用32位的RISC处理器作为核心部件,而基于ARM的嵌入式处理器在32位的RISC嵌入式处理器领域占据了高达75%的市场份额。
但是,嵌入式系统并没有得到像单片机一样受欢迎,这既在于嵌入式系统学习难度高,也在于搭建一个嵌入式系统需要一定的资金投入。
本课题是基于ARM7的仿真实验系统设计,全文详细讲解了ARM7的体系结构和硬件结构,重点设计了主系统界面和主要的外围电路仿真。
主系统界面就是将各个外围电路仿真图链接到用VB设计的窗体控件上,通过点击控件就可以直接打开相关的电路仿真图。
外围电路仿真不但全面介绍了相关寄存器,而且用Proteus软件设计了电路仿真图,还用Keil软件编写了相关的实验代码。
每一个实验都配有流程图,同时做了相关的说明,使人看了一目了然。
基于ARM7的仿真实验系统设计,既可以帮助大家快速学习ARM7的原理,也可以节约一定的开支,同时学会相关软件的使用。
关键词:
Keil;Proteus;VB;ARM7;仿真系统
Abstract
Withthecontinuousimprovementoflivingstandards,peoplearequick,humanization,intelligentandsimpleoflifeputforwardhigherrequirements,andembeddedsystemisimportanttoachievetheneedsof.Embeddedequipmenttodayuses32bitsRISCprocessorasthecorecomponent,andembeddedprocessorbasedonARMinRISCembeddedprocessor32tooccupythemarketshareashighas75%.However,embeddedsystemshasnotbeenaspopularasthemicrocontroller,whichliesintheembeddedsystemlearningdifficulty,alsoistobuildanembeddedsystemneedssomemoney.
ThistopicisthedesignofsimulationexperimentsystembasedonARM7,thetextexplainindetailthesystemstructureandthehardwarestructureofARM7,focusedonthedesignofthemaininterfaceofthesystemandthemaincircuitsimulation.ThemaininterfaceofthesystemistheperipheralcircuitsimulationmaplinktodesignwithVBformscontrols,byclickingonacontrolcanbedirectlyrelatedtoopencircuitsimulationdiagram.Theperipheralcircuitsimulationisnotonlyacomprehensiveintroductiontotherelevantregister,anduseProteussoftwaretodesignthecircuitsimulationmap,alsowrittenusingtheKeilsoftware.Experimentalcodecorrelation.Eachexperimentareequippedwithflowchart,atthesametimetodotherelevantinstructions,makepeopleseestickoutamile.DesignofsimulationexperimentsystembasedonARM7,whichcanhelpyouquicklylearnARM7,canalsosavemoney,useatthesametimetolearntheassociatedsoftware.
Keywords:
Keil;Proteus;VB;ARM7;Simulationsystem
目录
1绪论1
1.1嵌入式系统概念1
1.2国内外研究现状和发展趋势1
1.3课题研究的目的和意义2
1.4软件简介2
1.4.1Keil简介2
1.4.2Proteus简介3
1.5论文研究的内容3
2ARM7的体系结构4
2.1ARM7处理器结构4
2.1.1ARM处理器结构概述和流水线结构4
2.2存储器4
2.3处理器4
2.4内部寄存器5
2.4.1各模式可访问寄存器5
2.4.2通用寄存器5
2.5程序状态寄存器CPSR7
2.5.1条件代码标志8
2.5.2控制位9
2.6异常9
2.6.1进入异常9
2.6.2退出异常9
2.6.3快速中断请求10
2.6.4中断请求10
2.6.5中止10
2.6.6软件中断指令11
2.6.7未定义的指令11
2.7复位11
2.8存储器及存储器映射I/O11
2.8.1地址空间12
2.8.2存储器格式12
2.9寻址方式13
2.10ARM7指令集13
3ARM7的硬件结构14
3.1LPC2138简介14
3.1.1结构14
3.2存储器寻址15
3.2.1存储器映射15
3.2.2LPC2138存储器重新映射和BootBlock15
3.3系统控制模块17
3.3.1晶体振荡器17
3.3.2外部中断输入17
3.3.3存储器映射控制17
3.3.4PLL18
3.3.5功率控制18
3.3.6复位19
3.3.7VPB分频器19
3.3.8唤醒定时器19
3.4存储器加速模块20
3.5中断控制器21
3.6引脚连接模块22
4基于ARM7的仿真实验系统设计23
4.1系统界面设计23
4.2各实验项目设计24
4.2.1GPIO实验24
4.2.2外部中断输入实验28
4.2.3定时器实验33
4.2.4UART实验36
4.2.5A/D转换器实验39
4.2.6看门狗定时器实验43
结论47
致谢48
参考文献49
附录A英文原文50
附录B中文翻译60
1绪论
1.1嵌入式系统概念
根据IEEE的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”,这主要是从应用上加以定义的。
目前的普遍定义是:
以应用为中心、以计算机技术为基础,软硬件可裁剪,适于应用系统对功能、成本、体积、功耗等严格要求的专用计算机系统。
总体上来说,嵌入式系统可以划分为硬件和软件两部分,硬件一般由高性能的微处理器和外围接口电路组成,软件一般由实时操作系统和其上运行的应用软件构成,软件和硬件之间由所谓的中间层连接。
一般而言,嵌入式系统的架构可以分成4个部分:
处理器、存储器、输入输出和软件。
ARM是全球领先的16/32位RISC微处理器的知识产权设计供应商,ARM公司通过转让高性能、低成本、低功耗的RISC微处理器、外围和系统芯片设计技术给合作伙伴,使他们能用这些技术来生产各具特色的芯片。
目前应用较多的是ARM7系列、ARM9系列、ARM9E系列、ARM10、ARM11系列和Intel的StrongARM、XScale系列。
ARM7TDMI基于ARM的体系结构V4版本,是目前低端的ARM核,具有广泛的应用,最显著地是数字移动电话。
本论文选择的就是基于飞利浦公司的ARM7版本的LPC2138芯片。
1.2国内外研究现状和发展趋势
从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近40年的发展历史。
嵌入式系统的出现最初是基于单片机的,它被用在一般的电子产品中。
在进入了21世纪后,由于移动通信设备的爆炸式增长,因此基于ARM的处理器也得到了广泛的应用。
到目前为止,ARM处理器在手机、平板、路由器、车载以及其他电子领域都占据了主要地位。
正因为它的巨大的市场前景,人们对基于ARM处理器的研究开发越来越重视。
目
前国内外对于基于ARM7的开发技术已经成熟,各种基于ARM7的实验板也可以在网
上轻松买到。
在国内的实验板大多是基于Philips公司的LPC2000系列,各种资料和软件都可以很容易找到。
目前通过软件仿真这一方法来开发基于ARM处理器的各种设备并未得到广泛采用,随着人们认识的提高和对于资源节约的要求,通过软件仿真形式来设计和开发各种电子设备将会成为主流。
1.3课题研究的目的和意义
虽然嵌入式系统在人们生活中已经非常普遍,但是嵌入式系统并没有得到足够的重视。
本文通过对ARM7的体系结构、外围接口电路和相关原理进行深入研究,使得大家能够对ARM7的真实面目有一个更加全面的认识。
同时,在介绍实验项目的时候,有相关的寄存器介绍、程序代码和电路原理图,这样大家能够更快速直观的了解ARM7的相关原理。
由于本文是采用仿真设计,因此在学习ARM7的原理过程中,也学会了相软件(Keil,Proteus)的使用。
1.4软件简介
1.4.1Keil简介
Keil公司是嵌入式开发工具专业制造商。
Keil软件公司的产品包括C编译器、宏汇编器、实时内核、调试器、模拟器、集成开发环境以及、ARM7/ARM9/Cortex-X、8051、251等系列微控制器仿真开发装置。
UV3平台的人机交互界面非常人性化,且编译器性能优异,编译出代码的大小及执行速率,系统运行稳定度均领先于市场上同类产品。
2009年2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。
新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁和高效的环境来开发应用程序。
新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
2011年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最
新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。
1.4.2Proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真微处理器及外围器件。
它是目前最好的仿真微处理器及外围器件的工具。
虽然目前国内推广刚起步,但已受到爱好者、从事教学的教师和致力于嵌入式系统开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到处理器与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
ISIS是Proteus系统的中心,它的功能有良好的用户界面、自动走线、层次设计、总线支持、元件库、可视封装工具、复合元件和报告等。
1.5论文研究的内容
本文的具体结构如下:
第一章:
绪论。
从应用角度出发论述嵌入式系统概述、嵌入式系统研究现状及发展趋势、本课题的研究目的和意义及相关软件介绍。
第二章:
ARM7的体系结构。
详细的介绍了ARM7的体系结构。
第三章:
ARM7的硬件结构。
全面介绍了ARM7的特征,其中包括存储器寻址、系统控制模块、存储器加速模块、中断控制模块和引脚连接模块。
第四章:
基于ARM7的仿真实验系统设计。
设计了相关的系统界面和多个实验项目。
通过对外设的介绍,也设计了相关原理图,编写了相关代码,以便大家能够更好的理解ARM7的各个外设。
结论:
对本文做结论性概括。
2ARM7的体系结构
2.1ARM7处理器结构
2.1.1ARM处理器结构概述和流水线结构
ARM是一种精简指令集计算机,它具有体积小、低功耗和高性能等特点。
它的数据处理操作只针对寄存器的内容,而不直接对存储器进行操作。
由寄存器内容和指令域共同决定简单的寻址模式,每一条数据处理指令都对算术逻辑单元和移位器控制,以实现对算术逻辑单元和移位器的最大利用,地址自动增减和自动减少的寻址模式实现了程序循环的优化。
ARM处理器通过使用流水线结构来增加处理器指令流的速度,这样可以使得几个操作同时进行。
ARM7处理器采用了三级流水线的结构:
即取指、译码和执行。
2.2存储器
ARM处理器的指令和数据共用一条32位总线。
只有装载、存储和交换指令可以对存储器中的数据进行访问。
数据可以是8位字节、16位半字或者32位字。
ARM存储器的接口设计可以使潜在的性能得到实现,这样减少了存储器的使用。
对速度有严格要求的控制信号使用流水线,这些控制信号使许多片内和片外存储器技术所支持的快速突发访问模式得到应用。
2.3处理器
ARM处理器内核结构包括32位ARM指令集和16位Thumb指令集,它具有两种操作状态。
ARM状态和Thumb状态之间的转换是使用BX指令来切换。
LPC3128支持7种处理器模式:
用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式和快中断模式。
除用户模式外,其他的均为特权模式。
ARM内部寄存器和一些片内外设在硬件设计上只允许在特权模式下访问。
特权模式之间可以自由的切换,但是用户模式不能直接切换到别的模式。
表2.1处理器模式
处理器模式
说明
备注
用户(usr)
正常程序工作模式
不能直接切换到其它模式
快中断(fiq)
高速数据传输及通道处理
FIQ异常响应时,进入此模式
中断(irq)
用于通用中断处理
IRQ异常响应时,进入此模式
管理(svc)
操作系统保护代码
系统复位和软件中断响应时进入此模式
中止(abt)
用于支持虚拟内存和存储器保护
在ARM7TDMI中没有用处
未定义(und)
支持硬件协处理器的软件仿真
未定义指令异常时进入此模式
系统(sys)
用于支持操作系统的特权任务等
与用户类似,但可直接切换到其它模式
其中除了用户模式和系统模式外的其它模式都称为异常模式。
异常模式除了可以通过程序切换进入外,也可由特定的异常进入。
每种模式都有特定的寄存器,以避免异常退出时,用户模式不可靠。
2.4内部寄存器
2.4.1各模式可访问寄存器
ARM处理器内部有37个用户可见的寄存器:
(1)31个通用32位寄存器,分别是R0~R15、R13_svc、R14_svc、R13_abt、R14_abt、R13_und、R14_und、R13_irq、R14_irq、R8_fiq~R14_fiq。
(2)6个状态寄存器,分别为CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq。
各模式下的寄存器如表2.2为ARM状态各模式下的寄存器。
2.4.2通用寄存器
1、数据或地址保存寄存器
寄存器R0~R13为保存数据或地址的通用寄存器,其中寄存器R0~R7为未分组的
寄存器。
这意味着对于任何处理器模式,它们中的每一个都对应于相同的32位物理寄存器。
它们是完全通用的寄存器,不会被体系结构作为特殊的用途,并且可用于任何使用通用寄存器的指令。
表2.2ARM状态各模式下的寄存器
寄存器类别
寄存器在汇编中的名称
各模式实际访问的寄存器
用户
系统
管理
中止
未定义
中断
快中断
通
用
寄
存
器
和
程
序
计
数
器
R0(a1)
R0
R1(a2)
R1
R2(a3)
R2
R3(a4)
R3
R4(v1)
R4
R5(v2)
R5
R6(v3)
R6
R7(v4)
R7
R8(v5)
R8
R8_fiq
R9(SB,v6)
R9
R9_fiq
R10(SL,v7)
R10
R10_fiq
R11(FP,v8)
R11
R11_fiq
R12(IP)
R12
R12_fiq
R13(SP)
R13
R13_svc
R13_abt
R14_und
R13_irq
R13_fiq
R14(LR)
R14
R14_svc
R14_abt
R14_und
R14_irq
R14_fiq
R15(PC)
R15
状态寄存器
CPSR
CPSR
SPSR
无
SPSR_svc
SPSR_abt
SPSR_und
SPSR_irq
SPSR_fiq
2、分组寄存器
寄存器R8~R14为分组寄存器。
它们所对应的物理寄存器取决于当前的处理器模
式。
几乎所有允许使用通用寄存器的指令都允许使用分组寄存器。
寄存器R8~R12有两个分组的物理寄存器。
一个用于除FIQ模式之外的所有寄存器(R8~R12),另一个用于FIQ模式。
FIQ所使用的这些寄存器可实现快速的中断处理。
3、堆栈指针R13
寄存器R13通常作为堆栈指针SP。
每个异常模式都有其自身的R13分组版本,它通常指向由异常模式所专用的堆栈。
在入口处,异常处理程序通常将其他要使用的寄存器值保存到这个堆栈。
通过返回时将这些值重装到寄存器中,异常处理程序可确保异常发生时的程序状态不会被破坏。
4、链接寄存器
寄存器R14在结构上有两种功能。
在每种模式下,模式自身的R14版本用于保存子程序返回地址。
当使用BL或者BLX指令调用子程序时,R14设置为子程序返回地址。
子程序返回通过将R14复制到程序计数器来实现。
通常通过执行下列指令的两种方式:
MOVPC,LR
BXLR
5、程序计数器
程序计数器(PC)总是指向正在取指的指令。
由于流水线的结构,PC指向正在执行指令的下下一条指令。
在顺序执行程序时,PC自动加上ARM指令集长度(4个字节)或Thumb指令集长度(2个字节)。
2.5程序状态寄存器CPSR
所有模式共享一个程序状态寄存器。
在异常模式中,另外一个寄存器程序状态保存
寄存器SPSR可以被访问。
每种异常都有自己的SPSR,在进入异常时,它保存CPSR的当前值;在异常退出时,可通过它恢复CPSR。
ARMTDMI内核包含一个CPSR和5个供异常处理程序使用的SPSR。
ARM7TDMI内核所有处理器状态都保存在CPSR中。
当前的操作处理器状态位于CPSR当中。
CPSR包含:
(1)4个条件代码标志(负N、零Z、进位C和溢出V);
(2)2个中断禁止位,分别用于一种类型的中断;
(3)5个对当前处理器模式进行编码的位;
(4)1个用于指示当前执行指令(是ARM还是Thumb)的位。
每个异常模式还带有一个程序状态保存寄存器,它用于保存任务在异常发生之前CPSR,其CPSR和SPSR通过特殊指令进行访问。
2.5.1条件代码标志
大多数数值处理指令可以选择是否修改条件代码标志。
一般来说,如果指令带S后缀,则指令会修改条件代码标志,但有一些指令总是改变条件代码标志。
N、Z、C和V位都是条件代码标志。
可以通过算术和逻辑来设置这些位。
这些标志还可通过MSR和LDM指令进行设置。
ARM7TDMI处理器对这些位进行测试以决定是否执行一条指令。
在ARM状态中,所有指令都可按条件来执行。
在Thumb状态中,只有分支指令可条件执行。
图2.1CPSR寄存器格式
2.5.2控制位
CPSR的最低8位为控制位。
它们分别是中断禁止位、T位、模式位。
当发生异常时,控制位改变。
当处理器在一个特权模式下操作时,可用软件操作这些位。
2.6异常
只要正常的程序被暂时中止,处理器就进入异常模式。
当有一个异常时,在处理异常之前,ARM7TDMI内核保存当前处理器的状态,当处理完异常后,再恢复原来的程序。
2.6.1进入异常
当处理异常时,ARM7TDMI内核会在适当的LR中保存下一条指令的地址。
当异常入口来自于ARM状态下,将下一条指令的地址复制到LR中(当前PC+4还是+8取决于偏移量)。
不管是ARM还是在Thumb状态下,过程都是一样的。
(1)将CPSR复制到适当的SPSR;
(2)根据异常将CPSR模式强制设为某一值;
(3)强制PC从相关的异常向量取指。
ARM7TDMI内核在中断异常时,总是置位中断禁止标志,这样可以防止不受控制的中断嵌套。
异常总是在ARM状态中进行处理。
当处理器处于Thumb状态时发生了异常,将向量地址装到PC后切换到ARM状态执行。
2.6.2退出异常
当异常结束时,异常处理程序应当:
(1)将LR中的值减去偏移量后移入PC;
(2)将SPSR的值复制回CPSR;
(3)清零在入口处置位的中断禁止标志。
2.6.3快速中断请求
在ARM状态中,快中断模式有8个专用的寄存器,可用来满足寄存器保护的需要,将FIQ信号拉低可实现外部产生FIQ。
不管异常来自于ARM还是Thumb,都会通过这样的方式返回:
SUBSPC,R14_fiq,#4
2.6.4中断请求
中断请求IRQ异常是一个由输入端的低电平所产生的正常中断。
IRQ的优先级低于FIQ,对于FIQ序列它是被屏蔽的。
从中断返回:
SUBSPC,R14_irq,#4
2.6.5中止
中止表示对当前存储器的访问不能完成,这是通过外部ABORT输入指示的。
有两种类型的中止:
预取中止和数据中止。
1、预取中止
当发生预取中止时,ARM7TDMI内核将预取的指令标志为无效,但在指令到达流水线的执行阶段时才进入异常。
如果指令在流水线中因为发生分支而没有被执行,则中止将不会发生。
处理程序的指令如下:
SUBSPC,R14_abt,#4
2、数据中止
发生在数据中止时,根据指令的类型产生不同的动作:
(1)数据转移指令LDR、STR回写到被修改的基址寄存器。
(2)交换指令SWP中止好像没有被执行过一样。
(3)块数据转移指令LDM、STM完成回写被设置时,基址寄存器被更新。
中止的机制使指令分页的虚拟存储器系统能够实现。
在这样的一个系统中,处理器允许产生仲裁地址。
当某一地址的数据无法访问时,存储器管理单元MMU通知产生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM7 仿真 实验 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)