Программист, пытающийся понять CANopen - PullRequest
0 голосов
/ 11 января 2009
  1. Будет ли интерфейсная плата CAN установлена ​​в качестве COM-порта?

  2. Как разбить сообщение на отдельные кадры? Как насчет объединения данных из нескольких кадров, полученных в одно сообщение? Это действительная проблема?

  3. Что такое стек CANopen? Если у меня уже есть API для связи с последовательными портами, могу ли я иметь мою программу для чтения / отправки сообщений CANopen без стека CANopen? Что конкретно должна делать моя программа?

  4. Каков идеальный / правильный способ реализации словаря объектов (OD) в программном обеспечении?

(Текущая ситуация: мне нужно написать программу на Java для интерпретации сообщений CANopen. Из-за определенных обстоятельств я не могу достать аппаратное обеспечение CAN.)

(Это продолжение серии вопросов о переполнении стека, которые я разместил на прошлой неделе на Java и CANopen .)

Ответы [ 2 ]

2 голосов
/ 11 января 2009
  1. Это зависит от вашей интерфейсной карты. Но, скорее всего, это не будет COM-порт, но вы получите файл DLL с экспортированными функциями для доступа к карте (большинство доступных интерфейсов CAN подключены через USB-порт к вашему ПК). Но не волнуйтесь: даже если это не официальный стандарт, большинство из этих DLL-файлов используют те же функции, так что вы можете без проблем обменять свой интерфейс CAN с другим производителем.

  2. Очень редко отправлять столько данных по шине CAN, что приходится разбивать их на несколько кадров. Но если вам абсолютно необходимо, то вы должны сделать это сами.

  3. Стек CANopen - это библиотека, которая предоставляет вам функции более высокого уровня. Он заботится обо всем, что требуется CANopen (например, сердцебиение), поэтому вам не нужно делать это самостоятельно. Хороший стек также заботится о нескольких кадрах (2). К сожалению, такие стеки не доступны для дешевых, но ИМХО они того стоят.

  4. В большинстве реализаций используется структура, как в ПЗУ, так и в ОЗУ, в зависимости от того, можно ли изменить OD или нет. Но хороший стек CANopen уже позаботится об этом за вас.

0 голосов
/ 13 января 2009

3) Хотя коммерческий стек CANopen, безусловно, является хорошей идеей, все же можно читать / отправлять сообщения CANopen без их использования.

Мы не знаем, какова цель вашего заявления. Но пример, когда вам, вероятно, будет хорошо без стека CANopen, если у вас уже есть работающая шина CANopen с главным и подчиненным узлами, и вы просто хотите прослушать определенное сообщение. Другим примером может быть, если вы пишете небольшую конфигурационную или тестовую утилиту с небольшим и четко определенным набором используемых сообщений. В таких случаях полноценный коммерческий стек CANopen может быть слишком излишним.

...