SOA汽车软件开发和部署步骤及接口描述语言转换方案

发布者:chinapxf最新更新时间:2023-05-25 来源: elecfans关键字:SOA 手机看文章 扫描二维码
随时随地手机看文章

SOA架构盛行

随着汽车新四化的推进,汽车整车厂在实现车辆网联、自动驾驶和数据驱动的同时,更要在满足用户体验和基本服务的基础上快速响应客户的个性化需求,为更好地解决这些新的挑战,整车厂引入了高性能的芯片、突破性的技术产品,同时传统的EE架构也需要变革,SOA(面向服务的架构)成为大多整车厂响应市场需求的首选架构。SOA架构的主要优势是可以在很大程度上实现分布式系统软件模块间的解耦,通过软件升级OTA可以更方便灵活地将服务实体部署在任意的域控制器上,服务之间只需通过简单、精确定义的接口进行通讯,不涉及底层编程接口和通讯模型。而且对于ECU的版本更新、信号库更新、代码修改等过程更加简便和灵活。简化了注册服务与调用API,节约了时间成本,提高系统的健壮性和扩展性。          


SOA开发和部署步骤

设计和部署一个SOA汽车软件大概可分为以下几个步骤:  

d1765a5c-e7a3-11ec-ba43-dac502259ad0.png

图1  SOA开发部署步骤

服务接口开发阶段往往需要挑选有固定规则、逻辑性强,又有大量高度重复的场景进行测试验证,为了快速进行验证,架构工程师通常会以IDL(接口描述语言)来做服务定义描述,作为开发链路上后续工作开展的输入,业务逻辑开发阶段以统一的标准进行服务实现。   市面上的IDL语言非常多,例如FIDL、Protobuf、vCDL、ARXML、OMG IDL、CANoe FDX等。测试人员对于各种IDL的语法规则需要零基础开始学习,在转换过程中相应的操作也比较复杂、繁琐,同时出错率也很高。   如果软件的架构采用了SOA,对系统中的功能进行了服务化,在前期技术选型,清单定义、架构设计以及中期的业务逻辑开发阶段都会碰到诸如以下的几种场景。      


场景一

架构人员在使用PREEvision Adaptive AUTOSAR进行系统建模、定义服务相关SWC后,通常会导出不同类型的ARXML,该文件定义了各服务接口、数据类型、参数引用等,这些AP ARXML可导入到CANoe中进行节点仿真和监控以太网通信,也支持导入DaVinci IDE生成代码,配合DaVinci进行开发。但是这个建模过程短期内无法完成,需要不停地沟通协调,考虑便捷性,在沟通过程中相关方会以Excel作为沟通输入,最终会将这些Excel中的配置信息再转换为ARXML导入到相关的工具中进行验证。

 

d1a6bcc4-e7a3-11ec-ba43-dac502259ad0.png

图2-1  接口和数据类型定义Excel

d1c16b00-e7a3-11ec-ba43-dac502259ad0.png

图2-2  接口和数据类型定义Excel  

如上图简单示例,其中结构体引用,数据类型等信息容易出错,时常需要反复修改后再重新转换为ARXML,这个过程费时费力,从效率角度来说也影响了软件的开发进度。  

    

场景2

以太网测试(以SOME/IP为例)时,开发人员输出的是Excel,测试人员需要再把Excel转成测试软件可以支持的文件格式,如vCDL,此环节工作量极大,正确率也无法保证。

 

d1f0d00c-e7a3-11ec-ba43-dac502259ad0.png
图3-1  以太网测试接口定义Excel  

d21bcc8a-e7a3-11ec-ba43-dac502259ad0.png
图3-2  以太网测试接口定义Excel      

场景3

开发人员在使用DaVinci做架构设计时,为了加快开发周期,通常情况下会先使用Excel做模板,在Excel中填入接口信息、数据类型、SWC定义、SWC与接口关系等信息,然后再由模块责任人把Excel中的数据在DaVinci Developer中做相应的节点配置和连线关联,整个过程出错概率高并且重复性高,需要有工具能依据Excel模板文件自动生成ARXML文件,实现SWC的转换及接口与SWC结合工作,用以提高设计效率。


