RH850U2A16 Demo

基本信息

简介

本Demo工程集成的AUTOSAR协议栈有CAN通信、诊断、网络管理、存储、看门狗、OS。各个模块均提供了参考的配置示例,旨在指导用户快速熟悉AUTOSAR中各个协议栈的模块的基本配置以及各个模块间的关联关系。

工程名

工程类型

Demo_RH850U2A16_V2504_BSW_ConfigProject

BSW配置工程

Demo_RH850_U2A16_V2504_GHS20220104_Project

BSW集成工程

缩略词

缩略语

中文解释

UDS

统一的诊断服务

CAN

控制器局域网络

NM

网络管理

CanIf

CAN接口模块

CanSm

CAN状态管理模块

ComM

通信管理模块

EcuM

ECU状态管理模块

NvM

非易失性存储管理

FEE

Flash模拟Eep

DCM

诊断通信管理

DEM

诊断事件管理

CANTP

CAN传输层

ComM

通信管理

WDG

看门狗

WdgIf

看门狗接口模块

WdgM

看门狗管理模块

E2E

(End-to-End)通信安全协议

OS

操作系统

开发环境

工具描述

名称版本

编译器&IDE

GreenHills win64_v800_202214

DaVinci工具

DaVinciConfigurator

MCAL

AUTOSAR_RH850_U2Ax_MCAL_Ver43.03.00_QM_MP

硬件开发板

RH850U2A_292 V2.4_20240422 WP_RH850U2A16292OTPE_V2.0

调试器

Renesas E2

开发环境获取

上述开发环境需用户自行获取。

BSW工程目录结构说明

AUTOSAR 基础软件集成工程的目录结构如下:

image1

各文件夹释义:

ASW:存放应用代码,供客户添加应用代码。

BSW:存放BSW相关代码,包括AUTOSAR各个协议栈源代码和配置、MCAL的源代码和配置、复杂驱动的源代码和配置等。

image2

CommonInclude:存放共用的头文件,比如Std_Types.h、Compiler.h、ComStack_Types.h等。

Communication:存放通信相关的代码,包含Can、Lin、Ethernet、FlexRay等。

image3

Config:存放BSW配置相关的代码,包含BSW的配置、MCAL的配置、CDD的配置等。

image4

Libraries:存放CRC、E2E等通用库代码。

MCAL:存放MCAL各模块的源代码、CanTrcv、LinTrcv、EthPhy、CDD模块源代码。

image5

Memory:存放存储相关模块的源代码。

image6

SystemServices:存放系统服务相关模块的源代码。

image7

LinkFile:存放链接文件。

image8

协议栈配置说明

CAN通信协议栈

CAN通信协议栈概述

CAN通信协议栈涉及到的软件模块主要有CAN、CanIf、PduR、Com、ECUC模块,其中各个模块的主要功能如下表:

CAN通信栈各配置模块介绍

模块名

功能

Can

主要配置CAN控制器的波特率,CAN报文的收发邮箱。

CanIf

CanIf 模块主要处理上层模块与底层驱动的之间PDU的传递,为上层模块提供统一的接口来管理不同的CAN硬件模块。

EcuC

用于辅助配置工具完成配置的模块。主要提供Pdu的定义,其它模块通过关联 EcuC中Pdu,相互关联起来。

PduR

PDU Router主要为通讯接口模块(CANIF)、传输协议模块(CAN TP、J1939 TP)、诊断通讯管理模块(DCM、J1939DCM)以及通讯模块(COM、LDCOM)以及 IPDUM、SECOC等模块提供基于 I-PDU的路由服务。

Com

COM模块主要提供 I-PDU和信号相关管理功能

CAN通信协议栈配置功能说明

CAN通信协议栈配置的发送报文说明:

报文名

CANID

说明

CAN0_Tx_0x300_Cyclic

0x300

周期报文,周期时间:500ms

该报文下的信号均配有UB位

CAN0_Tx_0x301_Event

0x301

事件报文

CAN0_Tx_0x302_Mixed

0x302

混合报文,正常周期:500ms,触发后连发3帧,周期为:50ms

CAN0_Tx_0x303_Cyclic_Counter

0x303

周期报文,周期时间:500ms,带RollingCounter

CAN0_Tx_0x350_Cyclic_PN17

0x350

周期报文,周期时间:100ms

受PN17控制

CAN0_Tx_0x351_Cyclic_PN29

0x351

周期报文,周期时间:100ms

受PN29控制

CAN0_Tx_0x360_E2E_P01

