ETAS_CP_AUTOSAR

1 引言

在AUTOSAR方式设计车载ECU软件的初期,很多项目团队都采用“基础软件外协开发”的模式。即委托第三方软件公司搭建一个AUTOSAR工程并给出各主要模块的设计示例,再在此基础上去做自己的项目。这样的开发模式有助于快速适应全新的设计方法,缩短项目周期,但也会带来“过于依赖项目组外部资源,一旦出现错误难于解决”等问题

讲述了在ETAS工具链环境下进行工程创建和常用模块集成的全过程,目的是让读者对AUTOSAR工程的产生过程有一个大致的了解,从整体上理清AUTOSAR方式设计车载嵌入式软件的思路。

由于要“从无到有”地创建一个实用的AUTOSAR工程,该系列之前编写的三篇文章将作为参考文献在文中引用,感兴趣的读者可在“你好旧时光追忆”公众号中查找阅读。

(1)《从手写代码到AUTOSAR工具链 - RTE入门篇》,以下简称《RTE入门篇》。

(2)《从手写代码到AUTOSAR工具链 - EcuM应用篇》,以下简称《EcuM应用篇》。

(3)《从手写代码到AUTOSAR工具链 - BswM应用篇》,以下简称《BswM应用篇》。

2 工具链

本文所述设计集成过程除MCAL部分采用Infineon和EB联合开发的“EB Tresos”工具外,其余模块均采用ETAS工具链开发,如表2-1所列。

表2-1: AUTOSAR工具链汇总

序号集成开发环境子工具功用
1EB TresosEB TresosMCAL模块设计
2ISOLAR-ABISOLAR-A系统级架构设计
RTA-RTE接口设计
RTA-BSWBSW模块设计
3RTA-OSRTA-OS操作系统设计

3 工程创建和模块集成

对于ETAS工具链使用者而言,AUTOSAR工程主要是在ISOLAR-AB中创建、设计和集成的。

下面以VCU项目为例讲解AUTOSAR工程创建过程,其它车载ECU软件可在此基础上做相应改动。

3.1 工程创建

AUTOSAR工程创建在ISOLAR-A中进行。

3.1.1文件创建

按照表3-1创建工程文件夹。

表3-1: 工程文件夹创建

序号一级文件夹二级文件夹三级文件夹
1hightec_vcu--
2isolar_ab_vcu--
3mcal_vcu--
4vcusrcASW、BSW、CDD、INFRA、IOHWAB、RTE、Target

3.1.2AUTOSAR工程创建

双击“ISOLAR-AB V 4.0”图标,弹出图3-1所示的界面,按照图示步骤操作进入ISOLAR-AB工具的主界面。

图3-1: ISOLAR-AB工作空间选择

在主界面中点击“File->New->AUTOSAR Project”新建工程,弹出图3-2所示的界面,按照图中步骤完成工程创建。

图3-2: AUTOSAR工程创建界面

3.2 架构设计

AUTOSAR开发方式中的架构设计即软件组件(SWC)的设计,包括创建软件组件、端口接口设计、内部行为设计等步骤,还需将SWC分别加入部件和ECU。具体操作方法详见《RTE入门篇》。

3.3 配置系统

系统创建和配置按照下列步骤进行。

3.3.1部件创建

按照图3-3和图3-4所示创建部件。

图3-3: 部件创建启动

图3-4: 部件创建配置

3.3.2系统创建

按照图3-5和图3-6所示创建系统。

图3-5: 系统创建启动

图3-6: 系统创建配置

3.3.3系统配置

系统配置包括建立对部件的引用、抽取配置和映射创建3部分。

(1)建立系统对部件的引用

为上节创建的“System”生成1个子项“Root Software Compositions | Root Sw Composition Prototype”,并将其“SoftwareComposition”的引用配置为“TopLevelComposition”。

(2)系统抽取配置

配置上节创建“System”的类别。

(3)映射创建

为上节创建的“System”生成1个子项“Mappings | Mapping”,命名为“SwcToEcuMapping”,并配置“Ecu实例”。

3.4 通信配置

通信配置主要包括DBC导入、报文发送周期配置、抽取和生成RTA-BSW等操作,完成这些步骤后,与CAN通信有关的BSW模块将自动生成。

