对于嵌入式系统微处理器的详细剖析

发布者:lqs1975最新更新时间:2018-01-26 来源: 21IC中国电子网关键字:嵌入式系统  微处理器  剖析 手机看文章 扫描二维码
随时随地手机看文章

1. 嵌入式微处理器的基本结构


(1)嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成。


(2)嵌入式微处理器是嵌入式硬件系统的核心,通常由控制单元、算术逻辑单元和寄存器3大部分组成:


A、控制单元:主要负责取指、译码和取数等基本操作并发送主要的控制指令。


B、算术逻辑单元:主要处理数值型数据和进行逻辑运算工作。


C、寄存器:用于暂存临时性的数据。


2. 嵌入式微处理器的分类(根据用途)


(1)嵌入式微控制器(MCU):又称为单片机,片上外设资源一般比较丰富,适合于控制。最大的特点是单片化,体积小,功耗和成本低,可靠性高。目前约占70%的市场份额。


(2)嵌入式微处理器(EMPU):又称为单板机,由通用计算机中的 CPU 发展而来,它的特征是具有32位以上的处理器,具有较高的性能。通常嵌入式微处理器把 CPU、ROM、RAM 及 I/O 等模块做到同一个芯片上。


(3)嵌入式 DSP 处理器(DSP):专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,使其处理速度比最快的 CPU 还快10~50倍,在数字滤波、FFT、频谱分析等方面获得了大量的应用。


(4)嵌入式片上系统(SOC):追求产品系统最大包容的集成器件,其最大的特点是成功实现了软硬件的无缝结合,直接在微处理器片内嵌入操作系统的代码模块。


3. 典型的微处理器的结构和特点


(1)8位微处理器:以8051为重点,彻底搞清楚8位单片机的工作原理,外设控制、存储分布 、寻址方式以及典型应用。


(2)16位微处理器:典型的微处理器可以参考 MSP430,找一本这方面的书看看关于 MSP430的结构原理以及典型应用。


(3)32位微处理器:32位处理器采用32位的地址和数据总线,其地址空间达到了2 32 =4GB 。目前主流的32位嵌入式处理器系统主要有 ARM 系列、MIPS 系列、PoewrPC系列等。ARM 微处理器体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式 RISC 处理器结构。按照目前的发展形式,ARM 几乎成了嵌入式应用的代名词。


4、单片机系统的基本概念


(1)单片机组成:中央处理器、存储器、I/O 设备。


(2) 存储器:物理实质是一组或多组具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存固定的程序及数据。


A、ROM(只读存储器):一般用于存放固定的程序或数据表格等,数据在掉电后仍然会保留下来。


B、RAM(随机存储器):用于暂存程序和数据、中间计算结果,或用作堆栈用等,数据在掉电后就会丢失。


(3) I/O 端口:单片机与外界联系的通道,它可以对各类外部信号(开关量、模拟量、频率信号)进行检测、判断、处理,并可控制各类外部设备。现在的单片机 I/O 口已经集成了更多的特性和功能,对 I/O端口的功能进行了拓展和复用,例如外部中断、ADC 检测以及 PWM 输出等等。


(4)输出电平:高电平电压(输出“1”时)和低电平电压(输出“0”时)


A、TTL 电平:正逻辑,5V 为逻辑正,0V 为逻辑负,例如单片机的输出。


B、RS232电平:负逻辑,-12V 为逻辑正,+12V 为逻辑负,例如 PC 的输出。


注:因此在单片机和 PC 进行通讯的时候需要一个 MAX232芯片进行电平转换。


(5)堆栈:它是一种线性的数据结构,是一个只有一个进出口的一维空间。


A、堆栈特性:后进先出(LIFO)


B、堆栈指针:用于指示栈顶的位置(地址),当发生压栈或者出栈操作时,导致栈顶位置变化时,堆栈指针会随之变化。


C、堆栈操作:压栈操作(PUSH)和出栈操作(POP)。


D、堆栈类型:“向上生长”型堆栈,每次压栈时堆栈指针加1;“向下生长”型堆栈,每次压栈堆栈时指针减1。


E、堆栈应用:调用子程序、响应中断时,堆栈用于保护现场;还可以用作临时数据缓冲区来使用。


F、使用注意:堆栈溢出问题,压栈和出栈的匹配问题。


(6)定时计数器:实质都是计数器。用作定时器时是对单片机内部的时钟脉冲进行计数,而在用作计数器时是对单片机外部的输入脉冲进行计数,其作用如下:


