logo
СТПУ_УшБыНу_3103_2012 / СТПУ_1_F

1.4.3. Протокол LonTalk

Одной из главных составляющих технологии LonWorks является открытый протокол LonTalk, описываемый 7-уровневой сетевой моделью взаимодействия открытых систем OSI.

Протокол LonTalk не опирается на определенную реализацию физического уровня и обеспечивает передачу данных по самым различным каналам связи с использованием разнообразных методов кодирования. Например, для витой пары используется метод дифференциального кодирования, а для работы на сегментах линий напряжения и на радиочастотах применяется FSK-модуляция.

Каждый узел LonWorks работает с физическим уровнем в одном из двух режимов – прямом или специальном. В прямом режиме информация передается в закодированном виде (например, с применением дифференциального манчестерского  кодирования битов), а в  специальном режиме данные передаются последовательно и без кодирования. Причем в обоих режимах каждый пакет сопровождается 16-битовым CRC-кодом. Это позволяет не учитывать при передаче битов конкретную реализацию среды передачи. При работе в прямом режиме контроль над скоростью передачи данных, длиной заголовков пакетов и кодированием берет на себя микроконтроллер Neuron. В специальном режиме эти задачи выполняет приемопередатчик, используемый для сопряжения различных физических протоколов.

На подуровне MAC в качестве средства борьбы с коллизиями (конфликтными ситуациями) используется предиктивный метод, основанный на упорядочении доступа к каналу с учетом предполагаемой нагрузки на канал. Передающий узел всегда получает доступ к каналу со случайной задержкой из диапазона от 0 до некоторой величины w, являющейся функцией числа незавершенных заданий, стоящих в очереди на выполнение. Разрешение коллизий на этом подуровне осуществляется по следующим правилам:

  1. Если коллизия возникла после двух последовательных попыток передачи пакета с приоритетом, то следующая отсылка пакета будет происходить без приоритета.

  2. При обнаружении коллизии передающий узел должен инкрементировать число незавершенных заданий.

  3. Если после 255 последовательных попыток передачи пакета возникает коллизия, то задание снимается.

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

Транспортный уровень обеспечивает достоверную передачу пакетов одному абоненту или группе абонентов. Для связи с сеансовым уровнем на транспортном уровне LonTalk реализована поддержка следующих функциональных запросов: послать телеграмму, принять телеграмму, подтверждение завершения передачи. 

Сеансовый уровень отвечает за реализацию простого механизма запроса/ответа для доступа к удаленным серверам данных и обеспечивает выполнение всего одной функции – запрос/ответ. При этом любой запрос будет ожидать ответа. Функции запроса/ответа можно использовать для прикладных задач, работающих по принципу клиент-сервер. 

И на транспортном, и на сеансовом уровнях включен механизм контроля авторизованного доступа: запрос, не обладающий правом доступа к данным текущего узла, не будет обслужен.  

Уровень приложений и предоставления данных создает основу для совместимости узлов протокола LonTalk. Одной из важных задач, решаемых на этом уровне, является передача чужеродных по отношению к LonTalk телеграмм. Такая функция используется для организации шлюзов между доменами, а также для перехода через LonTalk к другим протоколам. В LonWorks используется модифицированный произвольный доступ с контролем несущей (CSMA/CD). Для уменьшения нагрузки на сеть используется событийный механизм обмена сообщениями, а для сокращения внутрисетевого трафика можно использовать сегментацию сети при помощи маршрутизаторов, выпускаемых различными производителями.