总体架构

目标

该文档描述了整体开发过程中工具链的使用和工程的集成,旨在让各个开发实施人员对整体的开发流程有粗浅认知。本集成工程含有通信栈,网络管理栈,系统服务栈,诊断栈等多个服务栈,各个协议栈细节的集成请参照相关文档,本文档不做详细说明。

说明:本文档只包含对CP工具链开发的流程性描述。本文档只做概述,若要深入各个协议栈配置请参阅具体模块集成手册。

由于各项目的需求不同,该集成示例不会针对于特定的商业项目做详细讲解。特定商业项目的主要集成问题,将在项目集成特殊说明章节讲述。

缩写词和术语

表 缩写词和术语

缩写词/术语

描述

ASW

Application Software应用软件

BSW

Basic Software基础软件

MCAL

Microcontroller Abstraction Layer微控制器抽象层

CanIf

CAN Interface module CAN接口模块

CanSM

CAN State Manager module CAN状态管理器模块

ComM

Communication Manager module通信管理器模块

EcuM

ECU State Manager module ECU状态管理器模块

PduR

PDU Router module PDU模块化路由器

Com

Communication 通讯

CanNm

CAN Network Management CAN网络管理

NMIf

Network Management Interface网络管理接口

BswM

Basic Software Mode Manager基础软件模式管理器

EcuM

ECU State Manager ECU状态管理器

参考文档

CP工具链开发方法

集成流程

集成分为全工具集成和手动集成;主要的区别为全工具集成会用到普华SWC工具获取萃取文件后会使用RTE模块;手动集成则不会用到SWC和RTE模块,涉及到RTE模块的一些接口一般在BSW工具中由iRTE模块进行生成,具体流程内容可参考以下两个章节。

SWC&RTE全工具集成流程

项目交付的内容为:相关协议栈源码和ORIENTAIS Studio配置工具。协议栈细分为协议栈的各模块及其对应的配置工具模块。

使用普华CP工具链进行ECU开发时,一般会涉及到三种配置工具:1.SWC工具;2.BSW工具;3.MCAL工具;对于基础软件(BSW工具)来讲,输入源只有两个:1.通过SWC工具萃取出的arxml文件;2.MCAL导出的包含驱动配置的arxml文件;因此在进行BSW协议栈配置之前,首先需要配置SWC和MCAL;具体的标准开发流程参见表 标准开发流程介绍:

步骤

实施层级

操作

参考

1

BSW

  • 创建BSW工程,将BSW服务相关模块进行配置

  • 生成服务封装文件

详细步骤细节参考“BSW工程创建”章节

2

SWC

  • BSW Server和SWC设计:

    • 基于应用需求,进行BSW服务组件配置,封装出BSW service.arxml文件;

    • 与BSW服务组件无关应用SWC设计/配置;

    • 与BSW服务组件交互SWC设计/配置(通信双方Port关联的PortInterface相同)

详细步骤细节可参考“SWC集成”章节

3

SWC组件内部行为(internal behavior)设计,组件间Port连接

注:原则上,内部行内只能对SWC进行设计,服务组件原则上无法修改

4

DBC、LDF、PDX等文件导入到SWC

5

  • 系统映射:

    • 组件到ECUs的映射;

    • ECU间通信网络设计,Data Element到System Signal的映射;

6

基于单个ECU进行配置萃取,生成EcuExtract萃取文件

7

MCAL

配置MCAL,BSW工具导入MCAL输出的arxml文件‘

注:用于IF层模块引用驱动提供的相关信息

详细步骤细节可参考“MCAL集成”章节

8

BSW

BSW工具萃取和Mcal生成arxml文件导入、arxml文件同步

详细步骤细节可参考“RTE&多核BSW集成”章节

9

  • 基础信息补齐,顺序如下:

    • ECUC配置(分区信息),OS基础配置信息;

    • 除OS和ECUC外,其余关联协议栈配置补齐;

10

更新所有模块的bswmd.arxml文件(包括RTE)

11

点击RTE-OS自动同步,自动配置RTE/OS的推荐配置

12

在RTE-OS自动同步后,根据项目需求手动调整RTE/OS配置,以适配项目需求

13

  • 代码集成:

    • 生成BSW所有模块的配置文件,生成顺序:其它BSW模块→RTE→OS

    • BSW工具生成Runnable桩代码,或者直接使用应用Runnable代码;

    • 进行代码工程集成、编译、链接、功能调试

