Структура сообщения и процедура транзакции
В HART-протоколе принята структура сообщения, представленная на рисунке 3.25.
преамбула | стартовый символ | адрес | команда | число байт | [статус] | [данные] | Контрольная сумма |
Рисунок 3.25 − Структура сообщения HART протокола. |
Форматы фреймов
Фрейм сообщения представляет собой структуру набора символов или байт, составляющих единое завершенное сообщение. Он состоит из нескольких отдельных полей, содержащих отдельные порции данных внутри сообщения (адрес, данные и т.д.). Последовательность полей, формирующих фрейм, является частью характеристик протокола.
Преамбула
Преамбула состоит из трех или более шестнадцатеричных символов FF (все единицы), используется для синхронизации приемника.
Стартовый символ
При асинхронной связи стартовый и стоп-биты используются для обозначения начала и конца любого символа. Стартовый бит равен 0, за ним следует период простоя с сигналом единичного уровня. Стоп-бит равен 1, гарантируя таким образом, что следующий стартовый бит будет распознан, даже если между ними не будет периода простоя.
Адрес
Поле адреса содержит оба адреса: главного и первичного устройства. Они могут быть однобайтовые (короткий фрейм), либо пятибайтовые (формат длинного фрейма). Адрес формируется из кода изготовителя, кода типа устройства и идентификационного номера устройства.
В любом формате самый старший разряд содержит одно–разрядный адрес главного устройства. Разрешено иметь только два главных устройства – например, система управления и ручной коммуникатор. Наиболее значащий разряд поля адреса различает эти два главных устройства. Первичные главные устройства, такие как система управления, используют адрес 1, а вторичные главные устройства, такие как ручной коммуникатор, используют адрес 0.
В формате короткого фрейма подчиненные устройства могут иметь адреса в диапазоне от 0 до 15. Это число содержится в двоичном виде в младшей половине адресного байта.
В формате длинного фрейма остальные 38 разрядов пятибайтового поля адреса содержат уникальный идентификатор подчиненного устройства в качестве адреса.
Адрес главного устройства
В формате длинного фрейма значение 0 ( 38 нулей ) может быть использовано как адрес широковещательного сообщения, которое должно быть принято всеми подчиненными устройствами (хотя только один должен ответить; это должно быть определено в поле данных сообщения).
Команда
Поле команды содержит целое число (от 0 до FF или десятичного 255), представляющее одну из HART-команд. Значение 254 определено как код расширения, в этом случае за этим байтом следует другой байт, что позволяет кодировать более 256 различных команд. Код полученной команды в точности передается назад в ответном сообщении подчиненного устройства. Существует три категории команд:
· универсальные команды для всех HART- устройств;
· распространенные команды − для устройств, поддерживающих соответствующую функцию;
· специфические команды – для уникальных функций конкретного подчиненного устройства.
Количество байт
Это целое число, представляющее количество байт, формируемых остальную часть сообщения (статус и данные). Приемное устройство использует это для идентификации байта контрольной суммы и определения конца сообщения.
Статус
Статус включается только в ответное сообщение от подчиненного устройства. Он состоит из двух байт. В первом байте находятся обнаруженные ошибки обмена данными. Если обмен данными прошел без сбоев, этот байт может содержать статус полученной команды (например, устройство занято или не удалось распознать команду). Во втором статусном байте содержится состояние функционирования подчиненного устройства. При нормальной работе подчиненного устройства оба байта статуса установлены в логический ноль.
Данные
Данные могут быть представлены в виде беззнаковых целых чисел, чисел с плавающей точкой или строк из ASCII символов.
Количество байт данных и формат каждой порции данных специфичны для каждой команды, обычно не более 25 байт.
Контрольная сумма
Это арифметическая сумма всех предыдущих байт. Она обеспечивает еще одну проверку целостности данных. Такое сочетание проверок гарантирует обнаружение любого единичного выброса до трех искаженных бит в сообщении и дает возможность обнаружить длительные или множественные выбросы.
Дата добавления: 2020-04-12; просмотров: 520;