It is also common to find CAN controllers with only 3 segments, where the Prop_Seg time is added to the Phase_Seg1 time.It is important to note that all CAN bit timing calculations are based on time quanta (TQ), defined as Node MCU a fixed unit of time derived from the oscillator with a value between 8 and 25. In terms of time, a TQ is equivalent to as low as 1/25th bit or 40ns for a 1us bit length at 1Mbps bus speed.
As an overly simplified rule of CAN bit timing, the list below could be setup to govern the values of the 4 bit time segments:
– Sync_Seg = 1TQ
– 1TQ ≤ Prop_Seg ≤ 8TQ
– 1TQ ≤ Phase_Seg1 ≤ 8TQ
– 2TQ ≤ Phase_Seg2 ≤ 8TQ
– 1TQ ≤ SJW ≤ MIN(Phase_Seg1, 4)
– SJW – Synchronization Jump width, defined as the time length by which Phase_Seg1 may be lengthened and Phase_Seg2 may be shortened
The above relationships generate a large range of possible values for each of the parameters they involve, and selecting the right combination is crucial to the successful implementation of a robust CAN communication. Designers must not only account for oscillator accuracy, and propagation delays within the node in question, but also account for other system nodes with which communication must be established.
Based on the system clock, the baud rate required, and possibly the required sample point of the bit (i.e. CANOpen sample point required at 87.5%), configuring the bit timing for CAN becomes a challenge many designers are reluctant to undertake.
This perceived complexity is causing many new embedded systems to reuse legacy MCUs and even software stacks rater than adopting new products which might address the overall system requirements a better way. Unfortunately, it puts CAN in the “It’s working, I don’t want to touch it” category of embedded peripherals.where creating new timing analysis or modifying a baud rate of an existing node configuration is no longer a risky task for an already operational CAN bus. By providing all specified and verified combinations of parameters to achieve a robust CAN timing implementation, designers can focus on the more complex tasks of the module’s main functionality.Although available for decades now, CAN is still perceived as a complex peripheral in an embedded design, especially in research and development area (R&D). R&D activities involve multiple iterations of the system configuration, with CAN being a component in the overall system. CAN drivers and CAN stack development can be outsourced to specialized companies providing these services for a fee, some with limited post-delivery change and configurability. Lately, semiconductor companies (such as Cypress in the example above) are providing tools to bridge that gap and allow quick in-house development, and fast time to market for complex embedded systems.