§1.1 嵌入式系统简介 §1.2 嵌入式处理器 §1.3 嵌入式操作系统 第1章 嵌入式系统设计基础 §1.1 嵌入式系统简介 §1.2 嵌入式处理器 §1.3 嵌入式操作系统
1.1 嵌入式系统简介 嵌入式系统已经广泛应用于各个科技领域和日常生活的每个角落,由于其本身的特性,使得我们很难发现它的存在。甚至一些从事嵌入式系统开发的科技人员也只知单片机,不知道嵌入式系统。本节从嵌入式系统的定义开始,阐述嵌入式系统的含义、特点等,以使读者加深对嵌入式系统的理解。 §1.1.1 嵌入式系统的定义 §1.1.2 嵌入式系统的组成 §1.1.3 嵌入式系统的特点 §1.1.4 嵌入式系统的应用 §1.1.5 嵌入式系统的发展 第1章 嵌入式系统设计基础
什么是嵌入式系统(Embedded System)? 广义地讲,凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。举例来说,个人计算机(PC)不是一种嵌入式系统,因为它是用于通用目的的系统。而一些电话系统就是采用个人计算机技术建立的嵌入式计算机系统,最典型的嵌入式系统如手机、可视电话等;另外还有一些嵌入式系统采用特殊的微处理器,如传真机、打印机等。 狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,适于应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。一般嵌入式系统的设计过程是:从产品定义开始,接着进行硬件设计,然后将软件或操作系统移植到硬件上,并且进行应用程序的开发,最后经过测试与调试后即开始销售或使用。 根据英国电机工程师协会所做的定义“嵌入式系统是控制、监视或辅助某个设备、机器甚至工厂运行的设备”,嵌入式系统应该具备以下4个特性: 执行特定的功能; 以微处理器与外围设备构成核心; 需要严格的时序与稳定性; 全自动操作。 第1章 嵌入式系统设计基础
由于对嵌入式系统含义的理解因人而异,所以不同的书籍对嵌入式系统的定义也不尽相同。下面给出了一些文献中对嵌入式系统的定义: 由上述可知,嵌入式系统是计算机软件与硬件的综合体,整个综合体的设计目的在于满足某种特殊功能,并应用于各类具体的应用系统中,例如,实验仪器、办公设备、医疗设备甚至航天设备,等等。 由于对嵌入式系统含义的理解因人而异,所以不同的书籍对嵌入式系统的定义也不尽相同。下面给出了一些文献中对嵌入式系统的定义: “Computer as Components – Principles of Embedded Computing System Design”一书的作者Wayne Wolf认为:“什么是嵌入式计算系统?如果不严格地定义,它是任何一个包含可编程计算机的设备,但是它本身却不是一个通用计算机。” “Embedded Microcontrollers”一书的作者Todd D. Morton认为:“嵌入式系统是一种电子系统,它包含微处理器或者微控制器,但是我们不认为它是计算机——计算机隐藏或者嵌入在系统中。” “Embedded Software Primer”一书的作者Davie E. Simon认为:“人们使用嵌入式系统这个术语,指的是隐藏在任一产品中的计算机系统。” “An Introduction to the Design of Small Scale Embedded System with example from PIC,80C51 and 68HC05/08 Microcontrollers”一书的作者Tim Wilmshurst认为:“嵌入式系统是这样一个系统,它的首要功能并不是计算,而是受嵌入其中的计算机控制的一个系统。‘嵌入’暗示了它存在于整个系统中,从外部观察不到,形成了更大整体的一个完整部分。” 第1章 嵌入式系统设计基础
可以看出,虽然各种书籍对嵌入式系统的定义稍有差异,但是基本的思想和理解是相同的。我们可以从以下几个方面来理解嵌入式系统的含义: 嵌入式系统是面向用户、面向产品、面向应用的,必须与具体应用相结合才会具有生命力。正因为与具体应用的紧密结合,嵌入式系统才具有很强的专用性。 嵌入式系统将先进的半导体技术、计算机技术和电子技术,以及各个行业的具体应用相结合,是一个技术密集、资金密集、学科交叉和不断创新的知识集成系统。 由于嵌入式系统必须根据应用需要对硬件和软件进行裁剪,以满足应用系统对功能、可靠性、成本、体积和功耗的要求。 因此,嵌入式系统的开发难度比较大,技术门槛较高。比较好的开发模式是:首先建立相对通用的硬件和软件基础,然后针对具体的应用做最少量的软硬件改动。 由上述可以看出,嵌入式系统是一个外延极广的概念,凡是与产品结合在一起的、具有嵌入式系统特点的系统都可以称为嵌入式系统。 第1章 嵌入式系统设计基础
嵌入式系统的组成 嵌入式系统一般有3个主要的组成部分: 硬件。图1.1给出了嵌入式系统的硬件组成。其中,处理器是系统的运算核心;存储器(ROM、RAM)用来保存可执行代码,以及中间结果;输入输出设备完成与系统外部的信息交换;其他部分辅助系统完成功能。 应用软件。应用软件是完成系统功能的主要软件,它可以由单独的一个任务来实现,也可以由多个并行的任务来实现。 实时操作系统(Real-Time Operating System,RTOS)。该系统用来管理应用软件,并提供一种机制,使得处理器分时地执行各个任务并完成一定的时限要求 。 复位及振荡电路 处理器 定时器 ROM RAM 串行口 中断控制 并口 输入/输出设备接口及驱动电路 系统专用电路 图1.1 嵌入式系统的硬件组成 第1章 嵌入式系统设计基础
嵌入式系统的关键在于结合系统硬件电路与其特定的软件,以达到系统运行性能成本的最高比。系统中硬件的设计包括微处理器及存储器电路的设计、网络功能设计、无线通信设计及接口电路设计,等等;而嵌入式软件则专门负责硬件电路的驱动、控制处理,以提升硬件产品的价值,是硬件产品不可或缺的重要部分,它常以固件(Firmware)的形式出现,如控制或驱动程序等。 由于嵌入式系统领域的硬件、软件种类繁多,产品研发需要适应多种不同硬件与软件的组合。为了克服多样化,现在的研发方式多以平台化设计(Platform-Based Design,PBD)为主。平台化设计的基本思路是,以某一种基础的硬件与软件参考设计(reference design)为平台,自行加上额外所需要的硬件与软件,以适应多样化的产品需求,而不必每款产品都从头设计。这种设计方式可以缩短研发进程,加速产品的上市时间。这样的参考设计平台大多会由微处理器制造公司提供,例如,Intel、三星、Motorola等厂商提供微处理器的参考设计电路,以及建议的外围设备布局,包括内存、基本I/O甚至包括LCD控制接口、IDE设备接口,等等,并且配合某一款操作系统,例如,Linux、WinCE,以及相应的软件源代码。将这样的组合包以授权的方式提供给产品开发厂商来开发产品,一般这样的组合包称为“板级支持包”(Board Support Package,BSP)。 由于嵌入式系统的硬件强调的不是执行速度而是功能稳定,因此硬件设计方面的技术瓶颈并不高;反而在软件组件方面,强调系统集成及友善的用户界面。随着网络与无线通信的发展需要,软件组件的发展更加重要。未来的软件开发将逐渐由现在的简易窗口与低速通信,向高速通信与多样化的用户界面发展。 第1章 嵌入式系统设计基础
嵌入式系统的特点 作为专用计算机系统的嵌入式系统与通用计算机系统相比,具有以下几个重要特征: 嵌入式系统通常是面向特定应用的。嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点。 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能完成功能、可靠性和功耗的苛刻要求。 实时操作系统支持。嵌入式系统的应用程序可以不需要操作系统的支持直接运行,但是为了合理地调度多任务,充分利用系统资源,用户必须自行选配实时操作系统开发平台。 嵌入式系统与具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中。 专门开发工具支持。嵌入式系统本身不具备自主开发能力,即使在设计完成以后,用户通常也不能对程序功能进行修改,必须有一套开发工具和环境才能进行开发。 第1章 嵌入式系统设计基础
嵌入式系统的应用 MIT的David Clark首次提出的“后PC时代”(post-PC era)一词,指出个人计算机提供的只是在这个过渡时期的解决方案,而非最佳的方式,最终发展的应用将不会停留在桌面上的个人计算机,而是从桌面上蔓延下来,进入用户的日常生活中。从技术层面来讲,将来的嵌入式系统应用将向软硬件系统集成、SOC设计、应用程序,以及内容服务这几个方面发展。 系统:嵌入式操作系统 除了老牌嵌入式操作系统厂商VxWORKs、QNX、Nucleus等之外,新兴的主要竞争产品有Palm OS、Windows CE、Linux等。其中Embedded Linux操作系统因为免费授权的特性,已经被很多国际型厂商采用。 集成式芯片:SOC “系统单芯片”(System-On -Chip,SOC)研究的领域包括创新系统设计、系统平台建立,以及相关硅知识产权(Silicon Intellectual Property,SIP)的设计、验证与集成等。 应用软件 嵌入式软件一般可以分为客户端的应用软件和服务器端的集成软件。服务器端的软件较为单一,客户端由于应用领域广泛,开发出的软件也是多种多样的。 服务 由于嵌入式产品的便携性,以及消费类电子产品输入输出的多媒体化,再加上嵌入式产品与网络的紧密结合,嵌入式产品相关的增值服务变得更加重要。 第1章 嵌入式系统设计基础
嵌入式系统的发展 嵌入式系统的发展与通用计算机技术的发展密不可分,但是又有着自己独立发展的道路。由于应用目标的不同,使得这两种体系的发展方向有所不同。 通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。由于嵌入式计算机系统要嵌入到目标体系中,实现的是对目标的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。嵌入式系统的技术发展方向是与目标系统密切相关的嵌入性能、控制能力与控制的可靠性。 Intel公司于1971年推出有史以来第一个4位微处理器4004,接着德州仪器与国家半导体公司也随后推出各自的4位微处理器。1974年Intel公司又推出了8位微处理器芯片8080,随后Zilog公司的Z-80、国家半导体公司的NSC800及Intel公司的8085等相继问世。 第一个商品化的16位嵌入式系统微处理器是德州仪器公司所推出的9940,因为它的功能少,而且指令集贫乏,并未引起很大的注意。大家比较熟悉的16位微处理器产品是Intel公司所开发的8086微处理器及Motorola公司所开发的68000微处理器。当时IBM所推出的个人计算机即是采用8086作为数据处理及控制核心。 通用微处理器沿着8086/8088、80286、80386、80486、Pentium、Pentium II、Pentium III、Pentium 4的线路发展,主频从十几MHz到现在的3GHz,字长也从8086的16位发展到了现在AMD64和Pentium D的64位。整体微型计算机的运算能力和存储能力都实现了海量的增长。 第1章 嵌入式系统设计基础
在探索单片机的发展道路时,有过两种模式,即“Σ模式”与“创新模式”。 嵌入式系统起源于微型计算机时代,然而,由于微型计算机的体积、价位、可靠性都无法满足嵌入式应用的要求。因此,嵌入式系统必须走独立发展道路,即单芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。 在探索单片机的发展道路时,有过两种模式,即“Σ模式”与“创新模式”。 “Σ模式”本质上是通用计算机直接单芯片化的模式,它将通用计算机系统中的基本单元进行裁剪后,集成在一个芯片上,构成单片微型计算机; “创新模式”则完全按嵌入式应用要求设计全新的、满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。 Intel公司的MCS-48、MCS-51就是按照创新模式发展起来的单片形态的嵌入式系统(单片微型计算机)。MCS-51是在探索MCS-48的基础上,进行全面完善的嵌入式系统,它定位在具有可伸缩性并且低成本的产品控制单元,至今仍被广泛地使用。历史证明,“创新模式”是嵌入式系统独立发展的正确道路,MCS-51的体系结构也因此成为单片嵌入式系统的典型结构体系。 第1章 嵌入式系统设计基础
单片机的技术发展经历了SCM、MCU、SOC三大阶段。 SCM阶段,即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。 MCU阶段,即微控制器(Micro Controller Unit)阶段,不断扩展各种外围电路与接口电路,增强智能化控制能力。 单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SOC化趋势。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 从2000年开始,以往的ASIC(专用集成电路,SOC的主要实现方式)设计已经逐渐被IP(Intellectual Property)或SIP(Silicon Intellectual Property)所替代。SIP称为硅知识产权,或半导体知识产权(Semiconductor Intellectual Property),也就是芯片电路的制作方式或电路图等知识产权,在知识产权前面加上硅或半导体,是为了与一般所称的知识产权有所区分。 目前最受市场欢迎的嵌入式处理器就是由ARM公司出品的ARM系列处理器。ARM公司只提供IP授权,并不自行制造处理器。由于它的ARM RISC结构微处理器有着低消耗功率、高运算性能,以及高度集成性等特性,使得许多芯片设计公司与芯片制造公司竞相向ARM公司购买ARM处理器的核心,作为自己公司微处理器芯片中的运算核心。ARM公司也因此成为全球最大的IP供应商。 第1章 嵌入式系统设计基础
嵌入式计算机系统起源于微型机时代,但很快就进入到独立发展的单片机时代。在单片机时代,嵌入式系统以器件的形式迅速进入到传统电子技术领域中,以电子技术应用工程师为主体,实现传统电子系统的智能化,而计算机专业人员并没有真正进入单片机应用领域。因此,电子技术应用工程师以自己习惯的电子技术应用模式,从事单片机的应用开发。这种应用模式最重要的特点是:软、硬件的底层性和随意性;目标系统专业技术的密切相关性,以及缺少计算机工程设计方法的指导。 虽然在单片机时代,计算机专业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、通信技术的高速发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人员介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应用模式带有明显的计算机的工程应用特点,即基于嵌入式系统软、硬件平台,以网络、通信为主的非嵌入式底层应用。 由于嵌入式系统最大、最广、最底层的应用是传统电子技术领域的智能化改造,因此,以通晓该专业的电子技术队伍为主,用最少的嵌入式系统软、硬件开销;以8位机为主,带有浓重的电子系统设计色彩的电子系统应用模式会长期存在下去。另外,计算机专业人员会越来越多地介入嵌入式系统应用,但限于专业知识的差异,其应用领域会集中在网络、通信、多媒体、电子商务等方面,不可能替代原来电子工程师在控制、仪器仪表、机械电子等方面的嵌入式应用。因此,客观存在的两种应用模式会长期并存下去,在不同的领域中相互补充。电子系统设计模式应该从计算机应用设计模式中,学习计算机工程方法和嵌入式系统软件技术;计算机应用设计模式应该从电子系统设计模式中,了解嵌入式系统应用的电路系统特性、基本的外围电路设计方法和目标系统的基本要求等。 第1章 嵌入式系统设计基础
1.2 嵌入式处理器 嵌入式系统的核心部件是嵌入式处理器,据不完全统计,到2000年全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列,其中8051体系的占了多半。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅Philips就有近百种。现在几乎每个半导体制造商都生产嵌入式处理器,而且越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从64KB到16MB,处理速度从0.1MIPS到2000MIPS,常用封装从8个引脚到144个引脚。 §1.2.1 嵌入式处理器的分类 §1.2.2 ARM微处理器 §1.2.3 Nios微处理器 §1.2.4 DSP §1.2.5 嵌入式微处理器的选型原则 第1章 嵌入式系统设计基础
嵌入式处理器的分类 微处理器可以分成几种不同的等级,一般用字符宽度来区分:8位微处理器大部分都是用在低端应用上,也包括了外围设备或是内存的控制器;16位微处理器通常用在比较精密的应用上,需要比较长的字符宽度来处理;32位微处理器,大部分是RISC的微处理器,则提供高性能的运算能力,以满足需要大量运算的应用。 但是从应用的角度来划分,嵌入式处理器包含了下面几种类型。 1.嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的功能,这样可以大大减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。 嵌入式处理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM系列等。 嵌入式微处理器又可分为CISC和RISC两类。大家熟悉的大多数台式PC都是使用CISC微处理器,如Intel的x86。RISC结构体系有两大主流:Silicon Graphics公司(硅谷图形公司)的MIPS技术;ARM公司的Advanced RISC Machines技术。此外,Hitachi(日立公司)也有自己的一套RISC技术SuperH。 第1章 嵌入式系统设计基础
RISC和CISC是目前设计制造微处理器的两种典型技术,为达到高效的目的,采用的方法不同。它们的差异主要有以下几点。 (5)CPU:由于RISC CPU包含较少的单元电路,因而面积小、功耗低;而CISC CPU包含丰富的电路单元,因而功能强、面积大、功耗大。 (6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。 (7)易用性:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。 (8)应用范围:RISC机器更适合于嵌入式应用;而CISC机器则更适合于通用计算机。 第1章 嵌入式系统设计基础
2、嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式微控制器又称单片机,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM、RAM、总线逻辑、定时器等各种必要的功能模块。与嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。 微控制器是目前嵌入式系统应用的主流。由于微控制器的片上资源一般比较丰富,适合于控制,因此称微控制器。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以最大限度地与应用需求相匹配,从而减小功耗和成本。 嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外,还有许多半通用系列,如支持USB接口的MCU 8XC930/931、C540、C541。 值得注意的是,近年来提供X86微处理器的著名厂商AMD公司,将Am186CC/CH/CU等嵌入式处理器也称为Microcontroller,Motorola公司把以Power PC为基础的PPC505和PPC555列入单片机行列,TI公司也将其TMS320C2XXX系列DSP作为MCU来推广应用。 第1章 嵌入式系统设计基础
3.嵌入式DSP(Embedded Digital Signal Processor, EDSP) DSP对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域。 推动嵌入式DSP发展的一个重要因素是嵌入式系统的智能化。例如,各种带有智能逻辑的消费类产品、生物信息识别终端、带有加解密算法的键盘、ADSL接入、实时语音压缩解压系统、虚拟现实显示,等等。这类智能化算法一般运算量都比较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP的长处所在。 嵌入式DSP有两个发展来源,一是DSP经过单片化、EMC改造、增加片上外设成为嵌入式DSP,TI的TMS320C2000/C5000等属于此范畴;二是在通用单片机或片上系统(SOC)中增加DSP协处理器,例如Intel的MCS-296。 嵌入式DSP比较有代表性的产品是Texas Instruments的TMS320系列和Motorola的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列,用于移动通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前已经发展成为DSP56000,DSP56100,DSP56200和DSP56300等几个不同系列的处理器。DSP的设计者们把重点放在了处理连续的数据流上。如果嵌入式应用中强调对连续的数据流的处理及高精度复杂运算,则应该选用DSP器件。 第1章 嵌入式系统设计基础
4.嵌入式片上系统(System On Chip) 随着VLSI设计的普及和半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就是SOC(System on-Chip)。各种通用处理器内核和其他外围设备都将成为SOC设计公司的标准库中的器件,用标准的VHDL等硬件描述语言描述。用户只需定义出整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作芯片样品。这样,整个嵌入式系统大部分都可以集成到一块芯片中去,应用系统的电路板将变得很简洁,这将有利于减小体积和功耗,提高系统的可靠性。 SOC可以分为通用和专用两类。通用系列包括Motorola的M-Core、某些ARM系列器件、Echelon 和Motorola联合研制的Neuron芯片等。专用SOC一般专用于某类系统中,不为一般用户所知。一个有代表性的产品是Philips的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载JAVA或C语言的专用的SOC,可用于Internet安全方面。 第1章 嵌入式系统设计基础
ARM微处理器 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器,已广泛应用于工业控制、消费类电子产品、通信系统、网络系统、无线系统等各个领域。 1.ARM微处理器的应用领域 工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。 网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。 消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。 第1章 嵌入式系统设计基础
2.ARM微处理器的特点,采用RISC架构的ARM微处理器具有如下特点: 体积小、低功耗、低成本、高性能; 支持Thumb(16位)/ARM(32位)双指令集,兼容8位/16位器件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定 3.ARM微处理器系列 ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 Intel的StrongARM Intel的Xscale 其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。如ARM7系列适用于工业控制、网络设备、移动电话等应用;ARM9、ARM9E和ARM10E系列则更适合无线设备、消费类电子产品的设计。SecurCore系列专门为安全要求较高的应用而设计。 第1章 嵌入式系统设计基础
从应用的角度出发,在选择ARM微处理器时所应考虑的主要问题有以下几个方面。 ARM微处理器内核的选择。 从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,如果用户希望使用WinCE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,如ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。 系统的工作频率。 系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz~133MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz~ 233MHz,ARM10最高可以达到700MHz。 芯片内存储器的容量。 大多数的ARM微处理器片内存储器的容量都不大,需要用户在设计系统时外扩存储器,但也有部分芯片具有相对较大的片内存储空间。 片内外围电路的选择。 除ARM微处理器核以外,几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,我们称之为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等。 第1章 嵌入式系统设计基础
Nios微处理器 Nios是Altera公司特有的基于通用FPGA构架的软CPU内核。在可编程逻辑器件中,用户使用CPU,绝大多数并不是为了追求性能,而是为了PLD特有的灵活性和可定制性,同时也可以提高系统的集成度,这些正是Nios系统天生具备的。Nios是Altera公司开发的嵌入式CPU软内核,几乎可以在Altera所有的FPGA产品上实现。 器 件 设计软件 说 明 Stratix II Quartus II 最高性能,最高密度,特性丰富的平台,丰富的存储器资源 Stratix 高性能,高密度,性能丰富的平台,丰富的存储器资源 Stratix GX 高性能,带有高速穿行收发器的结构 Cyclone 低成本,ASIC的替代品——适合价格敏感的应用 APEX II 高密度,高性能平台,带有高速差分I/O标准的支持 Mercury 高性能,高带宽,中密度平台,包含有时钟恢复(CDR)电路 Excalibur 高性能,硬核处理器方案 APEX 20K 高性能,中高密度平台 FLEX 10K 低成本,中低密度平台 ACEX 1K HardCopy 高密度,大批量,ASIC的替代品 第1章 嵌入式系统设计基础
Nios II处理器是一个通用的32位RISC处理器内核。其主要特点如下。 完全的32位指令集、数据通道和地址空间; 由于Nios处理器及其外设都是用HDL语言编写的,在FPGA内部利用通用的逻辑资源实现,所以在Altera的FPGA内部实现嵌入式系统具有极大的灵活性。凭借不错的性能和非常灵活的配置,Nios已经被许多客户接受。Nios常常被应用在一些集成度较高,对成本敏感,以及功耗要求不高的场合,如远程读表器和医疗诊断设备。 Altera公司在Nios的基础上推出了其第二代嵌入式处理器软核Nios II。与前一代相比,用户的配置和使用更加灵活,同时在占用逻辑资源和性能上都有明显的改善。 Nios II处理器是一个通用的32位RISC处理器内核。其主要特点如下。 完全的32位指令集、数据通道和地址空间; 可配置的指令和数据Cache; 32个通用寄存器; 32个有优先级的外部中断源; 单指令的32×32乘除法,产生32位结果; 多种片上外设,并能够与片外存储器和外设接口; 具有硬件协助的调试模块,可以在IDE中控制处理器完成各种调试工作,如开始、停止、单步和跟踪,等等; 在不同的Nios II系统中,指令集结构(ISA)完全兼容; 性能达到150DMIPS以上 Nios II处理器内核有三种类型,用来满足不同设计的要求,分别是快速型、经济型和标准型。快速型Nios II内核(Nios II/f)具有最高的性能,经济型Nios II内核(Nios II/e)具有最低的资源占用,而标准型Nios II内核(Nios II/s)在性能和面积之问做了一个平衡。 第1章 嵌入式系统设计基础
在图中,整个Nios II处理器系统包括Nios II处理器内核(包括调试模块)、Avalon交换总线、片内用户逻辑和片上外设。 NiosⅡ处理器系统包括一个可配置的CPU软内核、FPGA片内的存储器和外设、片外的存储器和外设接口等。一个典型的Nios II处理器系统如图所示。 在图中,整个Nios II处理器系统包括Nios II处理器内核(包括调试模块)、Avalon交换总线、片内用户逻辑和片上外设。 第1章 嵌入式系统设计基础
系统中的外设,如SDRAM控制器、片内ROM、三态门、UART、定时器、LCD显示驱动电路、通用I/O、以太网接口和Compact Flash接口等都是使用FPGA内部的逻辑单元和RAM资源实现的。 Nios II是一个可灵活配置的软内核处理器。所谓可灵活配置是指,Altera提供的处理器不是一个固定的微控制器,用户可以根据性能或成本的要求,灵活地增加或裁减一些系统特性和外设。为了满足应用的要求,用户甚至可以在系统中放置多个Nios II处理器内核。 由于应用领域的不同,不同用户的系统设计可能差别很大。要求用户根据自己的系统需求,选择合适的FPGA规模。在这些系统中,如果用户逻辑需要和Nios II处理器系统间相互通信,用户逻辑可以直接挂在片内的Avalon交换总线上,而且访问时序可以由用户自己定义。 所谓软内核,是指Nios II是以一种“软”(加密网表)的设计形式交给客户使用的,它可以在几乎任何Altera的FPGA内部实现。用户根据应用的需要定制Nios II处理器的数量和类型,也可以自己定义需要的外设种类和数量,还可以自由分配外设的地址空问。用户甚至可以自己定制Nios II的指令,使得一些复杂的操作在用户指令中实现,这样可以提高某些特殊操作的性能。 在Nios II系统的开发过程中,可以认为硬件细节对软件开发人员是透明的。Nios II的软件开发环境被称为Nios Ⅱ集成开发环境(Nios Ⅱ IDE)。Nios II IDE是基于Eclipse IDE和GNU C/C++编译器的,软件开发人员可以很容易地掌握此开发环境的操作,并利用它对Nios Ⅱ系统的软件进行编译、仿真和调试。Nios II IDE同时提供了Flash Programmer的功能,在软件调试完成以后,可以通过Flash Programmer把应用程序烧到Flash ROM中,使得Nios系统在上电配置完成以后,自动从Flash中开始运行程序。 第1章 嵌入式系统设计基础
DSP DSP(Digital Signal Processing)也就是常说的数字信号处理,它利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。DSP就是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点。 在一个指令周期内可完成一次乘法和一次加法; 程序和数据空间分开,可以同时访问指令和数据; 片内具有快速RAM,通常可以通过独立的数据总线在两块中同时访问; 具有低开销或无开销循环及跳转的硬件支持; 快速的中断处理和硬件I/O支持; 具有在单周期内操作的多个硬件地址产生器; 可以并行执行多个操作; 支持流水线操作,使取指、译码和执行等操作可以重叠执行。 在近20年里,DSP在信号处理、通信、雷达等许多领域得到广泛的应用。目前,DSP的价格越来越低,性能价格比日益提高,具有巨大的应用潜力。它的主要应用有:信号处理、通信、语音、图形/图像、军事、仪器仪表、自动控制、医疗、家用电器。 第1章 嵌入式系统设计基础
从现代通信等技术对DSP的要求来看,DSP芯片有以下几个发展趋势: 向更低功耗方向发展; 向更高的性能方向发展; 目前世界上生产DSP的公司主要有TI(德州仪器)公司,AD(美国模拟器件)公司,Technologics(朗讯技术)公司和Motorola(摩托罗拉)公司四大公司,而TI公司则是世界上最大的DSP供应商。著名的TMS320系列产品就是该公司的DSP产品。 DSP的基本结构为哈佛结构,并结合了流水线操作、专业的硬件乘法器、特殊的DSP指令和快速的指令周期,使得它非常适合于数字信号处理应用。在目前,现代通信技术的发展,特别是数字通信、移动通信和卫星通信的普及,数字音响的商业化,DSP的市场前景越来越好。 以移动电话设备来说,通信流程大概是当手机通过天线收到射频信号后,将过滤后的高频信号送到混频器降为中频信号,再经过解调器变为低频或基频信号后,送至数字信号处理器处理,经过处理的信号再予以调节及解码,便可以通过扬声器送出,成为语音或是直接转换成各类数据。发话时,信号则通过相反的程序处理与送出,所以手机包含了射频系统与数字信号处理器再加上一般微处理器系统,成为一个高度集成的嵌入式系统。 从现代通信等技术对DSP的要求来看,DSP芯片有以下几个发展趋势: 向更低功耗方向发展; 向更高的性能方向发展; 向定制DSP芯片方向发展; 向集成化方向发展; 提供更加完善的开发环境。 第1章 嵌入式系统设计基础
嵌入式微处理器的选型原则 调查市场上已有的CPU供应商。 CPU的处理速度。 技术指标。 处理器的低功耗。 处理器的软件支持工具。 处理器是否内置调试工具。 处理器供应商是否提供评估板。 选择一个嵌入式系统运行所需要的微处理器,在很多时候运算速度并不是最重要的考虑内容,有时候也必须考虑微处理器制造厂商对于该微处理器的支持态度,有些嵌入式系统产品一用就是几十年,如果过了五六年之后需要维修,却已经找不到该种微处理器的话,势必全部产品都要淘汰,所以许多专门生产嵌入式系统微处理器的厂商,都会为嵌入式系统的微处理器留下足够的库存或是生产线,即使过好几年之后还可以找到相同型号的微处理器或者完全兼容的替代品。 第1章 嵌入式系统设计基础
1.3 嵌入式操作系统 提到桌面型计算机的操作系统,全世界超过九成的PC使用的是微软(Microsoft)公司的Windows操作系统,其他也有一些颇具知名度的操作系统,如苹果(Apple)公司的MacOS,工作站级计算机常用的Sun公司的Solaris,还有Linux或是FreeBSD等免费的操作系统。但是提到嵌入式系统中所使用的操作系统,一般用户就很少了解了。 由于大型嵌入式系统需要完成复杂的功能,所以需要操作系统来完成各任务之间的调度。由于桌面型操作系统的体积,以及实时性等特性不能满足嵌入式系统的要求,从而促进了嵌入式操作系统的发展 1.3.1 操作系统的概念和分类 1.3.2 Linux 1.3.3 C/OS 1.3.4 Windows CE 第1章 嵌入式系统设计基础
操作系统的概念和分类 操作系统(OS,Operating System)的基本思想是隐藏底层不同硬件的差异,向在其上运行的应用程序提供一个统一的调用接口。应用程序通过这一接口实现对硬件的使用和控制,不必考虑不同硬件操作方式的差异。操作系统示意图如下所示。 很多产品厂商选择购买操作系统,在此基础上开发自己的应用程序,形成产品。事实上,因为嵌入式系统是将所有程序,包括操作系统、驱动程序、应用程序的程序代码全部烧写进ROM里执行,所以操作系统在这里的角色更像是一套函数库(Library)。 操作系统主要完成三项任务:内存管理、多任务管理和外围设备管理。 应用程序 操作系统 系统界面 驱动程序 硬件 第1章 嵌入式系统设计基础
嵌入式操作系统(Embedded Operating System) 负责嵌入式系统的全部软、硬件资源的分配、调度、控制、协调;它必须体现其所在系统的特征,能够通过加载/卸载某些模块来达到系统所要求的功能。 EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点。 强稳定性,弱交互性:嵌入式系统一旦开始运行就不需要用户过多的干预,这就要求负责系统管理的EOS具有很强的稳定性; 较强的实时性:EOS实时性一般较强,可用于各种设备的控制当中; 可伸缩性:开放、可伸缩性的体系结构; 外设接口的统一性:提供各种设备驱动接口。 嵌入式系统的操作系统核心通常要求体积要很小,因为硬件ROM的容量有限,除了应用程序之外,不希望操作系统占用太大的存储空间。事实上,嵌入式操作系统可以很小,只提供基本的管理功能和调度功能,缩小到10KB到20KB以内的嵌入式操作系统比比皆是,相信用惯微软的Windows系统的用户,可能会觉得不可思议。 不同的应用场合会产生不同特点的嵌入式操作系统,但都会有一个核心(Kernel)和一些系统服务(System Service)。操作系统必须提供一些系统服务供应用程序调用,包括文件系统、内存分配、I/O存取服务、中断服务、任务(Task)服务、时间(Timer)服务等,设备驱动程序(Device Driver)则是要建立在I/O存取和中断服务上的。有些嵌入式操作系统也会提供多种通信协议,以及用户接口函数库等。 第1章 嵌入式系统设计基础
实时操作系统(Real-Time Operating System,RTOS),是指操作系统本身要能在一个固定时限内对程序调用(或外部事件)做出正确的反应,亦即对时序与稳定性的要求十分严格。目前国际较为知名的实时操作系统有WindRiver的“VxWorks”、QNX的“NeutrinoRTOS”、Accelerated Technology的“Nucleus Plus”、Radisys的“OS/9”、Mentor Graphic的“VRTX”、LynuxWorks的“LynuxOS”,以及Embedded Linux厂商所提供的Embedded Linux版本,如TimeSys的“TimeSys Linux/Real Time”、FSMLabs的“RTLinux”、Lynux Works的“BlueCat RT”等。其产品主要应用于航天、国防、医疗、工业控制等领域,这些领域的设备需要高度精确的实时操作系统,以确保系统任务的执行不会发生难以弥补的意外。目前,实时操作系统也开始向信息家电等消费类电子产品领域扩展。例如WindRiver的“VxWorks”原本从航天、国防领域起家,如今也应用在网络电话、视频转换器等消费类电子产品上。 通用型操作系统:执行性能与反应速度比起实时操作系统,相对没有那么严格。目前较知名的有Microsoft的“Windows CE”、Palm source的“Palm OS”、Symbian的“Symbian OS”以及Embedded Linux厂商所提供的各式Embedded Linux版本,如Metrowerks的“Embedix”、TimeSys的“TimeSys Linux/GPL”、LynuxWorks的“BlueCat Linux”、PalmPalm的“Tynux”等,其产品主要应用于手持式设备、各式联网家电、网络设备等领域。 嵌入式操作系统的性能通常取决于核心程序,而核心的工作主要在任务管理(Task Management)、任务调度(Task Scheduling)、进程间的通信(IPC)、内存管理(Memory Management)。 第1章 嵌入式系统设计基础
Linux Linux是目前最为流行的一款开放源代码的操作系统,从1991年问世到现在,不仅在PC平台,还在嵌入式应用中大放光彩,逐渐形成了与其他商业EOS抗衡的局面。目前正在开发的嵌入式系统中,70%以上的项目选择Linux作为嵌入式操作系统。 经过改造后的嵌入式Linux具有适合于嵌入式系统的特点。 内核精简,高性能、稳定; 良好的多任务支持; 适用于不同的CPU体系架构:支持多种体系架构,如X86、ARM、MIPS、ALPHA、SPARC等; 可伸缩的结构:可伸缩的结构使Linux适合于从简单到复杂的各种嵌入式应用; 外设接口统一:以设备驱动程序的方式为应用提供统一的外设接口; 开放源码,软件资源丰富:广泛的软件开发者的支持,价格低廉,结构灵活,适用面广; 完整的技术文档,便于用户的二次开发。 第1章 嵌入式系统设计基础
C/OS-Ⅱ C/OS-Ⅱ是Jean J. Labrosse在1990年前后编写的一个实时操作系统内核。名称C/OS-II来源于术语Micro-Controller Operating System(微控制器操作系统)。它通常也称为MUCOS或者UCOS。 严格地说,C/OS-Ⅱ只是一个实时操作系统内核,它仅仅包含了任务调度、任务管理、时间管理、内存管理和任务间通信和同步等基本功能,没有提供输入输出管理、文件管理、网络等额外的服务。但由于C/OS-Ⅱ良好的可扩展性和源码开放,这些功能完全可以由用户根据需要自己实现。 C/OS-Ⅱ的目标是实现一个基于优先级调度的抢占式实时内核,并在这个内核之上提供最基本的系统服务,例如信号量、邮箱、消息队列、内存管理、中断管理等。虽然C/OS-Ⅱ并不是一个商业实时操作系统,但C/OS-Ⅱ的稳定性和实用性却被数百个商业级的应用所验证,其应用领域包括便携式电话、运动控制卡、自动支付终端、交换机等。 C/OS-Ⅱ获得广泛使用不仅仅是因为它的源码开放,还有一个重要原因,就是它的可移植性。C/OS-Ⅱ的大部分代码都是用C语言写成的,只有与处理器的硬件相关的一部分代码用汇编语言编写。可以说,C/OS-Ⅱ在最初设计时就考虑到了系统的可移植性,这一点和同样源码开放的Linux很不一样,后者在开始的时候只是用于x86体系结构,后来才将和硬件相关的代码单独提取出来。 目前C/OS-Ⅱ支持ARM、PowerPC、MIPS、68k/ColdFire和x86等多种体系结构。 第1章 嵌入式系统设计基础
Windows CE 从多年前发表Windows CE开始,微软就开始涉足嵌入式操作系统领域,如今历经WinCE 2.0、3.0,新一代的WinCE呼应微软.NET的意愿,定名为“Windows CE.NET”(目前最新版本为5.0)。WinCE主要应用于PDA,以及智能电话(smart phone)等多媒体网络产品。微软于2004年推出了代号为“Macallan”的新版WinCE系列的操作系统。 Windows CE.NET的目的,是让不同语言所写的程序可以在不同的硬件上执行,也就是所谓的.NET Compact Framework,在这个Framework下的应用程序与硬件互相独立无关。而核心本身是一个支持多线程以及多CPU的操作系统。在工作调度方面,为了提高系统的实时性,主要设置了256级的工作优先级以及可嵌入式中断处理。 如同在PC Desktop环境,Windows CE系列在通信和网络的能力,以及多媒体方面极具优势。其提供的协议软件非常完整,如基本的PPP、TCP/IP、IrDA、ARP、ICMP、Wireless Tunable TCP/IP、PPTP、SNMP、HTTP,等等几乎应有尽有,甚至还提供了有保密与验证的加密通信,如PCT/SSL。而在多媒体方面,目前在PC上执行的Windows Media和DirectX都已经应用到Windows CE 3.0以上的平台。这些包括Windows Media Technologies 4.1、Windows Media Player 6.4 Control、DirectDraw API、DirectSound API和DirectShow API,其主要功能就是对图形、影音进行编码译码,以及对多媒体信号进行处理。 第1章 嵌入式系统设计基础