You can use what you prefer, but I only advise you that these shields are not prepared for the Mega boards.
The MCP2515 Can controller uses SPI to communicate with the microcontroller. These pins are physically in:
- Arduino UNO, Diecimila,Duemilanove => 13,12,11,10
- Mega =>53,52,51,50
You can see a similar problem in the old
At the end, all these hardwares are using the same CAN controller (MCP2515), and the code is going to be compatible, the only difference maybe is the clock used, but it´s a small change to do in the code for the SPI clock prescaler.
If you want a shield because it has an extra feature that you want to use, you always can do this "hack", but if you are only interested in the CAN feature, I prefer a SPI <->CAN board.
You can check for yourself the schematics.
You can find the links in my blog with shields, code, SPI <-->CAN => http://real2electronics.blogspot.com/2010/06/can-bus-mcp2515.html
Regards, Igor R.