表 全工具集成标准开发流程介绍

手动集成流程

手动集成相比全工具集成,不会使用到SWC工具和RTE模块,取而代之的是使用iRTE模块来完成相关功能,所以集成流程中就不会涉及到BSW进行服务封装和SWC层级的相关内容

步骤

实施层级

操作

参考

1

MCAL

配置MCAL,BSW工具导入MCAL输出的arxml文件‘

注:用于IF层模块引用驱动提供的相关信息

详细步骤细节可参考“手动集成”章节

BSW

创建BSW工程,创建相关模块,使用iRTE模块

详细步骤细节可参考“手动集成”章节

2

Mcal生成arxml文件导入、arxml文件同步

3

  • 基础信息补齐,顺序如下:

    • ECUC配置(分区信息),OS基础配置信息;

    • 除OS和ECUC外,其余关联协议栈配置补齐;

4

更新所有模块的bswmd.arxml文件(包括RTE)

5

点击iRTE-OS自动同步,自动配置iRTE/OS的推荐配置

6

在iRTE-OS自动同步后,根据项目需求手动调整iRTE/OS配置,以适配项目需求

7

  • 代码集成:

    • 生成BSW所有模块的配置文件,生成顺序:其它BSW模块→iRTE→OS

    • BSW工具生成Runnable桩代码,或者直接使用应用Runnable代码;

    • 进行代码工程集成、编译、链接、功能调试

表 手动集成标准开发流程介绍

集成说明

示例工程有如下几点说明:1.Hightec集成工程未使用链接文件夹形式引用到BSW配置工具以及EB MCAL生成的配置文件,因此更新配置之后必须手动Merge替换代码,之后再刷新工程即可编译;2.BSW源码是是按照模块化Demo需求集成到不同的Demo工程中,并非全量代码;

集成示例

本章节向用户展示整体工具链的使用过程。用户可以据此熟悉系统服务栈配置工具的配置过程,以及如何应用配置工具生成的配置文件。

Note

本示例不代表用户的实际配置情况,用户需要根据自己的实际需求,决定各个参数的配置,另外配置工具有很多其他特性,比如新建条目可以在文件夹上右击、某些情况选中文件夹可以在界面右侧上下移动调整条目顺序等,请自行探索,手册截图上只代表个人习惯方式。

集成目标

根据用户策略需求配置各个协议栈,满足策略需求。本示例实现主要展示工具的使用,不做具体配置介绍。

开发链路

工具整体使用流程,请参考本文档图 。需要注意,因购买产品不同,集成的最后步骤会有RTE集成和手动集成两种不同方式,具体细节可参考5.2.1(BSW工程创建)和5.2.2(SWC集成)两个章节。

全工具集成工程创建

BSW工程创建

步骤

说明

插图

1

创建工程

image1

image2

image3

image4

image5

2

创建模块

image6

image7

3

首先配置SWC需要的服务组件的相关模块

(根据不同协议栈的差别,需要先配置不同的模块后再进行服务封装;

具体需要配置的模块可参考各协议栈具体参考手册)

以IO抽象模块为例:

配置IO抽象模块基本信息

image8

生成IO抽象单模块的ServiceComponent

image9

image10

4

生成全部模块的ServiceComponent.arxml(可选)

image11

image12

SWC集成

步骤

说明

插图

1

新建SWC工程

image13

image14

2

导入BSW服务封装文件

image15image16image17

image18image19image20

3

设计应用(PortInterface、Component、Composition)。

常规操作,省略步骤图,具体可参考各个模块的集成手册,此处仅贴出ECU架构图;

image21

image22

4

导入设计好的DBC文件(Ldf、Odx等类似)

注:此类文件导入有两种方式,1.导入到SWC;2.导入到BSW;

DBC导入到BSW工具的步骤见附录章节;

导入DBC文件

image23

image24

image25

image26

image27

image28

image29

image30

5

SWC实例与ECU映射;

主要描述组件分配到分区的操作步骤;

  • 组件到分区映射:

image31

image32

6

信号Mapping

image33

image34

image35

image36

8

萃取Ecu Extract.arxml文件

image37

image38

MCAL集成

步骤

说明

插图

1

新建Mcal工程

image39image40image41image42image43

2

