您好,欢迎访问三七文档
第二章:嵌入式处理器种类繁多、千花齐放:据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30几个系列两大主流体系结构:①低档8051(8位)体系结构②高档ARM(32位)体系结构嵌入式处理器的一些基本情况:①处理速度:0.1MIPS~2000MIPS②寻址空间:64KB~256MB③常用封装:8个引脚~300个引脚嵌入式处理器的特点p8硬件结构:①低档处理器多采用哈佛结构,即数据存储空间和程序存储空间分离【较大的程序存储器(用于固化已调试好的控制程序);较小的数据存储器(用于存放少量的随机数据——高速)】②高档处理器多采用冯·诺伊曼结构(典型的微型计算机的存储器结构采用的是冯·诺伊曼结构——也叫普林斯顿结构)品种规格系列化对实时多任务的支持(①实时:监测、控制、通信;②多任务:有效的调度)可靠性高、功耗低、集成度高、性价比高嵌入式处理器的分类(书p6-7)1嵌入式微处理器——EMPU(EmbeddedMicroProcessorUnit)2微控制器——MCU(MicroControllerUnit)3数字信号处理器——DSP【嵌入式DSP处理器:EDSP】4嵌入式片上系统——SOC1嵌入式微处理器:嵌入式微处理器的基础就是通用CPU嵌入式计算机:①嵌入式微处理器+芯片组(总线仲裁器+中断控制器+DMA控制器+存储控制器+I/O接口)+外接存储器;②嵌入式微处理器一般与存储器、接口电路等安装在一块电路板上,称为单板机,如PC/104、Biscuit板等典型芯片(32、64位):386EX、486EX、奔腾、PowerPC、68k、ARM2微控制器:又称单片机,就是将整个计算机集成到一块芯片中低档微控制器:①CPU②存储控制器+片内存储器(ROM/E2PROM/Flash、SRAM)③中断控制器、定时/计数器、WatchDog、GPIO、UART、PWM、A/D、D/A等【典型芯片:8051系列(8位)、MSP430(16位)】高档微控制器:①CPU+总线仲裁器+DMA控制器+中断控制器+I/O接口+存储控制器+外接存储器/少量片内存储器(Flash、SRAM、SDRAM)【典型芯片(32位):ARM、MIPS、PowerPC、68k】与嵌入式微处理器比较:微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高,但性能有所降低;目前微控制器是嵌入式系统工业中的主流,在嵌入式系统占有约70%的市场份额嵌入式处理器的发展趋势内部结构:①SoC设计,与DSP、Flash、FPGA融合②性能更强,集成更多的功能部件③双核或多核结构功耗更低:工作电流只有0.1μA(电池供电)可靠性更高:倍频技术、ESD(静电防护)技术支持ISP(在系统编程)、ISD(在系统调试)嵌入式处理器的选择原则:①CPUCore选择②处理器I/O接口选择③处理器存储系统选择④市场因素的影响ARM微处理器概述p7ARM(AdvancedRISCMachines):英国一家公司的名字,也是一类微处理器的通称;ARM公司1991年成立于英国剑桥知识产权(IP)①ARM公司本身不直接从事芯片生产,靠转让设计许可②全世界有几十家大的半导体公司都使用ARM公司的微处理器核(TI、NXP、Atmel、ST、Freescale等)市场份额:基于ARM技术的微处理器占32位RISC微处理器75%以上的市场份额ARM微处理器的特点:①功耗低、成本低、性能高②支持Thumb(16位)/ARM(32位)双指令集【Cortex支持Thumb-2(16/32位混合指令系统)】③指令长度固定(32位/16位)④大量使用寄存器,指令执行速度更快⑤寻址方式灵活简单,执行效率高ARM微处理器的应用领域:①工业控制领域②无线通信领域③消费类电子产品④图像处理产品ARM微处理器系列p21-22通用系列:ARM7系列;ARM9系列;ARM9E系列;ARM10E系列;ARM11系列;Cortex系列安全系列:SecurCore系列ARM7微处理器系列特点:极低的功耗(0.28mW/MHz),适合对功耗要求较高的应用;具有嵌入式ICE-RT逻辑,调试开发方便;能够提供0.9MIPS/MHz的三级流水线结构;支持的操作系统:uC/OS-II、uCLinux等;性能最高可达130MIPSARM9系列微处理器具有以下特点:5级整数流水线,指令执行效率更高;提供1.1MIPS/MHz的加速能力;全性能的MMU,支持WindowsCE、EmbeddedLinux等;支持数据Cache和指令Cache;性能最高可达300MIPSARM微处理器的应用选型ARM微处理器内核结构的选择:①带有MMU功能的ARM内核(ARM720T、ARM92xT、Cortex-A8;支持WinCE、EmbeddedLinux等操作系统)②不含有MMU功能的ARM内核(ARM7TDMI、Cortex-M3、Cortex-R4;支持uCLinux操作系统;不支持WindowsCE、EmbeddedLinux等操作系统③是否支持DSP或Java④是否支持浮点协处理器VFP系统的工作频率:①ARM7系列的典型处理速度为0.9MIPS/MHz,系统主时钟为20MHz-133MHz②ARM9系列的典型处理速度为1.1MIPS/MHz,系统主时钟频率为100MHz-233MHz③ARM10系统主时钟高达400MHz④ARM11系统主时钟高达750MHz⑤Cortex-M3—1.25MIPS/MHz,频率高达100MHz⑥Cortex-R4—1.6MIPS/MHz,频率高达400MHz⑦Cortex-A8—2.0MIPS/MHz,频率高达1GHz芯片内存储器的容量:①大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器②有部分芯片具有相对较大的片内存储空间,如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间片内外围电路的选择:a)几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中b)片内外围电路:USB接口、IIS(音频)接口、LCD控制器、键盘接口、RTC(实时时钟)、ADC和DAC、DSP协处理器等c)设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可靠性ARM微处理器的工作模式ARM微处理器支持7种工作模式User-用户模式(usr):ARM处理器正常的程序执行状态System-系统模式(sys):运行具有特权的操作系统任务IRQ-外部中断模式(irq):用于通用的中断处理FIQ-快速中断模式(fiq):用于高速数据传输或通道处理Supervisor-管理模式(svc):操作系统使用的保护模式;复位、软中断调用(SWI)Abort-中止模式(abt):当数据或指令预取中止时进入该模式;可用于虚拟存储及存储保护Undefined-未定义指令模式(und):当未定义的指令执行时进入该模式;可用于支持硬件协处理器的软件仿真特权模式:除用户模式以外,其余6种模式称之为特权模式(PrivilegedModes);当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的异常模式:除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes);常用于处理中断或异常,以及需要访问受保护的系统资源等情况工作模式的改变:1,通过软件改变:系统调用2,通过外部中断或异常处理改变:a,外部中断:IRQ、FIQ【来自中断控制器】b,异常处理:来自CPU内部ARM微处理器的工作状态一般有两种p41第一种为ARM状态:处理器执行32位的ARM指令;ARM指令要求字对齐第二种为Thumb状态:处理器执行16位的Thumb指令;Thumb指令要求半字对齐工作状态切换:在程序的执行过程中,处理器可以随时在两种工作状态之间切换处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容ARM微处理器在开始执行代码时总是处于ARM状态,也就是复位后进入ARM状态工作状态切换方法:进入Thumb状态:执行BX指令(BX:带状态切换的跳转指令;当操作数寄存器的最低位[0]为1时,可以使微处理器从ARM状态切换到Thumb状态;BXR0;R0的最低位[0]为1);处理器工作在Thumb状态,如果发生异常并进入异常处理子程序,则异常处理完毕返回时,自动从ARM状态切换到Thumb状态进入ARM状态:执行BX指令(BX:带状态切换的跳转指令;当操作数寄存器的最低位[0]为0时,可以使微处理器从Thumb状态切换到ARM状态;BXR0;R0的最低位[0]为0);处理器工作在Thumb状态,如果发生异常并进入异常处理子程序,则进入时处理器自动从Thumb状态切换到ARM状态ARM处理器的寄存器37个32位寄存器(31个通用寄存器,6个状态寄存器)这些寄存器不能被同时访问,取决于处理器的①工作状态②工作模式通用寄存器:通用寄存器包括R0~R15可以分为三类:①未分组寄存器R0~R7②分组寄存器R8~R14③程序计数器R15(PC)未分组寄存器R0~R7:在所有的工作模式下,每个未分组寄存器都指向对应的一个物理寄存器;在中断或异常处理进行工作模式转换时,由于不同的处理器工作模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏分组寄存器R8~R14R8~R12(①每个寄存器对应2个不同的物理寄存器;②当使用FIQ模式时,访问R8_fiq~R12_fiq③当使用其他模式时,访问R8_usr~R12_usr)R13、R14(①每个寄存器对应6个不同的物理寄存器②其中一个寄存器是用户模式与系统模式共用③另外5个物理寄存器对应于其他5种不同的工作模式)R13寄存器:常用作堆栈指针SP(StackPointer),一种习惯用法,也可使用其他的寄存器作为堆栈指针。在Thumb指令集中,某些指令强制使用R13作为堆栈指针,在应用程序初始化时,一般都要初始化每种模式下的R13,使其指向该工作模式的栈空间R14寄存器:也称链接寄存器LR(LinkRegister),其他情况下,R14用作通用寄存器R15寄存器:R15寄存器用作程序计数器(PC),R15也可用作通用寄存器,但一般不这么使用因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的CPSR寄存器:用作CPSR(CurrentProgramStatusRegister)CPSR可在任何工作模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位,异常模式下有一个专用的物理状态寄存器,称为SPSR(SavedProgramStatusRegister)当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR用户模式和系统模式不属于异常模式,没有SPSRThumb状态下的寄存器集是ARM状态下寄存器集的一个子集程序可以直接访问1)8个通用寄存器(R7~R0)2)程序计数器(PC)3)堆栈指针(SP)4)连接寄存器(LR)5)CPSR在每一种异常模式下都有一组SP、LR和SPSR程序状态寄存器程序状态寄存器的构成一个当前程序状态寄存器(CPSR)五个备份程序状态寄存器(SPSR)•备份的程序状态寄存器用来进行异常处理程序状态寄存器的功能;①保存ALU中的当前操作信息②控制允许和禁止中断③设置处理器的工作模式条件码标志(ConditionCodeFlags)——N、Z、C、V均为条件码标志位(它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行)——在ARM状态下,绝大多数的指令都是有条件执行的——在Thumb状态下,仅有分支指令B是有条件执行的标志位N当用两个补码表示的带符号数进行运算时N=1表示运算结果为负数N=0表示运算结果为正数或零标志位ZZ=1表示运算结果为零;Z=0表示运算结果为非
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:嵌入式第二章
链接地址:https://www.777doc.com/doc-2480702 .html