0、引 言 客户需求明确后首先就要确定所选用嵌入式芯片类型。它是整个系统硬件部分的核心。嵌入式处理器选择的基本原则是满足具体功能性和非功能性指标(如价格、供货速度)需求的、市场应用反应良好的、硬件配置最少的
嵌入式系统近年来发展很快,传统小作坊式的开发模式越来越难以满足开发要求。只有构建有特色的嵌入式开发系统平台,应用平台化思想进行开发,才能够以最小的代价最大程度的满足应用的需求。本文根据嵌入式系统项目的研发经验,总结了基于平台化开发内容、步骤、以及适用于不同复杂程度系统的软件和硬件关系模式。
1、平台化开发的内容
嵌入式系统的开发平台化包括硬件开发平台化和软件开发平台化。
1.1 硬件平台
从硬件方面说,平台化要求电路的设计尽量做到“模块化”和“拼图化&
#8221;。
首先最大限度从半导体厂家索取芯片相关资料、手册、应用指南、厂家设计规范、参考设计,以减少产品设计中单片机资源应用的盲目性。根据产品系列要求的系统扩展与系统配置要求,制定外围扩展的典型系列电路。这些典型电路应具有典型性,通用性和系列性。尽量优先选用成熟电路。
针对不同的应用,规划出优选的硬件结构。例如智能仪表中,针对不同的精度要求规划出低、中、高、超高精度的优选数据采集模块电路。
最后产品的硬件主电路应该有良好的通用性和扩展性。做到不改或者很少的改动就可以运用到类似的产品中。某些通用模块的局部电路应该做到“典型”,可以直接复制到其它用到该模块的产品中。
1.2 软件平台
可以借鉴计算机软件工程里面的一些方法。例如,用UML语言来描述系统需求,对系统中的各种对象分解。参照数据流程图描述数据从输入到输出的变换流程。用状态迁移图描述系统的状态随外部信号的变化过程。把这些结果作为客户需求的抽象化和软件框架设计的依据。再用计算机软件工程思想对应用系统进行规划、设计、测试和管理,保证代码的稳定性和可扩展性。具体实现时,在系统级上引人操作系统平台,借助于操作系统平台多任务编程思想来简化事务处理模式,缩短开发周期。在代码级建立独立于具体产品的函数库和驱动接口平台。在文档管理上,借鉴台式机模式,建立适合于嵌入式产品开发特点的文档。而嵌入式操作系统(EOS)是实现平台化最有力的工具。基于嵌入式操作系统开发出的程序,具有较高的可靠性和可移植性,可以实现90 以上设备独立。一些成熟的硬件驱动程序、专家库函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产品销售,促进行业内的知识产权交流,因此EOS又是一个嵌入式软件开发平台。
2、平台化开发的具体步骤
根据经验。总结嵌入式平台化开发步骤如下。
2.1 客户需求分析
相对台式机系统,嵌入式系统的客户需求一般都明确清晰。这一部分所占开发周期比重也应相应降低。但在对客户需求分析的同时要考虑客户潜在的后续应用,在设计系统硬件时尽可能留出余量。
2.2 确定选用的嵌入式处理器和(是否选用)嵌入式操作系统
再根据系统的复杂程度和选用的嵌入式处理器类型,决定选不选和选什么样的嵌人式操作系统。考虑的因素有:对于处理器的支持,对于任务实时响应的指标是否满足需求,是否支持要求的应用服务,如:网络服务,GUI,文件系统等。
2.3 硬件设计和软件设计
硬件设计和软件设计的关系可以是串行的,即先设计和调试硬件部分,再设计调试软件部分。也可以是并行的,硬件设计和软件设计调试同时进行。
(1) 串行的瀑布模式开发过程
 
