嵌入式系统架构设计

本博客地址: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、物联网操作系统主要特征有:内核实时性内核尺寸伸缩性架构可扩展性高可靠性低功耗

<think>嗯,用户正在查询嵌入式软件系统的架构图示例或设计指南,这可能是为了学习或实际设计系统做准备。从用户的提问方式看,ta应该有一定技术背景,可能是嵌入式开发者、学生或系统架构师。用户之前提到过站内引用材料,这些材料很有价值。引用[2]和[4]特别相关,它们分别描述了嵌入式系统的分层架构特征(类似积木)和三层架构的具体实践(HAL层、中间件层、应用层)。引用[3]补充了Linux根文件系统的核心作用,引用[5]则强调了目录结构设计的重要性。用户的核心需求其实是两个层面:一是获取直观的架构图示例(视觉参考),二是理解设计原则(理论指导)。需要特别注意ta隐含的潜在需求——用户可能正在设计具体项目,所以会对“可定制化”的设计指南更感兴趣。在架构图设计方面,可以重点展示三层结构,并强调Linux系统的分层特性(如引用[2][3]所述),同时要突出硬件抽象层的关键隔离作用(呼应引用[4]的建议)。而在设计指南部分,应该整合模块化思想(引用[4])和目录规范(引用[5]),特别是回调函数这类实际开发技巧。考虑到用户可能需要直接套用模板,直接提供PPT资源链接也很重要。最后补充架构设计的核心原则会帮助用户举一反三,比如关于分层解耦的指导应该引用[2]的积木比喻,这能形象化表达嵌入式系统的模块化本质。</think> 以下是为您整理的嵌入式软件系统架构图示例及设计指南,结合分层架构、模块化实践和典型技术方案: --- ### 一、架构图示例(分层模型) ```mermaid graph LR A[硬件层] -->|驱动抽象| B[HAL硬件抽象层] B -->|API接口| C[中间件层] C -->|服务接口| D[应用层] subgraph 硬件层 A1(CPU/SoC) A2(存储器) A3(传感器/外设) end subgraph HAL层 B1(寄存器操作封装) B2(通信接口驱动) B3(时钟/中断管理) end subgraph 中间件层 C1(文件系统) C2(网络协议栈) C3(任务调度) end subgraph 应用层 D1(业务逻辑) D2(状态机) D3(控制算法) end ``` *注:此分层架构参考嵌入式系统“积木式”特征[^2]与三层设计原则[^4]* --- ### 二、架构设计核心指南 1. **分层解耦原则** - **硬件抽象层(HAL)** ✓ 封装寄存器操作(如`I2C_Write()`代替直接写寄存器) ✓ 统一外设接口(不同传感器统一调用`sensor_read()`) *示例代码(HAL层伪代码)*: ```c // hal_gpio.c void GPIO_Set(uint8_t pin, bool state) { volatile uint32_t* reg = GPIO_BASE + pin/8; *reg = (*reg & ~(1<<(pin%8))) | (state<<(pin%8)); } ``` 2. **模块化实现技巧** - **接口隔离**:模块间仅通过头文件暴露函数指针[^5] ```c // uart_driver.h typedef struct { int (*init)(uint32_t baudrate); int (*send)(const uint8_t* data, size_t len); } UART_Driver; ``` - **条件编译**:支持多硬件平台[^4] ```c #if defined(STM32F4) #include "stm32f4xx_hal_uart.c" #elif defined(ESP32) #include "esp32_uart.c" #endif ``` 3. **Linux嵌入式系统典型架构** ```mermaid graph BT A[应用进程] -->|系统调用| B[Linux内核] B --> C[根文件系统(roofs)] C -->|挂载点| D[设备驱动] D -->|操作| E[硬件设备] ``` ✓ Roofs包含必要组件:Shell工具库、动态库、配置文件等[^3] ✓ 通过`/proc` `sysfs`实现内核与用户空间交互 4. **资源文件推荐** - 📎 [系统架构图ppt.pptx](引用[1]资源链接) *含分层架构/通信流程/组件交互等可编辑图示模板* --- ### 三、设计关键考量点 1. **实时性要求** - 硬实时系统:需增加实时内核(如FreeRTOS调度层) 2. **扩展机制** - 回调函数实现事件驱动(参考中断服务例程)[^4] 3. **目录结构规范** ```bash project_root/ ├── hal/ # 硬件抽象层 ├── middleware/ # 协议栈/文件系统 ├── app/ # 业务逻辑 ├── configs/ # 板级配置 └── docs/ # 架构图/接口文档[^5] ``` --- ### 推荐学习路径 1. 阅读[^4]中的三层架构代码实例 2. 分析Linux IO系统框图[^2] 3. 通过PPT模板[^1]绘制自定义架构图 4. 实践根文件系统构建流程[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武天旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值