UML软件工程组织

 

 

嵌入式系统设计技术浅谈
 
2008-05-12 作者:刘 凯 来源:ele-diy.com
 

嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合后的产物。

近年来,在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展,嵌入式系统应用范围的急剧扩大。数码产品、智能手机及各种掌上型多媒体设备是都是典型的嵌入式系统,除此之外,更多的嵌入式系统隐身在不为人知的角落,从小到电子手表、电子体温计、翻译机等,到大如冷气机、电冰箱、电视机,甚至是路上红绿灯的控制器、战斗机中的飞控系统、自动导航设备、汽车中燃油控制、汽车雷达、ABS等的微计算机系统,到医院中的医疗器材、工厂中的自动机械等,不知不觉中,嵌入式系统已经环绕在我们的身边,成为我们日常生活中的一部分。

本文在分析嵌入式系统特点及发展趋势的基础上,阐述嵌入式系统设计中的关键环节,导出嵌入式系统设计面临的挑战,然后以几个典型的嵌入式系统的设计为主题,对嵌入式系统设计中关键问题的把握处理进行详细论述。

■ 嵌入式系统的特点

与通用计算机系统相比,嵌入式系统有其自身的特点:

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

(2)嵌入式系统通常是面向用户、面向产品、面向特定应用的。

(3)嵌入式系统和具体应用有机地结合在一起,其升级换代也是和具体产品同步进行的。因此嵌入式系统产品一旦进入市场,就具有较长的生命周期。

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

(5)嵌入式系统本身并不具备在其上进行进一步开发的能力。在设计完成以后,用户如果需要修改其中的程序功能,也必须借助于一套开发工具和环境。

■ 嵌入式系统的发展趋势

消费家电的智能化,为嵌入式系统的发展展现出美好的市场前景,也对嵌入式系统提出新的发展要求;半导体微电子技术和系统设计方法的进步,使得嵌入式系统的发展呈现出以下趋势:

1.随着嵌入式系统的功能的增加,嵌入式系统处理的信息和数据量越来越大,系统对处理的响应时间也要求更严格,嵌入式处理器的主频会越来越高,甚至采用多核的方式来应付日益增长的性能要求。

2.嵌入式系统在工业领域和某些特殊场合的广泛应用,要求嵌入式系统具有远程控制软件更新和故障诊断的能力。

3.随着嵌入式系统在手持设备上的大量应用,手持设备的特点要求嵌入式系统功耗、体积更小,重量更轻。

4.嵌入式系统将具有更加高速的通信接口,如USB2.0、千兆以太网等。

■ 嵌入式系统设计流程

嵌入式系统开发分为软件开发部分和硬件开发部分。嵌入式系统开发过程一般都采用如图1所示的“宿主机/目标板”开发模式,即利用宿主机(PC机)上丰富的软硬件资源及良好的开发环境和调试工具来开发目标板上的软件,然后通过交叉编译环境生成目标代码和可执行文件,通过串口/USB/以太网等方式下载到目标板上,利用交叉调试器在监控程序运行,实时分析,最后,将程序下载固化到目标机上,完成整个开发过程。

图1

当前,嵌入式开发已经逐步规范化,在遵循一般工程开发流程的基础上,嵌入式开发有其自身的一些特点,如图2所示为嵌入式系统开发的一般流程。主要包括系统需求分析(要求有严格规范的技术要求)、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。

(1)系统需求分析:确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能需求包括系统性能、成本、功耗、体积、重量等因素。

(2)体系结构设计:描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分,以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。

(3)硬件/软件协同设计:基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。

(4)系统集成:把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。

(5)系统测试:对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。

■ 嵌入式系统设计所面临的挑战

要求更高的应用需求推动嵌入式设计从8/16位转向功能更强大的32位MCU。这种升级给工程师带来了严峻的挑战,提出了一系列前所未有的全新问题。

(1)转变观念,需要熟悉新的开发模式

嵌入式系统应用不再是过去单一的单片机应用模式,而是越来越多样化,这可为用户提供更多的不同层次的选择方案。嵌入式系统实现的最高形式是片上系统SoC,而SoC的核心技术是重用和组合IP核构件。从单片机应用设计到片上系统设计及其中间的一系列的变化,从底层大包大揽的设计到利用FPGA和IP模块进行功能组合PSoC/SOPC设计,这是一个观念的转变。学习和熟悉新的开发模式将会事半功倍地构建功能强大和性能卓越的嵌入式系统,但同时也给系统的设计验证工作提出了许多新的挑战。

(2)进入的技术门槛提高,需要学习全新的RTOS技术

现代高端嵌入式系统都是建立在RTOS基础上的。这对于未受过计算机专业训练的各专业领域的工程技术人员来说,需要学习全新的RTOS技术,深入了解RTOS的工作机制和系统的资源配置,掌握底层软件、系统软件和应用软件的设计和调试方法。进入的技术门槛要比所熟悉的开发方法高得多。这对于开发者来说,也是一个新的挑战。

(3)选择合适的开发工具,熟悉新的开发环境

目前从8位升级到32位的一个最大障碍就是开发工具的投入。32位开发工具要比8位开发工具复杂得多,使用的技术门槛要高得多,同时其投资也要高得多。进入32位系统开发的工程师不得不面对与8位系统很不相同的开发环境。如何正确选择处理器架构、评估嵌入式操作系统,以及使用陌生的开发工具,都是一个新的挑战。

(4)熟悉硬件/软件协同设计和验证技术、设计管理技术

软/硬件并行设计是嵌入式系统设计的一项关键任务。在设计过程中的主要问题,是软硬件设计的同步与集成。这要求控制一致性与正确性,但随着技术细节不断增加,需要消耗大量的时间。目前,业界已经开发Polis、Cosyma及Chinook等多种方法和工具来支持集成式软硬件的协同设计。目标是提供一种统一的软硬件开发方法。它支持设计空间探索,并使系统功能可以跨越硬件和软件平台复用。

团队开发的最大问题就是设计管理问题。现在有越来越多的公司开始重视技术管理,利用各种技术管理软件(例如软件版本管理软件)对全过程进行监督管理。这对每一个参与开发的人来说,似乎增加了不少麻烦,但是对整个公司的产品上市、升级、维护以及战略利益都具有长远效益。

(5)SoC设计所面临的巨大的挑战

SoC已经开始成为新一代应用电子技术的核心,这已成为电子技术的革命标志。过去应用工程师面对的是各种ASIC电路,而现在越来越多所面对的是巨大的IP模块库,所有设计工作都是以IP模块为基础。SoC设计技术使嵌入式系统设计工程师变成了一个面向应用的电子器件设计工程师。随着SoC应用的日益普及,在测试程序生成、工程开发、硅片查错、量产等领域对SoC测试技术提出了越来越高的要求。掌握新的测试理念及新的测试流程、方法和技术,是对单片机应用工程师提出的新挑战。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号