STM32 —— 嵌入式系统、通用计算机系统、物联网三层架构

目录

一、嵌入式系统的概念

二、通用计算机系统与嵌入式系统的比较

用途

硬件

软件

性能与功耗

开发与维护

三、嵌入式系统与物联网的关系

四、物联网的三层架构

1. 感知层(Perception Layer)

2. 网络层(Network Layer)

3. 应用层(Application Layer)

三层架构的协作流程


一、嵌入式系统的概念

        嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及应用程序等4部分组成,并且分为4个层次:硬件层、中间层、软件层和应用层。

        嵌入式系统是一种专用的计算机系统,通常嵌入在更大的设备或系统中,用于执行特定的任务。它通常由硬件和软件组成,硬件包括处理器、存储器、输入/输出接口等,软件则包括操作系统(通常是实时操作系统RTOS)和应用程序。嵌入式系统的设计目标是高效、可靠、实时响应,并且通常具有低功耗、小体积和低成本的特点。

二、通用计算机系统与嵌入式系统的比较

  1. 用途

    • 通用计算机系统:用于多种用途,如办公、娱乐、编程等,具有较强的通用性和灵活性。

    • 嵌入式系统:用于特定任务,如家电控制、汽车电子、工业自动化等,具有专用性和针对性。

  2. 硬件

    • 通用计算机系统:通常使用高性能的通用处理器(如Intel、AMD),具有较大的存储容量和丰富的外设接口。

    • 嵌入式系统:通常使用低功耗、专用的处理器(如ARM、MIPS),存储容量较小,外设接口根据具体需求定制。

  3. 软件

    • 通用计算机系统:运行通用操作系统(如Windows、Linux),支持多任务、多用户操作,软件生态丰富。

    • 嵌入式系统:通常运行实时操作系统(RTOS)或无操作系统,软件针对特定任务优化,资源占用少。

  4. 性能与功耗

    • 通用计算机系统:追求高性能,功耗较高。

    • 嵌入式系统:追求低功耗和高效率,性能满足特定需求即可。

  5. 开发与维护

    • 通用计算机系统:开发工具和环境成熟,维护相对简单。

    • 嵌入式系统:开发工具和环境可能较为复杂,维护需要考虑硬件和软件的紧密结合。

通用计算机系统嵌入式系统
硬件主机(CPU、主板、内存条、显卡等)MCU/MPU(将CPU、存储器、I/O集成在一个芯片上,形成芯片级计算机)
硬件显示器(屏幕尺寸大,分辨率高)显示屏(LCD/OLED,尺寸小)
软件相对独立,用户可安装、卸载集成/固化在芯片中,用户不能更改
操作系统Windows、Mac OS不开源,内核不可裁剪μC/OS-II、Linux、WinCE、Tiny OS、Android等,内核可裁剪

三、嵌入式系统与物联网的关系

        物联网(IoT)是指通过互联网将各种设备、传感器、系统等连接起来,实现数据交换和智能控制。嵌入式系统在物联网中扮演着核心角色,具体体现在以下几个方面:

  1. 终端设备:物联网中的终端设备(如智能家居设备、工业传感器、可穿戴设备)通常都是嵌入式系统,负责数据采集、处理和传输。

  2. 实时性与可靠性:嵌入式系统的实时性和可靠性是物联网应用的重要保障,特别是在工业自动化和智能交通等领域。

  3. 低功耗与小型化:物联网设备通常需要长时间运行且体积小巧,嵌入式系统的低功耗和小型化特点非常适合这些需求。

  4. 通信与协议:嵌入式系统通常集成了各种通信模块(如Wi-Fi、蓝牙、Zigbee等),支持物联网中的多种通信协议,实现设备间的互联互通。

  5. 数据处理与边缘计算:随着物联网的发展,嵌入式系统不仅负责数据采集,还承担了部分数据处理和边缘计算的任务,减少云端负担,提高响应速度。

四、物联网的三层架构

        物联网(IoT)的三层架构是物联网系统的基本框架,通常分为感知层网络层应用层。每一层都有其特定的功能和组成部分,共同协作实现物联网的数据采集、传输和处理。以下是三层架构的详细说明:


