嵌入式基础
嵌入式基础
- 前言
- 一、嵌入式发展史
- 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三极管。