SNIP_CLASSIC_CAN_SECTION_7_3_CAN_Controller_State_Machine
Wortlaut
7.3 CAN Controller State Machine
Each CAN controller has complex state machines implemented in hardware. For simplification, the number of states is reduced to the following four basic states in this description: UNINIT, STOPPED, STARTED and SLEEP. Any CAN hardware access is encapsulated by functions of the Can module, but the Can module does not memorize the state changes. The Can module offers the services Can_Init, Can_SetBaudrate and Can_SetControllerMode. These services perform the necessary register settings that cause the required change of the hardware CAN controller state. There are two possibilities for triggering state changes by external events:
• Bus-off event
• HW wakeup event These events are indicated either by an interrupt or by a status bit that is polled in the Can_MainFunction_BusOff or Can_MainFunction_Wakeup. The Can module does the register settings that are necessary to fulfill the required behavior (i.e. no hardware recovery in case of bus off). Then it notifies the CanIf module with the corresponding callback function. The software state is then changed inside this callback function. In case development errors are enabled and there is a not allowed transition requested by the upper layer, the Can module shall rise the development error CAN_E_TRANSITION. The Can module does not check the actual state before it performs Can_Write or raises callbacks.
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Controller state machine states defined.
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_CANDriver.pdf |
|---|---|
| Dokumentseite | Seite 30 |
| Ziel-Modul | can (classic) |
| Ziel-Anforderung | SWS_Can_91013 |
| Semantische Rolle | heuristic |
| Automatisierungs-Konfidenz | 0.90 |