分享

嵌入式系统笔记:01 嵌入式系统概述

 小毛HYL 2020-10-07

1 嵌入式系统:

嵌入式系统诞生于微型计算机时代,与通用计算机的发展道路完全不同,形成了独立的单芯片的技术发展道路。

由于嵌入式系统的诞生,现代计算机领域出现了通用计算机与嵌入式计算机两大分支。

嵌入式系统源于微型计算机,是嵌入到对象体系中,实现嵌入对象智能化的计算机。由于微型计算机无法满足绝大多数对象体系嵌入式要求的体积、价位与可靠性,所以嵌入式系统迅速走上了独立发展的单片机道路。首先是将计算机芯片化,集成为单片机微型计算机(SCMP);其后,为满足对象体系的控制要求,单片机不断从单片微型计算机向微控制器(MCU)与片上系统(SoC)发展。但是无论怎么发展变化,都改变不了“内含计算机”、“嵌入到对象体系中”、“满足对象智能化控制要求”的技术本质。

2 嵌入式处理器

微处理器(Embedded MPU;MPU = Microprocessor Unit):MPU的基础是通用计算机中的CPU。与工控机相比,MPU具有体积小、重量轻、成本低及可靠性高的优点,但电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也差。MPU及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。

微控制器(MCU = Mircocontroller Unit):MCU又称单片机,顾名思义,将整个计算机系统集成到一块芯片中。MCU一般以某种MPU为核心,芯片内部集成ROM/RAM/EEPROM/总线/总线逻辑/定时器/计数器/看门狗/脉宽调制输出/串行口/AD/DA等等各种必要功能和外设。与MPU相比,MCU最大的特点是单片化,体积大大减少,从而使功耗和成本下降,可靠性提高。MCU是目前嵌入式系统工业的主流。MCU的片上外设资源一般比较丰富,适合于控制,因此成为MCU。

DSP处理器(DSP = Digital Signal Processor):DSP对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、频谱分析等方面,DSP算法正大量进入嵌入式领域。

片上系统(SoC = System on Chip):随着EDI的推广,VLSI设计的普及化及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已来临,这就是SoC。这样以来,除了个别无法集成的器件以外,整个嵌入式系统大部分都可集成到一块或几块芯片中,应用系统电路板将变得很简洁,对于减小体积和功耗,提高可靠性非常有利。

3 嵌入式操作系统

在计算机技术发展初期,计算机系统没有“操作系统”这个概念。为了给用户提供一个与计算机之间的接口,同时提高计算机的资源利用率,便出现了计算机监控程序,使用户能通过监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源越来越丰富,监控程序已不能适应计算机应用的要求。于是在20世纪60年代,进一步发展形成了操作系统。发展到现在,广泛使用的有3中操作系统,及多道批处理操作系统、分时操作系统和实时操作系统。

多道批量处理系统一般用于计算中心较大的计算机系统中。由于其硬件设备比较全,价格较高,所以此类系统十分注意CPU及其他设备的充分利用,追求高的吞吐量,不具备实时性。

分时操作系统的主要目的时让多个计算机用户能够共享系统资源,能及时地响应和服务联机用户,只有很弱的实时功能,与真正的实时操作系统仍然有明显区别。

实时操作系统的特点:

  • 异步的事件响应。

  • 切换时间和中断延时时间确定。

  • 优先级中断和调度。

  • 抢占式调度。

  • 内存锁定。

  • 连续文件。

  • 同步。

总的来说,实时操作系统时事件驱动(Event Driven)的,能对来自外界的作用和信号在限定时间范围内做出响应。它强调的是实时性、可靠性和灵活性。

4 嵌入式操作系统基本概念

  • 前后台系统:对于基于芯片开发来说,应用程序一般是一个无限的循环,可成为前后台系统或超循环系统。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为;中断服务程序处理异步事件,这部分可以看成前台行为。后台也可以叫做任务级,前台也可以叫做中断级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。

  • 操作系统。

  • 实时操作系统(RTOS):在RTOS中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证实时性要求。实时多任务操作系统,以分时方式运行多个任务,看上去好像是多个任务“同时”运行。任务之间的切换应当以优先级为根据,只有优先服务方式的RTOS才是真正的实时操作系统,时间分片方式和协作方式的RTOS并不是真正的“实时”。

  • 代码的临界区:代码的临界区也称为临界区,指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打断。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成后要立即开启中断。

  • 资源。

  • 共享资源。可以被要给以上任务使用的资源叫做共享资源。

  • 任务。一个任务也称作一个线程,一个简单的程序,该程序可以认为CPU完全属于该程序本身。

  • 任务切换。

  • 内核。多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务时任务切换。内核本身对CPU的占用时间一般在2%-5%之间。通过提供必不可少的系统服务,注入信号量管理、消息队列、延时等,实时内核使得CPU的利用更为有效。

  • 调度。调度是内核的主要职责之一。调度就是决定该轮到哪个任务运行了。多数实时内核时基于优先级调度法的,每个任务根据其重要程序的不同被赋予一定优先级。

  • 非占先式内核。非占先式内核要求每个任务自我放弃CPU的所有权。非占先式调度法也称做合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由终端服务来处理,中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后,控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,高优先级的任务才能获得CPU的使用权。

  • 占先式内核。当系统响应时间很重要时,要使用占先式内核,因此绝大多数商业上销售的实时内核都是占先式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻就得到了CPU的控制权。

  • 任务优先级。

  • 中断。一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分上下文,及部分寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,a. 在前后台系统中,程序回到后台程序;b. 在非占先式内核而言,程序回到被中断了的任务中;c. 在占先式内核而言,让进入就绪状态的优先级最高的任务开始运行。中断使得CPU可以在事件发生时才予以处理,而不必让MPU连续不断地查询是否有事件发生。通过两条特殊指令——关中断和开中断,可以让MPU不响应或响应中断。在实时环境中,关中断的时间应尽量短。

  • 时钟节拍。时钟节拍式特定的周期性中断,该中断可看作式系统心脏的脉搏。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多