0x360

周期报文,周期时间:100ms

E2E报文,DATAID:0x1234

CAN通信协议栈配置的接收报文说明:

报文名

CANID

说明

CAN0_Rx_0x200_Cyclic

0x200

周期报文,周期时间:500ms

该报文下的信号均配有UB位

CAN0_Rx_0x201_Event

0x201

事件报文

CAN0_Rx_0x202_Mixed

0x202

混合报文,正常周期:500ms,触发后连发3帧,周期为:50ms,包含信号超时2500ms

CAN0_Rx_0x203_Cyclic_Counter

0x203

周期报文,周期时间:500ms,带RollingCounter

CAN0_Rx_0x250_Cyclic_PN17

0x250

周期报文,周期时间:100ms

受PN17控制

CAN0_Rx_0x251_Cyclic_PN29

0x251

周期报文,周期时间:100ms

受PN29控制

CAN0_Rx_0x260_E2E_P01

0x260

周期报文,周期时间:100ms

E2E报文,DATAID:0x1234

CAN网络管理协议栈

CAN网络管理协议栈概述

CAN通信协议栈涉及到的软件模块主要有Can、CanIf、CanSM、EcuC、NM、CanNm、ComM模块,其中各个模块的主要功能如下表:

网络管理栈各配置模块介绍

模块名

功能

Can

主要配置CAN控制器的波特率,CAN报文的收发邮箱。

CanIf

CanIf模块主要处理上层模块与底层驱动的之间PDU的传递,为上层模块提供统一的接口来管理不同的CAN 硬件模块。

EcuC

用于辅助配置工具完成配置的模块。主要提供Pdu的定义,其它模块通过关联 EcuC中Pdu,相互关联起来。

Nm

Nm模块主要包含两个功能:Nm模块是ComM与CanNm之间的适配层;网络管理协调功能,协调不同总线channel的ECU节点实现网络的同步睡眠。

ComM

ComM模块封装了控制底层的通信服务。通信管理模块从通信请求者那里收集总线通信访问请求,并协调这些请求,主要目的是:为每个Channel设置一个状态机控制一个ECU的多个通信总线通道。

CanSM

主要功能是与通信硬件抽象层和系统服务层产生交互,为每一个CAN通信总线定义一个总线相关的状态管理,并为相关的总线提供流控制。

CanNM

负责实现ECU的状态切换。比如何时进入睡眠、是否保持正常的网络状态等。

CAN网络管理协议栈配置说明

CAN网络管理的接收报文ID范围为0x500-0x5ff,

CAN网络管理的发送报文ID为0x501

CanNM的主要配置参数如下表所示:

配置项

配置参数

CanNmGlobalPnSupport

TRUE

CanNmComUserDataSupport

TRUE

CanNmMainFunctionPeriod

0.005

CanNmPassiveModeEnabled

FALSE

CanNmPnEiraCalcEnabled

TRUE

CanNmPnResetTime

2.5S

CanNmActiveWakeupBitEnabled

TRUE

CanNmCarWakeUpRxEnabled

FALSE

CanNmImmediateNmCycleTime

0.02S

CanNmImmediateNmTransmissions

10

CanNmMsgCycleOffset

0.0

CanNmMsgCycleTime

1.0S

CanNmMsgTimeoutTime

0.001S

CanNmNodeId

1

CanNmPduCbvPosition

CANNM_PDU_BYTE_1

CanNmPduNidPosition

CANNM_PDU_BYTE_0

CanNmPnEnabled

TRUE

CanNmPnHandleMultipleNetworkRequests

FALSE

CanNmRepeatMessageTime

3S

CanNmRetryFirstMessageRequest

FALSE

CanNmTimeoutTime

3.0S

CanNmWaitBusSleepTime

1.5S

CanSMBorCounterL1ToL2

10

CanSMBorTimeL1

0.1S

CanSMBorTimeL2

1.0S

CanSMBorTimeTxEnsured

FALSE

CanSMEnableBusOffDelay

FALSE

CAN网络管理协议栈休眠唤醒说明

设置唤醒源主要包含两个为远程唤醒和本地唤醒

唤醒源

说明

EcuMWakeupSource_CAN

被动唤醒,需要检测总线上是否为网管报文

EcuMWakeupSource_Local

主动唤醒,用户请求后就会立即请求网络

在开发板上,ECU一上电主动请求网络,释放网络后ECU休眠时直接调用Mcu_PerformReset进行复位。

CAN诊断协议栈

CAN诊断协议栈概述

