嵌入式医学仪器设计考试复习题_第1页
嵌入式医学仪器设计考试复习题_第2页
嵌入式医学仪器设计考试复习题_第3页
嵌入式医学仪器设计考试复习题_第4页
嵌入式医学仪器设计考试复习题_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章医疗仪器定义医疗仪器(Medical Instrumentation):医疗器械是指单独或者组合使用于人体的仪器、设备、器具、材料或者其他物品,包括所需要的软件;其用于人体体表及体内的作用不是用药理学、免疫学或者代谢的手段获得,但是可能有这些手段参与并起一定的辅助作用;其使用旨在达到下列预期目的:(一)对疾病的预防、诊断、治疗、监护、缓解;(二)对损伤或者残疾的诊断、治疗、监护、缓解、补偿;(三)对解剖或者生理过程的研究、替代、调节;(四)妊娠控制。医疗仪器分类根据风险分类:第一类,需常规管理,仪器对用户潜在的危害最低,通常比第二类和第三类设计简单。包括,压舌板、便盆、弹性绷带、检查用手

2、套、手持手术器材和其他相似的简单器材。第二类,常规管理不足以保证其安全性与有效性的,因而需要特殊控制的医疗器械。通常是非侵入式的,包括X光机,PACS,电动轮椅,输液泵,手术用消毒帷帘,手术针缝合材料,针灸针等。第三类,仅用第一类和第二类的常规管理与特殊控制不足以保证其安全性与有效性的医疗器械。这类仪器需要售前许可,科学有效的评估来保证其安全性与有效性。通常是维持或支持生命活动的仪器。包括人工心脏瓣膜、丰胸硅胶、脑植入刺激器、通风机、床边监护仪等。根据价值分类:大型仪器、中小型仪器、低值产品根据临床科室及人体系统分类:心脏科设备、呼吸科设备、泌尿科设备等(重复)根据物理原理分类:医用电子仪器、

3、医用光学仪器、医用放射仪器、医用核物理仪器等(声、光、电、机械一体)根据临床应用:诊断仪器、治疗仪器、辅助仪器X-ray Computed TomographyMagnetic Resonance ImagingPositron Emission Tomography信号采样有两种方式:动态取样(In Vivo):直接在人体上测量生理参数; 需要能对人体各组织瞬时变化产生响应的医学仪器系统;可能需要传感器(将生理现象从其力学状态或电化学状态中转化为与机械能或化学能成比例的电信号);静态取样(In Vitro):着眼于活体组织;表示某一特定时刻及规定条件下由医学仪器系统获得的样本。信号特点:1、

4、信号弱Weak2. 频率范围一般较低Low frequency3. 噪声强Strong Noise:4. 随机性强Random:5. 数据量大Huge data amount:现代医疗器械发展具有直观、无创、高效、经济等特征第二章嵌入式系统定义 从技术的角度定义(重) 以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、重量、功耗严格要求的专用计算机系统简而言之,是含有处理器的专用软硬件系统 从系统的角度定义(重)嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统 英国电机工程师协会的定义用于控制、监视或者辅助操作机器和设备的装置

5、微机学会的定义嵌入式系统是以嵌入式应用为目的的计算机系统,可分为系统级、模块级、芯片级嵌入式系统架构硬件层Hardware Layer:例如嵌入式微处理器、Soc、ROM、I/O接口中间层Middleware Layer:包括硬件抽象层(Hardware Abstraction Layer)、板级支持包(Board Support Package),实现系统软件与底层硬件的隔离,以及为系统提供特定功能的代码。操作系统层OS layer:包括嵌入式操作系统(EOS)、文件子系统、图形子系统等,简化软件设计、提供标准内核、封装资源应用层Application layer:面向目标和用户,完成特定功

6、能,例如,医学图像处理系统、数据采集系统嵌入式系统特点 嵌入专用 嵌入式处理器与通用处理器的最大不同就是嵌入式处理器嵌入在针对特定应用设计的系统中 综合性强嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物是一个技术密集、资金密集、知识高度分散、不断创新的知识集成系统 设计高效可裁剪嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余 程序固化软件一般都固化在存储器芯片或处理器本身中,这样提高了系统的执行速度和可靠性 需要独立的开发系统嵌入式系统本身不具备自主开发能力,必须有一套开发工具和环境才能进行开发 生命周期长嵌入式系统和具体应用结合在一起,其升级换

