嵌入式系统架构设计

本博客地址:https://security.blog.csdn.net/article/details/136745118

一. 嵌入式系统硬件

1、传统嵌入式系统主要硬件包括:
微处理器:微控制器(MCU),微处理器(MPU)
存储器:RAM、ROM
总线:内总线,外总线。
定时器/计数器(Timer)
看门狗(WatchDog)
I/O 接口:串口,网络,USB,JTAG
外部设备:UART,LED

2、嵌入式处理器可以分为:
● 微处理器(MPU)。特点是体积小,重量轻,成本低,可靠性高,但技术保密性差。
● 微控制器(MCU)。特点是单片化,体积小,功耗低,成本低,可靠性更高。
● 信号处理器(DSP)。特点是系统结构和指令采用特殊设计,通常采用哈佛结构,编译效率高,指令执行速度也高。
● 图形处理器(GPU)。专注于浮点运算,弥补了 CPU 运算速度不足。
● 片上系统(SoC)。采用了片内再编程技术,可使片上系统内硬件的功能像软件一样通过编程来配置,从而可以实时地进行灵活而方便的修改和开发。

3、存储器就是一种存储程序和数据用的时序逻辑电路。存储器分类为:随机存取存储器(RAM)只读存储器(ROM)

4、随机存取存储器(RAM)的特点是一旦系统断电,存放在里面的所有数据和程序都会自动清空掉,并且再也无法恢复。

5、根据组成元件的不同,RAM 内存又可分为以下 18 种:
● 动态随机存取存储器(DRAM);
● 静态随机存取存储器(SRAM);
● 视频内存(VRAM);
● 快速页切换模式动态随机存取存储器(FPM DRAM);
● 延伸数据输出动态随机存取存储器(EDO DRAM);
● 爆发式延伸数据输出动态随机存取存储器(BEDO DRAM);
● 多插槽动态随机存取存储器(MDRAM);
● 窗口随机存取存储器(WRAM);
● 高频动态随机存取存储器(RDRAM);
● 同步动态随机存取存储器(SDRAM);
● 同步图形随机存取存储器(SGRAM);
● 同步爆发式静态随机存取存储器(SB SRAM);
● 管线爆发式静态随机存取存储器(PB SRAM);
● 二倍速率同步动态随机存取存储器(DDR SDRAM);
● 同步链环动态随机存取存储器(SLDRAM);
● 同步缓存动态随机存取存储器(CDRAM);
● 第二代同步双倍速率动态随机存取存储器(DDRII);
● 直接内存总线动态随机存取存储器(DRDRAM)。

6、只读存储器(ROM)在元件正常工作的情况下,其中的代码数据将永久保存,并且不能够进行修改。ROM 一般应用于 PC 系统程序码和主机板 BIOS 上。

7、ROM可以分为以下 5 种:
● 掩模型只读存储器(MASK ROM);
● 可编程只读存储器(PROM);
● 可擦可编程只读存储器(EPROM);
● 电可擦可编程只读存储器(EEPROM);
● 快闪存储器(Flash Memory)。

8、总线是功能部件间传输信息的公共通信干线。总线的拓扑结构有星型树状环型总线型交叉开关型等 5 种。总线的类型可以按照计算机所传输的信息种类按连接部件进行划分。

9、按照计算机所传输的信息种类可以分为:数据总线地址总线控制总线

10、按连接部件分类为:
片内总线:内部总线,连接 ALU、寄存器、指令部件等芯片内部元件。
系统总线:内部总线,又称板级总线,连接微控制器/处理器,主存,I/O 接口。
局部总线:内部总线,连接少量组件用于交换数据。
通信总线:外部总线,又称外设总线,连接外部设备或外部系统。

11、看门狗为嵌入式系统提供必需的系统恢复能力,在系统发生软件问题和程序跑飞时重新启动系统。它的基本原理是由计数器自动计数,程序定期将其重置,如果系统卡死或程序跑飞,计数器溢出,进入中断处理,在设定时间间隔内,系统保留状态后复位重启。

