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.
Tool | Version |
---|---|
ISOLAR-AB | v 9.2.1 |
RTA-RTE | v 7.5.3 |
RTA-BSW | v 6.1.3 |
RTA-OS | v 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
andCanTrcv/integration/CanTrcv_rba_TJA1041.h
- A sample implementation for a Spi CDD transceiver is available in
CanTrcv/integration/CanTrcv_rba_TLE9255.c
andCanTrcv/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.