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

系统分析师3:嵌入式技术

文章目录

  • 1 嵌入式系统概述
    • 1.1 基本概念
    • 1.2 嵌入式系统软件组成架构
  • 2 嵌入式硬件
    • 2.1 嵌入式微处理器体系结构
    • 2.2 总线
    • 2.3 接口
  • 3 嵌入式系统软件
    • 3.1 基本概念
    • 3.2 嵌入式系统软件分类
  • 4 嵌入式操作系统
    • 4.1 嵌入式操作系统特点
    • 4.2 嵌入式实时操作系统
      • 4.2.1 嵌入式实时操作系统分类
      • 4.2.2 嵌入式实时操作系统实时性的评价指标
      • 4.2.3 嵌入式实时操作系统调度算法
    • 4.3 操作系统内核架构
    • 4.4 微内核操作系统
  • 5 多核技术
    • 5.1 多核操作系统
  • 6 嵌入式设计与开发
    • 6.1 交叉开发环境
    • 6.2 嵌入式开发和传统开发的差异
    • 6.3 低功耗设计
  • 7 附录 思维导图

1 嵌入式系统概述

1.1 基本概念

  • 嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁剪的软、硬件集成于一体的专用计算机系统【面向特定领域】,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求
  • 从计算机角度看,嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小、结构紧凑,可作为一个部件埋藏于所控制的装置中
    一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成
  • 嵌入式系统通常通过外部接口采集相关输入信息或人机接口输入的命令,对输入数据进行加工和计算,并将计算结果通过外部接口输出,以控制受控对象

1.2 嵌入式系统软件组成架构

在这里插入图片描述

  • 硬件层->抽象层->操作系统层->中间件层->应用层
  • 嵌入式系统初始化过程:片级初始化->板级初始化->系统级初始化

例题
嵌入式系统初始化过程通常包括三个环节:片级初始化、板级初始化和系统初始化。以下关于系统级初始化主要任务的描述,准确的是( )。
A 完成嵌入式微处理器的初始化
B 以软件初始化为主,主要进行操作系统的初始化
C 完成嵌入式微处理器以外的其他硬件设备的初始化
D 设置嵌入式微处理器的核心寄存器和控制寄存器工作状态

分析:
A、D属于片级初始化的主要任务;
C是板级初始化的主要任务;
B是系统级初始化的主要任务
故正确答案为B

2 嵌入式硬件

2.1 嵌入式微处理器体系结构

在这里插入图片描述

嵌入式微处理器主要用于处理相关任务。由于嵌入式系统通常都在室外使用,可能处于不同环境,因此选择处理器芯片时,也要根据不同使用环境选择不同级别的芯片。其主要因素是芯片可适应的工作环境温度。通常,我们把芯片分为民用级、工业级和军用级。

  • 民用级器件的工作温度范围:0 ~ 70℃
  • 工业级器件的工作温度范围:-40 ~ 85℃
  • 军用级器件的工作温度范围:-55~150℃
    当然,除了环境温度外,环境湿度、震动、加速度等也是应考虑的因素。

例题
雷达设计人员在设计数字信号处理单元时,其处理器普遍采用DSP芯片(比如:TI公司的TMS320C63xx),通常DSP芯片采用哈佛(HarVard)体系结构,以下关于哈佛结构特征的描述,不正确的是()。
A 程序和数据具有独立的存储空间,允许同时取指令和取操作数,并允许在程序空间或数据空间之间互传数据
B 处理器内部采用多总线结构,保证了在一个机器周期内可以多次访问程序空间和数据空间
C 哈佛体系结构强调的是多功能,适合多种不同的环境和任务,强调兼容性
D 处理器内部采用多处理单元,可以在一个指令周期内同时进行运算

分析:
首先,我们来逐一分析每个选项:
A. 这个描述是正确的,哈佛结构的特点之一就是程序和数据存储在不同的存储空间,这样可以同时进行指令和数据的读取。
B. 这个描述也是正确的,哈佛结构通常采用多总线结构,以实现高效的并行数据访问。
C. 这个描述是不正确的。哈佛结构的主要特点是程序和数据存储在不同的存储空间,以及并行访问的能力,而不是多功能或兼容性。哈佛结构通常用于特定的应用,如数字信号处理,而不是强调多功能或兼容性。
D. 这个描述是正确的,哈佛结构可以支持多处理单元,以实现高效的并行处理。
综上所述,不正确的描述是C选项。
答案:选C

