CLASSIC
Modul: ecum
Rolle: diffundiert
Konfidenz: 100%
SNIP_CLASSIC_ECUM_SECTION_9_2_6_Ethernet_Wakeup_Sequence
Wortlaut
9.2.6 Ethernet Wakeup Sequence
On a Ethernet switched network with OA TC10 compliant Ethernet hardware a wake up can be detected by the used Ethernet hardware (PHY). For Ethernet ECUs which maintain a Ethernet Switch (host ECU), it is recommended to use polling on demand to check a wake-up notified by the Ethernet hardware. Because checking all affected EthSwtPort could be time comsuming and not acceptable for a check within the interrupt. Thus, an interrupt signals that at least one of the Ethernet switch ports detect an wake-up. In the context of the interrupt the affected EthTrcv are signaled to be checked asynchronously in the EthTrcv_MainFunction. Each EthTrcv should have its own wakeup source to distinguish on which EthSwtPort the wakeup arrived. Wakeup sources could be shared if the EthSwtPort are e.g. assigned to the same PNCs The following Ethernet Wake-up Sequences are partly optional, because there is no specification for the "Integration Code". Thus it is implementation specific if e.g. during EcuM_CheckWakeupHook the EthIf is called to check the wake up source.
«Periph... ETH Hardware (PHY)
«module» Icu
«module» Mcu
«module» EcuM Integration Code
«module» Os GOSLEEP HALT SLEEP EthTrcv
«module» EthIf
«module» EthSwt
!
«module» Eth loop over all affected Ethernet switches loop over all affected EthSwitchPorts
"
#
!
"
$
%
&
"
' (
%
)
"
&*
(
+
,
(
*
-
.
/
(
-
.
(
0
"
1
.
0 2
"
"
*
!
"
"
#
"
$
EcuM_StartCheckWakeup() activate PLL() EcuM_CheckWakeupHook(EcuM_WakeupSourceType) Return from interrupt() EcuM_CheckWakeup(EcuM_WakeupSourceType)
EcuM_EnableWakeupSources(EcuM_WakeupSourceType) Wakeup interrupt() DisableAllInterrupts() EthSwt_SwitchCheckWakeup(uint8): Std_ReturnType Mcu_SetMode(Mcu_ModeType) EthIf_CheckWakeup(EcuM_WakeupSourceType): Std_ReturnType GetResource(uint8) EthTrcv_CheckWakeup(uint8): Std_ReturnType Figure 9.13: Passive wakeup of a host ecu (ECU that maintain a Ethernet switch) (part 1)
«Periph... ETH Hardware (PHY)
«module» Icu
«module» Mcu Integration Code
«module» EcuM
«module» Os EthTrcv HALT
«module» EthIf
«module» EthSwt
«module» Eth
loop over the Ethernet hardware which is signaled to be checked [Wakeup detected] alt [wake up detected] [no wake up detected] WAKEUP I WAKEUP VALIDATION Sleep
EcuM_SetWakeupEvent(EcuM_WakeupSourceType)
EnableAllInterrupts()
EcuM_DisableWakeupSources(EcuM_WakeupSourceType)
MainFunction()
DisableAllInterrupts()
Mcu_SetMode()
ReleaseResource(uint8)
EnableAllInterrupts()
Mcu_SetMode(Mcu_ModeType)
DisableAllInterrupts()
Mcu_SetMode(Mcu_ModeType) Figure 9.14: Passive wakeup of a host ecu (ECU that maintain a Ethernet switch) (part 2) A single Ethernet ECU (ECU which do NOT maintain a Ethernet switch) could choose how to detect a wakeup either by interrupt or by polling. The difference to a host ECU is, that not the high amount of Ethernet switch ports has to be checked.
«Periphe... ETH Hardware (PHY)
«module» Icu
«module» Mcu Integration Code
«module» EcuM
«module» Os HALT GOSLEEP SLEEP
!
EthTrcv
«module» Eth
«module» EthIf
«module» EthSwt
"#
!
Mcu_SetMode(Mcu_ModeType) Return from interrupt() EcuM_CheckWakeupHook (EcuM_WakeupSourceType) DisableAllInterrupts()
EcuM_EnableWakeupSources(EcuM_WakeupSourceType)
EcuM_StartCheckWakeup()
GetResource(uint8) EthIf_CheckWakeup(EcuM_WakeupSourceType): Std_ReturnType Icu_EnableWakeup(Icu_ChannelType) EthTrcv_CheckWakeup(uint8): Std_ReturnType activate PLL() EcuM_SetWakeupEvent(EcuM_WakeupSourceType) Wakeup interrupt() EcuM_CheckWakeup(EcuM_WakeupSourceType) Figure 9.15: Passive wakeup of a single ECU (ECU which do not maintain a Ethernet switch) (part 1)
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Figure 9.13 explicitly specifies the return type Std_ReturnType for wakeup check services.
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_ECUStateManager.pdf |
|---|---|
| Dokumentseite | Seite 192 |
| Ziel-Modul | ecum (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | diffundiert |
| Automatisierungs-Konfidenz | 1.00 |