第1章嵌入式系统概述

  • 格式:pdf
  • 大小:630.27 KB
  • 文档页数:6

第1章 嵌入式系统概述

嵌入式系统是一种特殊的计算机系统。本章分析讨论嵌入式系统的基本特性,重点分析

它与通用计算机系统的区别,介绍基于FPGA的“高端”嵌入式系统的概念和开发流程,这

也是本书的重点。

1.1 引言

1.1.1 嵌入式系统定义

嵌入式系统(或嵌入式计算机系统)可以简单地定义为一个计算机系统,其设计是用于完成

一个或多个特定任务。这一计算机系统不是一个最终产品,而是在一个庞大系统中的专用嵌入部

分,这个庞大系统通常还包括其他电子和机械部分。相对而言,一个通用计算机系统,例如一台

PC(个人计算机),是一种通用的计算平台,其本身就是一种最终产品。它被设计为灵活的,并

且能够支持终端用户的各种需求。各种应用程序就是基于通用计算机系统的可用资源而开发的。

因为一个嵌入式系统专用于特定任务,所以其设计可以优化以降低成本。一个好的设计

应该包含刚好够用的硬件资源,以满足应用所需的功能。另一方面,通用计算机系统需要支

持各种各样的需求,所以一个应用程序可以使用大量的硬件资源。从这一点来看,嵌入式系

统可以看成一种有严格资源约束的计算机系统。

术语“嵌入式系统”和“通用计算机系统”没有严格的界定,因为大部分系统都有一些

可扩展性和可编程性的元素。例如,手机可以看成是嵌入式系统,因为它主要用于无线通信。

然而高端手机也能下载其他应用程序,如简单的视频游戏,这却是通用计算机系统的特性。

在本书中,通用计算机系统被称为“台式系统”,因为台式计算机是最常用的通用计算机

系统。

1.1.2 示例系统

嵌入式系统在很多应用中被广泛使用,每个应用都有其特殊的要求。本节通过以下三个

例子阐述嵌入式应用的基本特性。

z 微波炉

z 数码相机

z 车辆电子稳定控制系统

微波炉 微波炉利用其内部的磁控管产生的微波辐射来烹调或者加热食物。微波炉通常

有一个面板,用于选择烹调时间和功率,还有一个LCD或LED显示屏,用于显示微波炉工

作状态和时间。微波炉内有一个嵌入式计算机,用于处理面板的输入、跟踪计时、产生显示

符和控制磁控管单元。

微波炉操作不需要大量的计算,也不涉及高速的数据传输。利用简单的8位处理器(即

内部数据宽度是8位的处理器)和一个小容量的只读程序存储器就可以实现这些任务。整个基于Nios II的嵌入式SoPC系统设计与Verilog开发实例

2

嵌入式系统可以利用一个微控制器实现,它通常是一个含有8位内核处理器、小内存和简单

I/O外设的单个IC芯片。

微波炉是一种典型的“低端”嵌入式系统。

数码相机 数码相机照相是利用图像传感器通过电子方式记录图像,并将数字化的图像

存储在闪存卡中。这个图像传感器包含数以百万计的像素传感器。像素传感器将光信号转换

成电信号,其输出被数字化,并储存为图像文件。典型的数码相机有一系列用于控制和调节

相机操作的按钮和旋钮,以及用于预览存储的图像的小型LCD显示屏。

相机中的嵌入式系统执行两个主要任务。第一个任务涉及一般“家务管理”I/O操作,包括

处理按钮和旋钮的操作,在LCD显示屏上产生图像,将图像文件写入存储设备中。这些操作比

微波炉中的操作更频繁,所以系统需要一个更高级的16位或者32位的处理器和一个独立的存储

芯片。第二个任务是处理图像并进行数据压缩以减小文件大小。由于像素高且压缩算法复杂,因

此需要大量的计算。嵌入式处理器一般没有能力处理这种计算密集型操作,因此可以设计自定义

数字电路来执行这个特殊任务,以减轻处理器的负担,这类电路就称为硬件加速器。

数码相机是一种典型的“高端”嵌入式系统。

车辆电子稳定控制系统 车辆的ESC(电子稳定控制)系统通过检测和最小化打滑来提

高车辆的机动性(可操作性)。驾驶中,ESC系统不断比较司机驾驶方向与车辆实际方向。当

检测到失控操纵(例如由于路面潮湿或者结冰引起的)时,ESC系统就会自动干预,对个别

车轮进行制动,引导车辆回到驾驶方向上。

嵌入式系统根据方向盘角度获取车辆的驾驶方向,根据车辆的侧向加速度和个别车轮的

旋转速率获取车辆的实际方向,从而判断是否发生打滑及其性质,然后计算制动力并对个别

车轮制动,来补偿打滑条件。

ESC嵌入式系统有两个特殊性质。其一,ESC系统满足实时性条件,即从触发事件(如

出现打滑条件)到系统响应(如制动力的使用)的一个操作期限。如果在规定的时间内刹车

没有启动,系统就无法工作了。其二,由于驾驶控制涉及司机的安全,因此嵌入式系统是至

关重要的,系统必须具有鲁棒性和可靠性。

1.2 系统设计需求

在设计计算机系统时,必须考虑各种各样的因素,包括

z 成本

z 通用计算速度

z 特殊计算需求

z 实时性

z 可靠性

z 功耗

“特殊计算需求”一般指诸如数据压缩、加密、模式识别等某一特定计算任务,这些任

务是用通用处理器无法完成的。

一般情况下,希望每个计算机系统都是便宜、快速、可靠且低功耗的。然而,这些因素

之间常常是相互矛盾的。例如,处理器速度越快,价格越昂贵并且功耗也越大。嵌入式系统