拓展

  1. 时钟周期:主频的倒数,根据机器决定,是计算机中最小的单位时间;
  2. 机器周期:可以有1~多个时钟周期,完成某项操作的时间;
  3. 指令周期:可以有1~多个时钟周期,完成一条指令的时间。

2.2 总线

基本概念
总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路。【总线通常是半双工的

特点

  • 挂接在总线上的多个部件只能分时向总线发送数据,但可同时从总线接收数据
  • 通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息
  • 从功能上将总线划分为数据总线、地址总线和控制总线
  • 从数据传输的方式将总线划分为并行总线和串行总线
    • 并行总线:将数据字节的各位用多条数据线同时进行传送【短距离
    • 串行总线:数据是一位一位地进行传输的,在传输中每一位数据都占据一个固定的时间长度。【长距离,传输波特率可调整,正确性依赖于校验码,数据传输方式可以使用多种

拓展
单工:在单工模式下,数据只能在一个固定方向上传输。这意味着发送方只能发送数据,而接收方只能接收数据,不能进行回复。例如,广播电台等;
半双工:在半双工模式下,设备可以在两个方向上传输数据,但不是同时进行。这意味着设备可以在某一时刻发送数据,在另一时刻接收数据,但不能在同一时刻既发送又接收。例如,对讲机;
全双工:在全双工模式下,设备可以同时在两个方向上传输数据。这意味着发送和接收可以同时进行,互不干扰。例如,电话。

2.3 接口

I/O接口,也称为I/O控制器,它是主机和外设(外部设备)直接的交接界面,通过接口可以实现主机和外设之间的信息交换。

接口的主要功能表现在以下5个方面:
(1) 实现主机和外设的通信联络控制。
(2) 进行地址译码和设备选择。
(3) 实现数据缓冲。
(4) 数据格式的变换。
(5) 传递控制命令和状态信息。

接口的分类:串行接口和并行接口。

IEEE-1394串行接口标准
1394是构建在菊花链或树状的拓扑接口上的,它支持63个节点,每个节点可以支持多达16台设备的菊花链。如果还不够用的话,该标准还支持最多1023条桥接的总线,这样就可以互连1023*63=64449个节点

例题
IEEE-1394总线采用菊花链的拓扑结构时,可最多支持63个节点。当1394总线支持1023条桥接总线时,最多可以采用菊花链的拓扑结构互连()个节点。

分析:63*1023=64449
故最多可以采用菊花链的拓扑结构互连64449个节点

3 嵌入式系统软件

3.1 基本概念

嵌入式系统具有以下特点:

  • 规模较小

  • 开发难度大

    • 硬件资源有限
    • 嵌入式软件一般涉及底层软件的开发,需要软、硬件基础。开发环境和运行环境不同
    • 实时性和可靠性要求高。如火箭飞行控制、核电站
  • 要求固化存储

3.2 嵌入式系统软件分类

根据系统对时间的敏感程度可将嵌入式系统划分为

  • 嵌入式系统
  • 嵌入式实时系统
    强实时系统
    弱实时系统

从安全性要求看,嵌入式系统还可分为

  • 安全攸关系统
  • 非安全攸关系统

例题
嵌入式系统已被广泛应用到各行各业。嵌入式系统是一个内置于设备中,对设备的各种传感器进行管理与控制的系统。通常,根据系统对时间的敏感程度可将嵌入式系统划分为()两种,而实时系统又可分为强实时(Hard Real-Time)系统和弱实时(Weak Real-Time)系统;如果从安全性要求看,嵌入式系统还可分为( ) 。

A 嵌入式系统和嵌入式实时系统
B 控制系统和业务系统
C 安全攸关系统和非安全攸关系统
D CPS系统和非CPS系统

A 高可靠系统和高安全系统
B 实时系统和强实时系统
C 安全攸关系统和非安全攸关系统
D 网络系统和分布式系统

分析:
根据系统对时间的敏感程度可将嵌入式系统划分为嵌入式系统和嵌入式实时系统两种;
如果从安全性要求看,嵌入式系统还可分为安全攸关系统和非安全攸关系统
答案:选择A、C

4 嵌入式操作系统

4.1 嵌入式操作系统特点