7、代一般与具体产品同步进行,因此具有较长的生命周期 可靠性高、成本低、资源受限、功耗低等等第三章 硬件结构Hardware Architecture 冯诺伊曼结构Von Neumann architecture 典型的微型计算机的存储器结构采用的是冯诺伊曼结构-也叫普林斯顿结构特点: 有RAM(random-access memory)和带指令集的CPU(central-processing unit)同一标准的内存系统,指令和数据使用相同的地址空间有一条地址总线和一条数据总线,后者由指令和数据共享使用 哈佛结构Harvard architecture 即数据存储空间和程序存储空间分离 较大的程

8、序存储器(用于固化已调试好的控制程序) 较小的数据存储器(用于存放少量的随机数据高速)特点: 可以同时获取程序和数据分离的内存系统可能有不同的地址空间和带宽难以进行自修改程序设计程序内存通常是只读的,不能将数据写到程序存储空间 改进的哈佛构架 Modified Harvard Architecture指令内存内容可以像数据一样被访问特点: 通过对数据和指令使用分离的缓存建立统一的分层内存结构特殊机器操作哈佛结构(英语:Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存

9、器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度。与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点: 1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存; 2、使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。 冯诺伊曼结构(von Neumann architecture),也称普林斯顿结构,其内部程序空间和数据空间是合在一起的,取指令和取操作数是通过一条总线分时进行的。冯.诺曼结构处理器具有以下几个特点: 必须有一个存

10、储器; 必须有一个控制器; 必须有一个运算器,用于完成算术运算和逻辑运算; 必须有输入和输出设备,用于进行人机通信。 总结: 冯诺依曼结构中不独立区分程序和数据空间,且程序和数据空间共用地址和数据线; 哈佛结构中程序空间和数据空间是独立的,具有各自独立的地址线和数据线; DSP中的改善型哈佛结构是在普通哈佛结构的基础上加上独立的缓冲区,同时在程序和数据空间之间加上了一根总线,用于程序空间和数据空间的互访。指令周期Stored program 在电子内存中存储程序指令。其定义后来延伸到内存中的程序与数据可交换或统一。图灵机模型:图灵机是一个理想化的机器模型,其能够完成任何计算且只需要最少的逻辑结

11、构。(自己做的补充 0.0 :所谓的图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。)(不是重点)嵌入式处理器特点:1、 品种规格系列化同一产品系列不同型号处理器:具有相同CPU内核,相同或兼容指令系统;具有不同I/O接口功能部件配置2、 支持实时多任务3、 可靠性高,功耗低,集成度高,性价比高处理器分类MPUMicrop

12、rocessor Unit 微处理器MCUMicrocontroller Unit 微控制器ASIP Application-Specific Instruction-set Processor 特殊应用指令集处理器SoC System On a Chip 系统芯片ASIC Application-Specific Integrated Circuit 专用集成电路ASIP中有DSP(Digital Signal Processor)数字信号处理器、GPU(Graphics Processor Unit)图形处理器、Network Processor网络处理器、Cryptoprocessor密

13、码处理器嵌入式微处理器MPU基础是通用CPU,但在工作温度、抗电磁干扰、可靠性、功耗等方面做了各种增强,并去除冗余功能部分嵌入式计算机=嵌入式微处理器+芯片组(总线仲裁器+中断控制器+DMA控制器+存储控制器+I/O接口)+外接存储器嵌入式微处理器一般与存储器、接口电路等安装在一块电路板上,称为单板机以下为例子与相应的特点,“了解”即可。(从PPT中省去了一些内容,若觉得不可靠,请自己参考PPT)PowerPC: 特点可伸缩性好,方便灵活 品种很多,有通用处理器、嵌入式处理器和CPU核 通用处理器主要型号是PowerPC 750系列,主频最高为700MHz 嵌入式处理器有PowerPC 405

14、(主频最高为266MHz)和PowerPC 440(主频最高为550MHz) CPU核用于各种集成的系统芯片(System-On-Chip,SOC)设备上PC/104, PC/104+单板机特点 PC/104总线采用96mmx90mm的小板结构 低功耗,15瓦每模块,支持32位PCI连接 紧凑加固性设计,可用于军工产品 PC/104总线工控机主流产品是486EX和586EXBiscuit PC单板机 特点 一体化计算机、低成本、形状像饼干,俗称饼干计算机分类(根据尺寸):迷你Biscuit PC(2.5” 120 82mm)、半尺寸Biscuit PC(3.5” 145102mm)、全尺寸Bi

15、scuit PC(5.25” 203146mm)微控制器MCU又叫单片机,将整个计算机集成到一块芯片中分为低档微控制器(8051系列、MSP430)和高档微控制器(ARM、MIPS等) 低档微控制器:CPU+存储控制器+片内存储器(ROM/E2PROM/Flash、SRAM)+中断控制器、定时/计数器、WatchDog、GPIO、UART、PWM、A/D、D/A等 高档微控制器:CPU+总线仲裁器+DMA控制器+中断控制器+I/O接口+存储控制器+外接存储器/少量片内存储器(Flash、SRAM、SDRAM)与嵌入式微处理器比较 微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、

16、可靠性提高,但性能有所降低 目前微控制器是嵌入式系统工业中的主流,在嵌入式系统占有约70的市场份额以下为例子与相应的特点,“了解”即可。(从PPT中省去了一些内容,若觉得不可靠,请自己参考PPT)MIPS(Microprocessor without Interlocked Pipeline Stages) 一种通用的RISC(Reduced Instruction-Set Computer,精简指令集计算机)处理器,有R4000,4kc,5kc,20kc等型号Atmel AVR系列 8位RISC微处理器芯片 拥有大量灵活的配置 许多爱好者开发免费的工具链与应用 通常速度1MIPS(1M指令每

17、秒),部分模块20MIPS,最大寻址128K程序内存空间、8K RAM, 常用于ADC、LCD控制等Atmel ARM7(32位) 低电压要求 可以32位或16位运行, 寻址空间大,可寻址8-64k RAM,32-256k FLASH,速度可变,最高55MHZ,通常封装外设, 常见于数据处理系统中TI MSP430 低功耗,低电压 RISC芯片 TI提供开发程序链支持 为间歇性采样和快速启动设计 最大25MHz/25MIPS, 最大256K程序内存空间,16KRAM,可用于控制LCD、SPI、UART等专用指令集处理器ASIPASIP,Application-Specific Instruct

18、ion-set Processor指令集是为特殊应用或者特殊应用领域所定制的处理器。Instruction-set generation as part of synthesisCustomized processor options优点:Customization yields lower area, power etc.缺电:硬件与软件开发成本较高、设计编译调试复杂,投入市场前周期较长以下为例子与相应的特点,“了解”即可。(从PPT中省去了一些内容,若觉得不可靠,请自己参考PPT)DSP:特殊设计 高效乘累加运算、超标量操作、指令流水线 高效数据存取、硬件重复循环 确定性操作(程序执行时间

19、可预测) 应用场合 数字滤波、FFT、频谱分析等方面 代表性的产品 TI的TMS320系列、ADI的21xx系列、Motorola的DSP56000系列TMS320系列:低成本C2000、C6000高性能、C5000低功耗、OMAP多核Network Processor (PPT上就一张图,我不知道怎么写了)Video Processor(PPT上就一张图,我不知道怎么写了)系统芯片SoC: System on a Chip or System on Chip将一个计算机的所有组件或者其他电子系统集成到一个IC芯片上。典型的组成有:C, P or DSP core(多核SoC),内存块(RAM

20、、FLASH、EEPROM),定时源(晶振、锁相回路),外围设备(计时器、上电触发器)、外部接口(USB、以太网接口、USART、SPI)、模拟接口(ADCs和DACs)、稳压器和电源控制电路专用集成芯片ASIC为特殊功能自定义的集成线路。ASICs包括处理器、内存块、Flash和Soc。设计的方式有:全自定义、标准单元(Standard Cell)、门阵列FPGA与标准单元:FPGA的优势:CAD设计简单、no mask cost、Bug修复快、厂家负责电路调试、优化检测。标准单元:大小尺寸较小,批量生产成本低,速度较快,电源要求较低注,两者优势即为对面的劣势发展趋势:更多Soc设计,与DS

21、P、FPGA、Flash结合,性能更强,功耗更低、多核、可靠、支持在线编程、在线调试。选择标准功能、性能、成本、开发技巧与资源、操作系统兼容性、供应商、更新情况第四章(PS自己觉得总结的并不好,基本把PPT文字全拷了。)ARM(Advanced RISC Machines)特点 体积小、功耗低、成本低、性能高 支持Thumb(16位)/ARM(32位)双指令集 Cortex 支持Thumb-2(16/32位混合指令系统) 指令长度固定(32 位/16位)大量使用寄存器,指令执行速度更快寻址方式灵活简单,执行效率高ARM微处理器的技术指标:功能、字宽、处理速度、工作温度、功耗、寻址能力、平均无故

22、障工作时间、性价比、工艺和电磁兼容性CISC vs RISC(据说此图必考)ARM系列名后缀与意义(据说会考)T-支持16位压缩指令集Thumb、D-支持片上调试Debug、M-内嵌硬件乘法器,支持长乘法、I-Embedded ICE 支持在线仿真,断点调试、E-支持DSP指令扩展、J-支持Java编程、S可综合Synthesizable、F-支持VFP,向量浮点运算ARM简介:ARM是32位构架,8位(bit)是一个字节(Byte),一个字是32位,半字是16位。实行两套指令集:32位ARM指令集和16位Thumb指令集。有Jazelle核心的也支持8位工作模式因为Java是以8位为一数据单

23、元运行的。工作状态1、 ARM状态(、执行32位ARM指令;、要求字对齐)2、 Thumb状态(、执行16位Thumb指令;、要求半字对齐)Thumb指令集是16位的,每一个Thumb指令都有对应的ARM(32位)指令,Thumb编程模型对应于ARM编程模型,只要遵循一定的调用规则,Thumb子程序与ARM子程序可以互相调用。Thumb指令特点-Thumb指令集中的数据处理指令的操作数是32位,指令地址也是32位;-大多数Thumb指令是无条件执行的,而几乎所有的ARM指令都是有条件执行的;-大多数Thumb数据处理指令的目的寄存器与其中的一个源寄存器相同。-Thumb指令的长度为16位,只用

24、ARM指令一半的位数来实现同样的功能。实现特定的程序功能,所需的Thumb指令的条数比ARM指令多。Thumb vs ARM (空间效率、时间效率和功耗分析)同一功能程序的Thumb代码比ARM代码多,但存储空间少。当使用32位存储器,ARM代码快,当使用16位存储器时,Thumb快。使用Thumb代码时存储器功耗会降低。优缺点:对系统性能要求高,选择ARM指令集和32位存储系统。对系统成本和功耗要求高时,选择Thumb指令集和16位存储系统若两者结合使用,充分发挥各自的有点,会取的更好的结果。程序执行中,两种工作状态可以随时切换,切换时不会影响处理器的工作模式和寄存器中的内容。PS:ARM复

25、位之后程序处于ARM工作状态。工作模式7种工作模式:用户模式和6种特权模式,6种特权模式中除System模式外均为异常模式User用户模式,程序不能访问有些受保护的资源,只能通过异常形式来改变CPU当前运行模式。System系统模式,与用户模式一样,但是访问资源不受限制,主要用于运行系统中的一些特权任务。FIQ快速响应中断模式:用于高速数据传输或通道处理IRQ外部中断模式:用于通用的中断处理SVR管理模式:操作系统使用的保护模式以及复位、软中断调用(SWI)ABT中止模式:当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护UND未定义模式:当未定义的指令执行时进入该模式,可用于支持硬件

26、协处理器的软件仿真工作模式可由软件或者外部中断或异常处理改变ARM寄存器集(相当重要)一共37个 32位的寄存器,分为31个通用寄存器与6个状态寄存器。这些寄存器不能同时被访问,取决于工作状态与工作模式。通用寄存器 R0-R15: 未分组寄存器R0-R7在所有的工作模式下,每个未分组寄存器都指向对应的1个物理寄存器在中断或异常处理进行工作模式转换时,由于不同的处理器工作模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏 分组寄存器R8-R14R8R12每个寄存器对应2个不同的物理寄存器当使用FIQ模式时,访问R8_fiqR12_fiq当使用其他模式时,访问R8_usrR12_usrR13

27、、R14每个寄存器对应6个不同的物理寄存器其中一个寄存器是用户模式与系统模式共用另外5个物理寄存器对应于其他5种不同的工作模式 程序计数器R15(PC)。R13常用作堆栈指针SP(Stack Pointer),在应用程序初始化时,一般都要初始化每种模式下的R13,使其指向该工作模式的栈空间。(在Thumb 指令集中,某些指令强制使用R13作为堆栈指针)R14也称链接寄存器LR (Link Register),异常模式时用于保存返回地址LR=PC(即R15)- 4 ; LabelPC。(PS,这个“公式”绝对会考到,重点中的重点。)程序计数器R15,用作程序计数器PC(Program Count

28、er),指向正在被读取的指令的地址。在ARM与Thumb工作状态下,R15分别需要进行字对齐(即最后两个bit为0)与半字对齐(最后一位bit为0)。由于ARM体系结构采用了多级流水结构,PC总是指向当前执行指令的下两条指令的地址,即PC的值为当前执行指令的地址值加8个字节执行指令的地址值加8个字节程序状态寄存器的构成:一个当前程序状态寄存器(CPSR)、五个备份程序状态寄存器(SPSR)(用来进行异常处理)程序状态寄存器的功能:保存ALU中的当前操作信息、控制允许和禁止中断、设置处理器的工作模式。CPSR(Current Program Status Register): CPSR可在任何工

29、作模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位 异常模式下有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register)当异常发生时,用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR 用户模式和系统模式不属于异常模式,没有SPSR稍提一下CPSR的标志位与字母的含义:N是否为负,Z是否为0,C进位,V溢出,I指IRQ,F指FIQ,T指Thumb模式Thumb的寄存器集Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集。程序可以直接访问8 个通用寄存器(R7R0)、程序计数器(P

30、C)、SP、LR、堆栈指针(SP)、连接寄存器(LR)、CPSR 在每一种异常模式下都有一组SP、LR和SPSR中断/异常Exception(这个要是不考就真是出邪了)定义正常的程序执行流程发生暂时的停止时,称之为异常(Exception)。处理异常之前,当前处理器的状态必须保留,当多个异常同时发生会按照固定的优先级进行处理。异常的优先级:优先级只是表示当同时发生多种中断时哪一个可以执行,不是说高优先级的中断可以随时打断低优先级的中断。Reset Data Abort FTQ IRQ Rrefetch Abort Software Interrupt = Undefined Instructi