二. 嵌入式系统软件

1、嵌入式操作系统(EOS)是指用于嵌入式系统的操作系统。与通用的操作系统相比,嵌入式操作系统具有:可剪裁性可移植性强实时性强紧凑性高质量代码强定制性标准接口强稳定性弱交互性强确定性操作简捷、方便较强的硬件适应性可固化性的特点

2、嵌入式操作系统分为面向控制、通信领域以及面向消费电子产品两类。

3、操作系统内核架构包括:
宏内核。用于管理用户程序和硬件间的系统资源,在宏内核中用户服务和内核服务在同一空间中实现,代码耦合度非常高,内核的功能组件代码可以互相调用。
微内核。微内核管理所有系统资源,在微内核中用户服务和内核服务在不同空间中实现,系统结构清晰,代码量少。

4、任务管理。任务是嵌入式操作系统调度最小单位,类似于计算机操作系统中进程的概念。任务有 3 种工作状态:执行状态就绪状态阻塞状态

5、嵌入式操作系统大都支持优先级抢占调度算法时间片轮转调度算法。在实时系统的任务调度中,存在大量的实时调度方法,大致可以分为:离线调度算法在线调度算法抢占调度算法非抢占调度算法静态调度算法动态调度算法

6、实时调度算法中还有强实时调度算法,具体可以分为:最早截止时间优先(EDF)调度算法最低松弛度优先(LLF)调度算法单调速率(RMS)调度算法(根据任务周期确定有限期,周期越短,优先级越高,这种算法被认为是最优的)

7、存储管理。存储管理的主要目的是解决多个用户使用主存的问题,存储管理方法主要包括分区分页分段段页式存储管理以及虚拟存储管理等。

8、任务间通信。它主要为操作系统的应用程序提供多种类型的数据传输任务同步/异步操作等手段。

9、嵌入式数据库具有嵌入式实时性移动性伸缩性的特点。嵌入式数据库可以按照如下方式分类:
● 按嵌入对象分为:软件嵌入数据库设备嵌入数据库内存数据库
● 按系统结构分为:嵌入数据库移动数据库小型 C/S 结构数据库
● 按存储位置分为:基于内存的数据库系统(典型产品是 eXtremeDB 嵌入式数据库)、基于文件的数据库(典型产品是 SQLite)、基于网络的数据库(B/S数据库、C/S数据库、云数据库等)。

10、数据库管理系统与嵌入式数据库使用对比

对比页数据库管理系统嵌入式数据库
操作用户允许非开发人员操作只允许应用程序访问和控制
访问控制数据与程序分离,便于访问控制应用程序负责访问和控制
发布部署独立安装、部署和管理与应用程序一同发布

11、除了具有与通用数据库相似的功能外,嵌入式数据库还具有的功能包括:足够高效的数据存储机制数据安全控制(锁机制)实时事务管理机制数据库恢复机制(历史数据存储)

12、嵌入式中间件是在嵌入式系统中处于嵌入式应用和操作系统之间层次的中间软件,其主要作用是对嵌入式应用屏蔽底层操作系统的异构性,常见功能有网络通信内存管理数据处理等。典型的嵌入式中间件有消息中间件分布式对象中间件

13、嵌入式系统软件开发环境的特点是:集成开发环境交叉开发开放式架构可扩展性可操作性可移植性可配置性实时性可维护性用户界面友好

三. 嵌入式系统软件架构设计方法

1、嵌入式系统软件架构设计方法有:基于架构的软件设计开发方法(ABSD)属性驱动的软件设计方法(ADD)实时系统设计方法(DARTS)