萃取arxml自动导入部分驱动的配置,如Can.arxml

image44image45image46image47image48image49

3

手动配置Mcal相关模块

4

导出arxml文件

image50image51image52image53image54

RTE&BSW集成

若购买了SWC和RTE模块的工具,请参考本章节进行工程集成。

步骤

说明

插图

1

RTE导入Ecu萃取文件

因购买产品不同,萃取文件一般会有两种形式,情况说明如下:

若已购买普华SWC&RTE产品则可参考章节5.2.2进行配置,最后导出配置过的萃取文件,使用RTE模块进行配置。

image55

image56

image57

image58

image59

2

BSW导入EB ARXML文件

image60

image61

3

同步RTE模块配置信息

image62

image63

image64

4

RTE同步前准备工作:

  • 配置OS集成信息(核数量、SC等级、分区映射等);

  • 配置ECUC默认分区(多核工程情形下,单核工程则无需配置);

  • OS:

image65

image66

  • ECUC:多核工程情形下,单核工程则无需配置

image67

5

更新bswmd文件

image68

6

操作完步骤5后,同步ECUC模块

image69

image70

image71

7

若工程为多核工程步骤6完成ECUC同步后,需要做如下检查(单核工程可跳过该步骤):

  • 所有PDU是否均映射到某一分区上;

  • EcucPartitionCollection中是否能够映射Bsw模块;

image72

image73

8

步骤7中,所有的bsw模块映射关联到EcucPartitionCollection后,需要重新生成一次所有模块的bswmd文件,做好RTE-OS同步前准备(同步骤4)

image74

9

完成上述8步骤后,使用Orientais RTE自动同步功能,进行RTE和OS自动配置;

注意:一般只有在首次配置和大量变更时,才使用RTE&OS同步功能;因为RTE&OS同步会覆盖部分task的映射,导致多余变更需要进行手动修改。

工程变动较小时,可参考下个步骤手动修改task

image75

10

手动配置用户指定task

image76

image77

image78

image79

11

RTE&OS同步后配置微调,如:

  • RTE调整临界区(Exclusive)实现方式;

  • OS调整任务、中断的堆栈大小等;

image80

12

生成源代码,生成BSW所有模块的配置文件,生成顺序:其它BSW模块→RTE→OS

image81

生成后源代码存放位置如图:

image82

手动集成

若未购买SWC和RTE模块的工具,请参考本章节进行工程集成,主要区别是此方式不会使用SWC工具和BSW工具的RTE模块,作为替代会使用iRTE模块。

MCAL集成

手动集成的Mcal集成步骤与全工具集成类似,故此处不做赘述,可参考5.2.1.3(MCAL集成)章节流程

BSW集成

步骤

说明

插图

1

创建工程

image83

image84

image85

image86

image87

2

创建模块

注意:此处除所需模块外,需添加iRTE模块

image88

image89

image90

3

iRTE同步前准备工作:

  • 配置OS集成信息(核数量、SC等级、分区映射等);

  • 配置ECUC默认分区(非多核工程情况下忽略此步骤);

  • 配置所需模块配置;

  • OS:

image91

image92

  • ECUC:

image93

再配置其他所需模块,具体配置方法可参考对应模块的集成手册

4

更新bswmd文件,做好iRTE-OS同步前准备

  • image94

5

完成上述5步骤后,使用Orientais iRTE自动同步功能,进行iRTE和OS自动配置;

注意:一般只有在首次配置和大量变更时,才使用iRTE&OS同步功能;因为iRTE&OS同步会覆盖部分task的映射,导致多余变更需要进行手动修改。

工程变动较小时,可参考下个步骤手动修改task

image95

6

手动配置用户指定task

image96

image97

image98

image99

7

iRTE&OS同步后配置微调,如:

OS调整任务、中断的堆栈大小等;

image100

8

生成源代码,生成BSW所有模块的配置文件,生成顺序:其它BSW模块→iRTE→OS

image101

生成后源代码存放位置如图:

image102

源代码集成

Demo工程结构如下:

image103

图 BSW的工程结构图

  • BSW下的Config目录用来存放配置工具生成的配置文件,各模块或各栈建立对应文件夹存放对应模块配置代码。

系统服务栈源代码集成:新建对应的源码文件夹和配置文件文件夹,将对应源码和配置代码放入,然后工程中添加相应头文件路径即可。