首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

面向二十一世纪的嵌入式系统综述

面向二十一世纪的嵌入式系统综述

摘要:本文根据应用领域,对计算机分类提出了嵌入式计算机和通用计算机的新定义,总结了嵌入式系统工业及其开发的特点,概括了嵌入式处理器的发展及现状。实时多任务操作系统(RTOS)已成为嵌入式系统的热点,本文对RTOS及其与嵌入式开发的关系进行了详细讨论,提出了当前中国嵌入式系统应用行业面临的困惑和挑战以及建立嵌入式应用产业化的设想。


关键词:嵌入式软件工业,嵌入式系统,实时多任务操作系统(RTOS)



1、计算机工业的分类


以往我们按照计算机的体系结构、运算速度、结构规模、适用领域,将其分为大型计算机、中型机、小型机和微型计算机,并以此来组织学科和产业分工,这种分类沿袭了约40年。近10年来随着计算机技术的迅速发展,实际情况产生了根本性的变化,例如70年代末定义的微计算机演变出来的个人计算机(PC),如今已经占据了全球计算机工业的90%市场,其处理速度也超过了当年大、中型计算机的定义。随着计算机技术和产品对其它行业的广泛渗透,以应用为中心的分类方法变得更为切合实际,也就是按计算机的嵌入式应用和非嵌入式应用将其分为嵌入式计算机和通用计算机。


通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出现并应用在社会的各个方面,其典型产品为PC;而嵌入式计算机则是以嵌入式系统的形式隐藏在各种装置、产品和系统中。



2、嵌入式系统(Embedded Systems)


嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。


嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了5-10个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示卡、显示器、Modem、网卡、声卡、打印机、扫描仪、数字相机、USB集线器等均是由嵌入式处理器控制的。在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。


嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。


今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(EmbeddedSystemConference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。1998年11月在美国加州圣*何塞举行的嵌入式系统大会上,基于 RTOS的Embedded Internet成为一个技术新热点。


美国著名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑)工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。

51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
3、嵌入式系统工业(Embedded System Industry, ESI)的特点和要求

3.1 嵌入式系统工业是不可垄断的高度分散的工业

从某种意义上来说,通用计算机行业的技术是垄断的。占整个计算机行业90%的PC产业,80%采用Intel的x86体系结构,芯片基本上出自 Intel,AMD,Cyrix等几家公司。在几乎每台计算机必备的操作系统和文字处理器方面,Microsoft的Windows及Word占80%- 90%,凭借操作系统还可以搭配其它应用程序。因此当代的通用计算机工业的基础被认为是由Wintel(Microsoft和Intel在90年代初建立的联盟)垄断的工业。

嵌入式系统则不同,它是一个分散的工业,充满了竞争、机遇与创新,没有哪一个系列的处理器和操作系统能够垄断全部市场。即便在体系结构上存在着主流,但各不相同的应用领域决定了不可能有少数公司、少数产品垄断全部市场。因此嵌入式系统领域的产品和技术,必然是高度分散的,留给各个行业的中小规模高技术公司的创新余地很大。另外,社会上的各个应用领域是在不断向前发展的,要求其中的嵌入式处理器核心也同步发展,这也构成了推动嵌入式工业发展的强大动力。

嵌入式系统工业的基础是以应用为中心的“芯片”设计和面向应用的软件产品开发。

3.2 嵌入式系统具有的产品特征

嵌入式系统是面向用户、面向产品、面向应用的,如果独立于应用自行发展,则会失去市场。嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等方面均受到应用要求的制约,这些也是各个半导体厂商之间竞争的热点。

和通用计算机不同,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用对处理器的选择面前更具有竞争力。嵌入式处理器要针对用户的具体需求,对芯片配置进行裁剪和添加才能达到理想的性能;但同时还受用户订货量的制约。因此不同的处理器面向的用户是不一样的,可能是一般用户,行业用户或单一用户。

嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。嵌入式系统中的软件,一般都固化在只读存储器中,而不是以磁盘为载体,可以随意更换,所以嵌入式系统的应用软件生命周期也和嵌入式产品一样长。另外,各个行业的应用系统和产品,和通用计算机软件不同,很少发生突然性的跳跃,嵌入式系统中的软件也因此更强调可继承性和技术衔接性,发展比较稳定。

嵌入式处理器的发展也体现出稳定性,一个体系一般要存在8-10年的时间。一个体系结构及其相关的片上外设、开发工具、库函数、嵌入式应用产品是一套复杂的知识系统,用户和半导体厂商都不会轻易地放弃一种处理器。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
3.3 嵌入式系统软件的特征

嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器系统软件和应用软件的要求也和通用计算机有所不同。

(1) 软件要求固态化存储

为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。

(2) 软件代码高质量、高可靠性

尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度。

(3) 系统软件(OS)的高实时性是基本要求

在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。

(4) 多任务操作系统是知识集成的平台和走向工业标准化道路的基础

3.4 嵌入式系统开发需要开发工具和环境

