Основные принципы реализации протоколов верхнего уровня (типа MODBUS)

Кратко рассмотрим эти протоколы, хотя они не имеют отношение к стандарту RS-485. Обычно протокол верхнего уровня включает в себя пакетную, кадровую или фреймовую организацию обмена. То есть, информация передаётся логически завершенными частями. Каждый кадр обязательно маркируется, т.е. обозначается его начало и конец специальными символами. Каждый кадр содержит адрес прибора, команду, данные, контрольную сумму, которые необходимы для организации многоточечного обмена. Чтобы избежать коллизий обычно применяют схему "ведущий"(master)-"ведомый"(slave). "Ведущий" имеет право самостоятельно переключать свой драйвер RS-485 в режим передачи, остальные драйверы RS-485 работают в режиме приёма и называются "ведомыми". Чтобы "ведомый" начал предавать данные в линию связи "ведущий" посылает ему специальную команду, которая дает прибору с указанным адресом право переключить свой драйвер в режим передачи на определенное время.

После передачи разрешающей команды "ведомому", "ведущий" отключает свой передатчик и ждет ответа "ведомого" в течение промежутка времени, который называется "таймаут". Если в течении таймаута ответ от "ведомого" не получен, то "ведущий" снова занимает линию связи. В роли "ведущего" обычно выступает программа, установленная на компьютер. Существуют и более сложная организация пакетных протоколов, которая позволяет циклически предавать роль "ведущего" от прибора к прибору. Обычно такие приборы называют "лидерами", либо говорят что приборы передают "маркер". Владение "маркером" делает прибор "ведущим", но он должен будет обязательно передать его другому прибору сети по определённому алгоритму. В основном, указанные выше протоколы, отличаются по этим алгоритмам.

Как мы видим, верхние протоколы имеют пакетную организацию и выполняются на программном уровне, они позволяют решить проблему с "коллизиями" данных и многоточечную организацию обмена данными.