当前位置: 首页 > news >正文

《系统架构设计师》嵌入式系统及软件

一、嵌入式系统的组成及特点

以应用为中心、以计算机技术为基础,并将可配置与可裁减的软、硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。

(一)组成结构

由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。
1.嵌入式处理器。除满足低功耗、体积小等需求外,工艺可分为民用、工业和军用等三个档次,民用级器件的工作温度范围是 0~70℃、工业级的是−40~85℃、军用级的是−55~150℃。
其应用环境常常非常恶劣,比如有高温、寒冷、电磁、震动、烟尘等环境因素。
2.相关支撑硬件。指除处理器以外的其他硬件,如存储器、定时器、总线等。
3.嵌入式操作系统,与通用操作系统不同,嵌入式操作系统应具备实时性、可裁剪性和安
全性等特征。
4.支撑软件,其中的公共服务通常运行在操作系统之上,以库的方式被应用软件所引用。
5.应用软件,是指为完成嵌入式系统的某一专用目标所开发的软件。

(二)嵌入式系统的特点

1)专用性强,常常面向特定应用需求,配备多种传感器。
2)技术融合,将先进的计算机技术、通信技术、半导体技术和电子技术与各个行业的具体
应用紧密结合难以拆分。
3)软硬一体软件为主,在通用的嵌入式系统版本基础上裁剪冗余,高效设计。
4)资源受限,由于低功耗、体积小和集成度高等要求,系统的资源非常少。
5)程序代码固化在ROM中,以提高执行速度和系统可靠性。
6)需专门开发工具和环境
7)体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强。
8)对安全性和可靠性的要求高。

(三)嵌入式系统的分类

1.分类
根据不同用途可将嵌入式系统划分为嵌入式实时系统和嵌入式非实时系统两种。而实时系统又 可分为强实时(Hard Real-Time)系统和弱实时(Weak Real-Time)系统。从安全性要求看,嵌入
式系统还可分为安全攸关(Safety-CriticalLife-Critical)系统和非安全攸关系统。
2.实时系统
实时系统(Real-Time SystemRTS)是指能够在规定的时间内完成系统功能和做出响应的系统。
3.安全攸关系统
安全攸关系统(Safety-Critical System)是指其不正确的功能或者失效会导致人员伤亡、财产
损失等严重后果的计算机系统。

(四)嵌入式系统的基本架构

(1)硬件架构:嵌入式微处理器、嵌入式微控制器、嵌入式数字信号处理器、嵌入式片上系统。
(2)软件架构:嵌入式操作系统、支撑软件和应用软件。

(五)嵌入式操作系统特点

嵌入式操作系统是应用于嵌入式系统,实现软硬件资源的分配,任务调度,控制、协调 并发活动等的操作系统软件。

微型化、代码质量高、专业化、实时性强、可裁剪和可配置。

(1)面向应用,可以进行检查和移植,以支持开放性和可伸缩性的体系结构;
(2)强实时性,以适应各种控制设备及系统;
(3)硬件适用性,对于不同硬件平台 提供有效的支持并实现统一的设备驱动接口;
(4)高可靠性,运行时无须用户过多干预,并处理各类事 件和故障;
(5)编码体积小,通常会固化在嵌入式系统有限的存储单元中。

二、嵌入式软件的组成及特点

(一)基本概念

大多数嵌入式系统都具备实时特征,这种嵌入式系统的典型架构可概括为两种模式,即层次化
模式架构和递归模式架构。
嵌入式系统的最大特点就是系统的运行和开发是在不同环境中进行的, 通常将运行环境称为“目标机”环境,称开发环境为“宿主机”环境,宿主机与目标机之间通过串口、网络或 JTAG 接口连接。
由于宿主机和目标机的指令往往是不同的,嵌入式系统的开发通常需 要交叉平台开发环境支持,基本开发工具是交叉编译器、交叉链接器和源代码调试器。还需要注意 实时性、安全性和可靠性、代码规模、软/硬件协同工作的效率和稳定性、特定领域的需求等。

(二)嵌入式软件的组成与特点

1.硬件层。为嵌入式系统提供运行支撑的硬件环境,包括处理器、存储器、总线、I/O接口及电源、时钟等。
2.抽象层。包括硬件抽象层(HAL),为上层应用(操作系统)提供虚拟的硬件资源;

板级支持包(BSP)是介于主板硬件和操作系统中驱动层程序之间的一层,一股认为它属于操作系统的一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包。BSP具有以下特点:
(1)硬件相关性:BSP为操作系统提供对具体硬件的操作和控制方法。

(2)操作系统相关性:不同操作系统具有各自的软件层次结构,因此BSP必须按照特定操作系统的定义形式来写。

