嵌入式完整系统教案嵌入式完整系统概述Word文档下载推荐.docx
- 文档编号:18626161
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:20
- 大小:26.63KB
嵌入式完整系统教案嵌入式完整系统概述Word文档下载推荐.docx
《嵌入式完整系统教案嵌入式完整系统概述Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《嵌入式完整系统教案嵌入式完整系统概述Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
MP3、数码相机与打印机就有很大的不同;
汽车中更具有多个嵌入式系统,使汽车更轻快、更干净和更容易驾驶。
这样,定义嵌入式系统的概念却不容易了。
1、嵌入式系统的概念
目前,对嵌入式系统的定义多种多样,但没有一种是全面。
下面给出两种比较合理的定义:
(1)嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积及功耗严格要求的专用计算机系统。
(2)嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
术语“嵌入式”反映了这些系统通常是更大系统中的一个完整的部分,成为嵌入的系统。
嵌入的系统中可以共存多个嵌入式系统。
(以汽车控制系统说明上面两个概念。
(说明:
在民用和军用的自动化、信息化、智能化系统中,嵌入式系统无处不在。
2、嵌入式系统的未来
1990年之前,嵌入式系统通常是很简单,而且具有很长产品生命周期的自主设备。
近些年来,嵌入式工业经历了巨大的变革:
(1)全球重新定义市场的机会和膨胀的应用空间。
(2)互联,现在是一个需求而不是辅助性的,包括有线和无线的互通。
(3)基于电子的产品更复杂化。
(4)互联嵌入式系统产生新的依赖网络基础设施的应用。
(5)微处理器的处理能力按莫尔定律预计的速度增加。
该定律认为集成电路的晶体管个数每18个月翻番。
(6)嵌入式软件继续增加新的应用,并产生更加灵巧的产品种类。
(既然是嵌入式计算机系统,大家已经对计算机非常熟悉了,一台计算机的核心是处理器,下面介绍嵌入式处理器。
(二)嵌入式处理器
1、嵌入式处理器简介
普通个人计算机(PC)中的处理器是通用目的的处理器,其设计非常丰富,因为这些处理器提供全部的特性和广泛的功能,故可以用于各种应用中。
使用这些通用处理器的系统有大量的应用编程资源。
例如,现代处理器具有内置的内存管理单元(MMU),提供内存保护和多任务能力的虚拟内存和通用目的的操作系统。
这些通用的处理器具有先进的高速缓存逻辑,许多还具有执行快速浮点运算的内置数字协处理器。
它们提供接口,支持各种各样的外部设备,而且能源消耗大,产生的热量多,尺寸也大。
其复杂性意味着这些处理器的制造成本昂贵。
早期的嵌入式系统通常用通用目的的处理器建造。
由于嵌入式系统的应用广泛,再加上大量先进的微处理器制造技术的发展,越来越多的嵌入式系统用嵌入式处理器建造,而不再用通用目的的处理器。
主要从4个方面来考虑,即性能、尺寸、能耗、价格。
(1)注重嵌入式处理器的尺寸、能耗和价格。
应用于PDA-个人数字助理等不注重计算的设备。
(2)更关注嵌入式处理器的性能。
应用于路由器等计算密集型的设备。
(3)注重嵌入式处理器的尺寸、能耗、价格和性能4个需求。
应用于蜂窝电话(如手机)等设备。
(根据嵌入式处理器的应用,可以进行以下分类)
2、嵌入式处理器的分类
(1)嵌入式微处理器(EmbeddedMicroProcessorUnit,EMPU)
由于嵌入式微处理器的基础是通用计算机中的CPU,在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。
为了满足嵌入式应用的特殊要求,虽然嵌入式微处理器在功能上和标准微处理器基本是一样的,但一般在工作温度、抗电磁干扰及可靠性等方面都做了各种增强。
嵌入式微处理器具有体积小、重量轻、成本低及可靠性高的优点,但是在电路板上必须包含ROM、RAM、总线接口及各种外设等器件。
目前主要有:
PowerPc、68000、MIPS和ARM系列等。
(2)嵌入式微控制器(MicroControlUnit,MCU)
嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。
嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时器/计数器、WatchDog、I/O、串行口、脉冲调制输出、A/D、D/A、FlashRAM和EEPROM等各种必要功能和外设。
为适应不同的应用需要,一般一个系列的单片机具有多种衍生产品的处理机内核都是一样的,不同的是存储器和外设的配置及封装。
这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减小功耗和成本。
与嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。
微控制器是目前嵌入式系统工业的主流。
微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。
8051系列、AVR和数目众多的ARM芯片等。
(3)嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)
DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。
在数字滤波、FFT(快速傅立叶变换)及谱分析等方面,DSP算法正在大量进入嵌入式领域,DSP应用正在从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。
TMS320系列和DSP56000系列。
(4)嵌入式片上系统(SystemonChip,SoC)
随着EDA(电子设计自动化)的推广和VLSI(超大规模集成电路)设计的普及化,以及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已经来临,这就是SoC。
各种通用处理器内核将作为SoC设计公司的标准库,和许多其它嵌入式系统外设一样,成为VLSI设计中一种标准的器件,用标准的VHDL等语言描述,存储在器件库中。
用户只需要定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。
这样除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。
(但价格高、数量要大。
SoC可以分为通用和专用两类。
(后面的课程将以ARM系列嵌入式微处理器和嵌入式DSP微处理器为重点,讲授嵌入式系统具体应用和实现。
嵌入式微控制器比较简单,作为自学内容。
对嵌入式片上系统作简单介绍。
(一个系统有了控制中心,还要有调度系统的机制才能使系统正常运转。
下面回顾操作系统用途,介绍嵌入式操作系统。
(三)嵌入式操作系统
1、嵌入式操作系统简介
在计算机技术发展的初期,计算机系统中没有“操作系统”这个概念。
为了给用户提供一个与计算机的接口,同时提高计算机的资源利用率,便出现了计算机监控程序,使用户能通过监控程序来使用计算机。
随着计算机技术的发展,监控程序又进一步发展形成了操作系统。
发展到现在,广泛使用的有三种操作系统:
第一,多道批量处理操作系统:
一般用于计算中心较大的计算机系统中。
由于其硬件设备比较全、价格较高,所以此类系统十分注意CPU及其它设备的充分利用,追求高的吞吐量,不具备实时性。
第二,分时操作系统:
主要目的是让多个计算机用户能共享系统资源,能及时地响应和服务于联机用户,只具有很弱的实时功能,但与真正的实时操作系统仍然有明显的区别。
第三,实时操作系统:
用于嵌入式系统。
●实时操作系统的要求:
(1)异步的时间响应。
实时系统为了能在系统要求的时间内响应异步的外部事件,要求有异步I/O和中断处理能力。
I/O响应时间常受内存访问、盘访问和处理机总线速度所限制。
(2)切换时间和中断延时时间确定。
(3)优先级中断和调度。
必须允许用户定义中断优先级和被调度的任务优先级,并指定如何服务中断。
(4)抢占式调度。
为保证响应周期,实时操作系统必须允许高优先级任务一旦准备好运行,马上抢占低优先级任务的执行。
(5)内存锁定。
必须具备将程序或部分程序锁定在内存的能力,锁定在内存的程序减少了为获取该程序而访问盘的时间,从而保证了快速响应时间。
(6)连续文件。
应提供存取盘上数据的优化方法,使得存取数据时查找时间最少。
通常要求把数据存储在连续文件上。
(7)同步。
提供同步和协调共享数据使用和时间执行的手段。
●实时操作系统的应用特点:
总的来说,实时操作系统是事件驱动(EventDriven)的,它能对来自外界的作用和信号在限定的时间内作出响应。
它强调的是实时性、可靠性和灵活性,与实时应用软件相结合成为有机的整体起着核心作用,由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。
●实时操作系统的分类:
(1)一般实时操作系统:
应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试及运用一致的环境。
(2)嵌入式实时操作系统:
应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境不一致。
嵌入式实时操作系统具有规模小、可固化、使用实时性强(在毫秒或微秒数量级上)。
(要学习好嵌入式操作系统必须首先把下面的一些概念搞清楚。
对于初学者,这是一个难点)
2、嵌入式操作系统的引入
(1)前后台系统
对基于芯片开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。
循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。
中断服务程序处理异步事件,这部分可以看成前台行为。
后台也可以叫做任务级,前台也可以叫做中断级。
时间相关性很强的关键操作一定是靠中断服务程序来完成的。
因为中断服务提供的信息一直要等到后台程序走到该处理这个信息时才能得到进一步处理,所以这种系统在处理的及时性上比实际要差。
这个指标称作任务级响应时间。
最坏的情况下的任务级响应时间取决于整个循环的执行时间。
因为循环的执行时间不是一个常数,程序经过某一特定部分的准确时间也不能确定。
进而,如果程序修改了,则循环的时序也会受到影响。
基于微处理器的产品,一般比较简单,采用前后台系统设计,不需要操作系统。
从省电的角度出发,平时微处理器处在停机状态,所有事都靠中断服务来完成。
(2)实时操作系统
实时操作系统(RTOS)是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度及异常处理等工作。
在RTOS支持的系统中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。
工程师在编写程序时,可以分别编写各个任务,不别同时将所有任务运行的各种可能情况记在心中,大大减小了程序编写的工作量,而且减小了出错的可能性,保证最终程序具有高可靠性。
实时多任务操作系统以分时方式运行多个任务,看上去好像是多个任务“同时”运行。
任务之间的切换应答以优先级为根据,只有优先服务方式的RTOS才是真正的实时操作系统,时间分片方式和写作方式的RTOS并不是真正的“实时”。
3、嵌入式操作系统的基本概念
(1)代码的临界区
代码的临界区也称临界区,指处理时不可分割的代码,运行这些代码不允许被打断。
一旦这部分代码开始执行,则不允许任何中断打入(这也不是绝对的,如果中断不调用任何包含临界区的代码,也不访问任何临界区使用的共享资源,则这个中断可能可以执行)。
为确保临界区代码的执行,在进行临界区之前要关中断,而临界区代码执行完成以后要立即开中断。
(2)资源、共享资源
程序运行时可以使用的软、硬件环境称为资源。
资源可以是输入输出设备,例如打印机、键盘和显示器。
资源也可以是一个变量、一个结构或一个数组等。
可以被一个以上任务使用的资源叫做共享资源。
为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫互斥。
(3)任务、任务的优先级
一个任务也称作一个线程,是一个简单的程序,该程序可以认为CPU完全属于该程序自己。
实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某个部分,被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。
任务的优先级是表示任务被调度的优先程度。
每个任务都具有优先级。
任务越重要,赋予的优先级应越高,越容易被调度而进入运行态。
(4)内核、调度、任务切换
多任务系统中,内核负责管理各个任务,或者说为每一个任务分配CPU时间,并且负责任务之间的通信。
内核提供的基本服务是任务切换。
之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们,可以通过改变任务来实现不同的功能。
内核本身也增加了应用程序的额外负荷。
代码空间增加了ROM的用量,内核本身的数据结构增加了RAM的用量,但更重要的是,每个任务要有自己的栈空间,这一块占内存是相当厉害的。
内核本身对CPU的占用时间一般在2%~5%之间。
(由于CPU的速度和存储器的容量不断增加,价格不断下降,上述的问题已是次要问题。
通过提供必不可少的系统服务,诸如信号量管理、消息队列及延时等,实时内核使得CPU的利用更为有效。
一旦用实时内核做过系统设计,将绝不再想返回到前后台系统。
调度是内核的主要职责之一。
调度就是决定该轮到哪个任务运行。
多数实时内核是基于优先级调度法的,每个任务根据其重要程度的不同而被赋予一定的优先级。
基于优先级的调度法指CPU总是让处在就绪态的优先级最高的任务先运行。
然而究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是非占先式的还是占先式的内核。
当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容(此时执行的代码可能就是临界区)。
这些内容保存在任务的当前状态保存区,也就是任务自己的栈区之中。
入栈工作完成后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行,这个过程称为任务切换,它增加了应用程序的额外负荷。
CPU的内部寄存器越多,额外负荷就越重。
(5)非占先式内核、占先式内核
非占先式内核要求每个任务自我放弃CPU的所有权。
非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。
异步事件还是由中断服务来处理。
中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。
但中断服务以后,控制权还是回到原来被中断的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。
当系统响应时间很重要时,要使用占先式内核。
因此绝大多数商业上销售的实时内核都是占先式内核。
最高优先级的任务一旦就绪,总能得到CPU的控制权。
当运行着的任务使一个比它优先级高的任务进入就绪状态时,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。
如果中断服务子程序使一个高优先级的任务进入就绪状态,中断完成时,中断的任务被挂起,优先级高的那个任务开始运行。
(6)中断
中断是一种硬件机制,用于通知CPU有异步事件发生了。
中断一旦被识别,CPU保存部分(或全部)上下文,即部分(或全部)寄存器的值,跳转到专门的子程序,成为中断服务子程序(ISR)。
中断服务子程序做事件处理,处理完成后,程序回到:
●在前后台系统中,程序回到后台程序。
●在非占先式内核而言,程序回到被中断的任务。
●对占先式内核而言,让进入就绪状态的优先级最高的任务开始运行。
中断使得CPU可以在事件发生时才予以处理,而不必让微处理器连续不断地查询是否有事件发生。
通过两条特殊指令——开中断和关中断可以让微处理器响应或不响应中断。
在实时环境中,关中断的时间应尽量短。
(例如:
临界区的代码要尽量少。
关中断影响中断延迟时间。
关中断时间太长可能会引起中断丢失。
微处理器一般允许中断嵌套,也就是在中断服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更重要的中断,中断服务子程序处理完该事件后,程序回到原来被更重要的中断中断的中断服务子程序中。
(7)时钟节拍
时钟节拍是特定的周期性中断。
这个中断可以看作是系统心脏的脉动。
中断之间的时间间隔取决于不同应用,一般在10~200毫秒之间。
时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。
时钟节拍率越快,系统的额外开销就越大。
(因为每个时钟节拍都是一个中断,系统内核都要进行一次调度。
4、使用实时操作系统的必要性
嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得越来越重要。
在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。
使用实时操作系统主要有以下几个因素:
(1)嵌入式实时操作系统提高了系统的可靠性。
在控制系统中,出于安全方面的考虑,起码要求系统不能崩溃,而且还要有自愈能力。
这不仅要求在硬件设计方面提高系统的可靠性和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减小完全漏洞和不可靠的隐患。
长期以来,前后台系统软件设计在遇到强干扰时,使运行的程序产生异常、出错、跑飞甚至死循环,造成了系统的崩溃。
而实时操作系统管理的系统,这种干扰可能只是引起若干进程(完成一定功能的程序)中的一个被破坏,可以通过系统运行的系统监控进程对其进行修复。
通常情况下,这个系统的监控进程用来监视各进程运行情况,遇到异常情况时采取一些利于稳定可靠的措施,例如把有问题的任务清除到。
(2)嵌入式实时操作系统提高了开发效率,缩短了开发周期。
在嵌入式实时操作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解为多个任务模块。
每个任务模块的调试、修改几乎不影响其它模块。
商业软件一般都提供了良好的多任务调试环境。
(3)嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。
32位CPU比8位、16位CPU快,另外它本来是为运行多用户、多任务操作系统而设计的,特别适于运行多任务实时操作系统。
32位CPU采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。
例如,CPU运行状态分为系统态和用户态。
将系统堆栈和用户堆栈分开,以及实时地给出CPU的运行状态等,允许用户在系统设计中从硬件和软件两个方面对实时内核的运行实施保护。
如果还是采用以前的前后台方式,则无法发挥32位CPU的优势。
(对实时操作系统进行小结。
5、实时操作系统的优缺点
(1)优点:
在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。
通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;
而且对实时性要求苛刻的事件都得到了快速、可靠的处理。
通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。
(2)缺点:
使用嵌入式实时操作系统还需要额外的ROM/RAM开销、2%~5%的CPU额外负荷以及内核的费用。
(四)常见的嵌入式操作系统
1、嵌入式Linux
μClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。
μClinux从Linux2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。
它是针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。
适用于没有内存管理单元的处理器,例如ARM7TDMI,它通常用于具有很少内存或Flash的嵌入式系统。
由于μClinux在标准的Linux基础上进行了适当的裁剪和优化,形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然它的体积很小,μClinux仍然保留了Linux的大多数的优点:
稳定、良好的移植性,优秀的网络功能,对各种文件系统完备的支持,以及标准丰富的API函数等。
应用—PDA(个人数字助理)。
(有源代码)
2、WindowsCE
WindowsCE是微软公司开发的一个开放、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,是精简的Windows95。
WindowsCE的图形用户界面相当出色。
WindowsCE是具有模块化、结构化和基于Win32应用程序接口以及与处理机无关等特点。
WindowsCE不仅继承了传统的Windows图形界面,并且该平台上可以使用Windows95/98上的编译工具(如VisualBasic、VisualC++等),使用同样的函数和界面网格,使绝大多数的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。
3、VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
以其良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
并以良好的可靠性和卓越的实时性被广泛应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导及飞机导航等。
在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月的火星表面登陆的火星探测器上也使用了VxWorks。
在093A的项目中,嵌入式实时操作系统都使用VxWorks。
VxWorks具有以下特点:
(1)可靠性
操作系统的用户希望在一个工作稳定,可以信赖的环境下工作,所以操作系统的可靠性是用户首先要考虑的问题。
而稳定、可靠一直是VxWorks的一个突出优点。
自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。
(2)实时性
实时性是指能够在限定时间内执行规定的功能并对外部的异步事件作出响应的能力。
实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。
VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信及中断处理等系统共用程序非常精简而有效,它们造成的延时很短。
VxWorks提供的多任务机制中对任务的控制采用了优先级抢占和轮转调度机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。
(3)可裁剪性
用户在使用操作系统时,并不是操作系统中的每一个部件都要用到。
例如图形显示、文件系统以及一些设备驱动在某些嵌入式系统中往往并不使用。
VxWorks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。
VxWorks内核最小为8KB,即使加上其他必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。
由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。
4、μC/OS-Ⅱ
μC/OS-Ⅱ是一个源码公开、可移植、可固化、可裁剪及占先式的实时多任务操作系统,其绝大部分源码是用ANSIC写的,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 完整 系统 教案 概述