31、on响应过程ARM工作状态下,中断的进入:This can only be done in ARM state1 将CPSR拷贝到SPSR_,2 修改CPSR的工作模式CPSR4:0,3 修改工作状态-CPSR5,4 (如果可以的话)关闭中断- CPSR6,7置1,5 保存返回地址到LR_,6 设置PC到中断程序开始的位置. 以上几步由CPU自动完成,也可以编程中断返回: 将SPSR复制回CPSR, 将链接寄存器LR的值减去相应偏移量后送回PC中, 注意, 复位异常处理程序不需要返回。返回的操作由编程指令完成。(PS:关于中断程序开始的位置ARM的存储器有一个固定位置用来放置异常向量表,表中的

32、特定位置放置一条跳转指令,跳转到异常处理程序。当发生异常时,程序计数器PC会被强制(或自动)设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行,所以接下来看到的PC=0x0000.就是异常向量。)不同模式下具体的中断响应流程:Reset: SPSR_svc = CPSR (不可预知) CPSR4:0 = 0b10011 CPSR5 = 0 ; 切换到ARM工作状态 CPSR6 = 1 ; 禁止新的FIQ异常 CPSR7 = 1 ; 禁止新的IRQ异常 R14_svc = Return Link(不可预知) PC = 0x00000000PS:只有中断响应,没

