注意:日志内容大多来自嵌入式系统设计师教程的内容
一、嵌入式系统的定义和组成
1.1.1嵌入式系统的定义
嵌入式系统的软件通常运行在有限的硬件资源上:没有硬盘、操作系统、键盘或屏幕。软件一般都没有文件系统,如果有的话,也会采用Flash驱动器。如果有人机交互接口的话,也是一个小键盘或液晶显示器。硬件是计算机的物理部分,和存储在硬件中的计算机软件程序和数据区分开来。
嵌入到机械中的嵌入式系统需要长期无故障运行,因此它的软件需要比PC中的软件更加仔细的开发和更加严格的测试。
那么到底什么是嵌入式系统呢?
根据IEEE(国际电气和电子工程协会)的定义
嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”
英文原文为:
devices used to control, monitor, or assist the operation of equipment, machinery or plants.
这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械灯附属装置。
目前国内一个普遍被认同的定义是:
以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统
可以这样认为,嵌入式系统是一种专用的计算机系统 ,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车灯,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是单个程序实现的整个控制逻辑。
1.1.2 嵌入式系统的发展概述
世界上第一个应用的嵌入式系统可以追溯到20世界60年代中期的阿波罗导航计算机AGC(Apoll Guidance Computer)系统,用来完成阿波罗飞船的导航控制。
从单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有30多年的历史了。纵观嵌入式系统的发展历程,大致经历了以下4个阶段。
(1) 无操作系统阶段
(2) 简单操作系统阶段
(3) 实时操作系统阶段
(4) 面向Internet阶段
IC产业是一个自20世界80年代特别是90年代后飞速发展的产业。从90年代中期开始,由于基于专用集成电路的板级系统设计已经不能满足系统产品的可靠性要求,出现了片上系统(System On Chip, SOC)的概念,并成为现代集成电路设计的发展方向。
SOC是指在单芯片上集成数字信号处理器、微控制器、存储器、数据转换器、接口电路灯电路模块、可以直接实现信号采集、转换、存储、处理灯功能,其中知识产权核(Intellectual Property Core, IP Core)设计师SOC设计的基础。
IP核是指具有知识产权的、功能具体的、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。
IP核在功能设计上考虑了可重用性,验证方法也非常明确。
IP核模块有 行为(Behavior)、结构(Structure) 和 物理(Physical) 3级不同程度的设计,对应描述功能行为的不同分为三类,即软核(Soft In Core) 、完成结构描述的固核(Firm IP Core) 和基于物理描述并经过工艺验证的硬核(Hard IP Core)。
IP软核:通常是硬件描述语言(Hardware Description Language,HDL)文本形式提交给用户,它经过RLT级设计优化和功能验证,但其中不包含有任何具体的物理信息。
IP硬核:是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模板和全套工艺文件。
IP固核:设计程度介于软盒和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以电路网表格形式提供给用户。
IC设计采用IP复用可以缩短产品的开发周期,提高产品的可靠性。
1.1.3 嵌入式的组成
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成
嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。
执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
下面对嵌入式计算机系统的组成进行介绍:
硬件层:
硬件层包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D,D/A,I/O等)。在一片嵌入式处理基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。
嵌入式微处理器:
指令集系统可以有精简指令集系统(Reduced Instruction Set Computer,RISC)和复杂指令集系统(Complex Instruction Set Computer,CISC)
主流的嵌入式微处理器体系有:ARM、MIPS、PowerPC、x86 和SH等, ~~ 要不要加一个RISV-V~~
存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含 Cache、主存和辅助存储器,结构如图:
Cache
Cache是一种容量很小、速度快的存储器阵列,它位于主存和嵌入式微处理器之间,存放的是最近一段时间微处理器使用最大的程序代码和数据。
Cache分为数据Cache 、指令Cache 和混合Cache。一般中高档的嵌入式微处理器才会把Cache集成进去。
主存
主存是嵌入式微处理器能直接访问的存储器,用来存放系统和用户的程序及数据。
常用的主存的存储器有:
ROM类:NOR Flash 、EPROM、PROM等 现在有EEPROM,铁电存储器FRAM
RAM类: SRAM、DRAM和SDRAM等。还有DDRSDRAM
图片引用于:RAM原理与分类
辅助存储器
辅助存储器用来存放大数据量的程序代码或信息,它的容量大,但读取速度与主存相比就慢得多,用来长期保存用户信息。
常用的有: 硬盘、NAND Flash、CF卡、MMC 和SD卡等。
通用设备接口和I/O接口
常用的通用设备接口有:
A/D(数模转换接口,模拟转数字)
D/A(数模转换接口,数字转模拟)
RS232 (串行通讯接口)
Ethernet(以太网接口)
USB (通用串行总线接口)
音频接口
VGA视频输出接口
I2C(现场总线)
SPI(串行外围设备接口)
IrDA(红外接口)
中间层
硬件层和软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,更加BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入输出操作和硬件的配置灯功能。BSP具有以下特点:
1、 硬件相关性
2、 操作系统相关性
嵌入式系统硬件初始化包含:
1、 片级初始化
2、 板级初始化
3、 系统级初始化
系统软件层
系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。