The CAN Driver is part of the lower layer and offers the CAN Interface uniform interfaces to use. It hides hardware-specific properties of the CAN Controller as far as possible. The CAN Driver performs the hardware access and provides a hardware-independent API to the upper layer, the CAN interface (CanIf). Services for initiating transmission are offered by the CAN Driver and it calls the callback functions of the CanIf module for notifying events hardware independently. In addition, there are services provided by the CAN Driver module to control the state of all CAN controllers belonging to the same CAN hardware unit. A CAN controller serves exactly one physical channel.