33、有中断返回Undefined Instruction:当ARM处理器遇到不能处理的指令时,会产生未定义指令异常。采用这种机制,可以通过软件仿真扩展ARM或Thumb指令集 SPSR_und = CPSR /保存CPSR到SPSR的und模式的寄存器 CPSR4:0 = 0b11011 CPSR5 = 0 ; 切换到ARM工作状态 / CPSR6保持不变 CPSR7 = 1 ;禁止新的IRQ异常 R14_und = Return Link /保存返回地址到R14的und模式的寄存器 PC = 0x00000004中断返回: MOVS PC, R14_und恢复PC(从R14_und)和CPSR(

34、从SPSR_und)的值,并返回到未定义指令后的下一条指令指令加后缀“S”且目的寄存器为PC则自动复制Software Interrupt软件中断:SWI(软件中断指令)用于进入管理模式,常用于请求执行特定的管理功能在ARM 上写的操作系统常使用SWI来为编程者提供各种例程 SPSR_svc = CPSR CPSR4:0 = 0b10011 CPSR5 = 0 ; 切换到ARM工作状态 / CPSR6保持不变 CPSR7 = 1 ; IRQ禁止新的异常 R14_svc = Return Link PC = 0x00000008中断返回:MOVS PC, R14_svc恢复PC(从R14_svc

35、)和CPSR(从SPSR_svc)的值,并返回到SWI的下一条指令Abort中止:意味着对存储器访问失败。中止异常包括两种类型:1.指令预取中止:发生在指令预取时;2.数据中止:发生在数据访问时。 SPSR_abt = CPSR CPSR4:0 = 0b10111 CPSR5 = 0 ; 切换到ARM工作状态 / CPSR6保持不变 CPSR7 = 1 ; IRQ禁止新的异常 R14_abt = Return Link PC = 0x0000000c/ 0x00000010中断返回: SUBS PC, R14_abt, #4 ;指令预取中止,PC = R14_abt - 4 SUBS PC,

