Фото и видео

Новости (архив)


Контакты

contact@forca.ru

Содержание материала

Протокол HDLC — один из наиболее распространенных протоколов в системах связи, используемых для передачи данных различного назначения. Он предложен фирмой IBM и принят в качестве стандарта МККТТ. В разрабатываемых стандартах МЭК (ICE) по телемеханике наряду с принятыми протоколами асинхронной передачи, рассмотренных выше (см. § 4.3), ставится также вопрос об использовании протокола HDLC для синхронной передачи в системах телемеханики.
При отсутствии передачи сообщений (спокойное состояние канала) первичная станция (станция, начинающая диалоговую процедуру передачи сообщений) посылает в канал связи чередующуюся последовательность единиц и нулей (1010 . . .), называемую меандром. Меандр обеспечивает постоянную синхронизацию генераторов первичной и вторичной станций системы. Именно из-за наличия меандра в спокойном состоянии канала протокол HDLC может быть использован в системах с синхронным методом передачи данных.
Основная проблема использования протокола HDLC в качестве стандартного для систем телемеханики состоит в том, что формат HDLC обладает низким кодовым расстоянием, не превосходящим d =2, т. е. в принципе возможны ложные сообщения при двукратных ошибках (хотя вероятность этих ошибок невелика).
Типовая структура кадра сообщений в протоколе HDLC представлена на рис. 4.3.

Рис. 4.3. Кадр сообщений в протоколе HDLC:
А - поле адреса, обычно 1, 2 байта; С - поле управления, обычно 1 байт; L - поле длины данных, обычно 1 байт; D - данные (число байт определяется /.); CS - поле защиты (контроля), обычно 1, 2 байта

 Кадр состоит из трех частей: заголовка, в который входят байт начала (открывающий флаг), байты адреса А, управления С и длины L (числа); основы — информационный байт данных D; ’’концевика”, содержащего защитные байты CS и конец (закрывающий флаг). Открывающий и закрывающий флаги обычно совпадают и имеют всегда фиксированную последовательность бит: 01111110. Указанная последовательность (шесть единиц подряд, обрамленные нулями) встречается только во флагах кадра, благодаря чему они легко отличимы от прочих слов кадра. Такие слова носят название ’’прозрачных” маркеров. Для того чтобы обеспечить отличие флагов от остальных слов кадра и чтобы не вводить ограничения при передаче сообщений, в протоколе HDLC вводится специфическая операция при кодировании всех слов кадра, кроме флагов, называемая бит-стаффингом. Она состоит в том, что после кодирования последовательности из пяти единиц подряд принудительно вставляется разделительный бит 0, т. е. информационная последовательность, содержащая подряд шесть единиц (111111), в результате бит-стаффинга выглядит следующим образом: 1111101.
При декодировании такой последовательности производится устранение вставленного после пяти единиц нуля (т. е. операция, обратная бит-стаффингу) . Тем самым достигается ’’прозрачность” флагов.
Однако именно из-за бит-стаффинга протокол HDLC уязвим для однократных ошибок (при отсутствии закрывающего флага) или двукратных ошибок (при наличии закрывающего флага).
На рис. 4.4 представлен пример кодовой последовательности в протоколе HDLC при отсутствии закрывающего флага, иллюстрирующий возможность ложного сообщения при однократной помехе, в результате которой 0 бит-стаффинга, подлежащий отбрасыванию при декодировании, превращается в информационный 0 из-за перехода бита № 6 из 1 в 0. Положим, что начиная с бита № 16 (после отброса бит- стаффинга) начинается проверочное слово CS.
В результате однократного искажения происходит сдвиг последовательности информационных символов: бит № 7 в переданном кадре принимается как бит № 8, № 8 — как № 9 и т. д.).
При этом образуется код ошибки (начиная с бита № 6) : 10010011101, т. е. Е(х) =χ10+ х7 + х4 + х3 + х2 +Х1.

Рис. 4.4. Формирование вектора ошибки Е(х) при однократной помехе (!) в формате HDLC:
а - переданная последовательность, ν — бит-стаффинг; б -принятая последовательность; в - вектор ошибки Е (х)

Если этот вектор ошибки Е(х) разделится на образующий полином Р(х) без остатка, то однократная ошибка даст ложное сообщение. Положим, что высшая степень Р(х) равна r, т. е. в контрольном слове CS осуществляется r проверок на четность. Следовательно, вероятность не обнаружения ошибки составляет при случайном наборе битов 1/2.
Аналогичные ошибки при приеме возможны при ложном бит-стаффинге.
При наличии закрывающего флага всякая однократная помеха обнаруживается приемником. Для образования ложного сообщения необходимо минимум двойное искажение (d = 2).
Ложные сообщения могут возникнуть, например, при подавлении бит-стаффинга (одна ошибка) и одном ошибочном (инверсном) бите (вторая ошибка).
Вычисление вероятностей ложных сообщений в протоколе HDLC представляет определенные трудности. Наиболее целесообразный метод определения вероятности не обнаруживаемых ошибок — метод перебора всех возможных ошибочных комбинаций с помощью ЭВМ.
На рис. 4.1 приведены результаты такого расчета для кодов (330,314) и (116,100) в протоколе HDLC при d-2.
При больших вероятностях ошибок (р>10-3 ) код HDLC обеспечивает класс достоверности Ζ2· Однако при малых вероятностях ошибок (р< 10-4) кривая вероятности ошибок располагается выше границы класса I2, т. е. не обеспечивает помехозащищенности этого класса.
Для ориентированной оценки вероятности не обнаруживаемых ошибок в коде HDLC можно рекомендовать следующие формулы, определяющие усредненные вероятности по всем возможным кодовым комбинациям и фазе воздействия ошибок в кадре:
для однократных ошибок

для двукратных ошибок