3.操作系统层。由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可配置模块组成。
4.中间件 (Middleware) 层。中间件是指一种独立的系统软件或服务程序,分布式应用系统借助这种软件可在不同的技术之间共享资源。常用的有嵌入式数据库、OpenGL、消息中间件、Java 中间件、虚拟机(VM)、DDS/CORBA 和 Hadoop 等。
5.应用层。
嵌入式软件的主要特点:
(1)可剪裁性。采用的设计方法包括静态编译、动态库和控制函数流程实现功能控制等。
(2)可配置性。采用的设计方法包括数据驱动、静态编译和配置表等。
(3)强实时性。采用的设计方法包括表驱动、配置、静/动态结合、汇编语言等。
(4)安全性 (Safety)。采用的设计方法包括编码标准、安全保障机制、 FMECA (故障模式、影响及危害性分析)。
(5)可靠性。采用的设计方法包括容错技术、余度技术和鲁棒性设计等。
(6)高确定性。采用的设计方法包括静态分配资源、越界检查、状态机、静态任务调度等。
嵌入式软件开发的主要技术有编译优化技术、软硬件协同设计、算法优化。
功耗控制可以从以下几个方面展开:
1)软硬件协同设计,即软件的设计要与硬件的匹配,考虑硬件因素。
2)编译优化,采用低功耗优化的编译技术。
3)减少系统的持续运行时间,可从算法角度进行优化。
4)用“中断”代替“查询”。
5)进行电源的有效管理。

三、嵌入式系统硬件体系结构

(一)组成结构

传统的嵌入式系统主要由嵌入式微处理器、存储器、总线逻辑、定时/计数器、看门狗电路、
I/O接口和外部设备等部件组成。

(二)嵌入式微处理器分类

1)微处理器(Microprocessor UnitMPU):微处理器+专门设计的电路板,集成度低、可
靠性高,主要有:Am186/88386EXSC-400PowerPC68000MIPSARM系列等。
2)微控制器(Microcontroller UnitMCU):又称单片机,把核心存储器和部分外设封装在
片内。优点是单片化、体积小、功耗和成本下降,可靠性提高。包括8501P5IXAMCS-251
MCS-96/196/296C166/167MC68HC05/11/12/1668300和数目众多的ARM系列。
3)数字信号处理器(Digital Signal ProcessingDSP):采用哈佛结构,对系统结构和指令进
行了特殊设计,适合执行大量数据处理。包括TMS320系列(含C2000C5000C6000、C8000 系列)、DSP56000系列、实时DSP处理器等。
4)图形处理器(Graphics Processing UnitGPU):与CPU相比大幅加强了浮点运算能力和
多核并行计算能力,因此常用于AI技术的深度学习的数据运算。
5)片上系统(System on ChipSoC):由多个具有特定功能的集成电路组合在一个芯片上
形成的系统或产品,其中包含完整的硬件系统,如处理器、IPIntellectual Property)核、存储器
等及其承载的嵌入式软件,如操作系统和定制的用户软件。

(三)存储器分类

存储速度从快到慢分别是:寄存器组、Cache、内存、Flash
1)随机存取存储器(Random Access MemoryRAM)。工作需要持续电力提供,可随机读写。
1)动态随机存取存储器(Dynamic RAMDRAM),采用电容存储信息,优点是集成度高、
容量大、成本低,缺点是访问速度较慢、需要定期刷新。常作主存。
2)静态随机存取存储器(Static RAMSRAM),采用多个晶体管自锁的方式保存状态,优点
是访问速度快、不需要刷新,缺点是集成度低、容量小、成本高。常用作高速缓存。
2)只读存储器(Read Only MemoryROM),存储的数据不会因掉电而丢失,读取的速度
RAM快,常见的有以下几种:
1)掩膜型只读存储器(Mask Programmed ROMMROM),优点是通过掩膜大批量制造、成
本低,缺点是同批数据全部一致且不可修改,只适合大批量生产。
2)可编程只读存储器(Programmable ROMPROM),可以用专用编程设备一次性烧录数据,
适合少量制造。
3)可擦可编程只读存储器(Erasable Programmable ROMEPROM),优点是写入的数据可以
通过紫外线擦除重写。
4)电可擦可编程只读存储器(Electrically Erasable Programmable ROMEEPROM),优点是
写入的数据可以通过电压来清除,但是清除的速度很慢。
5)快闪存储器(Flash Memory),优点是可以联机擦写数据且擦写的次数多、速度快,缺点是
读取的速度慢(相对其他ROM的速度而言)。
3)内(外)总线逻辑。
1)根据传输的信息种类分类,可分为以下几种。
①数据总线,用于传送需要处理或者需要存储的数据。
②地址总线,用于指定在RAM之中存储的数据的地址。
③控制总线,将微处理器控制单元的信号传送到周边设备。
2)根据连接部件分类,可分为以下几种。
①片内总线,连接芯片内部各元件。
②系统总线或板级总线,连接计算机系统的核心组件。
③局部总线,连接局部少数组件。
④通信总线,主机连接外设的总线。
各类总线在嵌入式系统的位置如图所示。
3)按照数据传输的方向,总线可以分为单工总线和双工总线。单工总线只能从一端向另一端传输而不能反向;双工总线能在两个方向传输。双工总线又分为半双工总线和全双工总线。半双工 总线只能轮流向两个方向传输;全双工总线可以同时在两个方向传输。
4)按照总线使用的信号类型,总线可以分为并行总线和串行总线。并行总线包含多位传输线,
在同一时刻可以传输多位数据,但一致性要求高,传输距离较近;而串行总线只使用一位传输线,
同一时刻只传输一位数据,但距离可以较远。
4)看门狗电路,是嵌入式系统必须具备的一种系统恢复能力,可防止程序出错或者死锁。
主要由输入端、寄存器、计数器和狗叫模块构成。通过寄存器对看门狗进行基本设置,计数器计算
狗叫时间,狗叫模块决定看门狗超时后发出的中断或复位方式。程序正常运行时MCU会在输入端
定期“喂狗”,超时不“喂狗”就会触发狗叫模块,一般是重启MCU

