- 嵌入式Linux系统开发与应用
- 金伟正编著
- 6389字
- 2020-08-27 09:05:51
1.1 嵌入式系统概述
1.1.1 嵌入式系统的历史
实际上嵌入式系统这个概念很早以前就已经存在了。在通信方面,嵌入式系统在1960年就被用于对电子机械电话交换的控制,当时被称为存储式程序控制系统(Stored Program Control)。那时还没有出现操作系统的概念,对每一个应用都需要提供整个计算机的设计。后来,随着微处理器的出现,可以提供一个中央计算引擎。利用微处理器,可以组成一个基于由总线连接起来的计算机硬件体系结构,并且提供一个通用功能的编程模型,从而简化了编程。
嵌入式系统的概念是在1970年左右出现的。不过在当时,大部分都是由汇编语言完成的,而且这些汇编程序只能用于某一种固定的微处理器。当这种微处理器过时之后,这种嵌入式系统就没有用了;并且还要开始对新的微处理器编写新的嵌入式系统。这个时候的嵌入式系统很多都不用操作系统,它们只是为了实现某个控制功能,使用一个简单的循环控制对外界的控制请求进行处理,即所谓的前后台系统或超级循环系统。
C语言的出现使得操作系统开发变得越来越简单。利用C语言可以很快地构建一个小型的、稳定的操作系统。众所周知,C语言的作者Dennis M.Ritchie和Brian W.Kemighan利用它写出了著名的UNIX操作系统,直接影响了近30年计算机业的发展;同时,对开发嵌入式系统来说,在效率和速度上都提高了很多。
在未来的社会里,使用嵌入式系统的情形会越来越多,人们可以不接触计算机,但是不可能不接触嵌入式系统。嵌入式系统可能存在于生活的每个角落:您家里可能就是通过一个嵌入式系统控制的中心,它可以管理您家里的所有家电,控制家庭和外界网络的连接,让您的生活更为方便;在您坐车的时候,汽车电脑可以通过全球定位系统(GPS)来判断自己的具体位置,利用嵌入式智能系统判断走哪条路比较方便。而且随着因特网的飞速发展及因特网技术与信息家电、工业控制技术和射频通信技术等紧密结合,嵌入式设备与因特网的结合将代表着嵌入式技术的真正未来,催生出物联网的产生和发展。
1.1.2 什么是嵌入式系统
什么是嵌入式系统?根据国际电气和工程师协会(IEEE)所做的定义,嵌入式系统是控制、监视或辅助某个设备、机器或工厂运作的装置。它具备下列4项特性:
用来执行特定功能;
以微型计算机与周边外设构成核心;
需要严格的时序与稳定度;
全自动循环操作。
目前国内普遍认同的定义是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软、硬件可裁减,适用于应用系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序四个部分组成,用于实现对其他设备的控制、监视或管理等目标。
1.1.3 嵌入式系统的特点
嵌入式系统通常具有如下一些特点:
嵌入式系统是面向用户、面向产品、特定应用的。嵌入式CPU与通用型系统的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中。它通常都具有功耗低、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化。
嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余,力争在同样的硅片面积上实现更高的性能。这样才能在具体应用中对处理器的选择更具有竞争力。
嵌入式系统和具体应用有机地结合在一起,它的升级换代也和具体产品同步进行,因此嵌入式系统产品一旦进入市场,就具有较长的生命周期。
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或处理器中,而不是存储于磁盘等载体中。由于嵌入式系统的运算速度和存储容量仍然存在一定程度的限制,同时由于大部分嵌入式系统必须具有较高的实时性,因此对程序的质量,特别是可靠性,有着较高的要求。
嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。
1.1.4 嵌入式处理器
从硬件方面来讲,嵌入式系统的核心部件是各种类型的嵌入式处理器。目前据不完全统计,全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般为64 KB~4 GB,处理速度从0.1 MIPS(非指令每秒)到2000MIPS,常用封装从8个引脚到576个引脚等。嵌入式处理器一般具备以下4个特点:
对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度。
具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
可扩展的处理器结构能最迅速地开发出满足应用的最高性能的嵌入式微处理器。
嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,有的需要功耗只有毫瓦(mW)级。
根据其现状,嵌入式处理器可以分成4类,即嵌入式微处理器、嵌入式微控制器、嵌入式数字信号处理器(EDSP),嵌入式片上系统嵌入式处理器的分类,如图1.1所示。
图1.1 嵌入式处理器的分类
1. 嵌入式微处理器(Embedded Microprocessor Unit,EMPU)
嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都有了增强。
和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等元器件。嵌入式微处理器及其存取器、总线、外设等安装在一块电路板上,称为单板计算机,如STDBUS、PC104等。近年来,美国、德国、日本的一些公司又开发出类似“火柴盒”式名片大小的嵌入式计算机系列OEM产品。
嵌入式微处理器目前主要有Am186/88、386EX、Power PC、68000、MIPS、ARM系列等。
2. 嵌入式微控制器(Embedded Microcontroller Unit,EMCU)
嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时计数器、watchdog、I/O、串口、脉宽调制输出、A/D、D/A、Flash ROM、EEPROM、LAN控制器等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,但功能不变,从而减少功耗和成本。
和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合用于控制,因此称为微控制器。
嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列,如支持USB接口的MCU 8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD的MCU及专用MCU和兼容系列。目前MCU占嵌入式系统约70%的市场份额。
特别值得注意的是近年来提供X86微处理器的著名厂商AMD公司,将Am186CC/CH/CU等嵌入式处理器称为微控制器(Microcontroller)。Freescale公司把以Power PC为基础的PPC505和PPC555列入单片机行列。TI公司也将其OMAP、MSP430、TMS320C2XXX系列DSP作为MCU进行推广。
3. 嵌入式数字信号处理器(Embedded Digital Signal Processor:EDSP)
EDSP处理器对系统结构和指令进行了特殊设计,使其适合执行DSP(数字信号处理)算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域,DSP应用正在从通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器有两个发展来源,一是DSP处理器经过单片化、EMC改造、增加片上外设成为嵌入式DSP处理器,TI公司的TMS320C2000/C5000等属于此范畴;二是在通用单片机或SoC中增加DSP协处理器,例如Intel公司的MCS-296和Infineon公司(英飞凌公司)的TriCore,TI的达芬奇处理器等。
推动嵌入式DSP处理器发展的另一个因素是嵌入式系统的智能化,如各种带有智能逻辑的消费类产品、生物信息识别终端、带有加解密算法的键盘、ADSL接入、实时语音压/解系统、实时图像压/解系统、虚拟现实显示等。这类智能化算法一般运算量都较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处。
嵌入式DSP处理器比较有代表性的产品是TI公司的TMS320系列和Freescale公司的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列、移动通信的C5000系列,以及性能更高的C6000和Davici系列。DSP56000目前已经发展成为DSP56000、DSP56100、DSP56200和DSP56300等几个不同系列的处理器。另外Philips公司今年也推出了基于可重置嵌入式DSP结构低成本、低功耗技术制造的R.E.A.LDSP处理器,特点是具备双Harvard结构和双乘/累加单元,应用目标是大批量消费类产品。此外还有ADI公司推出的ADSP2K系类、Shark系列、TrigShark、Blackfin系列的DSP。
4. 嵌入式片上系统(System on Chip,SoC)
随着EDA的推广和VLSI设计的普及化,以及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已来临,这就是SoC。各种通用处理器内核将作为SoC设计公司的标准库,和许多其他嵌入式系统外设一样,成为VLSI设计中一种标准的器件,用标准的VHDL等语言描述存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样,除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。
SoC可以分为通用和专用两类。通用系列包括Infineon公司的TriCore、FreescaIe公司的M-core、某些ARM系列器件、EchelcIn公司和Freescale公司联合研制的Neuron芯片等。专用SoC一般专用于某个或某类系统中,不为一般用户所知。具有代表性的产品是Philips的SmartxA,它将xA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载Java或C语言的专用的SoC,可用于公众互联网如因特网安全方面。SoC芯片也将在声音、图像、影视、网络和系统逻辑等应用领域中发挥重要作用。
目前的开发工具平台主要分为以下几类:实时在线仿真系统ICE(In-Circuit Emulator)、高级语言编译器(Compiler Tools)、源程序模拟器(Simulator)、实时多任务操作系统RTOS(Real Time multi-tasking Operation System)。其中RTOS是嵌入式系统的软件开发平台,它的引入解决了随着嵌入式系统中软件比重不断上升、应用程序越来越大而带来的嵌入式软件开发标准化的难题。
1.1.5 嵌入式系统的应用领域
嵌入式系统技术具有非常广阔的应用前景,其应用领域如下。
1. 工业控制
基于嵌入式芯片的工业自动化设备具有很大的发展空间,目前已经有大量的8位、16位、32位、64位嵌入式微控制器应用于工业过程控制、数控机床、电力系统、电网安全、电网设备监测和石油化工系统等领域。
2. 交通运输
在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术得到了广泛的应用,内嵌GPS模块、GSM模块的移动定位导航终端成功地应用于各种运输行业。
3. 信息家电
信息家电将成为嵌入式系统最大的应用领域,电视、电冰箱、空调、洗衣机、微波炉等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使不在家也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。网络视频电话就是典型的信息家电。这些技术推动了物联网的到来。
4. POS网络和电子商务
公共交通无接触智能卡发行系统、公共电话卡发行系统、自动售货机、各种智能ATM终端全面进入人们的生活,实现了手持一卡行遍天下。
5. 环境监测
环境监测包含水文资料实时监测、防洪体系和水土质量监测、堤坝安全、地震监测网、实时气象信息网、水源和空气污染监测等。在很多环境恶劣、地况复杂的地区,嵌入式系统将实现无人监测。
6. 机器人
嵌入式芯片的发展将使机器人在微型化、智能化方面的优势更明显,同时会大幅度地降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。
除了以上这些应用领域,嵌入式系统还有其他方面的应用,尤其是在控制方面的应用。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品的控制协议也需要生产厂家的制定和统一。同样,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现。所以开发嵌入式系统有着十分重要的意义。
1.1.6 嵌入式系统的发展趋势
计算机应用的普及、互联网技术的实用,以及纳米微电子技术的突破,正有力地推动着21世纪工业生产、商业活动、科学实验和家庭生活等领域自动化和信息化进程。全过程自动化产品制造、大范围电子商务活动、高度协同科学实验及现代化家庭起居,为嵌入式产品造就了崭新而巨大的商机。除了沟通信息高速公路的交换机、路由器和MODEM,嵌入式系统还可以构建CIMS(Computer Integrated Manufacturing Systems)所需的DCS(Distributed Control System)和机器人及规模较大的家用汽车电子系统。最有产量效益和时代特征的嵌入式产品应数因特网上的信息家电,如Web可视电话、Web游戏机、Web PDA(俗称电子商务、商务通)、WAP电话手机及多媒体产品,如STB(电视机顶盒)、DVD播放机、硬盘播放器、电子阅读机等。
以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景、注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战。这主要包括:支持日趋增长的功能密度、灵活的网络连接、轻便的移动应用和多媒体的信息处理。此外,当然还须应对更加激烈的市场竞争。
1. 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持
随着因特网技术的成熟、带宽的提高,ICP(Internet Content Provider,因特网内容提供商)和ASP(Active Server Page,活动服务器页面)在网上提供的信息内容日趋丰富,应用项目多种多样,如手机、电话座机、电冰箱、微波炉、洗衣机等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来实现复杂的控制功能,简化应用程序设计,保障软件质量和缩短开发周期。
目前,国外商品化的嵌入式实时操作系统,已进入我国市场的有WindRiver、Microsoft、QNX和Nucleus等产品。我国自主开发的嵌入式系统软件产品如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,不仅包括DeltaCore嵌入式实时操作系统,而且还包括LamdaTools交叉开发工具套件、测试工具、应用组件等;此外,中科院也推出了Hopen嵌入式操作系统。
2. 联网成为必然趋势
为适应嵌入式分布处理结构和应用上网的需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入式设备必须配有通信接口,相应地需要TCP/IP协议簇软件支持。由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE 1394、USB、CANBUS、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。
3. 支持小型电子设备实现小尺寸、微功耗和低成本
为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术的要求。例如,选用最佳的编程模型和不断改进算法,采用Java编程模式,优化编译器性能。因此,既要软件人员有丰富经验,更需要发展先进嵌入式软件技术,如Java、Web和WAP等。
4. 提供精巧的多媒体人机界面
嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过方向盘、脚刹板和操纵杆等实现。人们与信息终端交互要求具有以GUl屏幕为中心的多媒体界面。手写文字输入、语音拨号上网、收发电子邮件及彩色图形、图像已取得初步成效。目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但离掌式语言同声翻译还有很大距离。