BittimingTo ensure correct sampling up to the last bit, a CAN node needs to resynchronize throughout the entire frame. This is done at the beginning of each message with the falling edge SOF and on each recessive to dominant edge. One CAN bit time is specified as four nonoverlapping time segments. Each segment is constructed from an integer multiple of the Time Quantum. The Time Quantum or TQ is the smallest discrete timing resolution used by a CAN node. The four time segments are:
The sample point is the point of time at which the bus level is read and interpreted as the value (recessive or dominant) of the respective bit. Its location is at the end of Phase Segment 1 (between the two Phase Segments). Programming of the sample point allows "tuning" of the characteristics to suit the bus. Early sampling allows more Time Quanta in the Phase Segment 2 so the Synchronization Jump Width can be programmed to its maximum. This maximum capacity to shorten or lengthen the bit time decreases the sensitivity to node oscillator tolerances, so that lower cost oscillators such as ceramic resonators may be used. Late sampling allows more Time Quanta in the Propagation Time Segment which allows a poorer bus topology and maximum bus length. In order to allow interoperability between CAN nodes of different vendors it is essential that both  the absolute bit length (e.g. 1 microsecond) and the sample point  are within certain limits. The following table gives an overview of recommended bittiming setups.
The default baudrates defined in this table can be setup via the core function CpCoreBaudrate(). The supplied parameter for the baudrate selection is taken from the enumeration CP_BAUD (canpie.h).
