Here it is mentioned that the controller will be in a logical sleep state?
If the hardware doesn't support this sleep mode, then how will this logical sleep state be achieved? What is meant by logical sleep state?
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It only takes a minute to sign up.
Sign up to join this communityHere it is mentioned that the controller will be in a logical sleep state?
If the hardware doesn't support this sleep mode, then how will this logical sleep state be achieved? What is meant by logical sleep state?
Source: AUTOSAR: Specification of CAN Driver
So this describes how a driver should behave towards the software using it.
Then that whole paragraph makes sense:
Your document (read it from the beginning) explicitly demands that your driver represents a state machine with the UNINIT, STOPPED, STARTED and SLEEP.
The sentence before the sentence that you cropped out is just as important:
[SWS_Can_00257] ⌈ When the CAN hardware supports sleep mode and is triggered to transition into SLEEP state, the Can module shall set the controller to the SLEEP state from which the hardware can be woken over CAN Bus.⌋ (SRS_SPAL_12067)
So, clearly, when the hardware supports a sleep state, there's a way of leaving that SLEEP state to the STARTED state, when the hardware receives a waking event from the bus.
Now, if the hardware doesn't support it, what are the possible state transitions?
SWS_Can_00258] ⌈ When the CAN hardware does not support sleep mode and is triggered to transition into SLEEP state, the Can module shall emulate a logical SLEEP state from which it returns only, when it is triggered by software to transition into STOPPED state.⌋ ()
So, in that case, there's no way to wake up the CAN through hardware, and the only possible state transition that can be done in software is to STOPPED.
Pretty straightforward! If it helps, draw yourself a finite state machine diagram (excerpt) for this. The only arrow between SLEEP and STARTED is a hardware wakeup, and there's an arrow from SLEEP to STOPPED which can be walked through a software command.