场景4

在SOA架构中,中间件技术的应用使得应用软件与底层的操作系统和硬件实现了解耦,我们可以使用 SIL (Software in loop) 技术在系统开发早期对系 统进行功能验证。SIL 测试的一个重要环节是 SIL Adapter 开发。SIL Adapter 实现了测试系统对被测服务实现的调用。针对各个服务接口的 SIL Adapter代码结构是相同的,只是接口参数数量、名称、类型方面有少量代码差异,整个过程重复性也较高,需要有工具能自动将架构设计产出的FIDL、XML、ARXML等文件自动转化为C++等代码,同时能根据文件中的描述/备注等内容自动生成插桩代码,这将缩短验证周期。


场景5

SOA架构设计、测试验证等阶段,工程师在使用相关工具软件时,会使用许多配置文件作为输入或输出文件,但是鉴于使用的工具众多,且文件格式之间的标准并不统一,所使用的各个开发工具及测试工具也并不能支持所有的格式,所以各个工具间的串联并不流畅,影响工程师的工作效率,需要有工具能自动将这些不同格式的文件进行互相转换以实现工具的高效串联。


场景6

测试用例通常是在Doors或Polarion中管理,测试用例中的测试步骤或测试标准正常是以自然语言的方式描述,在测试执行过程中软件无法识别这些描述性语言,测试人员需要先将这些自然语言转换为脚本文件,再把测试脚本放到测试工程中执行,在测试用例较多的时候这个工作量将会非常庞大,需要有工具能集成相关用例管理软件,将测试用例能自动转换为相应的测试软件的脚本文件,在提高效率的同时减少出错机率。


场景7

SOA测试开发过程大体上需要进行以下几个步骤:

1.测试规范开发:基于需求规范和测试经验及对实现方案的理解,完成测试规范的开发。

2.SOA-HIL 测试系统需求分析和测试系统开发:被测对象的引脚和资源定义,HIL硬件及测试软件运行环境搭建。

3.测试工程开发:开发测试工程,实现测试规范所定义的测试内容的自动化/半自动化测试。

4.仿真模型开发:开发仿真模型,与待测节点建立接口交互。

5.测试环境集成调试与测试执行:针对某一具体被测对象进行测试环境搭建、工程集成调试与测试执行。


以上各个步骤中所需的输入物类型较多,如:SOA功能的需求规范、服务接口规范,资源定义文件,测试范围定义,ARXML 等类型数据库文件,测试系统第三方编程脚本,测试规范,通信数据库,通信矩阵文件,被测节点交互数据格式定义等,需要有工具能够按测试项目进行统一分类管理,同时能够支持相关输入物间进行格式转换,转换后的结果能够便捷地加载到相关的测试软件中或能够通过网络自动上传到配置库的对应位置下方便后续操作。


场景8

目前SOA架构软件普遍采用敏捷开发方式进行管理,软件版本的高频迭代极大考验了测试人员工作量和自动化测试能力,目前大多整车厂和零部件供应商基本上已在进行或正在研案持续集成测试方案来解决这一问题。


如下图所示,随着SOA架构的盛行,输入物或规范文件已经出现了多样化,但是持续集成测试推进的前提条件是需要预先将这些测试软件不可识别的接口文件或用例文件转换为符合测试软件定义的规范脚本,并且能够与相关的工具进行集成自动转换。

d3161262-e7a3-11ec-ba43-dac502259ad0.png
图4  持续集成测试文件转换需求示意图      

为什么需要接口描述语言转换

以上几个场景都需要测试人员手动录入或转换后才能继续推动项目进度,此环节尤为关键,但往往转换周期较长,且该工作耗时又费力,出错率也较高,导致经常返工,这些问题一直困扰着的开发/测试人员。      

      

PAVELINK.

SOA-Converter介绍

