Фрагмент переключающего устройства (черт. 32) показывает организацию релейных контактов для переключения одного из сигналов D-порта. В полном переключающем устройстве для последо­вательно-поразрядных сигналов D-порта должно быть предусмотрено два таких коммутационных устройства: одно — для информационного сигнала и другое — для тактового сигнала. Этот пример предполагает, что цепь канала передачи данных проходит через все ПКК и затем возвращается в последовательный драйвер путем параллельного соединения (но не обязательно проходит через дан­ный ПКК, хотя для этого могли бы быть использованы соединения шин 1 и 2 (см. 31.2), так что прямая и обратная части ветви доступны переключающему устройству. Переключающее устройство соединяет прямую и обратную части ветви, образуя тем самым укороченный контур и отключая остальную часть контура и соединенные с ним контроллеры. Тактовые сигналы, подводимые к от­ключенной части цепи, остаются таким образом в фиксированном состоянии, так что отключенные контроллеры не могут ни принять, ни передать сообщения.

Пример переключения схемы для одного сигнала

D-порта


Прямая Ветвь канала Обратная передачи данных ветвь

Устройства переключения

Обратный путь

Управление пе­реключателем

Наружный путь канала передачи данных


ПКК

Д-Вход




j1

йом логическом

Черт. 32


Примечание — Выход тактового сигнала к отключеНИОЛЧМ состоянии благодаря условиям в точках *—*

.При отключении питания переключатели в устройстве отключения должны быть в таком по­ложении, как показано на черт. 31. При этом секции МП, проходящие через данное устройство, не будут отключены.

Возможны другие варианты защиты, как, например, дублированные секции МП, в результате чего вся цепь может быть восстановлена, если имеется повреждение только одной из дублированных секций. Контакт 25 у входного D-порта каждого ПКК резервирован для третьего сигнала управле­ния и может быть использован в более сложных способах переключения цепи.

  1. Потеря синхронизации

Синхронизация сообщений зависит от способности крейт-контроллеров и последовательного драйвера распознать заглавный и разграничительные байты каждого сообщения. Ошибки в тактовых или информационных сигналах (особенно разделительные биты) могут привести к потере синхро­низации сообщений. В ПКК или ПД потеря синхронизации может произойти из-за того, что в ПКК или ПД разграничительные байты приняты в искаженной форме. Поэтому в этих устройствах син­хронизация сообщения может восстанавливаться теми средствами, которые описаны в разд. 40.3.

Байтовая синхронизация зависит от способности ПКК и ПД в поразрядно-последовательном режиме распознать старт/стоп биты байтовых кадров. Ошибки тактовых или информационных сиг­налов (в частности, в старт/стоп битах) могут привести к потере байтовой синхронизации. ПКК или ПД распознает, что потеря произошла из-за получения логического «0» в момент, когда должен появиться стоп-бит. Байтовая синхронизация может восстановиться теми средствами, которые опи­саны в 41.3.

  1. Ошибки в передаче сигналов

Основной способ обнаружения ошибок из-за искажения тактовых или информационных сиг­налов — это применение кода геометрического обнаружения ошибок с байтовыми (по рядам) кода­ми и кодами четности по столбцам. Вспомогательный способ — это анализ формата сообщений, в частности, контекста, в котором разрешены разграничительные байты.

  1. П р и н ц и п геометрического кода

Геометрический код обнаружения ошибок — это простой, но эффективный метод обнаруже­ния ошибок передачи в последовательных магистралях, используемых для МП. Такой код легко применим к сообщениям различной длины и в нем используются коды четности, которые легко формируются и контролируются.

Основной принцип обнаружения геометрического кода, используемого в МП, заключается в том, что массив данных представляется в виде матрицы из т строк по п столбцов (черт. 33).

Каждая строка имеет дополнительный бит для сохранения нечетности, а каждый столбец имеет дополнительный бит для сохранения четности, в результате чего образуется увеличенный массив из т + 1 строк по п + 1 столбцов.

  1. Ф о р м и р о в а н и е геометрического кода

Принцип такого формирования для использования в МП показан на черт. 34.

В данном случае биты четности Ь. в байте «1» сохраняют признак нечетности по всему байту, включая разделительный бит d! и шесть битов поля информации от ап до а.б.

Таким образом:

bt= а„ + ай ... + а(< + Ф,

где знак «+» обозначает функцию «Исключающее ИЛИ» (сумму по модулю 2).

Байт всегда содержит нечетное число бит с информацией «1».

В последнем байте (сумм-байт в командных сообщениях конечный и сумм-байт в сообщениях ответа и запроса) каждый из шести битов до'С6 сохраняет признак четности по всему столбцу разря­дов поля информации от а., до ат..

Таким образом, для столбца «/»:

С. = ау+ ау. . . + а^, и столбец всегда содержит четное число бит с информацией «1».



Геометрический код обнаружения
ошибок в применении
к последовательной магистрали



Черт. 33

Принцип формирования геометрического кода обнаружения ошибок (применение к последовательной магистрали, см. черт. 34)



Ч

^■-разграничительные биты в m-t-f байтах

_ Ь; - биты нечетности бай - тоб в т+1 байтах

а ---биты информационного поля

ерт. 34

Биты 7 и 8 в этом последнем байте не являются битами четности столбцов, но соответственно t/ — разделительный бит, а />т+) — бит признак четности конечного байта.

Таким образом:

b — С + С, . . . + С- + d .
1 2 /и+1

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

Каждый ПКК будет контролировать геометрический код, детектируя ошибки во всех командных сообщениях, адресованных ему.

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

Последовательный драйвер должен контролировать геометрический код и детекторную ошиб­ку в том коде, который он принимает от ПКК.

  1. X а р а к т е р и с т и к а геометрического кода

Геометрический код обнаружения ошибки, включающий массив данных из т строк на п столбцов, требует передачи т+1 строк по и+1 столбцов и обладает следующими свойствами:

  1. он обнаруживает местонахождение одной, двух или трех ошибок в увеличенном массиве т+1 по и+1 столбцов;

  2. он обнаруживает любое нечетное число ошибок независимо от их распределения внутри блока;

  3. он обнаруживает все группы ошибок до п+2 битов в длину;

  4. он обнаруживает большую часть ошибок, не включенных в пп. 1) — 3). Например, из всех 4-битовых ошибок в блоке он не может детектировать те, которые расположены по вершинам неко­торого прямоугольника.

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

