STC单片机原理及应用:从器件、汇编、C到操作系统的分析和设计(立体化教程)(第2版)
上QQ阅读APP看书,第一时间看更新

1.1 嵌入式系统的基本概念

随着信息技术的不断发展,嵌入式系统(embedded system)越来越多地出现在人们的日常生活中。美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers)将其定义为用于控制、监视或者辅助操作机器和设备的装置。更具体地说,嵌入式系统是以具体应用为导向的,以计算机技术为核心的,根据具体应用对硬件和软件系统量身定做的便于携带的微型计算机系统。

1.1.1 嵌入式系统的主要特点

典型的应用了嵌入式系统的设备有移动电话、智能手表和平板电脑等,如图1.1所示。这些基于嵌入式技术所构建的电子产品具有以下的共同特点:

图1.1 基于嵌入式技术所构建的电子产品

(1)体积小,重量轻。例如,iPhone手机可以放在我们衣服的口袋中,智能手表可以戴在我们的手腕上,平板电脑可以拿在我们的手上。

(2)功耗低。体积很小的电池就可以为这些设备提供充足的电量。当这些设备处于待机状态时,电池可以为这些设备提供几天的电量。

(3)成本较低。例如,花费不到2000元,就可以购买到一个能满足一般要求的平板电脑。

(4)丰富的应用支持。例如,苹果手机提供了大量的应用支持,如用于移动支付、移动互联、移动交流等的应用。

1.1.2 嵌入式技术的构成

嵌入式技术是构建嵌入式系统的核心,在系统层面的概念上说,它包含软件和硬件两个部分,如图1.2所示。

图1.2 嵌入式系统的软件和硬件体系结构

1.嵌入式系统的硬件

构成嵌入式系统的硬件主要包括如下几类。

1)嵌入式处理器(Embedded Processor)

嵌入式处理器与中央处理单元(Central Processing Unit,CPU)有所不同,主要体现在以下方面:

(1)CPU是单个处理器核,性能高,同时功耗也大。例如,Intel公司基于X86结构的CPU内核广泛用于个人计算机和笔记本电脑中。需要注意的是,Intel公司量产的包含多个CPU核的芯片已经不是传统意义上的CPU,因为CPU需要额外的存储器系统和外设的支持。

(2)对于嵌入式处理器而言,根据应用场合的不同,性能也有所不同,其功耗要小于CPU,但是性能比CPU差。例如,英伟达公司的高性能图睿2嵌入式处理器不但集成了ARM Cortex-A9双核CPU,而且还提供了高速缓存、USB接口、图像处理器、图像信号处理器等,如图1.3所示。因此,更严格地说,它是片上系统(System on Chip,SoC)。

图1.3 英伟达公司的图睿2嵌入式处理器

注:Video Encode Processor——视频编码处理器;Video Decode Processor——视频解码处理器;Audio Processor——音频处理器;Dual Display——双显示器;Image Signal Processor——图像信号处理器;Graphics Processor——图像处理器

此外,在嵌入式系统中还有一类性能相对较低的嵌入式处理器,我们通常将其称为微控制器(Micro Control Unit,MCU),也称为单片机。其主要特点包括:①它只有一个处理器内核。典型的例子有ARM公司的Cortex-M0、Cortex-M3、Cortex-M4以及Intel公司的8051 CPU;②其内部包含了存储器块、输入输出(I/O)模块和其他外设;③它主要应用于工业控制领域中。

例如,我们所说的8051单片机就是指使用了MCS-51 CPU内核的MCU,ARM单片机就是指使用了ARM 32位低性能处理器内核(如Cortex-M0、Cortex-M0+)的MCU。

综上所述,不管是CPU、高性能嵌入式处理器还是MCU,它们都是专用集成电路芯片(Application Specific Integrated Circuits,ASIC),属于“芯片”的范畴。

2)供电系统

用于为嵌入式系统提供电源。通过为嵌入式处理器提供不同的电源管理模式,来满足嵌入式系统高性能和低功耗的要求。

3)外部存储器系统

除了嵌入式处理器芯片提供的片内存储器外,还可以通过嵌入式处理器提供的外部存储器接口,扩展大容量的存储器以满足高性能嵌入式系统的应用要求。比如,运行iOS和安卓操作系统的嵌入式系统就需要应用大容量的DDR存储器系统。

4)外部设备

通过嵌入式处理器芯片提供的外设接口,与外部设备进行连接,比如USB接口、以太网接口等。

2.嵌入式系统的软件

一个完整的嵌入式系统软件主要包括板级支持包(Board Support Package,BSP)、嵌入式实时操作系统(Real-Time OS,RTOS)和应用程序(APP)。

(1)板级支持包提供了对外设的驱动支持以及与操作系统的接口。板级支持包与操作系统之间互相独立。

(2)嵌入式实时操作系统。与个人计算机或笔记本电脑使用的Windows操作系统相比,由于嵌入式系统的内存储器资源以及所使用的处理器性能的限制,需要对嵌入式实时操作系统进行裁剪,以同时满足实时性和占用最少存储器资源的要求。

(3)应用程序。在操作系统上,应用程序开发者编写的满足不同嵌入式应用要求的应用程序。

需要注意的是,低性能的MCU嵌入式应用不需要嵌入式实时操作系统的支持。这样,程序员就可以直接在板级支持包上通过调用应用程序接口(API)来编写应用程序,这就是我们经常说的“裸奔”。

在MCU上直接“裸奔”的主要缺点有:①在不同MCU之间移植程序将变得异常困难;②对于APP开发人员而言,需要掌握不同的MCU的架构和指令集的细节问题,极大地提高了开发难度;③由于没有操作系统的支持,无法实现多任务、分时的运行要求。

因此,即使对于像MCU这样低性能的嵌入式处理器而言,都会有一个很小的操作系统提供多任务的运行支持。比如,对于8051单片机而言,KeilμVision集成开发环境就提供了RTX Tiny51操作系统的支持。

思考与练习1-1:说明嵌入式系统的定义。

思考与练习1-2:说明CPU和MCU的区别。

思考与练习1-3:说明嵌入式和单片机的区别。

思考与练习1-4:说明在一个嵌入式系统中,完整的软件所包含的内容。

思考与练习1-5:说明在嵌入式系统中不搭载操作系统,直接“裸奔”的缺点。