improve CAN interface