嵌入式操作系统具有一般操作系统的功能,同时具有嵌入式软件的特点,主要有:

  • 非通用型操作系统
  • 在性能和实时性方面可能有严格的限制
  • 能源、成本和可靠性通常是影响设计的重要因素
  • 占用资源少
  • 可剪裁、可配置
  • 微型化
  • 可定制:从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要
  • 实时性
  • 可靠性
  • 易移植性:为了提高系统的易移植性,通常采用硬件抽象层(HAL)和板级支持包(BSP)的底层设计技术。

例题
“从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置。”是属于嵌入式操作系统()特点。
A 可定制
B 实时性
C 可靠性
D 易移植性

分析:
注意区分可定制性和易移植性:
可定制性:从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置;
易移植性:为了提高系统的易移植性,通常采用硬件抽象层(HAL)和板级支持包(BSP)的底层设计技术
故选项A正确。

4.2 嵌入式实时操作系统

4.2.1 嵌入式实时操作系统分类

按照系统对响应时间的敏感程度,可以分为:

  • 硬实时系统:系统对响应时间有严格要求,若响应时间不能满足,是绝对不允许的,
    会引起系统的崩溃或致命的错误
  • 软实时系统:系统对响应时间有要求,若响应时间不能满足,会带来额外可接受的
    代价
  • 非实时系统:响应时间没有严格要求
    如分时操作系统,基于公平性原则,各进程分享处理器,获得大致相同的运行时间

4.2.2 嵌入式实时操作系统实时性的评价指标

  • 任务切换时间
  • 中断响应和延迟时间
  • 系统响应时间
  • 信号量混洗时间

4.2.3 嵌入式实时操作系统调度算法

  • 优先级调度算法:系统为每个任务分配一个相对固定的优先顺序
  • 抢占式优先级调度算法:根据任务的紧急程度确定该任务的优先级。大多数RTOS调度算法都是抢占方式(可剥夺方式)
  • 最早截止期调度算法(EDF算法)︰根据任务的截止时间来确定其优先级,对于时间期限最近的任务,分配最高的优先级

例题
嵌入式实时系统存在许多调度算法。如果调度程序根据任务的紧急程度确定该任务的优先级,任务紧急程度高,被赋予的优先级就高,可被优先执行。这种调度算法称之为()。
A 最早截止时间优先(Earliest Deadline First,EDF)算法
B 最低松弛度优先(Least Laxity First, LLF)算法
C 单调速率调度(Rate Monotonic scheduling, RMS)算法
D 抢占式优先级调度(Preemptive Priority Scheduling, PPS)算法

分析:根据任务的紧急程度确定任务的优先级,属于抢占式优先级调度算法
故正确答案:D

4.3 操作系统内核架构

内核是操作系统的核心部分,它管理着系统的各种资源。内核可以看成连接应用程序和硬件的一座桥梁,是直接运行在硬件上的最基础的软件实体。
目前从内核架构来划分,可分为宏内核(Monolithic Kernel)和微内核(Micro Kernel)。
在这里插入图片描述在这里插入图片描述

4.4 微内核操作系统

现代操作系统大多拥有两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。
将传统的操作系统代码放置到更高层,从操作系统中去掉尽可能多的东西,而只留下最小的核心,称之为微内核。(C/S结构)
在这里插入图片描述操作系统的内核服务:异常和中断、计时器、I/O管理等。

例题
采用微内核结构的操作系统设计的基本思想是内核只完成操作系统最基本的功能并在核心态
下运行,其他功能运行在用户态,其结构图如下所示。图中空(a)、(b)、©和(d)应分别选择如下所示①~④中的哪一项?()
①核心态 ②用户态 ③文件和存储器服务器 ④进程调度及进程间通信
在这里插入图片描述

分析:
(a)文件和存储服务器,即③;
(b)进程调度及进程间通信,即④
©用户态,即②
(d)核心态,即①
故图中空(a)、(b)、©和(d)应分别选择如下所示①~④中的:③④②①

5 多核技术

5.1 多核操作系统

对于多核CPU,优化操作系统任务调度算法是保证效率的关键。一般任务调度算法有全局队列调度和局部队列调度

  • 全局队列调度:指操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU核心利用率较高
  • 局部队列调度:指操作系统为每个CPU内核维护一个局部的任务等待队列,当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,这种方法的优点是任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部Cache命中率。目前多数多核CPU操作系统采用的是基于全局队列的任务调度算法

