Electronic – CANopen frame format

canserial

Is there a resource that describes how CANopen frames are constructed down to the byte level?

I'm trying to decode a hex dump from a CAN bus, see the image below. The high-level CAN messages that created this data are:

# Parameter: Node Id
NodeId = 127                                                   # Node Id

#-----------------------------------------------------------------------------------------------------------------------
# Initialisation
mc.Can.SdoWr(NodeId, 0x3000, 1, 1)                             # Reset error register
mc.Can.SdoWr(NodeId, 0x3000, 1, 0x77)                          # Relative positioning 150 counts

CANopen SDO bus capture

Best Answer

Generally I've found that actual device manuals usually have the easiest to understand descriptions of the CANopen protocol. They are hands on, and seem to have a much more practical approach than many other materials.

For example this one I found quite easy to follow: http://www.a-m-c.com/download/sw/dw300_3-0-3/CAN_Manual300_3-0-3.pdf

Over at stackoverflow other people have asked similar questions and they've gotten a good amount of answers: https://stackoverflow.com/questions/1232624/how-to-program-a-simple-canopen-layer