浅谈天行健终端嵌入式软件分层开发技术

2015-12-14 20:56王学军
汽车实用技术 2015年6期
关键词:天行健嵌入式软件中间件

王学军

(陕西中交天健车联网信息技术有限公司,陕西 西安 710200)

浅谈天行健终端嵌入式软件分层开发技术

王学军

(陕西中交天健车联网信息技术有限公司,陕西 西安 710200)

层次系统风格将软件结构组织成一个层次结构,一个分层系统是分层次组织的,每层对上层提供服务,同时对下层来讲也是一个服务的对象。在一些分层系统中,内部的层只对相邻的层可见。除了相邻的外层或经过挑选用于输出的特定函数以外,内层都被隐藏起来。这种风格支持基于可增加抽象层的设计。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。

嵌入式软件;分层结构术语与定义

CLC NO.: U461.9 Document Code: B Article ID: 1671-7988(2015)06-143-04

● 系统分层体系:系统分层体系指将整个系统按照软硬件的相关逻辑和业务的不同,区分成多个层次,供应商设计与其他厂商的产品有关的硬件或软件提供了便利的体系方式

● 硬件平台:指车载终端中,用于承载功能软件的硬件设备,包括外壳、各种电路、线束等。

● 驱动程序:可以使设备的软件与硬件之间进行通信的特殊程序,相当于硬件的接口,应用软件只有通过这个接口,才能控制硬件设备的工作。

● 接口程序:指应用程序编程接口,是一组预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

● APP程序:指第三方的应用程序。此处指陕汽业务逻辑,运行在驱动接口层之上的应用程序。

● 时钟:在计数系统中,所有的波形都与一个基本时序波型同步,称之为时钟(clock)。时钟是周期波,每两个脉冲之间的间隔等于一个位时间。

● 内存:内存(Memory)也被称为内存储器,是嵌入式系统中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

● CAN总线:CAN是控制器局域网络(Controller Area Network, CAN)的简称,是德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。

● 天行健车载终端:天行健车载终端是陕重汽为重卡用户打造的基于车联网技术的一种智能服务系统中的采集终端。该终端为整个智能服务系统提供GPS卫星定位、GPRS数字移动通信、采集车辆发动机ECU、车身中央控制器CAN总线等信息,并通过天行健车载终端向管理平台上传上述信息、同时天行健车载终端接收管理平台下发指令帮助用户实现对车辆的远程监控和管理。天行健车载终端在以下文中简称车载智能终端。

前言

陕西中交天健车联网信息技术有限公司是陕西汽车集团有限责任公司的下属控股子公司。陕西汽车集团有限责任公司建于1968年,前身为陕西汽车制造厂,是我国主要生产重型汽车的大型骨干企业。产品主要覆盖重型军用越野车、重型卡车、中型卡车、大客车及底盘、重型车桥、大型马力发动机等。其中重型卡车市场占有率40%以上。陕西中交天健车联网信息技术有限公司是陕西汽车集团为了由制造型企业向服务型企业转型及卡车智能化、物联化,进而大力发展重型卡车产业,于2013年6月成立的。

陕西中交天健车联网信息技术有限公司是中国第一家专业于卡车车联网技术研究、应用、终端产品生产及销售的高科技车联网平台运营商和综合服务提供商。公司自主研发的天行健车联网服务系统及智能终端拥有数十项专利及软件著作权,全面满足交通部、公安部国标/部标等相关要求及JT/T794-2011、JT/T7808-2011、GB/T19056-2012标准,成功被工信部授予“国内独家车联网技术应用实训示范基地”。

基于中国4000万卡车运输市场,依托陕汽集团47年专业卡车制造及运营数据研究平台,中交天健公司前瞻性的开发出“天行健”车联网系统及智能终端,成为国内首例卡车物流运输行业高成长性新兴产业企业。2013年,公司实现配套及销售1万套,产品在国内市场上覆盖31个省、直辖市及自治区,是中国2013年车联网及终端市场占有率第一品牌,并于2013年8月特邀成为汽车工程学会发起成立的“车联网产业技术创新联盟首届理事单位”。 2014年,公司销量突破5万套,继续稳居重卡车联网行业领导者地位;天行健渣土车管理平台推动全国渣土车管理变革,成为行业渣土车的参考标准;同年9月,中交天健公司成为行业首家通过“双软企业认证”的企业。

