Вопрос

  1. Будет ли карта интерфейса CAN установлена ​​как COM-порт?

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

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top