第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设备驱动,