嵌入式系统设计方法的分析比较

2010-12-08 08:53谢白玉
黄河水利职业技术学院学报 2010年4期
关键词:嵌入式组件协同

宋 蕊,谢白玉

(黄河水利职业技术学院,河南 开封 475004)

0 引言

嵌入式系统从出现至今已经有30 多年了。 它广泛应用在消费电子、航空航天、汽车电子、医疗保健、网络通信、工业控制等各个领域,已经被各行各业的人们所熟悉。 但“嵌入式系统”本身是一个相对模糊的概念,人们很难给其一个确切的定义。 目前,国内普遍认为:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[1]。 它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等4 个部分组成,用于实现对其他设备的控制、监视或管理等功能。

进入21 世纪后,随着数字信息技术和网络技术的快速发展,计算机从以普通PC 机为主流的时代慢慢步入到“后PC(Post-PC)”时代。 在计算机进入后PC 时代以后的几年,嵌入式系统取得了前所未有的发展,并在工业控制、信息家电、智能仪表、网络通信等领域中得到了广泛应用。 目前,在世界范围内,嵌入式系统带来的工业年产值已超过1 万亿美元。 可以毫不夸张地说,嵌入式系统已经进入到现代社会中人们生活的方方面面, 它 “无处不在”。 然而,嵌入式系统的巨大发展和需求必将引起其设计方法的不断演变, 加之它具有很强的专用性,可移植性差,这样,一套完备、高效的设计体系就显得十分必要,因而,分析和探讨嵌入式系统的设计方法也就有着十分深远的意义。

1 嵌入式系统设计方法的发展背景

应用需求的牵引、芯片技术的发展以及计算机技术的推动,使得嵌入式系统的设计方法不断演化[2]。

1.1 应用需求的牵引

嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。 也就是说,嵌入式系统是与应用紧密结合的,必须根据应用需求,对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。 所以,如果能建立相对通用的软硬件基础,再在其上开发出适应各种需要的系统,是一个比较好的发展模式。

1.2 芯片技术的发展

芯片技术的发展使得单个芯片具有更强的处理能力,而且使集成多种接口成为可能。 由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件或使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。

1.3 计算机技术的推动

(1)计算机硬件平台性能的大幅度提高使很多复杂算法和方便使用的界面得以实现,大大提高了工作效率,给复杂嵌入式系统辅助设计提供了物理基础。

(2)高性能的电子设计自动化(Electronic Design Automation,简称EDA)综合开发工具得到长足发展,而且其自动化和智能化程度不断提高, 为复杂的嵌入式系统设计提供了不同用途和不同级别的编辑、布局、布线、编译、综合、模拟、测试、验证和器件编程等一体化的、易于学习和方便使用的开发集成环境。

(3)硬件 描 述 语 言HDL(Hardware Description Language)为复杂电子系统设计提供了建立各种硬件模型的工具媒介。用HDL 来描述集成电路的功能和结构,并经过不同级别的验证,形成不同级别的IP(Intellectual Property)内核模块,供芯片设计人员装配或集成选用。 IP 内核模块是一种预先设计并经过验证的、具有某种确定功能的集成电路、器件或部件。 它按照行为(behavior)、结构(structure)和物理(physical)3 级不同程度进行设计, 对应有描述行为功能的“软IP 内核(Soft IP Core)”、主要描述结构的“固IP 内核(Firm IP Core)”和基于物理描述并经过验证的“硬IP 内核(Hard IP Core)”3 个层次。 丰富的IP 内核模块库为快速设计专用集成电路和单片系统提供了基本保证,也给电子系统设计领域带来了重大变革。

2 嵌入式系统设计方法的比较

不同于标准平台上的应用软件开发,嵌入式系统的开发意味着软件与硬件的并行设计。 在开发之前,要明确嵌入式系统的开发流程。 根据开发流程,嵌入式系统有以下3 种设计方法。

2.1 流线型设计方法

流线型设计方法又称硬件优先设计方法[3],即设计过程按照从硬件到软件的流水线进行。 其设计过程可分为3 步:(1)准备阶段。 依据功能、能耗、造价等因素进行需求分析,并进行软、硬件功能分配。(2)软、硬件设计实施阶段。 软、硬件的设计主要基于各系统设计师的水平,软件部分的设计在硬件设计和测试完成后进行。 (3)测试系统,即评估整个系统的运行情况。 流线型设计方法的具体过程如图1所示。

图1 流线型设计过程Fig.1 Streamline design process

从图1 可以看出,采用该方法进行设计时,任何一个中间环节的阻塞都会影响其他环节的开发;软件设计者必须等到一个完善的硬件工程完工,才能开始设计;只有在设计的最后阶段,设计者才能检验软硬件功能分配的正确性, 如果有任何错误,整个设计流程必须重新开始。 尽管如此,硬件优先设计方法仍是有价值的方法,尤其对于中低复杂度的系统设计,因为开始阶段的功能分配所需的时间比别的方法少,在设计过程中,设计者可使用成熟的组件流程,利用已有的经验尽量减小设计错误的风险。 另外,嵌入式操作系统的引入简化了设计过程,提高了系统的稳定性。 然而,对于高端的嵌入式系统,需要在早期设计阶段就能识别出错误。 因此,流线型设计方法只适用于小型及中低复杂度系统,在人力物力资源有限、对开发周期要求不高的场合比较实用。 在该模式下,要求开发人员对软、硬件设计和制作都比较熟悉。

2.2 V 型设计方法

