当前位置: 首页 > news >正文

STM32内部是怎么工作的

STM32是怎么工作的

  • 1 从孩子他妈说起
  • 2 早期计算机的组成
    • 2.1 五大元件
      • (1)第一个出场的是电容元件
      • (2)第二个出场的是二极管
      • (3)第三个出场的是电阻元件
      • (4)第四个出场的是电感
      • (5)第五个出场的是三极管
    • 2.2 早期的计算机组成
    • 2.3 走入集成电路时期

1 从孩子他妈说起

  现在的电子信息系统绝大部分都是智能电子信息系统,所谓智能,是指系统的硬件设计当中,有CPU(central processing unit),以CPU为核心设计控制器,控制系统的运行。

  同时,对于电子信息系统而言,其需要感知外部物理环境。

  可以“感知外部环境”的装备,名曰:传感器,即sensor。

  让我们学究一点,朋友们,去查查sensor的定义:
在这里插入图片描述
  光照强度、温度、压力、速度、角速度,等等,都属于物理量,

  传感器就是这个“系统”的眼睛,

  “系统”的大脑是计算机,大脑的核心是“CPU”,也就也是中央处理单元。

  然而,对于CPU而言,它只能识别高低电平,我们将低电平记作0,高电平记作1。

  因此,传感器需要将物理量转换为电量:
在这里插入图片描述
  但是,传感器输出的电量通常是毫伏(mV)级的,我们需要将其通过放大器放大到伏特(V)级。之后,我们要将放大后的信号,经过一定的滤波电路进行滤波。这个滤波电路可以是有源滤波,可以是无源滤波,这些都是模拟电子电路的知识点,同学们可以去自行复习。
  我们将放大和滤波电路,称之为 “前端调理电路”
在这里插入图片描述
注意:上图中,我们在调理电路的输出端,加了测试点,这里的意思是,在画PCB印制电路板时,在调理电路的输出端,要留出一定的空间,方便测试,也就是能够放下示波器的夹子。

  由于调理电路出来的是模拟连续信号,而CPU只能处理数字信号,因此,需要设计一个模块,将模拟信号转换为数字信号,也就是 Conversion of analog signals to digital signals,我们可以简记为AD转换。A就是analog,D就是digital。
  AD转换模块,有两个重要指标:转换时间、转换精度。要根据设计需要进行选择合适AD转换模块。
  AD转换模块输出的数字量,可以送到CPU,如下:
在这里插入图片描述
  根据实际需要,前端调理电路AD转换电路,必须要受CPU的控制,CPU要告诉AD转换电路什么时候开始转换数据,同时要调整前端调理电路的放大倍数等关键参数。
  因此,框架图进一步晚上如下:
在这里插入图片描述
  AD转换电路,将数据输送给CPU后,CPU经过处理,输出的控制信号也是数字信号,因此需要将数字信号转换为模拟连续信号,即 Convert digital signals into analog continuous signals,记作,DA转换电路。

  DA转换电路输出的信号,还要再进行放大,放大后的信号,还要滤波,这个部分,我们称之为后端调理电路
在这里插入图片描述
  大部分时候,CPU输出的数据,要显示出来,如下:
在这里插入图片描述
  上图,就是电子信息系统的基本原理。

2 早期计算机的组成

2.1 五大元件

  那CPU里面是什么呢?
  要把这件事说清楚,还是从电子元器件讲起……

(1)第一个出场的是电容元件

  时间可以追溯到1745年,清乾隆十年,英国 or 德国,说法不一,具体可以看看这个文章,谁发明了电容

(2)第二个出场的是二极管

  谁发明的?同学们去看这篇文章,WHO INVENTED THE DIODE 谁发明了二极管。大家记住,时间+地点即可,时间:1873年,英国,那一年是 清朝 同治十二年。到今天大约是150年。

(3)第三个出场的是电阻元件

  1885年英国C.布雷德利发明模压碳质实芯电阻器;

(4)第四个出场的是电感

  术语“电感”是1886年由奥利弗·赫维赛德命名[1]。通常自感是以字母“L”标记,以纪念物理学家海因里希·冷次[2][3]。互感是以字母“M”标记,是其英文(Mutual Inductance)的第一个字母。采用国际单位制,电感的单位是亨利(Henry),标记为“H”,以纪念科学家约瑟·亨利。与其他物理量的关系:一亨利等同一韦伯除以一安培(1 H = 1 Wb/A)。

(5)第五个出场的是三极管

  1906年,美国,李·德富雷斯特。三极管简介,发明了第一个电子放大器。到了20世纪60年代,MOS诞生了,详情见MOS的历史。

2.2 早期的计算机组成

  朋友们,想象一下,时空穿越,我们回到了上世纪中叶。我们手里的东西就是上面说的电子元器件,现在让你来制造一个计算机,或者电脑,你会怎么办?
  首先,这个“电脑”能思维,具体来说,就是运算。预算包括什么呢?加减乘除算数运算,也就是 arithmetic operation。还要会什么呢?与、或、非、异或等逻辑运算,也就是 Logical operation。因此,我们首先要设计既能算数运算,又能逻辑运算的算术逻辑单元 arithmetic Logical Unit, ALU。(话说,1945年数学家冯诺伊曼在一篇介绍被称为EDVAC的一种新型电脑的基础构成的报告中提出ALU的概念。)
  如何设计ALU,这基本是数电的知识。

  同学们,其实,ALU的作用就是一个算盘,那么问题来了,算盘听谁指挥呢?控制器
在这里插入图片描述
我们需要再设计一部分控制ALU的电路,这部分电路就叫控制器
在这里插入图片描述
  由控制器去控制ALU何时去运算,以及如何运算。
  自然,我们就会想到,ALU对哪些数据做运算呢?或者说,运算的数据从哪来呢?
  需要运算的数据在一个地方存着,这个地方就叫存储器。 由控制器,控制存储器,将数据输送到ALU。
在这里插入图片描述
  ALU运算后的数据,也可以存在存储器,所以:
在这里插入图片描述
  同时,也有可能,ALU要处理 的数据来自由外部,由外部的输入设备输送数据给ALU,同时,输入设备也可以将数据传送到存储器。
在这里插入图片描述
  输入是input,输出是output,我们将输入输出设备统一称为I/O设备。也就是说对于输入设备,称之为 I/O设备,对于输出设备,也称之为 I/O设备,而不是再去说 I 设备或 O 设备。
  让我们再加上输出设备到框架图,不过多解释了。
在这里插入图片描述
  好了,到这里,计算机早期的基本架构已经构建完成了。五大部分:ALU、控制器、存储器、输入设备和输出设备。
  在之初,要设计这样的计算机,是很麻烦的。有的部件用电子管设计,有的用晶体管设计,而对于存储器,需要自己去绕磁芯。
磁芯存储器

经过这样设计的计算机,体积非常庞大的。
在这里插入图片描述

2.3 走入集成电路时期

  到了60年代末70年代初,半导体技术噗噗噗地发展,这时候,半导体公司开始将计算机中的两个核心部件:ALU和控制器,集成到 silicon chip 中去,
在这里插入图片描述
也就是所谓的“芯片”,芯片中的控制器就是中央指挥机关,是大脑中的大脑。

因此,故弄玄虚的半导体公司将芯片称之为中央处理器, center processing unit,即CPU,问世了!!!

CPU芯片的体积非常小,因此也称为“微处理器”。
在这里插入图片描述
在这里插入图片描述
  这里多说一句,计算机各部分之间交互信息是通过导线,而且不是一根导线,而是由一组导线,这一组一组的导线,我们就叫它bus,翻译为总线。

在这里插入图片描述
还没仔细梳理,有点乱大家看个热闹,会继续梳理出完。。。。。。。。。。。。晚安

相关文章:

STM32内部是怎么工作的

STM32是怎么工作的 1 从孩子他妈说起2 早期计算机的组成2.1 五大元件(1)第一个出场的是电容元件(2)第二个出场的是二极管(3)第三个出场的是电阻元件(4)第四个出场的是电感&#xff0…...

MyBatis的配置文件

目录 MyBatis配置 1.properties标签 2.typeAliases标签 3.Mappers标签 一个最全面的MyBatis配置文件可能会包含各种不同的设置和选项,根据实际情况,可以根据需要添加或删除配置。以下是一个包含各种可能设置的示例。 这个配置文件包含了环境设置、数…...

MCU平台下确定栈空间大小的方法

本文介绍MCU平台下确定栈空间大小的方法。 通常使用IDE开发MCU程序在生成Image文件时,Image文件被划分为代码区,数据区,BSS区,堆区,栈区。其中,代码区,数据区,BSS区空间大小由编译器…...

Flink系列之:SQL提示

Flink系列之:SQL提示 一、动态表选项二、语法三、例子四、查询提示五、句法六、加入提示七、播送八、随机散列九、随机合并十、嵌套循环十一、LOOKUP十二、进一步说明十三、故障排除十四、连接提示中的冲突案例十五、什么是查询块 SQL 提示可以与 SQL 语句一起使用来…...

机器学习算法---聚类

类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统计学检验箱…...

gitlab ci pages

参考文章 gitlab pages是什么 一个可以利用gitlab的域名和项目部署自己静态网站的机制 开启 到gitlab的如下页面 通过gitlab.ci部署项目的静态网站 # build ruby 1/3: # stage: build # script: # - echo "ruby1"# build ruby 2/3: # stage: build …...

Web ML 库的Transformers.js 提供文本转语音功能

JavaScript 库 Transformers.js 提供了类似 Python Transformers 库的功能,设计用于在 Web 浏览器中直接运行 Transformer 模型,而不再需要外部服务器参与处理。在最新的 2.7 版本中,Transformers.js 引入了增强功能,其中包括文本…...

管理类联考——数学——真题篇——按题型分类——充分性判断题——蒙猜E

老老规矩,看目录,平均每年2E,跟2D一样,D是全对,E是全错,侧面也看出10道题,大概是3A/B,3C,2D,2E,其实还是蛮平均的。但E为1道的情况居多。 第20题…...

【Linux基本指令(2)】

文章目录 一. 基本指令第二回 一. 基本指令第二回 cp指令语法 cp src dst 将目标文件或者目录拷贝到指定目录下或文件下。注意同级目录下,不允许存在同名文件或同名目录。如果将一个file.txt文件拷贝到当前目录下,就重名了,报错cp不了&#…...

Debian系统设置SSH密钥登陆

如果没有安装ssh,root权限运行apt install openssh-server进行安装。 ssh-keygen -t rsa # 生成配对密钥,后续一路enter即可会在用户目录(即~这个)下生成.ssh文件夹,里面的id_rsa是私钥,id_rsa.pub是公钥…...

uniapp cli开发和HBuilderX开发

uniapp cli开发和HBuilderX开发 前言 uniapp是一个跨平台的开发框架,可以开发出微信小程序、支付宝小程序、百度小程序、头条小程序、H5、App等,开发者只需要写一套代码,就可以发布到各个平台,大大提高了开发效率。 uniapp的开…...

【Java异常】idea 报错:无效的目标发行版:17 的解决办法

【Java异常】idea 报错:无效的目标发行版:17 的解决办法 一,问题来源 springcloud的第一个demo项目就给我干趴了 二、原因分析 java: 无效的目标发行版: 17 原因就是 JDK 版本不对。从 IDEA 编辑器中可以找到问题的原因所在,…...

代码提交规范-ESLint+Prettier+husky+Commitlint

代码提交规范-ESLintPrettierhuskyCommitlint 配置eslint (3步)配置prettier(4步)1.安装配置prettier2.设置忽略文件 .prettierignore3.处理eslint冲突4. 配置vscode 的settings.json husky安装并配置lint-staged(3步)安装配置com…...

手动实现 Vue 3的简易双向数据绑定(模仿源码)

Vue 3 带来了许多令人兴奋的新特性和改进,其中之一就是其双向数据绑定的实现方式。与 Vue 2 使用 Object.defineProperty 不同,Vue 3 利用了 JavaScript 的 Proxy 特性来创建响应式数据。在这篇博客中,我们将探讨 Vue 3 中双向数据绑定的基础…...

LVS最终奥义之DR直接路由模式

1 LVS-DR(直接路由模式) 1.1 LVS-DR模式工作过程 1.客户端通过VIP将访问请求报文(源IP为客户端IP,目标IP为VIP)发送到调度器 2.调度器通过调度算法选择最适合的节点服务器并重新封装数据报文(将源mac地址改为调度器的mac地址&am…...

t-SNE高维数据可视化实例

t-SNE:高维数据分布可视化 实例1:自动生成一个S形状的三维曲线 实例1结果: 实例1完整代码: import matplotlib.pyplot as plt from sklearn import manifold, datasets """对S型曲线数据的降维和可视化"&q…...

配置应用到k8s

配置应用到k8s,前置条件是安装了Docker,Minikube,kubectl 应用已经通过Docker生成本地镜像文件 1,创建godemo-deployment.yaml apiVersion: apps/v1kind: Deploymentmetadata:name: godemo-deploymentspec:replicas: 3 #启动三个…...

(四)STM32 操作 GPIO 点亮 LED灯 / GPIO工作模式

目录 1. STM32 工程模板中的工程目录介绍 2. GPIO 简介 3. GPIO 框图剖析 1)保护二极管及上、下拉电阻 2) P-MOS 管和 N-MOS 管 3)输出数据寄存器 3.1)ODR 端口输出数据寄存器 3.2)BSRR 端口位设置/清除寄存器 4&a…...

你知道跨站脚本攻击吗?一篇带你了解什么叫做XSS

1.XSS简介 (1)XSS简介 XSS作为OWASP TOP 10之一。 XSS中文叫做跨站脚本攻击(Cross-site scripting),本名应该缩写为CSS,但是由于CSS(Cascading Style Sheets,层叠样式脚本&#x…...

JVM入门

JVM概述 JVM位置 JVM体系结构 注意:栈中一定不存在垃圾,栈中数据用完一个弹出一个,总结来说,栈区、本地方法栈、程序计数器这三块必定不存在垃圾。JVM调优主要是针对方法区、堆(99%)进行调优。 常用的第三…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

网络编程(UDP编程)

思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...