DEENESPTFRRUARHIKOZHNL
CLASSIC Modul: ecum Rolle: diffundiert Konfidenz: 100%

SNIP_CLASSIC_ECUM_SECTION_9_2_6_Ethernet_Wakeup_Sequence

Quelle: SWS_ECUStateManager.pdf (Seite 192) • Ziel-Anforderung: SWS_Std_00005

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