一文轻松搞定ETASCP工具链基本概念与开发流程

汽车电子嵌入式 2024-10-29 07:53

来源:CSDN

作者:十六宿舍

概述

ETAS RTA-CAR(Classic AUTOSAR)包括用于ECU软件开发的基础软件模块和工具,主要内容如下:

  • ISOLAR:工具包含ISOLAR-A和ISOLAR-B两个部分,用于配置Classic AUTOSAR产品。

  • ISOLAR-A:用于AUTOSAR架构配置与应用集成工具。

  • ISOLAR-B:用于配置满足AUTOSAR标准的基础软件,以及用于生成和集成ECU软件的工具。

  • RTA-RTE:ETAS RTA-RTE (runtime environment) 为符合AUTOSAR的ECU软件提供运行时环境。它支持相关AUTOSAR, OSEK/VDX, ISO 26262, 和MISRA C标准的最新版本。

  • RTA-BSW:RTA-BSW提供全套AUTOSAR基础软件模块,与RTA-OS和RTA-RTE相结合,即可构建用于ECU应用开发的整套AUTOSAR平台软件。它提供了完整的基础软件协议栈,例如CAN、LIN、J1939、诊断、XCP、以太网SOMEIP等。

  • RTA-OS:RTA-OS 以汽车工业建立多年的RTA-OSEK 实时操作系统的经验为基础。RTA-OS 支持单片和多片微控制器的使用,在最小运行时系统开销的条件下结合一整套AUTOSAR 功能。由于其ASIL-D 的ISO 26262 认证的优点,RTA-OS 也可以被用于进行严格安全要求下的功能开发。

开发框架与流程

下面的脑图包含了使用ETAS CP工具链进行开发的一个基本框架,其中把整个ECU的软件开发设计分为了软件组件开发、系统级设计与配置、ECU设计、以及RTE集成与配置。其中应用软件组件开发主要着眼于控制逻辑以及算法的开发,系统级设计与配置主要着眼于组件(包含应用以及基础软件组件)之间的关系设计,ECU设计主要着眼于基础软件组件,OS,以及底层驱动的设计与实现,RTE的集成与开发则着眼于根据系统级设计完成组件间通信以及任务调度。

下图是一个自顶而下的开发流程,其中第一步采用的工具是Matlab/Simulink与Embedded Coder,第二步到第四步采用的是ISOLAR(内部集成了RTA-BSW,RTA-RTE),第五步采用的是RTA-OS,第六步采用的是EB,第七步则为HighTec或者是Tasking等。

系统及设计与配置

创建部件与系统

部件(Composition)是软件组件的集合,它包含一组相关甚至整车的所有ECU的软件组件,下图是部件的建立方法。

系统(System) 建立的方法如下。

系统建立完成之后,需要为其添加一个Compositon,通过下图新建一个Root SW Comppsition Prototype。 

建立完成之后建立对刚才部件的引用。


定义数据类型(Data Types)与接口(Interface)

AUTOSAR定义了三种数据类型,即应用数据类型(ADT),实现数据数据类型(IDT)以及基本数据类型(Base Type)。下面主要说明一下建立应用数据类型(ADT)中的数组类型。

配置类型属性。

AUTOSAR常见定义了两种接口(Interface),一种是发送者-接收者接口(Sender-Receiver Interface,S/R),一种是客户端与服务器接口(Client-Server Interface,C/S)。S/R接口是一组数据类型的集合,连接的两个组件通过类似全局变量的方式传递数据,C/S接口则是一组函数原型集合,定义了IN(输入参数),OUT(输出参数,传入的是地址)等函数的参数以及返回值。

下图为一个包含了一组数据集合的S/R接口。增加接口点Add SR Interface即可。

下图包含了一组函数原型集合的C/S接口,并打开了一个函数的参数,包含BufSize等。增加C/S接口则点击Add CS Interface即可。


系统约束描述文件(DBC)导入