36、R14_abt, #8 ; 数据中止 ,PC = R14_abt 8该指令将R14_abt寄存器的值减去指定的一个常数后赋给PC恢复PC(从R14_abt)和CPSR(从SPSR_abt)的值,并重新执行产生中止的指令(返回当前指令)Interrupt Request IRQ: IRQ异常属于正常的中断请求,IRQ优先级低于FIQ若CPSR的I位置1,则禁止IRQ中断,若CPSR的I位清零,处理器会在指令执行完之前检查IRQ的输入注意只有在特权模式下才能改变I位的状态 SPSR_irq = CPSR CPSR4:0 = 0b10010 CPSR5 = 0 ; 切换到ARM工作状态 / CPSR

37、6保持不变 CPSR7 = 1 ; IRQ禁止新的异常 R14_irq = Return Link PC = 0x00000018中断返回: SUBS PC , R14_irq , #4该指令将寄存器R14_irq的值减去4后,复制到程序计数器PC中,同时将SPSR_irq寄存器的内容复制到CPSR中,并返回到引起中断的下一条指令Fast Interrupt Request FIQ异常是为了支持数据传输或者通道处理而设计的若将CPSR的F位置1,则禁止FIQ中断,若将CPSR的F位清零,处理器会在指令执行时检查FIQ的输入注意只有在特权模式下才能改变F位的状态 SPSR_fiq = CPSR

