第16讲嵌入式系统基本概念_第1页
第16讲嵌入式系统基本概念_第2页
第16讲嵌入式系统基本概念_第3页
第16讲嵌入式系统基本概念_第4页
第16讲嵌入式系统基本概念_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、1提高阶段:提高阶段:第第1616讲讲 基本概念基本概念2本节提要本节提要嵌入式系统硬件基础嵌入式系统硬件基础嵌入式系统软件基础嵌入式系统软件基础嵌入式系统设计方法嵌入式系统设计方法3l冯冯诺依曼体系结构和哈佛体系结构诺依曼体系结构和哈佛体系结构lCISCCISC与与RISCRISCl影响影响CPUCPU性能的因素性能的因素l存储器系统存储器系统lI/OI/O接口接口一、嵌入式系统硬件基础一、嵌入式系统硬件基础4典型嵌入式系统基本组成硬件典型嵌入式系统基本组成硬件MPUMPU微处理器微处理器电源电源模块模块时钟时钟复位复位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKe

2、yboardKeyboard外围电路外围电路OtherOther外设外设51.1 冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0 0指令指令1 1指令指令2 2指令指令3 3指令指令4 4数据数据数据数据0 0数据数据1 1数据数据2 261.2 哈佛体系结构哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据71

3、.3 CISC和和RISCCISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISCRISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最

4、有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单 81.4 影响影响CPU性能的因素:流水线、缓存性能的因素:流水线、缓存流水线技术:几个指令可以并行执行流水线技术:几个指令可以并行执行 提高了提高了CPU的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp9高速缓存(高速缓存(CACHE)1 1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度快得多,高速缓存可以提高微处理

5、器的时钟频率比内存速度快得多,高速缓存可以提高内存的平均性能。内存的平均性能。2 2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。容的拷贝。 CPU高速缓存控制器CACHE主存数据数据地址101.5 存储器系统存储器系统RAMRAM:随机存取存储器,:随机存取存储器, SRAMSRAM:静态随机存储器,:静态随机存储器, DRAMDRAM:动态随机存储器动态随机存储器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗电多耗电多 3 3)DRA

6、MDRAM存储密度比存储密度比SRAMSRAM高得多高得多 4 4)DRAMDRAM需要周期性刷新需要周期性刷新ROMROM:只读存储器:只读存储器FLASHFLASH:闪存:闪存11I/O接口接口lI/OI/OlA/DA/D、D/AD/Al键盘键盘lLCDLCDl存储器接口存储器接口l设备接口设备接口12例如例如USBUSBlUSBUSB:Universal Serial BusUniversal Serial Bus,通用串行总线,通用串行总线l大家生活中常见的与大家生活中常见的与USBUSB有关的东西有:有关的东西有:uU U盘、移动硬盘、无驱型的盘、移动硬盘、无驱型的MP3MP3(U

7、U盘)盘)uUSBUSB接口的键盘、接口的键盘、MouseMouse、打印机、数码相机、打印机、数码相机l即插即用,热插拨,系统不需重启便可工作,且易于扩展即插即用,热插拨,系统不需重启便可工作,且易于扩展(127127个)个)lUSB2.0USB2.0以低成本实现高达以低成本实现高达480Mb/s480Mb/s的传输率(的传输率(USB1.1USB1.1的全速的全速设备可达设备可达12Mb/s12Mb/s)l接口标准统一、端口供电接口标准统一、端口供电13本节提要本节提要嵌入式系统硬件基础嵌入式系统硬件基础嵌入式系统软件基础嵌入式系统软件基础嵌入式系统设计方法嵌入式系统设计方法14二、嵌入式

8、系统软件基础二、嵌入式系统软件基础l操作系统的分类操作系统的分类l嵌入式实时操作系统嵌入式实时操作系统l前台与后台前台与后台l多任务,任务优先级,调度多任务,任务优先级,调度l非占先式与占先式非占先式与占先式153.1 操作系统的分类操作系统的分类(1 1)顺序执行系统:系统内只含有一个程序,独占)顺序执行系统:系统内只含有一个程序,独占CPUCPU的运的运行时间,按语句顺序执行该程序,直至执行完毕,另一程行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如序才能启动运行。如DOSDOS操作系统。操作系统。(2 2)分时操作系统:系统内同时可以有多个程序运行,把)分时操作系统:

9、系统内同时可以有多个程序运行,把CPUCPU的时间按顺序分成若干片,每个时间片内执行不同的的时间按顺序分成若干片,每个时间片内执行不同的程序。如程序。如UNIXUNIX(3 3)实时操作系统:系统内有多个程序运行,每个程序有)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有不同的优先级,只有最高优先级的任务才能占有CPUCPU的控的控制权。制权。16按实时性分类按实时性分类l强实时系统,其系统响应时间在毫秒或微秒级(数控强实时系统,其系统响应时间在毫秒或微秒级(数控机床);机床);l一般实时系统,其系统响应时间在毫秒几秒的数量一般实时系统,其系统响应时间