2、属性驱动的软件设计方法(ADD)是把一组质量属性(可用性、性能、安全性等)场景作为输入,利用对质量属性实现与架构设计之间的关系的了解(如体系结构风格、质量战术等)对软件架构进行设计的一种方法。采用 ADD 方法进行软件开发时,需要经历评审选择驱动因子选择系统元素选择设计概念实体化元素和定义接口草拟视图分析评价等 7 个阶段。

3、实时系统设计方法(DARTS)基于传统结构化分析方法,扩展了行为建模部分。DARTS 方法分为 5 个部分:用实时结构化分析方法开发系统规范将系统划分为多个并发任务定义任务间接口设计每个任务设计过程的成果

4、DARTS 方法的优势如下:
● 强调将系统分解为并发任务,并提供确认任务的标准。
● 提供定义任务间接口的指南。
● 强调用任务架构图的重要性。
● 提供从实时结构化分析规格到实时结构化设计的转换。

5、DARTS 方法的不足如下:
● DARTS 使用信息隐藏技术封装数据存储,封装性不好。
● 如果实时结构化分析阶段完成得不好,那么任务的结构化工作就会更加困难。

四. 鸿蒙操作系统

1、鸿蒙操作系统架构采用了分布式设计理念,实现了分布式软总线分布式设备系统的虚拟化分布式数据管理分布式任务调度 4 种分布式能力。

2、鸿蒙操作系统的架构是一种层次式架构,由内核层系统服务层应用框架层应用层组成
● 内核层。内核层采用微内核设计,内核层中的内核抽象层屏蔽多内核差异,对上层提供基础内核能力,如进程/线程管理内存管理文件系统网络管理外设管理等。驱动子系统则提供统一外设访问能力驱动开发框架驱动管理框架
● 系统服务层。属于核心能力集合的部分,为应用程序提供服务。
● 应用框架层。为应用服务提供多语言用户程序框架、能力框架,以及各种硬件服务对外开放的 API。
● 应用层。包括系统应用和第三方非系统应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

3、鸿蒙操作系统架构具有 4 个技术特性:
● 分布式架构用于终端操作系统,实现跨终端无缝协同体验。
● 确定时延引擎和高性能进程间通信技术,实现系统的流畅。
● 基于微内核架构,重塑终端设备的可信安全。
● 统一集成开发环境,一次开发,多端部署,实现跨终端生态共享。

五. 面向安全攸关系统的跨领域系统架构(GENESYS)

1、GENESYS 是一种跨领域的通用嵌入式架构平台。GENESYS 采用消息交换方式实现软硬件构件的抽象级别的提升,使得构件在接口规范基础上可以被重用,而不需要知道构件的内部实现。GENESYS 设计了故障或错误的隔离框架,构件在瞬态故障引起失效后,可选择性地重启和用构件复制来屏蔽瞬态和永久错误。同时 GENESYS 可以减少构件的功率需求或者在不需要时(功率门)完全关闭构件。因此 GENESYS 的出现解决了复杂性管理系统健壮性能量有效使用 3 个方面的挑战。

2、GENESYS 架构主要提供了 3 组服务,即领域无关服务领域专用服务应用专用服务

3、领域无关服务包括核心服务选择服务,如嵌入式系统中的全局时间和消息传输等服务为核心服务。信息安全服务外部存储器管理器或者 Internet 网关服务等属于选择服务。

4、领域专用服务是由领域特有的服务子集加上待开发领域特征的特定服务组合。GENESYS 架构从硬件、软件的观点遵循了面向构件的风格,分离了计算与通信,将计算构件和通信设施作为独立构件进行设计。

5、GENESYS 架构的主要特征及优势包括:
精确的构件定位。具体体现为简单化跨领域重用规模的经济型健壮性可降低系统集成工作量这 5 个特征。
开放性。体现为具有可集成性可升级性可扩展性遗产系统集成降低成本这 5 个特征。
三级集成。具有芯片级集成设备级集成系统级集成的集成。
分层的服务。体现具有可重用性领域定位工效经济型的特性
确定的核心。体现在具有及时性降低复杂性可测试性认证故障掩蔽的特征。
标准的互联集成。体现在对远程访问的保护降低集成工作难度常规人机交互具有安全性 4 个方面。