38、CPSR4:0 = 0b10001 CPSR5 = 0 ; 切换到ARM工作状态 CPSR6 = 1 ; 禁止新的FIQ异常 CPSR7 = 1 ; 禁止新IRQ的异常 R14_fiq = Return Link PC = 0x0000001c中断返回:SUBS PC, R14_fiq , #4 该指令将寄存器R14_fiq的值减去4后,复制到程序计数器PC中,同时将SPSR_fiq寄存器的内容复制到CPSR中,并返回到引起中断的下一条指令 两张图说明一切 (必考) 说明:这两张图就对应上面说的流程,每种工作模式下CPSR4:0、PC、返回指令不同,寄存器也不同中断重入:所谓中断重入是指运行异

39、常处理程序时,允许同类中断进入。两个关键问题新中断使能前,前一中断的现场保护;中断处理过程中对BL的保护方法:1、利用堆栈指针SP,将LR, SPSR以及其他寄存器压入堆栈进行现场保护;2、中断处理程序转入SYS模式进行。举两个例说明一下大概的流程:假设程序本来正常运行,来了一个IRQ中断请求,于是一些寄存器的被压入栈,R14_irq被用来存放返回地址address0,然后开始执行中断程序。 执行过程中又来一个IRQ中断请求,那么就将之前的R14_irq放到栈区,然后再开中断,CPU就会将新的返回地址address1放到R14_irq。假设程序本来正常运行,来了一个IRQ中断请求,于是一些寄存

40、器的被压入栈,R14_irq被用来存放返回地址address0,然后开始执行中断程序。假设中断程序里有一个BL,子程序跳转,好,开中断,当BL子程序运行过程中又出现IRQ中断请求,他会试图将新的返回地址address1压入当前的工作模式的寄存器,就是说,R14_irq会被复写。为了避免出现这种情况,当中断处理过程中有BL的话,先将中断模式转入SYS工作模式,那么BL子程序运行过程中出现irq的话,返回地址被压入Sys模式寄存器即R14_user,这样address0与address1都可以取到。指令流水线(了解)计算机中一条指令的执行可分为若干个阶段,由于每个阶段的操作相对都是独立的。ARM核

41、采用流水线的重叠技术来执行指令,大大提高系统的性能。在流水线装满以后,几个指令可以并行执行,从而提高CPU的运行效率。3级流水线:取值级、译码级、执行级。5级流水线:取指,译码,执行,缓冲,回写ARM7TMDI是目前使用最广泛的32位嵌入式处理器,属低端ARM处理器核ARM微处理器的应用选型: ARM微处理器内核结构的选择(MMU、DSP、Java、VFP) 系统的工作频率 芯片内存储器的容量 大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器有部分芯片具有相对较大的片内存储空间 片内外围电路的选择 几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,