应用广泛,每个系统都有其独一无二的需求。对于每一个嵌入式系统,需要区分其关键要求,第1章 嵌入式系统概述

3

以权衡利弊。说明这些要求的一个好方法是利用“雷达图”,如图1.1所示。图中有六个轴线,

每个轴线表示其相应的因素的重要性。坐标轴中的一点从中心向外移动时,其对应因素的重

要性也从“不重要”提升到“极其重要”。

图1.1 各种系统的雷达图

台式计算机是通用的,因此不会特别注重某一因素。它的雷达图是“面面俱到的”,如图1.1(a)

所示。微波炉可以看成是一种商品,它的利润率并不是很高。因此成本对于它来说就非常重

要。微波炉的嵌入式系统很简单,降低成本是它最重要的要求,因此其雷达图如图1.1(b)所

示。数码相机需要特殊的图像处理和数据压缩技术,由于它是由电池供电的手持设备,所以

降低功耗就显得很重要。因此,相机的嵌入式系统的两个重要要求就是功耗和特殊的计算需

求,其雷达图如图1.1(c)所示。车辆的ESC系统要求有严格的操作时限,而且是至关重要的

系统,所以它的主要要求就是实时性和可靠性,其雷达图如图1.1(d)所示。

从需求的角度出发,可以把嵌入式系统看成具有特殊设计要求的计算机系统。

1.3 嵌入式SOPC系统

本书的重点是与数码相机类似的“高端”嵌入式系统,这类系统通常包含一个处理器和

简单的I/O外设,它们用作通用的用户接口,并实现内部管理任务。系统还包括特定的硬件

加速器,用于处理计算密集型操作。这些组件能集成到一个集成电路中,就是通常所说的SoC

(system on a chip,片上系统)。随着FPGA(field-programmable gate array,现场可编程门阵

列)器件集成度的不断提高,这种设计方案可以在一个FPGA芯片上实现,也就是常说的SoPC

(system on a programmable chip,可编程片上系统)或者PSoC(programmable system on a chip,

片上可编程系统)。本书中使用SoPC这个术语。

利用传统的嵌入式处理器设计系统时,先要详细了解所需的功能,然后选择一款处理器、

外接的I/O设备和ASSP(专用标准产品)器件,从而构建硬件平台。由于处理器的大小固定,

ASSP器件的选择有限,印制电路板的成本昂贵,所以硬件配置就相当“死板”,所需系统功

能只能通过自定义的软件实现。 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例

4

一个FPGA芯片包括逻辑单元和互连,通过配置(即“编程”)逻辑单元和互连可以实现

特定的功能。所需的硬件功能通常是使用HDL(硬件描述语言)代码描述的,这些代码综合

后由逻辑单元来实现。由于FPGA器件的可编程性,自定义的硬件也可以并入到嵌入式系统

中。我们可以裁剪处理器,只选择需要的I/O外设,创建用户I/O接口,并为计算密集型任

务开发特定的硬件加速器。基于SoPC的嵌入式系统提供了新的灵活性选择,因为其软件和

硬件都可自定义实现特定需求。

嵌入式SoPC系统开发包括以下几个部分:

z 将任务划分为软件和硬件加速器;

z 开发硬件,包括硬件加速器和I/O外设,并与处理器整合在一起;

z 开发软件;

z 软、硬件实现与测试。

由于本书中的设计实例都是使用Altera的原型开发板,所以本书中的讨论也都基于Altera

的开发平台和它的Nios II处理器。注意,Nios II是软核处理器,这就意味着这种处理器是用

硬件描述语言代码进行描述,然后利用FPGA的通用逻辑单元进行综合。

基于Nios II的基本开发流程如图1.2所示,下面将详细说明其中的四个基本部分。

软件—硬件划分 第1步(图中标记为1)确定软、硬件分工。一个嵌入式应用通常都

执行一组任务。在基于SoPC的设计中,一个任务可以用硬件实现,也可以用软件实现,还

可以用软、硬件来实现。基于性能要求、复杂性和硬件核的可用性,可以选择合适的实现

类型。

硬件开发流程 图1.2左边的分支代表硬件设计流程。第2步导出基本的硬件总体结构。

自定义硬件可以分为三类。

z Nios II处理器和标准的I/O外设 (框图中标记为“Nios配置”)Altera提供了处理器

的软核和大量常用I/O外设。第三方供应商也提供了其他的I/O核。可以选择所需的

I/O外设,并配置基本的Nios II系统。

z 用户I/O外设和硬件加速器 (框图中标记为“用户I/O & HA”)对于某些专用I/O

函数或计算密集型任务,可能没有预先设计好的核,或者现有的核无法满足性能要

求。因此必须重新开始设计系统的硬件,再整合到Nios II系统中,作为自定义I/O

外设。

z 用户逻辑 硬件的某些部分可能独立于Nios II系统,既不附加在Nios互连结构上,

也不直接与处理器交互。

第3步,从自定义的Nios II系统生成HDL代码是利用Altera的SOPC Builder工具软件

完成的。在该软件中,可以配置处理器,选择所需的标准I/O核,并合并用户设计的I/O外

设。然后SOPC Builder产生自定义Nios II系统的HDL代码,并产生一个.sopcinfo文件,该

文件中包含了系统的配置信息。可以将产生的HDL代码同其他用户逻辑代码合并,形成最终

的顶层HDL描述。

顶层HDL代码包含完整的硬件描述。第4步进行综合、配置和布线,最终产生FPGA

配置文件(即.sof文件)。

软件开发流程 图1.2右侧的分支表示软件设计流程。第6步导出基本的软件结构。Altera

提供了软件库,该库被集成在Altera的HAL(硬件抽取层)平台中,它包括I/O设备驱动,