RTA Knowledge Base

Introduction

Scope

In this Application Note we will inform you of the transceivers that are fully supported in RTA-BSW and can be configured out of the box, and how you can integrate your transceiver to your project if it is not in the list of supported devices.

This application note will cover the CanTrcv and LinTrcv modules. If you require more information than is in this application note please refer the the RTA-Hwd_<ModuleName>_Reference_Guide.pdf shipped with the RTA-BSW.

Definitions and Abbreviations

BSW: AUTOSAR Basic Software, Hardware independent service layer

RTE: AUTOSAR Run-Time Environment

OS: AUTOSAR Operating System

SWC: Software Component

CAN: Controlled Area Network

ECU: Engine/Electronic Control Unit

SK: Starter Kit

Confgen: Configuration Generation

Trcv: Transceiver

CDD: Complex Device Driver

Tool Chain

It is assumed you are using the RTA-CAR 9.2.1 tool chain.

ToolVersion
ISOLAR-ABv 9.2.1
RTA-RTEv 7.5.3
RTA-BSWv 6.1.3
RTA-OSv 6.2.0

Prerequisites

It is assumed that the reader has good knowledge of AUTOSAR Methodology and Architecture.

Support for Transceivers

Note on Trcv Naming Convention

Some transceivers have multiple channels, and the name of these transceivers may not be found directly in the transceiver HW list. You should refer to the transceiver’s user manual to identify the names of individual transceiver channels, which will need to be provided during configuration.

For example, the TJA1901 is actually: TJA1046 + TJA1029 (2 x TJA1044GT + TJA1029).

TJA1901 will not be available as a name in the transceiver list, but TJA1046 and TJA1029 will be available, and these should be selected instead of TJA1901.


CanTrcv

Directly Supported CanTrcv Hardware

The CanTrcv module supports the following hardware devices:

  • NXP Semiconductors: TJA1040, TJA1041, TJA1042, TJA1043, TJA1044GT, TJA1046TK, TJA1048, TJA1059, TJA1145, TJA1145AT, TJA1463
  • Infineon Technologies: TLE6250G, TLE6250GV33, TLE6251, TLE8250GVIO, TLE9255W
  • Atmel: ATA6570, ATA6571, ATA6572

CDD for CanTrcv

The RTA-BSW implementation of the CanTrcv module supports a fixed set of Transceivers (see the list in Supported Features), but support for additional CanTrcv types can be implemented through integration code and generated entry points, with the configuration of the additional CanTrcv being done in static code. The steps required to implement an Extended CDD CanTrcv are as follows.

1. Configure CanTrcvHardwareType to CDD.

2. Configure the CanTrcvCddName.

3. Implement the required Functions:

The default Function pointers are as follows:

  • <CanTrcvCddName>_CanTrcvInit
  • <CanTrcvCddName>_CanTrcvInit
  • <CanTrcvCddName>_CanTrcvSetOpMode
  • <CanTrcvCddName>_CanTrcvGetOpMode
  • <CanTrcvCddName>_CanTrcvGetBusWuReason
  • <CanTrcvCddName>_CanTrcvSetWakeupMode
  • <CanTrcvCddName>_CanTrcvCheckWakeup

If CanTrcvHwPnSupport is configured to TRUE for the CanTrcvChannel, the following Function pointers will also be generated:

  • <CanTrcvCddName>_CanTrcvCheckWakeFlag
  • <CanTrcvCddName>_CanTrcvSetPNActivationState
  • <CanTrcvCddName>_CanTrcvReadTrcvTimeoutFlag
  • <CanTrcvCddName>_CanTrcvClearTrcvTimeoutFlag
  • <CanTrcvCddName>_CanTrcvReadTrcvSilenceFlag
  • <CanTrcvCddName>_CanTrcvClearTrcvWufFlag

The above Functions must be implemented in the CanTrcv/integration folder, and they must be declared in <CanTrcvCddName>.h header files, which are included in the CanTrcv_Cfg.h header file. The full list of expected functions to be implemented for CDD CanTrcvChannels can be found in CanTrcv_CddFctP_ st structure definition in CanTrcv_Cfg.c

  • A sample implementation for a Dio CDD transceiver is available in CanTrcv/integration/CanTrcv_rba_TJA1041.c and CanTrcv/integration/CanTrcv_rba_TJA1041.h
  • A sample implementation for a Spi CDD transceiver is available in CanTrcv/integration/CanTrcv_rba_TLE9255.c and CanTrcv/integration/CanTrcv_rba_TLE9255.h

Note that by default these files are not compiled due to the “#if 0” preprocessor definition at the top of each file.

4. Implement your own code

Implement your own code to control and obtain information from the CanTrcv hardware. Some parameter configurations can be generated in code, and the tables below summarize the mapping of configuration parameters to Cfg.c/h code.


LinTrcv

Directly Supported LinTrcv Hardware

  • NXP Semiconductors: TJA1021, TJA1027
  • Infineon Technologies: TLE7259
  • Other's (ON Semiconductors): NCV7424, NCV7321
  • Other's: SIP2x0_TJA1901_TJA1902_TJA1029

CDD for LinTrcv

The CDD implementation strategy is not yet supported by the LinTrcv module, so to integrate a LinTrcv that is not fully supported (i.e. not listed above) you will have to implement the full LinTrcv component.

  • No labels