第13章 嵌入式技术
目录13.1 嵌入式系统概述13.2 嵌入式系统软件组成架构13.3 嵌入式软件开发13.4 嵌入式硬件13.5 嵌入式操作系统13.6 嵌入式数据库13.7 安全攸关软件的安全性设计13.1嵌入式系统概述基本概念嵌入式系统是以应用为中心、以计算机技术为基础并将可配置与可裁剪的软、硬件集成于一体的专用计算机系统需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。从计算机角度看嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能体积小、结构紧凑可作为一个部件埋藏于所控制的装置中。一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。混成系统是嵌入式实时系统的一种重要的子类。混成系统在工业控制和国防等领域大量存在。同时现代计算机技术的高速发展和普及应用为系统的模型化、优化控制和决策问题提供了强有力的技术支持。混成系统一般由离散分离组件和连续组件并行或串行组成组件之间的行为由计算模型进行控制。13.2嵌入式系统软件组成架构嵌入式系统的架构和目标系统是紧密结合的通常没有统一的架构。根据嵌入式系统的应用目标和需求以及系统的复杂程度和功能大小采用不同的架构设计方法。目前比较典型的嵌入式软件架构有两种层次化模式架构和递归模式架构。嵌入式系统初始化过程片级初始化→板级初始化→系统级初始化从传统意义上讲嵌入式系统主要由以下部件组成:1嵌入式微处理器(MCU)2存储器(RAM/ROM)3内(外)总线逻辑4定时/计数器5看门狗电路定时器溢出则中断系统复位处理。6I/0接口(串口、网络、USB、JTAG接口--用来进行CPU调试的常用接口)7外部设备(UART、LED等)8其他部件看门狗技术是一种计算机程序监视技术防止程序由于干扰等原因而进入死循环一般用于计算机控制系统。其原理是不断监测程序循环运行的时间一旦发现程序运行时间超过循环设定的时间就认为系统已陷入死循环从而产生看门狗中断强迫系统重新启动或执行预定的错误处理程序。在嵌入式操作系统中板级支持包(BSP)作为对硬件的抽象实现了(硬件有关性操作系统有关性)板级支持包(BSP)是介于主板硬件和操作系统中驱动层程序之间的一层一般认为它属于操作系统的部分主要是实现对操作系统的支持为上层的驱动程序提供访问硬件设备寄存器的函数包。BSP具有以以下特点:(1)硬件相关性BSP为操作系统提供对具体硬件的操作和控制方法。(2)操作系统相关性不同操作系统具有各自的软件层次结构因此BSP必须按照特定操作系统的定义形式来写。13.3嵌入式软件开发嵌入式软件的开发与传统的软件开发方法存在比较大的差异主要表现在以下方面:1嵌入式软件开发是在宿主机(PC机或工作站)上使用专门的嵌入式工具开发生成二进制代码后需要使用工具卸载到目标机或固化在目标机储存器上运行。2嵌入式软件开发时更强调软/硬件协同工作的效率和稳定性。3嵌入式软件开发的结果通常需要固化在目标系统的储存器或处理器内部储存器资源中。4嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备。5嵌入式软件对实时性的要求更高。6嵌入式软件对安全性和可靠性的要求较高。7嵌入式软件开发是要充分考虑代码规模。8在安全攸关系统中的嵌入式软件其开发还应满足某些领域对设计和代码审定。模块化设计即将一个较大的程序按功能划分成若干程序模块每个模块实现特定的功能。JTAG(Joint Test Action Group联合测试工作组)是一种国际标准测试协议(IEEE 1149.1兼容)主要用于芯片内部测试和调试。嵌入式软件设计层面的功耗控制主要可以从以下方面展开:1软硬件协同设计即软件的设计要与硬件的匹配考虑硬件因素。2编译优化采用低功耗优化的编译技术。3减少系统的持续运行时间可从算法角度进行优化。4用“中断”代替“查询”5进行电源的有效管理。嵌入式系统开发中宿主机是开发环境目标机是运行环境两者通过特定接口连接。13.4嵌入式硬件嵌入系统发展历程嵌入式系统的发展大致经历了五个阶段:第一阶段:单片微型计算机(SCM)阶段即单片机时代。第二阶段:微控制器(MCU)阶段。第三阶段:片上系统(SoC)第四阶段:以Internet为基础的嵌入式系统。第五阶段:在智能化、云技术推动下的嵌入式系统。通常嵌入式处理器的选择还要根据使用场景不同选择不同类型的处理器从处理器分类看大致可分为MPU、MCU、DSP、GPU、SoC:微处理器(Micro Processor UnitMPU)将微处理器装配在专门设计的电路板上只保留与嵌入式应用有关的母板功能。微处理器一般以某一种微处理内核为核心每一种衍生产品的处理器内核都是一样的不同的是存储器和外设的配置和封装。嵌入式微处理器主要用于处理相关任务。由于嵌入式系统通常都在室外使用可能处于不同环境因此选择处理器芯片时也要根据不同使用环境选择不同级别的芯片。其主要因素是芯片可适应的工作环境温度。通常我们把芯片分为民用级、工业级和军用级。民用级器件的工作温度范围是0~70°C、工业级的是-40~85℃℃、军用级的是-55~150℃。当然除了环境温度外环境湿度、震动、加速度等也是应考虑的因素。微控制器(Micro Control UnitMCU)又称单片机。与MPU相比MCU的最大优点在于单片化体积大大减小从而使功耗和成本下降可靠性提高。信号处理器(Digital Signal ProcessorDSP)DSP处理器对系统结构和指令进行了特殊设计(通常DSP采用一种哈佛结构)使其适合于执行DSP算法编译效率高指令执行速度也高。图形处理器(Graphics ProcessingUnitGPU):1GPU是图形处理单元的缩写是一种可执行渲染3D图形等图像的半导体芯片(处理器)2GPU可用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器。3它可减少对 CPU的依赖并进行部分原本CPU的工作尤其是在3D图形处理中GPU采用了核心技术(如:硬件TL、纹理压缩等)保证了3D快速染的能力。4GPU目前已广泛应用于各行各业GPU中集成了同时运行在GHz的频率上的成千上万个core可以高速处理图像数据。最新的GPU峰值性能可高达100TFlops以上。片上系统(System on chipSoC):1追求产品系统最大包容的集成器件。2它是一个产品是一个有专用目标的集成电路其中包含完整系统并有嵌入软件的全部内容。3同时它又是一种技术用以实现从确定系统功能开始到软/硬件划分并完成设计的整个过程。4成功实现了软硬件的无缝结合直接在微处理器片内嵌入操作系统的代码模块。5减小了系统的体积和功耗、提高了可靠性和设计生产效率。6狭义角度信息系统核心的芯片集成是将系统关键部件集成在一块芯片上;7广义角度SoC是一个微小型系统如果说中央处理器(CPU)是大脑那么SoC就是包括大脑、心脏、眼睛和手的系统。8国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上它通常是客户定制的或是面向特定用途的标准产品人工智能芯片人工智能(Artificial IntelligenceAl)芯片的定义:从广义上讲只要能够运行人工智能算法的芯片都叫作A芯片。但是通常意义上的 A1芯片指的是针对人工智能算法做了特殊加速设计的芯片现阶段这些人工智能算法一般以深度学习算法为主也可以包括其它机器学习算法。人工智能芯片四大类(按技术架构分类)1GPU2FPGA(现场可编程门阵列)3ASIC(专用集成电路)4类脑芯片AI芯片的关键特征:1新型的计算范式AI计算既不脱离传统计算也具有新的计算特质2训练和推断AI系统通常涉及训练和推断过程3大数据处理能力满足高效能机器学习的数据处理要求4数据精度降低精度的设计5可重构的能力针对特定领域而不针对特定应用的设计可以通过重新配置适应新的A1算法、架构和任务6开发工具AI芯片需要软件工具链的支持嵌入式微处理器体系结构总线基本概念总线是一组能为多个部件分时共享的信息传送线用来连接多个部件并为之提供信息交换通路。【总线通常是半双工的】特点:1挂接在总线上的多个部件只能分时向总线发送数据但可同时从总线接收数据2通过总线复用方式可以减少总线中信号线的数量以较少的信号线传输更多的信息。3从功能上来对总线进行划分数据总线、地址总线和控制总线4从数据传输的方式划分并行总线和串行总线并行总线将数据字节的各位用多条数据线同时进行传送。【短距离】(代表有PCI、IDE、SCSI)串行总线数据是一位一位地进行传输的在传输中每一位数据都占据一个固定的时间长度。【长距离传输波特率可调整正确性依赖于校验码数据传输方式可以使用多种】代表有USB13.5嵌入式操作系统嵌入式操作系统的定义及特点嵌入式操作系统(Embedded Operating SystemEOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件负责嵌入式系统的全部软、硬件资源分配、任务调度、控制、协调并行活动等工作。通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。根据系统对时间的敏感程度可将嵌入式系统划分为:1嵌入式非实时系统2嵌入式实时系统:能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。嵌入式实时操作系统嵌入式实时操作系统兼具嵌入式操作系统的特点和实时操作系统的特点。嵌入式操作系统主要有以下特点:(1)微型化(2)代码质量高(3)专业化(4)实时性强(5)可裁减、可配置。实时操作系统的最核心特点是实时性强。嵌入式实时操作系统实时性的评价指标1中断响应和延迟时间2任务切换时间3信号量混洗时间嵌入式实时操作系统调度算法优先级调度算法系统为每个任务分配一个相对固定的优先顺序。抢占式优先级调度算法根据任务的紧急程度确定该任务的优先级。大多数RTOS调度算法都是抢占方式(可剥夺方式)。最早截止期调度算法(Earliest Deadline FirstEDF算法)根据任务的截止时间头端来确定其优先级对于时间期限最近的任务分配最高的优先级。最晚截止期调度算法根据任务的截止时间末端来确定其优先级对于时间期限最近的任务分配最高的优先级。最低松弛度优先(Least Laxity First LLF)调度算法根据任务紧急或松弛程度确定优先级紧急程度越高优先级越高。这也是一种有效的实时调度算法。单调速率(Rate Monotonic SchedulingRMS)调度算法是根据任务周期确定优先级周期越短优先级越高。根据教材原文这种算法被认为是最优的实时调度算法。First In First Out Scheduling(FIFO调度是一种调度策略主要用于实时操作系统中确保最先进入系统的任务或进程首先得到处理。这种调度策略的核心思想是“先来先服务”即按照任务进入系统的顺序进行处理先进入系统的任务会先被执行。操作系统内核架构内核是操作系统的核心部分它管理着系统的各种资源。内核可以看成连接应用程序和硬件的座桥梁是直接运行在硬件上的最基础的软件实体。目前从内核架构来划分可分为宏内核(Monolithic Kernel)也叫单体内核和微内核(Micro Kernel)。宏内核中用户服务和内核服务确实在同空间中实现内核功能组件代码可以互相调用因此代码耦合度非常高微内核是用户服务和内核服务在不同空间中实现代码耦合度低鸿蒙操作系统采用微内核13.6嵌入式数据库与传统数据库相比嵌入式数据库系统有以下几个主要特点:1嵌入式嵌入性是嵌入式数据库的基本特性。嵌入式数据库不仅可以嵌入到其他的软件当中也可以嵌入到硬件设备当中。2实时性实时性和嵌入性是分不开的。只有具有了实时性的数据库才能够第一时间得到系统的资源对系统的请求在第一时间内做出响应。但是并不是具有嵌入性就一定具有实时性。要想嵌入式数据库具有很好的实时性必须做很多额外的工作。3移动性移动性是目前在国内提得比较多的一个说法这和目前国内移动设备的大规模应用有关。可以这么说具有嵌入性的数据库一定具有比较好的移动性但是具有比较好的移动性的数据库不一定具有嵌入性。4伸缩性伸缩性在嵌入式场合显得尤为重要。首先嵌入式场合硬件和软件的平台都是千差万别基本都是客户根据需要自己选择的结果。按照数据库存储位置的不同而进行分类是目前广泛采用的分类方法它可以划分为三类:1基于内存方式(Main Memory Database SystemMMDB)2基于文件方式(File DatabaseFDB)3基于网络方式(Netware DatabaseNDB)嵌入式数据库中SQLite和BerkeleyDB是文件型数据库Firebird是网络型数据库eXtremeDB则是内存型数据库。嵌入式网络数据库:实际上嵌入式网络数据库是把功能强大的远程数据库映射到本地数据库使嵌入式设备访问远程数据库就像访问本地数据库一样方便。嵌入式网络数据库主要由三部分组成:客户端、通信协议和远程服务器。客户端主要负责提供接口给嵌入式程序通信协议负责规范客户端与远程服务器之间的通信还需要解决多客户端的并发问题远程服务器负责维护服务器上的数据库数据这里要说明的是由嵌入式网络数据库、嵌入式本地数据库(内存或文件)和嵌入式Web服务器等构成了综合的嵌入式综合信息系统。13.7安全攸关软件的安全性设计1定义IEEE 定义安全攸关软件是“用于一个系统中可能导致不可接受的风险的软件”。2DO-178B 标准该标准的目的是为制造机载系统和设备的机载软件提供指导使其能够提供在满足符合适航要 求的安全性水平下完成预期功能。DO-178B标准将软件生命周期分为“软件计划过程”、“软件开发过程”和“软件综合过程”其中软件开发过程细分为软件需求过程、软件设计过程、软件编码过程和集成过程4个子过程软件综合过程细分为软件验证过程、软件配置管理过程、软件质量保证过程、审定联络过程4个子过程。DO-178B 根据软件在系统中的重要程度将软件的安全等级分为 AE五级分别对应灾难级A、危害级B、严重级C、不严重级D和没有影响级E生命攸关系统是指一个系统的失效或误动作会产生诸如人员重伤或死亡或者设备的严重毁损或者环境的危害。通常在开发安全做关软件时需求分析阶段必须考虑安全性需求使其不会出现不可接受的违反系统安全的行为需求。软件安全需求的获取是根据已知的系统信息如软件危害条件等以及其他一些类似的系统数据和通用惯例完成通用软件安全性需求的裁剪和特定软件安全性需求的获取工作。