小系统,如利用8051控制的低速率信号采集等; 开发过程为硬件和软件同时进行,最后联合调试。此类开发方式有以下特点: 大系统,如利用PowerPC等处理器设计的网络交换/访问设备;开发人力、物力资源比较丰富; 设备驱动程序的可移值性差,与硬件和操作系统均有密切相关性;
开发所需人力、物力资源有限,一般1个或几个人即可完成;
要求开发人员比较熟悉软、硬件设计和制作;
任一环节阻塞都会影响其它环节的开发。
(2) 并行模式一V模式开发过程
V模式开发过程为一种并行的工作方式,任务的划分协调及人员安排、物质材料的分配都必须考虑不同工作内容,如图2所示。
图1 瀑布开发模式 图2 并行V模式
开发人员分工比较明确,软件开发者可不需了解太多的硬件信息,而硬件开发人员对软件也可不做太多了解;
在开发过程中,软、硬件设计独立进行。硬件开发的阻塞不会影响软件开发过程,同样,软件开发的阻塞不会影响硬件的开发过程。
但在V模式开发过程中,仍存在以下问题:
软件测试需要等硬件完成以后才能进行;
对于每个设备驱动程序设计人员都需有软件和硬件的知识背景;
在测试过程中,很难判断错误是由硬件还是由软件造成的。
(3) 并行模式的改进:基于硬件抽象层和操作系统移植层的系统设计
a. 包含硬件抽象层和操作系统适配层的系统结构
为了克服V模式开发过程中的上述问题,将V模式开发过程稍作改进。增加硬件抽象层(HA L.Hardware Abstract Layer),对系统软硬件起到隔离作用。增加操作系统适配层(0S Portability),对上层应用软件和底层操作系统起到隔离作用。
图3 常规系统结构 图4 改进后的
比较图3和图4,因为实现了上下层间的完全隔离。硬件抽象层使系统的设备驱动程序与硬件设备无关。操作系统适配层使应用软件和选用的操作系统无关。从而大大提高了系统的可移植性。开发实现了最大程度的并行性,缩短开发周期。从测试角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作可以并行完成。
在抽象层定义方面,需要规定统一的软硬件接口标准,其设计工作需要基于系统需求来做,代码工作可由对硬件比较熟悉的人员来完成。抽象层一般应包含相关硬件的初始化、数据的输入/输出操作、硬件设备的配置操作等功能。
b. 包含硬件抽象层和操作系统移植层的系统开发过程
如图5给出的包含硬件抽象层和操作系统适配层V模式开发过程,在系统需求分析并定义了软
图5 改进后的并行模式的开发过程
从图5可以看出,在基于硬件抽象层和操作系统适配层的V模式开发过程,软硬件的设计和调试具有无关性,上层应用程序的开发和操作系统的移植也无关,并可完全地并行进行。硬件的错误不会影响到软件的调试,同样软件设计的错误不会影响硬件的调试工作,这样就可大大缩短系统的测试周期和提高系统的可靠性。
c. 硬件抽象层的特点 硬件抽象层具有与硬件密切相关性; 操作系统移植层和操作系统密切相关。与硬件应用程序无关。
硬件抽象层接口的定义和代码设计应具有以下特点:
硬件抽象层具有与操作系统无关性;
接口定义的功能应包含硬件或系统所需硬件支持的所有功能;
接口定义简单明了,太多接口函数会增加软件模拟的复杂性;
具有可测性的接口设计有利于系统的软硬件测试和集成。
d. 操作系统移植层的特点
使操作系统对上层应用程序透明。相同的应用在移植不同的操作系统时,只是操作系统移植层代码变化。上层应用程序保持不变。
当然不论是串行还是并行,不论有没有HAL层和OSP层,每一种方法都有各自已的优点和缺点。系统构架简单意味着项目管理容易,往往在开发小系统时较快,系统运行开销也小,但移植性差。
系统构架复杂往往可以带来更好的移植性,但是项目设计和管理复杂,系统运行时开销较大。在开发比较复杂的系统时才能够缩短开发周期。所以要根据实际项目的需要选择系统设计模式。
3、总结
采用平台化思想开发嵌入式系统,必须摈弃传统小作坊式的自由主义。对于开发的步骤、软硬件的分工都要遵循严格的规章。对于系统相对简单,比如说基于51的单片机设计一个工控设备。软硬件的设计采用串行瀑布模式使项目分工简便,能够很好的满足研发要求[6]。而对于一个数字电视机顶盒研发团队而言,系统复杂,研发成员多,设计周期长,应该采用改进的包含硬件抽象层和操作系统移植层的并行V模式研发,才能最大程度的缩短研发周期和提高系统的可移植性和可扩展性。
参考文献
[1] 许海燕,付炎.嵌入式系统技术与应用[M].北京:机械工业出版社.2002.
[2] 郑人杰,殷人昆,陶永雷.实用软件工程[M].北京:清华大学出版社.1997:64—66.
[3] 王世铀,郭福顺
[4] Wood,Mike and Tom Barrett.Embedded Systems Programming[M].1990:20—28
[5] Gannssle,Jack G.The Art of Programming Embedded Systems[R]San Diego:Academic Press.1992.ISBN0122——738808.
[6] 黄磊、顾宝根.8051单片机实现石英晶体频率自动分选仪[J],微机发展,2004,(4).