42、并集成在芯片之中 片内外围电路:USB接口、IIS(音频)接口、LCD控制器、键盘接口、RTC(实时时钟)、ADC 和DAC、DSP协处理器等 IIS:Inter-IC Sound bus RTC:Real-Time Clock第五章数据类型与存储结构字(word):32位,半字(half-word):16位,字节(byte):8位。ARM微处理器要求自然对界(即对齐)。字需要字对齐(地址的低两位为0),半字需要半字对齐(地址的最低位为0),字节则任意地址对齐。从零地址开始的以字节为单位的线性组合,(0-3字节存储一个字数据,4-7字节储存一个字数据,依次排列),作为32位的微处理器,故理论上

43、最大可寻址232字节=4GB。(然而受到物理地址线的限制,一般实际嵌入式处理器最大寻址空间为几百兆)字数据存储时有大端格式和小端格式。大端格式:数据的高字节放在低地址中,低字节放在高地址中。小端格式与大端格式相反。一个基于ARM内核的芯片可以只支持大端模式或小端模式,也可以两者都支持。在ARM指令集中不包含任何直接选择大小端的指令,但是一个同时支持大小端模式的ARM芯片可以通过硬件配置(一般使用芯片的引脚来配置)来匹配存储器系统所使用的规则。注:如果实际的存储器格式与芯片的存储器格式不符时,只有以字为单位的数据存取才正确,否则将出现不可预期的结果。寻址方式(必考!)概念:处理器根据指令中给出的

44、地址码字段来实现寻找真实操作数地址的方式。ARM处理器基本寻址方式 数据处理指令操作数寻址1、 立即数寻址:操作数本身就在指令中给出。Immediate addressing ADD R0, R0, #1 ; 即R0 R0+1 MOV R0, #0xff ;即R0 #0xff 在以上两条指令中,第二个源操作数即为立即数,要求以“”为前缀,对于以十六进制表示的立即数,还要求在“”后加上“0x”或“&” 立即数一般为8位(超过8位使用伪指令LDR)2、 寄存器寻址:利用寄存器中的数值作为操作数,该指令执行效率较高。Register addressing MOV R1, R2 ;将R2的值存入R1

45、ADD R0, R1, R2 ; R0R1R23、 寄存器移位寻址: ARM指令集特有的寻址方式 MOV R0, R2, LSL #3 ;将R2的值左移3位后放入R0,即R0= R28 ANDS R1, R1, R2, LSL R3 ;R2的值左移R3位后和R1相“与”操作, 结果放入R1 存储器访问指令操作数寻址4、 寄存器间接寻址:以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中 LDR R0, R1 ; R0R1 STR R0, R1 ; R1R05、 基址(变址)寻址 :寄存器(一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,得到一个操作数的有效地址。 LDR R0,

46、 R1, 4 ; R0R14 LDR R0, R1, 4! ; R0R1+4 、R1R14 LDR R0, R1, 4 ; R0R1、R1R14 LDR R0, R1, R2 ; R0R1R26、 相对寻址:以程序计数器PC的当前值为基准地址,指令中的地址字段作为偏移量,将两者相加之后得到操作数的有效地址。 BL SORT ; 跳转到子程序处执行,在此处是相对寻址 . SORT ;子程序开始处 . MOV PC, LR ; 从子程序返回7、 多寄存器寻址:一条指令可以完成多个寄存器值的传送,最多传送16个通用寄存器的值 LDMIA R0!, R1,R2,R3,R4 ; R1R0,R0= R0+

47、4; R2R0,R0= R0+4; R3R0,R0= R0+4; R4R0,R0= R0+4 指令后缀IA表示在每次执行操作后R0按字长度增加 注意:在寄存器列表中同一寄存器仅能指定一次;加载/存储操作按照寄存器固定次序进行,所以寄存器排列先后关系随意8、 块拷贝寻址:与上一个方式相反,将多个寄存器的值放入存储器。多寄存器传送指令用于将一块数据从存储器的某一位置拷贝到另一位置 STMIA R0!, R1-R7 ; R1R7的数据保存到存储器; 存储指针在保存数据后增加; 增长方向为向上增长 STMIB R0!, R1-R7 ; R1R7的数据保存到存储器; 存储指针在保存数据前增加; 增长方向

48、为向上增长关于这两个指令,LD、ST、M、I、A、D、B这几个字母的意思分别是Load、Store、Multiple、Increase、After、Decrease、Before。自己按照指令组起来就大概猜到它的意思了,比如STMDB先自减再存放到存储器中等等9、 堆栈寻址:先进后出(FILO) 满堆栈:堆栈的指针指向最后一个压入的数据。 空堆栈:堆栈指针指向下一个将要放入数据的空位置。递增堆栈:指针递增计数,向高地址方向生长。递减堆栈:指针递减计数,向低地址方向生长。4种堆栈工作方式: 满递增(堆栈指针指向最后压入的数据,向高地址方向生长):对应指令LDMFA, STMFA 满递减():对应