10、在毫秒几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询、的查询、ATM)。)。l弱实时系统,其系统响应时间约为数十秒或更长(工弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。程机械)。171 1)循环轮询系统:()循环轮询系统:(Polling LoopPolling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。件,一旦条件成立就进行相应的处理。Initialize()While(true) if(con

11、dition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n();按软件结构分类按软件结构分类182 2)事件驱动系统:()事件驱动系统:(Event-Driven systemEvent-Driven system)事件驱动系统是能对外部事件直接响应的系统。它包括前后台、事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的应用程序是一个无限的

12、循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(操作,这部分可以看成后台行为(backgroundbackground)。中断服务程序处理)。中断服务程序处理异步事件,这部分可以看成前台行为(异步事件,这部分可以看成前台行为(foreground)foreground)。后台也可以叫做任务级,前台也叫中断级。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,如例如,很多基于微处理器的产品采用前后台系统设计,如微波炉微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所

13、有的事都靠中断服务来完成。,所有的事都靠中断服务来完成。19前后台系统(后台循环、前台中断)前后台系统(后台循环、前台中断)ISRISR后台后台 前台前台ISR时间时间20l代码的临界区也称为临界区,指处理时不可分割的代码。代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断进入。一旦这部分代码开始执行,则不允许任何中断进入。l在进入临界区之前要关中断,而临界区代码执行完以后要在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、数据等寄存器堆栈保立即开中断(在任务切换时,地址、数据等寄存器堆栈保护)。护)。代码的临界区代码的临

14、界区21多任务(任务、进程和线程)多任务(任务、进程和线程)CPUCPU寄存器寄存器任务任务控制控制块块1 1任务任务控制控制块块2 2任务任务控制控制块块n n休眠、就绪、运行、挂起、被中断休眠、就绪、运行、挂起、被中断任务任务1 1任务任务2 2任务任务n nCPUCPU寄存器寄存器22一个任务,也称作一个线程,是一个简单的运行一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,赋予一定的优先级, 有它自己的一套有它自己的一套CPUCPU寄存器和自己寄存器和自己的栈空间。的栈空间。多任务

15、运行的实现实际上是靠多任务运行的实现实际上是靠CPUCPU(中央处理单元(中央处理单元)在许多任务之间转换、调度。)在许多任务之间转换、调度。 CPUCPU只有一个,轮番服务于一系列任务中的某一只有一个,轮番服务于一系列任务中的某一个。多任务运行使个。多任务运行使CPUCPU的利用率得到最大的发挥,并使的利用率得到最大的发挥,并使应用程序模块化。应用程序模块化。在实际应用中,多任务的最大特点是,开发人员在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化。可以将很复杂的应用程序层次化。23任务的状态任务的状态R RU UN NN NI IN NG GR RE EA AD DY

16、 YO OS ST Ta as sk kC Cr re ea at te e( () )O OS ST Ta as sk kC Cr re ea at te eE Ex xt t( () )T Ta as sk k i is s P Pr re ee em mp pt te ed dO OS SM MB Bo ox xP Pe en nd d( () )O OS SQ QP Pe en nd d( () )O OS SS Se em mP Pe en nd d( () )O OS ST Ta as sk kS Su us sp pe en nd d( () )O OS ST Ti im me

17、eD Dl ly y( () )O OS ST Ti im me eD Dl ly yH HM MS SM M( () )O OS SM MB Bo ox xP Po os st t( () )O OS SQ QP Po os st t( () )O OS SQ QP Po os st tF Fr ro on nt t( () )O OS SS Se em mP Po os st t( () )O OS ST Ta as sk kR Re es su um me e( () )O OS ST Ti im me eD Dl ly yR Re es su um me e( () )O OS ST

18、Ti im me eT Ti ic ck k( () )O OS ST Ta as sk kD De el l( () )D DO OR RM MA AN NT TW WA AI IT TI IN NG GO OS SS St ta ar rt t( () )O OS SI In nt tE Ex xi it t( () )O OS S_ _T TA AS SK K_ _S SW W( () )O OS ST Ta as sk kD De el l( () )O OS ST Ta as sk kD De el l( () )I In nt te er rr ru up pt tO OS SI

