У меня есть устаревший аппаратный преобразователь уровня/давления, который связывается с микроконтроллером с помощью пользовательского протокола (похоже, что он похож на Modbus RTU), это оборудование поставляется вместе со старым программным обеспечением для ввода в эксплуатацию, которое отлично работает в последних версиях Windows, это программное обеспечение содержит весь протокол связи. компоненты, которые я пытаюсь извлечь и использовать в чем-то вроде Arduino для извлечения данных из передатчика, кто-нибудь может помочь?
Обновление. Выше не упоминалось, что форма связи здесь представляет собой полудуплексную последовательную связь, при которой ведущее аппаратное/программное обеспечение опрашивает ведомый передатчик. Теперь упоминается программа Arduino mcu для объединения данных из передатчика.
Какой лучший способ получить из него читаемые данные? Еще раз большое спасибо за все ваши комментарии и помощь!
Осциллограф кажется мне слишком низкоуровневым для этой задачи (ОП, видимо, не хочет проверять внутреннюю шину, его, похоже, интересует связь между ПК-Windows и радарным устройством).
Похоже, он использует последовательный интерфейс. Вам понадобится некоторое программное обеспечение для прослушивания последовательного порта - готовое или самодельное (не имеет большого значения, если используется какой-либо драйвер виртуального последовательного порта). Это может быть сделано и с помощью какого-то оборудования «человек посередине», но зачем беспокоиться? Затем вы просто отслеживаете сообщения, отправляемые при возникновении различных событий.
Запуск [любого эквивалента в Windows] strace
может отслеживать данные. Также может помочь дизассемблирование/декомпиляция программного обеспечения. Знаете ли вы каких-либо поставщиков, названия продуктов, номера моделей и т. д.? Есть ли какие-либо идентифицирующие строки в исполняемом файле?
Вам нужна запись общения вместе со значением «вверх по течению». Для этого вы можете использовать, например, инструменты проекта "com0com", которые обеспечивают виртуальные нуль-модемные соединения и виртуальный последовательный концентратор.
Лучший инструмент для анализа протокола — Wireshark. Запустите его на канале связи между машиной Windows и радаром. Первая возможность: протокол на самом деле известен Wireshark (могут потребоваться некоторые пробы и ошибки в меню «Декодировать как».) Вторая возможность, менее забавная: протокол действительно полностью проприетарен и неизвестен Wireshark. По крайней мере, Wireshark упростит проверку двоичных данных.
Может ли Wireshark анализировать последовательные порты? Почти уверен, что протокол, о котором говорит ОП, является последовательным.
Из вопроса ОП это неясно.
Это не так, но я ожидаю, что какое-то старое оборудование будет взаимодействовать с ПК именно так. Я был бы очень удивлен, если бы это был Ethernet.
На самом деле можно использовать Wireshark на последовательном порту, см. мой ответ.
То, что вам нужно, называется сниффер. Используйте это как ключевое слово, и вы сможете найти много информации здесь, в SO, и в Интернете.
Чтобы установить запись прямо на самом деле это возможно, чтобы использовать Wireshark для прослушивания Modbus RTU по последовательному порту, см. мой ответ здесь. Если ваш протокол похож на Modbus, я бы начал с SerialPCAP.
Если вы предпочитаете более удобные для Windows решения, вы можете проверить эти: 1, 2.
Поскольку Modbus довольно прост, я бы сказал, что обратный инжиниринг подобного протокола должен быть, может быть, не простым делом, но просто управляемым, даже если вы не очень опытны.
В наши дни, когда почти все являются производителями или, по крайней мере, подражателями, вы можете сначала хорошенько осмотреться, может быть, кто-то уже перепроектировал этот протокол и где-то опубликовал его.
Еще раз - большое спасибо за помощь!
Вы заинтересованы в разобрать механизм с целью понять, как это работает, т. е. в том, чтобы разобрать что-то, чтобы понять, как оно работает. Проще всего начать с просмотра протокола на осциллографе (или другом устройстве, электрически совместимом с протоколом). Часто это достаточно просто: нажатие кнопки 1 отправляет этот пакет, нажатие кнопки 2 отправляет этот пакет, а затем вы можете просто скопировать пакеты.