Ну, если не пытаться реализовывать лишние вещи, то и CANOpen на
микроконтроллере совсем не сложно поднять. Чем меньше функционала,
тем проще. Но таки на мой взгляд проще сделать так: по USB
конфигурируем устройство, а дальше уже оно в сети спокойно работает
(хоть даже с CANOpen, просто т.к. отдавать/принимать будет лишь
пару-тройку параметров, то и разработка упрощается до размера одной
страницы кода).