例题
多核CPU环境下进程的调度算法一般有全局队列调度和局部队列调度两种。()属于全局队列调度的特征。
A 操作系统为每个CPU维护一个任务等待队列
B 操作系统维护一个任务等待队列
C 任务基本上无需在多个CPU核心间切换,有利于提高Cache命中率
D 当系统中有一个CPU核心空闲时,操作系统便从该核心的任务等待队列中选取适当的任务执行

分析:A、C、D均为局部队列调度特征;
B为全局队列调度特征。
答案:B

6 嵌入式设计与开发

6.1 交叉开发环境

在这里插入图片描述JTAG (Joint Test Action Group,联合测试工作组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试和调试

在这里插入图片描述

6.2 嵌入式开发和传统开发的差异

嵌入式软件的开发也与传统的软件开发方法存在比较大的差异,主要表现在以下方面:
(1)嵌入式软件开发是在宿主机(PC机或工作站)上使用专门的嵌入式工具开发,生成二进制代码后,需要使用工具卸载到目标机或固化在目标机储存器上运行
(2)嵌入式软件开发时更强调软/硬件协同工作的效率和稳定性
(3)嵌入式软件开发的结果通常需要固化在目标系统的储存器或处理器内部储存器资源中
(4)嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备
(5)嵌入式软件对实时性的要求更高
(6)嵌入式软件对安全性和可靠性的要求较高
(7)嵌入式软件开发时要充分考虑代码的规模
(8)在安全攸关系统中的嵌入式软件,其开发还应满足某些领域对设计和代码的审定
(9)模块化设计即将一个较大的程序按功能划分成若干程序模块,每个模块实现特定的功能

例题
嵌入式软件开发方法与传统软件开发方法存在较大差异,()的说法对嵌入式软件开发而言是错误的。
A 嵌入式软件开发的结果通常需要固化在目标系统的储存器或处理器内部储存器资源中
B 嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备
C 嵌入式软件对安全性和可靠性的要求较高
D 嵌入式软件开发不用考虑代码的规模

分析:
嵌入式软件开发时要充分考虑代码的规模
故选择C

6.3 低功耗设计

嵌入式系统设计一般要考虑功耗问题,低功耗设计是嵌入式系统设计中的难点,是一个系统化的综合问题,必须从软件和硬件两个方面全面考虑。
在这里插入图片描述

7 附录 思维导图

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高级java每日一道面试题-2024年8月12日-网络篇-说一下JSONP的实现原理?
  • 【区块链+金融服务】基于区块链的一站式绿色金融开放平台 | FISCO BCOS应用案例
  • docker 安装mino服务,启动报错: Fatal glibc error: CPU does not support x86-64-v2
  • ComfyUI工作流|给你的线稿换上任意颜色,这个就太秀了!
  • 2024海外电商数据分析之巴西篇
  • Java语言程序设计基础篇_编程练习题*16.16(使用ComboBox和ListView)
  • 网络编程day3
  • Java中金额转换处理(转大写,三位一逗)
  • 您知道有哪些主流的大模型LLM开源项目吗?
  • Marmir,一个超牛的Python库
  • 力扣题/图论/岛屿数量
  • 【大数据】智慧园区大数据云平台整体建设方案(Word原件)
  • 【Python学习-UI界面】PyQt5 小部件14-QDock 子窗口
  • Redis常见的数据类型和应用场景
  • 一、在cubemx上配置sd和fatfs示例演示
  • php的引用
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Invalidate和postInvalidate的区别
  • JSDuck 与 AngularJS 融合技巧
  • Laravel 菜鸟晋级之路
  • MobX
  • PAT A1017 优先队列
  • PhantomJS 安装
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue.js-Day01
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端性能优化--懒加载和预加载
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 异常机制详解
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • elasticsearch-head插件安装
  • MPAndroidChart 教程:Y轴 YAxis
  • ​决定德拉瓦州地区版图的关键历史事件
  • $().each和$.each的区别
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (4)STL算法之比较
  • (javaweb)Http协议
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (四)opengl函数加载和错误处理
  • (新)网络工程师考点串讲与真题详解
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .gitignore
  • .net 7 上传文件踩坑
  • .NET委托:一个关于C#的睡前故事
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @RunWith注解作用
  • @selector(..)警告提示
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决