嵌入式开发的系统
更多
好的,嵌入式开发的系统包含多个层面,它是一个涵盖硬件、软件和实时操作系统(RTOS)的综合体系。以下是用中文对主要组成部分和概念的详细解释:
-
核心硬件平台:
- 微控制器: 这是绝大多数嵌入式系统的核心“大脑”。它是一个高度集成的芯片 (SoC),内部包含:
- 中央处理单元: 执行指令。
- 存储器:
- Flash 存储器: 用于存储程序代码(固件)和常量数据(掉电不丢失)。
- RAM: 用于存储程序运行时的变量和临时数据(掉电丢失)。
- 输入/输出接口: 与外部世界通信的关键通道。
- 通用输入/输出: 最基础的数字信号控制/读取引脚。
- 串行通信接口: UART, SPI, I2C, CAN, USB 等,用于连接传感器、存储器、显示器、通信模块等外设。
- 模数转换器: 将模拟信号(如温度、电压)转换为数字信号。
- 数模转换器: 将数字信号转换为模拟信号(用于控制电机、发声等)。
- 定时器/计数器: 精确计时、产生PWM信号(控制电机、LED亮度)、计数外部事件。
- 微处理器: 用于更复杂、需要更高性能的应用(如运行Linux的嵌入式设备)。通常需要外接RAM、Flash存储器和各种接口控制器。
- 专用数字信号处理器: 用于需要强大数字信号处理能力的应用(如音频处理、图像处理)。
- 现场可编程门阵列: 用于实现高度定制化的硬件逻辑,提供并行处理能力和极高的速度。
- 微控制器: 这是绝大多数嵌入式系统的核心“大脑”。它是一个高度集成的芯片 (SoC),内部包含:
-
嵌入式操作系统:
- 特点: 资源受限(占内存小、启动快)、可靠性高、实时性强(关键任务必须在严格时限内完成)。
- 主要类型:
- 裸机 / 无操作系统: 程序直接在硬件上运行,完全由开发者管理所有资源(如循环执行、中断处理)。适用于最简单任务。
- 实时操作系统: 核心是提供确定性(任务的执行时间可预测)。
- 硬实时: 任务必须在绝对截止时间前完成,否则系统失效(如汽车安全气囊控制)。
- 软实时: 尽可能在截止时间前完成,偶尔错过也可以接受(如流媒体播放)。
- 常见 RTOS: FreeRTOS, RT-Thread, Zephyr, uC/OS-II/III, VxWorks, ThreadX, QNX 等。
- 嵌入式 Linux: 功能强大、开源、社区支持好、硬件支持广,用于需要丰富功能、网络连接、复杂用户界面的设备(路由器、机顶盒、工业平板等)。内核需要裁剪以适配资源限制。
- 其他专用嵌入式 OS: 如嵌入式 Windows (Windows IoT Core, Windows Embedded Compact), Android (用于移动设备和平板)。
-
系统软件 & 中间件:
- 启动代码 / Bootloader: 系统上电后首先执行的代码,负责硬件初始化,加载主应用程序(通常从Flash复制到RAM),有时也处理固件更新。
- 板级支持包: 介于底层硬件(如CPU、外设)与上层操作系统或应用之间的软件层。它包含:
- 硬件初始化代码 (CPU时钟、内存控制器、外设控制寄存器)。
- 设备驱动程序 (操作具体硬件如GPIO、UART、ADC、SPI等的接口函数)。
- 引导操作系统的机制 (如果有)。
- 中间件:
- 文件系统 (FatFS, LittleFS等): 管理Flash存储设备上的数据。
- 网络协议栈 (TCP/IP, Wi-Fi, Bluetooth, LoRaWAN, MQTT, CoAP等): 实现网络通信功能。
- 图形用户界面库 (如LVGL, Qt for Embedded Linux): 创建嵌入式设备的界面。
- 数据库引擎 (如SQLite): 存储和检索复杂数据。
- 加密库: 提供数据传输和存储的安全性。
- 音频/视频编解码库: 处理音视频数据。
-
应用软件 (固件):
- 这是最终实现产品功能的用户编写的软件。
- 运行在RTOS的任务(Task)上,或者在裸机环境下通过主循环配合中断服务程序实现。
- 负责:
- 读取传感器数据。
- 根据输入和内部逻辑进行决策和控制。
- 驱动执行器(电机、继电器、LED等)。
- 处理通信(与其他设备、云端、用户)。
- 实现用户界面交互。
- 执行核心业务逻辑。
-
开发工具链:
- 集成开发环境: 集代码编辑、编译、调试于一体的软件。常用如:
- 通用/开源: Eclipse (配合CDT插件、GNU ARM Eclipse插件等), VSCode。
- 商业: Keil MDK-ARM (主要用于ARM Cortex-M), IAR Embedded Workbench (广泛支持多种MCU), STM32CubeIDE (ST专用,基于Eclipse)。
- 编译器: 将高级语言代码(主要是C、C++,有时也用Ada, Rust)转换成目标处理器指令的机器码。
- GNU GCC (arm-none-eabi-gcc): 开源首选。
- ARM Compiler (ARMCC, ARMClang): ARM官方优化编译器。
- IAR C/C++ Compiler。
- LLVM Clang。
- 调试器/仿真器:
- 硬件调试器: 如ST-Link, J-Link, ULINKpro。硬件连接到目标板的调试接口(通常是通过JTAG或SWD协议),用于下载程序、控制运行、设置断点、查看内存变量。需要IDE配合使用。
- 片上调试接口: JTAG (传统标准), SWD (ARM设计,线少,更常用)。
- 构建系统: 自动化编译和链接过程。如Makefile, CMake。
- 仿真器/模拟器: QEMU (模拟硬件运行程序用于快速测试),开发板模拟器。
- 集成开发环境: 集代码编辑、编译、调试于一体的软件。常用如:
-
交叉编译:
- 嵌入式开发的一个关键特点是“交叉编译”。开发者在一台强大的开发主机(通常是x86的PC或服务器)上编写和编译代码,但生成的程序是在目标嵌入式平台(通常是ARM, RISC-V等架构)上运行。编译器(如arm-none-eabi-gcc)是专门针对目标平台生成代码的。
关键系统特性和设计考量:
- 实时性: 对事件的响应必须在可预测的时限内完成。RTOS和中断系统设计对此至关重要。
- 资源受限: CPU算力、内存大小、存储空间、功耗预算都有限。代码和数据结构要高效、精简。
- 可靠性/鲁棒性: 许多嵌入式系统要求长时间无故障运行。设计需要考虑看门狗定时器、错误处理、冗余机制。
- 低功耗: 对电池供电设备尤为关键。利用处理器的睡眠模式、低功耗外设、优化软件行为降低功耗。
- 专用性: 系统通常为单一或有限的一组特定任务高度优化。
- 成本敏感: 选择元器件、操作系统授权都需要考虑BOM成本。
总结:
一个完整的嵌入式开发系统不是指单一软件,而是一个紧密结合的软件-硬件协同体系。它始于物理的硬件平台(微控制器/处理器+外设),通过基础软件(Bootloader, BSP, 驱动程序)管理硬件资源,再通过核心的嵌入式操作系统(RTOS或Linux)提供任务调度、资源管理、通信等核心服务,上层应用软件利用OS的API和各种中间件功能实现最终的产品功能。整个开发过程依赖于强大的交叉开发工具链。理解各个层级之间的关系以及对资源、实时性、可靠性等的约束,是嵌入式系统设计与开发的关键。
希望这个详细的中文解释对您有所帮助!
嵌入式开发(一):嵌入式开发新手入门
本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC
资料下载
佚名
2021-10-14 10:58:31
如何快速熟练掌握嵌入式开发嵌入式开发工程师需要做哪些事情
怎样才能快速熟练掌握嵌入式开发呢?成熟的嵌入式开发工程师需要做哪些事情?是很多新手朋友想要了解的,那么今天我们来简单的介绍一下
资料下载
佚名
2019-05-09 18:17:00
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览