针对以上问题,北汇信息开发出了接口描述语言转换工具——PAVELINK.SOA-Converter。   PAVELINK.SOA-Converter是一个基于Eclipse开发的IDL转换工具。可实现对常用IDL语言的批量转换(FIDL、OMG IDL、Protobuf、vCDL、CANoe FDX、ARXML等),例如FIDL转CANoe FDX,FIDL与Protobuf互转,同时也支持直接通过Protobuf转换CANoe FDX等便捷的转换功能,转换前可根据用户需求自定义输出目录、是否忽略注释信息、是否批量转换、是否转换为多个文件等配置。   PAVELINK.SOA-Converter结合测试代理引擎进行自动化回归测试,可以解决整个链路的沟通问题并缩短测试验证的时间。   用户通用使用PAVELINK.SOA-Converter实现对文件的快速转换,相较于人工转换,不但很大程度上节约了时间成本,而且保障了转换的正确率,提高了开发测试的进度,同时有效降低了维护的成本。  

d35b401c-e7a3-11ec-ba43-dac502259ad0.png

图5  PAVELINK.SOA-Converter工作示意图      

主要功能如下

•  接口语言脚换器: 通过接口语言转换实现基于SOA架构的软件设计开发过程中各工具链间的连通。

•  接口语言编辑器: 通过搭建多个接口语言集中一站式编辑环境,可以实现对接口文件的二次编辑转换,同时实现语法校验、关键字提示和补全等功能。

•  命令行转换器: 提供无头(headless)跨平台的命令行工具,支持命令行调用转换功能。

•  配置库集成: 集成配置库,自动同步文件,更新提醒,当有源文件更新后实现自动转换为目标文件。

•  开放调用接口: 通过文件流监听方式与外部工具集成,为自动化测试提供便利。

•  插件灵活拓展: 通过插件的灵活拓展,快速实现新的脚本语言转换。

•  SOA通信方案拓展: 通过对接口描述语言的解读,自动转换为服务端(Skeleton)和客户端(Proxy)框架代码等。

PAVELINK.

SOA-Converter使用说明

PAVELINK.SOA-Converter的使用操作十分便捷,在Eclipse中只需要点击鼠标,或者使用简单的命令即可完成转换工作。    

PAVELINK

Eclipse 插件转换

在Eclipse中安装好插件,选择文件后右击->SOA-Converter->选择需要转换的格式类型即可。

d3833126-e7a3-11ec-ba43-dac502259ad0.png

图6  PAVELINK.SOA-Converter图形化示意图

PAVELINK

命令行转换

也可以通过命令执行转换。

常用参数说明:

[-sf]指定转换的源文件类型。 [-tf]指定转换后生成的文件类型。 [-sp]指定需要转换的文件或位置。 [-d]指定转换后文件输出位置。 [-dv]忽略版本校验。  

d3b39e10-e7a3-11ec-ba43-dac502259ad0.png

图7  PAVELINK.SOA-Converter命令行示意图    

PAVELINK

示例说明

某OEM 基于SOA架构的服务接口测试项目,使用PAVELINK.SOA-Converter实现FIDL转CANoe系统变量XML,简化测试验证过程。

 

d425b3f6-e7a3-11ec-ba43-dac502259ad0.png
图8  FIDL转CANoe系统变量示例

转换完成后,按步骤在CANoe中直接导入转换后的XML文件即可,如下图。

 

d4639c98-e7a3-11ec-ba43-dac502259ad0.png
图9  转换后的系统变量XML文件导入CANoe软件示例

CCU域控制器的测试规范、脚本开发及测试服务,使用PAVELINK.SOA-Converter实现FIDL转SOA功能实现服务端和客户端C++代码示例。

d4a717d4-e7a3-11ec-ba43-dac502259ad0.png
图10  SOA通信实现节点示意图

如上图所示,调用PAVELINK.SOA-Converter转换PREEvision等设计工具输出的服务接口文件,生成对应的Proxy、Skeleton、Stub代码。  

d4d63b9a-e7a3-11ec-ba43-dac502259ad0.png
图11  服务接口文件转换C++示例图

某供应商网联类控制器SOA功能规范测试开发项目,使用PAVELINK.SOA-Converter实现Excel转ARXML,接口和SWC关联示例

d4f62ac2-e7a3-11ec-ba43-dac502259ad0.png
图12  Excel模板示意图