19、In nt tE Ex xi it t( () )I IS SR R24系统内核(系统内核(Kernel)与调度(与调度(Scheduler)l多任务系统中,内核负责管理各个任务,或者说为每个任多任务系统中,内核负责管理各个任务,或者说为每个任务分配务分配CPUCPU时间,并且负责任务之间的通信。时间,并且负责任务之间的通信。l内核提供的基本服务是任务切换。内核本身也增加了应用内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加程序的额外负荷,代码空间增加ROMROM用量,内核本身的数用量,内核本身的数据结构增加了据结构增加了RAMRAM的用量。内核本身对的用量。内核

20、本身对CPUCPU的占用时间一般的占用时间一般在在2 2到到5 5个百分点之间。个百分点之间。l调度(调度(SchedulerScheduler)是内核的主要职责之一,就是要决定)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指,级。基于优先级的调度法指,CPUCPU总是让处在就绪态的优总是让处在就绪态的优先级最高的任务先运行。先级最高的任务先运行。25非占先式与占先式非占先式与占先式非占

21、先式(非占先式(non-preemptivenon-preemptive)非占先式调度法也称作合作型多任务(非占先式调度法也称作合作型多任务(cooperative cooperative multitaskingmultitasking),各个任务彼此合作共享一个),各个任务彼此合作共享一个CPUCPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃,直到该任务主动放弃CPUCPU的使用权时,那个高优先级的任

22、务才的使用权时,那个高优先级的任务才能获得能获得CPUCPU的使用权。的使用权。非占先式内核的非占先式内核的一个特点一个特点是几乎不需要使用信号量保护共是几乎不需要使用信号量保护共享数据。运行着的任务占有享数据。运行着的任务占有CPUCPU,而不必担心被别的任务抢占。,而不必担心被别的任务抢占。非占先式内核的非占先式内核的最大缺陷最大缺陷在于其响应高优先级的任务慢,在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很长时间,直到任务已经进入就绪态,但还不能运行,也许要等很长时间,直到当前运行着的任务释放当前运行着的任务释放CPUCPU。内核的任务级响应时间是不确定的。内核的

23、任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到,不知道什么时候最高优先级的任务才能拿到CPUCPU的控制权,完的控制权,完全取决于应用程序什么时候释放全取决于应用程序什么时候释放CPUCPU。26非占先式非占先式(Non-Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)(7)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪低优先级任务释放低优先级任务释放CPU使用权使用权TIME27当系统响应时间很重要时,要使用占先式(当系统响应时间很重要时,要使用占先式(preemptivepreemptive)内

24、核。最高优先级的任务一旦就绪,总)内核。最高优先级的任务一旦就绪,总能得到能得到CPUCPU的控制权。的控制权。当一个运行着的任务使一个比它优先级高的任务当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的进入了就绪态,当前任务的CPUCPU使用权就被剥夺了,或使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了者说被挂起了,那个高优先级的任务立刻得到了CPUCPU的的控制权。控制权。使用占先式内核时,应用程序不应直接使用不可使用占先式内核时,应用程序不应直接使用不可重入型函数。低优先级的任务重入型函数。低优先级的任务CPUCPU的使用权被高优先级的使用权被高优先级任务

25、剥夺,任务剥夺,不可重入型函数中的数据有可能被破坏。不可重入型函数中的数据有可能被破坏。占先式(占先式(preemptive)28占先式占先式(Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪高优先级任务得到高优先级任务得到CPU使用权使用权TIME29可以被一个以上的任务调用,而不必担心数据的破坏。可重可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应

26、数据不会丢失。可重入型函数一般只使用局部变量,即变量保存应数据不会丢失。可重入型函数一般只使用局部变量,即变量保存在在CPUCPU寄存器中或堆栈区中。寄存器中或堆栈区中。一个不可重入型函数的例子一个不可重入型函数的例子int Temp;int Temp;Void swap (int Void swap (int * *x,intx,int* *y)y) Temp=Temp=* *x;x;* *X=X=* *Y;Y;* *y=Temp;y=Temp; 可重入型函数可重入型函数30一个可重入型函数的例子一个可重入型函数的例子Void swap (int *x,int*y)int Temp;Temp

27、=*x;*X=*Y;*y=Temp;31任务优先级任务优先级l静态优先级静态优先级 应用程序执行过程中诸任务优先级不变,则称之为应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的时间约束在程序编译时是已知的 l动态优先级动态优先级 应用程序执行过程中,任务的优先级是可变的,则应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转称之为动态优先级。实时内核应当避免出现优先级反转问题。问题。 32本节提要本节提要嵌入式系统硬件基础嵌入式系统硬件基础嵌入式系统软件基础嵌入式系统软件基础嵌入式系统设计方法嵌入式系统设计方法33嵌入式系统的软/硬件框架机械装置机械装置嵌入式嵌入式微处理器微处理器SDRAMSDRAMROMROMI/OI/OA/DA/DD/AD/A人机交互接口人机交互接口通用接口通用接口实时操作系统(

温馨提示

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

评论

0/150

提交评论