Есть ли способ «извлечь» протокол связи из старого программного обеспечения?

У меня есть устаревший аппаратный преобразователь уровня/давления, который связывается с микроконтроллером с помощью пользовательского протокола (похоже, что он похож на Modbus RTU), это оборудование поставляется вместе со старым программным обеспечением для ввода в эксплуатацию, которое отлично работает в последних версиях Windows, это программное обеспечение содержит весь протокол связи. компоненты, которые я пытаюсь извлечь и использовать в чем-то вроде Arduino для извлечения данных из передатчика, кто-нибудь может помочь?

Обновление. Выше не упоминалось, что форма связи здесь представляет собой полудуплексную последовательную связь, при которой ведущее аппаратное/программное обеспечение опрашивает ведомый передатчик. Теперь упоминается программа Arduino mcu для объединения данных из передатчика.

Какой лучший способ получить из него читаемые данные? Еще раз большое спасибо за все ваши комментарии и помощь!

Вы заинтересованы в разобрать механизм с целью понять, как это работает, т. е. в том, чтобы разобрать что-то, чтобы понять, как оно работает. Проще всего начать с просмотра протокола на осциллографе (или другом устройстве, электрически совместимом с протоколом). Часто это достаточно просто: нажатие кнопки 1 отправляет этот пакет, нажатие кнопки 2 отправляет этот пакет, а затем вы можете просто скопировать пакеты.

user253751 06.05.2022 16:51

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

bortzmeyer 06.05.2022 17:01

Похоже, он использует последовательный интерфейс. Вам понадобится некоторое программное обеспечение для прослушивания последовательного порта - готовое или самодельное (не имеет большого значения, если используется какой-либо драйвер виртуального последовательного порта). Это может быть сделано и с помощью какого-то оборудования «человек посередине», но зачем беспокоиться? Затем вы просто отслеживаете сообщения, отправляемые при возникновении различных событий.

Eugene Sh. 06.05.2022 17:10

Запуск [любого эквивалента в Windows] strace может отслеживать данные. Также может помочь дизассемблирование/декомпиляция программного обеспечения. Знаете ли вы каких-либо поставщиков, названия продуктов, номера моделей и т. д.? Есть ли какие-либо идентифицирующие строки в исполняемом файле?

Craig Estey 06.05.2022 17:16

Вам нужна запись общения вместе со значением «вверх по течению». Для этого вы можете использовать, например, инструменты проекта "com0com", которые обеспечивают виртуальные нуль-модемные соединения и виртуальный последовательный концентратор.

the busybee 06.05.2022 17:38
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
70
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Лучший инструмент для анализа протокола — Wireshark. Запустите его на канале связи между машиной Windows и радаром. Первая возможность: протокол на самом деле известен Wireshark (могут потребоваться некоторые пробы и ошибки в меню «Декодировать как».) Вторая возможность, менее забавная: протокол действительно полностью проприетарен и неизвестен Wireshark. По крайней мере, Wireshark упростит проверку двоичных данных.

Может ли Wireshark анализировать последовательные порты? Почти уверен, что протокол, о котором говорит ОП, является последовательным.

Eugene Sh. 06.05.2022 17:09

Из вопроса ОП это неясно.

bortzmeyer 06.05.2022 17:12

Это не так, но я ожидаю, что какое-то старое оборудование будет взаимодействовать с ПК именно так. Я был бы очень удивлен, если бы это был Ethernet.

Eugene Sh. 06.05.2022 17:14

На самом деле можно использовать Wireshark на последовательном порту, см. мой ответ.

Marcos G. 06.05.2022 22:09

То, что вам нужно, называется сниффер. Используйте это как ключевое слово, и вы сможете найти много информации здесь, в SO, и в Интернете.

Чтобы установить запись прямо на самом деле это возможно, чтобы использовать Wireshark для прослушивания Modbus RTU по последовательному порту, см. мой ответ здесь. Если ваш протокол похож на Modbus, я бы начал с SerialPCAP.

Если вы предпочитаете более удобные для Windows решения, вы можете проверить эти: 1, 2.

Поскольку Modbus довольно прост, я бы сказал, что обратный инжиниринг подобного протокола должен быть, может быть, не простым делом, но просто управляемым, даже если вы не очень опытны.

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

Еще раз - большое спасибо за помощь!

300B 09.05.2022 16:05

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