DBC文件主要包含以下几个部分的内容。

  • Networks(网络)

  • ECUs(电控单元)

  • Network nodes(网络节点)

  • Messages(报文)

  • Signals(信号)

每个DBC描述的是一个网络上的通信信息,所以首先要定义一个Networks(网络),这个是在新建database时自动创建出来的。之后就是定义Network nodes(网络节点),右键单击Network nodes新建即可,同时将在ECUs(电控单元)菜单中自动创建出相关ECU信息。

定义了网络节点后,就需要根据项目需求完成Signals(信号)和Messages(报文)的设计。右键点击Signals新建,按照项目的信号矩阵,完成信号的设计。下图是一个信号的配置界面。

定义了所有的信号之后,即可进行报文设计。右键单击Message新建即可,主要需要定义的属性如下,并将之前定义好的信号包含进来。        

在完成了所有的信号以及报文设计之后,就需要将他们在各个节点的收发关系定义出来。若报文是发送,则将该报文添加到相应CAN节点的Tx Messages即可;若报文时接收的,则需要拖动该报文的信号,将他们逐一添加到Mapped Rx Signals列表中,下图是两个Tx报文和一个Rx报文。

之后,就可以将系统配置所需要的输入文件导入到ISOLAR中。点击下图红框。

然后进入如下界面,选择要导入的dbc文件,和导入的CAN网络与对应的CAN控制器。

然后选择DBC中要导入的ECU。

最后选择对应的报文。

最后在对应的ECU中可以看到导入的信号信息。

DBC导入之后会根据DBC中定义的Offset和Factor完成原始值(总线上的值)到物理值(信号的物理值是物理量(如速度、转速、温度等)的值)的计算方法,具体的公式为:[Physical value] = ( [Raw value] * [Factor] ) + [Offset]

设计软件组件 

首先,新建一个应用组件如下图。


然后,建立软件组件内部行为,只有建立了之后才能Runnables(可运行项)等功能函数实体。

为软件添加端口(Port),端口按照方向分为PPort和RPort。

针对S/R接口,PPort“写入”接口包含的数据,RPort“读取”接口包含的数据,注意只有在Port引用了接口之后,才会建立数据的定义,不同PPort引用同一个接口会建立不同名称的数据定义,一个PPort可以对应多个RPort。

针对C/S接口,PPort“实现”接口包含的函数原型,RPort“调用”接口包含的函数,不同PPort引用同一个接口会对应不同的函数实现,一个PPort可以对应多个RPort。

下图建立了三个Port口,一个是C/S类型的RPort,一个是S/R类型的PPort,一个S/R类型的RPort。

然后我们建立一个Runnables,建立完之后,增加针对S/R类型PPort口的数据访问如下,我们选择DataSendPoints显式(Explicit,应用于实时性较高的数据传输,可以通过排布任务调度在一个调度周期内将数据传输到另一个组件)。然后增加针对S/R类型RPort口的数据访问,选择DataReceivePointByArguments显示访问。


然后增加针对C/S类型Port的访问,访问类型为Synchronous。因为接口包含了5个函数原型,所以选择对应的Port口之后,会显示Port口引用接口下的所有函数原型。

 最后,我们添加运行实体的RTE事件,我们选择周期性事件,并将周期设置成0.01s。

至此,组件相关的设计已经完成,但是要想正确的生成RTE,我们还需要以下几个步骤将组件跟之前建立的部件,系统,ECU等建立关系。

首先,我们将软件组件加入部件,双击之前建立的部件,然后点击加号,选择Component Prototype。

然后选择之前创建的应用组件Test,点击OK即可。

然后右键之间建立的系统,打开方式选择SWC To ECU,然后拖拽到ECU之下。

这里还需要把之前定义的Runnables加入到Os_Task,这部分我们到RTT配置部分再介绍。

最后生成组件内函数对应的.C文件,用户可以再接入/出的信号基础上添加逻辑。