CAN诊断协议栈涉及到的软件模块主要有Can、CanIf、CanTP、EcuC、DCM、DEM模块,其中各个模块的主要功能如下表:

诊断栈各配置模块介绍

模块名

功能

Can

主要配置CAN控制器的波特率,CAN报文的收发邮箱。

CanIf

CanIf模块主要处理上层模块与底层驱动的之间PDU的传递,为上层模块提供统一的接口来管理不同的CAN硬件模块。

EcuC

用于辅助配置工具完成配置的模块。主要提供Pdu的定义,其它模块通过关联EcuC中Pdu,相互关联起来。

PduR

PDU Router主要为通讯接口模块(CANIF)、传输协议模块(CAN TP、J1939 TP)、诊断通讯管理模块(DCM、J1939DCM)以及通讯模块(COM、LDCOM)以及IPDUM、SECOC等模块提供基于I-PDU的路由服务。

CanTp

CANTP模块实现依据ISO15765-2 标准规范中定义的CAN总线数据在传输层的数据接收发送功能。

Dcm

依据ISO15765-3和ISO14229-1标准描述,实现诊断请求报文的解析,响应(正响应和负响应)与执行。

Dem

实现诊断故障的存储与管理功能,提供API接口供其他模块读取DTC和对应的冻结帧数据和扩展数据。

CAN诊断协议栈配置说明

CAN诊断协议栈的CANID如下表:

CANID类型

CANID

物理寻址Physical Request CAN ID

0x708

功能寻址Functional Request CAN ID

0x7DF

物理响应Physical Response CAN ID

0x709

Demo工程中配置的诊断服务有如下表所示:

image9

Application Layer Timing Parameters

应用层会话管理计时器参数

Symbol

符号

Min

最小值

Max/Timeout

最大值/超时时间

Unit

单位

ECU 电控单元

P2Server

N/A

50

ms

P2*Server

N/A

5000

ms

S3Server

N/A

5000

ms

Network Layer Timing Parameters

网络层定时器参数

Symbol

符号

Timeout

超时时间

Performance Requirement

性能要求

Unit

单位

ECU 电控单元

N_As/N_Ar

70

——

ms

N_Bs

150

——

ms

N_Br

——

< 70

ms

N_Cs

——

< 150

ms

N_Cr

150

——

ms

Other parameters

其它参数

Symbol

符号

Parameter

参数

Value

Unit

单位

ECU电控单元

BS

Block Size

0

——

STmin

Minimum Separation Time

10

ms

Fill bytes(发送数据填充)

Padding

0xAA

——

接收填充值检查

ON/OFF

OFF

——

Fill bytes(接收数据填充)

Padding

——

——

诊断报文长度

Byze Size

8

——

诊断报文长度检查

ON/OFF

ON

——

DCM接收BUFFER最大值

Byze Size

1024

——

DCM发送BUFFER最大值

Byze Size

1024

——

TP半双工

CAN诊断时间参数如下:

安全访问算法配置信息如下:

Mask配置值

Mask = 0x5555AAAAu

密钥算法(根据Seed计算Key)如下,其中seed为输入的种子。

安全算法

Key = Seed & Mask

Note

密钥错误最大失败次数为3,达到最大失败次数启动延时时间为10S;连续请求种子错误计数不加1,种子相同,延时时间过后错误计数清零。

DID列表:

image10

IO DID列表:

image11

RID列表: image12

DTC列表: image13

Note

DTC格式:01,ISO 14229;DTC status支持的bit位仅bit7不支持,0x7F;

DTC扩展数据:

image14

DTC快照:

image15

存储协议栈

存储协议栈概述

存储协议栈涉及到的软件模块主要有Flash、FEE、NvM模块,其中各个模块的主要功能如下表:

NvM 各配置模块介绍

模块名

功能

Flash

提供对Flash的读,写,擦相关操作服务。

FEE

为上层提供虚拟线性地址空间和统一的存储分配方案。

NvM

非易失性数据的存储和管理。

存储协议栈配置说明

存储协议栈中主要配置了如下NvMBlock:

NvMBlock名

作用

NvMBlock_ConfigID

NvM管理

NvMBlock_Dem_Data

用来存放Dem的数据

NvMBlock_Dem_Status

用来存放Dem的状态

NvMBlock_Dcm

用来存放Dcm的数据(暂未使用)

NvMBlock_SecurityLevel01

用来存放安全等级1错误计数(暂未使用)

NvMBlock_SecurityLevel02

用来存放安全等级2错误计数(暂未使用)