通用计算机具有完善的人机接口界面,在上面增加一些开发应用程序和环境即可进行对自身的开发。而嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。

3.5 嵌入式系统软件需要RTOS开发平台

通用计算机具有完善的操作系统和应用程序接口(API),是计算机基本组成不可分离的一部分,应用程序的开发以及完成后的软件都在OS平台上面运行,一般不是实时的。嵌入式系统则不同,应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及库函数接口,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。

3.6 嵌入式系统开发人员以应用专家为主

通用计算机的开发人员一般是计算机科学或计算机工程方面的专业人士,而嵌入式系统则是要和各个不同行业的应用相结合的,要求更多的计算机以外的专业知识,其开发人员往往是各个应用领域的专家。因此开发工具的易学、易用、可靠、高效是基本要求。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
中国的单片机应用和嵌入式系统开发走过了15年的历程,有超过10万名从事单片机开发应用的工程师,但95%以上是3~5个人的小组以孤军奋战的封闭方式开发几乎不可重用的软件。今天面对的是嵌入式系统工业化的潮流,如果我们不能认清嵌入式软件必须以工业化的方式生产开发,不理解在短时间内装配集成“数百人年”嵌入式产品软件库固化于芯片之中的方法,那么我们将失去更多“上游”产品的市场机遇;反之在我国大力推动和建设“嵌入式软件工厂”,使我国的嵌入式软件库(零件)产品化并溶入国际市场,对加速知识创新和建立面向21世纪的知识经济具有战略意义。我们在此希望通过http://www.mcu-world.com中文网址与各位长期探可靠性,并减少开发时间,保障软件质量。
嵌入式处理器分类与现状


嵌入式系统的核心部件是各种类型的嵌入式处理器,目前据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30几个系列,其中8051体系的占有多半。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅Philips就有近100种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从64KB到16-32MB,处理速度从0.1MIPS到 2000MIPS,常用封装从8个引脚到144个引脚。根据其现状,嵌入式计算机可以分成下面几类。


1、嵌入式微处理器(Embedded Microprocessor Unit, EMPU)

嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。

和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。如STD-BUS、PC104 等。近年来,德国、日本的一些公司又开发出了类似“火柴盒”式名片大小的嵌入式计算机系列OEM产品。

嵌入式处理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM系列等。


2、嵌入式微控制器(Microcontroller Unit, MCU)

嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成 ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM、 EEPROM等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。

和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。

嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、 C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列如:支持USB接口的MCU8XC930/931、 C540、C541;支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70%的市场份额。特别值得注意的是近年来提供X86微处理器的著名厂商AMD公司,将Am186CC/CH/CU等嵌入式处理器称之为Microcontroller, MOTOROLA公司把以Power PC为基础的PPC505和PPC555亦列入单片机行列。TI公司亦将其TMS320C2XXX系列DSP做为MCU进行推广。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
1、实时在线仿真系统ICE(In-CircuitEmulator)

在计算机辅助设计非常发达的今天,实时在线仿真系统(ICE)仍是进行嵌入式应用系统调试最有效的开发工具。ICE首先可以通过实际执行,对应用程序进行原理性检验,排除人的思维难以发现的设计逻辑错误。ICE的另一个主要功能是在应用系统中仿真微控制器的实时执行,发现和排除由于硬件干扰等引起的异常执行行为。此外,高级的ICE带有完善的跟踪功能,可以将应用系统的实际状态变化、微控制器对状态变化的反应、以及应用系统
对控制的响应等以一种录像的方式连续记录下来,以供分析,在分析中优化控制过程。很多机电系统难以建立一个精确有效的数字模型,或是建立模型需要大量人力,这时采用ICE的跟踪功能对系统进行记录和分析是一个快而有效的方法。

嵌入式应用的特点是和现实世界中的硬件系统有关,存在各种异变和事先未知的变化,这就给微控制器的指令执行带来了各种不确定性,这种不确定性只有通过ICE的实时在线仿真器才能发现,特别是在分析可靠性时要在同样条件下多次仿真,以发现偶然出现的错误。

ICE不仅是软件硬件排错工具,同时也是提高和优化系统性能指标的工具。高档ICE工具(如美国NOHAU公司的产品)是可根据用户投资裁剪功能的系统, 亦可根据需要选择配置各种档次的实时逻辑跟踪器(Trace)、实时映象存储器(Shadow RAM)及程序效率实时分析功能(PPA)。


2、高级语言编译器(Compiler Tools)

C语言作为一种通用的高级语言,大幅度提高了嵌入式系统工程的工作效率,充分发挥出嵌入式处理器日益提高的性能,缩短产品进入市场时间。另外,C语言便于移植和修改,使产品的升级和继承更迅速。更重要的是采用C语言编写的程序易于在不同的开发者之间进行交流,从而促进了嵌入式
系统开发的产业化。