转换后ARXML内容如下:

d5290302-e7a3-11ec-ba43-dac502259ad0.png
图13  ARXML截图示意


关键字:SOA 引用地址:SOA汽车软件开发和部署步骤及接口描述语言转换方案

上一篇:基于MATLAB与Simulink的ADAS开发
下一篇:永铭固液混合电容器--汽车电子水泵中的应用介绍

推荐阅读最新更新时间:2024-11-09 16:25

SOA架构上车,就站在规模量产边缘
根据车型量产节奏,SOA架构大规模落地预计在2023-2025年,今年是一个分水岭。 SOA架构软件平台,仿佛一夜之间在汽车行业生根发芽,成为各大车企和供应商的香饽饽。 不久前,上汽零束,就在SOA开发者大会上,发布了银河智能汽车全栈解决方案3.0,其中SOA开发者平台就是一个重要的组成部分。 而岚图也在刚刚结束的科技日上,发布了ESSA+SOA智能电动仿生体,SOA电子电气架构成为重点。 在此之前,蔚来、埃安、威马等车企也早早在相关的技术上有过声音,各种案例不胜枚举。 虽然车企在不停地鼓吹这一概念,但是SOA架构到底是什么东西,仿佛一直是云里雾里。 本篇文章,我们就来掰开揉碎地讲讲,SOA架构是
[汽车电子]
<font color='red'>SOA</font>架构上车,就站在规模量产边缘
车圈“最强大脑”是哪家?SOA电子电气架构加持的岚图,够资格吗
不知不觉中,在许多行业都出现了机器人的身影,而且这些机器人不仅会执行既定的程序代码,还具备了一定的自我学习能力,可以更好地满足用户的使用体验,并不断升级以匹配用户的需求。 假如汽车也有自我进化能力,我们同样也能享受到常用常新的用车体验。 那么,纵观当下汽车圈,哪些车型具备自我进化的能力呢?SOA电子电气架构加持的岚图汽车,就是其中之一。 AI深度学习,岚图能成为“最佳拍档”? 一款新能源汽车,如何才能实现自我学习和持续进化? 首先,这辆新能源汽车必须处理好用户驾驶习惯、用车环境、用户偏好等海量数据,并且从庞大的数据中挖掘有价值的信息,才能达到自我学习的目的。 而SOA电子电气架构支持下的岚图汽车,每天可以接
[汽车电子]
车圈“最强大脑”是哪家?<font color='red'>SOA</font>电子电气架构加持的岚图,够资格吗
苹果汽车软件开发管理负责人离职,苹果汽车或再度搁浅?
传闻中的 Apple Car 再次飘忽不定。这是因为苹果自动驾驶汽车开发项目 Titan 的核心人员又离开了一位。 据彭博社报道,Apple Car 项目团队软件开发项目管理负责人 乔·巴斯Joe Bass 在入职苹果七年后离开了公司。 Joe Beth 离开苹果的原因是因为他入职了 Facebook 的技术项目管理总监。 对于任何一个大公司来说,一个员工的离职都不至于导致整个项目的搁浅,但是乔·巴斯(Joe Bass)对于苹果汽车的重要性太大了。随着他的离开,苹果一年前组建的汽车管理团队几乎名存实亡,高管尽数离开。 苹果公司内部已经将原定于 2030 年后发布的 Apple Car 的日程提前至 2025 年。这是因
[汽车电子]
苹果<font color='red'>汽车</font><font color='red'>软件开发</font>管理负责人离职,苹果<font color='red'>汽车</font>或再度搁浅?
51单片机十进制整数与二进制整数转换汇编语言子程序
==================================== 【4位十进制整数转换为二进制整数子程序】 入口:十进制整数千位数RAM址存于R0,百位数、十位数、个位数RAM址依次加1; 返回值:转换所得二进制整数存于R3(高字节)R4(低字节)。 DtoB: MOV R2, #4 ;;R2←递减的循环次数初值 MOV A, @R0 MOV R4, A ;;R4←千位数 LP1 : MOV A, R4 ;;R3R4←(R3)(R4)*10 MOV B, #10 MUL AB MOV R4, A MOV B, #10 XCH A
[单片机]
全面SOA化的电子电气架构是什么样的?
在汽车产业向智能化转型的过程中,汽车的开发模式、消费者对车的认知,以及汽车销售的商业模式都在发生着颠覆性的改变。传统的电子电气架构已经越来越无法适应现如今消费者对汽车智能化的要求。 工程师在传统电子电气架构上开发新功能时,耗时长且迭代难,此外,工程师在开发时还需要考虑种种限制条件并且要针对不同车型做定制化开发。 △传统电子电气架构的痛点 为避免上述问题,越来越多的车企倾向于选择区域接入+中央计算的SOA架构。华为在这次上海车展前夕发布的iDVP智能数字底座,便是这样一套满足区域接入+中央计算标准的SOA架构。 1. 华为iDVP智能汽车数字底座的结构与预期功能 在底盘等机械硬件之上,华为将整车分为几个层次,从下往上依次为硬
[嵌入式]
全面<font color='red'>SOA</font>化的电子电气架构是什么样的?
参数——汽车软件开发中最大的挑战之一
一个参数很少单独出现。 我们的许多客户已经在他们的应用程序中实现了成百上千个参数,以便在车辆中参数化(即应用)软件。这不仅体现在动力系统和发动机的开发上,还体现在汽车开发的所有领域,如驾驶辅助、车身和舒适性以及能源管理。 软件的应用通常是在软件用于多个型号和迭代的车辆时完成的。参数为开发提供了必要的灵活性,通过巧妙地调整软件来补偿系统变量,从而使软件可重用。 因此,参数支持面向产品线的软件开发。 运用到软件中的每个参数都伴随着软件开发过程中日益增长的复杂性。因此,测试带参数的软件更加需要注意。 什么是参数? 参数是在运行时具有常量值的变量。 它在软件程序开发过程中使用,以便能够调整目标系统中程序的反应。因此,开发团
[嵌入式]
参数——<font color='red'>汽车</font><font color='red'>软件开发</font>中最大的挑战之一
汽车软件开发的工程化思想综述
如果软件开发的伊始目标就是为了演示或是纯粹做个玩具,我并不反感甚至认可“明天就要”的开发方式,因为敏捷高效成本低。但奈何我们选择了汽车这个产品品类,这几乎就是软件开发的地狱模式。很多三观是需要被颠覆的。 曾经作为一个软件算法工程师,能够让软件在车上跑的好,就是唯一的目标。这个目标逻辑上没有问题,但量产是什么概念,是多个项目并行开发;人员严重短缺,关键人员随时放鸽子;需求变化快还存在大量差异。前序流程频发状况,项目时间计划后墙不倒。在这些背景,要保证大规模车辆,在每个版本上都能够有线性的性能提升,还要维持长周期下的稳定性。并且要维持大量的数据、测试、版本、记录、流程以支持跨部门的合作配合。对,虽然简单说还是软件在车上跑的好,但难点
[嵌入式]
软件开发流程是智能汽车安全上路的保证
在已经过去的2021年,降低汽车道路行驶事故率、提高驾驶过程舒适性的高级驾驶辅助系统(ADAS)已广为用户熟知。以用户为中心的智能座舱,利用人工智能技术持续迭代学习能力,提供更加友好、更加轻松且更加安全的驾驶体验,成为用户购车的首选。 据美国道路安全委员会统计,在所有严重的机动车交通事故中,94%是由于人为错误或选择造成的。智能驾驶辅助技术和自动驾驶技术能够比人类司机看得更清楚、操纵更迅速,可显著减少错误,降低事故率及损失。随着驾驶员状态监测系统、语音和手势等多模态智能座舱技术的应用,在未来驾驶汽车将成为一种轻松娱乐体验,成为人们不可或缺的生活方式之一。 图片来源于网络 以智能辅助驾驶为基础的自动驾驶技术有着独特的魅
[汽车电子]
<font color='red'>软件开发</font>流程是智能<font color='red'>汽车</font>安全上路的保证
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved