Tell me more ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

I have a CANopen slave stack. Is it possible to implement both the CANopen master and slave functionalities using the same stack? Or is a separate master stack required?

share|improve this question
Whether it is "separate" or not is merely a matter of software architecture and semantics. – Olin Lathrop Jun 7 '12 at 13:51

1 Answer

In CAN and CANopen, technically any node on the bus can be a server, a client, or both. Code-wise, I don't see a reason why one stack couldn't handle both the server and client duties. But if I understand your question, you are not writing the stack yourself, and you are merely using someone else's; it is provided as "slave only" and perhaps it has been implemented to only send TPDOs in an event-driven mode (other than the objects that your device's respective standard requires)?

If so, then I don't see how you can use it to make your device act as a master and just ask any node on the network for specific object data. If not, then I would definitely try to make your stack enable your device to act as a master and a slave, because I'm not aware of any technical hurdles that would prevent this. Hopefully I haven't misunderstood your question.

share|improve this answer
Yes your understanding of the question is correct.I would like to know, how many object dictionaries are required for a CANOpen master to communicate with 'n' devices? – Vivek V Jun 8 '12 at 14:18
You'll need to download the respective specs from the CiA, e.g. DS402 for motion control, DS401 for I/O, etc. – Dave Jun 8 '12 at 14:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.