The implementation of the CAN protocol, from its implementation side is a big challenge, mainly due to the very restrictive frame timings amongst the network. If we raise the speed of a CAN bus, the complexity gets even higher.
Fortunately, there are hardware CAN controllers on the market, that solve such a problems for a really little money. One of them is the CAN MCP2515 controller designed by Microchip.
It is a stand-alone CAN controller, which supports the CAN up to V2.0 standard with a 1Mb/s transfer rate. It both can receive and send both standard and extended data frames.
The user has a feature of processing frames by internal hardware set of filters and masks. That is a nifty thing letting Your main CPU doing other tasks than processing CAN frames.
The MCP2515 chip operates in a wide voltage range - from 2.7V up to 5.5V. It communicates with the CPU via SPI bus.
All put together: CAN controller + CAN transceiver on a tiny module with affordable price.