关于CANopen协议如何实现?

最近在研究CANopen协议,网上看了很多资料,可还是感觉很迷糊,像对象字典,SDO,NMT之类的概念知是知道,可整个通讯控制流程依然搞不懂,不知道在具体程序上怎么去实现,有人懂这一块吗,指点一下啊,目前需要在STM32上移植代码,有没有以前做过这个的,分享一下啊?

http://wenku.baidu.com/link?url=UQoesURrEsUM4NvE5ZacHn8kAk5HgZTj5uMfmZEgJFQs6UVEHQ2s8zH7IiTT7DInXWnpyHiHklu5KY8J5KNBK-H57ELxOWKHE_zFrItVcS_