overall physical layer higher layer iso
 Standard CAN: 2.0A with 11bits identifiers
Extended CAN: 2.0B with 29bits identifiers
CAN is defined in ISO_11519 and ISO_11898.
https://www.can-cia.org/can-knowledge/can/systemdesign-can-physicallayer/ https://www.kvaser.com/about-can/higher-layer-protocols/ https://automotive.softing.com/en/standards/bus-systems/can-iso-11898.html
HW price
http://canable.io/ 25$ + shipping
http://www.ems-wuensche.com/product/datasheet/html/can-usb-embedded-interface-cpcusbe.html
http://linklayer.github.io/cantact/ 59.95$ + shipping
SW price
https://github.com/linux-can https://en.wikipedia.org/wiki/SocketCAN

linux kernel gnu a’ka free

https://libbits.wordpress.com/2012/05/07/capturing-and-analyzing-can-frames-with-wireshark/

https://www.kvaser.com/software/canopen-magic/ $$$$$$
 sigrok.org  gnu gpl
wireshark http://skpang.co.uk/blog/archives/1141
kayak http://skpang.co.uk/blog/archives/1242

other:
http://skpang.co.uk/blog/ nice CAN info for linux
http://www.blacklabssecurity.info/usb2can-setup.html very nice and detailed guide