选择为每个函数单独建立一个.c文件。 

下面是生成的.C文件,我们可以在注释写了Protect包含的地方写入代码,这样每次生成不会更改此部分代码。

/* ***************************************************************************** * BEGIN: Banner *----------------------------------------------------------------------------- *                                 ETAS GmbH *                      D-70469 Stuttgart, Borsigstr. 14 *----------------------------------------------------------------------------- *    Administrative Information (automatically filled in by ISOLAR)          *----------------------------------------------------------------------------- * Name:  * Description: * Version: 1.0 *----------------------------------------------------------------------------- * END: Banner ****************************************************************************** * Project : CSDNTest * Component: /ARPackage_0/Test * Runnable : RunnableEntity_0 ***************************************************************************** * Tool Version: ISOLAR-AB 4.0.2 * Author: geekl * Date : ������ ���� 21 18:14:36 2024 ****************************************************************************/
#include "Rte_Test.h"
/*PROTECTED REGION ID(FileHeaderUserDefinedIncludes :RunnableEntity_0_func) ENABLED START *//* Start of user defined includes - Do not remove this comment *//* End of user defined includes - Do not remove this comment *//*PROTECTED REGION END */
/*PROTECTED REGION ID(FileHeaderUserDefinedConstants :RunnableEntity_0_func) ENABLED START *//* Start of user defined constant definitions - Do not remove this comment *//* End of user defined constant definitions - Do not remove this comment *//*PROTECTED REGION END */
/*PROTECTED REGION ID(FileHeaderUserDefinedVariables :RunnableEntity_0_func) ENABLED START *//* Start of user variable defintions - Do not remove this comment *//* End of user variable defintions - Do not remove this comment *//*PROTECTED REGION END */#define Test_START_SEC_CODE #include "Test_MemMap.h"
FUNC (void, Test_CODE) RunnableEntity_0_func/* return value & FctID */( void){
uint32 read1; Std_ReturnType retRead1; EcuM_ShutdownTargetType shutdownTarget1; EcuM_ShutdownModeType shutdownMode2; Std_ReturnType syncCall2; EcuM_ShutdownTargetType shutdownTarget3; EcuM_ShutdownModeType shutdownMode4; Std_ReturnType syncCall3; EcuM_ShutdownTargetType shutdownTarget5; EcuM_ShutdownModeType shutdownMode6; Std_ReturnType syncCall4; EcuM_ShutdownCauseType shutdownCause7; Std_ReturnType syncCall5; EcuM_ShutdownCauseType shutdownCause8; Std_ReturnType syncCall6; uint16 write7; Std_ReturnType retWrite7;
/* Local Data Declaration */
/*PROTECTED REGION ID(UserVariables :RunnableEntity_0_func) ENABLED START */ /* Start of user variable defintions - Do not remove this comment */ /* End of user variable defintions - Do not remove this comment */ /*PROTECTED REGION END */ Std_ReturnType retValue = RTE_E_OK; /* -------------------------------------- Data Read ----------------------------------------- */ retRead1 = Rte_Read_RPortPrototype_1_VDP_uint32(&read1);
/* -------------------------------------- Server Call Point -------------------------------- */
syncCall2 = Rte_Call_RPortPrototype_0_GetLastShutdownTarget(&shutdownTarget1,&shutdownMode2);
syncCall3 = Rte_Call_RPortPrototype_0_SelectShutdownTarget(shutdownTarget3,shutdownMode4);
syncCall4 = Rte_Call_RPortPrototype_0_GetShutdownTarget(&shutdownTarget5,&shutdownMode6);
syncCall5 = Rte_Call_RPortPrototype_0_SelectShutdownCause(shutdownCause7);
syncCall6 = Rte_Call_RPortPrototype_0_GetShutdownCause(&shutdownCause8);
/* -------------------------------------- CDATA --------------------------------------------- */
/* -------------------------------------- Data Write ---------------------------------------- */ retWrite7 = Rte_Write_PPortPrototype_0_VDP_uint16(write7);
/* -------------------------------------- Trigger Interface --------------------------------- */
/* -------------------------------------- Mode Management ----------------------------------- */
/* -------------------------------------- Port Handling ------------------------------------- */
/* -------------------------------------- Exclusive Area ------------------------------------ */
/* -------------------------------------- Multiple Instantiation ---------------------------- */
/*PROTECTED REGION ID(User Logic :RunnableEntity_0_func) ENABLED START */ /* Start of user code - Do not remove this comment */ /* End of user code - Do not remove this comment */ /*PROTECTED REGION END */
}
#define Test_STOP_SEC_CODE #include "Test_MemMap.h"


