嵌入式系统是后PC时代被广泛应用的计算机系统。在人们的日常生活、学习和工作中所接触的仪器或设备中,都能嵌入具有强大控制能力和计算能力的嵌入式计算机系统。嵌入式系统不仅广泛应用于成熟领域,如工业控制、家用电器、通信设备、网络设备、医疗器械和军事装置等,而且随着嵌入式系统的不断发展还衍生出了许多新的应用,如PDA、智能手机、MP4、运动控制器和无线路由器等。可以预见,嵌入式系统随着技术的不断完善、使用范围的逐步扩展、开发环境的更加方便易用,必将会有大量的技术人员投入其中,使我国硬件开发人员的队伍不断壮大,促进国民经济的快速发展。
本节首先介绍嵌入式系统的定义与“三要素”,其次介绍嵌入式系统的应用过程和发展趋势,最后介绍嵌入式系统的组成。
嵌入式系统的定义有许多,但它们的真正含义基本相同,以下是具体的定义内容。
根据电气与电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。
目前国内一个普遍被认同的定义是:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
也可以这样定义:嵌入式系统是一种专用的单片计算机系统,作为装置或设备的主控或监测器件,焊接在它们的印制电路板(PCB)中,完成它应具有的功能。
嵌入式系统一般由嵌入式微处理器芯片、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成。
嵌入式系统的3个基本要素是指“嵌入性”“专用性”“计算机系统”。嵌入性指它是以芯片的形式嵌入(潜伏)在PCB中;专用性指它是为特定的设备量身定做的软硬件系统;计算机系统是说,它虽然以芯片的形式显现,但是它具有一台计算机的软硬件功能。
目前嵌入式系统的应用无处不在,8位单片机嵌入式系统,例如MCS-51系列,在低端产品中是主流,它占整个嵌入式系统的市场份额约为70%。在中、高端产品中ARM使用占70%的份额,在移动电话、数码照相机、数字电视的机顶盒、微波炉、汽车内部的防抱死制动系统等装置或设备中都使用了ARM嵌入式系统。
MCS-51系列单片机是最早应用的嵌入式系统之一,单片机作为各类工业控制和飞机、导弹等武器装备中的微控制器,用来执行一些单线程的程序,完成监测、伺服和设备指示等多种功能,一般没有操作系统的支持,程序设计采用汇编语言或C51语言。
采用汇编语言编写的程序具有效率高、占用内存少、实时性强且控制时间精准等优点。缺点是对技术人员的要求高,开发周期相对长一些。
现在使用意法半导体(ST)公司基于ARM9的ARM Cortex-M3内核产品——STM32微处理器芯片开发的实时控制设备,大部分都是在无操作系统的情况下使用C语言开发的,它比在有操作系统下开发具有更高的运行效率。目前开发要求具有强实时性的装备也是在“裸机”(无操作系统)情况下开发的。
20世纪80年代,出现了大量具有高可靠性、低功耗的嵌入式CPU。芯片上集成有CPU、I/O接口、串行接口及RAM、ROM等部件,是面向I/O设计的微控制器在嵌入式系统设计中的应用。一些简单的嵌入式操作系统开始出现并得到迅速发展,程序设计人员也开始基于一些简单的“操作系统”开发嵌入式应用软件,如较为常用的μC/OS嵌入式操作系统。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,大幅缩短了开发周期,提高了开发效率。
20世纪90年代,面对分布式控制、柔性制造、数字化通信和信息家电等巨大的市场需求,嵌入式系统飞速发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,如实时操作系统(Real-Time Operating System,RTOS),从而使应用软件的开发变得更加简单。
进入21世纪,Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式技术与Internet技术的结合正在推动着嵌入式系统的飞速发展。由于Linux是UNIX的PC版本,具有强大的网络功能,且为开源软件,因此嵌入式Linux操作系统得到了广泛的应用。微软公司也看到了嵌入式市场的广阔前景,推出Windows CE嵌入式操作系统,对于熟悉Windows环境的开发人员来讲,也可进行基于Windows平台的嵌入式系统开发。
面对嵌入式技术与Internet技术的结合,嵌入式系统的研究和应用呈现出以下发展趋势。
1)新的微处理器层出不穷,大都朝着精简系统内核、优化关键算法、降低功耗和软硬件成本、提供更加友好的多媒体人机交互界面的方向发展。
2)Linux、Windows CE、Palm OS等嵌入式操作系统迅速发展。嵌入式操作系统自身结构的设计体现出更加便于移植的特性,具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,能够在短时间内支持更多的微处理器。
3)嵌入式系统的开发成为一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。
嵌入式系统的组成包括嵌入式系统硬件组成和软件组成两部分。
嵌入式系统的硬件组成主要包含嵌入式处理器、外围设备接口和执行装置(被控对象)等。
嵌入式系统的软件组成,对于裸机开发来讲主要有以下内容:嵌入式处理器芯片内部三总线频率的设置、配置存储器芯片的设置;7种异常模式堆栈指针的设置;中断指针的传递程序;为C语言的运行创建环境;I/O端口的配置与控制程序、应用程序等。以上5个部分也是引导启动程序(Bootloader)的主要内容。
对于基于操作系统的嵌入式软件开发,主要包括Bootloader的移植、操作系统内核的移植、文件系统的移植、I/O设备驱动程序的编写以及加载、图形用户接口程序设计、应用程序的设计等。
嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件层和应用软件层。执行装置接收嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
嵌入式系统从整体上来讲也可以分为硬件层、中间层、系统软件层和应用软件层。
嵌入式处理器是隐藏在控制设备或装置中,完成接收现场数据,进行数据处理,并向执行装置发出控制命令的微处理器。1971年Intel公司推出了Intel4004,1974年推出了Intel8080,1976年zilog制造了与8080兼容的CPU Z-80,这类处理器(称为CPU)所构造的是单板微型计算机系统,简称单板机,应用在控制设备中,它们都是嵌入式应用的前身。之后出现了简称单片机的单片微型计算机。例如,Intel公司在1976年9月推出的MCS-51系列8位单片机,它的内部不但集成了CPU,还集成了存储器和I/O接口等计算机的元素,但这时嵌入式系统的概念还不是热点的技术名词。一直到20世纪90年代后期32位ARM微处理器的广泛使用,嵌入式系统的概念才被广大技术人员所熟知。现在人们把具有计算机基本组成元素的单片微型集成电路芯片,从MCS-51系列单片机开始到目前的32位ARM微处理器统称为嵌入式系统,但从技术人员的角度出发,嵌入式系统主要指的是32位ARM微处理器单片机。
嵌入式微处理器按CPU的处理能力可分为8位、16位、32位和64位。一般把处理能力在16位及以下的称为嵌入式微控制器(Embedded Microcontroller),32位及以上的称为嵌入式微处理器。
嵌入式微处理器内部将CPU、ROM、RAM及I/O等部件集成到同一个芯片上,称为单芯片微控制器(Single Chip Microcontroller)。
根据用途,可以将嵌入式芯片系统分为嵌入式微控制器、嵌入式微处理器、嵌入式DSP处理器、嵌入式片上系统、双核或多核处理器等类型。
嵌入式微控制单元(Micro Controller Unit,MCU)又称为单片机,芯片内部集成了ROM、RAM、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出(PWM)、A-D、D-A、Flash、E 2 PROM等各种必要功能和外设。嵌入式微控制器具有单片化、体积小、功耗和成本低、可靠性高等特点,约占嵌入式系统市场份额的70%。
嵌入式微控制器的代表芯片就是MCS-51系列单片机,主要使用汇编语言或C语言进行裸机开发。
嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)是专门用于信号处理方面的处理器,芯片内部采用程序和数据分开存储及传输的哈佛结构,具有专门的硬件乘法器,采用流水线操作,提供特殊的DSP指令,可用来快速地实现各种数字信号处理算法,使其处理速度比其他性能优异的CPU还快10倍以上。
从20世纪80年代到现在,缩小DSP芯片尺寸始终是DSP技术的发展方向。DSP处理器已发展到第7代产品,多数基于精简指令集计算机(Reduced Instruction Set Computer,RISC)结构,并将几个DSP芯核、MPU芯核、专用处理单元、外围电路单元和存储单元集成在一个芯片上,成为DSP系统级集成电路,系统集成度极高。
DSP运算速度的提高主要依靠新工艺改进芯片结构。目前一般的DSP运算速度为100MIPS(即每秒钟可运算1亿条指令)。TI的TM320C6X芯片由于采用超长指令字(Very Long Instruction Word,VLIW)结构设计,其处理速度已高达2000MIPS。按照发展趋势,DSP的运算速度完全可能再提高100倍(达到1600GIPS)。
目前DSP芯片在机械电子的控制方面运用广泛,如作为变频器、PLC的控制核心。它的开发基本上也是在裸机中进行的,主要使用C语言进行裸机程序设计。
嵌入式微处理器(Micro Processor Unit,MPU)由通用计算机的CPU发展而来,嵌入式微处理器只保留和嵌入式应用紧密相关的功能硬件,去除其他冗余功能部分,以最低的功耗和资源实现嵌入式应用的特殊要求。通常嵌入式微处理器把CPU、ROM、RAM及I/O等集成到同一个芯片上。32位微处理器采用32位的地址总线和数据总线,其地址空间达到了2 32 =4GB。目前主流的32位嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列,以下进行简要介绍。属于这些系列的嵌入式微处理器产品有很多,达千种以上。
ARM(Advanced RISC Machine)公司的ARM微处理器体系结构被公认为是嵌入式应用领域领先的32位嵌入式RISC微处理器结构。ARM体系结构目前发展并定义了9种不同的版本。从版本v1到版本v9,ARM体系的指令集功能不断扩大。ARM处理器系列中的各种处理器,虽然在实现技术、应用场合和性能方面都不相同,但只要支持相同的ARM体系版本,基于它们的应用软件是兼容的。
目前,大量的移动电话、游戏机、平板计算机和机顶盒等都已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户,如Intel、Samsung、TI、Freescale、ST等公司。
美国斯坦福大学的Hennessy教授领导的研究小组研制的无互锁流水级微处理器(Microprocessor without Interlocked Piped Stages,MIPS)是世界上非常流行的一种RISC处理器,其机制是尽量利用软件办法避免流水线中的数据相关问题。
从20世纪80年代初期MIPS处理器发明至今的40多年里,MIPS处理器以其高性能的处理能力被广泛应用于路由器、调制解调设备、电视、游戏、打印机、DVD播放器等广泛领域。
PowerPC是Freescale(原Motorola)公司的产品。PowerPC的RISC处理器采用了超标量处理器设计和调整内存缓冲器,修改了指令处理设计,完成一个操作所需的指令数比复杂指令集计算机(Complex Reduced Instruction Set Computer,CISC)结构的处理器要多,但完成操作的总时间却减少了。
PowerPC内核采用独特分支处理单元可以让指令预取效率大大提高,即使指令流水线上出现跳转指令,也不会影响到其运算单元的运算效率。PowerPC RISC处理器设计了多级内存高速缓冲区,以便让那些正在访问(或可能会被访问)的数据和指令总是存储在调整内存中。这种内存分层和内存管理设计,使指令系统的内存访问性能非常接近调整内存,但其成本却与低速内存相近。
嵌入式片上系统(System On Chip,SOC)最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块,而且具有极高的综合性,在一个芯片内部运用超高速硬件描述语言,如VHDL等,即可实现一个复杂的系统。与传统的系统设计不同,用户不需要绘制庞大复杂的电路板来一点点地连接焊制,只需要使用精确的语言,综合时序设计直接在器件库中调用各种通用处理器的标准,然后在仿真之后就可以直接交付芯片厂商进行生产,设计生产效率高。
在SOC中,绝大部分系统构件都是在系统内部的,系统简洁,系统的体积和功耗小,可靠性高。SOC芯片已在声音、图像、影视、网络及系统逻辑等领域中广泛应用。