(四)嵌入式系统网络

现场总线网,总线通信(发送数据采用分时机制,接收数据采用同步接收,并行收取后,不用数据直接丢弃)

四、安全攸关软件的安全性设计

(一)定义

安全攸关软件定义为:“用于一个系统中,可能导致不可接受的风险的软件”

使用范围:在航空航天、轨道交通和核工业等领域中

(二)DO-178B标准

该标准的目的是为制造机载系统和设备的机载软件提供指导,使其能够提供在满足符合适航要
求的安全性水平下完成预期功能。
DO-178B标准将软件生命周期分为
1.“软件计划过程”
2.“软件开发过程”细分为软件需求过程、软件设计过程、软件编码过程和集成过程 4 个子过程;

3.“软件综合过程”细分为4 个子过程。(1)软件验证过程。(2)软件配置管理过程。(3)软件质量保证过程。(4)审定联络过程。

DO-178B 根据软件在系统中的重要程度将软件的安全等级分为AE五级,分别对应灾难级(A)、危害级(B)、严重级(C)、不严重级(D)和没有影响级(E)。

http://www.jsqmd.com/news/1195571/

相关文章:

  • Codex + cc-switch + GPT-5.6 国内使用教程:从注册 API 到接入 VS Code,一篇讲清楚
  • 东南大学自动化考研:近三年考情深度解析与趋势研判
  • 从时钟对齐到频率合成:深入解析DLL与PLL的核心差异与应用选型
  • 角色创作平台开发指南:从核心功能到部署实践
  • 告别在线视频无法保存的烦恼:Video Download Helper完全指南
  • 从零到精通:shadPS4 PS4模拟器实战指南
  • 同行避雷!Sullivan Carter 批量发传票,做泳装别碰海龟标和 VILEBREQUIN 全套商标
  • 5个简单步骤:用Reset Windows Update Tool彻底解决Windows更新故障
  • 5个步骤让老Mac焕然新生:OpenCore Legacy Patcher完全指南
  • 终极Yocto层开发指南:基于openeuler/yocto-meta-st构建嵌入式系统
  • 3大核心功能,让foobar2000焕然一新:foobox-cn深度定制体验
  • 免费商用数字人平台推荐:真人克隆、无水印导出和短视频带货出片怎么选?
  • Python零基础到实战:7天掌握数据分析与网络爬虫核心技能
  • 3大技术突破:Awesome-Dify-Workflow重构AI工作流开发范式
  • 一、大阿里云 私有 Bucket + 预签名 URL以及OSS原生url方案(2024.12月版)
  • 如何快速掌握Aviator Predictor Bot:新手的终极免费预测指南
  • Kohya_ss完整指南:5步掌握Stable Diffusion模型训练
  • Obsidian Spreadsheets:如何在笔记应用中构建完整的数据工作流
  • 基于STM32与OpenMV的视觉分拣机械臂:从硬件选型到抓取算法实现
  • 模板驱动文档自动化:用结构化规则替代重复排版
  • 如何3分钟批量下载国家中小学智慧教育平台PDF教材:终极教程指南
  • 从 LLM 到 Agent Skill,带你打通底层逻辑!
  • 2026年天乙八字排盘和命枢哪个好?长期复盘和小白入门怎么选
  • 如何用xBrowserSync实现浏览器书签跨设备同步:终极完整指南
  • Android逆向实战:Apktool反编译与APK修改全流程解析
  • 告别混乱!用.h/.cpp重构你的Arduino项目,实现模块化工程管理
  • 18. Nginx 限流模块源码深度解析:limit_conn / limit_req / limit_rate 实现原理
  • 嵌入式实战笔记 -- 跨平台通信中的大小端转换策略
  • ChatGPT iOS App 从下载到精通:解锁移动端AI助手的完整指南
  • 盘点:Flutter开发中那些提升效率的UI组件库(持续收录)