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

Нестандартный протокол RS485

Ср мар 25, 2020 21:08:59

Имеется устройство на Atmega16. Устройство имеет выход на шину RS485.
Прошивка к счастью не залочена, поэтому слита и дизассемблирована. Параметры обмена:
- скорость 57600 бод
- 8 бит данных, один стартовый и один стоповый биты, бита четности нет.

Фрейм запроса имеет примерно такую структуру:

1 байт стартовый 0xFE
1 байт адреса (кому)
1 байт адреса (от кого)
1 байт 00 (неизвестно для чего)
1 байт = длина фрейма - 8
1 байт = код функции
N байт = аргументы функции
2 байта CRC16/GENIBUS
1 байт стоповый 0xFF

Коды функций от 0 до 35, но имплементированы не все.
Присутствуют функции программного сброса устройства, изменения адреса на шине, входа в бутлодырь для дистанционного обновления прошивки и даже включения/отключения подсветки дисплея (зачем только :dont_know: ), а нужно найти функции отправки данных по 485. Данных очевидно немного, всего лишь результаты от 5 каналов АЦП атмеги.

Анализ даётся тяжело, ибо код очевидно сгенерирован компилятором ЯВУ.

Вопрос знатокам: вам этот протокол знаком?
Может быть он похож на какой-нибудь из стандартных?
Ответить