1. 感知层(Perception Layer)

        感知层是物联网的最底层,主要负责数据采集物理世界的感知。它是物联网与物理世界直接交互的部分。

  • 功能

    • 采集物理世界的数据(如温度、湿度、光照、位置等)。

    • 控制执行器(如开关、电机等)以执行特定操作。

    • 将采集的数据转换为数字信号,供上层处理。

  • 主要设备

    • 传感器:用于采集环境数据(如温度传感器、湿度传感器、加速度传感器等)。

    • 执行器:用于执行操作(如电机、继电器、LED灯等)。

    • 嵌入式设备:如单片机(MCU)、嵌入式处理器等,负责控制传感器和执行器。

    • RFID标签:用于物体识别和跟踪。

    • 摄像头:用于图像或视频采集。

  • 特点

    • 低功耗、小型化、低成本。

    • 通常部署在物理环境中,可能面临恶劣条件(如高温、高湿、震动等)。


2. 网络层(Network Layer)

        网络层是物联网的中间层,主要负责数据传输通信。它将感知层采集的数据传输到应用层,同时实现设备之间的互联互通。

  • 功能

    • 提供可靠的数据传输通道。

    • 支持多种通信协议和网络技术。

    • 实现设备与云端、设备与设备之间的通信。

  • 主要技术

    • 有线通信:如以太网、RS-485等。

    • 无线通信

      • 短距离通信:蓝牙(Bluetooth)、Zigbee、Wi-Fi、Z-Wave等。

      • 长距离通信:LoRa、NB-IoT、4G/5G等。

    • 网络协议

      • 互联网协议:TCP/IP、HTTP、MQTT、CoAP等。

      • 物联网专用协议:如MQTT-SN、AMQP等。

  • 特点

    • 高可靠性、低延迟、广覆盖。

    • 支持海量设备接入和数据传输。


3. 应用层(Application Layer)

应用层是物联网的最上层,主要负责数据处理分析和应用。它将网络层传输的数据转化为有价值的信息,并提供具体的物联网服务。

  • 功能

    • 数据存储、处理和分析。

    • 提供用户界面和交互功能。

    • 实现具体的物联网应用(如智能家居、智慧城市、工业自动化等)。

  • 主要技术

    • 云计算:用于大规模数据存储和计算。

    • 大数据分析:用于从海量数据中提取有价值的信息。

    • 人工智能(AI):用于数据预测、模式识别和智能决策。

    • 用户界面:如移动应用、Web应用、仪表盘等。

  • 典型应用场景

    • 智能家居:远程控制家电、安防监控。

    • 智慧城市:智能交通、环境监测。

    • 工业物联网(IIoT):设备监控、预测性维护。

    • 智慧医疗:远程医疗、健康监测。

  • 特点

    • 高度定制化,根据不同需求提供特定服务。

    • 强调数据的安全性和隐私保护。


三层架构的协作流程

  1. 感知层采集物理世界的数据(如温度、湿度等)。

  2. 网络层将采集的数据通过有线或无线方式传输到云端或本地服务器。

  3. 应用层对数据进行分析和处理,提供具体的服务(如报警、控制、决策支持等)。

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

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

相关文章

卡码网25题——掌握ACM输入输出方式(15 至 18)

刷题小记: 本期涉及ACM模式下栈和链表的构建与使用,值得学习。 卡玛网15.神秘字符(卡玛网15.神秘字符) 题目分析: 若给定2行字符串,其中第一个串的长度为偶数,现要求把第二个串插入到第一个…

前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” !!!

🚀 前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” 🌟 嘿,技术冒险家们!👋 今天我们要聊一个开发中常见的“坑”:前端传来的 JSON 参数字段名和后端对象字段名不一致,会发生…

python中使用单例模式在整个程序中只创建一个数据库连接,节省资源