A、计时、定时或延时控制;


B、脉冲技术;


C、测量脉冲宽度或频率(捕获功能)


(7)中断:优先级更高的事件发生,打断优先级低的时间进程。引起中断的事件称为中断源。一个单片机可能支持多个中断源,这些中断源可以分为可屏蔽中断和非可屏蔽中断,而这些中断源并不都是系统工作所需的,我们可以根据系统需求屏蔽那些不需要的中断源。


A、中断嵌套:当一个低级中断尚未执行完毕,又发生了一个高级优先级的中断,系统转而执行高级中断服务程序,待处理完高级中断后再回过头来执行低级中断服务程序。


B、中断响应时间是指从发出中断请求到进入中断处理所用的时间;中断处理时间是指中断处理开始到中断处理结束的时间。


C、中断响应过程:


a、保护现场:将当前地址、累加器 ACC、状态寄存器保存到堆栈中。


b、切换 PC 指针:根据不同的中断源所产生的中断,切换到相应的入口地址。


c、执行中断服务处理程序。


d、恢复现场:将保存在堆栈中的主程序地址、累加器 ACC、状态寄存器恢复。


e、中断返回:从中断处返回到主程序,继续执行。


D、中断入口地址:单片机为每个中断源分配了不同的中断入口地址,也称为中断向量。


(8)复位:通过外部电路给单片机的复位引进一个复位信号,让系统重新开始运行。


A、复位发生时的动作:


a、PC 指针从起始位置开始执行(大多数单片机都时从0x0000处开始执行)。b、I/O 端口设置成缺省状态(高阻态、或者输出低电平)。c、部分专用控制寄存器 SFR 恢复到缺省状态。d、普通 RAM 不变(如果时上电复位,则是随即数)。


B、两种不同的复位启动方式:


a、冷启动:也叫上电复位,指在断电状态下给系统加电,让系统开始正常运行。b、热启动:在不断电的状态下,给单片机复位引进一个复位信号,让系统重新开始。


C、两种类型的复位电路:高电平复位和低电平复位。


D 注意事项:


a、 注意复位信号的电平状态及持续时间必须满足系统要求。b、 注意避免复位信号抖动。


(9)时钟电路:单片机是一种时序电路,必须提供脉冲电路才能正常工作。时钟电路相当于单片机的心脏,它的每一次跳动(振动节拍)都控制着单片机的工作节奏。振荡得慢时,系统工作速度就慢,振荡得快时,系统工作速度就快(功耗也增大)。


A、振荡周期:振荡源的振荡节拍。B、机器周期:单片机完成一个基本操作需要的振荡周期(节拍)。C、指令周期:执行一条指令需要几个机器周期。不同的指令需要的机器周期数不同。


5、 ARM 体系结构的基本概念


(1) ARM :Advanced RISC Machine。


(2) ARM 体系结构中支持两种指令集:ARM 指令集和 Thumb 指令集。


(3) ARM 内核有 T 、 D 、 M 、 I 四个功能模块:


A、T 模块:表示16位 Thumb,可以在兼顾性能的同时减少代码尺寸。B、D 模块:表示 Debug,内核中放置了用于调试的结构,通常为一个边界扫描链 JTAG。C、M 模块:表示8位乘法器。D、I 模块:表示 EmbeddedICE Logic,用于实时断点观测及变量观测的逻辑电路部分。


(4) ARM 处理器有7 种运行模式:


A、用户模式(User):正常程序执行模式,用于应用程序。D、快速中断模式(FIQ):快速中断处理,用于高速数据传输和通道处理。C、外部中断模式(IRQ):用于通用的中断处理。D、管理模式(SVE):供操作系统使用的一种保护模式。E、数据访问中止模式(Abort):用于虚拟存储及存储保护。F、未定义指令中止模式(Undefined):当未定义指令执行时进入该模式。G、系统模式(System):用于运行特权级的操作系统任务。


除了用户模式之外的其他6种处理器模式称为 特权模式,在这些模式下,程序可以访问所有的系统资源 ,也可以任意地进行处理器模式切换,其中,除了系统模式外,其他的5种特权模式又称为 异常模式。处理器模式可以通过 软件控制进行切换,也可以通过 外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。这种体系结构可以使操作系统控制整个系统的资源。当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式种都有一组寄存器,供相应的异常处理程序使用,这样就可以保证进入异常模式时,用户模式下的寄存器不被破坏。系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器,但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换,它主要供操作系统任务使用。