NvMBlock_Did_0xF190

用来存放DID 0xF190的数据

NvMBlock_Did_0xF183

用来存放DID 0xF183的数据

看门狗协议栈

看门狗协议栈概述

看门狗协议栈是一种用于监控和保护系统运行状态的机制。它通过监控软件执行的稳定性和正确性确保了在系统发生故障时能迅速采取恢复措施。

Wdg协议栈主要涉及到的模块为Wdg、WdgIf 、WdgM ,其中各个模块的主要功能如下表:

Wdg 看门狗协议栈各配置模块介绍

模块名

功能

Wdg

Wdg 属于MCAL的一部分,用于完成看门狗初始化,模式设置以及喂狗设置等。

WdgIf

WdgIf 模块属于ECU抽象层,能够允许上层WdgM模块来同时处理多个看门狗实体,比如外部看门狗或者内部看门狗。

WdgM

WdgM 模块从硬件看门狗实体监控的过程抽象出来完成软件程序执行监控抽象。

看门狗协议栈配置说明

看门狗协议栈中配置了一个Alive supervision用于监控定期软件的时间。

Alive监控参数配置

监控类型

描述

监控实体个数

监控点个数

参考周期

监控失败门限

监控失效门限

期望执行次数

次数上偏差

次数下偏差

Alive 监控

监控一次mainfunction周期alive监控点执行的次数

1

1

1

0

0

1

0

0

OS协议栈

OS协议栈概述

AUTOSAR OS主要负责任务管理和中断管理功能;实现包括以下模块:Task、Isr、Countor、Alarm、ScheduleTable、Event、Resource等。

OS协议栈配置说明

OsTask配置

Name

Priority

Stack Size[4Bytes]

Preemptive Poilcy

OsTaskAutostart

Core

iSoft_Auto_DEFAULT_OsTask_Init

1

512

NON

True

0

iSoft_Auto_OsTask_1ms_BSW

4

512

FULL

False

0

iSoft_Auto_OsTask_5ms_BSW

3

512

FULL

False

0

iSoft_Auto_OsTask_10ms_BSW

2

512

FULL

False

0

iSoft_Auto_OsTask_100ms

1

512

FULL

False

0

OsTask_100ms_c1

1

256

FULL

False

1

OsTask_100ms_c2

1

256

FULL

False

2

OsTask_100ms_c3

1

256

FULL

False

3

OsIsr配置

Name

Category

Stack Size[4Bytes]

Priority

Nested Enable

Core

RCANGERR0

GATEGORY_2

512

1

False

0

RCANGRECC0

GATEGORY_2

512

2

False

0

RCAN2ERR

GATEGORY_2

512

3

False

0

RCAN2REC

GATEGORY_2

512

4

False

0

RCAN2TRX

GATEGORY_2

512

5

False

0

WDTB0TIT

GATEGORY_2

512

6

False

0

OsAlarm配置

Name

Set Event

Set Event Task

Core

iSoft_Auto_OsAlarm_1ms_BSW

iSoft_Auto_OsTask_1ms_BSW

iSoft_Auto_OsTask_1ms_BSW

0

iSoft_Auto_OsAlarm_5ms_BSW

iSoft_Auto_OsTask_5ms_BSW

iSoft_Auto_OsTask_5ms_BSW

0

iSoft_Auto_OsAlarm_10ms_BSW

iSoft_Auto_OsTask_10ms_BSW

iSoft_Auto_OsTask_10ms_BSW

0

Name

Activate Task

OsAlarmAutostart

Start Time

Cycle Time

Core

iSoft_Auto_OsAlarm_100ms

iSoft_Auto_OsTask_100ms

True

100

100

0

OsAlarm_100ms_c1

OsTask_100ms_c1

True

100

100

1

OsAlarm_100ms_c2

OsTask_100ms_c2

True

100

100

2

OsAlarm_100ms_c3

OsTask_100ms_c3

True

100

100

3

工程验证

编译及下载

将BSW工程导入IDE后点击Build Project即可编译工程。

image16

编译通过后点击Debug下载工程。(根据使用的调试器配置)

image17

OS任务

工程中执行的OS任务在

Demo_RH850_U2A16_V2504_GHS20220104_Project \BSW\Config\BSW_Config\RTE\SchM路径下的Rte.c文件中,用户可以自行在相关的任务中添加自己需要实现的功能。

image18

工程运行验证

正确连接开发板并成功下载运行后,使用通信测试验证工具接收板子发出的报文,可以收到如下报文。

image19