中交天健公司致力于卡车的全生命周期及用户使用全过程的系统解决方案的平台搭建及信息管理。通过打造开放的信息平台和信息管理,公司为用户提供引领高效节能运输的物流解决方案,依托陕汽集团2017年产销20万辆的制造主体,愿景目标是成为中国车联网技术及应用的引领者和规则制定者。

由于陕西汽车集团有限责任公司在车载智能终端业务方面的需要,基于以下需求:

◆ 基于更为方便广泛的选用备用供应商需要;

◆ 基于树立行业标准的需要;

◆ 基于服务依赖标准来获得更好的可操作性需要;

◆ 基于降低软件开发复杂性,以便于开发及分工的需要;

◆ 基于不要求所有的数据和逻辑都驻留在单一的MCU上需要;

◆ 基于服务的体系结构允许使用非常灵活的部署策略需要;

◆ 基于专有应用程序逻辑离散单元的保密需要;

◆ 基于专有应用程序逻辑离散单元的快速优化及更改需要;

◆ 基于便于后续软件维护的需要;

陕西汽车集团有限责任公司决定在业界首次引进嵌入式分层技术,由中交天健定义软件分层接口标准,生产厂商按照该标准开发陕汽定制车载智能产品。本文档不对具体系统设计及调度要求,系统设计要求请参见《天行健车载终端技术要求》,主要描述了分层结构APP应用层级与中间件级之间的标准接口,以指导终端软件按照嵌入式分层技术为主体进行开发,终端软件中间件级、平台级及整体软件系统设计由供应商提供符合应用层级要求的终端软件设计方案。

1、软件分层结构概述

1.1 软件的分层

软件分层是目前典型的应用软件的三层结构。

表述层:提供与用户交互的界面。GUI(图形用户界面)和web页面是表述层的两个典型的例子。

业务逻辑层:实现各种业务逻辑。

数据库层:负责存放和管理应用的持久性业务数据。

1.2 区分物理层和逻辑层

软件的分层包含两种含义:一种是物理分层,即每一层都运行在单独的机器上,这意味着创建分布式的软件系统;一种是逻辑分层,指的是在单个软件模块中完成特定的功能。业务逻辑层和数据库层运行在同一台机器上,这台机器即是应用服务器,又是数据库服务器,因此整个系统物理上分为两层,而逻辑上分为三层结构。

1.3 软件层的特征

软件层必须符合以下特征:

1、每个层由一组相关的类或组件(如EJB)构成,共同完成特定的功能。

2、层与层之间存在自上而下的依赖关系,即上层组件会访问下层组建的API,而下层组件不应该依赖上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。

3、每个层对上层公开API,但具体的实现细节对外透明。当某一层的实现发生变化,只要它的API不变,不会影响其它层的实现。

1.4 软件分层的优缺点

● 软件分层的优点

恰当的为软件分层,将会提高软件的以下性能。

1.伸缩性(指应用程序是否支持更多的用户)