49、指令LDMFD, STMFD 空递增():对应指令LDMEA, STMEA 空递减():对应指令LDMED, STMED 注:以上指令中F = Full,A = ascend,E = Empty,D = descend STMFD SP!, R0-R7, LR LR最先进栈,R0最后 LDMFD SP!, R0-R7, PC R0最先出栈,PC最后快拷贝寻址 vs 堆栈寻址 (老师说要考来着)指令对应关系STMIA R0!,R5-R6LDMDB R0!,R5-R6STMEA R0!,R5-R6LDMEA R0!,R5-R6两段代码的执行结果是一样的,但是使用堆栈指令的压栈和出栈操作编程很简单(

50、只要前后一致即可),而使用数据块指令进行压栈和出栈操作则需要考虑空与满、加与减对应的问题加载/存储指令LDR 加载字数据指令,LDRH 加载半字数据,LDRB 加载字节数据同样地有STR、STRH、STRB。 LDM与STM是批量数据加载指令PSR访问指令,在程序状态寄存器(S)和通用寄存器(R)之间传送数据MRS R0, CPSR ; #将CPSR数据放到R0 MRS:move R from SMSR CPSR,R0 ; #将R0数据放到CPSR MRS:move S from RR表示寄存器 M表示存储器总线总线是CPU与存储器和设备通信的机制,是计算机各部件之间传送数据、地址和控制信息的

51、公共通道。总线带宽(单位:MB/s) =(总线宽度bit/8)总线频率总线桥:连接高速总线与低速总线的通讯机制。先进微控制器总线架构AMBA(Advanced Microcontroller Bus Architecture)支持将多个CPU、存储器和外围设备集成在片上系统中。AMBA总线架构(不在老师说的重点中)包括两条总线:高性能总线AHB(Advanced High-performance Bus)AHB(直接连入CPU,支持各种高性能的传输)、外围设备总线APB(Advanced Peripheral Bus)APB(提供低带宽的控制接入,多连接外围设备)AHB总线有4部分:主单元:可

52、在任何时刻使用总线,可以有一个或多个,可以启动和控制总线操作从单元:响应总线操作并发出反馈信号,通常为简单的固定功能的模块仲裁器:通过某种仲裁协议确定由哪个主单元控制总线译码器:传输译码,提供传输过程中从单元的片选信号AHB总线工作过程分为两个阶段:地址传送阶段,只持续一个周期,在HCLK上升沿数据有效,所有从单元在该上升沿采样地址信息。数据传输,持续多个周期,通过HREADY信号来延长数据传输时间,当HREADY信号为低电平时,就在数据传输中加入等待周期,HREADY信号为高时传输结束。APB桥将AHB与APB连接起来,并执行以下功能:锁地址保持其有效,直至数据传输完成、译码产生外部片选信号

53、、写传送时驱动数据到APB、读传送时驱动数据到AHB、产生定时触发信号PENABLECache高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝, 减少访问主存储器的所花的访问时间。如在ARM9中使用的指令I-Cache和数据D-Cache。Cache存储器介于CPU和主存之间,它的工作速度数倍于主存,全部功能由硬件实现。由于转换速度快,软件人员丝毫未感到Cache的存在,这种特性称为Cache的透明性。Cache内部是用同主存内部同样大小的块(或页)组成,由于Cache存储容量小,所以块(或页)的数目少。在Cache中,每一块外加有一个标记,指明它是主存的哪一块的副本,所以该标记的内

54、容相当于主存中块的编号,块内字节数与主存相同。工作原理CPU把所需数据的地址通过地址总线发出,一份发到与内存中,一份发到与Cache匹配的相联存储器中,后者先比较cache中有无对应标记,命中则取cache的数据,不命中则取主存中的数据,并添加对应内容到cache中。(当Cache已满,则需要相关替换算法来替换Cache中的内容)替换算法有先进先出(FIFO)算法,近期最少使用(LRU)算法和随机替换算法等。 FIFO算法:在地址变换表中设置一个历史位,当替换时,总是把一组中最先调入Cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易且开销小。 LRU算法: 把一组中近期最少使用的字块替换出去 这种替换算法需随时记录Cache存储器中各个字块的使用情况,即页表为在物理存储取中的每一页保留了一个时间或年龄域,以便确定哪个字块是近期最少使用的字块。LRU替换算法的平均命中率比FIFO要高,并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论