六. 物联网操作系统软件架构

1、物联网操作系统通常包括芯片层终端层边缘层云端层等多个层面内容。

2、物联网操作系统使用的软件以及技术主要有:开源物联网操作系统(FreeRTOS)公共服务组件定制性服务组件

3、公共服务组件有:网络协议外设支持可移植操作系统接口 POSIX

4、定制性服务组件有:消息队列遥测传输协议(MQTT)安全超文本传输协议(HTTPS)消息标准 PKCS #11 支持安全套件等。

5、物联网操作系统主要特征有:内核实时性内核尺寸伸缩性架构可扩展性高可靠性低功耗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIA——TCP协议详解

目录 1、TCP概念及协议头部格式 1.1TCP特点 1.2TCP协议协议头部格式 1.3字段进行介绍 1.3.1源端口和目的端口 1.3.2序号(seq) 1.3.3确认序号(ack) 1.3.4数据偏移 1.3.5标志位 1.3.6窗口 1.3.7校验和 1.3.8紧急指针 2、TCP的可靠性 2.1 TCP可靠性的保障 2.2排序机…

Android Studio实现内容丰富的安卓博客发布平台

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 项目编号078 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看博客列表 3.查看博客详情 4.评论博客, 5.…

Winform编程详解十:ListBox 列表框

一、属性介绍 1. (Name) 控件的对象标识符ID 2. Items 控件的数据集合 3. BackColor 控件的背景颜色 4. BorderStyle 控件的边框样式 5. Cursor 鼠标移过该控件显示的光标样式 6. Font 控件的字体样式 7. ForeColor 控件的文本颜色 8. UseWaitCursor 使用鼠标的等待光…

Llama 2: 深入探讨ChatGPT的开源挑战者

Llama 2:开源挑战者深度解析 摘要 本文深入探讨了Llama 2的能力,并提供了在Google Colab上通过Hugging Face和T4 GPU设置这个高性能大型语言模型的详细指南。Llama 2是由Meta与Microsoft合作开发的开源大型语言模型,旨在重新定义生成式人工…

HBase在表操作--显示中文

启动HBase后,Master和RegionServer两个服务器,分别对应进程为HMaster和HRegionServe。(可通过jps查看) 1.进入表操作 hbase shell 2.查看当前库中存在的表 list 3.查看表中数据(注:学习期间可用&#…

RUST egui部署到github

Dist 接上文,当用trunk serve编译部署后,工程目录下就会有一个dist目录,这个目录就是用来部署用的。 :) Github repo 创建一个github repo,这个repo的名称有固定格式要求,就是你自己的用户名…

将FastSAM中的TextPrompt迁移到MobileSAM中

本博文简单介绍了SAM、FastSAM与MobileSAM,主要关注于TextPrompt功能的使用。从性能上看MobileSAM是最实用的,但其没有提供TextPrompt功能,故而参考FastSAM中的实现,在MobileSAM中嵌入TextPrompt类。并将TextPrompt能力嵌入到MobileSAM官方项目提供的gradio.py部署代码中,…

【JVM】生产内存占用异常优化 (一)

记录一次 - 内存占用优化 某个导出,导出数据量过大总是导致OOM,但是根据需求,导出数据大小并没有那么大 按照导出数据的查询来看 SELECTg.inventory_code,g.visit_record_code,g.recovery_price AS transactionAmount FROM crm_goods g ...…

「Linux系列」Linux 文件与目录管理

文章目录 一、Linux 文件与目录管理案例 1: 创建文件和目录案例 2: 移动和重命名文件案例 3: 复制文件和目录案例 4: 删除文件和目录案例 5: 查看文件和目录信息案例 6: 更改文件权限案例 7: 创建符号链接案例 8: 查找文件案例 9: 使用通配符创建和删除文件案例 10: 创建具有特…

