Нужно ли запускать устройство шины CAN, чтобы начать отправку сообщений?
Я полный новичок в автобусе CAN. Я надеюсь, что кто-то с опытом CAN может направить меня в правильном направлении. Мне подарили USB-адаптер Vector VN1610 и радарный датчик Continental ARS-308. Цель состоит в том, чтобы прочитать некоторую информацию о скорости и расстоянии от датчика. Сейчас я просто пытаюсь увидеть какие-либо данные, но получаю только сообщения с идентификатором 0 или 0x80000000. Все данные загружаются в отчет как 8 байтов по 0.
Что работает
Я смог использовать предоставленный пример кода.NET и настроить VN1610. ARS-308 имеет один канал CAN, поэтому в векторной конфигурации оборудования для моего приложения я просто сопоставляю "CAN 1" с каналом 1 VN16101 (я оставляю CAN 2 без назначения). Затем я предполагаю, что использую этот один канал для передачи и приема., Код сообщает, что канал устанавливает активаторы, и об ошибках не сообщается. У меня тогда есть нить, ищущая входящие сообщения. Если я не отлаживаю два идентификатора, упомянутых выше, я могу обработать их все, а затем я получаю сообщения XL_ERR_QUEUE_IS_EMPTY. Похоже, все работает, я просто не получаю никаких реальных данных.
Что не
Я бы подумал, что для устройства Continental ARS появится множество сообщений данных в диапазоне 0x200 - 0x702. Теперь я больше привык к протоколам типа Ethernet, где я посылаю команду и затем читаю ответ. Ни один из моих документов не говорит о том, как работает CAN, поэтому я предполагаю, что в CAN устройство просто отправляет данные. Я, конечно, не могу найти какие-либо команды, которые говорят устройству отправлять мне конкретный идентификатор сообщения, который мне интересен. Я пропустил какой-то базовый шаг конфигурации CAN, который сообщает устройству, что оно должно начать отправку данных? Будем благодарны за любые предложения.
Если это имеет значение, я пишу в VS2013, .NET на машине Win 7 64 Ultimate.
1 ответ
Ответ: Нет. Оказывается, устройства CAN действительно начнут передавать сообщения, когда вы их включите (по крайней мере, это так). Сообщения с идентификаторами 0x0 и 0x8000000 являются поддельными. Даже с выключенным радарным датчиком я продолжал видеть эти сообщения.
Оказывается, у меня была аппаратная проблема. Для шины CAN требуется резистор 120 Ом, который был установлен. Проблема заключалась в том, что когда оболочка была надета на кабель, резистор треснул. Как только мы это починили, все заработало как положено.