嵌入式系统的软件通常运行在有限的硬件资源上:没有硬盘、操作系统、键盘或屏幕。 软件一般都没有文件系统,如果有的话,也会釆用Flash驱动器。如果有人机交互接口的 话,也是一个小键盘或液晶显示器。硬件是计算机的物理部分,和存储在硬件中的计算机软件程序和数据区分开来。嵌入到机械中的嵌入式系统需要长期无故障连续运行,因此它的软件需要比PC中的 软件更加仔细地开发和更加严格地测试。
那么,到底什么是嵌入式系统呢?
根据IEEE (国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅 助设备、机器和车间运行的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants )。这主要是从应用上加以定义的,从中可以看 出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
在国内的学术界普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件 硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机 系统。
可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带 有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式 系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
嵌入式系统的发展历史大概可以分为以下几个阶段:
无操作系统阶段
简单操作系统阶段
实时操作系统阶段
面向Internet阶段
嵌入式系统的组成
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,如图1-1所示,嵌 入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所 规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如机器人,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
一、硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM. Flash等)、通用设备接口 和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在 ROM 中。
1.嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
2.存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器,其存储结构如图1-2所示。
二、中间层
硬件层和软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer, HAL) 或板级支持包(Board Support Package, BSP),它将系统上层软件与底层硬件分离开来, 使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/ 输出操作和硬件设备的配置等功能。BSP具有以下两个特点。
•硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件 与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
•操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作 系统具有特定的硬件接口形式。
在实现上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。
(1)嵌入式系统硬件初始化
系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为: 片级初始化、板级初始化和系统级初始化。
•片级初始化
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存 器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌 入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的 初始化过程。
•板级初始化
完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据 结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同 时包含软硬件两部分在内的初始化过程。
•系统级初始化
该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处 理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初 始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如 网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。
(2)硬件相关的设备驱动程序
BSP的另一个主要功能是硬件相关的设备驱动。硬件相关的设备驱动程序的初始化通 常是一个从高到低的过程。尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动 程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将他们与操作系统中通用 的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设 备的操作。与硬件相关的驱动程序是BSP设计与开发中另一个非常关键的环节。
三、系统软件层
系统软件层由实时多任务操作系统(Real-time Operation System, RTOS)、文件系统、 图形用户接口(Graphic User Interface, GUI)、网络系统及通用组件模块组成。RTOS是嵌 入式应用软件的基础和开发平台
四、应用软件层
应用软件层是由基于实时系统开发的应用程序组成,用来实现对被控对象的控制功能。 功能层是面向被控对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。
对于一些复杂的系统,在系统设计的初期阶段就要对系统的需求进行分析,确定系统 的功能,然后将系统的功能映射到整个系统的硬件、软件和执行装置的设计过程中,称为 系统的功能实现。
2020年7月24日15:02:41《嵌入式系统设计师》笔记