示例代码: from loguru import logger from pymongo import MongoClient from pymongo.errors import ConnectionFailurefrom llm_engineering.settings import settingsclass MongoDatabaseConnector:_instance: MongoClient | None Nonedef __new__(cls, *args,…

AI小白的第六天:必要的数学知识(一)

在学习的过程中,不管是上代码还是理论学习,其中都掺杂了一些数学知识。俗话说“磨刀不误砍柴工”,而我已经“误了砍柴功”了,现在变成了“亡羊补牢,为时不晚”。 线性代数 线性代数是数学的一个分支,主要…

【Linux】Bash是什么?怎么使用?

李升伟 整理 什么是 Bash? Bash(Bourne Again Shell)是一种 命令行解释器(Shell),广泛用于 Unix 和 Linux 操作系统。它是 Bourne Shell(sh) 的增强版,提供了更多的功能…

Qt Creator入门

1.创建项目 选择创建项目-Application(Qt)-Qt Widgets Application-修改名称即可 默认创建有窗口类,myWidget,基类有三种选择:QWidget,QMainWindow,QDialog 注意: 名称和创建路径不能有中文、…

C语言经典代码练习题

1.输入一个4位数&#xff1a;输出这个输的个位 十位 百位 千位 #include <stdio.h> int main(int argc, char const *argv[]) {int a;printf("输入一个&#xff14;位数&#xff1a;");scanf("%d",&a);printf("个位&#xff1a;%d\n"…

cls(**dict(data, id=id))灵活地从一个字典生成实例,同时确保某些关键字段(如 id)被正确设置或覆盖

示例代码&#xff1a; classmethoddef from_mongo(cls: Type[T], data: dict) -> T:"""Convert "_id" (str object) into "id" (UUID object)."""if not data:raise ValueError("Data is empty.")id data.pop…

MyBatis XMLMapperBuilder 是如何将 SQL 语句解析成可执行的对象? 如何将结果映射规则解析成对应的处理器?

1. XMLMapperBuilder 如何将 SQL 语句解析成可执行对象 (MappedStatement): XMLMapperBuilder 解析 <select>, <insert>, <update>, <delete> 等 SQL 语句元素时&#xff0c;并不仅仅是简单地读取 SQL 文本&#xff0c;而是要将 SQL 语句和相关的配置…

咖啡点单小程序毕业设计(JAVA+SpringBoot+微信小程序+完整源码+论文)

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着社会的快速发展和…

003-掌控命令行-CLI11-C++开源库108杰

首选的现代C风格命令行参数解析器! &#xff08;本课程包含两段教学视频。&#xff09; 以文件对象监控程序为实例&#xff0c;五分钟实现从命令行读入多个监控目标路径&#xff1b;区分两大时机&#xff0c;学习 CLI11 构建与解析参数两大场景下的异常处理&#xff1b;区分三…

【leetcode hot 100 124】二叉树中的最大路径和

解法一&#xff1a;&#xff08;递归&#xff09;考虑实现一个简化的函数 maxGain(node)&#xff0c;该函数计算二叉树中的一个节点的最大贡献值&#xff0c;具体而言&#xff0c;就是在以该节点为根节点的子树中寻找以该节点为起点的一条路径&#xff0c;使得该路径上的节点值…

谱分析方法

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 ima 知识库 知识库广场搜索&#…

在图像/视频中裁剪出人脸区域

1. 在图像中裁剪人脸区域 import face_alignment import skimage.io import numpy from argparse import ArgumentParser from skimage import img_as_ubyte from skimage.transform import resize from tqdm import tqdm import os import numpy as np import warnings warni…

【软考-架构】11.3、设计模式-新

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 &#x1f4af;考试真题题外话 项目中的应用 在实际项目中&#xff0c;我应用过多种设计模式来解决不同…

使用Redis如何实现分布式锁?(超卖)

分布式锁概念 在多线程环境下&#xff0c;为了保证数据的线程安全&#xff0c;锁保证同一时刻&#xff0c;只有一个可以访问和更新共享数据。在单机系统我们可以使用 synchronized 锁、Lock 锁保证线程安全。 synchronized 锁是 Java 提供的一种内置锁&#xff0c;在单个 JVM …

Linux的Shell编程

一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时&#xff0c;需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说&#xff0c;工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护&#xff0c;比如编写一个…

使用React和google gemini api 打造一个google gemini应用

实现一个简单的聊天应用&#xff0c;用户可以通过输入问题或点击“Surprise me”按钮获取随机问题&#xff0c;并从后端API获取回答。 import { useState } from "react"; function App() {const [ value, setValue] useState(""); // 存储用户输入的问题…

深入探讨TK矩阵系统:创新的TikTok运营工具

TK矩阵的应用场景 TK矩阵系统适用于多个场景&#xff0c;尤其是在以下几个方面有显著优势&#xff1a; 批量账号管理与内容发布&#xff1a;对于需要管理多个TikTok账号的内容创作者或营销人员&#xff0c;TK矩阵提供了高效的账号管理工具&#xff0c;支持批量发布视频、评论、…

MTK Android12 应用在最顶端时,禁止拉起其他某个应用(一)

1、需求 近期&#xff0c;客户要求应用在最顶端时&#xff0c;禁止拉起其他某个应用2、解决方法 diff --git a/frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java b/frameworks/base/services/core/java/com/android/server/wm/ActivityStarte…