(5) ARM 处理器共有 37 个寄存器: 31 个通用寄存器和6个状态寄存器


A、通用寄存器包括 R0~R15,可以分为3类:


a、未备份寄存器 R0~R7:在所有的处理器模式下,未备份寄存器都是指向同一个物理寄存器。


b、备份寄存器 R8~R14:对于 R8~R12来说,每个寄存器对于2个不同的物理寄存器,它们每次所访问的物理寄存器都与当前的处理器运行模式有关。对于 R13、R14来说,每个寄存器对于6个不同的物理寄存器,其中一个是用户模式和系统模式共用。R13在 ARM 指令种常用作堆栈指针。由于处理器的每种运行模式都有自己独立的物理寄存器R13,所有在用户应用程序的初始化部分,一般要初始化每种模式下的 R13,使其指向该运行模式的栈空间。R14又称为连接寄存器(LR),在 ARM 体系种具有下面两种特殊作用:在通过 BL 或 BLX 指令调用子程序时,存放当前子程序的返回地址;在 异常中断发生时,存放异常模式将要返回的地址。


c、程序计数器 R15(PC)。


由于 ARM 采用了流水线机制,在三级流水线中,当正确读取了 PC 的值时,该值为当前指令地址值加8个字节。也就是说,PC 指向当前指令的下两条指令的地址。在 ARM 指令状态下,PC 的0和1位是0 ,在 Thumb 指令状态下,PC 的0位是0。


B、程序状态寄存器


a、ARM 体系结构包含1个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSR),使用MSR 和 MRS 指令来设置和读取这些寄存器。


b、当前程序状态寄存器 CPSR:保存当前处理器状态的信息,可以在任何处理器模式下被访问。


c、备份程序状态寄存器 SPSR:每一种异常处理器模式下都有一个专用的物理状态寄存器。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容,在异常中断程序退出时,可以用 SPSR 中保存的值来恢复 CPSR。


d、由于用户模式和系统模式不属于异常模式,它们没有 SPSR,当在这两种模式下访问 SPSR 时,结果是未知的。


(6) ARM 指令的寻址方式


所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。


A、 立即寻址:操作数本身就在指令中给出,只要取出指令也就取到了操作数。ADD R0, R0, #1 ;R0=R0+1


B、 寄存器寻址:利用寄存器中的数值作为操作数。ADD R0, R1, R2 ;R0=R1+R2


C、 寄存器间接寻址:以寄存器中的值作为操作数地址,而操作数本身存放在存储器中。ADD R0, R1, [R2] ;R0=R1+[R2]LDR R0, [R1]    ;R0=[R1]STR R0, [R1]    ;[R1]=R0


