CLASSIC
Modul: linif
Rolle: heuristic
Konfidenz: 70%
SNIP_CLASSIC_LINIF_SECTION_9_2_4_LIN_Wakeup_Sequences
Wortlaut
9.2.4 LIN Wakeup Sequences
Figure 9.8 shows the LIN transceiver wakeup via interrupt. The interrupt is usually handled by the ICU Driver as described in Chapter 9.2.2 .
«Peripher... Lin Transceiver Hardware
«module» LinIf
«module» Lin
«module» Icu
«module» Mcu Integration Code
«module» EcuM
«module» Os
«module» LinTrcv HALT
GOSLEEP
!
"
#
"
!
#
$
%
%
SLEEP
%
&
'
%
(
$
)
#
*
)
$
WAKEUP I Mcu_SetMode(Mcu_ModeType)
GetResource(uint8)
EnableAllInterrupts()
DisableAllInterrupts()
Mcu_SetMode(Mcu_ModeType)
Mcu_SetMode()
DisableAllInterrupts()
Icu_EnableWakeup(Icu_ChannelType) Return from interrupt() EcuM_EnableWakeupSources(EcuM_WakeupSourceType)
EcuM_SetWakeupEvent(EcuM_WakeupSourceType)
LinTrcv_CheckWakeup(uint8)
EcuM_CheckWakeupHook(EcuM_WakeupSourceType)
LinIf_CheckWakeup(EcuM_WakeupSourceType)
Icu_DisableWakeup(Icu_ChannelType) Activate PLL() ReleaseResource(uint8)
EcuM_DisableWakeupSources(EcuM_WakeupSourceType)
EnableAllInterrupts()
EcuM_CheckWakup(EcuM_WakeupSourceType) Wakeup interrupt() Figure 9.8: LIN transceiver wake up by interrupt As shown in Figure 9.9 , the LIN controller wake up by interrupt works similar to the CAN controller wake up by interrupt. In both cases the Driver module encapsulates the interrupt handler.
«module» LinIf
«module» Lin
«module» Icu
«module» Mcu Integration Code
«module» EcuM
«module» Os
«module» LinTrcv
«Peripheral» LinController/UART
HALT
!
!
!
"
#
#
!
#
$
%
GOSLEEP
!
&
#
' (
)
!
*
+
SLEEP
"
,
' (
)
WAKEUP I LinIf_CheckWakeup(EcuM_WakeupSourceType)
EcuM_CheckWakeupHook(EcuM_WakeupSourceType)
DisableAllInterrupts() Wakeup interrupt() Mcu_SetMode(Mcu_ModeType)
ReleaseResource(RES_AUTOSAR_ECUM_<core#>)
GetResource(RES_AUTOSAR_ECUM_<core#>)
EcuM_EnableWakeupSources(EcuM_WakeupSourceType)
EcuM_DisableWakeupSources(EcuM_WakeupSourceType)
EnableAllInterrupts()
Mcu_SetMode(Mcu_ModeType)
DisableAllInterrupts()
EnableAllInterrupts() Return from interrupt() Mcu_SetMode()
Lin_CheckWakeup(uint8)
EcuM_CheckWakup(EcuM_WakeupSourceType) Activate PLL() EcuM_SetWakeupEvent(EcuM_WakeupSourceType) Figure 9.9: LIN controller wake up by interrupt Wake up by polling is possible for LIN transceiver and controller. The ECU State Manager module will regularly check the LIN Interface module, which in turn asks either the LIN Driver module or the LIN Transceiver Driver module, as shown in Figure 9.10 .
«Peripheral» Lin Transceiver Hardware
«module» LinIf
«module» Lin
«module» Icu
«module» Mcu Integration Code
«module» EcuM
«module» Os
«module» LinTrcv GOSLEEP SLEEP WAKEUP I loop WHILE no pending/validated events
alt WakeupSource parameter of LinIf_CheckWakeup()
!
"
#
$
%
&
#
#
#
#
'
(
Lin_CheckWakeup(uint8)
Mcu_SetMode(Mcu_ModeType)
EcuM_CheckWakeupHook(EcuM_WakeupSourceType)
GetResource(uint8)
EcuM_EnableWakeupSources(EcuM_WakeupSourceType)
EcuM_DisableWakeupSources(EcuM_WakeupSourceType)
ReleaseResource(uint8)
Mcu_SetMode(Mcu_ModeType)
*
EcuM_SetWakeupEvent(EcuM_WakeupSourceType)
EcuM_SetWakeupEvent(EcuM_WakeupSourceType)
LinIf_CheckWakeup(EcuM_WakeupSourceType)
LinTrcv_CheckWakeup(uint8) Figure 9.10: LIN controller or transceiver wake up by polling Note that LIN does not require wakeup validation.
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
LIN transceiver wakeup notification modes
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_ECUStateManager.pdf |
|---|---|
| Dokumentseite | Seite 182 |
| Ziel-Modul | linif (classic) |
| Ziel-Anforderung | SWS_LinTrcv_00066 |
| Semantische Rolle | heuristic |
| Automatisierungs-Konfidenz | 0.70 |