CANopen/CAN bus, what do I need, including a protocol (OD?), to communicate between PC terminal and CAN device module

StackOverflow https://stackoverflow.com/questions/7069847

I have a dsPIC33 with ECAN and wish to establish a protocol (using SDO if possible) in such way that it communicate between terminal software and dsPIC33 where I can perform diagnostics within dsPIC33 and supporting ICs.

I do not know what is required, so what is a low cost way of doing this? I could use a CAN-to-USB device, but I am unsure if this will work. What kind of protocol inside CANUSB wraps around the ASCII-based message?

What hardware can I use? Can it be used to monitor the CAN bus as well? I do not wish to invest in an expensive setup as in Vector or similar heavy-weight solution.

有帮助吗?

解决方案

You can download an open source project for CANopen from DATALINK ENGINEERING as this seems to be just what you need.

其他提示

When you purchase CAN interface hardware, it does not typically include software to work with specific upper-level CAN protocols (like CANopen). They do usually come with a set of DLL files that allow you to write custom PC applications to interface with your hardware.

If you do not want to purchase any third-party software, then you must:

  1. Implement a basic CAN driver for the dsPIC33 (transmit and receive a basic frame).
  2. Implement the CANopen SDO protocol on top of your basic driver on the dsPIC33.
  3. Purchase a low-cost CAN<->USB interface (which should come with DLLs that allow you to develop in C, C++ or C#.
  4. Write a PC application using the DLL files which implements the CANopen SDO protocol.

You may want to look for open-source implementations of the protocol. One such implementation is CanFestival. However, I have never used this library.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top