区别于一般计算机中的C语言编译器,嵌入式系统中的C语言编译器要专门进行优化,以提高编译效率。优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。编译效率的不同,是区别嵌入式系统C编译器之间性能差别的重要根据之一。而C编译器残余的5-10%效率差别,完全可以由现代微控制器的高速度、大存储器空间以及产品提前进入市场来弥补。

新型的微控制器指令速度不断提高,存储器空间也相应加大,已经达到甚至超过了目前的通用计算机中的微处理器,为嵌入式系统工程采用过去一直不敢问津的C+ +语言创造了条件。C++语言强大的类、继承等功能更便于实现复杂的程序功能。但是C++语言为了支持复杂的语法,在代码生成效率方面不免有所下降。为此,1995年初在日本成立的Embedded C++技术委员会经过几年的研究,针对嵌入式应用制订了减小代码尺寸的EC++标准。EC++保留了C++的主要优点,提供对C++的向上兼容性,并满足嵌入式系统设计的一些特殊要求。在嵌入式高级语言编译器方面处于领先地位的Tasking公司,是EC++技术委员会成员之一,也是最先推出EC++产品的公司。

C/C++/EC++引入嵌入式系统,使得嵌入式开发和个人计算机、小型机等之间在开发上的差别正在逐渐消除,软件工程中的很多经验、方法乃至库函数可以移植到嵌入式系统。在嵌入式开发中采用高级语言,还使得硬件开发和软件开发可以分工,从事嵌入式软件开发不再必须精通系统硬件和相应的指令集汇编。

另一种高级语言JAVA的发展则具有戏剧性。JAVA本来是为设备独立的嵌入式系统设计的、为了提高程序继承性的语言,但是目前基于JAVA的嵌入式开发工具代码生成长度要比嵌入式C编译工具差10倍以上。因此EC++很可能在未来的一段时间内仍是嵌入式系统的主流。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
3、源程序模拟器(Simulator)

源程序模拟器是在广泛使用的、人机接口完备的工作平台上,如小型机和PC,通过软件手段模拟执行某种嵌入式处理器内核编写的源程序测试工具。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,供程序员检查;高级的模拟器可以利用计算机的外部接口模拟出处理器的I/O电气信号。不同档次和功能模拟器工具价格差距巨大。模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。但值得注意的是, 模拟器毕竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中断响应、定时器等方面很可能与实际处理器有相当的差别。另外它无法和ICE一样,仿真嵌入式系统在应用系统中的实际执行情况。
嵌入式系统的软件开发平台


1、实时多任务操作系统(Real Time multi-tasking Operation System,RTOS)

实时多任务操作系统(RTOS)是嵌入式应用软件的基础和开发平台。目前大多数嵌入式开发还是在单片机上直接进行,没有RTOS,但仍要有一个主程序负责调度各个任务。RTOS是一段嵌入在目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其它应用程序都建立在RTOS之上。不仅如此, RTOS还是一个标准的内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。

RTOS是针对不同处理器优化设计的高效率实时多任务内核,RTOS可以面对几十个系列的嵌入式处理器MPU、MCU、DSP、SOC等提供类同的API 接口,这是RTOS基于设备独立的应用程序开发基础。因此基于RTOS上的C语言程序具有极大的可移植性。据专家测算,优秀RTOS上跨处理器平台的程序移植只需要修改1--4%的内容。在RTOS基础上可以编写出各种硬件驱动程序、专家库函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产品销售,促进行业的知识产权交流,因此RTOS又是一个软件开发平台。


2、RTOS的基本结构

RTOS最关键的部分是实时多任务内核,它的基本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理、旗语管理等,这些管理功能是通过内核服务函数形式交给用户调用的,也就是RTOS的API。


3、RTOS是嵌入式系统的软件开发平台

RTOS的引入,解决了嵌入式软件开发标准化的难题。随着嵌入式系统中软件比重不断上升、应用程序越来越大,对开发人员、应用程序接口、程序档案的组织管理成为一个大的课题。引入RTOS相当于引入了一种新的管理模式,对于开发单位和开发人员都是一个提高。基于RTOS开发出的程序,具有较高的可移植性, 实现90%以上的设备独立,一些成熟的通用程序可以作为专家库函数产品推向社会。


中国在嵌入式系统中的机会

中国在计算机基础工业上落后于西方国家,在嵌入式处理器上也是如此。但是嵌入式系统面向应用的特点决定了处理器应用开发的产值要占有整个嵌入式工业的大部分,而且将嵌入式处理器与具体应用结合这种知识创新,只能由精通应用系统的用户来完成。因此中国在嵌入式系统方面存在着相当大的发展机会。

中国已经有10万余名单片机开发工程师,其中很多人都是在资料和信息有限的条件下通过实践,精通了单片机,并研制出了自己的产品。但是和国外的开发相比, 开发手段和水平还相对较低,标准化程度不够、重复劳动较多。这些问题主要是由于单片机开发中缺乏工程化、标准化管理,缺少行业
联合,在引入RTOS和嵌入式系统软件工程管理后可望得到很大的改变。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
heheh
返回列表