您的位置:控制工程论坛网论坛 » 嵌入式系统 » 嵌入式系统的平台化开发

lj7071

lj7071   |   当前状态:离线

总积分:3110  2025年可用积分:0

注册时间: 2007-03-21

最后登录时间: 2008-02-13

空间 发短消息加为好友

嵌入式系统的平台化开发

lj7071  发表于 2007/3/31 19:33:26      992 查看 4 回复  [上一主题]  [下一主题]

手机阅读

一、引 言

  嵌入式系统近年来发展很快,传统小作坊式的开发模式越来越难以满足开发要求。只有构建有特色的嵌入式开发系统平台,应用平台化思想进行开发,才能够以最小的代价最大程度的满足应用的需求。本文根据嵌入式系统项目的研发经验,总结了基于平台化开发内容、步骤、以及适用于不同复杂程度系统的软件和硬件关系模式。

  二、平台化开发的内容

  嵌入式系统的开发平台化包括硬件开发平台化和软件开发平台化。

  1、硬件平台

  从硬件方面说,平台化要求电路的设计尽量做到“模块化”和“拼图化”。

  首先最大限度从半导体厂家索取芯片相关资料、手册、应用指南、厂家设计规范、参考设计,以减少产品设计中单片机资源应用的盲目性。根据产品系列要求的系统扩展与系统配置要求,制定外围扩展的典型系列电路。这些典型电路应具有典型性,通用性和系列性。尽量优先选用成熟电路。

  针对不同的应用,规划出优选的硬件结构。例如智能仪表中,针对不同的精度要求规划出低、中、高、超高精度的优选数据采集模块电路。

  最后产品的硬件主电路应该有良好的通用性和扩展性。做到不改或者很少的改动就可以运用到类似的产品中。某些通用模块的局部电路应该做到“典型”,可以直接复制到其它用到该模块的产品中。

  2、软件平台

  可以借鉴计算机软件工程里面的一些方法。例如,用UML语言来描述系统需求,对系统中的各种对象分解。参照数据流程图描述数据从输入到输出的变换流程。用状态迁移图描述系统的状态随外部信号的变化过程。把这些结果作为客户需求的抽象化和软件框架设计的依据。再用计算机软件工程思想对应用系统进行规划、设计、测试和管理,保证代码的稳定性和可扩展性。具体实现时,在系统级上引人操作系统平台,借助于操作系统平台多任务编程思想来简化事务处理模式,缩短开发周期。在代码级建立独立于具体产品的函数库和驱动接口平台。在文档管理上,借鉴台式机模式,建立适合于嵌入式产品开发特点的文档。而嵌入式操作系统(EOS)是实现平台化最有力的工具。基于嵌入式操作系统开发出的程序,具有较高的可靠性和可移植性,可以实现90 以上设备独立。一些成熟的硬件驱动程序、专家库函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产品销售,促进行业内的知识产权交流,因此EOS又是一个嵌入式软件开发平台。

  三、平台化开发的具体步骤

  根据经验。总结嵌入式平台化开发步骤如下。

  1、客户需求分析

  相对台式机系统,嵌入式系统的客户需求一般都明确清晰。这一部分所占开发周期比重也应相应降低。但在对客户需求分析的同时要考虑客户潜在的后续应用,在设计系统硬件时尽可能留出余量。