图3-7: 生成RTA-BSW

表3-2: RTA-BSW后自动生成的BSW模块

序号一级文件夹二级文件夹BSW模块
1Com StackCan ModulesCan
2CanIf
3CanSM
4-Com
5-PduR
6Mode Mgm-ComM
7Other Modules-ComStack
8-Ecuc
9-rba_ArxmlGen

3.5 模式管理配置

依次进行EcuM和BswM模块的配置,具体参见《EcuM应用篇》和《BswM应用篇》。

3.6 操作系统配置

操作系统配置分为2部分,ISOLAR-AB中的OS模块配置和RTA-OS中的配置。

3.6.1 OS模块配置

创建Os模块并完成基础配置。

(1)Os创建

创建Os模块,再依图3-8删除多余项。

图3-8: Os多余项删除

(2)应用模式配置

按照图3-9的步骤进行。

图3-9: Os应用模式配置

(3)计数器配置

为Os应用配置计数器信息,图3-10为其配置方法。

图3-10: Os计数器配置

(4)任务配置

根据项目需要配置OS任务,图3-11为配置方法,表3-3为任务配置示例。

图3-11: Os任务配置

表3-3: Os任务参数配置示例

序号配置项配置值说明
1ShortNameXXX任务名
2OsTaskActivation1定义该任务最大数量的队列激活请求,1表示在任何时刻任务仅允许单次激活
3OsTaskPriority39任务优先级,数值越大优先级越高(对于TC275单片机
4OsTaskScheduleFULL定义任务的优先处理性
5OsTaskStackAllocation-任务手动堆栈分配,以字节为单位
6OsTaskWaitStack-激活等待事件时的任务堆栈使用
7OsTaskBudget-执行预算,以“浮点数+时基名+单位”表达
8OsTaskCanCallSchedule-任务调用或可能调用“Schedule()”时配置为TRUE
9OsTraceFilter-描述任务是否被RTA-TRACE跟踪
10OsTaskAccessingApplication-访问该对象的应用的引用
11OsTaskEventRef-此引用定义了扩展任务可能会响应的事件列表
12OsTaskResourceRef-此引用定义了该任务访问的资源列表
13OsRegSetRef-该任务用到的寄存器集的引用

3.6.2 RTA-OS配置

在生成RTE成功后进行。

(1)工程创建

点击“File->New Project”新建工程,按照图3-12所示配置工程属性。

图3-12: OS工程属性配置

(2)文件加载

按照图3-13所示将“...srcRTEgen”路径下的osNeeds.arxml文件加载进来。

图3-13: OS工程文件加载

(3)工程保存

将工程创建时自动生成的ARXML文件命名为“RTAOS.arxml”,并将其保存至“...srcTargetTC275RTAOSconfig”路径下。

(4)通用参数配置

OS通用参数配置按照图3-14进行。

图3-14: OS通用配置

(5)应用模式配置

按照图3-15将OS应用模式配置为OSDEFAULTAPPMODE。

图3-15: OS应用模式配置

(6)中断配置

按照图3-16配置项目中需要的二类中断。

图3-16: OS中断配置

3.6.3 RTA-OS生成

按照下列步骤生成OS代码。

(1)文件夹创建

在“...srcTargetTC275”路径下创建表3-4所示的文件夹。

表3-4: RTAOS文件夹创建

序号一级文件夹二级文件夹三级文件夹四级文件夹五级文件夹
1RTAOSconfig
2generatedinc
3lib
4report
5integrationinc
6src
7MCALmodulesgeneralinc
8tricorecompiler
9inc

(2)生成配置

按照图3-17、图3-18和图3-19的方法依次进行RTA-OS生成配置。

图3-17: RTA-OS生成选项配置

图3-18: RTA-OS生成输出位置配置

图3-19: RTA-OS生成包含路径配置

(3)生成操作

按照图3-20所示生成OS的代码。

图3-20: OS代码生成

3.7 RTE配置

创建Rte模块并完成基础配置。

3.7.1 Rte创建

创建Rte模块,再依图3-21删除多余项。

图3-21: Rte多余项删除

3.7.2 Rte配置

依次进行Rte模块的配置。

(1)Rte生成配置

配置Rte生成参数,图3-22为其配置方法。

图3-22: Rte生成配置

(2)Bsw模块实例配置

在生成RTE成功后进行。

Bsw模块实例大部分由工具自动配置,前提是其存在Runnable。为后续编译不出错,在EcucValueCollection中无运行函数的模块需要手动配置。

图3-23: Bsw模块实例配置

3.8 定点数位域配置

创建Bfx模块并完成配置。

3.8.1 Bfx创建

在ISOLAR-B中创建Bfx模块。

3.8.2 Bfx配置

依次进行Bfx模块的通用配置和内存定位配置。

图3-24: Bfx通用配置

图3-25: Bfx内存定位配置

3.9 Ecuc数值集配置

创建Ecuc Value Collection并完成配置。

3.9.1 EcucValueCollection创建

在ISOLAR-B中创建Ecuc Value Collection。

3.9.2 EcucValueCollection配置

依次进行EcucValueCollection的配置。

(1)模块关联

按照图3-26和图3-27所示进行模块关联。

图3-26: EcucValueCollection配置启动

图3-27: EcucValueCollection配置启动

2任务分配

依照图3-28将各模块的函数拖到对应的OS任务中。

图3-28: EcucValueCollection任务分配

3.10 AUTOSAR平台类型配置

创建AUTOSAR_PlatformTypes并完成配置。

3.10.1 AR Package创建

按照图3-29创建名为AUTOSAR_PlatformTypes的AR Package,再按照与之类似的方式为AUTOSAR_PlatformTypes创建1个子AR Package,名称为ImplementationDataTypes。

图3-29: AUTOSAR_PlatformTypes AR Package创建

3.10.2 数据类型添加

以uint8为例,按照图3-30、图3-31、图3-32的步骤添加数据类型。

图3-30: 数据类型添加启动

图3-31: 数据类型添加配置

图3-32: 数据类型参数配置

按照上述步骤依次添加下列数据类型:boolean、float32、float64、sint16、sint32、sint64、sint8、uint16、uint32、uint64。

3.11 故障追踪器配置

创建Det模块并完成配置。

3.11.1 Det创建

在ISOLAR-B中创建Det模块。

3.11.2 Det配置

依照图3-33进行Det模块的通用配置。

图3-33: Det通用配置

3.12 RTE生成

在执行RTE生成前,须进行抽取、生成RTA-BSW、生成BSW等操作。

RTE生成按照图3-34和图3-35的步骤进行。

Additional Commands”处输入(该过程不再生成SWC的内存映射文件):--strict-unconnected-rport-check=off -err=xml -nts --os-define-osenv=RTAOS40 --exclusive-area-optimization=disable --os-output-param=all。

图3-34: RTE代码生成启动

图3-35: RTE代码生成配置

3.13 MCAL集成

下面介绍MCAL的集成步骤。

3.13.1 静态代码集成

MCAL静态代码的工程路径为“...srcTargetTC275MCALmodules”,头文件和源文件分别存放在“inc”和“src”文件夹下。

MCAL静态代码从EB Tresos的安装路径下拷贝。

3.13.2 配置文件集成

配置文件包括MCAL工程文件和单片机各外设模块参数组成的“.xdm”文件,其路径为“...srcTargetTC275MCALconfig”。

配置文件在添加MCAL模块时由工具自动生成。

3.14 ECAL集成

这里的ECAL主要包括实现模拟量输入和数字量输入输出信号的抽象,工程路径为“...srcIOHWAB”。

3.15 内存映射集成

内存映射程序文件采用“xxx_MemMap.h”的命名规范,主要解决将变量、常量和代码放到指定存储空间的问题。

3.15.1 软件组件内存映射文件

各SWC模块的内存映射文件生成方法如图3-36所示,通常每个新建软件组件仅生成1次即可,之后可删除该命令段。

图3-36: 软件组件内存映射程序文件生成方法

3.15.2 BSW模块内存映射文件

各BSW模块的内存映射文件生成方法如图3-37所示(部分有对应SWC的BSW模块按照图3-36的方法操作),这部分文件通常只生成1次,且生成路径不要在程序工程的路径或子路径下,否则容易带来编译错误。

图3-37: BSW模块内存映射程序文件生成方法

3.15.3 内存映射程序文件路径

内存映射文件统一存储在“...srcINFRAmemmap”路径下(其余路径下的内存映射文件须剪切至此),且须在工具生成文件的基础上做相应改动。

3.16 复杂驱动集成

复杂驱动包含板级芯片驱动程序和对复杂传感器和执行器进行操作的软件模块,相关的程序文件均为手写代码,工程路径为“...srcCDD”。

3.17应用层软件集成

按照下面的步骤进行应用层软件集成。

3.17.1 应用层文件拷贝

按照表3-5将应用层程序文件拷贝或更新至工程的指定目录。

表3-5: 应用层程序文件处理

序号类别文件(夹)名文件拷贝位置
1A2LXXX.a2l(一个或多个)... oolsA2LGenToolASAPAdr_Filesa2l
2ArxmlXXX.arxml(一个或多个)...srcASWVcuApp_SWCarxml
3文件夹lib(库文件)...srcASWVcuApp_SWC
4CXXX.c(一个或多个)...srcASWVcuApp_SWCsrc
5HXXX.h(一个或多个)...srcASWVcuApp_SWCsrc

3.17.2 ARXML文件导入

如果是首次操作,须按照图3-38所示进行,再执行刷新操作;后续更新只需要在完成文件拷贝后直接刷新工程即可。

图3-38: 应用层ARXML导入

3.17.3 SWC添加

将应用层的SWC分别添加到部件和ECU中,抽取。

3.17.4 相关模块设计

在程序中调用应用层软件的初始化和执行函数。

3.18 其它模块设计与集成

以上完成了VCU软件的工程创建和必备模块集成的基本工作,表3-6列出了车载ECU软件的一些其它的常用模块,这些将在后续的软文中逐一探讨。

表3-6: 车载ECU软件常用模块

序号模块名称功用
1BOOTLOADER实现ECU程序的更新
2XCP用于参数标定
3UDS用于故障诊断
4NvM用于参数存储
5核间通信适用于多核微处理器的主控芯片

4 补充说明

下面对上一章的操作过程进行几点说明。

(1)本文的内容倾向于“工程实践”,仅讲述了“怎么做”而非“为什么这么做”,其中的概念和原理请参考AUTOSAR规范的相关章节。

(2)前文对软件集成的步骤以模块为单位逐一说明,但在实际操作过程中可能出现“前个模块配置须依赖于后续模块设计到某个步骤”的情况,故在软件设计过程中不必拘泥于文中的次序。

(3)在进行“从无到有创建AUTOSAR工程”的过程中得到了团队内外很多同行的指点和帮助,从尊重大家工作成果和遵守公司保密性要求的角度考虑,部分重要的技术细节不宜公开发表。

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Inca Training.rar是一种用于汽车标定的软件,它可以帮助汽车制造商和技术人员对汽车进行精确的调试和校准。这个软件提供了各种功能和工具,以帮助用户在汽车的电子系统上进行各种操作和设置。 首先,Inca Training.rar可以帮助用户进行汽车的ETAS标定。ETAS是一种电子测试和测量系统,它可以提供精确的数据和结果,以帮助用户优化汽车的性能和效率。通过Inca Training.rar,用户可以使用ETAS技术来对汽车的各个部分进行标定和调整,例如发动机控制单元、传感器和执行器。 此外,Inca Training.rar还提供了许多其他有用的功能和工具,以帮助用户进行汽车标定。例如,它可以提供实时的数据监测和记录,以帮助用户了解和跟踪汽车的性能。它还提供了图表和图形工具,以便用户可以通过图形方式分析和解释数据。 在使用Inca Training.rar进行汽车标定时,用户需要具备相关的技术知识和经验。他们需要了解汽车的电子系统和控制原理,并能够根据需要进行相应的调整和校准。此外,他们还需要熟悉Inca Training.rar软件的使用方法和操作步骤。 总之,Inca Training.rar是一种用于汽车标定的强大工具,它可以帮助用户进行精确和高效的标定。通过使用该软件,汽车制造商和技术人员可以轻松地优化汽车性能,提高燃油效率,并提供更好的驾驶体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值