V 型设计方法[4]是一种并行的设计方法,即硬件设计和软件设计同时独立进行,最后联合调试。 其设计过程分为3 步:(1)需求分析,总体设计。 这与流线型设计方法相同,依据规格要求,通过需求分析,建立对系统功能的完整描述,然后分解软硬件功能。 (2)软、硬件设计。 在此阶段,软、硬件设计同时独立进行,互不影响,缩短了开发周期,这一点不同于流线型设计方法。 (3)系统集成、测试与验证。将软件和硬件集合在一起,编译测试,并且评估能否符合系统规格。 若不能,软硬件功能分配就重新开始。 具体设计过程如图2 所示。

图2 V 型设计过程Fig.2 V-type design process

由图2 可以看出,采用V 型设计方法,硬件设计与软件设计互不影响,缩短了开发周期,适合于开发人力物力资源比较丰富、系统比较庞大的场合。但在该模式开发过程中, 设备驱动程序的可移植性差,而驱动程序与硬件和操作系统均有密切相关性,这就要求每个驱动设计人员都具有软件和硬件的知识背景。

2.3 软、硬件协同设计方法

V 型设计方法把软、硬件分开独立设计,只能改善其各自的性能,而不能对系统做出较好的性能集成和优化。 针对V 型设计方法在软、硬件开发中的缺陷,软、硬件协同设计方法应运而生。 它在V 型设计方法的基础上,增加了硬件抽象层[5],该层对系统软、硬件起着隔离作用,从而提高了系统软件的可移植性,可有效地利用人力资源、缩短开发周期、提高产品的可靠性。 软、硬件协同设计方法是以IP 内核库为设计基础的,设计过程可分为4 个步骤:(1)需求分析,总体设计。 软、硬件协同设计方法的第一步集中在系统设计的形式化规格上,即建立一个对系统运行的完整描述体系,结果是对系统功能的分解。 它采取一套组件的形式,具有全球通用性的功能。 功能性组件能够用硬件或软件实现。 因为使用了形式化描述方法,使有选择地实施这些组件成为可能。 功能分配的目的是评估软、硬件选择,即依据功能组件的属性, 选择用硬件还是用软件最优,评估过程是基于不同的条件的。 (2)定义硬件抽象层接口。 以确保软、硬件设计和测试工作能够在相同的接口上进行,从而有利于最终的软、硬件集成测试。 (3)软、硬件的实现。 硬件组件能够用VHDL 语言实现,之后需要做基于硬件抽象层的硬件驱动程序开发和硬件调试。 软件使用编程语言JAVA,C,C++编码, 之后需要做基于硬件抽象层的虚拟硬件驱动程序开发和软件调试。(4)系统集成。它将软件和硬件集合在一起,并且评估是否能与系统规格融合编译。若不能,软、硬件功能分配就重新开始。软、硬件协同设计过程如图3 所示。

在软、硬件协同设计方法[6]的开发过程中,软、硬件的设计与调试具有无关性,并可完全地并行进行,这样就大大缩短系统的测试周期,提高了系统的可靠性。 由于软、硬件协同设计是基于运算法则的,所以系统设计能够在早期得到检验和修改。 为了执行实时的应用程序,系统开发者必须使用可以利用的组件,例如IP 内核模块。 IP 内核模块是单片系统设计的基础,究竟购买哪一级IP内核模块,应根据现有基础、时间、资金和其他条件权衡确定。 购买硬IP 内核模块风险最小,但代价最高。 但总的来说,通过购买IP 内核模块不仅可以降低开发风险,还能节省开发费用。因为一般购买IP 内核模块的费用要低于自己单独设计和验证的费用。 软、硬交互法的缺陷是一般用户不了解硬件组件或IP 内核模块的内部机制,限制了选取微处理器组件的自由度。

图3 软硬件协同设计过程Fig.3 Co-design process of software and hardware

3 结语

从应用开发的角度看,嵌入式系统的3 种设计方法在相当长的一段时间内会并存,不会简单地出现“后者取代前者”的现象。 具体设计方法的选取主要视嵌入式系统的组件数量、组件复杂度、开发难度等参数而定。 目前,软、硬件协同设计技术已成为嵌入式系统开发技术的研究热点,研究的根本目的是发现并且优化那些用于评估分配功能的规则,理论上可能使软、硬件交互设计成为自动过程。 现在,秉承了软、 硬件协同设计思想的CAD 工具正在被开发,借助这些工具,会产生有效的解决方案。

[1] 范学英,张明新,王登磊. 嵌入式系统概述[J]. 自动化技术与应用,2008,27(2):113-115.

[2] 陆重阳,卢东华,文爱军. 嵌入式系统及其设计方法的变化[J]. 中国集成电路,2002,(35):44-46.

[3] 高筠. 嵌入式系统开发方法的分析[J]. 同煤科技,2006,9(3):121-122.

[4] Mo Guan,Guang Jiehan,Hai Zhao. The Embedded Internet Technology Based on RealTime Kernel for non-PC Devices [J]. Sensing and Control,2004,11 (1):343-344.

[5] Microsoft. Hardware Abstraction Layer for Microsoft s Windows NT Operating System [R]. US:Microsoft Corporation,1996.

[6] 陈扶辛,康秀光,张彬. 新的嵌入式系统设计方法学:软硬件协同设计[J]. 科技资讯,2006,(14):203.

猜你喜欢
嵌入式组件协同
无人机智能巡检在光伏电站组件诊断中的应用
蜀道难:车与路的协同进化
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
“四化”协同才有出路
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
三医联动 协同创新
风起新一代光伏组件膜层:SSG纳米自清洁膜层
协同进化