Если канал связи имеет произвольную частоту появления ошибок, при которой вероятность ошибочного бита равна 10-4, то после применения процедуры обнаружения ошибки вероятность того, что массив данных содержит необнаруженную ошибку, приблизительно равна 10-13 для девяти байтовых блоков и І014 для трех байтовых блоков. Если вероятность битовой ошибки 10-5, вероят­ность того, что блок данных содержит необнаруженную ошибку, 1017 и 10-18 соответственно для девятибайтовых и трехбайтовых блоков.

В качестве примера можно сказать, что если девятибайтовые сообщения передаются со ско­ростью 2000 бит/с с вероятностью появления ошибок 10-4, средняя частота ошибок в канале —1 бит­ошибка в 5 с, но средняя частота появления блоков с необнаруженными ошибками сократится до одного массива за 104 года.

  1. Обнаружение ошибки в контексте

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

Ошибки в разграничительном бите приводят к появлению байтов в неправильном контексте и вследствие этого — к потере синхронизации (см. 40.2).

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

Если это произойдет, то ПКК не распознает точно четность по столбцу, и таким образом четность столбца, очевидно, будет нарушена.

Если ПКК будет выполнять соответствующий текст, то при этом могут быть выявлены необна­руженные ошибки в Ml-поле команды, в результате чего крейт-контроллером будет отвергнуто нарушенное командное сообщение.

  1. О б и а р у ж е н и е ошибки в блоках

Типичный функциональный блок КАМАК воспринимает некоторые субадресы и функции из полного набора. Поэтому существует возможность дополнительной защиты против ошибок, так как неверная команда, возможно, приведет к появлению ответа X = 0 либо из адресованного блока, либо из какого-то другого блока, или из незанятой станции крейта.

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

  1. Сообщение при обнаружении ошибки

Когда крейт-контроллер обнаруживает нарушение четности байта или столбца в полученной команде, он не может полагаться на содержание функционального поля для определения длины ответа. Поэтому ПКК генерирует ответное сообщение ОШИБКА с постоянной длиной 3 байта, в котором разряд в поле состояния, индексирующий ошибку, находятся в состоянии «1». Ответ- сообщение ОШИБКА — посылается также, если в результате дополнительного теста ПКК обнару­живает не нулевое содержание МП-поля любого сообщения, адресованного ему (см. 16.7).

  1. Указание об ошибке в ответах

Поле состояния в ответе содержит указание об ошибке, относящейся к выполнению ПКК текущей и предыдущей команд.

  1. Б ит, указывающий об ошибке (ERR)

Бит, индексирующий ошибку, занимает первую позицию поля состояния ответа и указывает, обнаружил ли ПКК ошибки в текущей команде в результате проверки четности байта и столбца и (возможно) Ml-поля.

Если ERR = 0, команда выполняется ПКК (хотя необязательно принимается адресованным блоком). Если ERR = 1, то ПКК обнаруживает по четности ошибку (см. 61.2) или неправильное поле Ml (см. 16.7), и поэтому не выполняет команду. Ответы, в которых бит, индексирующий ошибку, находится в состоянии «1», всегда представляют собой трехбайтовое сообщение без чтения поля данных (см. табл. 13).

Таблица 13 — Указание ошибки в ответе

Результат выполнения команды

Сообщения об ответе

Длина в байтах

Поле состояния

ERR

SX

SQ

Правильно

0

1

Q*

3 или 7

Неправильно

Автономный режим работы**

0

0

0

3 или 7

Команда не принята**

0

0

0

3 или 7

Обход

0

0

1

3 или 7

Не выполнена

(ошибки четности или МІ-ошибка)

1

0

0

3

* Ответ из адресованного модуля или контроллера.




** Эти состояния можно определить путем

считывания содержимого регистра состояния. Бит 13, равный 1,

указывает на автономный режим работы ПКК.







Если ПКК обнаруживает нарушение четности байта или столбца в полученной команде, то он должен установить бит, индексирующий ошибку (ERR) в поле состояния ответа, в положение «1».

Если ПКК проверяет Ml-поле полученных сообщений и обнаруживает, что содержание поля не равно «00», он должен установить бит, индексирующий ошибку (ERR), в поле состояния ответа в состоянии «1» (необязательный тест).

  1. Бит, индексирующий, что КОМАНДА ПРИНЯТА (SX)

Бит SX во 2-й позиции поля состояния соответствует ответу КОМАНДА ПРИНЯТА (X) от МК (для команд, поступающих на функциональные блоки) или от других внутренних схем ПКК (для команд, адресованных ПКК). Когда ERR-1, то это значит, что команда не выполнена, при этом бит SX не имеет значения и произвольно определяется как SX = 0 (см. табл. 13).