Имеется устройство на Atmega16. Устройство имеет выход на шину RS485.
Прошивка к счастью не залочена, поэтому слита и дизассемблирована. Параметры обмена:
- скорость 57600 бод
- 8 бит данных, один стартовый и один стоповый биты, бита четности нет.
Фрейм запроса имеет примерно такую структуру:
1 байт стартовый 0xFE
1 байт адреса (кому)
1 байт адреса (от кого)
1 байт 00 (неизвестно для чего)
1 байт = длина фрейма - 8
1 байт = код функции
N байт = аргументы функции
2 байта CRC16/GENIBUS
1 байт стоповый 0xFF
Коды функций от 0 до 35, но имплементированы не все.
Присутствуют функции программного сброса устройства, изменения адреса на шине, входа в бутлодырь для дистанционного обновления прошивки и даже включения/отключения подсветки дисплея (зачем только
), а нужно найти функции отправки данных по 485. Данных очевидно немного, всего лишь результаты от 5 каналов АЦП атмеги.
Анализ даётся тяжело, ибо код очевидно сгенерирован компилятором ЯВУ.
Вопрос знатокам: вам этот протокол знаком?
Может быть он похож на какой-нибудь из стандартных?