SLLA521B January 2022 – June 2022 TCAN1145-Q1 , TCAN1146-Q1
This application note discusses selective wake-up as per ISO 11898-2:2016 and how it enables partial networking (PN). The application note includes how PN is used, how to configure TI devices, and two set-up examples.
All trademarks are the property of their respective owners.
Controller Area Network (CAN) is a communication architecture used for reliable communication in environments that are considered to be noisy, one example being automobiles. Over time, CAN has evolved to include classic high-speed CAN as well as CAN flexible data rate (CAN FD). Classic high-speed CAN supports data rates up to 1 Mbps and although CAN FD is backwards compatible with classic high-speed CAN, it also supports data rates up to 5 Mbps and higher. CAN FD supports up to 64 bytes and a bit rate switching mode, which allows faster than 1 Mbps data transmission.
In an automotive CAN network, power is always a concern for situations when the vehicle is off or when only a few electrical control units (ECUs) need to be on during normal operation. The development of PN addresses this concern. PN is a method used to save power when both homogeneous (all ECUs capable of PN) or mixed (not all ECUs capable of PN) CAN and CAN FD networks are used. This process is accomplished by allowing bus communication, but sleeping nodes only wake on a specific CAN message or frame. PN was developed by the International Standard Organization (ISO) and is based upon the latest version of the ISO 11898-2:2016 standard.
This application note provides information using an example application. The application note focuses on what selective wake, also known as partial networking (PN), is and how it is used in an application. The register set from the TCAN1145-Q1 and TCAN1146-Q1 is provided for ease of understanding and finishes with two examples on how to program a device for PN.
Figure 2-1 represents a simplified mixed CAN FD network. ECU3 and ECU6 are partial networking capable ECUs. The rest of the ECUs are not PN capable. ECU1 and ECU8 represent the termination locations. CAN bus represents the CANH and CANL signals. PN enabled ECUs described in the following sections relate to ECU3 and ECU6 in this figure.
To understand partial networking in an application the PN capable CAN transceiver needs to be understood. Modes of operation and the impact of partial networking will be presented, followed by a deeper investigation of sleep mode and how utilizing PN creates two different levels of sleep. To understand how PN works, a brief explanation on a CAN frame is provided which will be followed up with a more detailed explanation. Lastly, information will be provided on how a mixed network similar to the simplified one provided will behave.
CAN has three main modes of operation that have a direct impact on the system power: normal mode, standby mode, and sleep mode. Normal mode is the highest power mode where CAN or CAN FD communication takes place. Standby mode is the transitional mode from sleep, where the ECU wakes up from sleep and the transceiver waits for the ECU system processor to place the CAN transceiver into normal mode. It’s important to note that standby and sleep modes do not allow data from the CAN network to be passed through to the CAN transceiver RXD pin. Lastly, sleep mode is the lowest power mode where only the CAN transceiver’s low-power receiver is active in the ECU.
When the ECUs are placed into sleep mode (low-power mode), a wake-up pattern (WUP) starts the wake up process for every node on the network. WUP is a filtered dominant pulse, followed by a filtered recessive pulse, and then by another filtered dominant pulse. WUP acts as a basic noise filtering mechanism that differentiates CAN noise from actual CAN traffic. When a CAN frame is sent over CAN, every node recognizes a WUP and transitions out of sleep mode to a higher power mode such as standby or normal modes and all CAN nodes consume current at higher levels.
When an ECU supports PN, an additional step in the wake process is required to leave sleep mode. A CAN node that supports partial networking breaks sleep mode into two states, deep sleep (CAN bus GND bias) and sleep (CAN bus 2.5 V bias). While the PN-enabled CAN transceiver is in either of these sleep states, no CAN frames are passed through to the RXD pin.
CAN ECUs are generally seen in three states: sleep mode (low current consumption, ≤ 100 µA), standby mode (higher current consumption, 10s to 100s mA), and normal mode (highest current consumption, 100s mA to several amps). Since each node uses significantly less current when it is asleep, the longer ECU is in sleep mode, the more power that can be saved. PN breaks sleep mode into two different levels, see Figure 2-2, allowing overall network current consumption to be reduced. When an ECU is in sleep mode, it is waiting to wake up, which can be accomplished by a WUP signal.
When an ECU receives a WUP, non-PN capable ECUs will wake up and transition to standby mode, whereas PN enabled ECUs will transitions to a higher sleep state, but not into standby mode. In this higher sleep state, the CAN bus bias changes from ground to 2.5 V while listening for a valid wake-up frame (WUF). This bias change is necessary for the WUF receiver to decode the CAN frames and no bus traffic is passed through to the CAN transceiver RXD pin. While the ECU is in this higher sleep state waiting for a valid WUF, only a subset of the node is awake and is consuming ~ 500 µA and not the 10s to 100s of mA that a non-PN node would be consuming.
Before the enabled PN CAN transceiver correctly receives and interprets the Wake-Up Frame (WUF), the receiver must synchronize to the CAN data rate. To save cost, the local PN transceiver uses an internal oscillator that can have a variance of ± 3% compared to the CAN controllers on the network. To properly decode CAN frames, the device must first synchronize its internal clock to the clock of the controllers sending CAN frames. This is accomplished by analyzing CAN frames and comparing the length of received bits versus its own expected length, and then making bit length adjustments. This can take several CAN frames before the PN CAN transceiver locking step is complete.
The ISO 11898-2:2016 CAN standard allows up to four CAN frames at 500 kbps or 8 CAN frames at 1 Mbps for the transceiver to lock on to the data rate, not including the first CAN frame that contains the WUP, which starts after tBias. Correct decoding of these frames is not required, and does not cause the internal frame error counter to increment. The transceiver can receive a valid WUF after it successfully syncs to the CAN data rate. See Section 3 for clarification on the wake-up frame.
During this process, CAN bus data does not get passed through to the transceiver RXD pin. Once the PN-enabled ECU receives this valid WUF, it fully wakes up and transitions to standby mode. Other nodes that did not wake from this WUF must continue to remain in Sleep mode, decoding CAN frames and looking for their matching WUF pattern. If the transceiver does not receive a valid WUF, and the ISO defined tSILENCE timer expires (timeout for bus inactivity), the ECU will re-enter deep sleep and bias the bus back to ground. Keep in mind that if other nodes are communicating, the CAN network will stay biased to 2.5 V and will no longer be in the deep sleep state but is still consuming less current than ECUs in standby or normal mode.
The ISO 11898-2:2016 standard covers the physical layer for high-speed CAN, CAN FD and PN. PN uses classical high-speed CAN for waking up an ECU but does not preclude the CAN network from using CAN FD during normal CAN traffic. CAN FD communication would typically generate a CAN error when used on a classic CAN node; the standard overcame this by using the CAN FD Format indicator (FDF) bit in the CAN packet. The FDF bit set to 1b indicates that the packet is CAN FD. This bit allows a PN-enabled CAN transceiver to determine if the frames are CAN FD.
PN-capable CAN transceivers have the ability to decide whether to indicate an error or to ignore the CAN FD frames by programming a SW_FD_PASSIVE bit. When this bit is set to 1b, CAN FD frames are ignored, which is known as CAN FD passive.
The benefit for using classical high-speed CAN for WUF is that a PN-enabled CAN transceiver does not need a precise internal clock. If a CAN FD frame was to be used, the CAN transceiver needs a 0.5% tolerant crystal to decode the WUF which adds system level cost.
Since partial networking Wake Up Frames (WUF) are only recognized as part of a Classical CAN frame, it is not necessary to fully decode CAN FD frames. Also, the faster data rates and switching of data rates within a CAN FD frame, can prove to be too difficult to decode without using a highly accurate external clock source. However, if a CAN frame is not decoded correctly, it will accumulate an error counter that can overflow, and cause an unwanted wake-up. To avoid this problem of CAN FD frames leading to unwanted decode errors, an FD Passive mode is provided.
This key feature of Partial networking capable CAN transceivers is that they can operate seamlessly within a network of CAN FD transceivers when FD Passive mode is enabled by setting the SW_FD_PASSIVE bit, and by providing the data rate ratio of CAN FD:CAN with the FD_DR setting. When CAN FD frames are detected, as indicated by FDF=1, the rest of the frame can be safely ignored so as to not cause an increment to the error counter. CAN bus noise that is smaller than CAN FD bit times will be filtered out, while active FD data can be detected, so that the end of the CAN FD frame can be properly recognized. In this way, a WUF based on Classical CAN may appear at any time and adjacent to CAN-FD frames.
CAN FD passive is only enabled in sleep mode so PN enabled transceivers will ignore CAN FD frames while the transceiver is in sleep mode. These PN enabled transceivers will wake when a valid WUP followed by a valid WUF is received and then will transition to standby mode. The ECU controller changes the PN enabled CAN transceiver to normal mode which allows CAN FD frames to be transmitted and received. The CAN FD PN passive mode should not be disabled. When the go-to-sleep command is issued, the PN enabled transceiver can receive a WUF while transitioning from normal to sleep mode, allowing it to decode the WUF correctly and wake up if valid. If these are disabled, they would have to be re-enabled before placing the PN capable transceiver into sleep mode. What could cause PN to be disabled?
In a typical application, PN would be enabled at power-up and left on to cover the mode transition cases mentioned as well as the transition from normal to sleep mode. If a WUP takes place during this transition, the device already has PN enabled and will be looking for a valid WUF. For the case that sleep mode is entered due to a fault, PN can end up disabled. In this case a WUP will wake up the device even though PN is still configured (SWCFG=1) but it is off due to SW_EN=0. Only the SW_EN bit has to be reset to 1 to completely re-enable PN.
As an example, if a UVIO fault or TSD fault occurs and Failsafe mode is disabled, the device will enter Sleep mode and set SW_EN=0. Since PN is now disabled, a WUP will act as a wake event and transition the device to Standby. As another example, in sleep mode, decoding errors that lead to FRAME_OVF error would set SW_EN=0 and cause the device to transition to standby mode. So, after a fault and before placing the PN capable transceiver to sleep the SW_EN should be set to 1.
To comprehend how selective wake works, a basic understanding of the CAN and CAN FD frame needs to be understood.