CLASSIC
Modul: frif
Rolle: heuristic
Konfidenz: 85%
SNIP_CLASSIC_FRIF_SECTION_9_2_5_FlexRay_Wakeup_Sequences
Wortlaut
9.2.5 FlexRay Wakeup Sequences
For FlexRay a wake up is only possible via the FlexRay transceivers. There are two transceivers for the two different channels in a FlexRay cluster. They are treated as belonging to one network and thus, there should be only one wake up source identifier configured for both channels. Figure 9.11 shows the FlexRay transceiver wakeup via interrupt. The interrupt is usually handled by the ICU Driver as described in Chapter 9.2.2.
«Peripheral» FlexRay Transceiver Hardware
«module» Os
«module» EcuM Integration Code
«module» Mcu
«module» Icu
«module» FrIf
«module» Fr
«module» FrTrcv
«Peripheral» FlexRay Controller HALT GOSLEEP SLEEP WAKEUP I opt Wakeup detected
!
"
#
"
$
%
&
%
#
"
'
(
EcuM_SetWakeupEvent()
GetResource(RES_AUTOSAR_ECUM_<core#>)
Mcu_SetMode(Mcu_ModeType)
DisableAllInterrupts()
EcuM_SetWakeupEvent(EcuM_WakeupSourceType)
Icu_EnableWakeup(Icu_ChannelType) activate PLL() FrIf_CheckWakeupByTransceiver(uint8, Fr_ChannelType)
FrTrcv_CheckWakeupByTransceiver(uint8)
ReleaseResource(RES_AUTOSAR_ECUM_<core#>)
EcuM_CheckWakeupHook(EcuM_WakeupSourceType)
EcuM_EnableWakeupSources(EcuM_WakeupSourceType)
EcuM_DisableWakeupSources(EcuM_WakeupSourceType)
Icu_DisableWakeup(Icu_ChannelType)
DisableAllInterrupts()
EnableAllInterrupts()
Mcu_SetMode(Mcu_ModeType)
EnableAllInterrupts()
Mcu_SetMode()
EcuM_CheckWakup(EcuM_WakeupSourceType) Return from interrupt() Wakeup interrupt() Figure 9.11: FlexRay transceiver wake up by interrupt Note that in EcuM_CheckWakeupHook there need to be two separate calls to FrIf_ WakeupByTransceiver, one for each FlexRay channel.
«Peripheral» FlexRay Transceiver Hardware
«Periphe... FlexRay Controller
«module» FrTrcv
«module» Fr
«module» FrIf
«module» Icu
«module» Mcu Integration Code
«module» EcuM
«module» Os GOSLEEP SLEEP WAKEUP I loop WHILE no pending/validated events
opt Wakeup detected
!
"
#
!
!
$
"
%
$
"
%
&
EcuM_CheckWakeupHook(EcuM_WakeupSourceType)
EcuM_SleepActivity()
DisableAllInterrupts()
Mcu_SetMode(Mcu_ModeType)
ReleaseResource(RES_AUTOSAR_ECUM_<core#>)
GetResource(RES_AUTOSAR_ECUM_<core#>)
Mcu_SetMode(Mcu_ModeType)
EcuM_EnableWakeupSources(EcuM_WakeupSourceType)
EnableAllInterrupts()
EcuM_DisableWakeupSources(EcuM_WakeupSourceType)
DisableAllInterrupts()
EcuM_SetWakeupEvent(EcuM_WakeupSourceType)
FrTrcv_CheckWakeupByTransceiver(uint8)
FrIf_CheckWakeupByTransceiver(uint8, Fr_ChannelType)
EnableAllInterrupts() Figure 9.12: FlexRay transceiver wake up by polling
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
FrTrcv_CheckWakeupByTransceiver calling EcuM_SetWakeupEvent
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_ECUStateManager.pdf |
|---|---|
| Dokumentseite | Seite 186 |
| Ziel-Modul | frif (classic) |
| Ziel-Anforderung | SWS_FrTrcv_00311 |
| Semantische Rolle | heuristic |
| Automatisierungs-Konfidenz | 0.85 |