2.可维护性(指的是当发生需求变化,只需修改软件的某一部分,不会影响其它部分的代码。层数越多,可维护性也会不断提高

3.可扩展性(指的是在现有系统中增加新功能的难易程度)层数越少,增加新功能就越容易破坏现有的程序结构。层数越多,就可以在每个层中提供扩展点,不会打破应用的整体框架。

4.可重用性(指的是程序代码没有冗余,同一个程序能满足各种需求)

5.可管理性(管理系统的难易程度)

● 软件分层的缺点

软件分层越多,对软件设计人员的要求就越高。在设计阶段,必须花时间构思合理的体系结构。此外软件层越多,调试会月困难。如果应用规模较小,业务逻辑很简单,软件层数少反而会简化开发流程并提高开发效率。

2、天行健终端嵌入式软件开发分层结构

2.1 软件总体架构

车载智能终端的软件总体架构设计采用分级分工程设计模式即为分层式软件架构模式开发。如图1所示,总体架构上可分为3级:平台级(PLAT)、中间件级(PORT)和应用级(APP),采用分层式软件架构模式实现各级之间的软件分离设计,从而使应用软件具备跨平台移植运行特性。

2.2 APP应用级

APP应用级即为业务逻辑层,通过规范性接口与中间件级及平台级进行交互,依赖中间件级及平台级完成数据采集、网络通信、位置信息服务、控制输出等功能。APP应用级将JT/808标准、19056-2012标准业务逻辑,陕汽专有业务逻辑封装成标准性层级。该层运行在中间件级之上。APP应用级内部功能结构如下图所示:

APP应用级包括的功能主要有以下5个方面:

1.满足国标GB19056-2012行车记录仪的标准功能;

2.满足交通部北斗部标(2013修订)的标准功能;

3.满足陕汽天行健系统对应多种发动机、车型等的采集及控制的功能;

4.满足各地不同的专用车业务的功能;

5.满足与中交天健合作的其他合作方要求的功能等。

2.3 中间件级

中间件是根据不同的模块平台对平台的硬件驱动进行封装转换的抽象层,用于引导运行应用软件,因而称为中间件。中间件的设计用以保证平台级与应用级的无缝连接,需要以APP应用层级制定的业务逻辑及具体功能模块为制定接口的基准,以平台级的具体物理接口及可编程逻辑器件为制定接口基础。

当硬件平台级更换时,无需变更中间件的接口标准,只需修改平台级的相关驱动代码与之匹配,即可保证整个软件系统能在新平台级上正常运行。

中间件级依据APP应用层级的具体功能模块及模块内部的小项功能接口要求来实现具体标准接口的函数实体,依据平台层级的具体物理接口及可编程逻辑器件的性能及功能实现整个系统功能,已达到中间件级匹配APP应用层级及平台层级的效果,起到承上启下的作用。

2.4 平台级

平台级即为硬件层,即包含具体物理接口及可编程逻辑器件,包括设备的所有可见部件,诸如电路板、电子及组装配件、外壳以及线束等。平台级为系统的定位、采集、控制、网络连接及其他计算和服务提供硬件基础。作为整个系统的基础,该层通过各种电路及模块,为驱动及接口层提供系统启动、重启、时钟、运算、数据保存、定位、网络连接、采集、控制等功能。平台层是整个系统的基础层,在APP应用层的业务逻辑指令下,中间件层驱动平台层执行指令,进而获取平台级的资源,获取信息或输出控制。

3、天行健终端嵌入式软件分层开发技术在实践过程中的优势及问题

● 分层开发技术的施行过程中的优势

由车载智能终端生产厂商提供车载智能终端平台级硬件及代码和中间件级功能代码,陕西汽车集团有限责任公司提供车载智能终端APP应用级代码及中间件级功能标准接口。以此方式实现车载智能终端嵌入式软件分层开发,采用该设计方案有以下优点:

1. 分层开发从企业长远发展的角度上来说,极大提高了主机厂的自主选择权,降低了对单一供货商的依赖程度。

2. 分层开发缩短了软件开发人员的开发周期,提高了开发人员的专注度,进而极大提高整个系统的稳定性;

3. 各层之间采用标准通讯及数据交换接口,层与层之间采用封闭式管理,很大程度上降低了系统的耦合性;

4. 通过分层结构的方式,可以分离开发人员相互之间的关注程度。由于某一层仅仅调用其相邻下一层所提供的服务,所以,只要本层的API和相邻下一层的API定义完整,开发人员在开发某一层时就可以像关注集中于这一层所用的思想、模式、技术,这样,就等同于将分工带来的生产力提高优势引入软件开发。

5. 各层之间采用标准通讯及数据交换接口,在优化及更改应用程序逻辑离散单元的功能的同时不干扰其他程序层级,进而大大的提高优化及维护效率;

6. 《车载智能终端软件分层接口标准》订立可减少不同供货商之间针对功能需求理解的差异性;

7. 分层开发极大的提高软件复用性,缩短系统软件开发周期,提高系统的流畅性、稳定性及可维护性。

● 分层开发技术的施行过程中的问题

1. 分层结构不能保证封装所有的应用程序逻辑离散单元,某些复杂应用程序逻辑离散单元,一旦有功能变动,可能会波及所有的层。这种修改尤其体现在自上而下的方向。比如,如果在APP应用程序层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的驱动接口层增加或修改代码,甚至要修改硬件设计。针对这种问题,主要要通过前期深入讨论,以及相关供应商共同设计验证。

2. 效率下降,各层之间的过于频繁数据交换及通讯,将引起系统效率降低,对于优先级水平分布的层级,效率降低较为明显。针对这种情况,一方面必须提升原有硬件设备的整体性能,同时硬件平台必须保证运行驱动接口层和APP应用程序层的基本性能资源,另一方面,可以通过软件的缓存机制来尽量减少对性能的影响。

4、总结

本文通过对陕西中交天健车联网信息技术有限公司天行健终端分层开发技术的研究及实践,创新性的将应用软件分层开发技术引入嵌入式软件开发中。解决了快速遴选供应商,软件跨平台移植,降低嵌入式软件对硬件平台的依赖性等问题。经过首次尝试,成功的完成了天行健终端全功能的开发,并在功能及性能上达到国家标准及企业标准。在开发过程中也认识到了分层开发技术在嵌入式软件应用当中的优势及问题。同时按照设计要求,在最终产品成型后总结出了《天行健嵌入式软件分层接口标准》。该标准的建立,更加简化了后期序列产品的开发周期以及屏蔽了嵌入式软件产品对硬件平台的各项要求,降低了当前使用产品的维护成本。为陕西中交天健车联网信息技术有限公司成为中国车联网技术及应用的引领者和规则制定者,打下了坚实的基础。同时也为陕西汽车集团由制造型企业转型为服务型企业,留下了宝贵的经验。本文希望通过以陕西中交天健车联网信息技术有限公司为鉴,力争为我国重卡车联网技术开发及应用穿针引线,为后续更多的车联网企业创新提供借鉴。为我国车联网行业的蓬勃发展做出贡献!

[1] 交通部标准《道路运输车辆卫星定位系统平台技术要求》(JT/T 796).

[2] 交通部标准《道路运输车辆卫星定位系统终端通讯协议及数据格式》(JT/T 808).

[3] 交通部标准《道路运输车辆卫星定位系统平台数据交换》(JT/T 809).

[4] 交通部标准《道路运输车辆卫星定位系统车载终端技术要求》(JT/T 794) .

[6] 国家标准《机动车运行安全技术条件》(GB7258).

[7] 国家标准《汽车行驶记录仪》(GB/T 19056).

[8] 温昱《软件架构设计》电子工业出版社 2007.

On Heaven terminal embedded software development technology stratified

Wang Xuejun
( Tianjian Shaanxi post Telematics Information Technology Co., Ltd., Shaanxi Xi'an 710200 )

The hierarchical system software architecture style will be organized into a hierarchy, a hierarchical system is a hierarchical organization, each of the upper to provide services, in terms of the object while the lower layer is also a service. In some hierarchical system, only the inside layer adjacent layers visible. In addition to the adjacent outer layer or after a specific function other than selected for output, the inner layer is hidden. This style supports to increase abstraction layer design. Since most affect only two per floor, and as long as the adjacent layers provides the same interface, allowing each to achieve different ways, the same as software reuse provides a powerful support.

embedded software; hierarchy Terms and Definitions

U461.9

B

1671-7988(2015)06-143-04

王学军,就职于陕西中交天健车联网信息技术有限公司。

猜你喜欢
天行健嵌入式软件中间件
我国自主可控中间件发展研究
嵌入式软件测试数据传输稳定性检测方式分析
浅析嵌入式软件技术的现状与发展动向
基于VPRS方法的汽车嵌入式软件品质评估
名人名言
弹 性
嵌入式软件在计算机软件开发过程中的运用
名言警句
以实力证明 用事实说话
云计算环境下中间件的负载均衡机制研究