小迪安全41WEB 攻防-通用漏洞XMLXXE无回显DTD 实体伪协议代码审计

#知识点: 1、XML&XXE-原理&发现&利用&修复等 2、XML&XXE-黑盒模式下的发现与利用 3、XML&XXE-白盒模式下的审计与利用 4、XML&XXE-无回显&伪协议&产生层面 #思路点: 参考:https://www.cnblo…

Linux 块设备驱动

Linux 三大驱动分别是:字符设备驱动、块设备驱动、网络设备驱动。 块设备是针对存储设备的,比如 SD 卡、EMMC、NAND Flash、Nor Flash、SPI Flash、机械硬盘、固态硬盘等。因此块设备驱动其实就是这些存储设备驱动,块设备驱动相比字符设备驱…

CentOS 7 编译安装 Git

CentOS 7 编译安装 Git 背景来源删除旧版本 Git安装依赖包下载 Git 源代码检验相关依赖,设置安装路径编译安装添加 Git 环境变量重新加载配置文件查看版本号参考文献 背景来源 为什么要安装新版本呢? 因为无聊,哈哈哈,其实也不是…

Linux下进程的调度与切换

🌎进程的调度与切换 文章目录: 进程的调度与切换 进程切换 进程调度       活动状态进程队列       位图判断       过期队列 总结 前言: 在Linux操作系统中,进程的调度与切换是操作系统核心功能之一&#xff…

RabbitMq——direct交换器、fanout交换器、 topic交换器

direct交换器: @Configuration =发送= @Bean protected Queue queue(){ Queue queue = new Queue(“myQueue”) return queue; } amqpTemplate.convertAndSend("myQueue","这是发送的内容"); 发送RabbitMq 发送成功 =接收=消费者(新项目)…

【JACS】:用于稳定单原子分散的催化剂架构可对吸附到 Pt 原子、氧化 Pt 簇和 TiO2上金属 Pt 簇的 CO 进行特定位点光谱和反应性测量

摘要:氧化物负载的贵金属纳米粒子是广泛使用的工业催化剂。由于费用和稀有性,开发降低贵金属纳米颗粒尺寸并稳定分散物质的合成方案至关重要。负载型原子分散的单贵金属原子代表了最有效的金属利用几何结构,尽管由于合成均匀且稳定的单原子分…

spring boot唯一性判断不满足后,如何Transactional回滚

在Spring Boot中,如果需要在唯一性判断不满足时进行事务回滚,可以通过以下方式实现: 首先,确保你的方法添加了Transactional注解,这会使得该方法在一个数据库事务中执行,如果方法中出现任何异常&#xff0…

《论文阅读》E-CORE:情感相关性增强的移情对话生成 EMNLP 2023

《论文阅读》E-CORE:情感相关性增强的移情对话生成 EMNLP 2023 前言摘要模型架构图构建边的构建和初始化节点的初始化图更新情感相关性加强解码损失函数总结前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来…

IOS面试题object-c 121-125

121. 简述Category 在编译过后,是在什么时机与原有的类合并到一起的? ?1. 程序启动后,通过编译之后,Runtime 会进行初始化,调用 _objc_init。 2. 然后会 map_images。 3. 接下来调用 map_images_nolock。 4. 再然后就是 read_images,这个方法会读取所有的类的相关信息。…

2.3 性能度量

目录 2.3.1 错误路和精度 2.3.2 查准率,查全率与F1 2.3.4 代价敏感错误率与代价曲线 对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure).性能度量反映了任务需求,…

uwsgi+nginx+django 部署学习

收集静态文件及部署配置 DEBUG False STATICFILES_DIRS [os.path.join(BASE_DIR, "static"), ] STATIC_ROOT /data/static python3 manage.py collectstatic 收集静态文件,成功后可在STATIC_ROOT目录查看 安装依赖 pip3 install uwsgi django项目结…