嵌入式系统的结构组成是怎样的?详细分析
嵌入式系统针对的应用场景如此之多,并带来差异性极大的设计指标要求(功能性能、可靠性、成本、功耗)。
嵌入式系统的结构组成是一个软硬件协同设计的复杂体系,通常可以分为硬件层和软件层两大核心部分。以下进行详细分析:
一、硬件层
硬件层是嵌入式系统的基础,负责执行指令、存储数据、与外界进行物理交互。主要包括以下关键组件:
-
中央处理器 (CPU) / 微处理器 (MPU) / 微控制器 (MCU):
- 核心:执行指令、处理数据的“大脑”。
- 类型:
- 微控制器 (MCU):最常用,集成CPU核心、存储器、I/O接口于单一芯片(如STM32, PIC, ESP32),成本低、功耗小。
- 微处理器 (MPU):需要外接存储器、外设控制器,性能更强(如ARM Cortex-A系列,运行Linux)。
- 数字信号处理器 (DSP):专为高速信号处理(音频、视频)优化。
- 专用集成电路 (ASIC) / 现场可编程门阵列 (FPGA):针对特定任务高度定制化设计。
- 架构:ARM(主导地位)、RISC-V(新兴开源)、MIPS、x86、PowerPC等。
-
存储器 (Memory):
- 易失性存储器 (断电数据丢失):
- RAM (随机存取存储器):程序运行时的临时数据存储。
- SRAM:高速,成本高,常用作高速缓存。
- DRAM:容量大,成本低,常用作主存(需刷新)。
- 片上RAM (On-Chip RAM):集成在MCU内部的快速RAM。
- 非易失性存储器 (断电数据保留):
- ROM (只读存储器):存储固化程序(如Bootloader),早期用掩膜ROM。
- Flash 存储器:当前主流存储介质。
- Nor Flash:可直接执行代码 (XIP - Execute In Place),存储启动代码、操作系统。
- NAND Flash:容量大,成本低,存储用户数据、文件系统(需通过驱动程序访问)。
- EEPROM:可字节擦写,存储配置参数、校准数据。
- 新兴技术:ReRAM, FRAM, MRAM等。
- 易失性存储器 (断电数据丢失):
-
输入/输出接口 (I/O Interfaces):
- 通用I/O (GPIO):最基本的数字信号输入/输出引脚。
- 通信接口:
- 串行通信:UART(通用异步收发器,用于调试、连接模块)、I²C(内部低速,主从设备)、SPI(高速全双工,主从设备)、CAN(汽车、工业总线)、USB(连接PC、设备)、Ethernet(网络连接)。
- 并行通信:传统方式,如连接外设总线(PCI, ISA - 在嵌入式领域较少)。
- 模拟接口:ADC(模数转换器,采集传感器信号)、DAC(数模转换器,输出控制信号)。
- 人机交互接口:键盘、触摸屏控制器、LED、LCD控制器。
- 定时器/计数器 (Timer/Counter):产生精确时间延迟、测量时间间隔、生成PWM波形(控制电机、LED亮度)。
- 看门狗定时器 (Watchdog Timer, WDT):硬件看门狗,防止软件死锁。
-
专用外设控制器:
- DMA 控制器:不经过CPU直接在外设与存储器间传输数据,提高效率。
- 中断控制器:管理不同外设的中断请求,让CPU能及时响应关键事件。
- PWM 控制器:高级定时器功能,专用于脉宽调制。
- 以太网控制器、USB控制器、CAN控制器等。
-
传感器和执行器 (与外部世界交互):
- 传感器输入:温度、压力、加速度计、摄像头(视频输入)、麦克风(音频输入)等。
- 执行器输出:电机、继电器、LED、显示器、扬声器等。
-
电源管理与时钟电路:
- 电源管理单元 (PMU):为不同组件提供不同电压,管理休眠、唤醒以降低功耗。
- 时钟源/振荡器 (Oscillator):提供系统时钟基准(晶振/时钟电路)。
二、软件层
软件层控制硬件行为,实现系统功能,决定了系统的智能性和灵活性。典型层次:
-
硬件抽象层 (HAL) / 板级支持包 (BSP)
- 功能:位于软件栈最底层,直接操作硬件寄存器。向上层提供统一的硬件访问接口(API)。
- 内容:芯片初始化代码、启动代码(Boot Startup)、各种外设(GPIO, UART, SPI, ADC等)的底层驱动。
- 目的:屏蔽硬件细节,使上层软件(如OS)或应用不必关心具体硬件型号,提高可移植性。
-
引导加载程序 (Bootloader):
- 功能:CPU上电复位后执行的第一段代码。负责基本的硬件初始化(时钟、内存),自检,加载操作系统内核(或应用程序)到内存并跳转执行。
- 功能扩展:实现固件更新模式(通过串口、USB、网络升级固件)。
-
实时操作系统 (RTOS) / 嵌入式操作系统 (Embedded OS) / 裸机 (Bare Metal):
- 裸机运行:适用于简单任务。软件由一个无限循环的主函数构成,调用驱动程序和服务。
- 优点:简单、可控、资源开销极小。
- 缺点:复杂性低,任务管理、通信、同步困难。
- 实时操作系统 (RTOS):嵌入式开发主流。提供核心服务:
- 任务调度:基于优先级(如FreeRTOS, µC/OS-II)、时间片轮转等方式管理并发任务。
- 同步与通信:信号量、互斥量、消息队列、邮箱、事件标志。
- 内存管理:堆/栈管理,可能支持内存保护(MPU)。
- 时间管理:时钟滴答、软件定时器。
- 中断管理:中断处理程序封装。
- 常用RTOS: FreeRTOS, Zephyr, RT-Thread, µC/OS, VxWorks, QNX等。
- 嵌入式操作系统 (Embedded OS):更复杂的系统(带文件系统、网络协议栈、高级GUI)。
- 嵌入式Linux (如Buildroot, Yocto Project):功能最丰富,资源消耗也最大(通常搭配MPU)。
- Android Things, Windows IoT Core:特定领域定制化的OS。
- 裸机运行:适用于简单任务。软件由一个无限循环的主函数构成,调用驱动程序和服务。
-
中间件 (Middleware):
- 功能:位于操作系统和应用软件之间,提供可复用的通用服务组件。
- 主要组件:
- 文件系统:管理存储设备上的数据(FAT32, LittleFS, SPIFFS, JFFS2等)。
- 网络协议栈:实现TCP/IP, UDP, HTTP, MQTT, CoAP等网络通信(如LwIP)。
- 数据库引擎:轻量级数据库(如SQLite)。
- 图形用户界面 (GUI):库支持(如LVGL, Qt for Embedded Linux, Embedded Wizard)。
- 高级算法库:安全(TLS/SSL)、音视频编解码库等。
-
应用软件层 (Application Software):
- 功能:实现最终产品功能和业务逻辑的核心部分(如智能手环计步、空调温度控制、车载影音娱乐)。
- 开发:通常用C/C++编写,在RTOS任务或Linux进程/线程中运行。也可能使用解释型语言(如MicroPython, Lua)或运行虚拟机(如Java ME)。
关键点总结与设计考量
- 强耦合性:软硬件需紧密协同设计,针对特定应用优化。
- 资源受限:CPU性能、内存大小、存储空间、功耗都需精打细算。
- 实时性:许多系统需保证确定性响应(硬实时或软实时)。
- 可靠性:工业、医疗、汽车等领域要求高可靠性和长使用寿命。
- 功耗敏感:电池供电设备尤其关注低功耗设计(休眠模式、功耗管理)。
- 成本敏感:大批量生产,器件选型对成本影响巨大。
- 开发工具链:交叉编译器、调试器(JTAG/SWD)、仿真器、IDE(如Keil MDK, IAR EWARM, STM32CubeIDE, VSCode)至关重要。
示例(智能温控器):
- 硬件:MCU(如STM32F4)+ 温度传感器(I²C接口) + LCD显示屏(SPI接口) + 继电器(GPIO控制) + 按键(GPIO) + Wi-Fi模块(UART连接)。
- 软件:
- BSP/HAL:STM32 HAL库驱动GPIO、I²C、SPI、UART。
- RTOS:FreeRTOS 管理任务(温度读取、显示刷新、网络通信、按键处理)。
- 中间件:LwIP实现TCP/IP,MQTT客户端连接云平台,LittleFS存储配置。
- 应用:读取温度值、PID算法计算控制量、显示信息、处理用户设置、通过MQTT上报数据和接收远程指令、控制继电器开关加热器。
嵌入式系统的结构是其功能实现的基础,理解各组成部分及其协同工作是进行高效、可靠嵌入式系统设计和开发的关键。
使用ARM9和Linux设计嵌入式PLC系统的详细资料说明
将嵌入式技术与PLC技术相结合提出了一种基于ARM9的嵌入式PLC系统的实现方法,给出了以
资料下载
佚名
2020-09-07 17:03:00
嵌入式ARM处理有哪些优势详细分析
随着物联网、人工智能等新兴技术的发展,各种新型微处理器的出现和应用的不断深化,嵌入式系统在后PC时代得到了空前的发展。对于如今大量出现的32位嵌入式
资料下载
刘洋
2019-07-11 17:40:00
详细分析了VTIM和VMIN的功能
上一篇文章中,我们详细分析了VTIM和VMIN的功能,《嵌入式Linux 串口编程系列2--termios的VMIN和VTIME深入理解》 也明白了这两个参数设计的初衷和使用方法,接下来我们 就
详细分析stm32f10x.h
每日开讲---学习STM32不得不看的剖析(详细分析stm32f10x.h)摘要: 学习STM32不得不看的剖析(详细分析stm32f10x.h)。/**这里是STM32比较重要的头文件***************
嵌入式产品开发流程详细分析
嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程。但是,与普通电子产
2019-02-21 15:55:27
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 传感器常见类型有哪些?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机