Шина CANopen / CAN, что мне нужно, включая протокол (OD?) Для связи между терминалом ПК и модулем устройства CAN - PullRequest
3 голосов
/ 15 августа 2011

У меня есть dsPIC33 с ECAN, и я хочу установить протокол (используя SDO , если это возможно) таким образом, чтобы он обменивался данными между программным обеспечением терминала и dsPIC33, где я могу выполнять диагностику в пределах dsPIC33 и поддерживающих ИС.1003 *

Я не знаю, что требуется, так каков недорогой способ сделать это?Я мог бы использовать устройство CAN-to-USB, но я не уверен, будет ли это работать.Какой протокол внутри CANUSB используется для сообщения на основе ASCII?

Какое оборудование я могу использовать?Может ли он также использоваться для контроля шины CAN?Я не хочу инвестировать в дорогостоящую установку, такую ​​как Vector или аналогичное решение с большим весом.

Ответы [ 2 ]

4 голосов
/ 16 августа 2011

При покупке аппаратного обеспечения интерфейса CAN оно обычно не включает программное обеспечение для работы с определенными протоколами CAN верхнего уровня (например, CANopen). Обычно они поставляются с набором DLL-файлов, которые позволяют вам создавать собственные приложения для ПК для взаимодействия с вашим оборудованием.

Если вы не хотите приобретать какое-либо стороннее программное обеспечение, вы должны:

  1. Реализация базового драйвера CAN для dsPIC33 (передача и получение базового кадра).
  2. Внедрите протокол CANopen SDO поверх базового драйвера на dsPIC33.
  3. Купите недорогой интерфейс CAN <-> USB (который должен поставляться с DLL, которые позволяют разрабатывать на C, C ++ или C #.
  4. Напишите приложение для ПК с использованием DLL-файлов, которые реализуют протокол CANopen SDO.

Возможно, вы захотите поискать реализации протокола с открытым исходным кодом. Одной из таких реализаций является CanFestival . Однако я никогда не использовал эту библиотеку.

3 голосов
/ 16 августа 2011

Вы можете загрузить проект с открытым исходным кодом для CANopen из DATALINK ENGINEERING , поскольку, похоже, это именно то, что вам нужно.

...