连接系统/内部信号 

通过之前建立的系统,打开系统数据映射编辑界面。

然后选择通过DBC导入的系统信号与之前建立的RPort与接收的系统信号进行连接。

 内部的信号连接首先还是通过之前建立的系统打开部件编辑界面。

然后选择下面的内部信号连接摁扭。

选择需要进行的连接,勾选对应连接然后点击Finish完成连接 

  下图为最后完成的连接。

ECU抽取

在生成RTE之前,需要做ECU抽取来把BSW和ASW的改动跟RTE相关的部分抽取出来。选择对应的ECU,右键选择建立ECU抽取。

选择如下选项点击Finish完成ECU抽取。 


评论 (0)
  • 为有效降低人为疏失导致交通事故发生的发生率,各大汽车制造厂及系统厂近年来持续开发「先进驾驶辅助系统」ADAS, Advanced Driver Assistance Systems。在众多车辆安全辅助系统之中,「紧急刹车辅助系统」功能(AEB, Autonomous Emergency Braking)对于行车安全性的提升便有着相当大的帮助。AEB透过镜头影像模块与毫米波雷达感测前方目标,可在发生碰撞前警示或自动刹车以降低车辆损伤以及乘员伤害。面临的挑战以本次分享的客户个案为例,该车厂客户预计在
    百佳泰测试实验室 2025-03-20 15:07 77浏览
  • 全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,凭借AS1163独立智能驱动器(SAID)成为中国领先的智能集成系统产品汽车制造商宁波福尔达智能科技股份有限公司(“福尔达”)环境动态照明应用的关键供应商。此次合作标志着汽车技术发展的一个重要时刻,充分展现了AS1163在优化动态照明应用系统成本方面的多功能性和先进性能。该产品支持传感器集成,拥有专为车顶照明设计的超薄外形,并能提升车内照明系统的性能。AS1163是一款先进的智能LED驱动器,能够与开放系统协议(OSP)网络无缝
    艾迈斯欧司朗 2025-03-20 14:26 81浏览
  • 在电子制造领域,PCB(印刷电路板)的使用寿命直接决定了产品的长期稳定性和可靠性。捷多邦作为全球领先的PCB制造商,始终将质量放在首位,致力于为客户提供高可靠性、高性能的PCB解决方案。以下是捷多邦如何确保PCB使用寿命超过20年的核心技术与优势。 1. ​高品质原材料:从源头保障耐用性捷多邦采用国际认证的优质基材,如FR4、高频材料和高TG板材,确保PCB在高温、高湿等极端环境下的稳定性。通过严格的原材料筛选和入库检验,捷多邦从源头控制质量,避免因材料缺陷导致的失效问题。 
    捷多邦 2025-03-20 11:22 93浏览
  •         在当今电子设备高度集成的时代,电路保护显得尤为重要。TVS管(瞬态电压抑制二极管)和压敏电阻作为一种高效的电路保护器件,被广泛应用于各种电子设备中,用以吸收突波,抑制瞬态过电压,从而保护后续电路免受损坏。而箝位电压,作为TVS管和压敏电阻的核心参数之一,直接关系到其保护性能的优劣。箝位电压的定义        箝位电压指瞬态保护器件(如TVS二极管、压敏电阻)在遭遇过压时,将电路电压限制在安全范围内的
    广电计量 2025-03-20 14:05 80浏览
  • PCIe 5.0应用环境逐步成形,潜在风险却蠢蠢欲动?随着人工智能、云端运算蓬勃发展,系统对于高速数据传输的需求不断上升,PCI Express(PCIe)成为服务器应用最广的传输技术,尤其在高效能运算HPC(High Performance Computing)及AI服务器几乎皆导入了最新的PCIe 5.0规格,使得数据传输的双向吞吐量达到了128GB/s,让这两类的服务器能够发挥最大的效能。不过随着PCIe 5.0的频率达到16GHz,PCB板因为高频而导致讯号衰减加剧的特性,使得厂商面临很
    百佳泰测试实验室 2025-03-20 13:47 80浏览
  • 故障现象 一辆2024款路虎发现运动版车,搭载2.0 L发动机,累计行驶里程约为5 000 km。车主反映,使用遥控器无法解锁车门,随后使用机械钥匙打开车门,踩下制动踏板,按压起动按钮,仪表盘提示“将智能钥匙放在图示位置,然后按下起动按钮”(图1)。 图1 故障车的仪表盘提示采用上述应急起动方法,发动机能够起动着机。上述故障现象已出现过多次,过一段时间又会恢复正常,这次故障出现要求将车辆拖入店内进行彻底检修。 故障诊断 车辆进店后进行试车,车辆一切功能又恢复正常。经过反复测试
    虹科Pico汽车示波器 2025-03-20 10:17 62浏览
  • 贞光科技代理的品牌-光颉科技高精密薄膜电阻凭借0.01%的超高精度,在AI服务器电源模块中实现了精确电压分配、优化功率因数和减少热损耗,显著提升系统能效和可靠性。在当今的数字时代,人工智能(AI)服务器已成为数据中心的核心。随着AI应用的激增,服务器的性能和能效需求也在不断提高。电源模块作为服务器的关键组件,其性能直接影响整个系统的效率和可靠性。本文将探讨光颉科技高精密薄膜电阻,特别是其0.01%的精度,如何在AI服务器电源模块中提升能效。电源模块在AI服务器中的重要性电源模块负责将输入电源转换
    贞光科技 2025-03-20 16:55 119浏览
  • 近日,保定飞凌嵌入式技术有限公司(以下简称“飞凌嵌入式”)携手瑞芯微电子股份有限公司(以下简称“瑞芯微”)正式加入2025年全国大学生嵌入式芯片与系统设计竞赛(以下简称“嵌入式大赛”),并在应用赛道中设立专属赛题。本次嵌入式大赛,双方选用基于瑞芯微RK3588芯片设计的ELF 2开发板作为参赛平台,旨在通过此次合作,促进产教融合,共同推动嵌入式系统创新人才的培养。全国大学生嵌入式芯片与系统设计竞赛是一项A类电子设计竞赛,同时也是被教育部列入白名单的赛事,由中国电子学会主办,是学生保研、求职的公认
    飞凌嵌入式 2025-03-20 11:53 73浏览
  • 如同任何对我们工作方式的改变,新的工作方式必然会遇到许多必须面对的挑战。如果不解决组织在实施精益六西格玛过程中面临的障碍以及如何克服它们的问题,那么关于精益六西格玛的讨论就不算完整。以下列举了组织在成功实施精益六西格玛时常见的几个障碍,以及克服它们的方法:1)对精益六西格玛方法论缺乏理解。抵触情绪通常源于对精益六西格玛方法论的不了解,以及不相信它能真正发挥作用。这种情况在所有层级的人员中都会出现,包括管理层。虽然教育培训可以帮助改善这一问题,但成功的项目往往是打消疑虑的最佳方式。归根结底,这是一
    优思学院 2025-03-20 12:35 79浏览
  • 家电“以旧换新”政策的覆盖范围已从传统的八大类家电(冰箱、洗衣机、电视、空调、电脑、热水器、家用灶具、吸油烟机)扩展至各地根据本地特色和需求定制的“8+N”新品类。这一政策的补贴再叠加各大电商平台的优惠,家电销售规模显著增长,消费潜力得到进一步释放。晶尊微方案为升级换代的智能家电提供了高效且稳定的触摸感应和水位检测功能,使得操作更加便捷和可靠!主要体现在:水位检测1健康家电:养生壶、温奶器、加湿器的缺水保护安全2清洁电器:洗地机、扫地机器人的低液位和溢液提醒3宠物家电:宠物饮水机的缺水提醒/满水
    ICMAN 2025-03-20 15:23 118浏览
  • 流感季急诊室外彻夜排起的长队,手机屏幕里不断闪烁的重症数据,深夜此起彼伏的剧烈咳嗽声——当病毒以更狡猾的姿态席卷全球,守护健康的战争早已从医院前移到每个人的身上。在医学界公认的「72小时黄金预警期」里,可穿戴设备闪烁的光芒正穿透皮肤组织,持续捕捉血氧浓度、心率变异性和体温波动数据。这不是科幻电影的末日警报,而是光电传感器发出的生命预警,当体温监测精度精确到±0.0℃,当动态血氧检测突破运动伪影干扰……科技正在重新定义健康监护的时空边界。从智能手表到耳机,再到智能戒指和智能衣物,这些小巧的设备通过
    艾迈斯欧司朗 2025-03-20 15:45 135浏览
  • 在人工智能与物联网技术深度融合的今天,离线语音识别技术凭借其隐私安全、即时响应等优势,正在智能家居、工业控制等领域快速普及。广州唯创电子推出的WTK6900系列语音识别芯片,凭借其创新的离线命令词自学习功能,为用户提供了灵活高效的语音交互解决方案。本文将深入解析这一核心技术的工作原理及操作流程。一、智能自学习功能概述WTK6900系列芯片支持多模态学习方式,用户可通过物理按键、串口指令、语音命令或专用APP启动学习流程。其核心技术突破在于:全离线运行:所有学习过程均在本地完成,无需网络传输动态模
    广州唯创电子 2025-03-20 08:54 153浏览
  • 本文内容来自微信公众号【工程师进阶笔记】,以工程师的第一视角分析了飞凌嵌入式OK3506J-S开发板的产品优势,感谢原作者温老师的专业分享。前两周,有一位老朋友联系我,他想找人开发一款数据采集器,用来采集工业现场的设备数据,并且可以根据不同的业务场景,通过不同的接口把这些数据分发出去。我把他提的需求总结了一下,这款产品方案大概有以下功能接口,妥妥地一款工业网关,在网上也能找到很多类似的产品方案,为啥他不直接买来用?再跟朋友深入地聊了一下,他之所以联系我,是因为看到我在公众号介绍过一款由飞凌嵌入式
    飞凌嵌入式 2025-03-20 11:51 106浏览
  • 4月8-11日,第91届中国国际医疗器械博览会(CMEF)将在国家会展中心(上海)举办。这场全球瞩目的医疗科技盛宴以“创新科技,智领未来”为主题,旨在全方位展示医疗科技的最新成果,与来自全球的行业同仁一道,为全球医疗健康领域带来一场科技与商贸交融的产业“盛宴”。飞凌嵌入式作为专业的嵌入式技术解决方案提供商,一直致力于为医疗器械行业提供丰富的、高可靠性的嵌入式硬件主控解决方案。届时,飞凌嵌入式将为来自全球的观众带来适用于IVD、医疗影像、生命体征监测等医疗设备的嵌入式板卡、显控一体屏产品以及多款动
    飞凌嵌入式 2025-03-20 11:46 33浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