1楼 0 0 回复
  • lj7071

    lj7071   |   当前状态:离线

    总积分:3110  2025年可用积分:0

    注册时间: 2007-03-21

    最后登录时间: 2008-02-13

    空间 发短消息加为好友

    lj7071   发表于 2007/3/31 19:30:44

    2、确定选用的嵌入式处理器和(是否、选用)嵌入式操作系统

      客户需求明确后首先就要确定所选用嵌入式芯片类型。它是整个系统硬件部分的核心。嵌入式处理器选择的基本原则是满足具体功能性和非功能性指标(如价格、供货速度)需求的、市场应用反应良好的、硬件配置最少的嵌入式处理器。同时也需要考虑开发人员对此系列处理器的熟悉程度和它对嵌入式操作系统的支持程度。是否有现成适合的BSP、BootLoader可寻。


      再根据系统的复杂程度和选用的嵌入式处理器类型,决定选不选和选什么样的嵌人式操作系统。考虑的因素有:对于处理器的支持,对于任务实时响应的指标是否满足需求,是否支持要求的应用服务,如:网络服务,GUI,文件系统等。


      3、硬件设计和软件设计


      硬件设计和软件设计的关系可以是串行的,即先设计和调试硬件部分,再设计调试软件部分。也可以是并行的,硬件设计和软件设计调试同时进行。


      (1) 串行的瀑布模式开发过程


      串行的瀑布模式开发过程工作模式简单,任务的划分协调及人员安排、物质材料的分配管理都比较容易。如图1所示,开发过程为从硬件到软件的流水线式进行。此类开发方式有以下特点:
      小系统,如利用8051控制的低速率信号采集等; 
      开发所需人力、物力资源有限,一般1个或几个人即可完成; 
      要求开发人员比较熟悉软、硬件设计和制作; 
      任一环节阻塞都会影响其它环节的开发。


      (2) 并行模式一V模式开发过程


      V模式开发过程为一种并行的工作方式,任务的划分协调及人员安排、物质材料的分配都必须考虑不同工作内容,如图2所示。



    图1 瀑布开发模式

    2楼 回复本楼

    引用 lj7071 2007/3/31 19:30:44 发表于2楼的内容

  • lj7071

    lj7071   |   当前状态:离线

    总积分:3110  2025年可用积分:0

    注册时间: 2007-03-21

    最后登录时间: 2008-02-13

    空间 发短消息加为好友

    lj7071   发表于 2007/3/31 19:31:46

     


    图2 并行V模式


      开发过程为硬件和软件同时进行,最后联合调试。此类开发方式有以下特点:大系统,如利用PowerPC等处理器设计的网络交换/访问设备;开发人力、物力资源比较丰富;开发人员分工比较明确,软件开发者可不需了解太多的硬件信息,而硬件开发人员对软件也可不做太多了解; 在开发过程中,软、硬件设计独立进行。硬件开发的阻塞不会影响软件开发过程,同样,软件开发的阻塞不会影响硬件的开发过程。


      但在V模式开发过程中,仍存在以下问题:
      设备驱动程序的可移值性差,与硬件和操作系统均有密切相关性;
      软件测试需要等硬件完成以后才能进行;
      对于每个设备驱动程序设计人员都需有软件和硬件的知识背景;
      在测试过程中,很难判断错误是由硬件还是由软件造成的。


      (3) 并行模式的改进:基于硬件抽象层和操作系统移植层的系统设计


      a. 包含硬件抽象层和操作系统适配层的系统结构


      为了克服V模式开发过程中的上述问题,将V模式开发过程稍作改进。增加硬件抽象层(HA L.Hardware Abstract Layer),对系统软硬件起到隔离作用。增加操作系统适配层(0S Portability),对上层应用软件和底层操作系统起到隔离作用。


     


    图3 常规系统结构

    3楼 回复本楼

    引用 lj7071 2007/3/31 19:31:46 发表于3楼的内容

  • lj7071

    lj7071   |   当前状态:离线

    总积分:3110  2025年可用积分:0

    注册时间: 2007-03-21

    最后登录时间: 2008-02-13

    空间 发短消息加为好友

    lj7071   发表于 2007/3/31 19:32:33

     



    图4 改进后的


      四、并行模式的系统结构


      比较图3和图4,因为实现了上下层间的完全隔离。硬件抽象层使系统的设备驱动程序与硬件设备无关。操作系统适配层使应用软件和选用的操作系统无关。从而大大提高了系统的可移植性。开发实现了最大程度的并行性,缩短开发周期。从测试角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作可以并行完成。


      在抽象层定义方面,需要规定统一的软硬件接口标准,其设计工作需要基于系统需求来做,代码工作可由对硬件比较熟悉的人员来完成。抽象层一般应包含相关硬件的初始化、数据的输入/输出操作、硬件设备的配置操作等功能。


      b. 包含硬件抽象层和操作系统移植层的系统开发过程


      如图5给出的包含硬件抽象层和操作系统适配层V模式开发过程,在系统需求分析并定义了软硬件各自的设计要求以后,就需要花费一定的时间来定义硬件抽象层的接口和操作系统适配层接口,以确保硬件设计和测试、软件设计和测试工作能够在相同的接口上进行,从而有利于最终的软硬件集成测试。




    图5 改进后的并行模式的开发过程

    4楼 回复本楼

    引用 lj7071 2007/3/31 19:32:33 发表于4楼的内容

  • lj7071

    lj7071   |   当前状态:离线

    总积分:3110  2025年可用积分:0

    注册时间: 2007-03-21

    最后登录时间: 2008-02-13

    空间 发短消息加为好友

    lj7071   发表于 2007/3/31 19:33:26

    从图5可以看出,在基于硬件抽象层和操作系统适配层的V模式开发过程,软硬件的设计和调试具有无关性,上层应用程序的开发和操作系统的移植也无关,并可完全地并行进行。硬件的错误不会影响到软件的调试,同样软件设计的错误不会影响硬件的调试工作,这样就可大大缩短系统的测试周期和提高系统的可靠性。

      c. 硬件抽象层的特点


      硬件抽象层接口的定义和代码设计应具有以下特点:
      硬件抽象层具有与硬件密切相关性; 
      硬件抽象层具有与操作系统无关性; 
      接口定义的功能应包含硬件或系统所需硬件支持的所有功能; 
      接口定义简单明了,太多接口函数会增加软件模拟的复杂性; 
      具有可测性的接口设计有利于系统的软硬件测试和集成。


      d. 操作系统移植层的特点


      操作系统移植层和操作系统密切相关。与硬件应用程序无关。 


      使操作系统对上层应用程序透明。相同的应用在移植不同的操作系统时,只是操作系统移植层代码变化。上层应用程序保持不变。


      当然不论是串行还是并行,不论有没有HAL层和OSP层,每一种方法都有各自已的优点和缺点。系统构架简单意味着项目管理容易,往往在开发小系统时较快,系统运行开销也小,但移植性差。


      系统构架复杂往往可以带来更好的移植性,但是项目设计和管理复杂,系统运行时开销较大。在开发比较复杂的系统时才能够缩短开发周期。所以要根据实际项目的需要选择系统设计模式。


      五、总结


      采用平台化思想开发嵌入式系统,必须摈弃传统小作坊式的自由主义。对于开发的步骤、软硬件的分工都要遵循严格的规章。对于系统相对简单,比如说基于51的单片机设计一个工控设备。软硬件的设计采用串行瀑布模式使项目分工简便,能够很好的满足研发要求[6]。而对于一个数字电视机顶盒研发团队而言,系统复杂,研发成员多,设计周期长,应该采用改进的包含硬件抽象层和操作系统移植层的并行V模式研发,才能最大程度的缩短研发周期和提高系统的可移植性和可扩展性。


      参考文献:


      [1] 许海燕,付炎.嵌入式系统技术与应用[M].北京:机械工业出版社.2002.
      [2] 郑人杰,殷人昆,陶永雷.实用软件工程[M].北京:清华大学出版社.1997:64—66.
      [3] 王世铀,郭福顺,臧天仪.微核心操作系统的结构对性能的影响[J].计算机研究与发展.1999,36(1).
      [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).

    5楼 回复本楼

    引用 lj7071 2007/3/31 19:33:26 发表于5楼的内容

总共 , 当前 /