D、 基址变址寻址:将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。LDR R0, [R1, #4]    ;R0=[R1+4]LDR R0, [R1, #4]!   ;R0=[R1+4] R1=R1+4LDR R0, [R1], #4    ;R0=[R1] R1=R1+4LDR R0, [R1, R2]!   ;R0=[R1+R2]


E、 多寄存器寻址:一条指令可以完成多个寄存器值的传送。LDMIA R0, {R1, R2, R3}   ;R1=[R0] R2=[R0+4] R3=[R0+8]


F、 相对寻址:以程序计数器 PC 的当前值作为基地址,指令中的地址标号作为偏移量,两者相加之后得到操作数的有效地址。


BL NEXT ;跳转到子程序 NEXT 处执行……NEXT……MOV PC, LR ;从子程序返回

G、 堆栈寻址:支持4种类型的堆栈工作方式:


a、 满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生长。b、 满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生长。c、 空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生长。d、 空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生长。


(7) ARM 的存储方法


A、大端模式:数据的高字节存储在低地址中,低字节存储在高地址中。B、小端模式:数据的低字节存储在低地址中,高字节存储在高地址中。


(8) ARM 中断与异常


A、ARM 内核支持7种中断,不同的中断处于不同的处理模式,具有不同的优先级,而且每个中断都有固定的中断地址入口。当一个中断发生是,相应的 R14(LR)存储中断返回地址,SPSR 存储当前程序状态寄存器 CPSR 的值。


B、由于 ARM 内核支持流水线工作,LR 寄存器存储的地址可能是发生中断后面指令的地址,所以不同的中断处理完成后,必须将 LR 寄存器值经过处理后再写P15(PC)寄存器。


C、ARM 异常的具体含义:


a、复位:当处理器的复位电平有效时,产生复位异常,程序跳转到异常复位异常处理程序处执行。


b、未定义的指令:当 ARM 处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可以使用该异常机制进行软件仿真。


c、软件中断:该异常由执行 SWI 指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现操作系统调用功能。


d、指令预取中止:如果处理器预取指令的地址不存在或该地址不允许当前指令访问,存储器向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。


e、数据访问中止:如果处理器数据访问指令的目标地址不存在,或者该地址不允许当前指令访问 ,处理器产生数据访问中止异常。


f、外部中断请求:当 ARM 外部中断请求管脚有效,而且 CPSR 中的 I 位为0时,产生 IRQ 异常 。系统的外设可以通过该异常请求中断服务。


g、快速中断请求:当 ARM 快速中断请求管脚有效,而且 CPSR 的 F 位为0时,产生 FIQ 异常。


D、ARM 处理器对异常中断的响应过程


a、将下一条指令的地址存入相应的连接寄存器 LR 中。b、将 CPSR 复制到相应的 SPSR 中。c、根据异常的类型,强制设置 CPSR 的运行模式位。d、强制 PC 从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。


E、ARM 处理器从异常中断处理程序中返回


a、恢复中断的程序的处理器状态,将 SPSR 复制到 CPSR 中。b、若在进入异常处理时设置了中断禁止位,要在此清除。c、将连接寄存器 LR 的值减去相应的偏移量后送到 PC。


F、复位异常中断处理程序不需要返回。在复位异常中断程序开始整个用户程序的执行。

 

关键字:嵌入式系统  微处理器  剖析 引用地址:对于嵌入式系统微处理器的详细剖析

上一篇:2018年智能手机用OLED面板市场有望超越液晶面板
下一篇:三星以白金会员加入Linux基金会网络基金

推荐阅读最新更新时间:2024-05-03 02:22

嵌入式系统应用中实现RS485的方向切换
  RS485总线是工业应用中非常成熟的技术,是现代通信技术的工业标准之一。RS485总线用于多站互连十分方便,用一对双绞线即可实现,采用平衡发送和差分接收,即在发送端驱动器将TTL电平信号转换成差分信号输出,在接收端接收器将差分信号变成TTL电平,因此具有抗共模干扰的能力。根据RS485标准,传送数据速率达100 kb/s时通信距离可达1200 m。   RS485在嵌入式系统中的应用非常广泛。嵌入式系统可以通过RS485接口来控制终端设备。由于RS485是半双工模式,因此发送和接收的方向切换需要我们的关注和研究。如果方向切换方式选择不好可能会导致RS485驱动能力下降、软件执行效率下降,甚至导致系统异常等问题。   本
[嵌入式]
基于ADμC7024微处理器在医疗脉搏血氧计中的应用
引言 随着信息技术的迅猛发展和人民生活水平的提高,极大地推动了医疗电子设备的发展,当今医疗电子设备的发展趋势是高精度、实时性、低功耗和小尺寸,作为医疗电子设备中核心地位的MCU(微处理器)也随着这一发展趋势向前不断衍变着。由早期的8位MCU发展到目前的32位RISC(精简指令集计算机)MCU。美国ADI公司根据市场的需要最新推出了一款基于ARM(高级精简指令集计算机)核的微处理器ADμC7024便是目前32位RISC MCU的杰出代表。ADμC7024卓越的处理能力、集成众多片上外围器件和芯片低功耗的特点,完全胜任目前医疗电子设备的需求及未来的发展目标。 本文以ADμC7024在医疗电子中监护产品脉搏血氧计的应用为例,重点介绍
[单片机]
基于ADμC7024<font color='red'>微处理器</font>在医疗脉搏血氧计中的应用
嵌入式系统设计技术介绍
  嵌入式系统是以应用为中心,以计算机技术为基础.软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统嵌入式系统是将先进的计算机技术、半导体技术、电子技术和具体应用相结合的产物。      近年来,在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术取得迅速发展,嵌入式系统应用范围也急剧扩大。数码产品、 智能手机 及各种掌上型多媒体设备都是典型的嵌入式系统。除此之外,更多的嵌入式系统隐身在不为人知的角落,从小到电子手表、电子体温计、翻译机等,大到如冷气机、电冰箱、电视机,甚至马路上红绿灯的控制器、战斗机中的飞控系统、自动导航设备、汽车中燃油控制、汽车雷达、ABS等的微计算机系统、医院中的医疗
[单片机]
<font color='red'>嵌入式系统</font>设计技术介绍
uClinux在Nios II嵌入式平台上的移植研究
1. Nios II嵌入式处理器       Nios II是运行在FPGA上的五级流水线、单指令的RISC处理器,它专门针对Altera的可编程逻辑器件及片上可编程的设计思想做了相应的优化。作为一种可配置的精减的RISC处理器,它可以与用户自定义逻辑结合构成SOPC系统,并下载到Altera的可编程器件中。32位的Nios II软核,结合外部闪存以及大容量存储器,可以构成一个功能强大的32位嵌入式处理器系统。此外,利用Altera提供的IDE(Integrated development environment)开发工具 可以方便的在调试模式下调试处理器,提高开发的速度。       作者使用Cyclone II版Nio
[嵌入式]
一种新型嵌入式远程监控系统的设计开发
1 引言 嵌入式监控系统是当前工业自动化监控应用领域研究的热点之一。微电子技术和微处理器制造工艺的提高以及网络技术的飞速发展,使得构建基于Web的嵌入式远程监控系统得以实现。这样的远程监控系统可以直接通过TCP/IP网络协议接入Internet实现远程监控,成为真正不受时间和空间限制的远程监控系统。 由于近年来一些半导体厂家新推出的MCU的存储能力都有了很大的提高,以及用C语言编写的程序具有移植性强、可读性好等优点,因此本文监控软件采用标准C语言编写,并在m6811-elf-gcc中编译通过。本文将从嵌入式Web监控系统的通信基础--以太网接口模块着手,分别讲述各个功能模块的设计与实现。 2 以太网接口程序设计 以太网接口
[单片机]
一种新型嵌入式远程监控系统的设计开发
从4个维度深度剖析激光雷达核心技术
激光雷达(LiDAR)的产业化热潮来源于自动驾驶汽车的强烈需求。在美国汽车工程师学会(SAE)定义的L3级及以上的自动驾驶汽车之中,作为3D 视觉传感器 的激光雷达彰显了其重要地位,为自动驾驶的安全性提供了有力保障。因此,激光雷达成为了产业界和资本界追逐的“宠儿”,投资和并购消息层出不穷。很多老牌整车厂和互联网巨头都展开了车载激光雷达的“军备竞赛”。近期,MEMS激光雷达技术发展最为活跃,并且吸引了大多数投资,同时宝马宣布将于2021年推出集成MEMS激光雷达的自动驾驶汽车。 不同自动驾驶等级对 传感器 的需求分析 (数据来源:Yole) 伴随着自动驾驶热度上升,激光雷达相关新闻铺天盖地袭来。但是这项在自动驾驶领域尚不成熟
[汽车电子]
从4个维度深度<font color='red'>剖析</font>激光雷达核心技术
Crank Storyboard:微控制器和微处理器之间协同开发GUI
使用各种微控制器(MCU)和微处理器(MPU)的团队能否找到节省资源并优化工作流程的方法?ST合作伙伴计划的成员Crank Software给与了答案。这家总部位于加拿大的跨国公司以Storyboard(一个用于嵌入式GUI开发的跨平台框架)而闻名。该工具可以创建复杂而引人入胜的界面。开发人员可以尝试在STM32 MCU和MPU上演示图像,从而在短短几分钟内就可以开始测试环境。演示图像也是框架将相似的UI引入各种组件的能力的一个很好的例子。因此,这些图像对于希望从MCU迁移到MPU或反之亦然的工程师来说是一个对象课程。 迁移的挑战 使用各种组件具有许多优势。例如,它可以帮助公司在为客户量身定制解决方案的同时享受更大的灵活
[嵌入式]
新型微处理器监控电路
微处理器监控电路早已得到广泛应用,它的发展从分立电路、单一复位功能的三端集成器件到复杂的多功能集成器件,的电子技术的各个阶段,它都保证了系统的正常运行。本文简要介绍监控电路的基本特性以及一些新型监控复位器件。 1 电源电压监控电路 监控电路最基本的功能就是上电复位(POWER-ON-RESET)。如果不具备这一功能,微处理器系统的上电和电源电压波动时就会出现问题。最简单的上电复位电路是由一个电阻、一个电容和一个二极管组成的,其电路连接如图1所示。 的上电过程中,当电源电压开始上升时,RC电路保持低电平。如果电源电压上升得足够快,RESET端将保持有效以使微处理器处于复位状态,直到其它电路都已正常上电。只要电源上电的瞬态
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved