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

嵌入式基础

嵌入式基础

  • 前言
  • 一、嵌入式发展史
    • 1.1 CPU Central Processing Unit
    • 1.2 MPU Mircro Processor Unit
    • 1.3 MCU Micro Controller Unit
    • 1.4 Application Processors
    • 1.5 哈弗架构与冯诺伊曼架构
  • 二、嵌入式系统硬件结构与启动
    • 2.1 XIP eXecute In Place
    • 2.2 硬件结构
    • 2.3 系统启动
  • 三、ARM裸板及引申
    • 3.1 LED 硬件


前言

参考韦东山资料。

一、嵌入式发展史

1.1 CPU Central Processing Unit

CPU(Central Processing Unit):在一个电子系统中,处理器占据最重要的位置,被称为中内处理器单元CPU。它从IO设备读取数据,处理,然后显示出来。在PC机它是一个独立的芯片。在嵌入系统中,它是芯片里的一个单元,跟其他模块比如USB、UART、音频组成一个芯片。

CPU的发展有两个路线:MPU、MCU。

1.2 MPU Mircro Processor Unit

微处理器单元,其作用等同于在PC上使用的CPU,它也只仅仅是一个处理器,需要配合内存、Flash等外设才可以使用。

1.3 MCU Micro Controller Unit

微控制器单元,有时又称为单片机。MCU内部集成了处理器和各类模块,比如USB控制器、UART控制器、内存、Flash等等。只需要外接少量的器件,就可以搭建一个电子系统。C51芯片、STM32等芯片,都是MCU。

MCU不断发展,出现了Application Processors

1.4 Application Processors

手机中的主芯片跟MCU类似,也是集成了处理器和各类模块。但是它的性能已经极大提升,可以外接几GB的内存、几GB的Flash。在手机中,这个主芯片一般用来处理显示、输入,运行用户的程序,所以称它为“Application Processors”。“Application Processors”的概念可以扩展到其他场景,不再局限于手机。

跟MCU进行比较,Application Processors有以下不同:

⚫集成了更多的模块:
Application Processors内部集成了更多的模块,比如用于数据处理的DSP、用于图形显示的GPU,甚至有多个处理器。这里又引入一个概念“片上系统”(SoC,System on Chip),SoC的本意是在一个芯片上就可以搭建完整的系统。但是这个概念在日常使用中比较宽泛:MCU芯片也可以称为SoC,Application Processors也可以称为SoC,即使它们还必须外接内存/Flash等外设才可以运行。在以前的文档中涉及SoC时,意指比较复杂的系统;这时候MCU不属于SoC,因为MCU比较简单。但是时代在发展,MCU也越来越复杂了,所以把MCU也当作SoC也是可以的。
在手机电路板中,可用空间非常小。Application Processors还需要搭配内存芯片才可以使用,于是发展出了一种名为package-on-package (PoP)的工艺:在电路板上先焊接Application Processors,在Application Processors上面再焊接内存芯片,即2个芯片叠在一起。

⚫运行的操作系统不同:
MCU上一般不运行操作系统,或是运行一些资源耗费较小的小型实时操作系统(RTOS)。MCU一般用来处理实时性要求高的事情,处理一些比较简单的事情。
Application Processors基本上都会运行比较复杂的操作系统(比如Linux),在操作系统上运行多个APP。

1.5 哈弗架构与冯诺伊曼架构

在这里插入图片描述
CPU架构可以分为哈弗架构与冯诺伊曼架构。
哈弗架构中指令与数据分开存放,CPU可以同时读入指令、读写数据。
冯诺伊曼架构中指令、数据混合存放,CPU依次读取指令、读写数据,不可同时操作指令和数据。
ARM公司的芯片,ARM7及之前的芯片是冯诺伊曼架构,ARM7之后使用“改进的哈弗架构”。“改进的哈弗结构”如下所示:
在这里插入图片描述

在“改进的哈弗架构”里,指令和数据在外部存储器中混合存放;CPU运行时,从指令cache中获得指令,从数据cache中读写数据。

二、嵌入式系统硬件结构与启动

2.1 XIP eXecute In Place

XIP: eXecute In Place, 本地执行。可以不用将代码拷贝到内存,而直接在代码的存储空间运行。
XIP devices: CPU 可以直接由CPU寻址的设备.

2.2 硬件结构

基本架构如下:
在这里插入图片描述

ARM芯片内部有很多部件,这是一个片上系统(System on chip),如上图所示,比如有: cpu、rom、 ram、 memory controller — ddr、 sd/mmc controller — sd card、spi controller — spi flash、usb controller — usb storage device、uart controller、interrtupt controller 等等。

跟PC的类比,pc有一个板卡,各各芯片、模块可以安装到上面:
CPU ---- 单独的芯片
启动设备 ---- BIOS芯片
DDR ---- 单独的可拔插式模块
存储设备 ---- SATA硬盘,可拔插
usb controller …

2.3 系统启动

ARM板子支持多种启动方式:XIP设备启动、非XIP设备启动等等。 比如:Nor Flash、SD卡、SPI Flash, 甚至支持UART、USB、网卡启动。 这些设备中,很多都不是XIP设备。

上电后,CPU运行的第1条指令、第1个程序,位于片内ROM中,它是XIP设备, 这个程序会执行必要的初始化,比如设置时钟、设置内存,再从"非XIP设备"中把程序读到内存,最后启动这些程序。

三、ARM裸板及引申

裸板点灯led

3.1 LED 硬件

LED的驱动方式,常见的有四种。

方式1:使用引脚输出3.3V点亮LED,输出0V熄灭LED。

方式2:使用引脚拉低到0V点亮LED,输出3.3V熄灭LED。

有的芯片为了省电等原因,其引脚驱动能力不足,这时可以使用三极管驱动。

方式3:使用引脚输出1.2V点亮LED,输出0V熄灭LED。

方式4:使用引脚输出0V点亮LED,输出1.2V熄灭LED。
在这里插入图片描述
三极管的控制,看其图标的箭头,箭头方向代表电流方向,高电压为P极,低电压为N极,中间为P,即为NPN三极管,中间为N,即为PNP三极管。

相关文章:

  • 算法性能分析
  • 资产智慧管理安全监测中心
  • 解决宝塔mysql数据库管理里的工具转换innodb提示成功但是有部分始终没有转换掉问题
  • Gradle:Gradle的下载、安装和配置环境及idea配置指南
  • C及C++编译链接过程详解
  • 旋转字符串的解题思路与算法分享
  • 二叉树-104.二叉树的最大深度-力扣(LeetCode)
  • Linux 下生成动态库时 -fPIC的作用详解
  • SpringBoot(八) --- SpringBoot原理
  • 电工基础【7】往返运动控制、星三角形降压启动
  • 深度学习N2周:构建词典
  • 【LeetCode】1061. 按字典序排列最小的等效字符串(并查集)
  • Qt 按钮类控件(Push Button 与 Radio Button)(1)
  • SLG游戏分析
  • opencv学习笔记1:图像基础、图像操作、直方图均衡化详解
  • python打卡训练营打卡记录day45
  • 【C++高阶二】STL的map和set
  • rapidocr 3.0 在线demo来了
  • 插入排序,二分查找,字符数组 day8
  • 如何配置Git LFS?
  • 京东商城网站域名/seo站长网怎么下载
  • wordpress商城支付宝/网站内部优化有哪些内容
  • 网站建设销售是什么/seo排名哪家公司好
  • wordpress通过微信投稿/如何推广seo
  • 保定网站建设/百度平台商家我的订单查询
  • web制作网页实验报告/百度网站如何优化排名